影片播放控制
控制影片播放流程的命令有许多,如下所示:
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键打开动作面板,如图4-1所示,在其中添加如下的ActionScript:
stop();
图4-1 第2帧和它的动作面板
(4)按Ctrl+Enter测试影片,影片播放到第2帧即停止,你将看不到第3帧。
4.2 跳转到指定帧
另一个基本的ActionScript命令是gotoAndPlay。该命令使影片从当前帧跳转到指定的任意一帧。可以用帧编号或帧标签指定一帧,如下所示:
gotoAndPlay(9);
gotoAndPlay("myFrame");
如果影片中不止一个场景,你也可以指定要跳转到的特定场景的特定帧。如果gotoAndPlay命令中只有一个参数,Flash将认为它代表某个帧;如果有两个参数,第1个参数将作为场景名,第2个参数代表该场景中的帧。如下所示:
gotoAndPlay("myScene", 1);
它表示跳转到场景myScene的第1帧继续播放。
gotoAndPlay命令使影片跳转到某一特定帧并从该帧开始继续播放,如果要使影片跳转到某一特定帧并在该帧位置停止,就应该使用gotoAndStop命令。它的使用方法与gotoAndPlay命令相似,仅仅是跳转帧后执行的动作不同罢了。
还有两个实现跳转帧动作的命令,它们是nextFrame和prevFrame。nextFrame命令使影片从当前位置转到下一帧并停止,prevFrame命令使影片从当前位置转到上一帧(即回退一帧)并停止。它们后面都必须使用括号。
要了解这些命令究竟如何使用,最好的方法就是使用按钮,下面我们就来看看如何创建按钮。
4.2.1 创建按钮
要创建按钮,可以选择“插入”→“新建元件”命令或按快捷键Ctrl+F8,你将看到一个“创建新元件”对话框,在该对话框中你可以在影片剪辑、按钮和图形这3种类型中选择要创建元件的类型。
选择按钮类型,单击“确定”按钮,Flash窗口将由主场景切换到按钮元件的编辑场景。按钮元件的时间轴中有4个帧,分别是弹起(Up)、指针经过(Over)、按下(Down)、和点击(Hit),它们代表了按钮的3种状态和热区(热区的形状代表了按钮能在什么范围内感应到鼠标的动作)。
如果你在按钮的第1帧中放置一个图形,而在其他3个帧中不放置任何东西,那么该按钮的3种状态和热区将是一样的。
要使按钮显示不同的状态,就需要在它的不同关键帧中创建不同的图形或影片剪辑。图4-2显示了一个按钮的4个帧。
图4-2 按钮元件的4个帧
完成对按钮的创建后,可以单击舞台上方的场景名“场景1”回到主场景。
按F1或Ctrl+L打开库面板,你将看到库中增加了一个按钮,用鼠标将它拖到舞台中。
4.2.2 为按钮添加脚本
要为按钮添加脚本,首先得选中该按钮,然后按F9键打开动作面板。你也可以在该按钮上单击鼠标右键,在弹出的快捷菜单中选择“动作”命令,这样也可以打开按钮的动作面板。
在专家模式下输入如下脚本:
on (release) {
trace("You are cliking me!");
}
按钮的脚本有特殊的语法,即必须以关键字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();
影片播放时,会停止在第一帧上。
(4)为图层2的第1帧和第5帧分别添加帧标签begin和end,如图4-3所示。
图4-3 第1帧和第5帧的帧标签
(5)选中第1帧中的“开始”按钮,打开其动作面板,在其中添加如下语句:
on (release) {
nextFrame();
}
单击“开始”按钮,停止在第1帧的影片会跳转到第2帧并停止。
(6)分别在第2~4帧的相同位置添加按钮“首页”、“上一页”、“下一页”、“末页”。由于第5帧后面没有别的帧,所以只添加“上一页”和“首页”两个按钮。
(7)为所有“首页”按钮添加脚本:
on (release) {
gotoAndStop("begin");
}
单击“首页”按钮,影片将跳转到帧标签为begin的那一帧并停止,即第1帧。这里也可以用1替代"begin"。
(8)为所有“上一页”按钮添加脚本:
on (release) {
prevFrame();
}
单击“上一页”按钮,影片将从当前帧跳转到前一帧并停止。
(9)为所有“下一页”按钮添加脚本:
on (release) {
nextFrame();
}
单击“下一页”按钮,影片将从当前帧跳转到下一帧并停止。
(10)为所有“末页”按钮添加脚本:
on (release) {
gotoAndStop("end");
}
单击“末页”按钮,影片将从当前帧跳转到帧标签为end的那一帧并停止,在此处也即是第5帧。
(11)按Ctrl+Enter键测试一下影片,单击各个按钮试一下效果。这些添加了ActionScript的按钮是不是变得非常听话?