Ik heb een probleem met een flash experiment waarmee ik bezig ben: het flashdocument is simpelweg een aardig geanimeerde klok: naar deze klok kunnen echter ook boodschappen (als string) verstuurd worden die dan weergegeven worden ipv de tijd. Deze klok is een volledig aparte klasse die perfect werkt.
Het probleem is dat ik deze klok extern met javascript wil aansturen. Volgens de flash documentatie is zoiets zeer eenvoudig klaar te spelen. In mijn hoofdklasse kwam dan ook deze actionscript code te staan:
Op mijn webpagina kwam dan het volgende stukje javascript terecht:
Deze javascript wordt door een "submit" knop opgeroepen. Heb de variabelen die hij krijgt gechecked via window.alert, en deze zijn correct. "clock" is de id van het flash object op de webpagina.
Het probleem: dit werkt niet
. Heb daarna een aantal zaken geverifiëerd:
- de embedding variabele van flash: 'allowScriptAccess' staat ingesteld op 'always', hoewel hij standaard op 'sameDomain' stond, wat ook zou moeten werken.
- security settings van flash player nagekeken, maar hier vind ik niets relevants.
Wat zie ik nu eigenlijk over het hoofd? Volgens verscheidene sites zou dit juist zeer eenvoudig moeten zijn
Het probleem is dat ik deze klok extern met javascript wil aansturen. Volgens de flash documentatie is zoiets zeer eenvoudig klaar te spelen. In mijn hoofdklasse kwam dan ook deze actionscript code te staan:
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| public class Main extends Sprite { private var movie:TextMessage; //TextMessage is de naam van de klasse die aan de geanimeerde klok gelinkt is public function Main():void { movie = main_movie; //main_movie is de id van de klok instance op de stage if (ExternalInterface.available) { movie.changeText("external interface ready"); //deze wordt bij het uitvoeren wél weergegeven: de klasse en bijhorende changeText functie werken dus perfect, alsook ExternalInterface is dus beschikbaar. ExternalInterface.addCallback("sendToActionScript", receivedFromJavaScript); //het relevante stukje code dat voor interactie met javascript zou moeten zorgen }; } private function receivedFromJavaScript(value:String):void{ movie.changeText(value); } } |
Op mijn webpagina kwam dan het volgende stukje javascript terecht:
JavaScript:
1
2
3
4
| function updateFlashText(){ var content = document.getElementById("text_content").value; getFlashMovie("clock").sendToActionScript(content); } |
Deze javascript wordt door een "submit" knop opgeroepen. Heb de variabelen die hij krijgt gechecked via window.alert, en deze zijn correct. "clock" is de id van het flash object op de webpagina.
Het probleem: dit werkt niet
- de embedding variabele van flash: 'allowScriptAccess' staat ingesteld op 'always', hoewel hij standaard op 'sameDomain' stond, wat ook zou moeten werken.
- security settings van flash player nagekeken, maar hier vind ik niets relevants.
Wat zie ik nu eigenlijk over het hoofd? Volgens verscheidene sites zou dit juist zeer eenvoudig moeten zijn