Frage

Ich habe ein SWF zu bearbeiten einen Link in dem AS-Code angegeben. Tatsache ist, die SWF einige XML verwendet, die (tatsächlich abgerufen) von PHP-Code aus einer Datenbank generiert wird.

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

so ist der Punkt, wir die gleiche SWF verwenden können ‚mainfraim‘ und füllen sie mit verschiedenen Animationen / Quellen basierend auf den darin enthaltenen Link in dynamic.php? Genre = ###

Jetzt habe ich Flash Decompiler Gold-verwendet, um alle Dateien im SWF zu extrahieren und es wieder in Adobe Flash zu bearbeiten sie öffnen kann. Wenn Sie fertig sind betrete ich STRG + ENTER und es gibt sofort 4 Compiler-Fehler !! Fehler: 1x 2x 1x

Wie können diese Fehler vorhanden sein, wenn die ursprüngliche SWF funktioniert perfekt ??!

Wenn ich es nicht schaffen, dieses Problem zu lösen, muss ich herausfinden, wie man eine Php-Datei verwenden, um die SWF versucht zu schaffen, die die richtigen Ressourcen auswählen (aus einer Datenbank I guess), ihnen zu zeigen (mit ? Genre = ###)

Danke!

War es hilfreich?

Lösung

Ich bin nicht sicher, ich verstehe Ihr Problem, aber es scheint, wie Sie die URL an die Last-Methode übergeben ändern müssen. Es scheint auch, wie Sie Ihre swf ist Actionscript 2.0.

Decompiler Art von Arbeit, aber die fla Datei, die Sie mit einem Decompiler erzeugen können, wird selten sinnvoll sein, die gleiche SWF zurück zu generieren. Manchmal ist der Code ist illegal, und fast immer die Grafik geschraubt werden.

ich einmal musste ein paar einfache Änderungen am Code vornehmen (wie ein paar URLs und andere einfache Sachen zu ändern) zu einer swf, für die wir keine Quellen hatten (sie verloren waren, und es gab kein Backup ...).

Ich benutzte flasm für dieses und es funktionierte gut (auch als schwer es war nicht wie ich zum ersten Mal soll).

flasm ist kein Decompiler, sondern ein Disassembler. Es braucht Ihre swf, analysiert das Actionscript-Bytecode und erzeugt eine Textdatei mit Montageähnlichen Code. Sie können diesen Code bearbeiten und die swf wieder zusammenbauen. Dabei spielt es keine Grafiken und Animationen berühren, so war es, was ich brauchte, und vielleicht könnte für Sie arbeiten.

Ich habe einen kleinen Test gemacht und es hat gut funktioniert.

ich mit diesem Code in einem fla gestartet:

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");

Als nächstes öffnete ich ein cmd-Eingabeaufforderung (Ich bin auf Windows), cd in das Verzeichnis, das die swf und Lauf enthält:

flasm -d test_flasm.swf > test_flasm.flm

Dieses zerlegt die SWF in eine Textdatei test_flasm.flm. Ich habe flasm meinen ausführbaren Pfad hinzugefügt, aber Sie können nur den vollständigen Pfad stattdessen auf die flasm.exe verwenden.

Der relevante Teil der .flm Datei sieht wie folgt aus:

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

kann Yours variieren, aber wenn Sie für die URL aussehen, werden Sie es finden. Als nächstes geändert, dass URL:

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

Dann habe ich wieder zusammen die swf mit:

flasm -a test_flasm.flm

Und nun, test_flasm.swf Lasten "test.xml" statt "/sub/page/dynamic.php".

Hope, das hilft.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top