Flex: как сохранить код от MXML - PullRequest
6 голосов
/ 12 августа 2010

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

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

.начать на Главном MXML?Не могу ли я создать первое представление из класса ActionScript?

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

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

Ответы [ 3 ]

10 голосов
/ 12 августа 2010

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

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+Behind

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

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

2 голосов
/ 12 августа 2010

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

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

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

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

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

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

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

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

Это зависит.Разве представление также не код?Если вы хотите использовать стиль в стиле «Model View Controller», есть много способов.Рамки могут помочь, и я упомянул несколько выше.Но вы также можете сделать это самостоятельно.Если вы новичок во Flex, я бы порекомендовал вам начать разработку "Без рамок" и внедрить интегрированные среды в уравнение, чтобы посмотреть, помогут ли они решить проблемы, с которыми вы столкнулись.

1 голос
/ 12 августа 2010

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

Взгляните на модель Passive View, это может быть то, что вы ищете в плане написания кода AS в вашем MXML.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...