AS3:类中的方法/函数只在一个类实例上调用?

时间:2013-05-24 10:49:46

标签: actionscript-3

所以我非常喜欢编程,所以请耐心等待。

我有一个Neighbor类。在另一个类中,我实例化了3个独立的Neighbor类实例,存储在一个数组中(collisionArray_Neighbour)。 Neighbor类中有一个函数(randomisePosition)。

问题是:randomisePosition()函数仅由一个Neighbor实例调用。即使我使用数组迭代实例,也要在每个实例上调用Neighbor update()函数。此更新函数调用randomisePosition()函数。

这可能是由于数组,好像我从数组中删除一个调用randomisePosition()的实例,通过与游戏中的实例冲突,另一个实例,但仍然只有一个数组,调用函数randomisePosition。

这是将实例添加到数组的代码:

public function populateNeighbourCollisionArray()
{
    for (var iN:int = 0; iN < enemyMaxAmount; iN++)
    {
        if (collisionArray_Neighbour.length < 3)
        {
            collisionArray_Neighbour.push(new Neighbour(this));
            level01.addChild(collisionArray_Neighbour[collisionArray_Neighbour.length - 1]);        
        }
    }
}

这将调用每个实例的更新功能:

for (var i = 0; i < collisionArray_Neighbour.length; i++)
{
    collisionArray_Neighbour[i].update();
}

Neighbor class中的更新函数:

public function update()
{
    if (animationComplete)
    {
        trace("randomise position...");
        randomisePosition();
        gotoAndPlay("startFading");
        //startTimer();
    }
}

randomisePosition函数,似乎只在一个Neighbor实例上调用:

private function randomisePosition()
{
    trace("position randomised");
    var randomX = Math.ceil(randomRange(0, 100));
    var randomY = Math.ceil(randomRange(50, 400));
    this.x = parentClassRef.player.x + randomX;
    this.y = randomY;               
}

0 个答案:

没有答案