1. 程式人生 > >AS3中通過事件監聽傳遞引數以及動態變數傳遞的問題

AS3中通過事件監聽傳遞引數以及動態變數傳遞的問題

 在AS3中,新增監聽,可以通過一種簡單的方式傳遞引數

 如: column1.addEventListener(MouseEvent.MOUSE_OVER,function(e:MouseEvent){onMouseOverEvent(e,subRisk.days); });  //關於監聽方法傳引數的技巧

 private function onMouseOverEvent(e:MouseEvent, str:String):void{
         lablecon.x = e.stageX;
        lablecon.y = e.stageY;
        lablecon.text = "值:"+str;
 }

問題:通過這種方式可以傳遞簡單的靜態常量,但是如下面這種情況,會有問題 ,待解決...

 for each (var subRisk:XML in xmlRisk.area) {
     trace(subRisk..@display+"---"+subRisk.days); 
     //生成UI
     var ui:ZhangUI = new ZhangUI(); 
     var column1:Label = ui.createLableBack(164+i*13,124,subRisk.daylevel);
     var columnnum:Label = ui.createLableBackNum(150+i*13,200,subRisk.id);
     //?????????????????? 監聽這裡傳值有問題??  subRisk.days 不能用變數,還不知如何解決
column1.addEventListener(MouseEvent.MOUSE_OVER,function(e:MouseEvent){onMouseOverEvent(e,subRisk.days); }); //關於監聽方法傳引數的技巧 column1.addEventListener(MouseEvent.MOUSE_OUT,onMouseOutEvent); this.addElement(column1); if(subRisk..@display=="true"){this.addElement(columnnum);} i++; }

監聽傳入的引數值為常量