2012-11-29 24 views
0

我有三个不同的按钮。当你点击其中一个按钮时,它应该激活stageSelect功能,然后它应该输出按钮的号码。AS3:int在预期布尔值的地方使用

但是,当我这样做,我得到的标题错误。我在这里做错了什么?

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

    public class MenuScreen extends MovieClip { 
     public function MenuScreen() { 
      Mouse.show(); 
      selectGrass.addEventListener(MouseEvent.CLICK, stageSelect, 1); 
      selectDirt.addEventListener(MouseEvent.CLICK, stageSelect, 2); 
      selectGravel.addEventListener(MouseEvent.CLICK, stageSelect, 3); 
     } 

     public function stageSelect(stageID:Number) { 
      trace(stageID); 
     } 
    } 
} 
+0

你不能传递参数给事件侦听器的方式。请参阅http://stackoverflow.com/questions/1464925/passing-parameters-to-event-listeners-handlers –

回答

3

这是因为该方法的addEventListener第三个参数是将useCapture这需要一个布尔说,你希望冒泡之前在捕获阶段抢事件。要调用

selectGrass.addEventListener(MouseEvent.CLICK, StageSelect, 1); 

你需要做的,而不是什么是

selectGrass.addEventListener(MouseEvent.CLICK, grassSelected); 
selectDirt.addEventListener(MouseEvent.CLICK, dirtSelected); 

private function grassSelected(event:MouseEvent):void{ 
    // do grass stuff 
} 

private function dirtSelected(event:MouseEvent):void{ 
    // do dirt stuff 
}