Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Как создать массив мовиклипов (http://www.flasher.ru/forum/showthread.php?t=79104)

_alex_niv_ 02.05.2006 12:24

Как создать массив мовиклипов
 
Добрый день!

Еще один вопрос - у меня в сцене используется 10 текстовых полей, которое я беру из библиотеки (оформленное как мовиклип).
Можно ли создать массив, состоящий из этих полей, что бы обращаться к ним как к элементам массива?

Король 02.05.2006 12:32

а вы пробовали?

breez38 02.05.2006 12:33

да легко:

Код:

var arr:Array = new Array();
arr.push(mc1.txtField);
arr.push(mc2.txtField);
......
arr.push(mcN.txtField);

.....
//индексация начинается с 0
arr[3].text = "Привет"; //выведит в 4-ом текстфиелде текст


undeddy 02.05.2006 12:52

Только с циклом код несколько меньше.

breez38 02.05.2006 13:09

to undeddy
это само собой, но если человек с массивами толком не знаком, то забивать ему голову циклами не нужно.. это потом с опытом прийдет.

Homo Sapiens 02.05.2006 15:16

Цитата:

это само собой, но если человек с массивами толком не знаком, то забивать ему голову циклами не нужно.. это потом с опытом прийдет.
Нужно, а то не поймёт, в чём преимущество массивов.
Код:

var arr:Array = new Array(10);
for(var i = 0; i < arr.length; i++)
{
    arr[i] = this["mc" + i].txtField;
}

//индексация начинается с 0
arr[3].text = "Привет"; //выведит в 4-ом текстфиелде текст


Nirth 02.05.2006 15:37

Код:

arr[i] = this["mc" + i].txtField;
я бы не назвал такую методику правильной, исполльзовать ее нужно, только при условии, что невозможно использовать push или unshift

iNils 02.05.2006 15:44

Цитата:

Сообщение от Nirth
я бы не назвал такую методику правильной, исполльзовать ее нужно, только при условии, что невозможно использовать push или unshift

Это кому как больше нравится.

Nirth 02.05.2006 17:33

тогда можно юзать не Array а Object =)
Код:

var holder:Object = {length:10};
for (var i:Number=0;i<holder.length;i++) {
        holder[i] = _root["mc"+i.toString()];
        trace(holder[i]);
}


Homo Sapiens 02.05.2006 17:54

Цитата:

я бы не назвал такую методику правильной, исполльзовать ее нужно, только при условии, что невозможно использовать push или unshift
Всему своё место. Кстати, у меня бага есть, первый элемент не добавится, как и последний.
Код:

arr[i] = this["mc" + (i + 1)].txtField;
А так написал для своеобразной симметрии, чтобы показать соотношение между номерами элементов массива (0 - 9) и именами клипов (mc1 - mc10)


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

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