Почему Adobe Flex удаляет код ActionScript из Flash при компиляции? - PullRequest
1 голос
/ 09 августа 2009

Я хотел, чтобы анимация отправляла пользовательские события в цикле. Стало очевидно, что даже trace () не запущен. После некоторых поисков я обнаружил в Adobe следующее:
http://livedocs.adobe.com/flex/3/html/help.html?content=embed_4.html
«Если SWF-файл содержит какой-либо код ActionScript, Flex печатает предупреждение во время компиляции, а затем удаляет ActionScript из символа встраивания. Это означает, что вы можете встраивать только сам символ».

Я также нашел обходной путь Гранта Скиннера по адресу:
http://gskinner.com/blog/archives/2007/03/using_flash_sym.html

Итак, я могу продолжить, но мне все еще интересно. Почему mxmlc удаляет ActionScript из скомпилированных ресурсов Flash при встраивании их символов в приложения Flex с использованием метатегов?

Ответы [ 2 ]

3 голосов
/ 11 февраля 2010

Извините за очень поздний ответ, но так как я написал этот код, я могу ответить. : -)

В основном, есть два ответа.

  1. Для старых ресурсов SWF, содержащих байт-код AS2, было слишком много работы, чтобы попытаться преобразовать байт-код в AS3. Я предполагаю, что это не тот случай, если вы все равно заботитесь.

  2. Для ресурсов SWF, связанных с байт-кодом AS3, основная проблема заключается в том, что больше нет информации о зависимостях, поэтому, когда мы клонируем актив, мы не имеем понятия, что еще нам нужно будет извлечь. Поскольку Flash может экспортировать SWC, я решил, что это гораздо более надежный рабочий процесс для передачи ресурсов с кодом из Flash во Flex. (Загляните в SWC-файл, и вы увидите XML-файл, который описывает зависимости, используемые компоновщиком.)

0 голосов
/ 10 августа 2009

Вероятно, это проблема производительности. Чтобы загрузить ресурс SWF, не удаляя его, загрузите его динамически, используя SWFLoader или Loader вместо встраивания.

...