我正在使用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
任何帮助将不胜感激
答案 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];
...
}