| |||||||
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: 13
|
Hallo.. Ich habe auf einer Webpage ein Flash-Video eingebunden. Nun möchte ich mittels JavaScript eine AS2-Funktion aufrufen. Jedoch wird die Funktion im AS nicht ausgeführt.. AS2 - Code Code: import flash.external.*;
if(ExternalInterface.available)
{
externalTest.text = "ExternalInterface available!";
ExternalInterface.addCallback("setBadge", setBadge);
}
else
{
externalTest.text = "no ExternalInterface available";
}
function setBadge(value:String)
{
externalTest.text = "test aus funktion fromJS";
externalTest.text = value;
} HTML-Code: <SCRIPT LANGUAGE="JavaScript"> // function for sending function setBadge(index) { var obj = thisMovie("Joy_editor_cs5"); if (obj) { obj.sendToFlash("123"); } } function thisMovie(movieName) { if (navigator.appName.indexOf("Microsoft") != -1) { return window[movieName] } else { return document[movieName] } } </SCRIPT> <div id="flashContent"> <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="750" height="500" id="Joy_editor_cs5" name="Joy_editor_cs5" align="middle"> <param name="movie" value="Joy_editor_cs5.swf" /> <param name="quality" value="high" /> <param name="bgcolor" value="#ffffff" /> <param name="play" value="true" /> <param name="loop" value="true" /> <param name="wmode" value="window" /> <param name="scale" value="showall" /> <param name="menu" value="true" /> <param name="devicefont" value="false" /> <param name="salign" value="" /> <param name="allowScriptAccess" value="always" /> <param name="swliveconnect" value="true" /> <!--[if !IE]>--> <object type="application/x-shockwave-flash" data="Joy_editor_cs5.swf" width="750" height="500" name="Joy_editor_cs5"> <param name="movie" value="Joy_editor_cs5.swf" /> <param name="quality" value="high" /> <param name="bgcolor" value="#ffffff" /> <param name="play" value="true" /> <param name="loop" value="true" /> <param name="wmode" value="window" /> <param name="scale" value="showall" /> <param name="menu" value="true" /> <param name="devicefont" value="false" /> <param name="salign" value="" /> <param name="allowScriptAccess" value="always" /> <param name="swliveconnect" value="true" /> <!--<![endif]--> <a href="http://www.adobe.com/go/getflash"> <img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash Player" /> </a> <!--[if !IE]>--> </object> <!--<![endif]--> </object> <br> </div> "obj.sendToFlash is not a function obj.sendToFlash("123"); " ExternalInterface.available gibt mir immer "true" zrurück.. Was mus ich tun, damit Flash mein JS-Command annimmt? Vielen Dank |
| | |
| | #3 (permalink) |
| Flash-Designer Registriert seit: May 2006 Ort: Wiesbaden
Beiträge: 6.162
|
Außerdem sprichst IMHO Du den Flash-Film falsch an! Ich glaube nämlich nicht, dass der direkt in document oder window gespeichert ist, sondern über getElementById() o.ä. gesucht werden muss...
__________________ 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! |
| | |
| | #4 (permalink) |
| Neuer User Registriert seit: Aug 2010
Beiträge: 13
|
Ok vielen Dank für die raschen Antworten.. Habe den Code angepasst.. jedoch ohne Erfolg ![]() Erhalte noch den gleichen Fehler: obj.setBadge is not a function obj.setBadge("123"); Muss ich in der .fla noch bestimmte Einstellungen bei der Veröffentlichung vornehmen (momentan ist das meiste standart) ? Habe den AS-Teil momentan auf dem 1 Frame des obersten Layers.. vieleicht spielt das noch eine Rolle.. angepasster Code: HTML-Code: obj = document.getElementById('Joy_editor_cs5');
if (obj)
{
obj.setBadge("123");
} Weiss nicht ob das eine Bedeutung hat, aber wenn ich testweise in der .fla einen call mache, erhalte ich auf der Firebug-Konsole: missing ) after argument list [Bei diesem Fehler anhalten] try { __flash__toXML(alert('hallo');()) ; } catch (e) { "<undefined/>"; } AS: Code:
ExternalInterface.call("alert('hallo');"); Geändert von JRoyal (11-01-2011 um 12:09 Uhr) Grund: Ergänzung |
| | |
| | #6 (permalink) | |
| Flash-Designer Registriert seit: May 2006 Ort: Wiesbaden
Beiträge: 6.162
| Das kann ja auch nicht funktionieren. Schau mal in die Referenz: Zitat:
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! | |
| | |
| | #7 (permalink) |
| Neuer User Registriert seit: Aug 2010
Beiträge: 13
|
Danke für die Tipps.. Leider war die Lösung nicht dabei.. Wenn ich das erhaltene JS debugge erhalte ich in der obj-variable: [object#Joy_editor_cs5, object] denke ds stimmt soweit.. Danke für die Korrketur der call() Methode.. habe diese angepasst und erhalte nun das Alert wenn ich das SWF im Browser lade ![]() Also AS zu JS geht... nur mein eigentliches Problem JS -> AS2 funktioniert noch nicht ![]() Sieht jemand noch einen Fehler in meinem Code oder kann mit Tipps geben? Danke für die bisherigen Antworten. JS + HTML HTML-Code: <SCRIPT LANGUAGE="JavaScript"> // function for sending function setBadge(index) { //var obj = thisMovie("Joy_editor_cs5"); //obj = document.getElementById('Joy_editor_cs5'); var obj = detectFlashPlayer("Joy_editor_cs5"); if (obj) { obj.setBadge("123"); } } function thisMovie(movieName) { if (navigator.appName.indexOf("Microsoft") != -1) { return window[movieName] } else { return document[movieName] } } function MM_findObj(n, d) { //v4.01 var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) { d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);} if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n]; for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); if(!x && d.getElementById) x=d.getElementById(n); return x; } function detectFlashPlayer(playerName) { var flashPlayer = MM_findObj(playerName); return flashPlayer; } <div id="flashContent"> <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="750" height="500" id="Joy_editor_cs5" name="Joy_editor_cs5" align="middle"> <param name="movie" value="Joy_editor_cs5.swf" /> <param name="quality" value="high" /> <param name="bgcolor" value="#ffffff" /> <param name="play" value="true" /> <param name="loop" value="true" /> <param name="wmode" value="window" /> <param name="scale" value="showall" /> <param name="menu" value="true" /> <param name="devicefont" value="false" /> <param name="salign" value="" /> <param name="allowScriptAccess" value="always" /> <param name="swliveconnect" value="true" /> <!--[if !IE]>--> <object type="application/x-shockwave-flash" data="Joy_editor_cs5.swf" width="750" height="500" name="Joy_editor_cs5"> <param name="movie" value="Joy_editor_cs5.swf" /> <param name="quality" value="high" /> <param name="bgcolor" value="#ffffff" /> <param name="play" value="true" /> <param name="loop" value="true" /> <param name="wmode" value="window" /> <param name="scale" value="showall" /> <param name="menu" value="true" /> <param name="devicefont" value="false" /> <param name="salign" value="" /> <param name="allowScriptAccess" value="always" /> <param name="swliveconnect" value="true" /> <!--<![endif]--> <a href="http://www.adobe.com/go/getflash"> <img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash Player" /> </a> <!--[if !IE]>--> </object> <!--<![endif]--> </object> </div> <a href="#" ONCLICK="javascript:setBadge(0);" rel="imgtip[0]"> <img src="lausanne.gif" alt="" class="thumbnail"> </a> Code: import flash.external.*;
if(ExternalInterface.available)
{
externalTest.text = "ExternalInterface available!";
ExternalInterface.addCallback("setBadge", setBadge);
}
else
{
externalTest.text = "no ExternalInterface available";
}
ExternalInterface.call("alert", "hallo");
externalTest.text="alert - hallo";
function setBadge(value:String)
{
externalTest.text = "test aus funktion fromJS";
externalTest.text = value;
} Geändert von JRoyal (11-01-2011 um 15:55 Uhr) Grund: Update |
| | |
![]() |
| Lesezeichen |
| Stichworte |
| addcallback, externalinterface, javascript |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| [Flash CS3] ExternalInterface.addCallback(..) | Lengen1971 | ActionScript 1 | 1 | 18-05-2009 12:48 |
| Fehler bei ExternalInterface.addCallback | neo14 | ActionScript 2 | 4 | 02-04-2009 15:06 |
| ExternalInterface.addCallback() Problem - Versteh nur nocht warum??? | Knotschi | ActionScript 3 | 0 | 14-03-2009 09:48 |
| ExternalInterface.addCallback Problem | alsodenn | ActionScript 2 | 7 | 23-04-2008 07:06 |
| ExternalInterface addCallback ergibt undefined | FastEddie | Flash 8 | 2 | 24-01-2007 19:24 |