Я не могу заставить это работать даже после того, как удостоверился, что для "allowScriptAccess" всегда.Я успешно поместил флэш-фильм в браузер, вызвал функцию ReceiveDataFromFlashMovie () и напечатал «Got here», но похоже, что GetFlashMovieObject () возвращает только NULL в соответствии с сообщением об ошибке в Internet Explorer.Я что-то упустил?
Заголовок HTML-файла:
<script type="text/javascript">
function getFlashMovieObject(movieName)
{
if (navigator.appName.indexOf("Microsoft") != -1) {
return window[movieName]
}
else { return document[movieName] }
}
function ReceiveDataFromFlashMovie()
{
document.write("Got here");
var callResult = getFlashMovieObject("MakingButtons").myFunction();
return callResult;
}
</script>
HTML:
<script type="text/javascript">
document.write("Hello World.")
ReceiveDataFromFlashMovie();
document.write(callResult)
</script>
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="500" height="500" id="MakingButtons" align="middle">
<param name="allowScriptAccess" value="always" />
<param name="movie" value="MakingButtons.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#ffffff" />
<embed src="MakingButtons.swf" quality="high" bgcolor="#ffffff" width="550" height="400" name="MakingButtons" align="middle" allowScriptAccess="always" swlliveconnect="true" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>
ActionScript 3.0:
import flash.text.TextField;
import flash.external.*;
// The name of the Flash variable to be called in JavaScript
var flashFunction:String = "myFunction";
var instance:Object = null;
// Callback function executed by the name of variable
var realFunction:Function = callMe;
ExternalInterface.addCallback(flashFunction, realFunction);
var foo = "Goodbye!";
function callMe():String
{
return foo;
}
Спасибовы!