欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

AS基礎教程整理第7/13頁

 更新時間:2007年03月22日 00:00:00   作者:  

第八章 第二個版本選擇題的制作
讀到這你發(fā)現(xiàn)什么,我是發(fā)現(xiàn)了,MOOCK不是在教AS,他簡直是在上編程課。

在第一個版本的制作里你發(fā)現(xiàn)了什么缺點?是的,輸入了很多次AS,很麻煩。
我們要做的是用函數(shù)來集中我們的代碼,只有集中了才好修改,越復雜的程序越是如此(想象一下在很多個MC之間查代碼,真是頭痛,當然是集中一塊好)
這個多選題,我們就歸結成兩個函數(shù)吧answer和gradeUser

代碼(可以直接看源程序,在上面地址那個ZIP里面的quiz-version2.fla):
大部分的代碼都被集中到第一幀了,千萬不要被一大堆代碼嚇著了,代碼這么長,只是為了讓閱讀者看得更清楚而已。(其實越短的代碼才越可怕呢,呵呵)
// Stop the movie at the first question
stop ();

// Initialize main timeline variables 定義變量
var displayTotal;        // Textfield for displaying user's score
var numQuestions = 2;    // Number of quiz questions
var q1answer;            // User's answer for question1
var q2answer;            // User's answer for question2
var totalCorrect = 0;    // Number of questions answered correctly 以上和例一一樣
var correctAnswer1 = 3;  // The correct choice for question 1 第一題的正確答案
var correctAnswer2 = 2;  // The correct choice for question 2 第二題的正確答案

// Function to register user's answers 這個函數(shù)的功能是提交答題者的答案
function answer (choice) {
  answer.currentAnswer++; 
//現(xiàn)在answer.currentAnswer是1,正在提交的是第一題,下一次answer.currentAnswer就變成2,代表提交的是第二題
  set ("q" + answer.currentAnswer + "answer", choice);  
// 不復雜不復雜,"q" + answer.currentAnswer + "answer"第一題的時候就是q1answer,第二題是q2answer,把參數(shù)choice傳過來的值放到兩個變量里面而已
  if (answer.currentAnswer == numQuestions) {   
// 判斷是不是兩題都答完了,是就轉到問題結束幀
    gotoAndStop ("quizEnd");
  } else {
    gotoAndStop ("q" + (answer.currentAnswer + 1));
  }
}

// Function to tally user's score 這個函數(shù)是改題的
function gradeUser() {
  // Count how many questions user answered correctly 將兩個答案和正確答案比較,對就totalCorrect加一
  //此處用了一個for循環(huán),大家如有疑問的,可以查AS字典,在帝國就有中文版
  for (i = 1; i <= numQuestions; i++) {
    // 下面用的eval有必要說一下,它的作用是將字符串和變量組成一個新的變量名,是個很方便的功能
    if (eval("q" + i + "answer") == eval("correctAnswer" + i)) {
      totalCorrect++;
    }
  }

  // Show user's score in an on-screen text field 將答案顯示出來,與第一個例子同
  displayTotal = totalCorrect;



好了,第一幀的函數(shù)寫好了,之后每個答案的選擇按鈕就簡單了
例如第一題的選項一,就寫:
on (release) {
  answer(1);

第二題的寫法同上(如果你的選擇題有很多道,做法都是一樣的,只要復制第一題,然后把題目改了就行)
最后在quizEnd幀里面調用改題的函數(shù)gradeUser();

分析第二個例子是代碼,你會發(fā)現(xiàn)比第一個例子精簡了很多。

而集中在同一幀的代碼,將:
* 更容易修改
* 更容易升級
* 更少的出錯機會
* 更容易查錯
* 更精簡(更少的字節(jié)數(shù))

相關文章

最新評論