第7章ActionScript3.0的操作,代码怎么用

代码 2
第7章ActionScript3.0的操作 第7章ActionScript3.0的操作 “怎样在Flash CS4 中添加ActionScript代码呢?”““动作”面板是做什么的?”“我写的代码怎么运行?”“为什么调试窗口会出错误?”这一章里,将介绍如何使用Flash CS4的动作面板运行、调试代码并且输出最终结果。
在学习这部分内容的时候,大家要注意快捷键和基本工具的使用,熟练掌握这些可以为日后的开发工作节省很多的时间和精力。
183 FlashCS4 7.1熟悉ActionScript3.0的开发环境
1.概念 在Flash CS4中,可以在“动作”面板下创建ActionScript脚本,它是Flash CS4中一个功能强大的ActionScript代码编辑器,集合了诸如代码提示、自动套用代码格式、查找替换、脚本助手等多项功能。
“动作”面板大致可以分为以下四个部分:●工具栏●动作工具箱●脚本导航器●脚本编辑窗口 如图7.1.1所示。
当两个面板的重叠区域出现淡蓝色时,释放鼠标即可实现面板组合。
如图7.1.3所示,这里将“编译器错误”面板和“动作”面板进行组合,这一方法也适用于其他面板窗口。
 图7.1.1 
2.方法 在Flash CS4中,选择菜单“窗口→动作”命令(快捷键F9)即可打开“动作”面板。
对于已经打开的面板,可以执行以下操作:01 自定义面板窗口的布局方式。
以“动作”面 板为例,在“动作”面板的上边缘拖动鼠标即可将它拖放至自己需要的位置,这一方法也适用于其他面板窗口,如图7.1.2所示。
 图7.1.3  如果需要分开已组合的面板,在面板名称处按下鼠标左键不放,然后将其拖曳至所需位置释放鼠标即可。
如图7.1.4所示,这里将“编译器错误”面板和“动作”面板分开,这一方法也适用于其他面板窗口。
 图7.1.2  02 组合多个面板。
按照用户个人使用习惯,Flash可以将几个面板组合在一起,在面板上边缘处拖动鼠标将面板拖曳至另外一个面板上,  图7.1.4 03 折叠/展开面板。
单击面板的上边缘处或者面 板左侧/按钮,即可折叠或者展开面板。
如图7.1.5所示,这里以“动作”面板为例,这一方法也适用于其他面板窗口。
184 第7章ActionScript3.0的操作 7.1.1工具栏 概念工具栏位于“动作”面板的上方,主要由以下几种工具组成,如图7.1.6和表7-1-1所示。
名称添加 查找 插入 显示调试折叠折叠所选展开自动套用格式 语法检查应用行注释应用块注释删除注释显示/隐藏工具箱帮助 图7.1.5 表7-1-
1 工具栏名称、介绍以及使用方法图7.1.6  介绍 使用方法 将新的属性、事件或者方法添加到脚本中去 查找和替换内容 单击按钮,在菜单中选择需要的动作。
如:语言元素→全局函数→trace单击按钮,打开“查找替换”窗口,输入需要查找或替换的内容,执行对应操作 插入目标路径 单击按钮,显示当前舞台中所有实例的相对或绝对路径,选中实例,单击“确定”按钮,该实例的目标路径便会在脚本编辑窗口中出现 显示代码的提示 调试选项,可以插入/更改断点将大括号中的内容折叠起来折叠所选择的全部内容展开折叠内容当完成部分编码后,可以用这个工具来规范、整理代码格式 检查代码中存在的问题 注释单行代码注释多行代码删除注释打开或者关闭面板左侧的工具箱 打开帮助面板 开启脚本助手功能 语法提示。
包括对函数参数和用法的提示;对语句用法的提示;对内置类方法和属性的提示为程序设置断点,用于找出错误单击按钮,将程序中“{}”内的内容折叠起来,方便阅读选中需要折叠的部分,单击按钮即可选中需要展开的部分,单击按钮即可单击按钮,Flash会自动帮助整理代码的格式,使它更加规范单击按钮,Flash会帮助检查当前代码中存在的错误,并在“编译器错误”面板中作出相应的提示选中需要的注释的单行语句,单击按钮即可选中需要注释的多行语句,单击按钮即可选中需要删除注释的部分,单击按钮即可单击按钮,打开或者关闭工具箱使用AS的过程中,有任何的问题都可以单击“帮助”来查询解决方法(快捷键F1)详见11.3.2节编辑脚本 7.1.2动作工具箱
1.概念动作工具箱位于“动作”面板的左侧,是用来浏览ActionScript元素(类、方法等)的分类列表。
用户可以通过工具栏中的 工具来打开/关闭动作工具箱,如图7.1.7所示。
185 FlashCS4 7.1.4脚本编辑窗口
1.概念 在FLA文件中编辑ActionScript脚本时,脚本编辑窗口位于“动作”面板的右下角空白处,如图7.1.11所示。
  图7.1.7 
