PDA

Просмотр полной версии : Обращение к детям addChild


Maraekb
19.05.2010, 16:38
Подскажите пожалуйста как сделать так чтобы можно было обращаться к динамически созданым детям, или как задать им имя для последующего обращения?

for (var i:* = 0; i<5 ; ++i)
{
var clip:MovieClip = new MovieClip;
addChild(clip)
}

Если можно то с примером)
Зарание Спасибо!:victory:

proxiServer
19.05.2010, 16:48
var mcArr:Array = new Array;
for (var i:* = 0; i<5 ; ++i)
{
var clip:MovieClip = new MovieClip;
addChild(clip)
mcArr.push(clip);
}
removeChild (mcArr[2]);

Maraekb
19.05.2010, 16:51
Тоесть все обращения надо проводить через массивы?

orcpochta
19.05.2010, 16:52
Подходов много.

Этот подход дает имя, но никогда так не делайте)))

var s:Sprite = new Sprite( );
addChild(s);
s.name = "clip";

s.x = 100;

trace(s.x);
trace(getChildByName("clip").x);

Этот подход из этой же серии, но другой и тоже плох:

var str:String = "clip";
var clip:Sprite;

for (var i:uint = 0; i < 5 ; i++)
{
clip = new Sprite( );
clip.x = 10 * i;
this[str + i] = clip;
}

trace(this[str + 3].x);

Хороший подход хранить элементы, если к ним понадобится доступ в массиве (или лучше векторе):

var clips:Array = [];
var clip:Sprite;

for (var i:uint = 0; i < 5 ; i++)
{
clip = new Sprite( );
clip.x = 10 * i;
clips[i] = clip; //эту строчку можно заменить на clips.push(clip);
}

trace(clips[3].x);

Maraekb
19.05.2010, 16:56
Огромное Спасибо!!!

Psycho Tiger
19.05.2010, 19:11
Этот подход из этой же серии, но другой и тоже плох:
Только при условии динамичности класса.

getChildAt до кучи.

artics
11.07.2010, 22:36
а у меня проблемка с детьми: есть клас game, который определен основным и клас drop . Я хотел чтоб в класе game создался масив drop, но когда я пробую сделать вышеуказаными методами, во всех случяях одинаковый ерор

TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null".
at drop()
at game()