![]() |
|
||||||||||
|
|||||
|
Давно что-то не писал на as2, а тут дали заказ переписать флешку с as3 на as2 и я столкнулся с неприятной вещью, о которой успел уже позабыть.
Есть какой-нибудь класс, скажем, Foo. class Foo extends MovieClip implements IControlItem { public var bar : Number = 0 /* ... */ } buttonPressHandler - тоже какой-нибудь метод, объявленный в классе Foo. Проблема в том, что внутри buttonPressHandler при клике на button, this становится button, а не Foo и у меня, соответсвенно нет доступа к bar. Вопрос - как, собственно, его организовать? Кастомных ивентов никаких в as2 сделать нельзя, чтобы передать переменную. Можно сделать переменную статической, но это не выход. Единственное, что пришло в голову, это сделать так: public function configureListeners() Но использовать анонимные функции не хочется. UPD: только что пришло в голову, что можно сделать вот так: public function configureListeners() { button.bar = this.bar button.onPress = this.buttonPressHandler } Как вобще в as2 такие задачи решались?
__________________
Дело не в тебе |
|
|||||
|
О, спасибо
Точно, есть же класс делегирования)
__________________
Дело не в тебе |
![]() |
![]() |
Часовой пояс GMT +4, время: 09:30. |
|
|
« Предыдущая тема | Следующая тема » |
|
|