Flex <fx: Script /> лучшие практики? - PullRequest
0 голосов
/ 10 ноября 2010

Просто хотел спросить о том, что делать при использовании as include (т.е. <fx:Script source="includes/my_as3_file.as" />.

. Проблема в том, что во всех моих файлах я использую модификаторы только для класса, такие как private, publicзащищен, и FB иногда протестует по этому поводу. Один мой друг сказал мне, что он меняет расширение файла на .ias, но при этом он теряет подсветку кода, поддержку контента и включение точек останова.

Спасибо.

Ответы [ 4 ]

2 голосов
/ 15 ноября 2010

Мне нравится использовать то, что называется ViewHelper (опубликовал ссылку)

http://www.kensodev.com/2010/08/19/keep-your-mxml-files-neat-with-view-helpers/

Таким образом, файл MXML всегда является чистым MXML, а помощник вида связан и имеет ссылку на представление, что означает, что вы можете сделать что-то подобное в помощнике вида

myView.dataGrid.visible = false;

И, конечно, еще много вещей.

Даже когда я использую посредники RobotLegs, я по-прежнему использую помощник вида для всех действий, связанных с видом, таких как анимация, скрытие и удаление объектов, изменение состояния и многое другое. Я использую посредники только для посредничества со средой RobotLegs (события повторной отправки) и прослушивания eventDispatcher.

1 голос
/ 11 ноября 2010
  1. Используйте код позади! или
  2. [mxml_file] AS.as для имени файла Actionscript. ex MXML: MyView.mxml и как файл MyViewAS.as тогда это будет выглядеть как <fx:Script source="MyViewAS.as" />
1 голос
/ 11 ноября 2010

Лично я не фанат использования включений. Как вы упомянули, он имеет тенденцию запутывать то, что на самом деле происходит в представлении, и затрудняет быстрое сканирование файла и отслеживание его поведения.

Один из лучших приемов, которым я всегда следовал, - сократить количество кода в блоке <fx: Script /> почти до нуля.

Если вы используете файл включения, это говорит о том, что ваши представления очень загружены сценариями, что может привести к плохому повторному использованию кода и затруднениям при написании тестируемого кода.

Вместо этого рассмотрите возможность использования шаблона Presentation Model , в котором логика перемещена в отдельный класс. В качестве альтернативы, существует также шаблон Mediator , однако лично я обнаружил, что это приводит к более сильно связанному коду - хотя это, скорее всего, связано с моим дрянным исполнением, чем с ошибкой шаблона.

0 голосов
/ 11 ноября 2010

Переименование файла .as в .ias, на мой взгляд, является одним из худших решений, которые можно придумать (это просто ужасно).Я также не согласен с Марти, потому что во Flex 4 архитектура отличается от Flex 3 (хотя Spark построен на основе MX - если бы мы говорили о Flex 3, я бы согласился с тем, что сказал Марти).В Flex 4 скин теперь считается «представлением», а класс, использующий представление, является «контроллером» ... это означает, что теперь все гораздо лучше разделено, чем во Flex 3, где компоненты воспроизводились.роль и Представления, и Контроллера (http://www.slideshare.net/saurabhnarula/flex-4-skinning-2634949).

Возвращаясь к исходной проблеме: Верно, что Flash Builder не совершенен, но если вы знаете, что у вас его нетошибки в вашем коде, и он продолжает бросать на вас какие-то странные вещи, затем просто попробуйте закрыть его и запустить снова (очистите ваш проект позже).Всякий раз, когда я устанавливаю файл .as в качестве источника для моего компонента MXML, я хотел бы, чтобы этот файл был рядом с классом MXML (например, MyMXMLComponent.mxml и MyMXMLComponentAS.as, оба находятся на одном уровне - source = "MyMXMLComponentAS.AS")Это 99% времени работает нормально, но на самом деле редко, я мог бы также получить некоторые странные ошибки от Flash Builder (которые обычно решались закрытием и последующей очисткой проекта - в нескольких случаях была ошибка вмой код, который, кажется, полностью сбивает с толку / дает сбой компилятору и заставляет его выдавать некоторые действительно бессмысленные сообщения об ошибках, поэтому обязательно постарайтесь убедиться, что ваш код правильный).

Лично я бы предложил вместо использования.as файлы, вы пытаетесь использовать подход «код позади» (ищите в Google / Adobe для получения дополнительной информации об этом - я хотел опубликовать ссылку, но, поскольку я новый пользователь, я ограничен 1 ссылкой /пост ... ха)Используя код, вы наверняка никогда не столкнетесь с проблемами, с которыми вы можете столкнуться с файлом .as, и у вас наверняка никогда не возникнет проблем с подсказкой кода.В случае, если вы никогда раньше не использовали код позади, то вначале он может показаться «странным», но вы привыкнете к нему и наверняка больше не захотите писать код «по-старому».

...