2.方法单击即可打开相应的包、类、方法和属性集合,如图7.1.8所示。
 图7.1.8 双击动作工具箱列表中的相应方法、属性或直接拖动该元素到脚本编辑窗口中,就能够轻松创建ActionScript程序语句,如图7.1.9所示。
图7.1.11 此外,也可以在Flash CS4中创建导入应用程序的外部脚本文件,例如ActionScript、Flash Communication 或 Flash JavaScript文件,如图7.1.12所示。
 图7.1.9  7.1.3脚本导航器
1.概念脚本导航器位于“动作”面板的左下方,它可以快速显示正在工作的对象,以及在哪些帧上添加了脚本。
使用它可以在Flash文档中的各个脚本之间快速切换,如图7.1.10所示。
图7.1.12 
2.方法如果是直接在FLA文件中添加脚本,打开“动作”面板,在脚本编辑窗口中直接键入代码即可,如图7.1.13所示。
 图7.1.10 
2.方法单击脚本导航器中的某一选项,那么与该项目关联的脚本将显示在脚本编辑窗格中,并且播放头将移到时间轴上的相应位置。
  186 图7.1.13  第7章ActionScript3.0的操作 如果需要创建外部文件,可以选择“菜单→文件→新建”命令选择要创建的外部文件类型(ActionScript 文件、ActionScript Communication 文件或 Flash JavaScript 文件),如图7.1.14所示,然后在打开的脚本编辑窗口中直接键入代码即可。
第一种,双击脚本导航器中的某一项目即可固定脚本;  第二种,单击“固定活动脚本”按钮,那么当前的活动脚本将被固定。
要解除某项固定的动作脚本,只需要单击“关闭已固定的脚本”按钮   即可,如图7.1.16所示。
图7.1.14  7.1.5脚本锁定
1.概念 在Flash制作调试中,如果时间轴很长并且在多图层多帧使用到多个脚本,那么要找到某一帧上的动作脚本实属不易。
通过Flash的固定脚本窗口功能,便可以解决这一问题,大大方便了复杂时间轴脚本的编辑调试问题。
  例如下面这个例子中,在图层脚本
A、脚本B和脚本C的关键帧上都有代码,那么可以使用脚本锁定功能将它们锁定在“动作”面板上,这样一来,当需要更改它们内容的时候,只要直接单击位于面板下方的脚本位置信息(包含脚本所在图层和关键帧)即可,而不用通过单击时间轴上有a的关键帧查看代码,如图7.1.15所示。
图7.1.16 此外,选中按钮图标右击,会弹出“固定脚本”、“ 关闭脚本”和“关闭所有脚本”选项。
当然,也可以从脚本选项菜单中选择“固定脚本”(快捷键Ctrl+=)、“关闭脚本”(快捷键Ctrl+-)或者“关闭所有脚本”(快捷键Ctrl+Shift+-),如图7.1.17所示。
 图7.1.17 如果有多个活动脚本需要被锁定,只需要按照如上的方法一一操作。
单击它们各自的标签就可以在这些被锁定脚本之间切换。
“动作”面板中没有限制可以锁定的脚本数量。
7.1.6脚本选项菜单 概念脚本选项菜单位于“动作”面板的左侧。
单击按钮即可在弹出的对话框中执行相应的命令,如图7.1.18所示。
图7.1.15 
2.方法有两种途径可以将脚本锁定: 图7.1.18  187 FlashCS4 除了在工具栏中见过的一些功能以外,还新增了以下的命令。
●“转到行”(快捷键Ctrl+G):单击该选项出 现如下窗口,输入所需查找的行号,在脚本编辑面板中即跳转至该行位置。
如图7.1.19所示。
●导出脚本(快捷键Shift+Ctrl+P):如果希望将现在的脚本导出成外部文件,单击该选项在弹出窗口中为其命名并保存即可,如图7.1.21所示。
 图7.1.19 ●“导入脚本”(快捷键Shift+Ctrl+I):如果希 望导入外部文件,单击该选项,在“打开”窗口中选中需要的文件双击或单击“打开”按钮即可,如图7.1.20所示。
