FLASH8 as2.0 填空题成绩计算有问题但是不知道哪里不对,求解答,急用,谢谢~
是11个填空,每个空是输入文本框xt1-11成绩是动态文本框赋予变量cj,成绩总是显示为0,哪里有错呢?语句是在提交的按钮上。急用~on(release){if(xt1=...
是11个填空,每个空是输入文本框xt1-11 成绩是动态文本框赋予变量cj,成绩总是显示为0,哪里有错呢?语句是在提交的按钮上。急用~
on(release){
if (xt1 == "北海道") {
cj1 = 10;
} else {
cj1 = 0;
}
//第二题
if (xt2 == "本州") {
cj2 = 10;
} else {
cj2 = 0;
}
if (xt3 == "四国") {
cj3= 10;
} else {
cj3 = 0;
}
if (xt4 == "九州") {
cj4 = 10;
} else {
cj4 = 0;
}
if (xt5 == "关东平原") {
cj5 = 10;
} else {
cj5 = 0;
}
if (xt6== "富士山") {
cj6 = 10;
} else {
cj6= 0;
}
if (xt7 == "太平洋") {
cj7 = 10;
} else {
cj7 = 0;
}
if (xt8 == "日本海") {
cj8 = 10;
} else {
cj8 = 0;
}
if (xt9 == "中国") {
cj9 = 10;
} else {
cj9 = 0;
if (xt10 == "俄罗斯") {
cj10 = 10;
} else {
cj10 =0;
}
if (xt11 == "朝鲜") {
cj11=10;
} else {
cj11=0;
}
}
cj=cj1+cj2+cj3+cj4+cj5+cj6+cj7+cj8+cj9+cj10+cj11;
} 展开
on(release){
if (xt1 == "北海道") {
cj1 = 10;
} else {
cj1 = 0;
}
//第二题
if (xt2 == "本州") {
cj2 = 10;
} else {
cj2 = 0;
}
if (xt3 == "四国") {
cj3= 10;
} else {
cj3 = 0;
}
if (xt4 == "九州") {
cj4 = 10;
} else {
cj4 = 0;
}
if (xt5 == "关东平原") {
cj5 = 10;
} else {
cj5 = 0;
}
if (xt6== "富士山") {
cj6 = 10;
} else {
cj6= 0;
}
if (xt7 == "太平洋") {
cj7 = 10;
} else {
cj7 = 0;
}
if (xt8 == "日本海") {
cj8 = 10;
} else {
cj8 = 0;
}
if (xt9 == "中国") {
cj9 = 10;
} else {
cj9 = 0;
if (xt10 == "俄罗斯") {
cj10 = 10;
} else {
cj10 =0;
}
if (xt11 == "朝鲜") {
cj11=10;
} else {
cj11=0;
}
}
cj=cj1+cj2+cj3+cj4+cj5+cj6+cj7+cj8+cj9+cj10+cj11;
} 展开
展开全部
又是文本框的变量问题
话说,教学的老师是不是应该要说明一下文本框变量的问题?是否应该跟进时代,淘汰文本框变量的用法?至少说明一下适用性。
这位童鞋,使用的软件应该不是flash8,所以你的文本变量直接读取时(设置显示是没问题的),除了你看到的文本内容以外,还有其他的内容,所以,单用"北海道"来判断是永远不会对的。将你的输入文本变量改文本的实例名之后,使用文本的text属性来作判断,如
if (xt1.text == "北海道") {
cj1 = 10;
} else {
cj1 = 0;
}
(xt1为文本的实例名,不是变量)
或者你将代码放到软件flash 8里去(可以到哪个版本没有进行过测试,但8是行的)
最后,给你个建议,对于这种有规可循的算法可以用循环来计算哦,减少代码量,方便改变计算次数。如代码
on(release){
_root.answer = ["北海道","本州","四国","九州","关东平原","富士山","太平洋","日本海","中国","俄罗斯","朝鲜"];//只需添加删除更改值,即可决定计算的长度与对错
var score:Array = new Array();//这个是记录每题的得分详细情况,因为不知你是否需要使用
var num:Number=0;//这个只是单纯的计算总分数
for(var i:Number=1;i<=_root.answer.length;i++){//计算的长度决定于给出的答案answer的长度
if (_root["xt"+i].text == _root.answer[i-1]) {
num+=score[i] = 10;
}else{
num+=score[i] = 0;
}
}
cj = num;//cj为显示分数的文本框
}
如果考虑到性能问题,最好就将_root.answer这句移到帧上面去。还有需要注意的是_root的路径问题,如果你的文本框不是放到主场景上的,则需要修改路径。
建议将代码写到帧上面去,一、方便查阅和修改,二、移植性强。
展开全部
上面的都没错,看下面的
cj=cj1+cj2+cj3+cj4+cj5+cj6+cj7+cj8+cj9+cj10+cj11;
这个错了,
应该改为
cj=Number(cj1)+Number(cj2)+Number(cj3)+Number(cj4)+Number(cj5)+Number(cj6)+Number(cj7)+Number(cj8)+Number(cj9)+Number(cj10)+Number(cj11);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询