7 Stimmen

Ersetzen von Zeichenketten in SWF

Wir haben Dutzende von SWF-Versionen, die für verschiedene Kunden eines großen Flash-Projekts modifiziert wurden, und müssen nun in jeder Kopie einige in Skripte eingebettete Zeichenfolgen ersetzen. Die FLA-Datei für einige von ihnen ist sehr schwer zu finden oder fehlt sogar (ich habe dieses Chaos geerbt und Refactoring ist derzeit keine Option).

Gibt es ein (kostenloses) Tool zum Ersetzen von in ActionScript verwendeten Strings? Ich habe swfmill ausprobiert, um die Dateien in XML und zurück zu konvertieren, aber es kann die in den Strings enthaltenen internationalen Zeichen nicht verarbeiten, so dass ich sie nur teilweise konvertieren konnte. Die meisten Strings wurden korrekt extrahiert, so dass ein anderes Tool die Aufgabe übernehmen könnte.

3voto

davr Punkte 18412

Sie könnten Buraks URL-Aktions-Editor -- da steht URL, aber ich bin mir ziemlich sicher, dass man damit jeden Text in einer SWF bearbeiten kann. Ich habe es nicht benutzt, aber ich habe seinen ActionScript Viewer benutzt, der wunderbar funktioniert.

3voto

Joa Ebert Punkte 6425

Sie können verwenden Apparat für diese Art von Aufgabe. Es ermöglicht Ihnen, ActionScript 3 Bytecode in SWF- und SWC-Dateien zu ändern.

Ich würde den Scala-Source-Zweig für Ihre Aufgabe bevorzugen. Im Grunde genommen würde der Code so aussehen:

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"

0 Stimmen

Ich erhalte eine apparat.abc.AbcOutputStream.writeU30, wenn ich versuche, eine ersetzte Zeichenfolge zu schreiben. Können Sie helfen?

0 Stimmen

Ich konnte den obigen Scala-Code nicht zum Laufen bringen. Am Ende habe ich das gleiche Konzept in Java implementiert.

1voto

Michael Pliskin Punkte 2322

Der einzige Rat, den ich geben kann, ist, swfmill so zu ändern, dass es internationale Zeichen unterstützt. Du könntest in der swfmill-Mailingliste (swfmill@swfmill.org, soweit ich weiß) nach dem besten Weg fragen, wie man das macht, sollte nicht allzu schwierig sein, wenn du ein bisschen C/C++ kannst.

1voto

Wenn die Dateien Actionscript 2 verwenden, können Sie sie vielleicht zerlegen und neu zusammensetzen, indem Sie http://flasm.sourceforge.net/ (Und natürlich: Ändern Sie die Strings, bevor Sie sie wieder zusammensetzen). Für as3 bietet Adobe einen Decompiler an, mit dem man dasselbe erreichen kann, aber ich glaube nicht, dass Ihr Flash as3 sein wird, wenn Sie es geerbt haben.

1voto

RobertH Punkte 325

Dieses Programm funktioniert ebenfalls sehr gut und ist kostenlos:

http://www.free-decompiler.com/flash/

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X