在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++;
}
监听传入的参数值为常量