Flash AS3:关于儿童和参考儿童的快速问题
编辑:Cameron请求了完整的违规功能:Flash AS3:关于儿童和参考儿童的快速问题,flash,actionscript-3,actionscript,children,Flash,Actionscript 3,Actionscript,Children,编辑:Cameron请求了完整的违规功能: function picSwitch(p=null) { if (picShown == true) { picx = 3072; picy = 2304; picTweens.removeChild(pic); picShown = false; } else { var pic:image = new image(); pic.smoothing = true; pic.width = 750; pic.
function picSwitch(p=null)
{
if (picShown == true)
{
picx = 3072;
picy = 2304;
picTweens.removeChild(pic);
picShown = false;
}
else
{
var pic:image = new image();
pic.smoothing = true;
pic.width = 750;
pic.height = 560;
if (pic.scaleX < pic.scaleY)
{
pic.scaleY = pic.scaleX;
}
else
{
pic.scaleX = pic.scaleY;
}
picx = 1536 - (pic.width/2) + 64;
picy = 1152 - (pic.height/2) - 12;
picTweens.addChild(pic);
TweenLite.to(pic, 1, {x:picx, y:picy, rotation:4, ease:Quint.easeInOut});
picShown = true;
}
}
好极了,它给我创造了一个电影剪辑
现在在同一函数中的if语句中
picTweens.removeChild(pic);
但当那个if语句触发时,(我已经把我的pic加载到它应该在的地方)
它告诉我:
TypeError: Error #2007: Parameter child must be non-null.
at flash.display::DisplayObjectContainer/removeChild()
我的语法错了吗?如果没有,那么我应该检查什么呢?很明显。当您要删除子对象时,pic变量根本不可用。您在“else”部分声明了它,它是在某个函数中声明的(我猜是在按下按钮、输入帧或任何其他事件时调用的)。因此,当再次调用函数时,这一次picshow设置为true时,pic变量不可用,并且为null
或者您确实在函数外部声明了变量,但是在函数范围内使用“var”时,它被本地覆盖
So-确保在函数外部声明pic变量,以便以后可以访问句柄:
var pic:image;
function picSwitch(...){
// etc.
}
另外-如果有,不要在函数中重新声明pic变量,只使用一个简单的赋值(pic=blah;)。你能完整地发布有问题的函数吗?用完整的有问题的函数编辑。Augh!>\uuuu<我就知道是那样的蠢事。非常抱歉这样浪费空间。实际上,这是我的var pic的范围:image=newimage();掌纹
var pic:image;
function picSwitch(...){
// etc.
}