Flash编程无基础入门教程
以下代码写到questionsArray.as中覆盖其原来内容
首先仍然定义一个数组来存放数据
var questionsArray = new Array();
然后我们定义一个XML对象来存放XML数据
var quizDoc = new XML();
之后是建立将XML解释为我们存放题目的对象格式的函数buildQuestionsArray(),同时将它连接到新建的XML对象的onLoad函数,让XML下载完成之后执行这个函数
quizDoc.onLoad = buildQuestionsArray
然后是执行下载XML的AS
quizDoc.load("quiz.xml");
最后我们详细解说一下解释XML的函数
// *** builds an array of question objects based on the dom tree in quizDoc
function buildQuestionsArray () {
// first, strip unwanted whitespace nodes from the tree.
// 除去无用的节点,上一章已经有介绍无用节点是如何出现的
stripWhitespaceDoublePass(quizDoc);
// now assign a convenient reference to the root QUIZ node
// XML文件的根节点QUIZ节点就是 quizDoc.childNodes ,这里将其指名为quizNode,以便运用
var quizNode = quizDoc.childNodes
// for each question node that is a child of the QUIZ node...
// 下面的循环将逐个提取QUIZ节点的子节点,即每条题目
for(var k = 0; k < quizNode.childNodes.length; k++) {
// make an array of the text nodes from each CHOICE node
// 为每条题目建立一个选项数组
var choicesArray = new Array();
// 下面的循环则是将题目的子节点,即各选项的nodevalue输入到choicesArray数组中
for(var j = 0; j < quizNode.childNodes[k].childNodes.length; j++) {
choicesArray[j] = quizNode.childNodes[k].childNodes[j].firstChild.nodevalue;
}
// construct a question object for each QUESTION node,
// and store it in questionsArray
// 用题目正文、选项数组、正确答案(正确答案目前还是字符串,所以用Number函数将之转为数字)作为参数,建立Question对象(定义Question对象的代码已经在上个例子中解释了)
// 将新建的Question对象作为questionsArray数组的一个元素
questionsArray[k] = new Question (
Number(quizNode.childNodes[k].attributes.answer),
quizNode.childNodes[k].attributes.text,
choicesArray);
}
// done loading and processing the quiz questions
loadMsg = "";
// begin the quiz
// 调用函数makeQuestion,之后的进度就同上一个例子了
makeQuestion(currentQuestion);
}
// *** Strips whitespace nodes from an XML document. // *** by passing twice through each level in the tree
[文章热度:]
123456789101112131415161718192021
上一页:Flash 物理效果收藏
下一页:Flash As编码习惯