Flash AS3 MouseOver无法正常工作

时间:2016-02-23 04:29:32

标签: actionscript-3 flash

我无法按照预期一致地触发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函数被调用并在游标类中执行(我从跟踪中知道)但光标永远不会改变。

我错过了什么?

1 个答案:

答案 0 :(得分:2)

我认为实现我想要的最好方法是使用自定义光标测试碰撞,而不是为需要翻转功能的所有对象创建类。我目前还不知道有多少对象需要这种翻转功能,因为我正在使用的设计师仍在计算游戏细节,因此在需要时只需添加数组所需的内容就更容易了。我结束了这个:

ServiceLocator.Current.GetInstance<[OBJ-TYPE]>()