Flash 在类内使用鼠标
我创建了一个简单的类,它不是从任何其他flash类扩展而来的。问题是,在这个简单的类中使用鼠标协调。这是我的课程代码Flash 在类内使用鼠标,flash,actionscript-3,class,mouse,flash-cs4,Flash,Actionscript 3,Class,Mouse,Flash Cs4,我创建了一个简单的类,它不是从任何其他flash类扩展而来的。问题是,在这个简单的类中使用鼠标协调。这是我的课程代码 package src { public dynamic class guider{ public function move01(xxx:int, yyy:int , speed:int) { trace (mouseX); return true; } } } 编译后,
package src {
public dynamic class guider{
public function move01(xxx:int, yyy:int , speed:int) {
trace (mouseX);
return true;
}
}
}
编译后,它会出现错误:“1120:Access of undefined property mouseX”,这是显而易见的。我试图通过导入一些与鼠标相关的类来解决这个问题。因此,我将代码重写如下:
package src {
import flash.utils.getDefinitionByName;
public dynamic class guider{
public function move01(xxx:int, yyy:int , speed:int) {
trace (getDefinitionByName("flash.ui.Mouse").mouseX);
return true;
}
}
}
现在编译时没有任何错误,但当我使用它时,它会找出“未定义的”!我的问题是什么
注意:该类用于与鼠标的实时交互,我更倾向于简化以获得更高的性能。该函数的返回值将是一个基于鼠标x坐标和其他输入的数字。这里我使用“return true;”仅用于测试。在类的构造函数中,您应该通过阶段(类型阶段),然后说:
stage.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler);
private function mouseMoveHandler(event:MouseEvent):void {
trace(event.stageX + " " + event.stageY);
}
编辑1:
不能使用对象(无扩展)如果您想知道鼠标相对于该对象的位置,请将其作为基类。要找到鼠标,您需要在舞台上显示该对象以找到鼠标所在的位置。因此,您可以使用DisplayObject的功能。因此,请扩展该功能而不是MovieClip。或者,您可以使用舞台再次找到鼠标。再次传递sta在构造函数中调用该类,并将其保存在私有或受保护的var中
public function move01(xxx:int, yyy:int , speed:int):void {
trace (stage.mouseX);
}