Пакетная генерация SWF-файлов - PullRequest
2 голосов
/ 23 февраля 2012

Нам нужно сгенерировать около 8000 почти одинаковых SWF-файлов с немного другим текстом.Я знаю о flashvars, но, к сожалению, мы не можем контролировать публикацию этих файлов и не можем передавать flashvars. В идеале мне нужно, чтобы у нас был flash-дизайнер, который придумал красивый шаблондля нас с заполнителем текста или элемента в файле.Затем мы можем многократно вызывать утилиту командной строки, чтобы сгенерировать 8000 ее копий со слегка измененным текстом.

Я искал целый день и не нашел ничего, что могло бы нам помочь.Конечно, я не флеш-разработчик, но, похоже, это было бы довольно просто.

Ответы [ 2 ]

1 голос
/ 24 февраля 2012

Почему не работает MXMLC?

Какой целевой формат SWF?Если это 8 и ниже, вы можете попробовать MTASC в сочетании с SWFMill (он принимает исходные текстовые файлы для кода и графики).

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

Есливам нужно делать это в режиме реального времени, это будет зависеть от объема кода, который содержит ваш SWF-файл, и от того, сколько его нужно перекомпилировать, но обычно компилятор Haxe намного быстрее, чем MXMLC, и для небольших файлов его можно скомпилироватьих по запросу, а не предварительно скомпилировать все из них и обслуживать по требованию (зависит от того, что дороже, сколько времени потребуется для компиляции или места на сервере).

РЕДАКТИРОВАТЬ: скажем, выЕсли вы хотите использовать MXMLC, вы можете получить что-то вроде этого:

#!/usr/bin/env bash

for i in {0..8000}
do
    cp ./ClassWithText.template ./ClassWithText.as
    sed -i s/%pattern%/counter${i}/g ./ClassWithText.as
    mxmlc ./ClassWithText.as -o ./result-${i}.swf
done

ПРИМЕЧАНИЕ: вы, вероятно, не сможете получить глобальный доступ к mxmlc, потому что у него есть несколько жестко закодированных путей, поэтому вы должны использовать абсолютныепуть к компилятору, но идея должна быть такой же.

Тогда, скажем, у вас был этот текст в файле ClassWithText.templatee:

var myText:String = "%pattern%";

он будет преобразован в:

var myText:String = "counter0";

, а затем скомпилирован, "counter1", а затем скомпилирован и т. д.

0 голосов
/ 24 февраля 2012

Как говорит wvxvw, вы можете использовать mxmlc компилятор , а другой возможностью является сценарий Flash IDE с использованием JSFL .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...