快来看flash - as入门教程(8)

2019-05-18 21:03

this.yPosition = yPosition; }

我们可以定义不同属性的对象了

myBall = new Ball(6, 0x00FF00, 145, 200);

本教程关于还有创建方法以及如何在类之间继承方法和属性没讲, 无论如何,OOP都不可能在这么短时间之内说清楚, 但这不妨碍我们做下一个例子了。 第十二章 第四个版本的选择题

第三个版本的时候我们已经设想好,新版本中题目将是动态生成的,不用我们在FLASH的场景里面一题一题输入了,我们要做的只是输入题目和题目答案的数据就够了。 很明显,每一条题目都将是一个对象(不然我们学这么多对象的知识干嘛?),而这些所有的题目,会用一个数组来存放 再

http://www.moock.org/webdesign/lect...oockQuizzes.zip ; 好,开始设计题目的模版

模版就是一个MC,包含两个TEXT FIELD,里面不用填东西,分别起变量名为:(FOR小鸟:TEXT FIELD就是按工具条里T按钮拉出来的文本框,同时还要在文本面板(ctrl+t)里将其改为Dynamic Text,变量名则在面板的Variable处改) * qNum (以后将显示题目的编号) * qText (以后将显示题目的正文)

我们还要在库里面做标识,点一库面板(ctrl+l)右上的Options>> Linkage ,选第二个Expert this symbol,identifier填上questionTemplate,至此,题目模版完成 再制作选项的模版

选项模版应包括一个选择用的按钮

还有该选项的内容,一个起名为answerText的TEXT FIELD

在本例的后面,将为每一个动态生成的选项一个唯一的名字,譬如: \\

答题者所选定的答案将由这个名字来决定,调用一个MC的名字,用的是_name这个属性 所以答题的按钮上面的AS为: on (release) {

// Trim the prefix \

// 下面使用了String.slice()方法,例如_name为answer0,它将被处理成0,slice的具体语法请查阅AS字典

// 按钮提交什么由该MC的名字决定的,我作个标记 @@ ,记得一会看回来 choice = _name.slice(6, _name.length);

// 与前面的例子一样,最后将答案提交给answer函数处理,不过现在我们是在某一MC里面用外面主时间线的函数了,所以得加上_root _root.answer(choice); }

最后,Options>> Linkage,标识名:answerTemplate,制作模版的工作就完成了 下面将是放在第一帧的程序主体,可要打起精神来了: // Stop the movie stop();

// Init main timeline variables

var displayTotal; // Text field for user's final score

var totalCorrect = 0; // Number of questions answered correctly

// Array containing the user's guesses 记录作答答案的数组

var userAnswers = new Array();

// Number of the question the user is on 记录正在作答中题目的编号

// 要注意的是,它是由0开始的,第一题的编号是0,因为我们要用到数组,数组的第一个编号是0,所以这里我们也用0 var currentQuestion = 0; // The Question constructor

// 以下是新类型对象question的构造函数,包含三个属性:正确答案,题目正文,各个选项

function Question (correctAnswer, questionText, answers) { this.correctAnswer = correctAnswer; this.questionText = questionText; this.answers = answers; }

// Import the source file containing our array of question objects

// 咦?应该是输入各条题目的数据先啊,放哪去了?因为嘛,数据输入是个与编程无关的过程,为了让代码更优雅,这些繁琐的东西扔别地方去了,AS太长,会使查阅相当麻烦,分开存放也是好习惯!

// #include是引用外部AS命令,可以将AS分开储存于各个后缀名为AS的文件中,输入题目的代码就是放到了questionsArray.as中(记得和FLA放在同一目录下喔) #include \

//// 我改变了一下教程的结构,把questionsArray.as的内容也插入进来了,因为跳过这段的话,看起来会有疑问

//// 以下内容系存放questionsArray.as中的

// 输入数据其实是建立对象

// MOOCK用一个数组还存放这些对象,这样对象才更易于管理

// 不要被括号给弄昏了,输入对象参数的中间还有中括号,是因为输入题目的参数“各个选项”是一个数组

// 因为是存放于数组中,每个对象之间记得应有逗号分隔 // Remember to place a comma after each object // in the array except the last questionsArray = [new Question (2,

\[\\new Question (2,

\[\new Question (1,

\

[\new Question (0,

\[\new Question (1,

\value of its operand + 1.\

[\new Question (3, \

[\//// 离开questionsArray.as部分,我们继续

// Begin the quiz 出题目!调用makeQuestion函数来完成,我们只需要给这个函数一个参数:题目的编号,函数就会按编号提取数据,结合我们刚才做的模版生成题目。 makeQuestion(currentQuestion);

// Function to render each question to the screen // 下面就是makeQuestion函数

function makeQuestion (currentQuestion) { // Clear the Stage of the last question

//这句是清理上一题生成的MC,这句从第二题开始生效,questionClip就是题目的MC名,MC从哪来的?看下面就知道了

questionClip.removeMovieClip();

// Create and place the main question clip

// 利用模版questionTemplate生成一个叫questionClip的MC,这个MC就是我们的问题

attachMovie(\// 设定MC的位置 questionClip._x = 277; questionClip._y = 205;

// 把题目编号输入MC的qNum文本框中


快来看flash - as入门教程(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:(新)天桥施工组织设计(体育馆) -

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: