一.利用Timer 类解决ExternalInterface.call对象为空的问题
外部 API 最常见的用途之一就是允许 ActionScript 应用程序与 Web 浏览器进行通信。使用外部 API 时,ActionScript 方法可以调用使用 JavaScript 编写的代码,反之亦然。由于浏览器的复杂性及其内部呈现页的方式,因此根本无法保证 SWF 文档能够在 HTML 页中的第一个 JavaScript 运行之前注册它的回调。出于这个原因,在从 JavaScript 调用 SWF 文档中的函数之前,SWF 文档应总是调用 HTML 页,以通知它 SWF 文档已准备好接受连接。
例如,通过 IMManager 类执行的一系列步骤,Introvert IM 可确定浏览器是否做好了通信的准备,并为通信准备 SWF 文件。第一个步骤(确定浏览器是否已做好通信准备)是在 IMManager 构造函数中执行的,如下所示:
public function IMManager(initialStatus:IMStatus)
{
_status = initialStatus;
// 检查容器能否使用外部 API。
if (ExternalInterface.available)
{
try
{
// 这会调用 isContainerReady() 方法,该方法又调用
//