全称 mx.utils.ObjectPool
命名空间 mx.utils
ObjectPool
继承层次结构 ObjectPoolObject
源文件 ~\mx\scripts\utils\ObjectPool.js
提供对象池,有关对象池的概念请跳转至Jakarta Commons Pool

示例 1

以下是一个通过 ObjectPool 创建一个 Button 对象池的示例。
JavaScript 代码
//创建一个池大小为 10 的 {@link mx.controls.Button} 对象池。 var buttonObjectPool = mx.utils.ObjectPool(mx.controls.Button, 10);

构造函数

名称 说明
ObjectPool(p_createObjectHandler, [p_poolSize]) 构建 ObjectPool 类的新实例。

方法

名称 说明
getObject([p_context]) 总是返回一个可用的对象。如果当前池中已缓存了对象,则将其从池中取出并返回;如果当前池中没有可用的对象,则会自动调用 createObjectHandler 方法创建一个新对象,并将其返回。
getPooledObjects() 返回一个 Object[] 数组,表示包含池中所有缓存的对象。
passivateObject(p_object) 回收指定的对象。

字段

名称 说明
createObjectHandler 获取一个 Function 对象,表示创建新对象的方法。该字段由构造方法传入。该方法的原型为 function(p_objectPool, p_context),其中 p_objectPool 表示调用池对象本身,而 p_context 则表示由 getObject 方法带入的上下文对象。
poolSize 获取或设置池中可缓存的最大个数。

构造函数详细信息

ObjectPool(p_createObjectHandler, [p_poolSize]) 方法

构建 ObjectPool 类的新实例。

参数

  • p_createObjectHandler
    一个 Function 对象,指定创建新对象的方法。详见 createObjectHandler 方法。
  • p_poolSize
    可选的。默认值为“5”。指定对象池可缓存对象的最大个数。

方法详细信息

getObject([p_context]) 方法

总是返回一个可用的对象。如果当前池中已缓存了对象,则将其从池中取出并返回;如果当前池中没有可用的对象,则会自动调用 createObjectHandler 方法创建一个新对象,并将其返回。

参数

  • p_context
    可选的。需要带入 createObjectHandler 中的上下文对象。

getPooledObjects() 方法

返回一个 Object[] 数组,表示包含池中所有缓存的对象。

passivateObject(p_object) 方法

回收指定的对象。

参数

  • p_object
    需要被回收的对象。该对象的类型必须与池中对象一致,并且保证被回收后仍然可重复使用。

字段详细信息

createObjectHandler 字段

获取一个 Function 对象,表示创建新对象的方法。该字段由构造方法传入。该方法的原型为 function(p_objectPool, p_context),其中 p_objectPool 表示调用池对象本身,而 p_context 则表示由 getObject 方法带入的上下文对象。

poolSize 字段

获取或设置池中可缓存的最大个数。

默认值

5