如何将一个对象池用于多个对象

rtpenick

这是我在网上找到并使用的一个示例(我是对象池的新手)。它适用于单个对象类型,但不允许我创建不同对象的池

包{import starling.display.DisplayObject;

public class SpritePool
{
    private var pool:Array;
    private var counter:int;

    public function SpritePool(type:Class, len:int)
    {
        pool = new Array();
        counter = len;

        var i:int = len;
        while(--i > -1)
            pool[i] = new type();
    }

    public function getSprite():DisplayObject
    {
        if(counter > 0)
            return pool[--counter];
        else
            throw new Error("You exhausted the pool!");
    }

    public function returnSprite(s:DisplayObject):void
    {
        pool[counter++] = s;
    }
}

}

平底锅

这是一个没有对象计数限制的对象池示例。

import flash.utils.Dictionary;
import flash.utils.getDefinitionByName;
import flash.utils.getQualifiedClassName;

public class ObjectPool {

    public function ObjectPool()
    {
        throw new Error("don't create instance");
    }

    private static const objectDict:Dictionary = new Dictionary();

    public static function getObject(c:Class):Object{

        //if you want add a object count limit,try to check the count here
        if (objectDict[c] == null) {
            objectDict[c] = [];
        }

        var t:Array = objectDict[c] as Array;

        if (t.length > 0) {
            return t.shift();
        } else {
            return new c();
        }
    }

    public static function putObject(obj:Object):void {

        var c:Class = Class(getDefinitionByName(getQualifiedClassName(obj)));

        if (objectDict[c] == null) {
            return;
        }

        var t:Array = objectDict[c] as Array;

        if (t && t.indexOf(obj) == -1) {
            t.push(obj);
        }
     }

}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将一个对象与数组拆分为多个对象

来自分类Dev

如何将多个对象合并到jQuery / javascript中的一个对象

来自分类Dev

如何将多个对象合并到jQuery / javascript中的一个对象

来自分类Dev

如何将多个对象合并到jQuery / javascript中的一个对象

来自分类Dev

Python OOP:如何将多个类对象链接到一个对象

来自分类Dev

如何将多个socketId与一个对象的一个昵称相关联,以用于socket.io和express.js?

来自分类Dev

如何将一个函数用于多个元素?

来自分类Dev

如何将多个文件对象序列化为一个文件?

来自分类Dev

标记jq如何将多个路径合并为一个对象

来自分类Dev

如何将多个对象添加到同一个索引中

来自分类Dev

如何将多个对象分配给一个数组?

来自分类Dev

如何将一个对象添加到另一个对象

来自分类Dev

如何将一个对象的元素推入另一个对象?

来自分类Dev

如何将一个对象的吸气剂与另一个对象绑定?

来自分类Dev

如何将一个Javascript对象推入另一个Javascript对象?

来自分类Dev

如何将一个对象投射到另一个对象中?

来自分类Dev

如何将一个对象转换为一个对象数组?

来自分类Dev

如何将搜索结果传递给会话。结果可能是一个对象或多个对象

来自分类Dev

Unity-如何将动画从一个游戏对象应用于另一个装备的游戏对象?

来自分类Dev

如何将多个构面结果合并到具有一个属性的对象列表中

来自分类Dev

ThreeJS:如何将一个对象的旋转克隆到另一个

来自分类Dev

在Coffeescript中,如何将一个对象的数组按一个属性分组?

来自分类Dev

Javascript将多个对象推入一个空对象

来自分类Dev

多对一。如何将一个对象与另一个对象相关联?

来自分类Dev

如何将模拟对象注入到另一个已经模拟的对象中

来自分类Dev

如何将matplotlib包含的对象限制为一个对象?

来自分类Dev

如何将一个对象及其子对象声明为常量?

来自分类Dev

Javascript:如何将嵌套对象重构为另一个对象?

来自分类Dev

如何将Javascript对象的内容复制到一个空对象?

Related 相关文章

  1. 1

    如何将一个对象与数组拆分为多个对象

  2. 2

    如何将多个对象合并到jQuery / javascript中的一个对象

  3. 3

    如何将多个对象合并到jQuery / javascript中的一个对象

  4. 4

    如何将多个对象合并到jQuery / javascript中的一个对象

  5. 5

    Python OOP:如何将多个类对象链接到一个对象

  6. 6

    如何将多个socketId与一个对象的一个昵称相关联,以用于socket.io和express.js?

  7. 7

    如何将一个函数用于多个元素?

  8. 8

    如何将多个文件对象序列化为一个文件?

  9. 9

    标记jq如何将多个路径合并为一个对象

  10. 10

    如何将多个对象添加到同一个索引中

  11. 11

    如何将多个对象分配给一个数组?

  12. 12

    如何将一个对象添加到另一个对象

  13. 13

    如何将一个对象的元素推入另一个对象?

  14. 14

    如何将一个对象的吸气剂与另一个对象绑定?

  15. 15

    如何将一个Javascript对象推入另一个Javascript对象?

  16. 16

    如何将一个对象投射到另一个对象中?

  17. 17

    如何将一个对象转换为一个对象数组?

  18. 18

    如何将搜索结果传递给会话。结果可能是一个对象或多个对象

  19. 19

    Unity-如何将动画从一个游戏对象应用于另一个装备的游戏对象?

  20. 20

    如何将多个构面结果合并到具有一个属性的对象列表中

  21. 21

    ThreeJS:如何将一个对象的旋转克隆到另一个

  22. 22

    在Coffeescript中,如何将一个对象的数组按一个属性分组?

  23. 23

    Javascript将多个对象推入一个空对象

  24. 24

    多对一。如何将一个对象与另一个对象相关联?

  25. 25

    如何将模拟对象注入到另一个已经模拟的对象中

  26. 26

    如何将matplotlib包含的对象限制为一个对象?

  27. 27

    如何将一个对象及其子对象声明为常量?

  28. 28

    Javascript:如何将嵌套对象重构为另一个对象?

  29. 29

    如何将Javascript对象的内容复制到一个空对象?

热门标签

归档