![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Jul 2009
Сообщений: 149
|
Добрый день!
Допустим у меня есть класс MyClass и класс MnogoKlassov. Как мне в классе myClass создать произвольное количество экземпляров класса MnogoKlassov. Количество классов и их имена буду подгружать через php из базы данных, каждый раз количество и имена могут меняться. Допустим, я загрузил ответ от php, получил массив с именами классов, пусть будет namesArray. Пишу: package имяПакета{ import flash.display.MovieClip; public class MyClass extends MovieClip{ function MyClass() { for(var i:int=0;i<namesArray.length;i++) { this[namesArray[i]]=new MnogoKlassov(); }//for } } } Подскажите, пожалуйста, как решить данную проблему. P.S. Прошу прощения за может быть где-то не правильную терминологию, начал переходить на AS3 три недели назад. |
|
|||||
|
Регистрация: Apr 2010
Сообщений: 219
|
Вы путаете "имя класса" и "имя переменной". Если вы хотите динамически создавать переменные с указанными именами, то ИМХО у вас не правильно организована структура приложения.
А вообще почитайте про динамические (dynamic) классы. |
|
|||||
|
Регистрация: Jul 2009
Сообщений: 149
|
Большое спасибо за быстрые ответ. Заработало. Догадывался что нужно делать класс динамическим, но,
скажу вам по секрету, пусть это и смешно, я писал "dinamic" вместо "dynamic" и не понимал почему не подсвечивается средой разработки)) Мне просто надо было внимательнее читать книгу Мука. |
|
|||||
|
не используйте dynamic, это очень плохо с точки зрения ООП и последующей поддержки. Объявите массив и сожите объекты туда. А на себя сделайте addchild. Лежать(грфически) они будут на вашем объекте а ссылки на них будуте хранить в массиве и управлять ими оттуда.
|
|
|||||
|
блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
|
Тем же, чем и нетипизированные переменные (по сути они и создаются). Ну и на ровном месте +размер и, возможно, тормоза у класса.
Тут возможно поможет ассоциативный массив (ака Object для AS3). Или даже просто массива хватит.
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают. |
|
|||||
|
Тем что код не является самодокументированным и множество проверок типов которые можно делать при компиляции уходят в рантайм. Это катастрофически медленно в исполнении, и очень тяжело дебажить.
Добавлено через 5 минут я пишу очень большие и сложные проекты на AS3 и ещё ни в одном у меня не было даже мысли сделать dynamic или объявить нетипизированный object или *. Это наследие ECMAscript и я его не люблю. Я люблю строгую типизацию. Может потому что первым языком на котором я начал писать что-то существенное был C++ |
|
|||||
|
Регистрация: Jul 2009
Сообщений: 149
|
Aquahawk, вот так? Я вас правильно понял?
Если не трудно, объясните чем плохо использование dynamic с точки зрения ООП. |
![]() |
![]() |
Часовой пояс GMT +4, время: 14:59. |
|
|
« Предыдущая тема | Следующая тема » |
|
|