在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++;
}
監聽傳入的參數值爲常量