Question

J'ai donné un fichier SWF à modifier un lien dans le code AS. Le fait est le fichier SWF utilise une XML qui est généré (en fait récupéré) par le code PHP à partir d'une base de données.

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

le point est que nous pouvons utiliser le même fichier SWF « mainfraim » et les remplir avec différentes animations / sources basées sur le lien fourni dans dynamic.php? Genre = ###

Maintenant, je l'ai utilisé Flash Decompiler d'or pour extraire tous les fichiers dans le fichier SWF et peut l'ouvrir à nouveau dans Adobe Flash pour le modifier. Lorsque vous avez terminé j'entre CTRL + ENTRÉE et il y a immédiatement 4 erreurs du compilateur !! Les erreurs: 1x 2x 1x

Comment ces erreurs se présente, lorsque le fichier SWF d'origine fonctionne parfaitement ??!

Si je ne parviens pas à résoudre ce problème, je vais devoir trouver comment créer un fichier .php les tentatives SWF à utiliser qui peut sélectionner les ressources appropriées (une base de données, je suppose) pour leur montrer (en utilisant ? genre = ###)

Merci!

Était-ce utile?

La solution

Je ne suis pas sûr que je comprends votre problème, mais il semble que vous devez changer l'URL passée à la méthode de charge. Il semble aussi que votre swf est Actionscript 2.0.

Decompilers genre de travail, mais le fla vous pouvez générer avec un décompilateur sera rarement utile pour générer le dos même swf. Parfois, le code est illégal, et presque toujours les graphiques sont vissés.

J'ai eu une fois de faire quelques changements de code simples (comme changer quelques urls et d'autres trucs simples) à un swf, pour lequel nous avions aucune source (ils ont été perdus et il n'y avait pas de sauvegarde ...).

flasm pour cela et il a bien fonctionné (aussi n'a pas été aussi difficile que je suis supposé).

flasm n'est pas un décompilateur, mais un désassembleur. Il prend votre swf, parse le bytecode actionscript et génère un fichier texte avec le code semblable à l'assemblage. Vous pouvez modifier ce code et réassembler le swf. Il n'était, et pourrait peut-être ce que je devais pas toucher des graphiques et des animations, donc pour vous.

Je l'ai fait un petit test et il a bien fonctionné.

J'ai commencé avec ce code dans un 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");

Ensuite, j'ai ouvert une invite cmd (je suis sous Windows), cd dans le répertoire qui contient le fichier SWF et exécutez:

flasm -d test_flasm.swf > test_flasm.flm

désassemble le swf dans un fichier texte test_flasm.flm. J'ai ajouté flasm à mon chemin de executables, mais vous pouvez simplement utiliser le chemin complet du flasm.exe à la place.

La partie pertinente de l'apparence de fichiers .flm comme ceci:

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

Le vôtre peut varier, mais si vous regardez l'URL, vous le trouverez. Ensuite, changé URL pour:

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

Alors, je réassemblé le swf en utilisant:

flasm -a test_flasm.flm

Et maintenant, test_flasm.swf charges "test.xml" au lieu de "/sub/page/dynamic.php".

Hope this helps.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top