Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Обращение к детям addChild (http://www.flasher.ru/forum/showthread.php?t=140069)

Maraekb 19.05.2010 16:38

Обращение к детям addChild
 
Подскажите пожалуйста как сделать так чтобы можно было обращаться к динамически созданым детям, или как задать им имя для последующего обращения?
Код AS3:

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

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

proxiServer 19.05.2010 16:48

Код AS3:

                        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

Подходов много.

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

Код AS3:

var s:Sprite = new Sprite( );
addChild(s);
s.name = "clip";
 
s.x = 100;
 
trace(s.x);
trace(getChildByName("clip").x);

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

Код AS3:

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);

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

Код AS3:

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()


Часовой пояс GMT +4, время: 06:05.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.