ExternalInterface 是你的朋友:
http://help.adobe.com/nl_NL/Flash/CS5/AS3LR/flash/external/ExternalInterface.html
使用 ExternalInterface 时的一些提示:
- 在 html 嵌入代码中将
allowScriptAccess 设置为“始终”
- 确保 Flash 在您的 html 代码中有一个 id
一些简单的例子:
1.从javascript中抓取一个值到flash
// actionscript 3 code
if (ExternalInterface.available)
{
var url:String = ExternalInterface.call("document.location");
// output to textfield
var t:TextField = new TextField();
addChild(t);
t.text = url;
}
2。使用来自 flash 的参数调用函数
// actionscript 3 code
if (ExternalInterface.available)
{
var result:String = "Flash rocks"
ExternalInterface.call("alert", result);
}
3.从javascript调用带有参数的函数到Flash:
// javascript
window.onLoad = function()
{
document.getElementById('flashId').doSomething("javascript rocks");
}
.. 和
// actionscript 3
if (ExternalInterface.available)
{
ExternalInterface.addCallback("doSomething", handleSomethingFromJavascript);// links js function to as3 function
function handleSomethingFromJavascript(value:String):void
{
// output to textfield
var t:TextField = new TextField();
addChild(t);
t.text = value;
}
}
您可以在 flash 和 javascript 之间做很多事情,因为您可以看到集成几乎是无痛的!唯一需要注意的是,在 flash 中 ExternalInterface 不可用,因此您必须在浏览器中进行测试。您可以使用wmode="transparent" 制作透明的 Flash 对象。您不能使用display:none 或visibility (css),因为这样闪存不会执行或动作较慢。为确保它继续运行,请将其放在页面的角落或其他地方position:fixed (css)。当离开屏幕或处于非活动状态(即在非活动选项卡中)时,浏览器使 Flash 对象以一种睡眠模式(较慢)运行