quest007 发表于 2009-2-21 10:04:31

用Flash MX组件制作测验题(2)

五、增加动作图层

  11、插入新的图层,并命名为"动作",然后选定"动作"图层第一帧,再选择"窗口/动作"命令,打开动作对话框,对该帧进行动作设置,行为代码为:

  // 设置:
  right=0 // 用right记录答对题数量,
  score=0 // score记录最后的得分
  wrong=0 // wrong记录答错题数量,
  n=5 // n为每题得分
  // 对"检测"按钮用一个函数进行设置。
  function onclick() { // 当单击检测按钮时的动作
    // 判断第三题对错情况
    result3=_root.question3.getValue(); // 取得你选择的结果
    if (result3=="C"){ // 设置为C为正确答案
      right=right 1
    }
    if (result3=="A"||result3=="B"||result3=="D"){ // 设置为A、B、D为错误答案
      wrong=wrong 1
    }
    // 得分反馈情况
    score=right*n
    result.text="你做对了"right"题;" "做错了" wrong "题;" "共得"score"分"
    jc.setEnabled(false); // 使"检测"按钮失效
  }

  12、上面第11步骤中,没有对第一帧的两题进行判断,原因是,在FLASH 中,当帧跳转后,组件的值不被记忆,因此对于第一帧上的两题的判断,用第一帧中的"circle button-next"导航按钮来完成。

  六、更改按钮动作

  13、选择"试题"图层第一帧中"circle button-next"按钮,然后选择"窗口/动作"命令,打开动作对话框,将行为代码增加为:

  on (release) { // 单击该按钮时进行的动作
    // 判断第一题对错情况
    result1=_root.question1.getValue();
    if (result1=="B"){ // 设定第一题的正确答案为B
      right=right 1
    }
    if (result1=="A"||result1=="C"||result1=="D"){ // 设定第一题的错误答案为A、C、D
      wrong=wrong 1
    }
    // 判断第二题对错情况
    result2=_root.question2.getValue();
    if (result2=="A"){ // 设定第二题的正确答案为A
      right=right 1
    }
    if (result2=="B"||result2=="C"||result2=="D"){ // 设定第二题的错误答案为B、C、D
      wrong=wrong 1
    }
    gotoAndPlay(2); // 单击时跳到第二
  }

  七、查看效果

  14、选择"控制/测试影片"命令,可查看效果。

  15、最后通过"文件/发布"命令可发布为可执行文件。

  八、特别说明

  1、通过对向后翻页按钮的改进,可以统计本页题目正误情况,解决了当帧跳转时,FLASH组件的值丢失的问题。

  2、在动作图层的动作设置中 jc.setEnabled(false)语句的作用是:当按下检测按钮后,使检测按钮失去作用,避免了重复记分。

  3、检测完成后,可返回到首页,重新开始测试,则重新记分。
页: [1]
查看完整版本: 用Flash MX组件制作测验题(2)