0

我正在使用 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
任何帮助将不胜感激

4

2 回答 2

1

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

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

您可能会考虑拥有一个 s 数组,而user不是明确列出. 如果您坚持当前的结构,请考虑将它们重命名为从零开始的名称以匹配您的 XMLList。user1user6

于 2013-01-21T15:50:43.290 回答
0

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

您的代码应如下所示:

if (usercount == 2) {
    user1.username_txt.text = usernames[0];
    user2.username_txt.text = usernames[1];
    ...
}
于 2013-01-21T15:53:48.343 回答