Вопрос

Мне дали SWF для редактирования ссылки в коде в качестве. Дело в том, что SWF использует некоторое XML, которое генерируется (фактически получено) через PHP-код из базы данных.

menuXML.load("/sub/page/dynamic.php?genre=" + genre); 

Таким образом, точка зрения мы можем использовать один и тот же SWF «Mainfralef» и заполнить их различными анимациями / источниками на основе ссылки, предоставленной в Dynamic.php? Жанр = ###

Теперь я использовал Flash Decompiler Gold для извлечения всех файлов в SWF и может открыть его снова в Adobe Flash, чтобы редактировать его. Когда закончите, я ввожу Ctrl + Enter, и есть сразу 4 ошибки компилятора !! Ошибки: 1x <неожиданные «если», столкнувшись> 2x <блок оператора должен быть прерван «}»> 1x <Ecpected имя поля после '.' оператор. >.

Как эти ошибки могут присутствовать, когда оригинальный SWF работает идеально ??!

Если мне не удастся решить это, мне придется выяснить, как создать файл .php, SWF пытается использовать, что может выбрать правильные ресурсы (из базы данных, которую я думаю), чтобы показать их (используя? Жанр = ###)

Спасибо!

Это было полезно?

Решение

Я не уверен, что понимаю вашу проблему, но кажется, что вам нужно менять URL-адрес, передаваемый на метод нагрузки. Также кажется, что ваш SWF - ActionScript 2.0.

Decompilers Вроде работы, но файл FLA, который вы можете генерировать с декомпилером, редко будет полезен для создания того же SWF. Иногда код незаконно, и почти всегда графика ввинчивается.

Однажды я должен был сделать несколько простых изменений кода (например, изменение нескольких URL-адресов и других простых вещей) к SWF, для которых у нас не было источников (они были потеряны, и не было никакого резервного копирования ...).

я использовал плазма Для этого и работал нормально (также это было не так тяжело, как я впервые предполагал).

Флазма не является декомпилером, а разобрать. Требуется ваш SWF, анализирует Bytecode Bytecode ActionScript и генерирует текстовый файл с помощью кода, такого как. Вы можете редактировать этот код и повторно собрать SWF. Это не касается графики и анимации, поэтому это было то, что мне нужно, и, возможно, мог работать для вас.

Я сделал небольшой тест, и это работало нормально.

Я начал с этого кода в FLA:

var xml:XML = new XML();
xml.ignoreWhite = true;
xml.onLoad = function(ok:Boolean):Void {
    if(ok) {
        _debug_txt.text = "ok";
        _debug_txt.text = xml;
    } else {
        _debug_txt.text = "error";
    }
};

xml.load("/sub/page/dynamic.php");

Затем я открыл CMD-запрос (я в Windows), CD в каталог, который содержит SWF и запустить:

flasm -d test_flasm.swf > test_flasm.flm

Это разбирается в SWF в текстовый файл test_flasm.flm. Я добавил Flasm на свои исполняемые файлы, но вместо этого вы можете просто использовать полный путь к Flasm.exe.

Соответствующая часть файла .flm выглядит так:

setMember
push '/sub/page/dynamic.php', 1, 'xml'
getVariable
push 'load'
callMethod

Ваш может варьироваться, но если вы ищете URL, вы найдете его. Далее изменил этот URL для:

setMember
push 'test.xml', 1, 'xml'
getVariable
push 'load'
callMethod

Затем я собрал SWF, используя:

flasm -a test_flasm.flm

И теперь, test_flasm.swf загружает "test.xml" вместо "/sub/page/dynamic.php".

Надеюсь это поможет.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top