Насколько я понимаю, привязка к переменной в ActionScript осуществляется через события, которые автоматически запускаются при изменении переменной. У меня есть несколько вопросов по этому поводу:
- Что произойдет, если класс явно не расширяет EventDispatcher? Есть ли какая-то магия, которая происходит в компиляторе, который по существу делает класс EventDispatcher?
- Как работает привязка к статическим переменным? Добавлена ли какая-то неявная статическая функция addEventListener () в класс?
- Я заметил, что вы можете поставить [Bindable] на статические переменные, но не на статические функции, почему это так?
Edit:
Спасибо Кристофу Херреману за его яркий ответ. Тем не менее, у меня есть несколько дополнений из моих вопросов выше. Интересно, может ли кто-нибудь заполнить пробелы для меня (я пытался нумеровать эти вопросы 4, 5, 6, но они почему-то показываются 1, 2, 3!)
Я добавил опцию -keep в компилятор и посмотрел на сгенерированный код привязки. Кто-нибудь может объяснить, как применяется этот код? Компилятор, кажется, генерирует класс с именем BindableProperty для каждого класса, который содержит метод получения и установки. Как это складывается в класс, который я написал? Эта функция выглядит как частичные классы в C # - это исключительно закулисная функциональность компилятора, или это то, что я мог бы использовать сам?
Класс BindableProperty по-прежнему явно не реализует EventDispatcher. Как сгенерированный класс реализует диспетчеризацию событий?
В вопросе 3 я спрашивал о привязке к статическим функциям, но на самом деле я имел в виду статические функции получения и установки. Это не разрешено.