AS3中通過事件監聽傳遞引數以及動態變數傳遞的問題
阿新 • • 發佈:2019-02-19
在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++; }
監聽傳入的引數值為常量