бросая оружие - PullRequest
       10

бросая оружие

0 голосов
/ 24 августа 2011

У меня на сцене есть мувиклип, который называется dude, и внутри мувиклипа есть кадр с мувиклипом axeframe с еще одним мувиклипом ax.то, что я хочу сделать, это сделать хит-тест в топоре а, чтобы, когда топор (только топор, а не персонаж) поразил врага (названного врага) на этапе , он исчезнет,это мой код:

addEventListener(Event.ENTER_FRAME, axehit);

function axehit(event:Event):void {

if (axe.hitTestObject(enemy)) {
 removeChild(enemy.stage)
}
}

это дает мне эту ошибку

1120: доступ к неопределенному свойству врага.if (axe.hitTestObject (враг)) {

1120: Доступ к неопределенному свойству врагу.

1 Ответ

0 голосов
/ 24 августа 2011

Вы не можете просто сослаться на enemy без каких-либо дополнительных указаний (предполагается, что враг является дочерним элементом видеоклипа, в котором вы поместили код. Попробуйте вместо stage.enemy и this, или this.parent вместо axe. (Предполагается, что враг - это видеоклип на stage, а код, который вы разместили, находится внутри axe) Кроме того, вы должны изменить removeChild(enemy.stage) на stage.removeChild(stage.enemy), и вам, вероятно, следует рассмотреть переменные области.


Редактировать: Нет. Извините за это, просто сделайте вид, что вы не читали это (Забыл, что вы не можете просто ссылаться на объекты через Стадию)

Если честно, я тоже так начал, но это не правильный подход к флэш-кодированию. Во-первых, вы должны попытаться сохранить весь свой код на основной временной шкале, а не в отдельных фрагментах ролика, чтобы он лучше работал вместе. Как только вы это освоите, вы должны также проверить объектно-ориентированное программирование. Это действительно увеличивает рабочий процесс и позволяет вам создавать более масштабные и сложные сценарии.

больше правок:

Таким образом, чтобы поместить это в основную временную шкалу , потребуется что-то вроде:

stage.addEventListener(Event.ENTER_FRAME, loop);

function loop(event:Event):void {
    if (axe.hitTestObject(enemy)) {
        this.removeChild(enemy)
    }
}

Который чище и удобнее для чтения (и его легче найти). ( Предположим, axe и enemy - это видеоклипы на главной сцене )

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...