Форум 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=206550)

legionld 11.02.2014 11:49

Как организовать объявление переменных через цикл?
 
Добрый день, подскажите как организовать, объявление переменных через цикл, что бы код не был таким громоздким?
У меня объявляется n-ое колличиство переменных:

Код AS3:

var vrb1:Par1;
var vrb2:Par2;
////////////////
var vrb100:Par100;

Возможно ли все это вывести через цикл, что то вроде следующего

Код AS3:

for (i=1; i<=100; i++){
var ["vrb"+i]:["Par"+i];
}

Понимаю, что синтаксис не правильный, это для примера.

Vansimar 11.02.2014 11:54

Просто засунь все что нужно в массив!

legionld 11.02.2014 12:01

Цитата:

Сообщение от Vansimar (Сообщение 1159501)
Просто засунь все что нужно в массив!

Не совсем понимаю, как засунуть объект в массив, предварительно не объявив этот объект? Мб я плохо понимаю логику AS3, поясни, как это сделать?

Vansimar 11.02.2014 12:04

Как то так

Код AS3:

var array:Array = new Array();
 
for(var i:int = 0; i < 100; i++){
    array[i] = new Par();
}

и потом использовать как array[10], array[67] и так далее

Wolsh 11.02.2014 12:24

Vansimar, у товарища топикстартера не просто сто экземпляров. У него еще и каждый экземпляр — своего собственного Класса.

Vansimar 11.02.2014 12:26

Пусть тогда удалит флеш билдер или что там он юзает и забудет свои знания по программированию)) а если серьезно, то так совсем не должно быть)

legionld 11.02.2014 12:32

Цитата:

Сообщение от Vansimar (Сообщение 1159505)
Как то так

Код AS3:

var array:Array = new Array();
 
for(var i:int = 0; i < 100; i++){
    array[i] = new Par();
}

и потом использовать как array[10], array[67] и так далее

Все равно не пойму) У меня есть несколько классов(Par1... Par100) Каждый класс представляет собой МувиКлип мне нужно вытащить их на область отображения. Я делал это следующим образом

Код AS3:

var vrb1:Par1  = new Par1();
var vrb1:Par2  = new Par2();
var vrb1:Par3  = new Par3();
..............................................
var vrb1:Par100  = new Par100();
 
addChild(vrb1);
addChild(vrb2);
...................
addChild(vrb100);

А как переписать данный скрипт покороче?

Добавлено через 10 минут
Цитата:

Сообщение от Vansimar (Сообщение 1159507)
Пусть тогда удалит флеш билдер или что там он юзает и забудет свои знания по программированию)) а если серьезно, то так совсем не должно быть)

OK, как мне тогда вывести МувиКлипы не используя для каждого свой класс?

Vansimar 11.02.2014 12:43

Код AS3:

 
for(var i:int = 0; i < 100; i++){
var NewClass = getDefinitionByName("Par"+i);
addChild(new NewClass());
 
}

Добавлено через 58 секунд
Так должно помочь

Добавлено через 10 минут
Но опять же, это сработает, если в имена Классов начинаются одинаково и имеют отличие в идентификаторе, а если имена разные то придется вручную забивать в массив их и уже циклом потом добавлять на сцену

legionld 11.02.2014 13:10

Vansimar, большое спасибо!


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

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