2014-10-04 3 views
0

Я использовал action-script 3 для создания дочернего элемента с именем bullet каждый раз, когда я нажимаю. Он работает, когда я первый клик, и я могу переместить его, добавив 1 к скорости пули x, но затем, когда я снова нажимаю, чтобы добавить нового ребенка, новый, который я добавил, не перемещается. Спасибо за любую помощь!Cant move ранее созданный ребенок

ответ

1

Я нашел ответ! Вам нужно добавить его в массив, а затем использовать 'arrayname' [b] .x + = 1, чтобы переместить его!

0

Вы потеряли ссылку на объект при создании нового объекта и подтвердили его в своей старой ссылке. Вы должны хранить ссылку в массиве, как и вы, или лучший способ создать новый класс для вас, инкапсулируя его поведение. Затем вы просто создаете объект своего класса, и он движется сам.

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!

Смежные вопросы