我正在使用 Flash 为 iPhone 开发游戏,由于内存至关重要,我想清理不需要的 displayObjects。我需要删除的所有对象都是使用 splice() 从某个数组到另一个数组的 MovieClip。这是代码。
public function onTick(e:TimerEvent):void
{ randomNr = Math.random();
if ( randomNr > 0.9 )
{ var newFriend:Friend = new Friend(randomX, -15 ); newFriend.cacheAsBitmap = true; 军队.push(新朋友);addChild(新朋友); }
for (var i:int = 0; i < Army.length;i++) { Army[i].y += 3;
if (avatar.hitTestObject(army[i]))
{
mood = false;
TweenLite.to(army[i], .3, {x:308, y:458, scaleX:.7, scaleY:.7, ease:Expo.easeOut, onComplete:fadeFace, onCompleteParams:[army[i],mood]});
deleted.push(army.splice(i,1));
}
} }
private function cleanUp(e:MouseEvent):void
{ var totalDel:int = deleted.length; for(var i:int = 0; i < totalDel ;i++) { removeChild(deleted[i]); } trace(totalDel + "删除删除"); }
我的问题是尝试使用 CleanUp 功能时出现错误。我可以跟踪数组中的所有对象,它们显示为 [object Friend],但是当尝试从 displayList 中删除时,我收到此错误:错误 #1034:类型强制失败:无法将 []@2c11309 转换为 flash.display。显示对象。
可能是我使用的错误方法!?需要一些指导请:)