Pregunta

Se me ha dado un SWF a editar un enlace en el código AS. El hecho es que el SWF utiliza algún XML que se genera (en realidad recuperado) por código PHP desde una base de datos.

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

Así que el punto es que podemos usar el mismo SWF 'mainfraim' y llenarlos con diferentes animaciones / fuentes basadas en el enlace que aparece en dynamic.php? Genero = ###

Ahora, he usado Flash Decompiler Gold para extraer todos los archivos en el SWF y puedo abrirlo de nuevo en Adobe Flash para editarlo. Cuando se hace entro CTRL + ENTRAR y hay errores de compilación de inmediato 4 !! errores: 1x 2x 1x

¿Cómo pueden estar presentes, cuando el original SWF funciona perfectamente ?? estos errores!

Si no me las arreglo para solucionar esto, voy a tener que encontrar la manera de crear un archivo .php los intentos de usar SWF que puede seleccionar los recursos propios (desde una base de datos, supongo) para mostrarles (usando ? genero = ###)

Gracias!

¿Fue útil?

Solución

No estoy seguro de entender su problema, pero parece que es necesario cambiar la dirección URL se pasa al método de carga. También parece que su swf es ActionScript 2.0.

Decompilers tipo de trabajo, pero el archivo fla se puede generar con un decompilador rara vez será útil para generar la misma vuelta SWF. A veces, el código es ilegal, y casi siempre se atornillan los gráficos.

Una vez tuve que hacer algunos cambios en el código simples (como cambiar un par de direcciones URL y otras cosas simple) a un swf, para los que no teníamos las fuentes (que se perdieron y no había ninguna copia de seguridad ...).

Flasm para esto y funcionó bien (también no fue tan duro como primera supuesto).

Flasm no es un descompilador, pero un desensamblador. Toma su swf, analiza el código de bytes de ActionScript y genera un archivo de texto con el montaje similar al código. Puede editar el código y volver a montar el swf. No toca gráficos y animaciones, así que era lo que necesitaba, y tal vez podría funcionar para usted.

He hecho una pequeña prueba y funcionó bien.

Empecé con este código en 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");

A continuación, se abrió una pronta cmd (estoy en Windows), entra en el directorio que contiene el swf y ejecute:

flasm -d test_flasm.swf > test_flasm.flm

Esto desmonta el SWF en un archivo de texto test_flasm.flm. He añadido a mi camino Flasm ejecutables, pero sólo puede utilizar la ruta completa a la flasm.exe lugar.

La parte pertinente de las miradas de archivos .flm como esto:

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

El suyo puede variar, pero si se mira para la url, lo encontrará. A continuación, se cambió a esa url:

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

Luego, vuelve a montar el SWF usando:

flasm -a test_flasm.flm

Y ahora, test_flasm.swf cargas "test.xml" en lugar de "/sub/page/dynamic.php".

Espero que esto ayude.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top