Может ли любой Flash-компилятор поместить сценарии в несколько кадров?

Может ли какой-либо компилятор Flash поместить конкретные сценарии в определенные кадры SWF-фильма?

Как вы можете сделать из Flash IDE, просто поместите сценарий в нужный кадр с помощью панели " Таймлайн", и сценарий будет скомпилирован в этот кадр SWF-файла Flash-фильма.

Например. сценарий на кадре 1:

trace("Reached frame 1");

Например. сценарий на кадре 2:

trace("Reached frame 2");

SWF-компиляторы: (с надеждой)

  • Компилятор AS3 - Haxe
  • Компилятор AS2 - MTASC
  • Adobe Flex Compiler - Mxmlc
  • C# для SWF-компилятора - Debreuil

6 ответов

Решение

Это возможно с MXMLC, хотя это не очень хорошо задокументировано.

Google Search for Flex Frame Metadata покажет вам код. Немного проб и ошибок, и вы сможете получить что-то работающее. (Это то, как работает Flex Preloader)

И MTASC, и Haxe позволяют вводить код в определенный фрейм существующего SWF-файла. Обычный процесс заключается в создании библиотеки SWF с использованием SWFMill, которая содержит все ваши активы. После этого вы вставляете свой код одним из компиляторов в этот SWF, в результате чего получается новый SWF.

После внедрения кода в кадр 1 попробуйте также ввести код в кадр 2 в качестве следующего шага. Теоретически это должно работать. Я сам не пробовал, так что вы можете поэкспериментировать с этим.

Насколько я знаю, ни один из упомянутых вами компиляторов не управляет выполнением на основе временной шкалы. Но SWFMILL может помочь здесь. Я советую вам скомпилировать ваши собственные двоичные файлы, потому что предварительно скомпилированные двоичные файлы довольно устарели и не содержат важных исправлений.

Существует небольшой хакский инструмент для написания неко, который позволяет вам создавать многокадровые swfs: http://gamehaxe.com/2009/02/04/haxe-preloader-for-flash-written-in-haxe/

Может быть, вы также можете взглянуть на недокументированную функцию

addFrameScript(frameNumber,function,frameNumber,function...)

Что касается использования ASC с открытым исходным кодом в FLEX SDK, вы можете использовать его для компиляции, а затем конвертировать полученный abc в тег DoAbc и поместить в нужный кадр с любой библиотекой, которая обрабатывает формат файла swf.

Другие вопросы по тегам