2013-10-13 50 views
1

我正在提出一个观点,并在AS3中用闪光灯点击游戏。如何更改光标滚动事件

我已经通过创建一个新类“Souris”来更改我的光标的皮肤。它工作得很好。现在我试图在光标位于场景上的某个对象上时更改光标的外观。

我读过的MouseEvent.ROLL_OVER是很好的方法,但我无法弄清楚如何做到这一点?

我有我的苏里斯类这样的:

public class Souris extends MovieClip 
    { 
private var engine:Engine; 
     private var stageRef:Stage; 
     private var p:Point = new Point(); 

     public function Souris(stageRef:Stage) 
     { 
      Mouse.hide(); //make the mouse disappear 
      mouseEnabled = false; //don't let our cursor block anything 
mouseChildren = false; 

      this.stageRef = stageRef; 
      x = stageRef.mouseX; 
      y = stageRef.mouseY; 

      stageRef.addEventListener(MouseEvent.MOUSE_MOVE, updateMouse, false, 0, true); 
      stageRef.addEventListener(Event.MOUSE_LEAVE, mouseLeaveHandler, false, 0, true); 
      stageRef.addEventListener(Event.ADDED, updateStack, false, 0, true); 
      stageRef.addEventListener(MouseEvent.ROLL_OVER,hover); 

     } 

     private function updateStack(e:Event) : void 
     { 
      stageRef.addChild(this); 
     } 
     private function hover(e:MouseEvent):void { 
       souris.visible = false; 
      } 

     private function mouseLeaveHandler(e:Event) : void 
     { 
      visible = false; 
      Mouse.show(); //in case of right click 
      stageRef.addEventListener(MouseEvent.MOUSE_MOVE, mouseReturnHandler, false, 0, true); 
     } 

     private function mouseReturnHandler(e:Event) : void 
     { 
      visible = true; 
      Mouse.hide(); //in case of right click 
      removeEventListener(MouseEvent.MOUSE_MOVE, mouseReturnHandler); 
     } 

     private function updateMouse(e:MouseEvent) : void 
     { 
      x = stageRef.mouseX; 
      y = stageRef.mouseY; 

      e.updateAfterEvent(); 
     } 

    } 

} 
} 

在我的主类(引擎类)我有:

private var souris:Souris; 

public function Engine(){ 



         souris = new Souris(stage); 
      stage.addChild(souris); 

     } 
private function startGame(e:Event):void{ 
.... 
.. 

我试图把在“Souris的”类

stageRef.addEventListener(MouseEvent.ROLL_OVER,hover); 

private function hover(e:MouseEvent):void { 
Engine.souris.visible = false; 
handCursor.visible = true ; 
} 

但它看起来不对...... 我不知道要放在我的悬停功能。 (我的图书馆里有“handCursor”)。

非常感谢您的帮助!

回答

0

如果你的库中有“handCursor”,那么你需要为它指定一个类,比如'HandCursor'。我建议类以大写字母开头。

所以,你的代码将需要创建一个新的实例,然后表现出来,就像

var handCursor:HandCursor = new HandCursor; handCursor.visible = false; 

handCursor.visible = false;使其不可见,则使其可见,您可以:

handCursor.visible = true; 

另外,handCursor是一个局部变量,如果放在一个函数中,为了使它成为全局函数,你需要把它放在你的类的开头。

此外,你有任何错误?如果是这样,请分享它们。

+0

没有错误,但当我将光标放在某个项目上时,我的手形光标不会出现...您知道为什么吗?我认为这是因为在我的引擎类中,我得到了souris.visible = true(我把你的代码放在“Souris”类中) – user2421975

+0

不,我认为这是不起作用的MouseEvent.ROLL_OVER ...也许它不会翻转,我必须把...不? – user2421975

+0

好的发现如何做到这一点。它是MouseEvent.MOUSE_OVER。 Thx为您提供帮助! – user2421975