Подклассы fl.core.UIComponent во Flash - PullRequest
0 голосов
/ 27 апреля 2011

Всякий раз, когда я хочу что-то нарисовать во Flash, я делаю подкласс fl.core.UIComponent вместо Sprite или Movieclip из-за его более широкой реализации ширины / высоты (NB, это не Flex UIComponent)

Например, представьте, что у вас есть кнопка - хороший вариант использования для UIComponent - но у кнопки есть значок, текстовая строка и стрелка раскрытия. т.е. 3 детей. Я бы тоже сделал этих 3 детей UIComponents.

Я знаю, что мог бы создать свой собственный подкласс Sprite, который переопределяет методы и свойства width / height, но кто-нибудь видит какие-либо недостатки в использовании UIComponent таким образом?

1 Ответ

1 голос
/ 27 апреля 2011

Всякий раз, когда я хочу нарисовать что-то в 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).

НТН

...