![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
[+1 15.01.11]
Регистрация: Jan 2011
Сообщений: 70
|
Добрый день.
Хочу сделать фабрику объектов. Для этого я в функцию передаю строковую переменную "имя класса". Как бы мне внутри функции создать объект этого типа? Но чтобы не прописывать в функции 100500 кейсов вида "если 1, то создаем объект крестик" "если 2, то создаем объект нолик" Конструкцию он кушает, но выпадает с ошибкой на этапе выполнения. "Error #1007: Instantiation attempted on a non-constructor" Гуглинг продолжаю, но что-то не могу запрос чтоль составить нормальный =/ |
|
|||||
|
getDefinitionByName()
Добавлено через 2 минуты Но при этом имя класса должно быть полным, т.е. вместе с пакетом. А что вам мешает передавать сам класс?
__________________
משיח לא בא משיח גם לא מטלפן |
|
|||||
|
[+1 15.01.11]
Регистрация: Jan 2011
Сообщений: 70
|
м.. что значит "передать класс"? Я подгружаю данные из XML. Там названия классов и координаты.
|
|
|||||
|
[+1 15.01.11]
Регистрация: Jan 2011
Сообщений: 70
|
Чертоффски криво выглядит. =(
Да и в XML теперь придется засовывать полное имя класса через getQualifiedClassName. Беда. |
|
|||||
|
буду краток
модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
|
Ну сделайте алиасы свои
типа ну или воспользуйтесь стандартными getClassByAlias и registerClassAlias
__________________
Отряд Котовскага |
|
|||||
|
Цитата:
Тут два варианта или алиасы или полное имя.
__________________
משיח לא בא משיח גם לא מטלפן |
|
|||||
|
блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
|
Если нельзя будет написать что-то типа
То тогда уж лучше фабрику забабахать)
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают. Последний раз редактировалось -De-; 27.09.2011 в 16:40. |
|
|||||
|
[+1 15.01.11]
Регистрация: Jan 2011
Сообщений: 70
|
Цитата:
вместо var testDef:Class = getDefinitionByName(testArray[testIndex]) as Class; var testResult = new testDef(); switch (testIndex){ case 1: var testResult = new Sprite(); case 2: var testResult = new MovieClip(); } Добавлено через 7 минут Цитата:
То есть. В XML делаю две секции: описание классов, и само содержимое. Загружая описание, я заполняю массив "string2Class" значениями. А вторую часть обрабатываю уже функцией "createClassByName". Затея такова, что мне совершенно не хочется переписывать методы загрузки/сохранения при дальнейшей модификации. Последний раз редактировалось flax4Noob; 27.09.2011 в 16:28. |
|
|||||
|
блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
|
Цитата:
Я бы рекомендовал закинуть все классы, создаваемые с помощью xml в один package. Можно ещё вбить руками список пэкэджей (если у вас ещё и стопицот пэкэджей, в которых могут быть эти классы то вам один хрен ничего не поможет) и искать классы по ним при первой встрече.
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают. |
![]() |
![]() |
Часовой пояс GMT +4, время: 20:09. |
|
|
« Предыдущая тема | Следующая тема » |
|
|