ExternalInterface API
ExternalInterface类是用来支持在ActionScript和SWF容器(例如,含有JavaScript的HTML页或使用FlashPlayer播放SWF文件的桌面应用程序)之间进行直接通信的应用程序编程接口。通过ExternalInterface类,您可以在Flash运行时中使用HTML页面中的JavaScript调用ActionScript函数。ActionScript函数可以返回一个值,JavaScript会立即接收它作为该调用的返回值。此功能替代fscommand()方法。在以下浏览器和操作系统的组合中可以使用ExternalInterface类:
浏览器操作系统操作系统
InternetExplorer5.0及更高版本Windows
Netscape8.0及更高版本WindowsMacOS
Mozilla1.7.5及更高版本WindowsMacOS
Firefox1.0及更高版本WindowsMacOS
Safari1.3及更高版本MacOS
适用于Linux的FlashPlayer9.0.31.0及更高版本在以下浏览器中支持ExternalInterface类:
浏览器
Mozilla1.7.x及更高版本
Firefox1.5.0.7及更高版本
SeaMonkey1.0.5及更高版本
ExternalInterface类要求用户的Web浏览器支持ActiveX®或由某些浏览器公开的NPRuntimeAPI以实现插件脚本处理。即使上面未列出浏览器和操作系统组合,如果它们支持NPRuntimeAPI,则它们也应该支持ExternalInterface类。请访问http://www.mozilla.org/projects/plugins/npruntime.html。
注意:在将SWF文件嵌入到HTML页中时,请确保设置id属性,并且object和embed标签的id和name属性不包含以下字符:
.-+*/\
关于FlashPlayer应用程序的注意事项:FlashPlayer版本9.0.115.0和更高版本允许。在id和name属性中使用.(句点)字符。
关于FlashPlayer应用程序的注意事项:在运行于浏览器中的FlashPlayer10和更高版本中,以编程方式使用此类打开弹出窗口可能会失败。不同的浏览器(和浏览器配置)可能会随时阻止弹出窗口;不能保证可以显示任何弹出窗口。不过,为了尽可能成功,请仅在作为用户操作的直接结果执行的代码中使用此类打开弹出窗口(例如,在鼠标单击或按键事件的事件处理函数中)。
利用ActionScript,可以在HTML页上执行以下操作:
调用任何JavaScript函数。
传递任意数量、具有任意名称的参数。
传递各种数据类型(Boolean、Number、String等等)。
接收来自JavaScript函数的返回值。
通过在HTML页上使用JavaScript,可以:
调用ActionScript函数。
使用标准的函数调用表示法传递参数。
将值返回给JavaScript函数。
关于FlashPlayer应用程序的注意事项:当前,FlashPlayer不支持在HTML表单内嵌入的SWF文件。
关于AIR应用程序的注意事项:在AdobeAIR中,ExternalInterface类可用于在以下二者之间通信:一是在HTMLLoader控件中加载的HTML页面中的JavaScript,一是在此HTML页面中嵌入的SWF内中的ActionScript。
另请参阅:
fscommand()
语言版本:
3.0
Player版本:
Flash9,Lite4