0

我的设置的想法是我在舞台上有一个输入文本字段和三个单独的按钮。当您在文本字段中键入内容并按下输入按钮时,字段内的文本将添加到数组中。

当您按下显示按钮时,数组的内容会显示在屏幕上(数组的每个值都显示在最后一个值的下方)。

最后一个按钮应该删除数组上的所有当前值,并清除屏幕上所有显示的值。但是我无法让我的代码按预期工作,因为我收到了,

TypeError: Error #1009: Cannot access a property or method of a null object reference.

使用此代码块:

import flash.text.TextField;
import flash.events.MouseEvent;

var myArray:Array = new Array (""); 
var tf:TF;

btnInput.addEventListener(MouseEvent.CLICK, txtInput);

function txtInput(event:MouseEvent):void
{myArray.push(txtInput.text);}

btnDisplay.addEventListener(MouseEvent.CLICK, txtDisplay);

function txtDisplay(event:MouseEvent):void
{for (var i:int = 0; i < myArray.length; i++)
{var tf:TF = new TF();
tf.txt.text = myArray[i];
tf.y = 280 + (i * 25);
tf.x = 265; 
addChild(tf);
tf.name="test";}
}

btnClear.addEventListener (MouseEvent.CLICK, txtClear);

function txtClear(event:Event){
myArray.splice(1);
if (tf.numChildren != 0){
removeChild(getChildByName("test"));}
}

或者,当我添加

var tf:TF = new TF;

它只删除屏幕上显示的一个值。我还可以补充一点,“TF”是库中的一个影片剪辑,其中包含一个实例名称为 txt 的动态文本字段。问题仅出在最后一个按钮上,还是我也应该更改其他内容?我不知道如何按照我的意愿进行这项工作。我对编码很陌生,因此非常感谢任何提示或帮助。提前致谢!

4

1 回答 1

0

在您的情况下if(tf.numChildren != 0),该tf对象是null因为您从未创建过它。这就是您收到#1009错误的原因。

另一方面,为了删除所有项目,您应该将 替换if (tf.numChildren != 0)while (tf.numChildren != 0)

于 2013-04-09T08:02:55.607 回答