![]() |
Создать кучу объектов через функцию
Приветствую всех.
У меня такой вопрос. Есть много объектов которые прописываю по несколько строк, но строки одинаковые, только меняются названия переменных: Код AS3:
Код AS3:
Но я что то не так пишу и оно не работает. Прошу помощи от знающих. Заранее спасибо. |
Код AS3:
|
Интересная логика...
Код AS3:
Код AS3:
|
объекты в данной задаче это отдельные классы? по - какому алгоритму будет вызываться функция, которая должна создавать новый объект?
|
можно сделать типа так:
Код AS3:
у меня такая конструкция работает в objectArray лежат все ваши созданные налету объекты addChild вынес за пределы функции создания, так как иногда не нужно сразу добавлять объект на сцену, но он должен быть создан |
Я делал похожую задачу, реализовал через конструктор в базовом классе. Все объекты были наследники от базового класса, соответственно перекрывались только необходимые методы. А в базовом классе был создан метод construct
Код AS3:
И соответственно чтобы получить объект мне нужно было только знать его тип определенный в xml. Передавая указание какой тип объекта надо создать я получал на выходе готовый объект столько раз сколько это было необходимо. |
Быть может я не так обрисовал картину.
Поясню по другому: Я постоянно делаю 3 действия для создания каждого объекта Код AS3:
МАТЕРИАЛ - это унаследованный от MaterialObject3D класс (BitmapAssetMaterial пока) у которого меняется лишь имя текстуры при объявлении экземпляра: var Rediska_BAM:BitmapAssetMaterial = new BitmapAssetMaterial("имя_текстуры"); В итоге нужно написать функцию где я буду указывать КЛАСС объекта и ИМЯ_ТЕКСТУРЫ в качестве аргументов. Что то типа: function createObj (КЛАСС: DisplayObject3D,ИМЯ_ТЕКСТУРЫ: MaterialObject3D) { создать объект КЛАССА Rediska_obj с МАТЕРИАЛОМ Rediska_BAM } |
Может тогда как то вот так попробовать
Код AS3:
|
да и наверное, не стоит тут делать addChild, лучше возвращать созданный displObj.
|
Большое, человеческое СПАСИБО всем и особенно SunShadow
Заработало. Добавлено через 2 часа 55 минут АААААААААА. Работает, но только когда как. Короче ещё один камень всплыл. ИТак пишу: Код AS3:
Коментирую пару обектов: Код AS3:
Сначала грешил на закоментированные объекты, но когда оставил только их, они чудесно скомпелировались. Напомню, что LIV_neft_bochka, LIV_neft_datchik, LIV_neft_lestnica и т.д. это отдельно описанные классы унаследованые от DisplayObject3D. (В них описана геометрия) Работаю во Flash cs4. ВОТ НАШЁЛ ОТВЕТ И ЛЕКАРСТВО: http://www.flasher.ru/forum/showthre...ighlight=5005: |
| Часовой пояс GMT +4, время: 06:54. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.