PDA

Volledige versie bekijken : Javascript->Flash m.b.v. ExternalInterface


Nark
%Europe/Berlin %620 %2007, 15:52
Ik wil graag een handtekening gemaakt in flash via javascript ophalen om het te verwerken op de webpagina.

de AS code staat niet in een class maar zit 'achter' een frame.

De AS code:

flash.External.ExternalInterface.addCallback("getHandtekening",null,send);

function send(){
i=1;
mySign = [];

while (i<ii){

_root["container"+i]=_root["line"+i];

mySign.push(_root["container"+i]+","+"999");

i++;
}
return mySign;
}

De javascript code:

<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0"
WIDTH="240" HEIGHT="110" id="sign4" ALIGN="">
<PARAM NAME=movie VALUE="modules/domeinverwijderen/sign4.swf"> <PARAM NAME=quality VALUE=high> <PARAM NAME=bgcolor VALUE=#000000> <EMBED allowScriptAccess="always" src="modules/domeinverwijderen/sign4.swf" quality=high bgcolor=#000000 WIDTH="240" HEIGHT="110" NAME="sign45" ALIGN=""
TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer"></EMBED>
</OBJECT>
<script language="JavaScript">
<!--
function callExternalInterface() {

var handtekening = haalMovie("sign4");
var picture = handtekening.getHandtekening();
alert(picture);
return false;
}

function haalMovie(movieNaam) {
if (navigator.appName.indexOf("Microsoft") != -1) {
return window[movieNaam];
}
else {
return document[movieNaam];
}
}
-->
</script>

Nu krijg ik de error "handtekening.getHandtekening is not a function" wanner ik de AS functie aan wil roepen via javascript. Ik kan de fout niet vinden dus misschien kunnen jullie helpen. De .swf werkt verder gewoon alleen als ik dus via de webpagina de handtekening op wil halen krijg ik de error.

Nark
%Europe/Berlin %611 %2007, 15:40
Beschamend maar waar, ik heb me blind gestaard op een probleem dat er eigenlijk niet was. De movie was namelijk compiled als Flash 6 en daar wordt ExternalInterface nog niet ondersteund. Opnieuw gecompiled naar Flash 9 en nu werkt het.

*gaat zicht schamen*