Flex: Как держать код отдельно от MXML

Можно ли рекомендовать статьи, книги и лучшие практики при разработке приложений Flex? (и AIR и сеть).

Я считал компоненты Создания и осуществление разделения проблем с Flex и Составными частями здания при помощи кода позади.

Приложение должно всегда запускаться на Основном MXML? Разве я не могу инстанцировать первого представления от класса ActionScript?

Как Вы добавили бы обработчик к первому MXML и дали бы управление потоком ему?

Я пытаюсь написать нулевой код на своих файлах MXML для хранения представления отделенным от кода. Действительно ли это возможно в Flex?

6
задан Fernando Briano 12 August 2010 в 13:41
поделиться

3 ответа

Я работал над несколькими проектами, в которых использовался шаблон кода программной части, отвечающий многим вашим требованиям. Вкратце, вы изолируете код от MXML, создав базовый класс ActionScript (MyClassCode.as), а затем создав файл MXML, который наследуется от вашего класса кода программной части (MyClass.mxml).Одним из недостатков является то, что любые элементы пользовательского интерфейса в файле MXML необходимо объявлять второй раз в вашем классе кода программной части, в противном случае я обнаружил, что это очень эффективный метод отделения кода от пользовательского интерфейса. Вот пример и несколько ссылок для получения дополнительной информации:

MyClassCode.as:

package mypackage
{
    import flash.events.MouseEvent;

    import mx.events.FlexEvent;

    import spark.components.Button;
    import spark.components.Group;

    public class MyClassCode extends Group
    {
        public var myButton:Button;

        public function MyClassCode()
        {
            super();
            this.addEventListener(FlexEvent.CREATION_COMPLETE, onCreationComplete);
        }

        private function onCreationComplete(e:FlexEvent):void {
            this.removeEventListener(FlexEvent.CREATION_COMPLETE, onCreationComplete);
            myButton.addEventListener(MouseEvent.CLICK, onClick);
        }

        private function onClick(e:MouseEvent):void {
            // Do something
        }
    }
}

MyClass.mxml:

<?xml version="1.0" encoding="utf-8"?>
<mypackage:MyClassCode xmlns:fx="http://ns.adobe.com/mxml/2009" 
                       xmlns:s="library://ns.adobe.com/flex/spark" 
                       xmlns:mx="library://ns.adobe.com/flex/mx" 
                       xmlns:mypackage="mypackage.*">
    <s:Button id="myButton"/>
</mypackage:MyClassCode>

Некоторые ссылки:

http://learn.adobe.com/wiki/display/Flex/Code + За

http://ted.onflash.org/2007/02/code-behind-in-flex-2.php

http://blog.vivisectingmedia.com/2008/04/the-flex -code-behind-pattern /

10
ответ дан 8 December 2019 в 18:29
поделиться

Лучшие практики очень субъективны в разработке программного обеспечения. Если вы найдете одного человека, который говорит «X», я могу найти другого, который говорит «Y», и, скорее всего, они оба будут правы в данных обстоятельствах.

Большинство книг, о которых я знаю, сосредоточены на ознакомлении новичков, а не на передовых методах.

Чтобы ответить на ваши конкретные вопросы:

Всегда ли приложение должно запустить на Основном MXML? Не могу я создать экземпляр первого представления из Класс ActionScript?

Теоретически кажется возможным, чтобы основным файлом приложения был ActionSCript; в конце концов, компилятор Flex просто превращает MXM в ActionSCript. На практике я никогда не видел, чтобы кто-то делал это. Я видел приложения, которые все являются ACtionSCript, за исключением тега приложения в главном файле приложения.

Как бы вы добавили обработчик в первый MXML и дайте контроль потока к нему?

Что вы подразумеваете под обработчиком и управлением потоком? Не уверен, что у меня есть здесь конкретный ответ. Многие люди используют фреймворки. Кайрнгорм является наиболее широко используемым, но некоторые находят его слишком сложным. Некоторое время Мате был любимцем сообщества. RobotLegs - текущий фаворит.

Я пытаюсь написать нулевой код на своем Файлы MXML для разделения представления из кода. Возможно ли это в Flex?

Это зависит от обстоятельств. Разве представление не является кодом? Если вы хотите использовать стиль «Контроллер представления модели», существует множество способов. Фреймворки могут помочь, и я упомянул некоторые из них выше. Но вы также можете сделать это самостоятельно.Если вы новичок в Flex, я бы порекомендовал вам начать разработку «без фреймворков» и включить фреймворки в уравнение, чтобы посмотреть, помогают ли они решать проблемы, с которыми вы сталкиваетесь.

2
ответ дан 8 December 2019 в 18:29
поделиться

У Пола Уильямса есть несколько отличных статей и примеров по различным шаблонам представления для Flex. Он даже создал образец приложения, использующий каждый из различных шаблонов, и показал, как проводить модульное тестирование некоторых шаблонов. http://blogs.adobe.com/paulw/

Взгляните на модель пассивного просмотра, возможно, это именно то, что вам нужно с точки зрения написания кода AS в вашем MXML.

1
ответ дан 8 December 2019 в 18:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: