ExternalInterface
ExternalInterface 类是外部 API,在 ActionScript 和 Flash Player 的容器之间实现直接通讯的应用程序编程接口,
例如,含有 JavaScript 的 HTML 页。 推荐对所有 JavaScript 与 ActionScript 之间的通信使用 ExternalInterface。
在 HTML 页中使用 JavaScript,可以调用 Flash Player 中的 ActionScript 函数。 ActionScript 函数可以返回一个值,JavaScript 会立即接收它作为该调用的返回值。此功能替代了较旧的 fscommand()
一个重要属性:available : Boolean [static] [read-only] 指示此播放器是否位于提供外部接口的容器中。
注意:将 External API 与 HTML 一起使用时,应始终在尝试调用任何 JavaScript 方法之前先检查 HTML 是否已完全加载。
两个重要方法:
addCallback(functionName:String, closure:Function):void [static] 将 ActionScript 方法注册为可从容器调用。
call(functionName:String, ... arguments):* [static] 调用由 Flash Player 容器公开的函数,不传递参数或传递多个参数。
注意:在将 SWF 文件嵌入到 HTML 页中时,请确保 <object>
和 <embed>
标签的 id
和 name
属性不包括诸如以下的字符: (句点)、-、+、*、/ 和 /。
_root _level _global
关于_root:
新建一文件,一个舞台就出现再屏幕上,这就是_root。假设我们把影片剪辑加入到舞台,例如我们把mc1,mc2加入舞台。
我们就可以把_root理解为影片的主时间轴,任何的影片剪辑都放在这个主时间轴上,AS语法表达就是_root.mc1和_root.mc2。这里我们假设mc1中有影片剪辑mc3,那么就是_root.mc1.mc3。
这里我们要记住这样的一条规则:由大到小,由外及内,由最外围的,最大的以点语法制定影片剪辑,就可以知道影片剪辑的属性或者其中的变量。
关于_level
整个影片可以看做是_level0。那么我们这里就可以理解为_level0和_root的效果是相同的,但在概念上二者是有区别的。
关于_global
_global是从flashMX开始引入的概念,只有flash player6或以上的版本才支持,它是一个全局变量,也就是说,如果一个变量、函数或对象被声明为_global,那么在_root或影片剪辑里都可以调用它。
[AS3中,不在有_global范围了,但是你可以通过在预先的public,private和internal里,使用“namespace”来创建你自已的命名。]
Stage
Stage 类是一个顶级类,不必使用构造函数即可访问其方法、属性和处理函数。此类的方法和属性用于访问和操作有关 SWF 文件边界的信息。
SharedObject
共享对象相当强大:它们提供用户计算机上永久对象间的实时数据共享。您可以将本地共享对象看作“Cookie”。
updateAfterEvent
首先得知道flash播放头每到一帧就是把前一帧的场景刷新一下,显示下一帧的内容...。
updateAfterEvent()是用在播放头未到下一帧,还未更新,用户却要强制更新的地方 。
XMLSocket
XMLSocket 类可实现客户端套接字,这使得运行 Flash Player 的计算机可以与由 IP 地址或域名标识的服务器计算机进行通讯。对于要求滞后时间较短的客户端/服务器应用程序,如实时聊天系统,XMLSocket 类非常有用。传统的基于 HTTP 的聊天解决方案频繁轮询服务器,并使用 HTTP 请求来下载新的消息。与此相对照,XMLSocket 聊天解决方案保持与服务器的开放连接,这一连接允许服务器即时发送传入的消息,而无需客户端发出请求。若要使用 XMLSocket 类,服务器计算机必须运行可识别 XMLSocket 类使用的协议的守护程序。
eval
按照名称访问变量、属性、对象或影片剪辑。如果表达式是变量或属性,则返回该变量或属性的值。如果表达式是对象或影片剪辑,则返回对该对象或影片剪辑的引用。如果无法找到表达式中列举的元素,则返回 undefined。