Попробуйте что-то вроде этого:
public class Game extends MovieClip {
public var enemy:Enemy; //enemy can be a timeline instance
public var player:Player //can also be a timeline instance
public function Game() {
super();
//for this to work enemy must exist on frame one of the Game MC
//and stay around for the rest of the MC's lifespan
enemy.addEventListener(EnemyEvent.COLLISION, onEnemyCollision);
}
protected function onEnemyCollision(e:EnemyEvent):void {
e.player.lives--;
}
}
//the enemy!!!
public class Enemy extends Sprite {
//I actually don't understand why this is a function on enemy.
//I wouldn't have designed it this way.
//What is calling it?
public function collision(withPlayer:Player):void {
dispatchEvent(new EnemyEvent(EnemyEvent.COLLISION, withPlayer));
}
}
//the player
public class Player extends Sprite {
public var lives:int=10;
}
//the enemy event
public class EnemyEvent extends Event {
public static const COLLISION:String = 'Big badda boom.';//Fifth Element reference
public var player:Player;
public function EnemyEvent(type:String, player:Player) {
super(type, true, true);
this.player = player;
}
public function clone():Event {
new EnemyEvent(type, player);
}
}
Если вы не хотите, чтобы игрок и враг находились на первом кадре, ознакомьтесь с этой статьей, чтобы подробнее узнать, как этот материал работает в глубине: http://www.developria.com/2010/04/combining-the-timeline-with-oo.html. Или вы можете написать код, чтобы добавить их вручную, но это слишком похоже на работу.