var particleNum:uint=10;;
var particleClass:Class=Water;//water是一个类
var particles:Array=[];
var container:Sprite=new Sprite();
var timer:Timer=new Timer(400);
function updateParticles(evt:Event):void
{
for(var i=0;i<particles.length;i++)
{
var particle=particles[i];
particle.update();//water类的方法,变透明
if(particle.alpha<=0)//当particle透明时候,就移除掉,但是错误
{
container.removeChild(particle);
}
}
}
function makeParticles(evt:Event):void
{
if(particles.length<particleNum)
{
var particle:*=new particleClass();
particles.push(particle);
container.addChild(particle);
particle.growX=1.04;
particle.growY=1.04;
particle.fade=.96;
}
}
addChild(container);
timer.start();
timer.addEventListener(TimerEvent.TIMER,makeParticles);
addEventListener(Event.ENTER_FRAME,updateParticles);
运行时候出现错误:
ArgumentError: Error #2025: 提供的 DisplayObject 必须是调用者的子级。
at flash.display:

isplayObjectContainer/removeChild()
at waterParticle_fla::MainTimeline/updateParticles()
这个错误是不是说container.removeChild(particle)这里出错?在生成particle的时候就已经container.addChild了,为什么会有这个错误?
谢谢各位达人