Цитата:
Как "экземпляр может выполнить код", если это грубо говоря только ссылка на объект.
Экземпляр может выполнить код разве что так: spaceship3.x = 50; ну об этом я и написал.
|
Я имел ввиду это:

Код AS3:
// Метод перемещает корабль
public function moveShipY(value: Number):void
{
// Перемещаем наш корабль
this.y += value;
}
Тут перемещается только тот корабль, над которым вызван метод
moveShipY, а не все созданные экземпляры. Если есть spaceship1 и spaceship2, и мы вызовем метод

Код AS3:
spaceship2.moveShipY(20);
, то переместиться только spaceship2.
Добавлено через 9 минут
Цитата:
|
А чтобы засунуть в класс Spaceship ссылку на spaceship3, то это уже... какие-то рекурсивные извраты, разве нет? : )
|
Это делать и не надо, для этого и есть this. Пример:

Код AS3:
var ship: Spaceship = new Spaceship();
ship.name = 'корабль1';
var ship2: Spaceship = new Spaceship();
ship2.name = 'корабль2';
Метод
getName класса
Spaceship возвращает имя корабля:

Код AS3:
public function getName():void
{
trace(this.name);
}
И если вы сделаете так:

Код AS3:
ship.getName(); // корабль1
ship2.getName(); //// корабль2
То есть метод
getName знает над каким экземпляром он был вызван, с помощью того же
this.