flash学习心得 下载本文

云南师范大学计算机科学与信息技术学院教育技术学——杨金平

在调试器窗口中可以设置断点,断点即是为某行代码添加的一个标记,当调试影片时,影片会自动在断点处停止,允许你查看当前包括变量值在内的的影片状态。使用断点可以使你逐行地执行代码,对每行代码的运行结果进行观察和分析。

初学ActionScript的时候,你可能并不需要使用调试器;但是当你成长为一名经验丰富的程序员时,你就会发现它对你是非常有用的。

第4章 影片播放控制

控制影片播放流程的命令有许多,如下所示: stop:使影片停止在当前时间轴的当前帧中。 play:使影片从当前帧开始继续播放。

gotoAndStop:跳转到用帧标签或帧编号指定的某一特定帧并停止。 gotoAndPlay:跳转到用帧标签或帧编号指定的某一特定帧并继续播放。 nextFrame:使影片转到下一帧并停止。 prevFrame:使影片回到上一帧并停止。

stop命令常常用在帧动作中,以使影片停止并等待用户控制。其他命令常常用在按钮的事件处理函数中。

4.1 使影片停止

最简单的ActionScript恐怕要算stop命令了,当执行stop命令的时候,影片在当前的帧处停止播放。 你可以将stop命令放到时间轴的某一关键帧中,在stop后面需要紧跟一对括号,如下所示: stop();

执行stop命令时,影片只是暂停在当前帧,在影片中嵌入的影片剪辑或图形元件继续播放,停止的仅仅是主时间轴中的动画。

要让影片继续播放,需要用到ActionScript的另一个命令play。play命令使影片转到下一帧并继续播放。 我们将在按钮部分介绍play命令,下面以一个例子的形式介绍stop命令的使用,其操作步骤如下: (1)启动Flash MX,在时间轴中插入两个空白关键帧,使时间轴包含3个空白关键帧。 (2)在3个关键帧中使用文本工具分别添加字符1、2、3。

(3)选中第2帧,按F9键打开动作面板,在其中添加如下的ActionScript: stop();

(4)按Ctrl+Enter测试影片,影片播放到第2帧即停止,你将看不到第3帧。 4.2 跳转到指定帧

另一个基本的ActionScript命令是gotoAndPlay。该命令使影片从当前帧跳转到指定的任意一帧。可以用帧编号或帧标签指定一帧,如下所示: gotoAndPlay(9);

