Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   создание переменных циклом (http://www.flasher.ru/forum/showthread.php?t=133164)

Zen 29.11.2009 00:55

Ты конкретно опиши цель, которая перед тобой стоит... какие там "куски" ты собрался вытаскивать? А главное зачем?
P.S. не изобретай велосипед...

SamFR 29.11.2009 04:29

Цитата:

Сообщение от engineer_f_R (Сообщение 868932)
П.с.Неужели нельзя поинтересоваться неоптимальными способами, чтобы их узнать?

Вам уже всё рассказали:

Цитата:

Сообщение от GentleFLASH (Сообщение 868921)
А по теме - если объект динамический, то можно обращаться как: this["A" + i] где i это номер переменной.

То есть можно воспользоваться объектом (хэшем) вместо массива:

Код AS3:

var hash:Object = new Object();
hash['baseName' + i] = value;

Иногда этот способ более оптимален, чем использование массива. Но не факт, что в вашем случае это так.

И можно поинтересоваться, как связаны вложенные массивы и имена? Если уж на то пошло, объект под названием "массив" имени не имеет. Имя может иметь переменная, ссылающаяся на него. В случае вложенного массива на него будет ссылаться элемент родительского массива, который определяется своим номером, а не именем:

Код AS3:

var arr:Array = new Array();
arr[0] = [1, 2, 3];
arr[1] = ['a', 'b', 'c'];
trace(arr[0]);
trace(arr[1]);

Где вы тут имена увидели?)

cleptoman 29.11.2009 11:37

Код AS3:

var yourMovie:MovieClip;
var i:Number;
var length:Number = 100;
 
for(i = 1; i <= length; i++){
yourMovie = new MovieClip();
yourMovie.name = "A" + String(i);
trace(yourMovie.name);
}


engineer_f_R 29.11.2009 14:57

Спасибо тебе о cleptoman, за то что понял мой вопрос и дал краткий и хороший ответ!!! Тысяча тебе благодарностей!!!

Felicast 29.11.2009 15:13

Цитата:

Спасибо тебе о cleptoman, за то что понял мой вопрос и дал краткий и хороший ответ!!! Тысяча тебе благодарностей!!!
вы батенька, очень плохо изъясняетесь. ваш вопрос был:
Цитата:

сделать циклом переменные от А_1 до А_100
а приведенный пример cleptoman'а к этому никак не относится. самым близким к вопросу было решение, предложенное SamFR:
Код AS3:

var hash:Object = new Object();
hash['baseName' + i] = value;


SamFR 29.11.2009 18:47

engineer_f_R, не путайте имена переменных с именами экземпляров DisplayObject. Ваш вопрос, как вы его сформулировали, действительно был совсем про другое.

Код, предложенный cleptoman, задаёт именно имена отображаемых объектов, а не имена переменных. Чтобы впоследствии обратиться к такому объекту, нужно, во-первых, сразу после создания и назначения имени добавить его в какой-нибудь контейнер (container.addChild(yourMovie)), а впоследствии обращаться с помощью container.getChildByName("A" + String(i)). Как к именованной переменной вы обратиться к такому объекту не сможете. Кроме того, это не самый оптимальный по скорости метод, да и работать он будет только с наследниками DisplayObject.

cleptoman 29.11.2009 23:23

вот что собсно сподвигло на код:

Цитата:

Сообщение от engineer_f_R (Сообщение 868925)
я создаю много экземпляров мувиклипа и хочу чтобы у каждого было уникальное имя, даное ему по порядку его добавления. И я не знаю изначально сколько штук экземпляров у меня будет.

с первоночальной формулировкой даа, траблы )


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

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