Вы не можете просто сослаться на 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
- это видеоклипы на главной сцене )