我目前创建了一个名为Quiz.as
// 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 :(得分:1)
您的问题可能是在AnimateCC / FlashPro的时间轴上使用上述代码的结果。
类文件(及其相应的属性,如public / private)需要位于自己的actionscript(.as)文件中。
要在AnimateCC中创建类文件,请转到 file - &gt;新并选择 ActionScript 3.0类。给它类名Quiz
(所以它与你在代码中声明的匹配)
用您问题中的类文件代码替换默认代码(您还需要恢复那些已注释掉的行)
将文件保存在.fla
所在的目录中要在时间轴中使用新的类文件,您可以执行以下操作:
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
个关键字(除了您已经注释掉的行)