PDA

Просмотр полной версии : Динамическое создание объектов в AS3.0 (Flash CS3)


AlexFomin
08.05.2007, 11:59
Добрый день!
В очередной раз молю о помощи:)
Задачка следующая: создать некий менеджер слоев, т.е. по кнопке Add вызывается функция, добавляющая следующий слой, который ляжет поверх уже существующих, в дальнейшем можно будет менять положение этих слоев по глубине, и если нужно, удалять. Так вот, количество слоев в общем случае неопределено. В AS2 решил бы эту задачу так: использовал бы клип(который представляет слой) из библиотеки и пристегивал бы его attachMovie, ну или создавал бы контейнер createEmptyMovieClip, но главное что в этих методах можно было сделать автоматическое присвоение имени экземпляра. Но в документации на AS3 в разделе AS2.0 Migration указано что оба метода удалены и использовать addChild и new соответственно, но как в данном случае организовать автоматическое создание клипов с разными именами экземпляров. Трудно переключиться на другую идеалогию, но необходимо по условиям задачи AS3.0:o
Подскажите плз какую концепцию использовать в данном случае?.:confused:

etc
08.05.2007, 12:04
У наследников DisplayObject есть свойство name, его можно задать, а обратиться можно, используя getChildByName. (Не забывать ещё кастить в нужный тип). Хотя, что мешает держать ссылки на клипы в массиве и обращаться к нужным элементам потом?

AlexFomin
08.05.2007, 13:23
Вроде допер, главное было понять что например двухкратный вызов метода аналогичного addLayer() приведет к созданию двух разных child объектов для DisplayObjectContainer, несмотря на одинаковое имя newClip


private var i:uint = 0;
public function addLayer() {
var newClip:MovieClip = new MovieClip();
newClip.name = "clip" + String(i);
newClip.x = i*50;
newClip.y = i*50;
Stage.root.addChild(newClip);
i++;
}


Спасибо:)