К счастью для вас, в AS3 класс MovieClip определен как динамический класс (и только ролики, а не спрайты). В классе, который был определен как динамический, вы можете добавить новый динамический экземпляр к любому экземпляру этого класса с помощью стандартного оператора назначения переменных.
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 ^ _ ^
Exemple
Теперь давайте динамически создадим несколько мувиклипов, а затем изменим свойство одного из них.
Синтаксис AS2:
for(var i:Number = 0; i < 10; i++){
_root.createEmptyMovieClip("button" + i, _root.getNextHighestDepth());
}
Тогда вы можете напрямую позвонить в ваш видеоклип:
button3._x = 100;
button3._y = 300;
или динамически, используя это:
this["button" + i]._x = 100;
this["button" + i]._y = 300;
В AS3 все совсем по-другому (и было бы много способов сделать это).
Синтаксис AS3:
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;
}
Тогда вы можете повеселиться с вашими клипами, динамически:
button[2].graphics.beginFill(0x000000);
button[2].graphics.drawCircle(100, 200, 10);
button[2].graphics.endFill();