Если я правильно понимаю проблему, у вас есть два разных класса «Лазер» (L) и «Враг» (E), и вы хотите передать экземпляр «L» в соответствующих экземплярах «E». Теперь, как вы сказали
'Проблема в том, что классу Laser необходим конкретный экземпляр класса Enemy, в который он должен перейти. И поскольку я имею дело с несколькими классами Enemy одновременно, очень важно, чтобы класс Laser мог перейти в правильный класс ».
Значит ли это, что L - это основной класс, который может обращаться к массиву созданных экземпляров объектов Enemy, и теперь вы хотите, чтобы L был каким-то образом видимым / доступным в этих объектах Enemy. Для таких случаев вы можете просто иметь переменную типа E, которая может быть создана с помощью функции setter. Например,
=============================================== ===============================
// основной класс лазера
Функция process (): void
{
var myEnemy: E = getDesiredEnemyInstance ();
myEnemy.laser = this;
}
// Внутри класса E
// некоторый код
частный var _laser: Laser;
// некоторый код
лазер общего назначения (l: Laser): void
{
this._laser = l;
}
=============================================== ==============================
После того, как эта доступность достигнута, вы всегда можете использовать обработку событий в этих классах, как предложено antpaw. Вам может понадобиться использовать метаданные здесь. Надеюсь, это поможет. Пожалуйста, исправьте меня, если я все еще не уверен в определении проблемы.
Желания,
Ashine