| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: Aug 2010
Beiträge: 22
| ExternalInterface.call mit Argument klappt nicht
Hallo liebes Forum! Ich möchte aus einer SWF-Datei eine JavaScript-Funktion aufrufen und ihr ein Argument übergeben. Das Argument soll in meinem Fall ein Object einer eigenen ActionScript-Klasse sein. Leider funktioniert das nicht. Mein Versuch sieht so aus: Die JavaScript-Funktion ist im Moment nur ein Platzhalter. Code: function test(foo)
{
alert(foo);
} Code: if (ExternalInterface.available)
{
ExternalInterface.call('test', 'foobar'); // alert('foobar');
} Code: var foobar:_meineKlasse = new _meineKlasse([...]); // _meineKlasse extends MovieClip
if (ExternalInterface.available)
{
ExternalInterface.call('test', foobar);
/*
******************************************************
FF-Fehlerkonsole
******************************************************
Fehler: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIDOMEventTarget.removeEventListener]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: file:///C:/******************/Mozilla/Firefox/Profiles/na3bnfci.default/extensions/%7Bd10d0bf8-f5b5-c8b4-a8b2-2b9879e08c5d%7D/modules/ObjectTabs.jsm :: anonymous :: line 343" data: no]
Quelldatei: file:///C://******************/Mozilla/Firefox/Profiles/na3bnfci.default/extensions/%7Bd10d0bf8-f5b5-c8b4-a8b2-2b9879e08c5d%7D/modules/ObjectTabs.jsm
Zeile: 343
********************************************************
*/
} Ich hoffe, ich konnte mein Problem beschreiben. Könnte mir bitte jemand helfen oder weiß jemand Rat? Herzlichen Dank, Helen |
| | |
| | #2 (permalink) | |
| Flash-Designer Registriert seit: May 2006 Ort: Wiesbaden
Beiträge: 6.162
|
Was soll den JavaScript mit diesem MovieClip anfangen? Laut Referenz ist es zwar möglich beliebige Typen zu übergeben... Zitat:
Sinn manchen da IMHO nur einfache Typen, wie String, Number oder bestenfalls ein Array: PHP-Code:
__________________ Viele Grüße // Martin Martin Kraft // Interaktionsdesign Hilfreiche Websites: // Hilfe zur Adobe Flash Plattform // ActionScript 2 Referenz // ActionScript 3 Referenz // ActionScript 3 Arbeitshandbuch // weitere Flash Ressourcen Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da! Geändert von Martin Kraft (08-03-2011 um 15:45 Uhr) | |
| | |
| | #3 (permalink) | |
| Neuer User Registriert seit: Aug 2010
Beiträge: 22
| Zitat:
Wenn man der Funktion ein Array übergeben kann/können soll, sollte es auch mit primitiven Objekten als assoziative Arrays funktionieren. Gibt es damit Erfahrungen? Gibt es Beispiele für Arrays? Google hat mir spontan nicht so viel brauchbares ausgespuckt. | |
| | |
| | #4 (permalink) |
| Flash-Designer Registriert seit: May 2006 Ort: Wiesbaden
Beiträge: 6.162
| Und was sollte JS dann damit anfangen!? Sorry, aber ich kann mir wirklich keinen Fall vorstellen, in dem sowas Sinn machen würde...
__________________ Viele Grüße // Martin Martin Kraft // Interaktionsdesign Hilfreiche Websites: // Hilfe zur Adobe Flash Plattform // ActionScript 2 Referenz // ActionScript 3 Referenz // ActionScript 3 Arbeitshandbuch // weitere Flash Ressourcen Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da! |
| | |
| | #5 (permalink) | |
| Neuer User Registriert seit: Aug 2010
Beiträge: 22
| Zitat:
Man könnte die Eigenschaften eines Objekts mit JS abfangen, zum Server schicken, dort verarbeiten und das Ergebniss wieder in der swf weiter nutzen. Oder man schickt direkt ein Objekt zum Server und verarbeitet dessen Eigenschaften. Warum soll das nicht nützlich sein? €: ein einfaches Beispiel wäre vllt. ein simples Multiplayer-Spiel bei dem jede Spielerfigur als Objekt gesehen wird und deren Eigenschaften auf dem Server gespeichert werden. Ich hab allerdings nichts in der Richtung vor, es ging mir nur um den Test und die Frage warum es nicht funktioniert. Geändert von HelenInTrouble (08-03-2011 um 16:44 Uhr) | |
| | |
| | #6 (permalink) |
| Flash-Designer Registriert seit: May 2006 Ort: Wiesbaden
Beiträge: 6.162
|
Damit, dass es grundsätzlich interessant wäre, mal zu schauen, was da in JS ankommt, hast Du sicher recht. Aber ich halte es nicht für sinnvoll dies zu nutzen um z.B. die Server-Kommunikation durch JS zu schleifen (dort müsst die Daten ja abermals serialisiert werden), statt sie direkt in AS (z.B. via amfPHP) durchzuführen.
__________________ Viele Grüße // Martin Martin Kraft // Interaktionsdesign Hilfreiche Websites: // Hilfe zur Adobe Flash Plattform // ActionScript 2 Referenz // ActionScript 3 Referenz // ActionScript 3 Arbeitshandbuch // weitere Flash Ressourcen Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da! |
| | |
| | #7 (permalink) |
| Neuer User Registriert seit: Aug 2010
Beiträge: 22
|
Also ich habe ein bisschen damit rumgespielt weil ich doch gern ein paar Daten per JS verarbeiten möchte. Dazu habe ich geschaut ob und was bei JS alles ankommt. Mein Versuch sieht so aus: Code: var testArray:Array = new Array();
// test mit String
testArray['test1'] = 'test1';
// test mit primitivem Objekt
testArray['test2'] = {foo:'bar', bla:'blub'};
// test mit verschachtelten "Arrays"
testArray['test3'] = new Array();
testArray['test3']['foo'] = new Array()
testArray['test3']['foo']['bar'] = 'foobar'; Code: testArray(object)
// Test 1
test1(string) -> "test1"
// Test 2
test2(object)
foo(string) -> "bar"
bla(string) -> "blub"
// Test 3
test3(object)
foo(object)
bar(string) -> "foobar" Dazu mein Test-Skript: Code: function jsTest(obj)
{
alert(typeof obj);
for (s in obj)
{
alert(s);
}
} Code: if (ExternalInterface.available)
{
ExternalInterface.call('jsTest', testArray);
} Die FF-Fehlerkonsole zeigt wieder den Fehler den ich weiter oben schon zitiert habe. Ich konnte das Problem auf den 3. Test eingrenzen. Mein Versuch war Code: if (ExternalInterface.available)
{
ExternalInterface.call('jsTest', testArray['test1'], testArray['test2'], testArray['test3']);
} Wie kann ich ein verschachteltes Array/Objekt an JS übergeben? Eine Idee? |
| | |
| | #8 (permalink) |
| Neuer User Registriert seit: Aug 2010
Beiträge: 22
|
Ok, wenn man die Objekte auch als Objekte deklariert funktioniert es fast fehlerfrei. Code: var testArray:Array = new Object();
// test mit String
testArray['test1'] = 'test1';
// test mit primitivem Objekt
testArray['test2'] = {foo:'bar', bla:'blub'};
// test mit verschachtelten "Arrays"
testArray['test3'] = new Object();
testArray['test3']['foo'] = new Object()
testArray['test3']['foo']['bar'] = 'foobar'; Weiß da jemand Rat? |
| | |
| | #9 (permalink) |
| Flash-Designer Registriert seit: May 2006 Ort: Wiesbaden
Beiträge: 6.162
|
Ich hab' mir die Fehlermeldung noch mal angesehn und festgestellt, dass sie scheinbar in irgendeine Firefox-Extension auftritt und damit eigentlich nichts mit Deinem Script zutun hat. Deaktiviere mal der Reihe nach Deine AddOns, um so den Verursacher zu identifizieren!
__________________ Viele Grüße // Martin Martin Kraft // Interaktionsdesign Hilfreiche Websites: // Hilfe zur Adobe Flash Plattform // ActionScript 2 Referenz // ActionScript 3 Referenz // ActionScript 3 Arbeitshandbuch // weitere Flash Ressourcen Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da! Geändert von Martin Kraft (09-03-2011 um 11:49 Uhr) |
| | |
| | #10 (permalink) | |
| Neuer User Registriert seit: Aug 2010
Beiträge: 22
| Zitat:
Vielleicht finde ich durchs deaktivieren der AddOns noch was raus. €: ich habe alle AddOns deaktiviert und der Fehler war tatsächlich weg. Ich habe anschließend AdBlock Plus wieder aktiviert und der Fehler trat wieder auf. Jetzt habe ich nicht weiter getestet, ob der Fehler nur am AdBlock Plus liegt oder bei "irgendeinem" AddOn. Es beruhigt mich aber, dass es scheinbar doch nichts mit meinem Code zu tun hat. Danke für den Hinweis! Noch eine andere Frage die bei mir aufgekommen ist. Was genau ist amfPHP? Kannst du mir da ein paar Stichworte oder Praxisbeispiele geben? Das sagt mir nämlich noch gar nichts. Geändert von HelenInTrouble (09-03-2011 um 12:09 Uhr) | |
| | |
| | #11 (permalink) |
| Flash-Designer Registriert seit: May 2006 Ort: Wiesbaden
Beiträge: 6.162
| Eine Schnittstelle zwichen PHP und AS3: Flash remoting for PHP: A responsive Client-Server Architecture for the Web Unter dem Stichwort "amfPHP" dürftest Du hier im Forum und über Google eigentlich genügend Informationen finden...
__________________ Viele Grüße // Martin Martin Kraft // Interaktionsdesign Hilfreiche Websites: // Hilfe zur Adobe Flash Plattform // ActionScript 2 Referenz // ActionScript 3 Referenz // ActionScript 3 Arbeitshandbuch // weitere Flash Ressourcen Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da! |
| | |
![]() |
| Lesezeichen |
| Stichworte |
| externalinterface.call, javascript |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Switch case : externalInterface.call geht nicht | SteveDragon | ActionScript 3 | 2 | 12-02-2011 11:03 |
| Variablenübergabe mit ExternalInterface.call geht offline aber nicht online | Adlerhorst | ActionScript 3 | 0 | 29-03-2010 19:43 |
| ExternalInterface.call geht nicht!?? | stylefetish | ActionScript 3 | 3 | 13-03-2009 17:33 |
| ExternalInterface.call funktioniert nicht!!! | eyeffect | Flash 8 | 0 | 07-01-2007 12:03 |
| As 2 JS Problem: getURL() und ExternalInterface.call() funktionieren nicht | eyeffect | Flash 8 | 0 | 06-01-2007 19:20 |