1 / 85

第十二讲 FLASH 动作脚本 AS

第十二讲 FLASH 动作脚本 AS. 《 网页开发工具 》 第十二讲 动作脚本 AS. 12.1 ActionScript 编程简介 12.2 ActionScript 指令 12.3 ActionScript 函数 12.4 简单 Action 范例. 《 网页开发工具 》 第十二讲 动作脚本 AS. 12.1 动作脚本简介. 12.1.2 什么是 ActionScript

fallon
Download Presentation

第十二讲 FLASH 动作脚本 AS

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第十二讲 FLASH动作脚本AS

  2. 《网页开发工具》第十二讲 动作脚本AS 12.1 ActionScript编程简介 12.2 ActionScript指令 12.3 ActionScript函数 12.4 简单Action范例

  3. 《网页开发工具》第十二讲 动作脚本AS 12.1 动作脚本简介 12.1.2 什么是ActionScript 动作脚本是Macromedia Flash MX的脚本撰写语言,它使我们可以向影片添加交互性设置。动作脚本提供了一些元素,例如动作、运算符以及对象,可将这些元素组织到脚本中,指示影片要执行什么操作。我们可以对影片进行设置,从而使单击按钮和按下键盘键之类的事件可触发这些脚本。例如,可用动作脚本为影片创建导航按钮。

  4. 《网页开发工具》第十二讲 动作脚本AS 和其他脚本撰写语言一样,动作脚本遵循自己的语法规则,保留关键字,提供运算符,并且允许使用变量存储和获取信息。动作脚本包含内置的对象和函数,并且允许我们创建自己的对象和函数。 动作脚本的语法和风格与JavaScript的语法和风格很相似。Flash MX能够识别在任何较早版本的Flash中编写的动作脚本。

  5. 《网页开发工具》第十二讲 动作脚本AS 12.1.2使用脚本编辑面板 如图12-1所示,可通过直接在“动作”面板右侧的脚本窗格中输入动作脚本来创建脚本。我们可在脚本窗格中直接编辑动作、输入动作的参数或者删除动作,这和在文本编辑器中创建脚本很相似。也可用“动作”工具箱(在“动作”面板左边)和添加(+)按钮来向脚本窗格添加动作。 可以用脚本窗格上方的按钮来查找和替换文本、设置和删除调试断点、查看行号以及插入目标路径。

  6. 《网页开发工具》第十二讲 动作脚本AS 图12-1 专家模式

  7. 《网页开发工具》第十二讲 动作脚本AS 12.1.3帧脚本及其实例 要使影片在播放头到达时间轴中的一帧时执行某项动作,应为该帧指定一项动作。例如,要在时间轴的第20帧和第10帧之间创建一个循环,应向第20帧添加将播放头发送给第10帧的动作:gotoAndPlay(10)。 有些动作通常指定给影片的第一帧,例如,定义函数和设置创建影片初始状态的变量的那些动作。通常,可为第一帧指定影片开始时要执行的任何动作。 在名为“动作”的层中放置所有的帧动作是一种很好的做法。这样,总可以在时间轴中找到这些动作。一旦指定了一项动作,请测试影片看它是否工作。

  8. 《网页开发工具》第十二讲 动作脚本AS 为帧指定动作的步骤如下: (1) 选择时间轴中的关键帧,然后选择“窗口”→“动作”,或按下F2键。如果选定的帧不是关键帧,动作将被指定给前一个关键帧。 (2) 要指定动作,请执行以下操作之一: ● 单击“动作”工具箱(在“动作”面板的左侧)中的文件夹来打开它,再双击某个动作将其添加到脚本窗格(在面板的右侧)中。 ● 从“动作”工具箱中把动作拖到脚本窗格中。 ● 单击添加(+)按钮并从弹出菜单中选择一个动作。 ● 使用添加(+)按钮弹出菜单中动作旁边列出的快捷键。

  9. 《网页开发工具》第十二讲 动作脚本AS (3) 在文本框中根据需要输入动作的参数。 (4) 要指定其他的动作,重复步骤(2)和步骤(3)。具有动作的帧在时间轴中显示一个小a,如图12-3所示。 图12-3 帧动作的标志

  10. 《网页开发工具》第十二讲 动作脚本AS 12.1.4 按钮符号脚本及其实例 在单击或滑过按钮时要让影片执行某个动作,可为按钮指定动作。必须将动作指定给按钮的一个实例,当然该元件的其他实例的此动作不受影响。 当我们为按钮指定动作时,必须将动作嵌套在on处理函数中,并指定触发该动作的鼠标或键盘事件。在标准模式下为按钮指定动作时,会自动插入on处理函数,然后可从列表中选择一个事件,也可用动作脚本Button对象的事件在发生按钮事件时执行脚本。

  11. 《网页开发工具》第十二讲 动作脚本AS 为按钮指定动作的具体步骤如下: (1) 选择一个按钮,如果“动作”面板没有打开,选择“窗口”→“动作”打开它。或者,从“动作”面板跳转菜单中选择按钮或者影片剪辑的实例,如图12-4所示。 图12-4 动作按钮编辑窗口(标准)

  12. 《网页开发工具》第十二讲 动作脚本AS (2) 从标准模式“动作”工具箱中选择一项动作,可执行以下操作之一来指定动作: ● 单击“动作”工具箱(在面板的左侧)中的文件夹,双击某个动作将其添加到脚本窗格(在面板右侧)中。 ● 把动作从“动作”工具箱拖到脚本窗格中。 ● 单击添加(+)按钮,然后从弹出菜单中选择一项动作。 ● 使用添加(+)按钮弹出菜单中动作旁边列出的快捷键。 (3) 在面板顶部的参数文本框中,根据需要输入动作的参数。 (4) 重复步骤(2)和步骤(3),根据需要指定其他动作。

  13. 《网页开发工具》第十二讲 动作脚本AS 12.1.5 电影片段符号脚本及其实例 通过为影片剪辑指定动作,可在影片剪辑加载或接收到数据时让影片执行动作。这样,必须将动作指定给影片剪辑的一个实例,当然该元件的其他实例不受此动作的影响。 为影片剪辑指定动作时,必须将动作嵌套在onClipEvent处理函数中,并指定触发该动作的剪辑事件。在标准模式下为影片剪辑指定动作时,将自动插入onClipEvent处理函数。我们可从列表中选择事件,也可用动作脚本MovieClip对象和Button对象的事件来执行脚本。

  14. 《网页开发工具》第十二讲 动作脚本AS 为影片剪辑指定动作的具体步骤如下: (1) 选择影片剪辑实例,然后选择“窗口”→“动作”,如图12-5所示。 图12-5 为影片剪辑指定动作的编辑窗口(标准)

  15. 《网页开发工具》第十二讲 动作脚本AS (2) 从标准模式“动作”工具箱中选择一项动作,可执行以下操作之一来指定的动作: ● 单击“动作”工具箱(在面板的左侧)中的文件夹,双击某个动作将其添加到脚本窗格(在面板右侧)中。 ● 把动作从“动作”工具箱拖到脚本窗格中。 ● 单击添加(+)按钮,然后从弹出菜单中选择一项动作。 ● 使用添加(+)按钮弹出菜单中动作旁边列出的快捷键。 (3) 在面板顶部的参数框中,根据需要选择动作的参数。 (4) 重复步骤(2)和步骤(3),根据需要指定其他动作。

  16. 《网页开发工具》第十二讲 动作脚本AS 12.2 ActionScript指令 12.2.1 动作脚本术语 和任何脚本撰写语言一样,动作脚本使用自己的术语。动作是在播放影片时指示影片执行某些任务的语句。例如,gotoAndStop 将播放头放置到特定的帧或标签上。下面将介绍动作脚本术语。 1.布尔值 布尔值是true或false值。

  17. 《网页开发工具》第十二讲 动作脚本AS 2.类 类是可以创建的用于定义新类型对象的数据类型。要定义类,需要创建一个构造器函数。 3.常数 常数是不变的元素。例如,常数Key.TAB的含义始终不变,它代表键盘上的Tab键。常数对于比较值很有用。

  18. 《网页开发工具》第十二讲 动作脚本AS • 4.构造器 • 构造器是用于定义类的属性和方法的函数。例如,下面的代码通过创建名为Circle的构造器函数创建了一个新的Circle类。 • function Circle(x, y, radius){ • this.x = x; • this.y = y; • this.radius = radius; • }

  19. 《网页开发工具》第十二讲 动作脚本AS 5.数据类型 数据类型描述变量或动作脚本元素可以存储的信息种类。有两种数据类型:原始数据类型和引用数据类型。原始数据类型是指字符串、数字和布尔值,它们都有一个常数值,因此可以包含它们所代表的元素的实际值。引用数据类型是指影片的剪辑和对象,它们的值可能发生更改,因此它们包含对该元素的实际值的引用。动作脚本数据类型包括字符串、数字、布尔值、对象、影片剪辑、函数、空值和未定义。

  20. 《网页开发工具》第十二讲 动作脚本AS 6.事件 事件是在影片播放时发生的动作。例如,在以下情况时会产生不同的事件:加载影片、播放头进入帧、用户单击按钮或影片剪辑、用户通过键盘键入等。 7.事件处理函数 事件处理函数是管理诸如mouseDown或load等事件的特殊动作。动作脚本事件处理函数共有两类:动作和方法。但事件处理函数的动作只有两个,即on和onClipEvent。在“动作”工具箱中,每个具有事件处理函数方法的动作脚本对象都有一个名为“事件”的子类别。

  21. 《网页开发工具》第十二讲 动作脚本AS 8.表达式 表达式是代表值的动作脚本元件的任意合法组合。表达式由运算符和操作数组成。例如,在表达式x + 2中,x和2是操作数,而+是运算符。 9.函数 函数是可以传递参数并具有返回值的可重复使用的代码块。例如,可以通过向 getProperty函数传递影片剪辑的实例名和属性名,然后它会返回相应的属性值。getVersion函数会返回当前正在播放影片的Flash Player的版本。

  22. 《网页开发工具》第十二讲 动作脚本AS 10.标识符 标识符是用于表明变量、属性、对象、函数或方法的名称。它的第一个字符必须是字母、下划线(_)或美元记号($),其后的字符必须是字母、数字、下划线或美元记号。例如,firstName 是变量的名称。 11.实例 实例是属于某个类的对象。类的每个实例包含该类的所有属性和方法。所有影片剪辑都是具有MovieClip类的属性(例如_alpha和_visible)和方法(例如gotoAndPlay和getURL)的实例。

  23. 《网页开发工具》第十二讲 动作脚本AS • 12.实例名称 • 实例名称是在脚本中用来代表影片剪辑和按钮实例的惟一名称。可以使用属性检查器为舞台上的实例指定实例名称。例如,库中的主元件可以称为counter,影片中该元件的两个实例可以使用实例名称scorePlayer1和scorePlayer2。下面的代码用实例名称设置每个影片剪辑实例中称为score的变量: • _root.scorePlayer1.score += 1; • _root.scorePlayer2.score ?= 1;

  24. 《网页开发工具》第十二讲 动作脚本AS 13.关键字 关键字是有特殊含义的保留字。例如,var是用于声明本地变量的关键字。不能使用关键字作为标识符。例如,var不是合法的变量名。

  25. 《网页开发工具》第十二讲 动作脚本AS • 14.方法 • 方法是分配给对象的函数。分配函数之后,可以将其作为该对象的方法进行调用。例如,下面的代码表示使clear成为controller对象的方法: • function reset(){ • this.x_pos = 0; • this.y_pos = 0; • } • controller.clear = reset; • controller.clear();

  26. 《网页开发工具》第十二讲 动作脚本AS 15.对象 对象是属性和方法的集合,每个对象都有自己的名称,并且都是特定类的实例。内置对象是在动作脚本语言中预先定义的。例如,内置的Date对象可以提供系统时钟的信息。 16.运算符 运算符是通过一个或多个值计算新值的术语。例如,加法(+)运算符可以将两个或多个值相加到一起,从而产生一个新值。运算符处理的值称为操作数。

  27. 《网页开发工具》第十二讲 动作脚本AS • 17.参数 • 参数(也称为参量)是用于向函数传递值的占位符。例如,下面的welcome函数使用它在参数firstName和hobby中接收到的两个值。 • function welcome(firstName, hobby) { • welcomeText = "Hello, " + firstName + "I see you enjoy " + hobby; • }

  28. 《网页开发工具》第十二讲 动作脚本AS 18.属性 属性是定义一个对象的属性。例如,_visible 是定义是否隐藏影片剪辑的属性,所有影片剪辑都有此属性。

  29. 《网页开发工具》第十二讲 动作脚本AS 19.目标路径 目标路径是影片中影片剪辑实例名称、变量和对象的分层结构地址。我们可以在影片剪辑属性检查器中对影片剪辑实例进行命名。同时,可以使用目标路径引导影片剪辑中的动作来获得或设置变量的值。例如,下面的语句是指向影片剪辑stereoControl内的变量volume的目标路径(主时间轴的名称始终为_root。): _root.stereoControl.volume

  30. 《网页开发工具》第十二讲 动作脚本AS • 20.变量 • 变量是保存任何数据类型的值的标识符。可以创建、更改和更新变量,也可以获得它们存储的值以在脚本中使用。在下面的示例中,等号左侧的标识符是变量: • x = 5; • name = "Lolo"; • customer.address = "66 7th Street"; • c = new Color(mcinstanceName);

  31. 《网页开发工具》第十二讲 动作脚本AS 12.2.2 动画控制指令 如果要跳到影片中的某一特定帧或场景,可以使用 goto 动作。当影片跳到某一帧时,可以选择参数来控制是从这新的一帧播放影片(默认设置)还是在这一帧停止。在专家模式下,goto动作在“动作”工具箱作为两个动作列出:gotoAndPlay和gotoAndStop。影片也可以跳到一个场景并播放指定的帧,或跳到下一场景或上一场景的第一帧。 除非另有命令指示,否则影片一旦开始播放,它就要把时间轴上的每一帧从头播放到尾。可以通过使用play和stop动作来开始或停止播放影片。例如,可以使用stop动作在某一场景结束并在播放下一场景之前来停止播放影片。一旦停止播放,必须通过使用play动作来明确指示要重新开始播放影片。

  32. 《网页开发工具》第十二讲 动作脚本AS 可以使用 play 和 stop 动作来控制主时间轴或任意影片剪辑或已加载影片的时间轴。要控制的影片剪辑必须有一个实例名称,而且必须显示在时间轴上。 如果要在浏览器窗口中打开网页,或将数据传递给所定义URL处的另一个应用程序,可以使用getURL动作。例如,可以有一个链接到新Web站点的按钮,它可以将数据发送到CGI脚本,以便如同在HTML表单中一样处理数据。

  33. 《网页开发工具》第十二讲 动作脚本AS 1.跳到某一帧或场景 (1) 选择要为其指定该动作的帧、按钮实例或影片剪辑实例。 (2) 如果此时没有显示“动作”面板,可选择“窗口”→“动作”显示它。如果“动作”面板不处于标准模式,可从“视图选项”弹出菜单中选择“标准模式”。 (3) 在“动作”工具箱中,单击“动作”类别,然后单击“影片控制”类别,之后双击 goto动作。Flash会在脚本窗格中插入gotoAndPlay动作。

  34. 《网页开发工具》第十二讲 动作脚本AS (4) 要在跳转后使影片继续播放,可保持参数窗格中的“转到并播放”选项(默认选项)一直处于选中状态。要在跳转后停止播放影片,可选择“转到并停止”选项。 (5) 在参数窗格的“场景”弹出菜单中,指定目标场景。如果选择“下一个”或“上一个”,那么播放头会跳到下一场景或上一场景的第一帧。如果选择当前场景或已命名的一个场景,则必须为播放头提供要跳转到的帧。 (6) 在参数窗格的“类型”弹出菜单中,选择一个目标帧: ●“下一帧”或“上一帧”会将目标帧设置为下一帧或上一帧。 ●“帧号”、“帧标签”或“表达式”都可用于指定帧。表达式是语句中可以生成值的任何部分,例如1 + 1。

  35. 《网页开发工具》第十二讲 动作脚本AS (7) 如果在步骤(6)已选择了“帧号”、“帧标签”或“表达式”,则在“帧”参数框中输入帧号、帧标签,或者输入可以计算出帧号或帧标签的表达式。下面的动作将播放头跳到第50帧,然后从那里继续播放: gotoAndPlay(50); 下面的动作将播放头跳到该动作所在的帧之前的第五帧: gotoAndStop(_currentframe + 5);

  36. 《网页开发工具》第十二讲 动作脚本AS 2.停止影片 (1) 选择要为其指定动作的帧、按钮实例或影片剪辑实例。 (2) 如果此时没有看到“动作”面板,可选择“窗口”→“动作”显示它。如果“动作”面板不处于标准模式,可从“视图选项”弹出菜单中选择“标准模式”。 (3) 在“动作”工具箱中,单击“动作”类别,然后单击“影片控制”类别,之后选择 stop动作。如果该动作附加到某一帧上,那么脚本窗格中将出现如下代码: stop();

  37. 《网页开发工具》第十二讲 动作脚本AS • 如果该动作附加到某一按钮上,那么该动作会被自动包含在处理函数on (mouse event) 内,如下所示: • on (release) { • stop(); • } • 如果动作附加到某个影片剪辑中,那么该动作会被自动包含在处理函数onClipEvent 内,如下所示: • onClipEvent (load) { • stop(); • } • 注意:动作后面的空括号表明该动作不带参数。

  38. 《网页开发工具》第十二讲 动作脚本AS 3.播放影片 (1) 选择要为其指定动作的帧、按钮或影片剪辑。 (2) 如果此时没有看到“动作”面板,可选择“窗口”→“动作”显示它。如果“动作”面板不处于标准模式,可从“视图选项”弹出菜单中选择“标准模式”。 (3) 在“动作”工具箱中,单击“动作”类别,然后选择“影片控制”类别,之后双击 play动作。如果该动作附加到某一帧上,那么脚本窗格中将出现如下代码:play();

  39. 《网页开发工具》第十二讲 动作脚本AS • 如果该动作附加到某一按钮上,那么该动作会被自动包含在处理函数on(mouse event) 内,如下所示: • on (release) { • play(); • } • 如果动作附加到某个影片剪辑中,那么该动作会被自动包含在处理函数onClipEvent 内,如下所示: • onClipEvent (load) { • play(); • }

  40. 《网页开发工具》第十二讲 动作脚本AS 4.跳到URL (1) 选择要为其指定动作的帧、按钮实例或影片剪辑实例。 (2) 如果此时没有看到“动作”面板,可选择“窗口”→“动作”显示它。如果“动作”面板不处于标准模式,可从“视图选项”弹出菜单中选择“标准模式”。 (3) 在“动作”工具箱中,单击“动作”类别,然后单击“浏览器/网络”类别,之后双击getURL动作。

  41. 《网页开发工具》第十二讲 动作脚本AS (4) 在参数窗格中,遵循以下指导原则,输入要从中获得文档或将数据发送到其中的URL: ● 使用相对路径,如 mypage.html或绝对路径,如http://www.mydomain.com/mypage.html。相对路径可以描述一个文件相对于另一个文件的位置,它通知Flash从发出 getURL指令的位置向上或向下移动嵌套文件和文件夹的层次。绝对路径就是指定文件所在服务器的名称、路径(目录、卷、文件夹等的嵌套层次)和文件本身名称的完整地址。 ● 要根据表达式值获取URL,可选择“表达式”,然后输入计算URL位置的表达式。例如,下面的语句表明URL是变量dynamicURL的值: getURL(dynamicURL);

  42. 《网页开发工具》第十二讲 动作脚本AS (5) 对于“窗口”,指定要在其中加载文档的窗口或HTML帧,步骤如下: ● 从下列保留目标名中选择: _self 指定当前窗口中的当前帧。 _blank 指定一个新窗口。 _parent 指定当前帧的父级。 _top 指定当前窗口中的顶级帧。 ● 输入特定窗口或帧的名称,就如同在HTML文件中命名它一样。 ● 选择“表达式”,然后输入计算该窗口位置的表达式。

  43. 《网页开发工具》第十二讲 动作脚本AS (6) 对于“变量”,选择一种合适的方法将已加载影片的变量发送到“URL”文本框中列出的位置上,步骤如下: ● 选择“用Get方式发送”将数量较少的变量附加到URL的末尾。例如,用此选项将 Flash影片中的变量值发送到一个服务端脚本中。 ● 当单独标题中的字符串很长时,可选择“用Post方式发送”将变量和URL分开发送,这可以发送更多的变量,并且可以将从表单收集到的信息张贴到服务器的CGI脚本上。 ● 选择“不发送”可阻止变量的传递。代码将与下面这行代码相似: getUrl ("page2.html", "blank"); getURL动作将HTML文件page2.html加载入一个新的浏览器窗口中。

  44. 《网页开发工具》第十二讲 动作脚本AS 3.2.3 流程控制指令 动作脚本使用if、if...else、if...else if、for、while、do...while、for...in以及switch动作根据条件是否成立来执行动作。 动作脚本可以将一个动作重复指定的次数,或是在特定的条件成立时重复动作。使用 while、do...while、for和for...in动作可以创建循环。

  45. 《网页开发工具》第十二讲 动作脚本AS • 1.检查条件 • 检查条件是true还是false的语句以术语if开头。如果条件成立,动作脚本将执行随后的语句。如果条件不成立,动作脚本将跳到此代码块外的下一条语句。 • 要优化代码的性能,应首先检查最有可能的条件。 • 下列语句将测试几个条件,其中术语else if指定在前面的条件为false时要执行的替代测试: • if (password == null || email == null) { • gotoAndStop("reject");} • else if (password == userID){ • gotoAndPlay("startMovie");}

  46. 《网页开发工具》第十二讲 动作脚本AS • 2.使用while语句 • while循环将对表达式进行评估,如果表达式为true,则会执行循环体中的代码。当循环体中的每个语句都执行完毕后,会再次评估该表达式。在下面的示例中,循环将执行四次。 • i = 4; • while (i > 0) { • myMC.duplicateMovieClip("newMC" + i, i ); • i--; • }

  47. 《网页开发工具》第十二讲 动作脚本AS • 可以使用do...while语句创建与while循环类型同样的循环。在do...while循环中,表达式是在代码块结束时进行评估的,因此该循环总是至少执行一次,如下所示: • i = 4; • do { • myMC.duplicateMovieClip("newMC" +i, i ); • i--; • } while (i > 0);

  48. 《网页开发工具》第十二讲 动作脚本AS • 3.使用for语句 • 多数循环都会使用某种计数器,以控制循环执行的次数。每执行一次循环就叫做一次迭代。可以声明一个变量并编写一条语句,每执行一次循环,该语句都会增加或减小变量。在 for 动作中,计数器和增加计数器的语句都是动作的一部分。在下面的示例中,第一个表达式(i = 4)是在第一次迭代之前评估的初始表达式;第二个表达式( i > 0)是每次运行循环之前进行检查的条件;第三个表达式(i--)被称为后表达式,在每次运行循环之后会对其进行评估。 • for (i = 4; i > 0; i--){ • myMC.duplicateMovieClip("newMC" + i, i + 10); • }

  49. 《网页开发工具》第十二讲 动作脚本AS • 4.使用for...in语句 • 影片剪辑或对象的子级包括其他影片剪辑、函数、对象和变量。下面的示例使用trace在“输出”窗口中显示其结果: • myObject = { name:'Joe', age:25, city:'San Francisco' }; • for (propertyName in myObject) { • trace("myObject has the property: " + propertyName + ", with the value: " + • myObject[propertyName]); • }

  50. 《网页开发工具》第十二讲 动作脚本AS • 本示例将在“输出”窗口中生成如下结果: • myObject has the property: name, with the value: Joe • myObject has the property: age, with the value: 25 • myObject has the property: city, with the value: San Francisco • 如果想让脚本重复特定的子级类型,例如只重复子级影片剪辑,那么将for..in与typeof 运算符配合使用即可实现此目的。代码如下:

More Related