Всякий раз, когда я хочу нарисовать что-то в
Flash я подкласс fl.core.UIComponent
вместо Sprite или Movieclip, потому что
его разумнее ширина / высота
реализация (NB это не Flex
UIComponent).
Я считаю, что это в значительной степени зависит от требований вашего проекта. Если вы используете другие fl.controls, может иметь смысл совместить ваши пользовательские компоненты с остальными компонентами флеш-памяти по разным причинам (например, передача с использованием dataProviders или других данных)
Например, представьте, что у вас есть кнопка
- хороший вариант использования для UIComponent - но кнопка имеет значок, текст
Строка и стрелка раскрытия. т.е. 3
дети. Я бы сделал эти 3
дети как UIComponents также.
Этот пример не особенно хорош, потому что компонент Button (fl.controls.Button) уже имеет значок, который вы установили с помощью setStyle () :
myButton.setStyle("icon", MyIconClass);
Я знаю, что мог бы сделать свой собственный подкласс
Спрайт, который переопределяет ширину /
Высота методы и свойства, но делает
Кто-нибудь видит какие-либо недостатки использования
UIComponent таким образом?
Лично я стараюсь сделать вещи максимально простыми. Если это необходимо для создания подкласса UIComponent, сделайте это, но помните о жизненном цикле компонента с помощью архитектуры компонентов Flash V3 (fl.controls). Старайтесь не фиксировать / аннулировать часто, так как это может вызвать проблемы с производительностью, которые становятся заметными при использовании большего количества экземпляров.
Существует очень хорошая серия статей для девнета по Создание компонентов ActionScript 3.0 во Flash Джеффом Камерером.
Вот некоторые из затронутых тем:
- Установите слои и рамки в вашем
символ видеоклипа компонента
- Реализация Live Preview для вашего
Компонент
- События отправки
- Поддержка стилей и легко редактируемых скинов
- Управление чертежом с моделью аннулирования
- Управление фокусом
- Ручка ввода с клавиатуры
- Создание скомпилированного клипа для ваших определений ActionScript
- Развертывание компонента на панели «Компоненты»
Итак, короче говоря, если вы можете обрабатывать изменение размера / позиционирование без создания подклассов UIComponents, я бы порекомендовал это. Чем проще, тем лучше. Кроме того, вы не будете вводить зависимость для компонентов V3, когда вам нужно будет перенести части ваших проектов.
Если вам необходимо создать подкласс UIComponents, сделайте их как можно более простыми / легкими. Лично я думаю, что они уже достаточно сложны, но, по крайней мере, они лучше, чем компоненты V2 (actionscript 2).
НТН