教学资源

用Flash Random函数制作随机抽取的题库(教程)

发布时间:2012-06-17 发布者:admin 阅读 : 7603


一、新建一个Flash文档,1024*768的分辨率,因为目前的投影机大多是43的。
先制作一个漂亮的开场——场景:begin,左右幕布的动画效果比较简单,就此省略。



1、背景图层第一帧加上语句:stop();

2、“开幕按钮”图层的最后一帧加上语句:stop();

3、新建6个按钮,代表6种不同的题型,分别命名为button1button2……button6;这样,点击透明的“开幕按钮”后, 6个题型按钮就闪亮登场了。

4、在题型1按钮上加上语句,点击后可跳转到"题型1"场景,其他题型按钮也是如此。

on (release) {

      gotoAndStop("题型1", 1);

}

二、建立题库与答案

1、建立图层如下:


“背景”图层作为最下层;

“题目与答案”图层中,第一帧是空白帧,作为抽取题库的界面,须加上语句:stop();抽取的题库中共有27道题目,加上第一帧的空白帧,共28帧。

“题目与答案”图层中的2-27帧先打上题目,再加上27个答案,这些答案应做成“影片剪辑”分别用“answer1”-“answer27”来命名,其alpha值为0

“答案按钮”图层中,第一帧是空白帧,其余的27帧均为透明的大按钮,点击按钮后,原来alpha值为0的答案(answer1answer2……或answer27)才能显示出来。

on (release) {

       number=jj//  jj的意义请看下文分解

       setProperty("answer"+number, _alpha, "100");//将原来透明的答案“answer …”显示出来

}

三、在“主控按钮与语句”图层中开始用random函数制作第一个抽题系统,其余的5个题型的抽题系统就不再一一赘述了。

1、(如图)制作三个按钮,从左到右依次设置。①.左边的“抽取题目”按钮命名为“button11”;②.中间“返回”的绿色按钮命名为“button00,加入如下语句:

on (release) {

    stopAllSounds();

    gotoAndStop("begin", 20);

} // 返回“begin”场景的最后一帧

 

.右边“继续摇号”按钮命名为“button22”;

2、(如图)制作一个1-27数字依次变化的影片剪辑,命名为“jump”。


3、再制作一个摇号时的影片剪辑,第一帧是空白;第二帧插入音乐,加入语句stop();第三帧也是空白,加入语句stop();stopAllSounds();。将这个影片剪辑命名为“music”,放在画面左上角。

4、“主控按钮与语句”图层的第一帧中加入如下语句,对相关参数进行初始化。

aa = new Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,21,22,23,24,25,26,27);//题目共有27题,所以定义数组aa1-27

bb = new Array();//定义一个空数组

cc = new Array();//定义一个空数组

mmm = 0;//mmm赋值为0

nnn = 27;//nnn赋值为27

_root.but00._visible = false;// 将返回“begin”场景的按钮设为不可见

_root.but22._visible = false;// 将“继续摇号”按钮设为不可见

music.play();//开始播放抽题时的音乐

5、“抽取题号”按钮(button11)中加入如下语句,点击或按空格键后开始随机抽取的题库中的题目,这是整个随机抽取系统的关键所在。

on (release, keyPress "<Space>") {   

   music.play();//音乐开始播放

   ii = random(nnn);//nnn(0-27)中随机抽一个数(0是第1个数,1是第2个数,以此类推……)

    trace(ii);//调试时,用于跟踪ii的变化(举例:如果ii8)

    jj = aa[ii];//从数组aa(127)中取出第(ii)个数,因为数组aa中没有0,所以第(ii)个数实际上是第(ii+1)个数(举例:那么jj9)

    trace(jj); //调试时,用于跟踪jj的变化

    _root.jump.gotoAndStop(jj);  //jump影片剪辑跳转到随机数相对应的帧上,这样屏幕上有出现了随机抽取的数字(举例:此时,影片剪辑“jump”将显示“09)

    aa1 = aa.slice(0, ii);//把数组aa(127)中的第1个至第ii个数找出来,赋值给数组aa1

    trace(aa1); //调试时,用于跟踪aa1的变化(举例:aa11,2,3……8)

    aa2 = aa.slice(ii + 1, nnn);//把数组aa(127)中的第(ii+1)个至第27个数找出来,赋值给aa2

    trace(aa2); //调试时,用于跟踪aa2的变化(举例:aa210,11,12……27)

    aa = aa1.concat(aa2);//a1a2两个数组合并起来,赋值给aa(就等于是在原aa数组中去掉了已被抽取的数jj)

    trace(aa); //调试时,用于跟踪aa的变化(举例:aa1,2,3……8,10,11,12……27)

    gotoAndStop(jj+1); //跳转到随机数相对应的帧上,这样屏幕上有出现了随机抽取的题目(举例:跳转到本场景的第10帧,显示第9题的画面)

    mmm++;//原值是0

    nnn--;//原值是27

    _root.but11._visible = false;//为防止误操作,抽取后,“抽取”按钮不可见

    _root.but22._visible = true; //为防止误操作,抽取后,“继续摇号”按钮可见

           if (mmm == 27) { //如果已经抽取了27题,将执行下列语句

           text = "抽题已结束,请返回!";

           _root.but00._visible =true;//抽完27题,绿色返回按钮可见

           _root.jump._visible = false; //抽完27题,影片剪辑“jump”不再显示数字

    _root.but22._visible = false;_root.but11._visible = false; //抽完27题,“继续摇号”可见

    } // end if

}

6、“继续摇号”按钮(button22)中加入如下语句。

on (release) {

    _root.but11._visible = true;//使“抽取题目”按钮可见

    _root.but22._visible =false;//隐藏“继续摇号”按钮

    _root.jump.play();//重新让影片剪辑“jump”滚动数字

    music.play();//让音乐重新播放

}

四、为便于操作,“场景1”的屏幕下方加上提示:

1、静态文本“本组共27题,已抽取_____题”。

2、动态文本,属性中的“变量”框中填入“mmm

3、动态文本,属性中的“变量”框中填入“text

五、为防止重复答题,在“begin”场景中做如下设置:

回到“begin”场景,在“开幕按钮”图层的最后一帧加上语句:

if (mmm== 27) {    //如果已经抽取了27

返回顶部 打印 关闭