AS基礎(chǔ)教程整理第9/13頁(yè)
更新時(shí)間:2007年03月22日 00:00:00 作者:
第十章 第三個(gè)版本的選擇題
首先,此版本沿用了上一版本的函數(shù)answer和gradeUser
在這一版本中,用戶的答案與正確答案將使用數(shù)組來存放
看看我們的新代碼:
stop();
// *** Init main timeline variables
var displayTotal; // Text field for displaying user's final score
var numQuestions = 2; // Number of questions in the quiz
var totalCorrect = 0; // Number of correct answers
// 上一版本中,用戶答案使用了兩個(gè)變量來存放,但是試想如果是10題、100題呢?使用數(shù)組將更容易管理,也更容易處理
var userAnswers = new Array(); // Array containing user's guesses 這是定義數(shù)組的語(yǔ)句,但是還未輸入數(shù)據(jù)
var correctAnswers = [3, 2]; // Array containing each correct answer 這一句既定義數(shù)組,同時(shí)輸入數(shù)據(jù),因?yàn)檎_答案是已知的
// *** Function to register the user's answers
function answer (choice) {
// Tack the user's answer onto our array 將數(shù)據(jù)PUSH進(jìn)數(shù)組,因?yàn)槭琼樞虼痤},所以用方法PUSH
userAnswers.push(choice);
// Do a little navigation, baby
// 如果答案數(shù)超過題目總數(shù),自然就跳到quizEnd幀了
// 注意在本例中,已經(jīng)不用上例的answer.currentAnswer而是使用userAnswers.length來控制問題是否結(jié)束
// 我們甚至可以用correctAnswers.length來代替numQuestions,記錄正確答案數(shù)組的長(zhǎng)度,不就是題目總數(shù)嗎?
if (userAnswers.length == numQuestions) {
gotoAndStop ("quizEnd");
} else {
gotoAndStop ("q"+ (userAnswers.length + 1));
}
}
// *** Function to tally the user's score
function gradeUser() {
// Count how many questions were answered correctly.
// 開始改題,這里就不用再用上個(gè)版本的eval啦,那個(gè)東東實(shí)在是難懂兼難用,這個(gè)版本相對(duì)就很清晰明快
for (var j = 0; j < userAnswers.length; j++) {
if (userAnswers[j] == correctAnswers[j]) {
totalCorrect++;
}
}
// Show the user's score in a dynamic text field
displayTotal = totalCorrect;
}
電影的其他部分不用改動(dòng)(這就是使用FUNTION的好處啦,升級(jí)多快~)
OK,進(jìn)入下一章之前想想目前版本的弱點(diǎn)
* 題目,每次修改題目都要進(jìn)入FLASH的場(chǎng)景修改,麻煩
* 按鈕,每題就要做三個(gè)按鈕
這都是麻煩的地方,我們要更精益求精地修改,讓我們的多選題,輕易地從兩題變成10題、100題
接下來我們要做的是
* 進(jìn)一步改進(jìn)我們存放數(shù)據(jù)的結(jié)構(gòu)
* 讓我們可以動(dòng)態(tài)地生成每一道題目,只需輸入數(shù)據(jù),而不需要在FLASH里面操作就可以自動(dòng)生成
所以——我們需要面向?qū)ο缶幊蹋?object oriented programming)
chocobo:嘻嘻,眾菜鳥是不是都倒了,AS基礎(chǔ)教程竟然開始講OOP了,呵呵,沒關(guān)系啊,上面的教程一直都這么淺,以后也深不了
相關(guān)文章
AS3.0實(shí)例學(xué)習(xí) 熟悉xml的運(yùn)用
AS3.0實(shí)例學(xué)習(xí) 熟悉xml的運(yùn)用...2007-12-12做了個(gè)flash對(duì)mc移動(dòng)的控制,代碼很簡(jiǎn)單:)
做了個(gè)flash對(duì)mc移動(dòng)的控制,代碼很簡(jiǎn)單:)...2007-01-01SWF自適應(yīng)布局技巧 (Rapid Flash Development)快速Flash開發(fā)
當(dāng)我們開發(fā)全站式Flash應(yīng)用時(shí),希望呈現(xiàn)一個(gè)鋪滿瀏覽器屏幕的Flash.2008-12-12