Hallo Peter,
ich habe eine Flash-Datei, welche ich nicht mehr ändern lassen kann. In diesem Flash-Banner ist ein Link hinterlegt, der leider im selben Frame öffnet.
Da ich den Flash-Banner technisch bedingt in einem Iframe einbauen muss, würde sich die Zielseite in eben diesem Iframe öffnen.
Gibt es nun eine Möglichkeit das ich dem Flash sagen kann das der Link dennoch in einem neuen Fenster auf geht?
Wieso denkst du, du könntest die SWF-Datei nicht mehr verändern?
1. Ein Import der SWF-Datei in Adobe Flash ist ein Versuch wert.
2. Sollte das nicht funktionieren, kannst du mit MTASC Code zur SWF-Datei hinzufügen. Das wäre die beste Methode, denn hier kannst du den ActionScript-Code anpassen, der ausgeführt wird, wenn der Benutzer auf den entsprechenden Button klickt. Die Funktion getURL() bietet sich da ja geradezu an.
Das einzige, was du herausfinden musst, ist, wo Flash den Button hingetan hat - das müsste irgendwo im _root-Objekt sein.
Ich bekomme die Elemente des _root-Objekts mit dem folgenden Code angezeigt (Datei "Test.as"):
class Test {
public static function main() : Void {
_root.createTextField("debug", _root.getNextHighestDepth(), 10, 10, 400, 300);
var debug : TextField = _root.debug;
var i : String;
for (i in _root) {
debug.text += i + ": " + String(_root[i]) + "\n";
}
}
}
Wenn ich nun eine Testdatei Test.swf habe (Sicherungskopie nicht vergessen!) wird diese mit dem folgenden Aufruf geändert (wie ich gerade sehe wird alter ActionScript-Code anscheinend gelöscht):
mtasc -main -strict -wimp -swf Test.swf Test.as
Eventuell muss man eine kleinere Schriftart für das Textfeld angeben und das Textfeld von der Größe her anpassen.
Auf die Art kann man die veränderte SWF-Datei aufrufen und sehen, welche Objekte es im _root gibt.
3. Letztendlich kann man bestehende SWF-Dateien mit diversen Programmen dekompilieren.
4. Mit swfmill hast du die Möglichkeit (mit dem Befehl swf2xml), die SWF-Datei in eine XML-Datei umzuwandeln. Zurück geht es wieder mit xml2swf. Habe ich noch nicht selbst getestet, wäre aber auch eine Möglichkeit.
Natürlich solltest du in allen Fällen eine Sicherung der SWF-Datei parat halten.
Auf alle Fälle ist eine veränderte SWF-Datei sauberer als irgendwelcher HTML-Müll (der in vielen Fällen hier nicht funktioniert).
Grüße
Marc Reichelt || http://www.marcreichelt.de/
Linux is like a wigwam - no windows, no gates and an Apache inside!
Selfcode: ie:{ fl:| br:> va:} ls:< fo:} rl:( n4:( ss:) de:> js:| ch:? sh:| mo:) zu:)