Flash的ActionScript(简称AS)代码控制是Flash实现交互性的重要组成部分,也是区别于其他动画软件的看家本领。今年新发布的Flash MX Professional 2004的动作脚本语言已经升级到2.0,它是一种面向对象的脚本语言,执行ECMA-262脚本语言规范,支持继承、强类型和事件模型。使用动作脚本语言2.0可以编写出更加稳健的脚本。
动作脚本语言2.0的新特性包括:新的语言元素、改进的编辑和调试工具、引入更多、的面向对象编程模型。
本系列文章将向大家详细介绍AS代码2.0的各种新特性以及新的安全模型与旧版SWF文件的变化关系。
新的和有变化的语言元素
Flash MX Pro 2004的动作脚本语言2.0增加了一些新的语言元素,并对已有的语言元素做了有益的改进。(以下以字母排列为序)
注意:要使用这些元素,必须在发布文档时指定目标播放器为Flash 7播放器。
(1) Array.sort()和Array.sortOn() 方法
让你添加参数来指定附加的排序选项,如按升序排序和按降序排序、排序时是否区分大小写,等等。
(2) Button.menu、MovieClip.menu和TextField.menu 属性
与新的ContextMenu和ContextMenuItem类协同工作,让你能够建立右键快捷菜单选项与按钮、电影剪辑或文本框对象之间的关联。[next]
(3) ContextMenu 类和ContextMenuItem 类
让你能够定制右键快捷菜单。
(4) Error类和throw与try..catch..finally 命令
让你能够实施更加稳健的异常处理。
(5) LoadVars.addRequestHeader()和XML.addRequestHeader() 方法
可以添加和修改用POST方法发送的HTTP头(如Content-Type或SOAPAction)。
(6) MMExecute() 函数
使你能够从动作脚本中发布Flash JavaScript API命令。
(7) Mouse.onMouseWheel 事件
(仅适用于Windows)当用户使用鼠标滚轮时生成Mouse.onMouseWheel事件侦听器。
(8) MovieClip.getNextHighestDepth() 方法
让你能够在运行期创建电影剪辑实例,并能保证它们的对象在父电影剪辑的z轴空间中其它对象的前面渲染。MovieClip.getInstanceAtDepth()方法让你能够使用深度作为搜索索引,访问动态创建电影剪辑实例。
(9) MovieClip.getSWFVersion() 方法
让你能够确定载入的SWF文件所支持的Flash播放器版本的。
(10) MovieClip.getTextSnapshot() 方法和TextSnapshot 对象
让你能够处理电影剪辑中静态文本框的文本。[next](11) MovieClip._lockroot 属性
让你能够把某个电影剪辑指定为载入它里面的任何电影剪辑的根电影剪辑(_root),或指定在某个_root电影剪辑被载入另一个电影剪辑时保持其_root属性不变。
(12) MovieClipLoader 类
让你能够监测把文件载入电影剪辑的进度。
(13) NetConnection类和NetStream 类
让你能够流式播放本地视频文件(FLV文件)。
(14) PrintJob 类
让你(和用户)在Flash播放器中拥有更多的打印控制能力。
(15) Sound.onID3 事件处理函数
让你能够访问包含MP3文件的Sound(声音)对象中的ID3数据。
(16) Sound.ID3 属性
让你能够访问作为MP3文件的一部分的元数据。
(17) System 类
拥有新的对象和方法,且System.capabilities对象拥有几种新的属性。
(18) TextField.condenseWhite 属性
让你能够删除在浏览器中渲染的HTML文本框中的多余空格。
(19) TextField.mouseWheelEnabled 属性
让你能够指定当鼠标指针位于文本框中且用户滚动鼠标滚轮时,文本框的内容是否应该滚动。
(20) TextField.StyleSheet 类
让你能够创建包含文本格式化规则(如字体大小、颜色和其他格式样式)的样式表对象。
(21) TextField.styleSheet 属性
让你能够把一个样式表对象指派给文本框。
(22) TextFormat.getTextExtent() 方法
接收一个新的参数,且它返回的对象包含一个新成员。
(23) XML.addRequestHeader() 方法
让你能够添加或改变用POST方法发送的HTTP请求头(如Content-Type或SOAPAction)。[next]
新的安全模型与旧版SWF文件
Flash播放器以前具有确定两个域是否相同的规则,这一点在Flash 7播放器中已经改变。此外,决定来自于某个HTTP域的SWF文件是否可以访问、怎样访问来自HTTPS域的SWF文件、从HTTPS域载入的数据的规则也已经改变。在大多数情况下