JavaScript Variablen an Flash übergeben AS2

SonMiko

Erfahrenes Mitglied
Hallo zusammen,

ich habe schon mehrfach bei Google gesucht, und auch hier im Forum mit den Worten "javascript variable an flash actionscript2" versucht etwas zu finden, leider erfolglos.

Die Ergebnisse sind derart unterschiedlich dass ich nicht weiss welches das korrekte ist...

Generell stelle ich mir die Frage wie ich nun meiner SWF Datei Variablen von beispielsweise JavaScript mit auf den Weg geben kann. Es sollen zwei Texte sein aber irgendwie kommen diese nicht an.

Ich habe es über FSCOMMAND versucht, und auch die ExternalInterfaces - auch weiss ich nicht welche die beste Methode bei AS2 ist.

Kann mir jemand helfen?

In JavaScript habe ich folgendes versucht:
Code:
document.getElementById("myFlash").setVariable("text1", "DAS HIER IST TEXT1");
document.getElementById("myFlash").setVariable("text2", "DAS HIER IST TEXT2");

In Flash erhalte ich aber über text1.text nichts...

Also wäre toll wenn mir jemand helfen könnte - vorallem welches die nun beste Methode ist, es gibt ja scheinbar mehrere, aber sicherlich sind auch viele veraltet.
Da es sich um Texte handelt weiss ich auch nicht wie es sich äußern würde wenn ich diese mit "?text1=test test test" etc. an die Quelldatei anhängen würde, es sind ja Leerzeichen enthalten.
Ich suche eine Möglichkeit einfach beim start von Flash ein paar Variablen einfach direkt zu übergeben, das wäre eine riesige Hilfe.

Vielen Dank und freundliche Grüße,

Mike
 
Ohje - dabei will ich doch bloß zwei kleine Texte übergeben...

Da ist auch zu viel Alter Schinken mit drin - Macromedia gibts auch schon lange nicht mehr.
Ich möchte einfach nur zwei Variablen in Flash einbetten - wie schaffe ich das.

ich habe das hier bereits versucht:
Code:
var text1="HIER STEHT TEXT1";
document.getElementById("flashVars").SetVariable("text1", text1);
	if(window.flashVars) window.document["flashVars"].SetVariable("text1", text1);
	if(document.flashVars) document.flashVars.SetVariable("text1", text1);

In Flash weise ich dann zu:
text1_txt.text = text1;

Aber es funktioniert nicht.

Generell ist es also dich die SetVariable Methode?!
 
Zuletzt bearbeitet:
Hi,

ja hab ich mir schon durchgelesen,
klappt bei mir auch nicht. Es ist zum ko....

Das Einzige was funktioniert ist ein FUnktionsaufruf aus Flash heraus,
der eine JavaScript Funktion aufruft. Diese übergibt einen Wert mit return.

Das ist auch absolut unbrauchbar weil ich ca. 6 Werte übergeben müsste.
Kann doch nicht sein dass ich hier 6 Funktionen schreiben und aufrufen muss...

Irgendwie ziert sich aber auch jeder um das Thema, wirklich ganz Konkrete Beispiele gibt es keine - es gibt immer Ansatzlösungen, aber einfach NUR 3 oder mehr Variablen nach Flash transportieren, das schafft wohl kein Mensch :).

Egal...
 
Was ist an diesem Ansatz falsch:

JavaScript
Code:
function getVars(){
		var myObj:Object;
		myObj.text1 		= "Text 1 hier";
		myObj.text2 		= "Text 2 hier";
		return myObj;
	}

Flash
Code:
import flash.external.ExternalInterface;

var myObj:Object =  new Object();
myObj = ExternalInterface.call("getLocation");
text1_txt.text = myObj.text1;

Kann ich nicht ein Objekt oder Array übergeben...?

Bin echt am verzweifeln - die Kommunikation mit PHP und XML ist nie ein Problem gewesen und jetzt macht mir JavaScript dermaßen Probleme... Verkehrte Welt...
 
Hallo SonMiko,

es gibt bestimmt unterschiedliche Ansätze. Ich denke dass du mit SetVariable genau richtig liegst (ich zumindest habe es genau so gemacht). Dein Problem ist nur folgendes:

Du musst das Flash-Objekt richtig anfassen! Ich hing da auch eine Weile. Deine Lösung sollte folgendes sein (wenn dein Flash z.B. per <object>...<embed> eingebunden ist):
PHP:
var flashElement;
if(document.all){if(document.all.myFlash){flashElement=document.all.myFlash;}//für ie
if(window.document){if(window.document.myFlash){flashElement=window.document.myFlash;}//für ff
Denn: Dein document.getElementById("myFlash") ist NICHT gleich document.all.myFlash bzw. window.document.myFlash. Im Anschluss kannst du dann auch per
PHP:
flashElement.SetVariable('variablennameinflash','text....');
alles setzen was du willst.

Beachte, das gilt erst mal nur für internetexplorer und firefox! In anderen Browser müsste man Flash evtl noch anders 'anfassen'!
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück