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++;
} 

 

 

監聽傳入的參數值爲常量

 


 

發佈了340 篇原創文章 · 獲贊 25 · 訪問量 98萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章