flash action 由浅入深之一
作者 佚名技术
来源 服务器技术
浏览
发布时间 2012-07-10
uestionClip的MC,这个MC就是我们的问题 attachMovie("questionTemplate", "questionClip", 0); // 设定MC的位置 questionClip._x = 277; questionClip._y = 205; // 把题目编号输入MC的qNum文本框中 questionClip.qNum = currentQuestion + 1; // questionsArray[currentQuestion]就是数组questionsArray里的第currentQuestion个对象,例如currentQuestion是0,那么就是我们的第一条题目 // questionsArray[0].questionText就是第一条题目对象的问题属性 // 然后问题输入MC的qText文本框中 questionClip.qText = questionsArray[currentQuestion].questionText; // Create the individual answer clips in the question clip // 以下循环将结合选项模版生成这一条题目的各个选项的MC // questionsArray[currentQuestion].answers记得吗?选项这个属性可是个数组,所以我们把它的长度作为循环的次数,这个数组有多大,我们就生成多少个选项 for (var j = 0; j < questionsArray[currentQuestion].answers.length; j++) { // Attach our linked answerTemplate clip from the Library. // It contains a generalized button and a text field for the question. // 用answerTemplate做模版生成MC,MC名为"answer" + j ,即第一个选项MC名为answer0,第二个为answer1,选项的名字可是关系到按钮选什么的,如果你忘了,看看上面有 @@ 标记的地方 // 同时它们的深度为j,每次不同 // 但和上面不同的是,我们要把选项MC生成到题目MC里,这样我们清除题目MC的同时也清除了选项 // 所以写成questionClip.attachMovie questionClip.attachMovie("answerTemplate", "answer" + j, j); // Place this answer clip in line below the question. // 设定MC的位置,第一个高度为70,之后顺序加15 questionClip["answer" + j]._y += 70 + (j * 15); questionClip["answer" + j]._x -= 100; // Set the text field in the answer clip to the appropriate // element of this question''s answer array. // 下面语句的:questionClip["answer" + j]可不是指数组,j=0的时候,它代表questionClip.answer0,具体解释可见上一章。 // 这句语句的作用是把questionsArray[currentQuestion]这个对象数组里面的answers[j]数组,输入到对应的选项MC的answerText文本框中,就是该选项的内容 questionClip["answer" + j].answerText = questionsArray[currentQuestion].answers[j]; } //生成选项的循环结束 } // Function to register the user''s answers // 以下是记录答题者答案的函数,记录在数组userAnswers中,和上一例同 // 每一个选项如果被选都会调用此函数,并用参数choice传来作答的答案 function answer (choice) { userAnswers.push(choice); // 判断是否题目全部完成,是的话清楚掉题目MC,并跳转到quizEnd帧 if (currentQuestion + 1 == questionsArray.length) { questionClip.removeMovieClip(); gotoAndStop ("quizEnd"); } else { // 在这里改变题目的编号,然后调用makeQuestion函数再次生成新的题目 currentQuestion++; makeQuestion(currentQuestion); } } // Function to tally the user''s score // 改题的函数 function gradeUser() { // Count how many questions the user answered correctly for (var j = 0; j < questionsArray.length; j++) { // 将答题数组userAnswers[j]与问题数组questionsArray[j]的属性correctAnswer逐个比较 if (userAnswers[j] == questionsArray[j].correctAnswer) { totalCorrect++; } } // Show the user''s score in an onscreen text field // 显示答对与题目数比 displayTotal = totalCorrect + "/" + questionsArray.length; } 好了,我们来总结一下这个例子吧 我们已经完成了第三个版本结束时候定下来目标,更快捷的建设,更便易的扩展 我们的题目跟选项都是动态生成的,也就是说生成10 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于flash action 由浅入深之一的所有评论