自定义鼠标隐藏在对象as3后面

时间:2013-07-06 21:19:37

标签: actionscript-3 flash

我在这里http://www.nzombie.eshost.es/有一个自定义鼠标。它工作得很完美,只有当它在另一个电影剪辑后面时才会“隐藏”自己。我不知道出了什么问题。任何建议或帮助,不胜感激。这是鼠标类:

package 
{
import flash.display.MovieClip;
import flash.events.MouseEvent;
import flash.events.Event;
import flash.ui.Mouse;

public class myCursor extends MovieClip
{
    public function myCursor(stage):void
    {
        stop();
        Mouse.hide();
        stage.addEventListener(MouseEvent.MOUSE_DOWN, onDown);
        stage.addEventListener(MouseEvent.MOUSE_UP, onUp);
        stage.addEventListener(MouseEvent.MOUSE_MOVE, onMove);
        addEventListener(Event.REMOVED_FROM_STAGE, onRemove);
    }
    private function updateCoor(e:MouseEvent):void
    {
        x = e.stageX;
        y = e.stageY;
        e.updateAfterEvent();
    }
    private function onDown(e:MouseEvent):void
    {
        updateCoor(e);
        gotoAndStop(2);
    }
    private function onUp(e:MouseEvent):void
    {
        updateCoor(e);
        gotoAndStop(1);
    }
    private function onMove(e:MouseEvent):void
    {
        Mouse.hide();
        updateCoor(e);
    }
    private function onRemove(e:Event):void
    {
        Mouse.show();
        stage.removeEventListener(MouseEvent.MOUSE_DOWN, onDown);
        stage.removeEventListener(MouseEvent.MOUSE_UP, onUp);
        stage.removeEventListener(MouseEvent.MOUSE_MOVE, onMove);
        removeEventListener(Event.REMOVED_FROM_STAGE, onRemove);
    }
}
}

2 个答案:

答案 0 :(得分:0)

我认为问题不在于此类,而是在您添加myCursor对象的类中。

按钮可能是在光标&之后添加的。所以光标位于显示列表中的按钮后面。将按钮添加到舞台后,尝试添加myCursor

答案 1 :(得分:0)

如果要在运行时向舞台添加多个内容,则值得重写addChild,以便在索引1处添加所有内容,使光标(在索引0处)始终位于顶部。

这样的事情:

override public function addChild(value:displayObject):void
{
    var index:uint = 1;
    if(value is myCursor){index = 0;}
    addChildAt(value, index);
}

或者只是使用addChildAt(displayObject,1)添加新的显示对象,并确保将光标类添加到0;