主题:  是高手的请进(连线题)

xiexuyang

职务:普通成员
等级:1
金币:0.0
发贴:16
#12002/2/9 16:00:46
如何做能判断对错,并给出答案的连线题



guking

职务:普通成员
等级:1
金币:1.0
发贴:202
#22002/2/9 23:56:02
你说的可否再详细点儿,你用在什么地方的?
判断MC,可以根据判断语句来选择执行连线的起点坐标,
连线MC则要先调用判断MC判断进行,然后再将正确的答案的坐标即终点坐标做一个连线的动画。



janlay

职务:管理员
等级:7
金币:28.0
发贴:7244
#32002/2/10 1:13:57
我对这个问题的结构是这样想的:

一个简单的方法是把每一个问题/答案都做在一个mc中(当然,这它们的字符串用变量来表示),再把这个mc做在按钮中(这样它就可以直接用release事件来接收鼠标选择,可点击的范围要足够宽),最后把这个按钮做进mc中(这样就可以使用action来控制它的位置了)。

用这个方法在写代码时要注意当前mc的层次(路径)问题。相对而言,连线就简单一些了。



xiexuyang

职务:普通成员
等级:1
金币:0.0
发贴:16
#42002/2/10 13:45:38
谢谢各位,我先试试



guking

职务:普通成员
等级:1
金币:1.0
发贴:202
#52002/2/11 11:23:08
不好意思,上次我说的那种做法是只有一个题目多个选择答案的做法,不是你所要的那种连线题。
现将连线题的做法贴上,方法不难,但是有点繁索。
效果如下:
http://home.66633.com/guking/choose.swf
做法:
1、首先要做一个BUTTON来进行控制。
    1-1,我的做法是用一个MC来表现动画效果名为moviebutt,一个只在HIT状态才有内容的BUTTON名为nullbutt,这样我觉得很方便有效,一个MC的INSTANCE可以被多次使用而不占空间,不过每个MC的INSTANCE要放在一个层里并分别设置他们的INSTANCE-NAME;HITHIT状态才有内容的BUTTON是不可见的,但会起作用,而且BUTTON可以放在同一个层里,进行统一管理。
    1-2,MC和BUTTON的大小要一样,且放置时要在相同的坐标上才不会使按钮和动画的位置不一致。
    1-3,MC只有两个FRAME,做一个动画按钮的一个状态,F6后修改颜色即可。将其中一帧的内容复制后放在BUTTON的HIT帧即可。
    1-4,设置MC的FRAME-LABEL,第一帧为HEAD,第二帧为END。
2、再做三个MC,即连线的动画,为line1,line2,line3.第一帧的FRAME-LABEL为HEAD,最后帧为END。动画制作略。
3、现在就要将所做好的BUTTON和MC放入SCENE。
    3-1,三个层,l-butt1,l-butt3,l-butt3,分别放moviebutt的INSTANCE,INSTANCE-NAME为l1,l2,l3。
    3-2,再加一层l-nullbutt,放在l-butt1,l-butt3,l-butt3层的上面,里面放nullbutt的INSTANCE三个,对应l1,l2,l3,放置时要在相同的坐标上。对应l1的nullbutt的AS如下:
on (release) {//选左面第一个按钮的动画效果控制
    lflag=1;//设置左面的判断标志
    tellTarget (_root.l1) {_root.l1.gotoAndStop("end");}//按钮的动画效果控制
    tellTarget (_root.l2) {_root.l2.gotoAndStop("head");}//按钮的动画效果控制
    tellTarget (_root.l3) {_root.l3.gotoAndStop("head");}//按钮的动画效果控制
    }
其他的相似,略。
    3-4,因为有三个连线的按钮,所以连线动画就要有九个。现只讲三个,其余类似。加三个层,名为line11,line12,line13,这三个层分别放line1的INSTANCE,INSTANCE-NAME为line11;line2的INSTANCE,INSTANCE-NAME为line12;line3的INSTANCE,INSTANCE-NAME为line13。此三层要放在最下面,这样连线动画效果就像从按钮上发出来的。
    3-5,加三层,r-butt1,r-butt3,r-butt3,分别放moviebutt的INSTANCE,INSTANCE-NAME为r1,r2,r3。
    3-6,再加一层r-nullbutt,放在r-butt1,r-butt3,r-butt3层的上面,里面放nullbutt的INSTANCE三个,对应r1,r2,r3,放置时要在相同的坐标上。对应r1的nullbutt的AS如下:
on (release) {//选右面第一个按钮的动画效果控制
    rflag=1;//设置右面的判断标志
    tellTarget (_root.r1) {_root.r1.gotoAndStop("end");}
    tellTarget (_root.r2) {_root.r2.gotoAndStop("head");}
    tellTarget (_root.r3) {_root.r3.gotoAndStop("head");}
    if (lflag==1) {//如果左面选第一个按钮的动画效果控制
        tellTarget (_root.line11) {_root.line11.Play();}//
        tellTarget (_root.line12) {_root.line12.gotoAndStop("head");}
        tellTarget (_root.line13) {_root.line13.gotoAndStop("head");}
        }
    if (lflag==2) {//如果左面选第二个按钮的动画效果控制
        tellTarget (_root.line21) {_root.line21.Play();}
        tellTarget (_root.line22) {_root.line22.gotoAndStop("head");}
        tellTarget (_root.line23) {_root.line23.gotoAndStop("head");}
        }
    if (lflag==3) {//如果左面选第三个按钮的动画效果控制
        tellTarget (_root.line31) {_root.line31.Play();}
        tellTarget (_root.line32) {_root.line32.gotoAndStop("head");}
        tellTarget (_root.line33) {_root.line33.gotoAndStop("head"); }
        }
    }
其他的相似,略。
4、至于你所要求的判断对错,我已经设置了lflag、rflag两个标志,见动画。你可以根据他们的值来进行判断后的动画处理。
源程序:
http://home.66633.com/guking/choose.fla



xiexuyang

职务:普通成员
等级:1
金币:0.0
发贴:16
#62002/2/11 14:11:33
楼上的兄台,收到,谢谢



guking

职务:普通成员
等级:1
金币:1.0
发贴:202
#72002/2/11 22:40:23
能用吗?符合你的要求吗?



xiexuyang

职务:普通成员
等级:1
金币:0.0
发贴:16
#82002/2/12 17:15:18
能用,和我想要的差不多,再谢



guking

职务:普通成员
等级:1
金币:1.0
发贴:202
#92002/2/14 22:47:02
别客气!我都不好意思了!
帮你对我也有好处的。所以你不用太客气。
以后互相切磋。