2010-12-15 4 views
2

Ist es möglich, ActionScript-Werte/-Aktionen mit Javascript ohne ExternalInterface zu klicken/zu erhalten?Interaktion zwischen Javascript und Flash/ActionScript ohne ExternalInterface?

Wie funktioniert GreaseMonkey? Kann ich das mit GreaseMonkey machen?

+0

fast sicher, dass Sie nicht können, aber es gibt andere Schnittstellen, die Sie verwenden können, um Makros zu erstellen, um mit Flash interagieren, googeln für "Addon Makros Firefox Flash" oder so ähnlich – yoda

+0

Aber wie diese Putting Hack Flash-Spiele injizieren den Code? Siehe http://userscripts.org/scripts/review/32886. Ich konnte diesen Teil nicht verstehen var swf = document.embeds [0] || $ ("Flashinhalt") || single ("// Objekt [enthält (@data, '.swf')]"); unsafeWindow.game = swf; var actions = single ("// div [@ class = 'game_actions']") || single ("// div [@ class = 'channeholder']") || $ ("Kopfzeile") || $ ("Inhalt") || Dokument.Körper; – Rajasankar

Antwort

1

es ist ziemlich hart, aber vielleicht möglich LocalConnection oder NetStream direkte Verbindung zu implementieren (für die Verwendung der send()-Methode) in Javascript :)

andersrum ist etwas, als Puffer zu verwenden, die von SWF und Javascript kontrolliert würde jede bestimmte Zeit. Ein einfacher PHP-Skript wird ein guter Puffer sein, auch vielleicht könnten diese Daten nach#

und anderer lustigen Idee in Browser Adresszeile gespeichert werden: Sie können einen SWF-Boten entwickeln, die jedes Mal, wenn Sie passieren müssen geladen werden, um eine Nachricht zu blinken. Nachricht wird an den Messenger als get Variablen übergeben und es wird eine LocalConnection mit dem Haupt-swf erstellen und Daten dort übergeben. aber der einzige Weg js aus dem Flash zu nennen, ist navigateToURL oder vielleicht sendToURL

2

wie etwa

swf=document.embeds[0];//or 1 or 2 etc 
swfvar1=swf.GetVariable("swfvariable"); 
swfvar2="something"; 
swf.SetVariable("swfvariable",swfvar2); 

sein GetVariable ("swfvar"); mit dem Var-Namen als String und SetVariable ("swfvar", jsval); mit dem swfvar Namen als String und dem js Wert, was auch immer Sie

Funktion

ausführen mögen, gibt es 2 Möglichkeiten 1. den obigen Code mit dem var swf mit, swf.SwfFunc (params); einfach, oder? Ja.

2.wieder mit Code über swf.GetVariable ("SwfFunc (params)"); da es den Wert der Funktion abruft, führt es alles aus, um nach einem Rückgabewert zu suchen, könnte schlecht sein, wenn die Parameter hässlich sind mit sich überschneidenden Anführungszeichen, weil es bereits Zitate im Aufruf gibt. Ich mag Methode 2 weil es auch für andere Zwecke verwendet werden kann, zum Beispiel für die Ausführung von Code. wie diese

swf.GetVariable(" 
function(){ 
//whatever 
}"); 

finde ich das sehr nützlich, aber erinnern Sie sich die Angebote in dieser Funktion entkommen muss es tatsächlich wie Injizieren eines eval-Anweisung ist, aber besser

Verwandte Themen