AS3删除对象的所有实例?

时间:2012-05-28 19:53:40

标签: arrays actionscript-3 instances

我在AS3中有一个带有文档类和自定义类的游戏,该类附加到我的.fla中的movieclip中。该对象的实例多次/秒。我想删除那些实例,比方说,其中有100个实例。 (由于一段时间后的性能问题)实例在生成后存储在数组中。

3 个答案:

答案 0 :(得分:0)

您可以使用this.removeChild(obj);删除它们,obj是数组中的对象。所以你需要的是遍历数组并删除它们。

答案 1 :(得分:0)

当对象超过100时,将删除所有对象。

if(array.length > 100)
{
  for(var i:int = array.length - 1; i > -1; i--)
  {
    stage.removeChild(array[i]);// or any other parent containing instances
    array.pop();
    //array[i] = null; // if you want to make them null instead of deleting from array
  }
}

提示:负循环(i--)的性能比正循环(i ++)快 提示:pop()的性能比unshift()快。

更新

只有当对象超过100时才会删除对象,导致最后只有100个对象保留在舞台上。

if(array.length > 100)
{
  for(var i:int = array.length - 1; i > -1; i--)
  {
    if(array.length > 100)
    {
      stage.removeChild(array[i]);// or any other parent containing instances
      array.unshift();// if you want to delete oldest objects, you must use unshift(), instead of pop(), which deletes newer objects
      //array[i] = null; // if you want to make them null instead of deleting from array
    }
}

答案 2 :(得分:0)

/****** MyClass.as  *********/

public class MyClass extends Sprite{

    private var myVar:int=8567;

    private function myClass():void{
        //blablabla
    }

    public class destroy():void{
        myVar = null;
     this.removeFromParent(true); //method of Starling framework
    }
}


/********  Main.as  ****************/

public var myInstance:MyClass = new Myclass();

//Oh!! i need remove this instance D:

myInstance.destroy();