AS3 - 简单对象池示例?

时间:2011-12-24 05:14:56

标签: actionscript-3 object actionscript pool

提前感谢这个出色的帮助来源。

我一直在阅读很多关于对象池的好处。在线发现了一些“教程”,都高于我的技能水平。任何人都可以请给我一个非常简单的对象池示例。

我的游戏所做的是在用户按下鼠标时创建Ball对象,在用户抬起鼠标时停止。

我需要将这些Ball对象存储在数组(或Vector)中,然后使用其他对象对其进行测试,并在击中另一个对象时将其从舞台中删除。我想创建一个20个这样的池,创建一次,然后回收它们。

我该怎么做?如果你能以一种愚蠢的方式解释这一点,我将非常感激。

再次感谢。

--------- Ball类代码---------

ActionScript代码:

import flash.events.TimerEvent;
import flash.geom.Point;

public class Ball extends Particle {

    public function Ball ($position:Point, $vector:Point, $gravity:int, $friction:Number) {
        super($position, $vector, $gravity, $friction);

        //Set initial position
        x = position.x;
        y = position.y;

        updateTimer.addEventListener(TimerEvent.TIMER, setPosition, false, 0, true);

    }

    public function setPosition (e:TimerEvent):void {

        x = position.x;
        y = position.y;

    }
}

------------文档类代码---------------

ActionScript代码:

function throwBall(e:TimerEvent):void {

        var tBall:Ball=new Ball(new Point(mouseX,mouseY),new Point(Math.random()+Math.random()*5+Math.random()*8),gravity,friction);
        tBall.gotoAndStop(BallColor);
        addChild(tBall);
        ballArray.push(tBall);

    }

2 个答案:

答案 0 :(得分:1)

这是一篇关于“补间和对象池”的有趣文章:

http://blog.joa-ebert.com/2008/05/07/tweening-and-object-pools/

答案 1 :(得分:0)