我无法按照预期一致地触发MOUSE_OVER事件。我有一个自定义光标(movieclip)连接到我的鼠标,它有2帧(第一帧光标是黑色,第二帧是白色)。
以下是我的光标脚本中的代码:
private function onAddedToStage(event:Event):void
{
gotoAndStop(1);
this.mouseChildren = false;
this.mouseEnabled = false;
}
public function rollover():void
{
gotoAndStop(2);
trace("change cursor");
}
这是一个对象的类,它会在光标移过它时作出反应:
public class DoorHS01 extends MovieClip
{
public var cursor:Cursor;
public function DoorHS01()
{
cursor = new Cursor();
this.addEventListener(MouseEvent.MOUSE_OVER, rollover);
}
public function rollover(e:MouseEvent):void
{
cursor.rollover();
trace("rollover");
}
}
}
所以在DoorHS01课程中,MouseEvent并不总是会触发,或者它会被真正延迟。 cursor.rollever函数被调用并在游标类中执行(我从跟踪中知道)但光标永远不会改变。
我错过了什么?
答案 0 :(得分:2)
我认为实现我想要的最好方法是使用自定义光标测试碰撞,而不是为需要翻转功能的所有对象创建类。我目前还不知道有多少对象需要这种翻转功能,因为我正在使用的设计师仍在计算游戏细节,因此在需要时只需添加数组所需的内容就更容易了。我结束了这个:
ServiceLocator.Current.GetInstance<[OBJ-TYPE]>()