使用新的 .as class 收集测验问题的总分(目前有 2 个错误)
gather total score of quiz questions with new .as class (2 errors currently)
我目前创建了一个新的 actionScript class,名为 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;
}
// }
//}
此解决方案源自我的原始问题:
但是现在使用上面的代码我在 Flash 控制台中收到错误。我最近修复这些错误的尝试是使用上面注释掉的区域。
错误 1。 在 class 之外使用了属性。
所以我注释掉了前几行,但错误继续指向首先暴露的任何行。
错误 2。 'Int' 无法加载。
感谢任何建议,
您的问题可能是在 AnimateCC/FlashPro.
中的时间线上使用上述代码的结果
Class 文件(及其相应的属性,如 public/private)需要在它们自己的 actionscript (.as) 文件中。
要在 AnimateCC 中创建 class 文件,请转到 文件 -> 新建 并选择 ActionScript 3.0 Class.给它 class Quiz
的名称(这样它就与您在代码中声明的内容相匹配)
用您问题中的 class 文件代码替换默认代码(您还需要恢复那些注释掉的行)
将文件保存在与 .fla 相同的目录中
要在时间轴中使用新的 class 文件,您需要执行以下操作:
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
如果您想在时间轴中使用该代码并放弃使用 class 文件,您只需删除 4 个 public
关键字(除了您已经已经注释掉了)
我目前创建了一个新的 actionScript class,名为 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;
}
// }
//}
此解决方案源自我的原始问题:
但是现在使用上面的代码我在 Flash 控制台中收到错误。我最近修复这些错误的尝试是使用上面注释掉的区域。
错误 1。 在 class 之外使用了属性。 所以我注释掉了前几行,但错误继续指向首先暴露的任何行。
错误 2。 'Int' 无法加载。
感谢任何建议,
您的问题可能是在 AnimateCC/FlashPro.
中的时间线上使用上述代码的结果Class 文件(及其相应的属性,如 public/private)需要在它们自己的 actionscript (.as) 文件中。
要在 AnimateCC 中创建 class 文件,请转到 文件 -> 新建 并选择 ActionScript 3.0 Class.给它 class Quiz
的名称(这样它就与您在代码中声明的内容相匹配)
用您问题中的 class 文件代码替换默认代码(您还需要恢复那些注释掉的行)
将文件保存在与 .fla 相同的目录中
要在时间轴中使用新的 class 文件,您需要执行以下操作:
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
如果您想在时间轴中使用该代码并放弃使用 class 文件,您只需删除 4 个 public
关键字(除了您已经已经注释掉了)