gotoAndPlay(\

如果影片中不止一个场景,你也可以指定要跳转到的特定场景的特定帧。如果gotoAndPlay命令中只有一个参数,Flash将认为它代表某个帧;如果有两个参数,第1个参数将作为场景名,第2个参数代表该场景中的帧。如下所示: gotoAndPlay(\

它表示跳转到场景myScene的第1帧继续播放。

gotoAndPlay命令使影片跳转到某一特定帧并从该帧开始继续播放,如果要使影片跳转到某一特定帧并在

25

云南师范大学计算机科学与信息技术学院教育技术学——杨金平

该帧位置停止,就应该使用gotoAndStop命令。它的使用方法与gotoAndPlay命令相似,仅仅是跳转帧后执行的动作不同罢了。

还有两个实现跳转帧动作的命令,它们是nextFrame和prevFrame。nextFrame命令使影片从当前位置转到下一帧并停止,prevFrame命令使影片从当前位置转到上一帧(即回退一帧)并停止。它们后面都必须使用括号。

要了解这些命令究竟如何使用,最好的方法就是使用按钮,下面我们就来看看如何创建按钮。 4.2.1 创建按钮

要创建按钮,可以选择“插入”→“新建元件”命令或按快捷键Ctrl+F8,你将看到一个“创建新元件”对话框,在该对话框中你可以在影片剪辑、按钮和图形这3种类型中选择要创建元件的类型。 选择按钮类型,单击“确定”按钮,Flash窗口将由主场景切换到按钮元件的编辑场景。按钮元件的时间轴中有4个帧,分别是弹起(Up)、指针经过(Over)、按下(Down)、和点击(Hit),它们代表了按钮的3种状态和热区(热区的形状代表了按钮能在什么范围内感应到鼠标的动作)。

如果你在按钮的第1帧中放置一个图形,而在其他3个帧中不放置任何东西,那么该按钮的3种状态和热区将是一样的。

要使按钮显示不同的状态,就需要在它的不同关键帧中创建不同的图形或影片剪辑。 完成对按钮的创建后,可以单击舞台上方的场景名“场景1”回到主场景。

按F1或Ctrl+L打开库面板,你将看到库中增加了一个按钮,用鼠标将它拖到舞台中。 4.2.2 为按钮添加脚本

要为按钮添加脚本,首先得选中该按钮,然后按F9键打开动作面板。你也可以在该按钮上单击鼠标右键,在弹出的快捷菜单中选择“动作”命令,这样也可以打开按钮的动作面板。 在专家模式下输入如下脚本: on (release) {

trace(\}

按钮的脚本有特殊的语法,即必须以关键字on开头,以on开头的代码是一种事件处理函数,即当特定事件发生时要执行的代码。在这里,特定事件就是release(松开鼠标),它是按钮最常用的事件。 按钮事件还有press、releaseOutside、rollOver、rollOut、dragOver、dragOut以及keyPress等。press是按下鼠标事件,它在release事件之前发生,releaseOutside是在按钮上按下鼠标,并且在按钮外松开鼠标的事件,rollOver是鼠标指针移到按钮所在热区的事件,rollOut是鼠标从按钮热区移出的事件,dragOver是在鼠标指针位于按钮上方并已按下按钮的情况下,滑出按钮再滑回按钮的事件,dragOut是当鼠标指针位于按钮内部,按下按钮然后滚动出按钮区域的事件,keyPress是按钮响应在键盘上按下某些键时的事件。

某种事件的发生,会触发相应事件处理函数开始运行,上例中使用trace语句将事件信息发送到输出窗口中,使你可以更好地了解具体按钮事件的含义。 4.3 练习:演示文档

用Flash可以实现演示文档的功能,演示文档相当于我们常说的幻灯片,它可以进行逐页展示。如果不使用脚本,Flash动画会很快地播放每一帧,要用Flash制作演示文档就得对Flash添加控制命令。 我们用脚本使每一帧停止,要跳转到别的帧,就需要使用按钮。 制作演示文档的操作步骤如下: (1)启动Flash MX,编辑前5帧。

(2)在文档中创建5个按钮,从库面板中可以看到它们。 (3)打开主时间轴第1帧的动作面板,其中添加了如下语句: stop();

影片播放时,会停止在第一帧上。

26

云南师范大学计算机科学与信息技术学院教育技术学——杨金平

(4)为图层2的第1帧和第5帧分别添加帧标签begin和end,

(5)选中第1帧中的“开始”按钮,打开其动作面板,在其中添加如下语句: on (release) { nextFrame(); }

单击“开始”按钮,停止在第1帧的影片会跳转到第2帧并停止。

(6)分别在第2~4帧的相同位置添加按钮“首页”、“上一页”、“下一页”、“末页”。由于第5帧后面没有别的帧,所以只添加“上一页”和“首页”两个按钮。 (7)为所有“首页”按钮添加脚本: on (release) { gotoAndStop(\}

单击“首页”按钮,影片将跳转到帧标签为begin的那一帧并停止,即第1帧。这里也可以用1替代\。 (8)为所有“上一页”按钮添加脚本: on (release) { prevFrame(); }

单击“上一页”按钮,影片将从当前帧跳转到前一帧并停止。 (9)为所有“下一页”按钮添加脚本: on (release) { nextFrame(); }

单击“下一页”按钮,影片将从当前帧跳转到下一帧并停止。 (10)为所有“末页”按钮添加脚本: on (release) { gotoAndStop(\}

单击“末页”按钮,影片将从当前帧跳转到帧标签为end的那一帧并停止,在此处也即是第5帧。 (11)按Ctrl+Enter键测试一下影片,单击各个按钮试一下效果。这些添加了ActionScript的按钮是不是变得非常听话?

第5章 控制影片剪辑

影片剪辑是Flash中最重要的一种元件,对影片剪辑的控制是ActionScript的最重要功能之一。从根本上说,Flash的许多复杂动画效果和交互功能都与影片剪辑的运用密不可分。

使用点语法或方括号可以定位影片剪辑。使用方括号时可以使用由变量表示的影片剪辑实例名,这是它相对于点语法的优点。

可以用脚本控制影片剪辑的各种动作,也可以在影片剪辑的事件处理函数中控制主时间轴和别的影片剪辑。影片剪辑最重要的两个事件是load和enterFrame。

5.1 控制影片剪辑的播放动作

27

云南师范大学计算机科学与信息技术学院教育技术学——杨金平

设想一个Flash动画,它的主场景中只有一个帧,舞台中只有一个影片剪辑,影片剪辑中并没有ActionScript。如何才能控制影片剪辑的播放动作呢?

要控制一个影片剪辑,首先应该为影片剪辑命名。容易混淆的是,库面板中的影片剪辑本身有一个名称,这里要命名的是场景中影片剪辑实例的名称。它们可以相同,也可以不相同。如果你在场景中创建了同样的影片剪辑的多个实例,那么就需要将每个实例以不同的名称命名,才能用ActionScript对每一个实例进行控制。如果不需要对影片剪辑进行控制,也就不需要为影片剪辑的实例命名。

从本例文件中,你将看到库面板中只有一个影片剪辑rollmc,场景中创建了一个rollmc的实例。你还可以再从库中拖出若干个rollmc的实例将它们放置到场景中。

选中场景中影片剪辑rollmc的实例,打开属性面板,可以看到它被命名为roll,你同时可以看到该影片剪辑原来的名字rollmc。你也可以为它指定别的名称,也可以是rollmc,Flash并不会混淆它们之间的区别。 实例名称可以在程序中用来指代该影片剪辑实例,如果要控制该实例,就需要在脚本中使用该名称。下面,我们就来看看如何通过脚本控制影片剪辑实例roll。

分别选中场景中的4个按钮,打开它们的动作面板,查看其中的代码。 “STOP”按钮: on (release) { roll.stop(); }

单击“STOP”按钮使roll实例停止播放。 “PLAY”按钮: on (release) { roll.play(); }

单击“PLAY”按钮使roll实例继续播放。 “PREV”按钮: on (release) { roll.prevFrame(); }

单击“PREV”按钮使roll实例回退一帧并停止。 “NEXT”按钮: on (release) { roll.nextFrame(); }

单击“NEXT”按钮使roll实例播放一帧并停止。

按Ctrl+Enter键测试影片,如图5-2所示。一开始影片剪辑自动播放。单击不同的按钮看看影片剪辑是否执行相应的动作。

除了这几种命令,你还可以使用gotoAndStop或gotoAndPlay命令控制影片剪辑跳转到具体的帧,但是在命令前面都需要指定影片剪辑的实例名称。

这种方法是在影片剪辑实例所在的层级中控制影片剪辑,如果是在影片剪辑内部,要控制它自身的播放,就可以直接使用stop、play等命令,而不需要指定实例名称。如果你在影片剪辑内部的时间轴中使用了名称roll,Flash会在影片剪辑内部的时间轴中寻找该实例。 5.2 定位影片剪辑

我们已经了解了如何使用最简单的方法定位一个影片剪辑,即使用影片剪辑的实例名,后面紧跟一个点记号“.”,然后是你想要影片剪辑执行的命令。

还有许多方法可以定位影片剪辑。首先,我们来看看如何定位Flash影片中不同层级的对象。

28