第十章:第三個版本的選擇題
首先,此版本沿用了上一版本的函數answer和gradeUser 在這一版本中,用戶的答案與正確答案將使用數組來存放
看看我們的新代碼: 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 // 上一版本中,用戶答案使用了兩個變量來存放,但是試想如果是10題、100題呢?使用數組將更容易管理,也更容易處理 var userAnswers = new Array(); // Array containing user's guesses 這是定義數組的語句,但是還未輸入數據 var correctAnswers = [3, 2]; // Array containing each correct answer 這一句既定義數組,同時輸入數據,因為正確答案是已知的
// *** Function to register the user's answers function answer (choice) { // Tack the user's answer onto our array 將數據PUSH進數組,因為是順序答題,所以用方法PUSH userAnswers.push(choice); // Do a little navigation, baby // 如果答案數超過題目總數,自然就跳到quizEnd幀了 // 注意在本例中,已經不用上例的answer.currentAnswer而是使用userAnswers.length來控制問題是否結束 // 我們甚至可以用correctAnswers.length來代替numQuestions,記錄正確答案數組的長度,不就是題目總數嗎? 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. // 開始改題,這里就不用再用上個版本的eval啦,那個東東實在是難懂兼難用,這個版本相對就很清晰明快 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; }
電影的其他部分不用改動(這就是使用FUNTION的好處啦,升級多快~)
OK,進入下一章之前想想目前版本的弱點 * 題目,每次修改題目都要進入FLASH的場景修改,麻煩 * 按鈕,每題就要做三個按鈕
這都是麻煩的地方,我們要更精益求精地修改,讓我們的多選題,輕易地從兩題變成10題、100題!接下來我們要做的是: * 進一步改進我們存放數據的結構 * 讓我們可以動態(tài)地生成每一道題目,只需輸入數據,而不需要在FLASH里面操作就可以自動生成
所以——我們需要面向對象編程!(object oriented programming)
chocobo:嘻嘻,眾菜鳥是不是都倒了,AS基礎教程竟然開始講OOP了,呵呵,沒關系啊,上面的教程一直都這么淺,以后也深不了
出處:藍色理想
責任編輯:qhwa
上一頁 數組(arrays) 下一頁 一點面向對象編程知識
◎進入論壇Flash專欄版塊參加討論
|