我在这里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);
}
}
}
答案 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;