Animate如何制作答题课件(1)
1、打开制作软件,新建AS3文档。

2、我们制作几个简单的计算题和答案的连线,同学们也可以自己发挥。
在舞台上放8个文本框,左右各四个,如图所示,写好算式和答案。

3、新建一个图层,并用鼠标拖到算式层的下面。

4、自行制作影片剪辑,拖动8个分别放到8个算式下方,注意,这8个影片剪辑要在新建的图层。


5、给左边的影片剪辑从上到下依次设置实例名为,a0,a1,a2,a3





6、右边的影片剪辑实例名设置时要注意,按左边算式答案的顺序依次设置为b0,b1,b2,b3

7、在主时间轴加下代码:
var shape:Shape=new Shape();//用于画线
shape.graphics.lineStyle(2,0xFF0000);//第一个参数是线的粗细,第二个参数是线的颜色
this.addChild(shape);//把画线的容器放到舞台上
var a_id:int=-1;//用于存储算式已经选择的索引
var b_id:int=-1;//用于存储答案已经选择的索引
var l_count:int=4;//连线数量
var right_count:int=0;//记录连线正确的数量
initSence();
function initSence():void
{
shape.graphics.clear();
shape.graphics.lineStyle(2,0xFF0000);//第一个参数是线的粗细,第二个参数是线的颜色
for(var i:int=0;i<l_count;i++)
{
this["a"+i].alpha=0.5;//设置按钮颜色,这样可以区分点的是哪个
this["b"+i].alpha=0.5;//设置按钮颜色,这样可以区分点的是哪个
this["a"+i].addEventListener(MouseEvent.CLICK,ClickAEvent);//点击算式事件
this["b"+i].addEventListener(MouseEvent.CLICK,ClickBEvent);//点击答案事件
this["a"+i].isRight=false;//记录状态,如果算式已经连线,则不让点击
this["b"+i].isRight=false;
}
}
function ClickAEvent(e:MouseEvent):void
{
var obj:Object=e.currentTarget;
var t:int=int(obj.name.slice(1));
if(obj.isRight==true)
{
return;
}
if(right_count==l_count)
{
return;//如果连线完成,则不允许操作
}
if(a_id==t)//判断是否点的是同一个算式
{
a_id=-1;
obj.alpha=0.5;
return;
}
if(b_id==-1)//判断有没有选择答案
{
if(a_id!=-1)
{
this["a"+a_id].alpha=0.5;
}
a_id=t;
obj.alpha=1;
}
else
{
if(b_id==t)//判断是不是选择正确
{
shape.graphics.moveTo(obj.x,obj.y);
shape.graphics.lineTo(this["b"+b_id].x,this["b"+b_id].y);
obj.isRight=true;
this["b"+b_id].isRight=true;
this["b"+b_id].alpha=0.5;
b_id=-1;
a_id=-1;
right_count++;
}
else
{
this["b"+b_id].alpha=0.5;
b_id=-1;
a_id=-1;
}
}
}
function ClickBEvent(e:MouseEvent):void
{
var obj:Object=e.currentTarget;
var t:int=int(obj.name.slice(1));
if(obj.isRight==true)
{
return;
}
if(right_count==l_count)
{
return;//如果连线完成,则不允许操作
}
if(b_id==t)//判断是否点的是同一个答案
{
b_id=-1;
obj.alpha=0.5;
return;
}
if(a_id==-1)//判断有没有选择算式
{
if(b_id!=-1)
{
this["b"+b_id].alpha=0.5;
}
b_id=t;
obj.alpha=1;
}
else
{
if(a_id==t)//判断是不是选择正确
{
shape.graphics.moveTo(obj.x,obj.y);
shape.graphics.lineTo(this["a"+a_id].x,this["a"+a_id].y);
obj.isRight=true;
this["a"+a_id].isRight=true;
this["a"+a_id].alpha=0.5;
b_id=-1;
a_id=-1;
right_count++;
}
else
{
this["a"+a_id].alpha=0.5;
b_id=-1;
a_id=-1;
}
}
}


8、运行成功后可以进行连线操作。这里只讲简单的实现过程,比如全部连完后如何重置,还要自行思考。
