Это вопрос архитектуры, который, я надеюсь, решает некоторые проблемы, возникающие с проблемой большого ИШ, с которой я работаю.Flash Architecture и «TypeError: Error # 1009:«
Фон: Я создаю интерфейс в игре во Flash (используя Flash CC) для использования с Scaleform. Я где-то между носом и умеренно знающим; вероятно, достаточно последнего, чтобы быть опасным.
Моя текущая архитектура:
- Родитель: Это будет управлять и создавать все экземпляры пользовательского интерфейса. Он имеет собственный FLA/SWF-файл.
- Компонент 1: Это один из компонентов родителя, со своим собственным FLA/SWF файл
- Компонент 2: Это еще один компонент родителя, со своим собственным FLA/SWF файл
- общих HUD активов : Это содержит общие элементы между всеми элементами (собственный FLA/SWF-файл); он экспортирует все свои символы, и они импортируются в библиотеки соответствующего компонента.
- Общие активы: это общий для всех пользовательских интерфейсов (кнопки, фон и т. д.). Он также экспортирует/импортирует, как активы HUD.
Цель состоит в том, чтобы разрешить сохранение нескольких типов компонентов в каждом файле компонентов, при этом HUD выбирает, какой из них использовать и «собирать» HUD. Художники могли бы работать в файлах компонентов и активов, не касаясь более крупного файла HUD и не гаснуть в коде.
Первоначально я пытался хранить все активы в основном родителе, но Flash ... немного больно с управлением импортированными символами для нескольких макетов. Я получаю дублирующиеся шрифты, разрывы ссылок и т. Д.
Далее я попытался создать экземпляры с использованием чистого AS, то есть «component = new component()» из импортированных файлов AS, но, похоже, я запустил в проблемы с макетами, созданными в Flash IDE (и не выполненными исключительно в AS), не доступными для родителя. (Я предполагаю, что это проблема, возможно, я неправильно понимаю, что некоторые люди сталкиваются с подобными проблемами на этом сайте и т. Д.)
Теперь я решил загрузить файлы SWF, чтобы решить эту проблему, m, запущенный в число «TypeError: Error # 1009» в этих загруженных SWF-файлах; в частности, кнопку (AnimatedToggleButton), на которую ссылается другой компонент Scaleform (ButtonBar). И он, и ButtonBar импортируются в компонент HUD из общих ресурсов, но AnimatedToggleButton не используется нигде. Он правильно экспортирует и импортирует и работает с момента компиляции в компоненте SWF, но он появляется как отсутствующий класс/null в родительском объекте при загрузке SWF. Я пробовал все обычные трюки, ожидая стадии и т. Д.
Является ли это подходящей архитектурой для такого рода вещей? И если это так, то какова сделка с импортными символами? Разве они не существуют, если они не используются?
Я нашел, что пишу ответ более часа, однако мне всегда нужно остановиться где-то, потому что вы на самом деле не задаете вопрос и не можете ответить на этот вопрос.Основные рекомендации: избегайте размещения кода в компонентах, используйте их для обмена СОДЕРЖАНИЕМ (шрифты, градиенты, текстуры) –
Спасибо за тонну за попытку, и я приношу свои извинения за то, что я немного повсюду. В каких-либо временных рамках нет кода, но вы предлагаете не иметь никакого кода в файлах общих ресурсов? Итак, если есть общая кнопка, это буквально только графическая кнопка, а не код управления ею? Это похоже на то, как Autodesk предлагает использовать библиотеки Scaleform CLIK, я считаю. – steveb
Ваш пробег может отличаться, но я предлагаю не иметь код в компонентах. Если вы спуститесь по этой дороге, становится очень трудно уйти от раздувания самого компонента, чтобы обрабатывать все виды запросов (анимационная кнопка определенным образом на одном экране, вертикальные тексты в кнопке, изменение текста одним способом на определенном зависящем от экрана на здоровье пользователя ...). Легче обрабатывать эти сценарии, если только общий контент, а затем вы делаете материал, похожий на 'new BasicButton (mc_that_is_or_is_not_a_component)'. –