无法移动以前创建的孩子

时间:2014-10-04 23:44:43

标签: flash actionscript

我每次单击时都使用action-script 3创建一个名为bullet的子项。当我第一次点击时它可以工作,我可以通过向子弹x速度加1来移动它,但是当我再次点击添加一个新的子项时,我添加的新项目不会移动。谢谢你的帮助!

3 个答案:

答案 0 :(得分:1)

我找到了答案!你需要将它添加到一个数组然后使用' arrayname' [b] .x + = 1来移动它!

答案 1 :(得分:0)

您在创建新对象并将其分配给旧参考时失去了对象的引用。您必须像在数组中一样保留数组中的引用,或者更好的方法是为您创建封装其行为的新类。然后你只需要创建你的类的对象并自行移动。

答案 2 :(得分:0)

你要做的是这样的事情:

我走进一个有两个人的房间。一个名叫约翰史密斯,一个名叫约翰罗宾逊。你给我一块蛋糕,说:“请你把它交给约翰?”,然后马上离开。我不知道你的意思是约翰,所以我只是把它交给约翰史密斯。

当您尝试将这些项目符号命名为bullet时,AS3只会记住其中一个名称为“bullet”的项目符号。名称只能引用一个对象。相反,让我们创建一个包含所有项目符号的数组,每当我们需要对所有项目符号执行某些操作时,我们只需访问数组中的每个项目!

var bulletArray:Array = []

function updateBullets()  {
    //repeat an action for every item in bulletArray
    for (var i=0;i<bulletArray.length;i++) {
        var targetBullet = bulletArray[i]
        targetBullet.x += 1
        //anything else we want to do goes here
    }
}

现在,无论何时创建新项目符号,还要将其添加到bulletArray