Actionscript 3 在Movieclip或Sprite中存储变量
如何将数据添加到动态创建的MovieClip/Sprite中,以便稍后在与该MovieClip/Sprite协调的事件中访问数据 示例代码: for(var i:int; i < xml.children(); i++){ var button:MovieClip = new MovieClip(); button.graphics.beginFill(0x000000); button.graphics.drawCircle(100 + 20 * i, 200, 10); button.graphics.endFill(); button.addEventListener(MouseEvent.MOUSE_UP, doSomething); button.name = "item_"+i; button.storedData.itemNumber = i; } function doSomething(e:Event):void { trace(e.target.storedData.itemNumber); } for(var i:int;iActionscript 3 在Movieclip或Sprite中存储变量,actionscript-3,Actionscript 3,如何将数据添加到动态创建的MovieClip/Sprite中,以便稍后在与该MovieClip/Sprite协调的事件中访问数据 示例代码: for(var i:int; i < xml.children(); i++){ var button:MovieClip = new MovieClip(); button.graphics.beginFill(0x000000); button.graphics.drawCircle(100 + 20 * i, 200,
var myInstance:DynamicClass= new DynamicClass();
myInstance.foo = "hello World"; // this won't cause any compile time errors
trace(myInstance.foo ); //returns hello World
EA-SY^_^
例
现在让我们动态创建几个movieclip,然后更改其中一个的属性
AS2语法:
for(var i:Number = 0; i < 10; i++){
_root.createEmptyMovieClip("button" + i, _root.getNextHighestDepth());
}
var button:Array = new Array();
for (var i:Number = 0; i < 10; i++) {
var _mc:MovieClip = new MovieClip();
addChild(_mc); // in AS3 when you create a MovieClip, it remains in memory and won't be seen on stage until you call addChild(_mc)
button[i] = _mc;
}
或者通过使用以下命令来动态执行:
this["button" + i]._x = 100;
this["button" + i]._y = 300;
在AS3中,这是完全不同的(有很多方法可以做到)
AS3语法:
for(var i:Number = 0; i < 10; i++){
_root.createEmptyMovieClip("button" + i, _root.getNextHighestDepth());
}
var button:Array = new Array();
for (var i:Number = 0; i < 10; i++) {
var _mc:MovieClip = new MovieClip();
addChild(_mc); // in AS3 when you create a MovieClip, it remains in memory and won't be seen on stage until you call addChild(_mc)
button[i] = _mc;
}
太棒了,那么我如何在for循环中创建一个动态按钮名,比如button1、button2、button3等等;