我做了一个单独的levelData类,可以灵活地添加关卡。我很满意,直到我的主管命令我将我的levelData转换为XML。我做了一个XML版本的levelData数据(问题,答案,正确答案......)。我使用了旧类并对其进行了转换,以便获取XML。
一切似乎都很好,我做了我的答案阵列的痕迹,它打印得很好......
但是当我尝试这个时,头痛开始了。
// This code appears in a different class with
// currentLvl:LevelData initialized in the constructor.
quizHolder.ansA.ansHud.text = currentLvl.choices[1];
quizHolder.ansB.ansHud.text = currentLvl.choices[2];
quizHolder.ansC.ansHud.text = currentLvl.choices[3];
quizHolder.ansD.ansHud.text = currentLvl.choices[4];
// BTW, I can't make a for loop to do the same function as above. So wierd.
我试图运行它。它回来了:
TypeError: Error #2007: Parameter text must be non-null.
at flash.text::TextField/set text()
at QuestionPane/setQuiz()
at QuestionPane/setQuestion()
at QuestionPane()
at LearningModule()
我哪里出错了?我尝试为它制作一个自定义的get函数,只是为了得到同样的错误。提前致谢。如果我需要发布更多的代码,我很乐意这样做=)
PasteBin中的LevelData类:http://pastebin.com/aTKC1sBC
答案 0 :(得分:0)
在没有看到更多代码的情况下很难诊断,但在使用之前是否正确初始化了选择Array?如果做不到这一点,我认为你需要发布更多代码。
另一个可能的问题是加载XML数据的延迟。确保在QuestionPane尝试访问它之前设置了您的数据。
答案 1 :(得分:0)
你什么时候打电话
quizHolder.ansA.ansHud.text = currentLvl.choices[1];
quizHolder.ansB.ansHud.text = currentLvl.choices[2];
quizHolder.ansC.ansHud.text = currentLvl.choices[3];
quizHolder.ansD.ansHud.text = currentLvl.choices[4];
这些?您加载XML并完成填充数组,这是正确的。但是,当您访问(填充TextFields)选项数组时,XML是否已加载并解析?