一、要实现的效果
制作连线题
二、准备工作
flash CS6 as2.0
三、制作步骤
1、新建一个as2.0的flash文件
2、输入要连线的两边的内容(可以左右连线,也可以上下连线,看自己情况进行排列)
3、我们要实现点击文字出现线,去连图片。(1)接下来,我们打乱文字的顺序,并把每个文字转换为影片剪辑。例如,我们把“乌龙”两个字变成影片剪辑,选中“乌龙”,按F8转换为元件,类型为影片剪辑,注意对齐的那个九个点,选中最下面一排的中间,也就是连线时候的起始点,如果你是左边连线右边,这个黑点就要选右边中间的那个点。
(2)其它几个文字选项也是如此操作,然后把这五个文字做成的影片剪辑的实例名称修改为他们的首字母小写,如“乌龙”影片实例名称为“wl”
(3)双击“乌龙”进入影片剪辑,在图层1第三帧插入帧,新建图层2,图层2插入三个关键帧,
第一个关键帧写入:
stop();
第二个关键帧写入:
//在wl中创建一个名字为wlx的空影片剪辑元件,设置wlx的级别为1
_root.wl.createEmptyMovieClip("wlx", 1);
//以下在名字为f的影片剪辑元件中进行
with (_root.wl.wlx) {
//清除所有的图形
clear();
//设置将要绘制的直线的粗细为3,颜色为红色,并且不透明
lineStyle(3, 0xff0000, 100);
//跟随鼠标绘制直线
lineTo(_xmouse, _ymouse);
}
第三帧写入:
gotoAndPlay(2);
(4)选择图层1里的“乌龙”右键转换为按钮元件,并且给实例名称修改为“wlbut”
给这个按钮添加动作代码
//当单击按钮时
on (press) {
//跳转到第2帧开始播放
gotoAndPlay(2);
}
(5)回到主场景后,把乌龙的图片转换为按钮元件,并且给这个元件写入代码
on (release) {
with (_root.wl) {
gotoAndStop(1);
}
}
(6)测试效果,如下图,测试成功,其它选项也是如此制作,主要写代码时候,代码要对应
(7)全部代码写完测试效果
4、基本功能已经实现,但是存在一些问题,比如,点击完“乌龙”再点击“炒饭”会出现2条线跟随鼠标。所以我们要求当点击完“乌龙”后,再点击其他文字按钮,其它文字按钮失效,所以我们在3(3)那个第一帧的stop()代码下写入如下代码
//停止
stop();
//使5个按钮全部有效,就是影片剪辑下图层1里的按钮
_root.wl.wlbut.enabled = 1;
_root.gxr.gxrbut.enabled = 1;
_root.nmw.nmwbut.enabled = 1;
_root.cf.cfbut.enabled = 1;
_root.wk.wkbut.enabled = 1;
5、每个文字影片剪辑下的图层1里的那按钮上写入代码,此时再次测试,就不会出戏一个鼠标引领多条线的问题。
//当单击按钮时
on (press) {
_root.wl.wlbut.enabled = 0;
_root.gxr.gxrbut.enabled = 0;
_root.nmw.nmwbut.enabled = 0;
_root.cf.cfbut.enabled = 0;
_root.wk.wkbut.enabled = 0;
//跳转到第2帧开始播放
gotoAndPlay(2);
}
6、添加声音效果
导入正确与错误的mp3音效,然后在库里右键音乐,属性,actionscript,标识符修改为duiyin和cuoyin
7、主场景新建一个图层放代码如下
//建立一个名字为zhengque的声音对象
zhengque = new Sound();
//把库中的sound1声音链接到zhengque声音对象
zhengque.attachSound("duiyin");
//建立一个名字为cuowu的声音对象
cuowu = new Sound();
//把库中的sound2声音链接到zhengque声音对象
cuowu.attachSound("cuoyin");
8、在下方图片的按钮上写入代码
如炒饭图片按钮的代码如下
//当单击并释放按钮时
on (release) {
//在名字为cf的影片剪辑元件中
with (_root.cf) {
//跳转到第1帧并停止播放
gotoAndStop(1);
}
//如果cf中的result变量的值为炒饭
if (_root.cf.result == "炒饭") {
//那么让名字为zhengque的声音对象开始播放
zhengque.start();
//重新设置变量result的初值为空,这样不至于变量的值重复使用
_root.cf.result = "";
} else {
//如果 cf中的result变量的值不是炒饭
//那么让名字为cuowu的声音对象开始播放
cuowu.start();
}
}
9、在上面文字影片剪辑第二帧写入判定对错的值,以便确定是否播放正确声音
result = "炒饭";
_root.cf.createEmptyMovieClip("cfx", 1);
with (_root.cf.cfx) {
clear();
lineStyle(3, 0xff0000, 100);
lineTo(_xmouse, _ymouse);
}
10.代码写完后测试