图7.1.20  图7.1.21  ●打印:打印当前脚本文件,需打印机硬件支持。
●行号(快捷键Ctrl+Shift+L):选择该选项则在脚 本编辑窗口中显示行号。
●自动换行(快捷键Ctrl+Shift+W):选择该选 项则在脚本编辑窗口中自动换行。
●首选项(快捷键Ctrl+U):更改参数面板中的 参数设置。
7.2设置“动作”面板参数 概念了解“动作”面板的布局之后,可以在“菜单→编辑→首选参数→ActionScript”中对编译器环境进行更改、设置。
Flash的默认设置如图7.2.1所示和表7-2-1所示。
图7.2.1  188 第7章ActionScript3.0的操作 表7-2-
1 动作面板选项名称、内容及默认值 选项名称自动缩进代码提示制表符大小延迟字体打开/导入保存/导出重新加载修改的文件 内容输入如大括号“{”,回车后另起一行,字符缩进制表符指定的大小是否启用代码提示。
例如,输入Math.会弹出该类可以使用的属性缩进字符数出现代码提示的延迟时间字体,大小,编码类型打开或导入外部文件时使用的字体编码保存或导出外部文件时使用的字体编码指定当AS文件被修改、移除或删除的时候,是否作出提示警告 默认值4启用40宋体/10号字UTF-8编码UTF-8编码提示 使用动态字体映射 可用于 Windows 平台上的 Unicode 编码的选项。
如果选择此选项,Flash 将检查选定的字体家族是否具有用于呈现每个字符的必需字形。
否如果字体家族缺少字形,Flash将用可显示所需字符的适当字体家族代替。
当在单一文档中使用多种语言时,这样可防止出现不需要的字符 语法颜色语言 脚本语法配色方案打开ActionScript 2.0/3.0设置 前景:#000000关键字:#0000FF标识符:#0000FF背景:#FFFFFF注释:#808080字符串:#009900 在本书中,为了方便读写,使用字体Verdana,字号大小为14,其余选项使用系统默认,不做更改。
7.3ActionScript3.0高级设置 在Flash CS4中,ActionScript 3.0的高级设置有两种情况: 第一种,称作“应用程序级别”,即该设置适用于所有的AS 3.0 FLA文件。
在首选参数面板中,单击“ActionScript 3.0设置”出现如图7.3.1所示面板。
图7.3.1  189 FlashCS4 7.3.1FlexSDK路径 7.3.3库路径 概念 Flex SDK路径指向包含Flex SDK的文件夹。
Flex是Adobe公司开发的可以输出成基于Flash Player来运行的互联网应用程序。
借助Flex开发人员可以创建包含丰富数据演示、强大客户端逻辑和集成多媒体的复杂应用程序。
SDK是Software Development Kit的缩写,意思是“软件开发工具包”。
Flex SDK包含了辅助Flex开发的相关文档、范例和工具。
可以从网站上下载Flex SDK的最新版本,地址如下:/wiki/display/flexsdk/Flex+SDK接下来,将下载好的SDK 解压到自定义的目录中,在Flex SDK路径中输入其所在文件夹的路径或单击按钮,选择SDK路径即可。
7.3.2源路径
1.概念当自定义外部文件作为类或接口的时候,Flash需要找到包含类或接口定义的外部 AS文件。
该AS文件所在的文件目录就称为源路径。
正如之前说过的,该源路径目录中创建的子目录就是包,使用包可以对类进行分类整理。

2.方法用户可以通过以下两种方式向源路径列表中添加路径:01 单击“浏览路径”按钮,找到要添加的文件夹,然后单击“确定”按钮;02 单击“添加新路径”按钮,输入相对路径或绝对路径,然后单击“确定”按钮。
若要从源路径中删除文件路径,只需选中该路径,然后单击“从路径删除”按钮即可。
注意,在这里建议输入相对路径。
相对,意思就是相对于当前的.fla文件路径。
不写成x:\xxx是为了让项目可以在不同的环境上运行,也可以更好地支持多人开发。
相对路径的写法就是用.表示当前路径,用..表示上一级路径。
例如可以写:./classes/或者../classes/。

1.概念库路径指向的是SWC文件或包含SWC文件的文件夹。
SWC文件是 Flash 的组件文件,例如,当我们打开Flash后,选择“菜单→窗口→组件”命令就可以看见和使用Flash的组件了。

2.方法可以通过以下方式向库路径列表中添加路径:01 单击“浏览路径”按钮,找到要添加的文件夹,然后单击“确定”按钮;02 单击“浏览SWC文件”按钮,找到要添加的SWC文件,然后单击“确定”按钮;03 单击“添加新路径”按钮,输入相对路径或绝对路径,然后单击“确定”按钮。
若要从库路径中删除文件路径,只需选中该路径,然后单击“从路径删除”按钮即可。
7.3.4外部库路径
1.概念外部库路径通常被用来运行共享库。
做Flash项目的时候常常会重复使用一些素材,例如图片、声音、影片简辑、字体等,这时就需要用到共享库。
例如,在一个项目中,有一段提示音在多个文件中被用到,如果每个文件都单独包含这个音频文件,无形中就造成了项目资源的极大浪费。
针对这样的情况,用户就可以把这个音频文件定义成共享库,在需要的时候由使用它的文件直接调用。
通过使用外部库路径,可以指定library在编译时的SWC文件或者目录的位置。
编译器会在编译时根据这个选项进行链接的检查。

2.方法可以通过以下方式向外部库路径列表中加路径:01 单击 “浏览路径”按钮,找到要添加的文件夹,然后单击“确定”按钮;02 单击   “浏览SWC文件” 按钮,找到要添加的SWC文件,然后单击“确定”按钮;03 单击 “添加新路径”按钮,输入相对路径或绝对路径,然后单击“确定”按钮。
若要从库路径中删除文件路径,只需选中该路径,然后单击 “从路径删除”按钮即可。
第二种,被称作“文档级”,即仅适用于当前 190 第7章ActionScript3.0的操作 的FLA文件。
选择“菜单→文件→发布设置→Flash选项面 板”命令,选择脚本选项后的ActionScript设置如图7.3.2所示。
构造函数会被自动调用,它是用户程序的主入口,任何想要做的事都可以从这里展开。
在Flash CS4中,可以直接在时间轴的关键帧上写代码也可以创建导入到应用程序的外部脚本文件,如果选择后者,就一定要指定文档类。

2.方法 可以通过以下两种途径指定文档类:01 在“高级ActionScript 3.0设置”面板的“文档 类”文本框中直接添加,输入该类(外部脚本文件)的AS文件的文件名。
注意,不要包含 .as 文件扩展名;02 单击舞台空白区域,在“属性”面板的“类”文本框中输入该类(外部脚本文件)的AS文件的文件名。
同样,不要包含 .as 文件扩展名。
7.3.6错误设置 图7.3.2  7.3.5文档类
1.概念 文档类继承自 Sprite 或 MovieClip类,是SWF 文件的主类。
Flash在读取SWF文件的时候文档类的 概念 Flash CS4中的“错误”设置分为两种情况:严格模式和警告模式。
01 严格模式将编译器警告报告为错误,意味着 如果存在这些类型的错误,编译将会失败;02 警告模式将报告多余警告,这些警告对将 ActionScript 2.0 代码更新到 ActionScript 3.0 时发现不兼容现象非常有用。
  7.4使用ActionScript3.0 7.4.1脚本类型
1.概念在Flash CS4中,可以将ActionScript代码放置在FLA文件中时间轴的关键帧上或者外部脚本文件中。

2.方法具体步骤如下。
1)FLA文件01 新建(“菜单→文件→新建”)一个Flash CS4工程。
选中“Flash文件(ActionScript 3.0)”选项,单击“确定”按钮,如图7.4.1所示。
图7.4.1 02 另存该文件(“菜单→文件→另存为”),命名为ASLayer。
03 双击“图层1”,或“右键→属性→名称”, 191 FlashCS4 将图层1更名为AS。
04 选中AS层的第1帧,打开“动作”面板,即 可为该FLA文件添加脚本。
此时,被添加了脚本的那一帧上会出现符号a,如图7.4.2所示。
图7.4.2 注意,在FLA文件中,只能够将脚本添加在关键帧中。
如果尝试在其他地方添加代码,脚本编辑窗口中会出现错误提示“无法将动作应用于当前所选内容”。
2)外部脚本AS文件01 新建(“菜单→文件→新建”)一个Flash CS3工程。
选中“ActionScript文件”选项,单击“确定”按钮。
如图7.4.3所示。
注意,编辑AS文件的脚本窗口不同于“动作”面板,并且AS文件是纯文本格式,它可以使用任何文本编辑器编辑。
7.4.2编辑脚本 在Flash CS4中,可以通过以下几种方式来创建脚本语句
1.脚本助手模式 1)概念在使用ActionScript脚本的时候,可以借助一些工具来帮助编写。
“脚本助手”就是一个很好的选择。
脚本助手可以帮助你在FLA文件中添加代码。
在使用过程中,它会提供一个输入参数的窗口,用户并不需要知道详细的语法规则,只要知道自己在完成项目的时候会用到哪些函数就可以了。
2)方法在“动作”面板中单击“脚本助手”按钮,切换至脚本助手模式,如图 7.4.5所示。
图7.4.3 02 在打开的脚本编辑窗口中,添加脚本即可, 如图7.4.4所示。
图7.4.4  图7.4.5  脚本助手状态下,工具栏也发生一些变化,如表7-3-1所示。
表7-3-
1 脚本助手名称、介绍及使用方法 名称添加查找 插入移动显示/隐藏工具箱 介绍 使用方法 将新的属性、事件或者方法添加到脚本中去 单击按钮,在菜单中选择需要添加的动作 查找和替换内容插入目标路径 单击按钮,打开“查找替换”窗口,输入需要查找或替换的内容,执行对应操作单击按钮,显示当前舞台中所有实例的相对或绝对路径,选中实例,单击“确定”按钮,该实例的目标路径便会在脚本编辑窗口中出现 上下移动所选动作 选中需要移动的语句,单击按钮即可 打开或者关闭面板左侧的工具箱;单击按钮,打开或者关闭工具箱 192 第7章ActionScript3.0的操作 下面将使用一个简单的函数trace( )来说明脚本助手的使用方法,具体步骤如下:01 选中AS层的第1帧,选择“菜单→窗口→动 作”命令(快捷键F9)打开“动作”面板并切换至脚本助手模式;02 单击脚本工具箱中的“语言元素”,找到其下“全局函数”中的trace,双击它或者直接拖入脚本编辑窗口中。
在“动作”面板的上侧,可以看见对函数功能的简单介绍和一个参数输入栏如图7.4.6所示; 7.4.3脚本辅助 方法 当用户创建ActionScript语句遇见了困难时,可以通过以下几种方式解决:01 动作工具箱。
只要知道需要创建怎样的功能 即可在工具箱中找到相应的属性或函数。
02 代码提示。
通过在“动作”面板的首选参 数和脚本选项菜单中打开代码提示,可以获得Flash对全局函数、语句和内置类的方法和属性的提示。
这时,当用户键入一个关键字时,Flash会自动识别该关键字并自动弹出适用的属性或方法列表供用户选择。
例如, 当输入“trace(”的时候,Flash做出如下参数提示: 图7.4.6 03 在参数输入栏中输入“e to Flash!
”。
注意,这是一个文本并不是表达式,不要选择“表达式”选项,如图7.4.7所示。
当输入“for(”的时候,Flash做出如下语法提示: 当需要为变量声明数据类型时,键入“:”后,Flash做出如下提示: 图7.4.7 按照以上步骤,再配合使用工具栏中的相应工具,用户便可以轻松地创建ActionScript语句。
脚本助手模式更适合ActionScript初学者和Flash动画师使用。

2.用户编辑模式(标准模式)对于对ActionScript比较熟悉的高级用户来说,可以使用用户编辑模式创建ActionScript语句。
方法非常简单,在脚本编辑窗口中直接输入代码即可。
当然,工具栏以及动作工具箱中的功能依然适用。
例如,回到“动作”面板中,在未选择脚本助手的情况下,我们在脚本编辑窗口输入:trace("e to ActionScript!
");
3.组件组件是Flash CS4中的一个内置功能。
可以利用组件实现诸如视频播放器、滚动条等功能。
通过ActionScript 3.0,可以控制组件的功能,并且自定义组件的用户界面。
关于这一部分的知识,会在以后的章节中详细介绍。
当实例化出某个类的对象,需要调用该类的具体方法时,键入“.”后,Flash做出如下方法提示: 注意,当知道需要查找的方法或属性名称的前几个字母时,代码提示的效率会更高。
例如,使用TextField类的background属性,键入“.”出现代码提示菜单后,继续输入“b”,则代码提示菜单自动选择以字母b开头的属性,用键盘的“上下”键或鼠标选择,回车或双击即可使用。
如下所示: 03 使用后缀。
可以通过为变量添加后缀名称,而不是指定数据类型来获得代码提示。
例如,可以获得Button类代码提示的后缀是_btn: 193 FlashCS4 注意,这种方法源自ActionScript 3.0之前的版本,为了更好地体现ActionScript 3.0的面向对象特性,不建议采用这种方式。
表7-4-1所示为常用对象的变量后缀名。
表7-4-
1 常用对象类型变量后缀名 对象类型  Array Button Camera Color ContextMenu ContextMenuItem Date Error LoadVars LocalConnection Microphone MovieClip MovieClipLoader PrintJob NetConnection NetStream Shared ObjectSound String TextField TextFormat Video XML XMLNode XMLSocket 变量后缀名  _array _btn _cam _color _cm _cmi _date _err _lv _lc _mic _mc _mcl _pj _nc _ns _so _sound _str _txt _fmt _video _xml _xmlnode _xmlsocket 04 帮助文档。
选择“菜单→帮助→帮助”命令(快捷键F1)即可打开帮助文档。
在左侧窗口中,针对自己的问题打开相应目录即可。
也可 以直接在“搜索”栏中键入问题关键字,单击“搜索”按钮查找。
05 如果在编写代码的过程中遇到了问题,例如不清楚某个函数的使用方法,可以直接选中整个函数,然后按快捷键F1或右击,在弹出的页面中选择“查看帮助”命令进行查找。
7.4.4添加注释方法 添加注释的过程在应用程序的开发过程中十分重要。
好的注释不仅可以为开发者提供有用的信息,并且可以对软件的维护作出巨大贡献。
在ActionScript中为脚本添加注释的方法十分简单。
如下所示: //输出文字trace("e to ActionScript!
");规定符号//后面所跟内容即为注释语言。
注释语言不参与代码的编译。
7.4.5输出影片方法 选择“菜单→控制→测试影片”命令(快捷键Ctrl+Enter)即可输出当前影片。
通常,用户可以看见Flash生成的SWF文件、输出窗口中的显示信息等,如图7.4.8所示。
图7.4.8  7.5调试 概念在任何情况下,用户都无法保证编写的代码百分之百正确。
因此,对已经编写的脚本进行调试就是十分重要的工作。
在Flash CS4中,可以通过以下的三种常见方式对脚本进行调试:194 第7章ActionScript3.0的操作 ●错误输出模式;●输出窗口模式;●调试器模式。
下面来逐一介绍。
7.5.1错误输出模式 方法如果仅在FLA文件中进行调试,最常见的就是错误输出模式。
通过编译器错误窗口,可以立刻获得有关错误的完整列表。
举例来说,输入以下语句:trace("e to ActionScript!
";选择“菜单→控制→测试影片”命令(快捷键Ctrl+Enter),会弹出如下的窗口,如图7.5.1所示。
图7.5.1 这就是编译器错误报告窗口,当程序出现问题而不能正常运行的时候,会在这里给出错误提示以及错误出现的位置。
在本例中,错误出现的位置在图层AS的第1帧上,原因是trace函数格式不完整,缺少右括号)。
双击该错误提示信息,即可跳转至脚本编辑窗口中的出错代码位置。
如果是外部脚本文件,用户需要打开与之相关联的目标FLA文件,然后选择“菜单→控制→测试影片”命令(快捷键Ctrl+Enter)调试影片,获取编译器错误信息。
有时候,错误信息是连串出现的。
面对这种情况,应该从错误列表的顶端开始修改错误。
因为之后的错误很有可能是前一个问题造成的。
修改一个错误往往也会让其他一些错误得到更正。
7.5.2输出窗口模式 方法用户编写ActionScript程序的时候,有时会需要获得表达式、变量的值,这时可以使用trace 语句将这些值发送到输出窗口。
举例来说,在下面的例子中要实现一个replay的功能,需要获得当前声音的暂停位置。
用户可以 在函数中加入trace((pausePosition);这样一来,当程序运行到此就会在输出窗口中显示暂停位置信息,从而确保函数获得所需数值并正常执行。
function replayClick(evt:Event):void { (); (); trace((pausePosition); channel1 = sndMusic.play(pausePosition); channel2 = sndVoice.play(pausePosition1);}下面这个例子利用trace(newPosition);在输出窗口中显示newPosition的值,这样做可以帮助用户确定在之前的程序中newPosition值是否已经小于50,如果没有达到这个要求,那么根本不会执行while语句,这时就需要用户检查之前的程序确保该值在此处小于50。
trace(newPosition);while (newPosition<50){newPosition+=100;}在调整好整个程序之后,这些trace语句会显得多余。
选择“菜单→发布设置→Flash”命令,选择“省略trace动作”选项即可。
7.5.3调试器模式
1.概念 不同于前面两种情况直接表现出错误结果,调试器和用户之间是一种交互式的关系。
调试器作为一个有效的工具,帮助用户按照自己的意愿追踪数据的每一个变化。
这对纷繁复杂的大型程序来说,无疑是福音。
Flash单独的 ActionScript 3.0 调试器仅用于 ActionScript 3.0 FLA 和 AS 文件。
 FLA 文件必须将发布设置设为 Flash Player 9或以上。
 启动一个 ActionScript 3.0 调试过程时,Flash 将启动独立的 Flash Player 调试版来播放 SWF 文件。
 所以,如果出现无法连接到播放器或无法调试的情况,请检查Flash CS4安装目录下Adobe Flash CS4\players\Debug中的Flash Player是否为可调试版本。
ActionScript 3.0 调试器将 Flash 工作区转换为显示调试所用面板的调试模式,除了包括“动作”面板或脚本窗口之外,还有调试控制台和变量面板,如图7.5.2所示。
195 FlashCS4  图7.5.2  调试控制台显示调用堆栈并包含用于跟踪脚本的工具。
 其中:
(1)跳入使调试器(由黄色箭头指示)进入函数。
对于有用户定义函数的代码行,跳入操作将转至该函数的第一行;对没有用户定义函数的代码行,跳入操作会直接转至下一个代码行。

(2)跳出使调试器跳出函数。
只有当前在用户定义函数中停止时,此按钮才能起作用,它把黄色箭头移到调用该函数的代码行后面的那一行。
在不属于用户定义函数的行上单击“跳出”按钮与单击“继续”按钮的作用一样,播放器会继续执行脚本,直到遇到一个断点。

(3)跳过使调试器跳过一行代码。
此按钮将黄色箭头移动到脚本的下一行,并且忽略任何用户定义函数。

(4)继续使调试器继续执行当前的脚本,直至到达下一个断点。

(5)停止使调试器结束当前调试工作,如图7.5.3所示。
   return c;    }    b=C();  }  a= B(); } temp = A(); 选择“菜单→调试→调试影片”命令,会在调 试控制台中看见如下信息,如图7.5.4所示。
图7.5.4  这些信息反应了当前操作正处在函数C()中。
之前,函数B()调用了函数C(),函数A()又调用了函数B()。
这个过程调用将数据和控制从代码的一部分传递到另一部分,并且在进入时为过程的局部变量分配了新的空间,并将在退出时释放这些空间。
用来传递过程参数、存储返回信息、保存寄存器以供以后恢复之用的那部分空间称为栈。
为单个过程分配的那部分栈称为栈帧(stack frame),也就是说,栈帧是相对过程调用而言的,一个子程序有一个栈帧,而栈是属于整个计算机系统的。
可见,每当进入一个新的函数,Flash都会在调用栈内分配一个新的栈帧。
添加的过程遵循后进先出原则。
用户可以单击调试控制台中的信息在“变量”面板中查看该帧的本地变量状态。
“变量”面板显示了当前范围内的变量及其值,并允许用户自行更新这些值,如图7.5.5所示。
图7.5.3 在介绍跳入的时候曾说过,跳入使调试器进入 函数内部,待该函数执行完毕再继续之前的操作。
更深一层的含义是:Flash调试器在调用这个函数之 前会自动记住正在进行的操作、作用域和所有本地 变量,然后为新的函数开辟一个新的作用域,一旦 这个函数执行完毕,再回到之前的作用域中继续执 行操作。
举例来说,在下面代码的黑体部分加入断点: var a, b, c, temp:Number; function A() {  function B() {    function C() { 196 图7.5.5 
2.方法对于FLA文件来说,选择“菜单→调试→调试影片”命令(快捷键Shift+Ctrl+Enter);AS文件则要从脚本窗口顶部的“目标”菜单中选择用来编译 ActionScript 文件的 FLA 文件。
 FLA 文件必须也在 Flash 中打开才能显示在此菜单中,之后再选择“菜单→调试→调试影片”命令。
第7章ActionScript3.0的操作 需要结束调试的时候,在调试模式下选择“菜单→调试→结束调试会话”命令(快捷键Alt+F12)或直接关闭该窗口。
体现调试器交互作用最直接的方法就是在程序中加入断点。
所谓断点就是程序被中断的地方,用来检查各变量的值以及测试程序的逻辑是否正确。
用户只需要在发生中断的代码行左侧单击一次,就会出现红色停止标志,取消该断点只需再次单击它即可。
除此之外,也可以通过选中需要发生中断的代码,单击鼠标右键选择“切换断点”以及“删除此文件中的断点”命令,或者在调试模式中选择“菜单→调试→切换断点”(快捷键Ctrl+B)和“删除所有断点” 命令(快捷键Shift+Ctrl+B)来添加和删除断点,如图7.5.6所示。
图7.5.6 具体步骤如下:01 选择“菜单→文件→新建”命令新建一个 Flash文件(ActionScript 3.0),另存并命名为 MouseTrack.as; 02 新建图层mouse,并创建一个影片剪辑元件, 为它添加实例名称mcShape; 03 双击图层一并更名为AS。
选择“菜单→窗口 →动作”命令(快捷键F9)打开“动作”面板, 添加如下的代码并在代码相关语句处设置断点。
mcShape.addEventListener("enterFrame",onEnter FrameTrans); function onEnterFrameTrans(event:Event) { var mc : MovieClip = event.target as MovieClip;        var dx : Number = mouseX-mc.x;        var dy : Number = mouseY-mc.y;        if (Math.abs(dy) > 
5 || Math.abs(dx) > 5) {     var n : Number = Math.atan2(dy,dx) * 180          / Math.PI;        mc.rotation = n;        mc.x += dx / 10;        mc.y += dy / 10;        } } 7.6编程风格 养成良好的编程风格无疑是开发过程中非常重要的环节。
这样做不仅编写出来的代码美观,而且能够避免过多的错误。
提供以下建议作为参考,在本书的后几章中也会根据实际情况来具体讲解。

(1)提倡代码文档化。
开发人员写出的代码不仅要自己能看懂,还要让其他开发人员也能看懂,以便于后期的维护,这主要体现在脚本的注释上。
维护人员在日常的产品维护中经常会遇到几十行甚至几百行代码都没有注释的现象,这不仅给维护人员带来烦麻,还会导致由于维护人员看不懂代码而改错问题或重新编写的情况。
例如:用户在软件的后期维护中,经常为调试某个问题而弄的焦头烂额,调试的代码中函数里调函数、事件里调事件,没有几行注释,反复调几次就转晕了,对新员工来说更是无从下手。
这种现象屡见不鲜,所以用户在开发过程中不要为图一时之快而忽略了写注 释,另外简洁易读的代码对新员工快速上手也有很大帮助,这会影响他们以后的编码作风,起榜样的作用。

(2)代码的缩进编排、变量的命名规则要始终保持一致。

(3)类名首字母应该大写,属性、方法以及对象的首字母应小写。
对于所有标识符,其中包含的所有单词都应紧靠在一起,而且大写中间单词的首字母。

(4)避免使用“魔术数字”,这些数字很难与代码很好地配合。
如以后需要修改它,无疑会成为一场噩梦,因为根本不知道100到底是指“数组大小”还是“其他全然不同的东西”。
所以,用户应创建一个常数,给它一个具有说服力的描述性名称,并在整个程序中都采用常数标识符。
这样可使程序更易理解和维护。
197 FlashCS4 7.7文本输出实例 通过以下这个简单的实例来复习一下AS脚本编辑方面的操作。
具体步骤如下:01 新建(“菜单→文件→新建”)一个Flash CS3 工程,另存并命名为ASTest,如图7.7.1所示。
图7.7.102 新建ActionScript文件,存放至和ASTest.fla 相同的目录下,命名为TextShow,如图7.7.2所示。
图7.7.203 回到ASTest.fla中,在“属性”面板的“类” 文本框中输入TextShow,如图7.7.3所示。
05 在TextShow.as中添加如下代码并保存:package {    import flash.display.MovieClip;    import flash.text.TextField;    import flash.text.TextFormat;    public class TextShow extends MovieClip{    private var text:TextField;    public function TextShow():void {    text = new TextField();    text.multiline = true;    text.wordWrap = true;    text.width = stage.stageWidth;    text.height = stage.stageHeight;    text.text = "Hello!
 e to ActionScript 3.0 !
";    var format:TextFormat = new TextFormat();    format.font = “_sans”;    format.size = 40;    text.setTextFormat(format);    addChild(text);      }    }} 06 按Ctrl+Enter快捷键测试影片,弹出以下窗口,如图7.7.5所示。
图7.7.304 打开TextShow.as,确保目标文件为ASTest. fla,如图7.7.4所示。
图7.7.5 图7.7.4  198

标签: #文件 #文件 #引线 #中文 #直径 #文件 #文件 #空间