从其他类访问变量返回null

时间:2011-05-10 08:05:08

标签: arrays actionscript-3 null return

我做了一个单独的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

2 个答案:

答案 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是否已加载并解析?

相关问题