第9章经典实例:制作下雪中的风景图片●9.1要点分析●9.2ActionScript语句应用概述●9.2.1了解ActionScript的语法规则●9.2.2在时间轴上输入代码●9.2.3创建单独的ActionScript文件●9.3处理对象●9.3.1设置对象属性●9.3.2指定对象的动作●9.3.3事件●9.4制作下雪效果动画●9.2ActionScript语句应用概述ActionScript最初是为Flash产品开发的一种简单的脚本语言,现在已是一种完全的面向对象的编程语言,功能强大,类库丰富,语法类似JavaScript,多用于Flash互动性、娱乐性、实用性开发等。ActionScript语句一般由语句、变量和函数组成。具体来说,是由变量、函数、表达式和运算符等组成,其属性和使用方法如下。1.变量在ActionScript语句中,变量用来存储数值、逻辑值、对象、字符串以及动画片段等信息,一个变量由变量和变量值组成,变量名用于区分不同的变量;变量值用于确定变量的类型和大小,它可以随特定的条件而改变。在Flash中为变量命名时必须遵循以下规则。变量名必须是一个标识符。标识符的第一个字符必须为字母、下划线或美元符号($)。其后字符可以是数字、字母、下划线或美元符号。在一个动画中变量名必须是唯一的。变量名不能是关键字或ActionScript文本,如true、false、null等。变量不能是ActionScript语言中的任何元素,例如类名称。●9.2.1了解ActionScript的语法规则●9.1要点分析变量名区分大小写,当变量中出现一个新单词时,新单词的第一个字母要大写。用户在Flash中声明变量后,该变量就包含一个默认值,该值取决于它的数据类型(如表9-1所示),此时的变量处于“未初始化”状态,当首次设置变量值时,就是初始化变量。图表9-1变量的默认值数据类型默认值Booleanfalseint0NumberNaNObjectnullStringnulluint0未声明(与类型注释*等效)undefined其他所有类(包括用户定义的类)null2.数据类型数据类型描述一个数据片段以及可以对其执行的各种操作。在创建变量、对象实例和函数定义时,应使用数据类型来指定要使用的数据的类型。在ActionScript中内置的数据类型有String、Numeric、Boolean、Null以及void等。除此之外,程序员还可以定义一些数据类型,如MovieClip、TextField、Date等。String:表示文本值,例如一本书的章节名称或者标题。Numeric:表示数值,在ActionScript中包含3种特定的数据类型,分别是Number(包括含有或者不含有小数的值在内的任何数值)、int(不含有小数的整数)和uint(无符号的整数,即非负整数)。Boolean:一个true或false值,例如两个值是否相等。Null:只包含一个null值。该值是String数据类型以及定义复合数据类型的所有类的默认值。void:只包含一个特殊值undefined。用户只能将undefined值赋值给未定义数据类型的变量。MovieClip:影片剪辑元件。TextField:动态文本字段或输入文本字段。Date:表示单个值,如时间中的某个片刻。而该日期值实际上表示年、月、时、分、秒等几个值,它们都是单独的数字动态文本字段或输入文本字段。3.ActionScript的基本语法在了解ActionScript语句的组成后,还需要熟悉ActionScript语句的基本语法,才能利用ActionScript语句编辑出具有交互功能的脚本。ActionScript的基本语法如下。点语法:在ActionScript语句中,点(.)用于指定访问对象的属性和方法,并标识指向的动画片段或变量的目标路径。它包括_root和_parent两个特殊的别名。其中,_root用于创建一个绝对路径,表示动画中的主时间轴,而_parent则用于对嵌套在当前动画中的动画片段进行引用。圆括号():用于放置使用动作时的参数,定义一个函数,以及对函数进行调用等,也可以用来改变ActionScript的优先级。大括号{}:用于将代码分成不同的块,以作为区分程序段落的标记。分号:在ActionScript语句的结束处,用来表示语句的结束。关键字:是指具有特殊含义且供ActionScript进行调用的特定单词。在ActionScript中,较为重要的关键字主要有Break、Continue、Delete、Else、For、Function、IF、In、New、Return、This、Typeof、Var、Void、While和With等。字母的大小写:在ActionScript中,除了关键字区分大小写之外,其余ActionScript的大小写字母可以混用,但是遵守规则的书写约定可以使脚本代码更容易被区分,便于阅读。注释:在编辑语句时,为了便于语句的阅读和理解,可以在语句后面添加注释。添加注释的方法是直接在语句后面输入“//”,然后输入注释的内容即可。注释内容以灰色显示,它的长度不受限制,也不会执行。在FlashCS6中,可以对时间轴上的任何帧添加代码,该代码将在影片播放期间播放头进入该帧时执行。方法是在Flash窗口中选择“窗口”|“动作”命令,或按F9键打开“动作”面板,如图9-1所示,在脚本编辑窗格中可以输入编辑代码。●9.2.2在时间轴上输入代码图9-1“动作”面板1.动作工具箱面板的左上方为动作工具箱,分别列出了Flash中能用到的所有动作脚本。只要将该列表框中的脚本命令插入到脚本编辑窗格即可进行相关的操作。动作工具箱中的动作脚本命令很多,用户可以借助键盘上的一些按键更加快捷地进行操作。Home键:选择动作工具箱中的第一项。End键:选择动作工具箱中的最后一项。↑键:选择动作工具箱中的前一项。↓键:选择动作工具箱中的下一项。图9-2查看全部脚本命令的索引→键:展开动作工具箱中的父命令,再按该键可以将鼠标移动至相应的子命令。←键:由子命令返回到父命令。Enter键或空格键:展开或折叠文件夹。在动作工具箱的最下面给出了全部脚本命令的索引,按照命令的首字符进行排序,如图9-2所示。2.动作说明区域在动作工具箱中将鼠标移动至某个动作命令上,将会出现该命令的相应提示;如果选中该动作命令,在动作说明区域将会出现对该命令的描述,如图9-3所示。图9-3查看动作命令的提示说明信息3.脚本导航器“动作”面板的左下方窗格为脚本导航器,可以查看动画中已经添加脚本的对象的具体信息(如所在图层、帧和场景等信息)。通过该列表框,可以在Flash文档中的各个脚本间快速切换。4.脚本编辑窗格在脚本编辑窗格中可以直接为选择的对象输入脚本命令。如果用户单击脚本导航器中的某一项目,与该项目关联的脚本也将会显示在脚本编辑窗格中,并且播放头将移到时间轴上的相应位置。双击脚本导航器中的某一项目可固定脚本,将其锁定在当前位置。在脚本编辑窗格上方有一些辅助功能图标,其含义如下。“将新项目添加到脚本中”图标:单击该图标,在弹出的菜单中列出了可用于创建脚本类型的动作命令,如图9-4所示图9-4单击“将新项目添加到脚本中”图标“删除所选动作”图标:在脚本编辑窗格选择某动作脚本,然后单击该图标可以将其删除。“查找”图标:单击该图标,将会弹出“查找和替换”对话框,使用该对话框可以查找并替换脚本中的文本,如图9-5所示。图9-5“查找和替换”对话框“插入目标路径”图标:单击该图标,将会弹出“插入目标路径”对话框,在此可以为脚本中的某个动作设置绝对或相对目标路径,如图9-6所示。图9-6“插入目标路径”对话框“向上移动所选动作”图标:单击该图标,在脚本编辑窗格中向上移动选中的动作。“向下移动所选动作”图标:单击该图标,在脚本编辑窗格中向下移动选中的动作。“显示/隐藏工具箱”图标:单击该图标,可以隐藏左侧的动作工具箱,如图9-7所示。再次单击该图标,可以显示出被隐藏的动作工具箱。“代码片断”图标:单击该图标,将会弹出“代码片断”面板,如图9-8所示。在此选择某动作,然后单击动作选项右侧的“显示说明”图标,可以在弹出对话框中查看动作说明信息,如图9-9所示;若单击“显示代码”图标,可以在对话框查看该动作的代码,如图9-10所示;若单击“添加到当前帧”图标,可以对当前选中的影片剪辑元件应用该动作;若单击“复制到剪贴板”图标,可以复制选中的动作。图9-7动作工具箱被隐藏后的“动作”面板图9-8“代码片断”面板“通过从‘动作’工具箱选项项目来编写脚本”图标:单击该图标,可以在脚本编辑窗格中编辑添加的动作脚本,同时会隐藏动作说明区域,如图9-11所示。“帮助”图标:显示脚本窗格中所选ActionScript元素的参考信息。例如,如果单击import语句,再单击该图标,“帮助”面板中将显示import的参考信息。图9-9查看动作说明信息图9-10查看动作代码图9-11在脚本编辑窗格中编写脚本5.菜单项如果用户单击“动作”面板右上角的“菜单项”图标,则可以打开“动作”面板的选项菜单,如图9-12所示。图9-12“动作”面板的选项菜单图9-13“转到行”对话框图9-14警告对话框“语法检查”:检查当前脚本。“显示代码提示”:选中该命令,在输入脚本时,可以检测到正在输入的动作并显示代码提示。“导入脚本”:导入外部AS文件。“导出脚本”:从“动作”面板中导出脚本。该菜单中的命令的含义分别如下。“重新加载代码提示”:在不重新启动软件的情况下重新加载代码提示。“固定脚本”:选择该命令,可以使脚本出现在“动作”面板中脚本编辑窗格左下角的选项卡内。“关闭脚本”:取消固定脚本。“关闭所有脚本”:取消所有固定脚本。“转到行”:在脚本中搜索文本,可利用该命令转到脚本中的特定行。选择该命令后,将打开“转到行”,如图9-13所示。用户只需要在“行号”文本框中输入数值,并单击“确定”按钮即可快速地转到相应的行。“查找和替换”:查找和替换脚本中的文本。“再次查找”:用于再次查找所需要的文本。“自动套用格式”:按自动套用格式设置代码格式。如果脚本中有语法错误,执行该命令会弹出如图9-14所示的警告对话框。图9-15“打印”对话框图9-16“首选参数”对话框“打印”:选择该命令,将打开“打印”对话框,如图9-15所示。用户可以设置相应的打印参数,再单击“确定”按钮打印脚本。“脚本助手”:选中该命令,将使用“脚本助手”模式。如果脚本中有错误,将弹出警告框。“Esc快捷键”:选择该命令,可查看快捷键列表。“隐藏字符”:选择该命令后,隐藏ActionScript语句中的空格、制表符和换行符等字符。“行号”:选中该命令,会在该命令前出现“√”标记,此时在脚本窗格中会显示行编号。“自动换行”:启用或禁用自动换行。“首选参数”:选择该命令,将打开“首选参数”对话框,如图9-16所示。6.添加ActionScript语句在熟悉了“动作”面板后,下面学习如何在时间轴上添加ActionScript语句,具体操作步骤如下。步骤1在“时间轴”面板中选择要添加ActionScript语句的关键帧,如图9-17所示,然后在菜单栏中选择“窗口”|“动作”命令,打开“动作”面板。步骤2在“动作”面板右侧单击“通过从‘动作’工具箱选择项目来编写脚本”图标,接着在脚本编辑窗格中输入如图9-18所示的语句(注意大小写)。图9-17选择要添加ActionScript语句的帧的位置步骤3语句输入完毕后,关闭“动作”面板,此时即可在“时间轴”面板中看到选择的关键帧中出现一个“α”符号,表示该帧已经被添加了ActionScript语句,如图9-19所示。图9-18输入ActionScript语句由于在时间轴上输入代码容易导致无法跟踪哪些帧包含哪些脚本,随着时间的推移,应用程序会越来越难以维护,因此,如