我用Flash CS4做了一个小动画,AS3方面有点小问题

最主要的问题是不知道换帧的时候removeChild怎么用var mush:Mush;var mushes:Array = new Array();for (var j:int = 0; j<7; j++) { mush = new Mush(); mush.x=500-100*j; mush.y=50; mush.addEventListener(Event.ENTER_FRAME, moveMush); addChild(mush); mushes.push(mush);}function moveMush(e:Event):void { var obj:Object=e.target; if (world.hitTestPoint(obj.x-8,obj.y,true)||world.hitTestPoint(obj.x+8,obj.y,true)) { obj.x++; obj.x++; } else if (! world.hitTestPoint(obj.x-8,obj.y,true)&&! world.hitTestPoint(obj.x+8,obj.y,true)) { obj.y++; obj.y++; obj.y++; } if (obj.y>630) { obj.x=120; obj.y=50; } while ((world.hitTestPoint(obj.x-8, obj.y-1, true) || world.hitTestPoint(obj.x+8, obj.y-1, true))) { obj.y--; } if (obj.hitTestObject(dude)) { dude.gotoAndStop("duck"); gotoAndStop(5); }}这里面到后面换帧的时候那些飞着的小动画 就固定在画面上了重新开始的话 就重新addChild进来和原来add进来的Child一起工作有能力的哥哥姐姐帮帮忙哈在线等 可以给我回复后我把fla文件传过去 帮我看看也行
2026年09月22日 18:32
有1个网友回答
网友(1):

在重新开始的函数那里加个循环,循环里removeChild(mushes[j]),并且 mushes.shift();//这个是把数组第一个去掉。