Цитата:
|
В этом обработчике необходимо обратиться к свойству мувика, который сгенерил событие (когда пишу просто this.anyField компилятор выдает ошибку что в классе Main нету такого свойства). Кроме того нужно обратиться и к методам класса Main тоже.
|
В данном случае this указывает на один из мувиков, так как обработчик вызывается через этот мувик, но компилятор не в курсе этого, поэтому нужно в этом случае кастовать к типу мувика, содержащегося в массиве.
Но это не совсем верно, на мой взгляд, вызывать обработчик содержащийся в одном объекте в области видимости другого. Могу предложить такой вариант:

Код AS1/AS2:
import com.aditall.utils.Delegate;
class Main
{
public function Main()
{
super();
myObject = {};
myObject.onMouseDown = Delegate.create(this, myObject_onMouseDownHandler, [ { target: myObject } ]);
Mouse.addListener(myObject);
}
private var myObject;
private function myObject_onMouseDownHandler(event:Object):Void
{
trace(event.target == myObject);
trace(this instanceof Main);
}
}
Класс делегата взял от сюда
http://www.flasher.ru/forum/showthread.php?p=880125