2013-08-28 2 views
-1

Это вопрос архитектуры, который, я надеюсь, решает некоторые проблемы, возникающие с проблемой большого ИШ, с которой я работаю.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. Я пробовал все обычные трюки, ожидая стадии и т. Д.

Является ли это подходящей архитектурой для такого рода вещей? И если это так, то какова сделка с импортными символами? Разве они не существуют, если они не используются?

+0

Я нашел, что пишу ответ более часа, однако мне всегда нужно остановиться где-то, потому что вы на самом деле не задаете вопрос и не можете ответить на этот вопрос.Основные рекомендации: избегайте размещения кода в компонентах, используйте их для обмена СОДЕРЖАНИЕМ (шрифты, градиенты, текстуры) –

+0

Спасибо за тонну за попытку, и я приношу свои извинения за то, что я немного повсюду. В каких-либо временных рамках нет кода, но вы предлагаете не иметь никакого кода в файлах общих ресурсов? Итак, если есть общая кнопка, это буквально только графическая кнопка, а не код управления ею? Это похоже на то, как Autodesk предлагает использовать библиотеки Scaleform CLIK, я считаю. – steveb

+0

Ваш пробег может отличаться, но я предлагаю не иметь код в компонентах. Если вы спуститесь по этой дороге, становится очень трудно уйти от раздувания самого компонента, чтобы обрабатывать все виды запросов (анимационная кнопка определенным образом на одном экране, вертикальные тексты в кнопке, изменение текста одним способом на определенном зависящем от экрана на здоровье пользователя ...). Легче обрабатывать эти сценарии, если только общий контент, а затем вы делаете материал, похожий на 'new BasicButton (mc_that_is_or_is_not_a_component)'. –

ответ

0

У вас есть «Экспорт в рамке 1», отмеченный в свойствах символа?

Если нет, то да, только символы, которые появляются на сцене, будут экспортированы и доступны родительскому SWF.

+0

У меня есть «Экспорт в рамку 1». Мне повезло добавить пустые файлы классов в моей кодовой библиотеке ActionScript для символов, не находящихся на сцене, но это кажется чрезмерным, чтобы сделать это для каждого актива, который я хочу создать из кода. – steveb

Смежные вопросы