处理器的参数传递方法

在ActionScript或JavaScript当中常常需要给处理器传递参数,可以用闭包来实现。

 package{ import flash.events.*; import flash.text.*; import flash.display.*; public class HandlerTest extends Sprite{ public function HandlerTest(){ init(); } public function init():void{ for(var i:int=0;i<5;i++){ var _text:TextField = new TextField(); _text.border = true; _text.height = 20; _text.y = i*40; addChild(_text); // 方法一: // (function():void{ // var index:int = i; // _text.addEventListener(MouseEvent.CLICK,function(e:Event):void{ // e.target.appendText(index + " "); // }); // })(); // 方法二: // _text.addEventListener(MouseEvent.CLICK,(function(index:int):Function{ // return function(e:MouseEvent):void{ // e.target.appendText(index+" "); // }; // })(i)); // 方法三:(优先该方法,使用该方法编译的文件最小) _text.addEventListener(MouseEvent.CLICK,onClick(i)); } } private function onClick(index:int):Function{ return function(e:Event):void{ e.target.appendText(index + " "); } } } }   

 

你可能感兴趣的:(JavaScript,function,Class,import,actionscript)