站长中国
设为首页 | 站长论坛

站长论坛 站长下载
您所在的位置: 站长中国 > 站长学院 > 网络媒体 > Flash >  正文

仿小小的控制菜单 第7章 第二个版本选择题的制作
  2008年02月18日17:03:56  评论(0条) 字体:[ ]
相关热点:

读到这你发现什么,我是发现了,MOOCK不是在教AS,他简直是在上编程课。  
在第一个版本的制作里你发现了什么缺点?是的,输入了很多次AS,很麻烦。
我们要做的是用函数来集中我们的代码,只有集中了才好修改,越复杂的程序越是如此(想象一下在很多个MC之间查代码,真是头痛,当然是集中一块好)
这个多选题,我们就归结成两个函数吧answer和gradeUser  
代码(可以直接看源程序,在上面地址那个ZIP里面的quiz-version2.fla):
大部分的代码都被集中到第一帧了,千万不要被一大堆代码吓着了,代码这么长,只是为了让阅读者看得更清楚而已。(其实越短的代码才越可怕呢,呵呵)
//   Stop   the   movie   at   the   first   question
stop   ();  
//   Initialize   main   timeline   variables   定义变量
var   displayTotal;   //   Textfield   for   displaying   user''s   score
var   numQuestions   =   2;   //   Number   of   quiz   questions
var   q1answer;   //   User''s   answer   for   question1
var   q2answer;   //   User''s   answer   for   question2
var   totalCorrect   =   0;   //   Number   of   questions   answered   correctly   以上和例一一样
var   correctAnswer1   =   3;   //   The   correct   choice   for   question   1   第一题的正确答案
var   correctAnswer2   =   2;   //   The   correct   choice   for   question   2   第二题的正确答案  
//   Function   to   register   user''s   answers   这个函数的功能是提交答题者的答案
function   answer   (choice)   {
answer.currentAnswer++;  
//现在answer.currentAnswer是1,正在提交的是第一题,下一次answer.currentAnswer就变成2,代表提交的是第二题
set   ("q"   +   answer.currentAnswer   +   "answer",   choice);  
//   不复杂不复杂,"q"   +   answer.currentAnswer   +   "answer"第一题的时候就是q1answer,第二题是q2answer,把参数choice传过来的值放到两个变量里面而已
if   (answer.currentAnswer   ==   numQuestions)   {  
//   判断是不是两题都答完了,是就转到问题结束帧
gotoAndStop   ("quizEnd");
}   else   {
gotoAndStop   ("q"   +   (answer.currentAnswer   +   1));
}
}  
//   Function   to   tally   user''s   score   这个函数是改题的
function   gradeUser()   {
//   Count   how   many   questions   user   answered   correctly   将两个答案和正确答案比较,对就totalCorrect加一
//此处用了一个for循环,大家如有疑问的,可以查AS字典,在帝国就有中文版
for   (i   =   1;   i   <=   numQuestions;   i++)   {
//   下面用的eval有必要说一下,它的作用是将字符串和变量组成一个新的变量名,是个很方便的功能
if   (eval("q"   +   i   +   "answer")   ==   eval("correctAnswer"   +   i))   {
totalCorrect++;
}
}  
//   Show   user''s   score   in   an   on-screen   text   field   将答案显示出来,与第一个例子同
displayTotal   =   totalCorrect;
}  

好了,第一帧的函数写好了,之后每个答案的选择按钮就简单了
例如第一题的选项一,就写:
on   (release)   {
answer(1);
}  
第二题的写法同上(如果你的选择题有很多道,做法都是一样的,只要复制第一题,然后把题目改了就行)
最后在quizEnd帧里面调用改题的函数gradeUser();  
分析第二个例子是代码,你会发现比第一个例子精简了很多。  
而集中在同一帧的代码,将:
*   更容易修改
*   更容易升级
*   更少的出错机会
*   更容易查错
*   更精简(更少的字节数)


责任编辑:水色皇朝

收藏本文 打印 打印本文  推荐本文 告诉好友 投稿 投稿邮箱
    评论加载中…

站长排行

学院

新闻

专栏

盈利

[揭密网络黄链]中国留学生买凶专破日本
JSP语法(6)
超强弹出窗口代码,什么都挡不住
FLASH视觉特效实例之地震效果
贴吧发帖机使用教程(绝对原创)
关于数据分页(转自www.codeproject.co
ASP实现文件直接下载
Photoshop制作光感超酷效果水晶球
 遍历ASP.NET页面控件
永远的后门[经典]+查不出的后门
淘宝网卖家公然叫卖“艳照门”照片集
驳《百度Hi面世对腾讯有利》
Google绿色专家质疑黑色背景网页节省资
国内各IT企业办公环境揭秘(多图)
阿里妈妈广告卖主全攻略
站长创业源动力 主流站长站赏析
推荐阅读:80年小子的创业道理
Discuz!6.0猛将出击 最强论坛程序酷炫
我的网络,我的团队:专访李文明
百度新闻频道改版十天 流量止跌反弹翻
ECSHOP模板制作参考文档
悬挂阿里妈妈会否被百度惩罚
阿里妈妈是否是中小站长的救世主?
最强网店ECShop发新版 众多酷炫功能给
ECSHOP模板下载
土豆网,优酷网,爆米花等视频网站采集
DedeCms模板安装/制作概述
网上商店系统巅峰对决 ECShop vs ShopE
艰难的走在创业的路上 第一天
编程中国全站采集规则
性福联盟 一个不尊重站长的联盟
大脚:日赚100元—揭露最新firefox欺骗
大脚:垃圾站超级赚钱法之二—突破“站
大脚:垃圾站超级赚钱法之——前言
迅雷联盟、快车联盟收入对比
经理人必看的十个管理网站
Google Adsense的秘密 第二版
西联汇款兑付城市查询
不用SEO取得成功的10个步骤
关于做GOOGLE的五条经验
站长学院  网页设计 建站教程 图形图象 网络编程

Photoshop CS3
Photoshop CS3
不用Photoshop
不用Photoshop

DIV+CSS的开发方式 听听另外的
虚拟主机建站动易里快速生成的
VBScript特效代码 满屏幕乱跑
牛气!一个菜鸟站长的超强网站
创建、维护一个个人博客的“投
让网站流量稳步飙升的秘籍
网站推广的基本思想

新闻线索

如果你有站长界人事变动、重组并购、变革技术出现,以及产品投诉等重要新闻线索,请告诉我们,我们会给予特别关注。
0631-3653338
站长中国编辑部
站长中国24小时新闻热线: 13256307008