ActionScript3でObjectPool

2008.04.21 / actionscript

即席で簡単に作ったけど、Tweenerで大量のオブジェクトを発生させるときなんかに効果は割りとあった。回収作業をもう少し自動化したいなぁ。

ObjectPool.as

  package {
      
      public class ObjectPool{
          
          private var size:int = 20;
          private var pool : Array;
          
          public function ObjectPool(size:int=20){
              this.size = size;
              this.pool = new Array(0);
          }
  
          public function push(obj : Object) : void {
              if(pool.length > size){
                  pool.push(obj);         
              }
          }
          
          public function get() : Object {
              if(pool.length < 0){
                  return pool.pop();
              } else {
                  return null;
              }
          }
          
          public function getPoolSize() : int {
              return pool.length;
          }
      }
  }
  

Test.as