the reparto para gratis descargar chrome actualizar flash

reparto - descargar adobe flash player gratis para windows 7



Reemplazando cadenas dentro de SWF (11)

Tenemos docenas de versiones de un SWF modificado para diferentes clientes de un gran proyecto de Flash, y ahora tendríamos que reemplazar algunas cadenas incrustadas en las secuencias de comandos en cada copia. El archivo FLA para algunos de estos es muy difícil de localizar o incluso falta (heredé este lío y la refactorización no es actualmente una opción).

¿Hay alguna herramienta (gratuita) para reemplazar cadenas usadas dentro de ActionScript? Intenté con swfmill convertir los archivos a XML y viceversa, pero no puedo manejar los caracteres internacionales contenidos en las cadenas para poder convertirlos parcialmente. La mayoría de las cadenas se extrajeron correctamente, por lo que otra herramienta podría hacer el trabajo.


Bueno, el único consejo que se me ocurre es arreglar swfmill para admitir personajes internacionales. Si lo desea, puede preguntar en la lista de correo swfmill ([email protected] hasta donde yo sé) la mejor forma de hacerlo, no debería ser demasiado difícil si conoce un poco C / C ++.


Difícil: ¿has probado el descompilador Sothink ? Si eso no funciona, diría que intente cargar el swf en otro swf, luego profundice y cambie el contenido del campo de texto, algo así como _root.loadedswf.clip1.box2.textField.text = "New text"; Obviamente, esto podría no funcionar si la aplicación es compleja.


complicado - podría no ser más fácil, pero podrías cargar el swf ''bloqueado'' en uno que controlas, luego arañar sus objetos hasta que toques TextBox, usando algunos para ... en loops - sería un proceso largo, arduo proceso para mapearlos y luego cambiarlos, especialmente si el desarrollador anterior no nombró las cosas de una manera útil, pero si es un .swf bastante simple, entonces podría ser demasiado malo ...

Además, hay una utilidad exclusiva para Mac para descompilar archivos SWF de la que recuerdo a un compañero de trabajo, pero no recuerdo el nombre ... ¿alguien?


Puede probar el Editor de acciones de URL de Burak, dice URL, pero estoy bastante seguro de que le permite editar cualquier texto en un archivo SWF. No lo he usado, pero he usado su visor de ActionScript, que funciona maravillosamente.


Si los archivos están usando actionscript 2, tal vez puedas desmontarlos y volver a armarlos usando http://flasm.sourceforge.net/ (Y por supuesto: modifica las cadenas antes de volver a armarlas). Para as3 adobe proporciona un decompilador que podría usarse para lograr lo mismo, pero no creo que su flash sea as3 si lo heredó.



Me parece que swfmill ha actualizado su herramienta para admitir caracteres internacionales, al menos para el idioma letón (que requiere UTF-8). Las cadenas se codifican como entidades HTML.

Resolvió algunos problemas similares con el archivo swf heredado.


Puedes usar Apparat para este tipo de tarea. Le permite alterar el código de byte de ActionScript 3 en archivos SWF y SWC.

Preferiría la rama fuente de Scala para su tarea. Básicamente, el código se vería así:

val swf = Swf from "in.swf" for(tag <- swf.tags) { (Abc fromTag tag) match { case Some(abc) => { val strings = abc.cpool.strings for(i <- 1 until strings.length) { if(strings(i) == ''search) { strings(i) = ''replacement } } abc write tag } case None => } swf write "out.swf"




Apparat terminó trabajando de maravilla para esto (tengo algunos archivos heredados que deben ser modificados). No pude hacer funcionar el código Scala de Joa, así que terminé implementando su solución en Java.

  1. Descarga binarios .
  2. Asegúrese de que Scala esté instalado (las bibliotecas aún son necesarias, aunque la solución esté en Java puro).
  3. Compile y ejecute el siguiente código utilizando la ruta de clase apropiada (apuntando a la carpeta con los binarios de Apparat y sus bibliotecas de Scala).
    1. javac -classpath ".;apparat/*;C:/path/to/scala/lib/*" SwfEditor.java
    2. java -classpath ".;apparat/*;C:/path/to/scala/lib/*" SwfEditor

import apparat.swf.Swf; import apparat.abc.Abc; import apparat.swf.SwfTag; import scala.collection.Iterator; import scala.Symbol; import apparat.swf.DoABC; class SwfEditor { public static void main(String[] args){ Swf input = Swf.fromFile("in.swf"); Iterator<SwfTag> iter = input.tags().iterator(); while (iter.hasNext()) { SwfTag tag = iter.next(); if(tag instanceof DoABC) { DoABC doABCTag = (DoABC) tag; Abc abc = Abc.fromTag(doABCTag).getOrElse(null); Symbol[] strings = abc.cpool().strings(); for(int i=0; i<strings.length; i++) { String string = strings[i].toString(); if(string == "''search")) { strings[i] = new Symbol("replacement"); } } abc.write(doABCTag); } } input.write("out.swf"); } }