package { import __AS3__.vec.Vector; public class GrainPool { private var _grains:Vector.<GrainDescription>; public function GrainPool() { _grains = new Vector.<GrainDescription>(); for (var i:int=0; i<50; ++i) { _grains.push(new GrainDescription()); } } public function getGrain():GrainDescription { if (_grains.length > 0) { return _grains.pop(); } else { return new GrainDescription(); } } public function returnGrain(g:GrainDescription):void { _grains.push(g); } } }