|
|
|||||
Записать байткод
Здравствуйте
Второй день сижу над спецификацией формата swf и глаза, соответственно, немного в кучу =) Собственно, страшного (вроде) в нем ничего нет... НО Если кто-нибудь имел с ним дело, подскажите пожалуйста, как правильно записать весь этот ужас в байткод - я имею в виду формат записи чисел: UI8 UI16 SI8 SI8[n] ... ... и т.д. и т.п. ЗЫ Вдруг захотелось сгенерировать одной флешкой другую флешку =)) ЗЗЫ я и сам понимаю, что много хочу, и поэтому буду рад любым подсказкам/ наводкам/ ссылкам
__________________
...вселенская грусть |
|
|||||
Modus ponens
|
UI8 - writeByte()
UI16 - writeShort() SI8 - writeByte() SI8[n] - не знаю что такое Проблематичнее когда нужно записывать биты, очень длинные числа, или числа с компрессией - я с последними двумя так и не разобрался до конца.
__________________
Hell is the possibility of sanity |
|
|||||
>>Вдруг захотелось сгенерировать одной флешкой другую флешку =))
а, чего должно быть в сгенеренной флешке? Если сгенереннные флешки однотипны, те. должны меняться только какие-то отдельные данные, не думаю, что ваша цель сделать компилятор флеша на флеше. То можно поступить так, сделать флешку шаблон, в которой оставить место под эти меняющиеся данные, те. флешка с длинной строкой, строку можно забить хоть так: пару килобайт единиц должно хватить, теперь компилим флешку шаблон, так, что-бы у нее в выходном swf файле были несжатые данные, во флеш cs3 для этого достаточно снять галку с []compress movie. Ембедим флешку-шаблон во флешку генератор флешек, и вот пользователь чето рисует, тягает или пишет, нажимает на кнопку сохранить как swf, ищем во флешке шаблоне единицы, или берем положение единиц из константы и заменяем единицы на данные, которые натворил пользователь. Ну, а дальше save. |
|
|||||
Ну вообще-то я именно хочу сделать компилятор флеша на флеше =)
ШУЧУ Я хочу добиться примерно вот такого функционала: 1- Выбрали картинку на рабочем столе (FileReference) 2- Выбрали mp3 звук ... все так же точно 3- Выбрали другую swf с анимацией, звуками и т.д. 4- Распарсили swf(из пункта 3) на байткод, вынули оттуда имена и содержимое классов (то есть других картинок, звуков и swf - ... маленькая такая рекурсия =) ) 5- зарегистрировали полученные классы, отобразили это графически и выбрали, что в нашей библиотеке должно остаться, а заодно и прописали новые className всем элементам 6- FileReference.save() Все очень просто и очень сложно одновременно На выходе - удобный инструмент для быстрого создания и редактирования swf-библиотек (без использования Flash вообще, что, ИМХО, +1) 2 AlexLexcuk ну в общем-то примерно так... Создать начало, создать конец, а середину генерировать Цитата:
UPD: нашел: Project -> Properties -> вкладка Compiler Options -> Optimize bytecode 2 wvxvw Цитата:
PS На самом деле для меня сейчас важен вот такой вопрос: как из числа 4 получить число 0x04 (как его так отобразить???) Потому как читая спецификацию swf заметил, что там все именно так и записывается (с такой записью удобнее выстраивать байты по старшинству там, где это необходимо)
__________________
...вселенская грусть Последний раз редактировалось gloomyBrain; 08.08.2009 в 15:55. |
|
|||||
Et cetera
Регистрация: Sep 2002
Сообщений: 30,784
|
|
|
|||||
etc, спасибо за ссылку
В общем-то идея и родилась, глядя на строчку getDefinitionNames() =) Вы не будете против, если я использую для экспериментов часть Вашего кода?
__________________
...вселенская грусть |
|
|||||
Et cetera
Регистрация: Sep 2002
Сообщений: 30,784
|
Да пожалуйста.
|
|
|||||
увенчались эксперименты успехом? интересно было бы посмотреть!
__________________
flash portfolio |
|
|||||
Et cetera
Регистрация: Sep 2002
Сообщений: 30,784
|
ResourceThief надо апгрейдить, там косяков выше крыши, на половине флешек валится в хлам.
|
|
|||||
Регистрация: Nov 2005
Сообщений: 1,155
|
gloomyBrain, это Вам надо подробно изучать спецификацию SWF v9-10, потому что просто так из байткода графический элемент или звук не выкинешь. Весь байткод это цепочка тегов, в каждом описан один элемент, а заголовок тега указывает на его длину, то есть не как в xml - тег открылся - тег закрылся, конец надо вычислять, и если какой то тег выбрасывать, то соответственно все заголовки надо переписывать. etc, я прально говорю?
|
Часовой пояс GMT +4, время: 01:23. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|