[Fault] exception, information=TypeError: Error #2007: Parameter text must be non-null.
大家好,我在重启程序时遇到此错误。
在主课程中我有这些变量
//random
private var colourArray:Array = new Array("Red","Yellow","Green");
private var len:int = colourArray.length - 1;
private var rand:int;
private var randomItem:String;
private var myText:TextField;
然后我有一个只有胸部碰撞功能的循环
private function Collision():void
{
if (randomItem == ("Red"))
{
if (player.hitTestObject(red))
{
changeColor();
red.removeMe();
}
}
else
if (randomItem == ("Yellow"))
{
if (player.hitTestObject(yellow))
{
changeColor();
yellow.removeMe();
}
}
else
if (randomItem == ("Green"))
{
if (player.hitTestObject(green))
{
changeColor();
green.removeMe();
}
}
}
private function changeColor():void
{
var item:String = colourArray[rand];
colourArray[rand] = colourArray[len];
colourArray[len] = item;
len--;
randomItem = colourArray[rand];
myText.text = randomItem;
if (len < 0)
{
removeChild(player);
removeChild(myText);
colourArray.push("Red");
removeEventListener(Event.ENTER_FRAME, gameLoop)
addEventListener(Event.ENTER_FRAME, checkClicks)
gotoAndStop(1);
}
}
当我尝试重新启动程序时,它不喜欢;
randomItem = colourArray[rand];
出于某种原因。
我已经重新填充了数组,但我不明白。
谢谢。
如果您需要更多信息,请询问。
答案 0 :(得分:1)
在更改阵列之前,您必须将colourArray[rand]
存储在其他位置。你正在降低它的长度,然后你从数组中查询元素,所以如果你的rand
指向最后一个元素,它会被踢出数组并被NULL替换,然后你再次查询数组 - 程序说你好NULL,我恐慌。您已将该值存储在item
变量中,但不要将其用于某些奇怪的原因。修复方法是将randomItem = colourArray[rand];
替换为randomItem = item;