2017-05-10 60 views
1

目前,我創建了一個新的ActionScript類,名爲Quiz.as聚集的新的。至於類問答題總分(目前2個錯誤)

// package 
// { 
// public class Quiz 
// { 
     public var knowledgePoints:int = 10; 
     public var allQuestions:Array = new Array; 
     public var questionCorrect:Boolean = false; 

     public function getTotalScore():int 
     { 
      // var totalScore:int = 0; 

       var totalScore = 0; 

      for (var i = 0; i < allQuestions.length; i++) 
      { 
       totalScore += allQuestions[i].getCalculatedScore(); 

       if (currentModule.allQuestions[i].parent.questionCorrect) 
       { 
        knowledgePoints++; 
       } 
       else 
       { 
        knowledgePoints--; 
       } 
      } 
      debugLog("Total score: " + totalScore); 
      debugLog(knowledgePoints); 

      return totalScore; 
     } 
// } 
//} 

該解決方案從我原來的問題,在得到的:keeping track of a series of simple multiple choice web form answers

但是現在有了上面的代碼,我在Flash控制檯中遇到了錯誤。我最近嘗試解決這些錯誤是在上面的註釋區域。


錯誤1.屬性類以外使用。 所以我評論了第一條線,但錯誤仍然指向首先暴露的任何線。

錯誤2.'Int'無法加載。

感謝您的任何建議,

+0

您是否擁有此代碼在時間軸上? – BadFeelingAboutThis

+0

你使用AS2嗎? (你已經標記爲這樣)。您共享的代碼是AS3,因此編譯爲AS2時會產生很多錯誤。 – BadFeelingAboutThis

+0

是的,我試圖爲上述找到一個as2解決方案。 –

回答

1

你的問題很可能使用AnimateCC /的FlashPro在時間軸上上述代碼的結果。

類文件(及其相應的屬性,如public/private)需要位於它們自己的actionscript(.as)文件中。

要創建AnimateCC類文件,去文件 - >新並選擇的ActionScript 3.0類。給它的類名稱Quiz(所以它匹配你在代碼中聲明的內容)

用您的問題中的類文件代碼替換默認代碼(您還需要恢復那些註釋掉的行)

在同一個目錄下的文件保存爲你的根

要使用新的類文件中的時間表,你會做這樣的事情:

var quiz:Quiz = new Quiz(); //make an instance of your custom class 

quiz.allQuestions.push(whateverAQuestionIs); //add a question to your array 

trace(quiz.getTotalScore()); //trace out the total score 

如果要在時間軸中使用該代碼並放棄使用類文件,則只需刪除4 public關鍵字(除了已註釋的行之外)

+0

感謝您的輸入 –

+0

嘿,你怎麼使用'trace(quiz.getTotalScore()); //追蹤總分'?定義在哪裏? –

+0

'trace'是FlashPlayer內置的頂級函數,因此可以在代碼中的任意位置使用 – BadFeelingAboutThis