Mxmlc генерирует разные двоичные файлы на одном и том же источнике - PullRequest
3 голосов
/ 12 апреля 2011

Я собираю один файл .as в SWF, используя mxmlc.

Каждый раз, когда я запускаю mxmlc, результаты различаются по размеру, даже если исходный код не изменяется.

Например,

// Test.as
package
{
    public class Test
    {
    }
}

И генерирует .swf, используя mxmlc:

mxmlc Test.as

и размер результата отличается от 461 до 465 байт.

Полагаю, это из-за временных меток в компиляторе, но я не смог найти, как это исправить или отключить. Любые идеи по созданию "тот же двоичный файл из того же источника"? Спасибо!

Ответы [ 3 ]

2 голосов
/ 13 апреля 2011

Наконец, я обнаружил, что тег метаданных (Тип тега = 77) и недокументированный тег «информация о продукте» (Тип тега = 41) оба содержат время комплимента.

Мне удалось удалить метки времени, выполнив следующие действия:

1. open swf and un-zlib
2. clear timestamps in metadata tag and product info tag
3. re-zlib and make new .SWF

Но меня это не устраивает, поэтому для этого требуется дополнительная работа с SWF-файлом. Я хочу найти более легкий путь. на mxmlc может быть опция «обойти информацию о продукте».

Более подробную информацию о структуре SWF-файла и теге метаданных можно найти в http://www.adobe.com/devnet/swf.html, а информацию о продукте - в http://wahlers.com.br/claus/blog/undocumented-swf-tags-written-by-mxmlc/

1 голос
/ 12 апреля 2011

Вам необходимо переопределить метаданные, которые компилятор записывает в результирующий файл SWF.Вы можете сделать это с помощью компилятора -raw-metadata.

Использование:

mxmlc -raw-metadata <XML_String> Test.as

Пример:

mxmlc -raw-metadata '' Test.as

(результирующий swf всегда равен 190 байтов).

0 голосов
/ 27 декабря 2013

1: дата в метаданных:

mxmlc:

 <metadata date=" " />
 <raw-metadata></raw-metadata>

2: отметка времени в ProductInfo

скачать исходный код SDK и изменить ProductInfo.java,отметка времени остается неизменной, а затем обновляет класс ProductInfo.class в your_sdk_dir \ lib \ swfutils.jar

Однако, когда я это сделал, Mxmlc также генерирует разные двоичные файлы на одном и том же источнике.

Я думаю,я не могу изменить порядок ссылок компилятора.

...