Ciao! ho letto il tuo tutorial su come passare dati da Action script a Javascript, io ho provato a fare come c'era scritto ma faccio qualche errore che non riesco a trovare..
Il codice action script che uso è il seguente:
Code:
stop();
import flash.external.ExternalInterface;
//create the local Shared Object
myLocalSO = sharedobject.getLocal("contextData" );
//Populate the text field if the SO already contains a name
if (myLocalSO.data.longitude != null) {
userName.text = myLocalSO.data.longitude;
longitude.text = "Longitudine " + myLocalSO.data.longitude;
}
//Populate the text fields if the SO does not contain a name
else {
userName.text = "";
longitude.text = "Attivare modulo sensing";
}
if (myLocalSO.data.latitude != null) {
latitude.text = "Latitudine " + myLocalSO.data.latitude;
}
// Handler for userName.onChanged
userName.onChanged = function() {
myLocalSO.data.longitude = userName.text;
}
//Reset the data in the SO, and text fields
blueButton.onRelease = function () {
trace (myLocalSO.objectName);
myLocalSO.data.longitude = null;
myLocalSO.data.counter = 2;
userName.text = "";
longitude.text = "This is your first visit.";
}
var coordinate=new Array();
function fromJS():Array {
coordinate [0] = myLocalSO.data.longitude;
coordinate [1] = myLocalSO.data.latitude;
return coordinate;
}
ExternalInterface.addCallback("sendToActionScript",fromJS);
Mentre nella pagina local_so.html uso il seguente codice:
HTML Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title>SWFobject | pagina esempio</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<script type='text/javascript'>
function thisMovie(movieName) {
if (navigator.appName.indexOf("Microsoft") != -1) {
return window[movieName];
} else {
return document[movieName];
}
}
var coords = new Array();
var lat=0;
var long=0;
function sendToActionScript() {
coords = thisMovie("local_so").sendToActionScript();
if ((long!=coords[0])||(lat!=coors[1]))
new_location();
}
function new_location() {
document.getElementById("cord1").innerHTML="lat";
document.getElementById("cord2").innerHTML="long";
}
</script>
</head>
<body>
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
id="local_so" width="500" height="375"
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab">
<param name="movie" value="local_so.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#869ca7" />
<param name="allowScriptAccess" value="sameDomain" />
<embed src="http://www.flepstudio.org/forum/articoli-e-tutorials/local_so.swf" quality="high" bgcolor="#869ca7"
width="500" height="375" name="local_so" align="middle"
play="true" loop="false" quality="high" allowScriptAccess="sameDomain"
type="application/x-shockwave-flash"
pluginspage="http://www.macromedia.com/go/getflashplayer">
</embed>
</object>
<div>
<script type='text/javascript'>
sendToActionScript();
</script></div>
<div id="cord1"></div>
<div id="cord2"></div>
</body>
</html>
Qunado lancio la pagina con firefox, firebug mi rileva il seguente errore:
thisMovie("local_so").sendToActionScript is not a function
[Break on this error] coords = thisMovie("local_so").sendToActionScript();
Ho iniziato a fare qualcosa in flash solo da pochi giorni..magari il mio errore è una cosa banalissima magari qualche plug-in mancante...ma proprio non so cosa fare...
Qualcuno sa dirmi qualcosa?
Grazie