——交互类型
我们知道,Authorware有十一种交互类型,可Flash呢?Flash虽然没有为我们提供现成的交互类型,但她有强大的ActionScript脚本语言,只要你能想到的交互类型,Flash都能做出来!不信?跟我来,让我们用Flash模仿Authorware的交互吧!
Flash中可以写脚本的地方有三个:关键帧上,按钮上和MC上。我们的交互类型也要紧紧围绕这三个因素来设计。
一、按钮交互、热区交互、热对象交互、按键交互
这是课件制作中最常用的几种交互类型了。我将这它们归为一类,它们的特点是:要用到按钮,脚本写在按钮上,实现起来比较容易。
⒈按钮交互的实现
按钮是Flash中的标准剪辑,它有四个特殊的帧,分别代替按钮的不同状态,“点击”帧是用来控制按钮的可点击范围的,一般不用设置。(如图6)
(图6)
制作好按钮后,选中它,打开“动作”面板,如图2写上脚本即可。按钮有八种事件(如图7),我们经常用的是“按”(press)事件和“释放”(release)事件。它们的区别在于“按”事件是当鼠标左键按下执行,而“释放”事件是在鼠标左键按下后再释放时执行。如果按错了,只要不再按钮上释放鼠标(比如可以在按钮外释放),事件是不会执行的。所以,如果不是有特殊的要求,我们应该用“释放”事件。
(图7)
由于Flash是基于时间轴的,所以我们不必像Authorware那样设置“擦除”,如果你想“擦除”这个分支,只需要跳转到另一个关键帧就可以了。
⒉热区交互的实现
制作一个“透明”按钮,将“透明”按钮覆盖在需要交互的区域就可以了。“透明”按钮的制作方法:先用绘图工具绘制一个封闭的形状,然后转换成按钮,再进入这个按钮中将“弹起”关键帧拖动到“点击”帧即可。(如图8、图9)
(图8)
(图9)
这样的按钮虽然没有实际的形象,但是却有一个发生响应的区域。在编辑时可以看到,但输出影片后就看不到了。Authorware中的热区只能是矩形,而Flash中的热区可以是任意形状哟!(如图10)
(图10)
⒊热对象交互的实现
很简单,将需要响应的热对象转换成按钮。在Flash MX中,按钮也可以拥有自己的实例名,这意味着我们可以像影片剪辑一样对它的各种属性进行更改。如_alpha、_xscale、_visible……。更令人叫绝的是按钮的enabled属性,我们通过将它的值设为真或假就可以禁用或者重新使用这个按钮。方便吧。
⒋按键交互的实现
①使用按钮实现:
如图11,为按钮选择“按键”事件,然后再右边的输入框中按下一个键即可。
注意:同时只能按一个键。如图11中是f键,但并不包括F键。也就是说如果按下F,这个按钮是不会响应的。
(图11)
②使用MC实现:
在Flash中,并非只有按钮才能引发事件。实际上,当涉及到比较复杂的操作时,许多事件都是由MC引起的。下图(图12)列举了MC的9种事件。
(图12)
如上图,向下键(keyDown)事件在键盘上某一键按下时被激活;向上键(keyUp)事件在键盘上某一键按下后抬起时被激活。利用这两个事件,我们可以制作按键交互。首先建立一个空的MC,然后将这个MC拖入舞台,选中这个MC,打开动作面板。写入如下代码(仍以调用“fangfa2“分支为例):
onClipEvent(keyDown){
if(Key.isDown(70)){
_parent.gotoAndStop(“fangfa2”);
}
}
这里的“70”代表的是一个按键,而不是一个字母,因此我们不用考虑大小写的问题,不论是“f”还是“F”,代码都是“70”。为什么要加上_parent呢?因为写在MC上的脚本实际上是位于MC内部的,必须一个表示父时间轴得_parent。
③单纯使用脚本实现:
在Flash MX中新增了KEY对象的侦听器,如果你觉得制作一个空MC太麻烦,那么完全可以创建一个侦听器对象,让它来代替MC接收键盘被按下或者抬起的事件。以下的代码写在主时间轴第一帧:
myKey = new Object();
Key.addListener(myKey);
myKey.onKeyDown = function() {
if (Key.isDown(70)) {
gotoAndStop("fangfa2");
}
};
⒌“等待交互”的实现
虽然Authorware中并没有这种说法,但是我们却经常在使用。当需要制作一些简单交互时,在Authorware中最常用的方法就是拖动一个等待图标到流程线上,然后设置为等待点击、等待按键或者等待一段时间。在Flash中,也可以实现相应的功能。
①等待点击按钮
此法同“按钮交互”,在此不再赘述。
②等待点击鼠标
等待单击
可实现的方法有很多,可以用前面的“透明按钮”的方法,将透明按钮放置在舞台的最上层(这样可以确保舞台上的其他对象不被响应),改变按钮的大小,使其覆盖整个舞台。然后在“透明按钮”上放置跳转到下一步的脚本。
等待双击
将一个“透明按钮”放在一个MC的第一帧,然后在第三帧新建一个关键帧,并将帧的长度延长至第四帧。
第一帧的脚本如下:
stop();
第一帧按钮上的脚本如下:
on(press){
play();
}
第三帧按钮上的脚本如下:
on(press){
_parent.gotoAndStop(“fangfa2”)
}
完成后的MC时间轴如图13所示。
(图13)
然后将这个MC拖动到舞台上,并至于最上层,改变其大小,使其覆盖整个舞台即可。如果需要改变双击的速度,只需延长第三帧后面的普通帧就可以了。
③等待按任意键
在主时间轴第一帧写入如下脚本:
myKey = new Object();
Key.addListener(myKey);
myKey.onKeyDown = function() {
gotoAndStop(“fangfa2”);
};
联系客服