TypeError:错误#2007:as3中的参数文本必须为非null错误

时间:2013-01-21 15:44:41

标签: actionscript-3 flash

我正在使用Flash AS3制作GUI应用程序,我收到此错误:

Attemping to launch and connect to Player using URL C:\B Services\Divatri\Appy\appy.swf
[SWF] C:\B Services\Divatri\Appy\appy.swf - 32351 bytes after decompression
TypeError: Error #2007: Parameter text must be non-null.
at flash.text::TextField/set text()
at appy_fla::MainTimeline/ParseUsers()[appy_fla.MainTimeline::frame101:44]
at appy_fla::MainTimeline/LoadXML()[appy_fla.MainTimeline::frame101:17]
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at flash.net::URLLoader/onComplete()
Cannot display source code at this location.
Debug session terminated.

这是我的AS3:http://pastebin.com/QBGamWkJ
任何帮助将不胜感激

2 个答案:

答案 0 :(得分:1)

AS3(以及大多数其他地方)中的数组和XMLLists是从零开始的。所以你想要:

if (usercount == 1)
{
    user1.username_txt.text = usernames[0]; // not usernames[1]
    ...

您可以考虑使用user个数组,而不是通过user1明确列出user6。如果您坚持使用当前结构,请考虑将它们重命名为从零开始的名称以匹配您的XMLList。

答案 1 :(得分:0)

数组为零(0)索引。因此,阵列中的第一个用户实际上是0而不是1。该错误告诉您您尝试访问的项目为空,因为长度为usernames[2]的数组中不存在2

您的代码应如下所示:

if (usercount == 2) {
    user1.username_txt.text = usernames[0];
    user2.username_txt.text = usernames[1];
    ...
}