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

sinya 10.12.2008 02:46

как динамически вставлять имя класса, экземпляр которого создаем?
 
Привет!
У меня есть в библиотеке несколько объектов, ну и классы для них: Enemy1, Enemy2, ..., EnemyN

Как мне в цикле for (var i = 0; i < N; i++) грамотно создать экземпляр каждого из них? Спасибо.

s8000_1 10.12.2008 03:09

http://developer.yahoo.com/flash/ast...lassreference/
Класс UIComponentUtil,
getClassDefinition ()
getDisplayObjectInstance()

sinya 10.12.2008 03:35

Спасибо. Неужели нет способов это сделать без подключения каких-то неадобовских библиотек? Какой-нибудь там eval..
UPD:
А, кажись нашел: flash.utils.getDefinitionByName()

s8000_1 10.12.2008 10:53

sinya, собственно, там три функции по объему крайне маленькие, используют тот же getDefinitionByName, просто они универсальны и отлажены

DarkLight 10.12.2008 12:28

А getDefinitionByName не отлажена?:) При всей моей любви к astra, ради такого ее цеплять смешно:)

s8000_1 10.12.2008 13:17

DarkLight, Astra тут не причем )
это кусок из UIComponent, просто чуть более универсален чем getDefinitionByName, т. к. туда можно не только названия классов в качестве параметра передавать.

DarkLight 10.12.2008 13:22

Ну это да, просто, как я вижу по исходной задаче, этот тут не требуется

s8000_1 10.12.2008 13:28

DarkLight, конечно... может и не требуется :) Но есть существенный факт - оно может потребоваться при апгрейде приложения, это нельзя не учитывать.
Зачем потом плодить n вариантов одного и того же, если можно сразу использовать то, что 99% покрывает необходимость будущего?

Zen 12.12.2008 12:15

А можно примерчик, как этим классом UIComponentUtil пользоваться?
К примеру нужно создать экземпляры класса Class_mc с именами Mc01, Mc02...McN

Добавлено через 8 часов 10 минут
Вопрос снят, мне уже помогли.
Если кому интересно, то вот что я хотел узнать:
Код AS3:

this.movies = [];
for(var i:int = 0; i<10; i++){
var mc:YourClass = new YourClass();
mc.x = i*10;
mc.y = 0;
this.addChild(mc);
this.movies.push(mc);
}//for

создаёшь массив ссылок


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

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