Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   API приложений и сред (http://www.flasher.ru/forum/forumdisplay.php?f=61)
-   -   [...] RobotLegs2 объявление классов (http://www.flasher.ru/forum/showthread.php?t=202590)

Akopalipsis 29.07.2013 21:24

Цитата:

и ContextView должен быть проинициализирован с помощью представления еще до исполнения команд конфига.
я не совсем понял, это приблизительно так ?
Код AS3:

private function startup(view:DisplayObjectContainer):void
{                               
    context = new Context().install(MVCSBundle).configure(MainConfig,new MainView( new Contex(view)));       
}


okouser 29.07.2013 22:22

именно

Akopalipsis 30.07.2013 01:45

okouser Спасибо! А не подскажете, почему AppConfig перестал инициализироваться?
Код AS3:

_context = new Context().install(MVCSBundle).configure(AppConfig , new MainView( new ContextView(view) ) );


Akopalipsis 30.07.2013 02:16

Код AS3:

package  
{
        import flash.events.MouseEvent;
        import robotlegs.bender.extensions.contextView.ContextView;
        import view.components.BollMediator;
        import controller.MainController;
        import model.MainModel;
        import robotlegs.bender.extensions.eventCommandMap.api.IEventCommandMap;
        import robotlegs.bender.extensions.mediatorMap.api.IMediatorMap;
        import robotlegs.bender.framework.api.IConfig;
        import robotlegs.bender.framework.api.IInjector;
        import view.components.Boll;
        import view.MainView;
 
        public class AppConfig implements IConfig
        {
                [Inject]
                public var injector:IInjector;
 
                [Inject]
                public var mediatorMap:IMediatorMap;
 
                [Inject]
                public var commandMap:IEventCommandMap;
 
 
                public function configure():void
                {
                        //controller
                        injector.map(MainController).asSingleton();
 
                        //model
                        injector.map(MainModel).asSingleton();
 
                        //view
                    injector.map(MainView).asSingleton();
                        commandMap.map(MouseEvent.MOUSE_MOVE).toCommand(MainCommand);
                        mediatorMap.map(Boll).toMediator(BollMediator);
                }
 
        }
 
}

Добавлено через 7 минут
Весь день только этим вопросом и занимаюсь. Сначала в голову пришло, что это два разных обьекта. Начал пробовать с [PostConstruct] играть - не получилось. А все следующие действия лишь повторяли то, что с Вашими словами не вяжется.

Добавлено через 8 минут
Все остальные классы из конфига идентичны Вашим. я так и не продвинулся.

Akopalipsis 30.07.2013 14:19

Цитата:

и ContextView должен быть проинициализирован с помощью представления еще до исполнения команд конфига.
Цитата:

я не совсем понял, это приблизительно так ?
Код AS3:

private function startup(view:DisplayObjectContainer):void
{                               
    context = new Context().install(MVCSBundle).configure(MainConfig,new MainView( new ContexОпечатка(view)));       
}

Цитата:

именно
Цитата:

Кстати, а что это за конструкция
new MainView( new ContextView(view) )
?
Добавлено через 17 минут
Тут наверное мне надо сказать ещё раз о своём малоумие и что мы друг друга не поняли, а так же спросить.
Контекст главный класс, Installs - это метод для вживления пользовательского класса в фраймворк.
MVCSBundle - это класс который указывает, что будет установлено\вживлено несколько классов.
configure - метод для установки связи. Например
Код AS3:

configure(MainConfig, new ContextView(view))

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

Добавлено через 23 минуты
Цитата:

Кстати, а что это за конструкция
new MainView( new ContextView(view) )
?
А так эта конструкция означает, что мы создаем экземпляр класса и передаем в конструктор ссылку на отображение. В классе MainView нужно добавить себя в это отображение:
Код AS3:

public function MainView(contextView:ContextView):void
{
    contextView.addChild(this);
}


Akopalipsis 30.07.2013 21:09

Цитата:

Не обратил тогда внимания.
Не чего страшного. По моим вопросом можно вообще подумать, что я невменяемый)))
Написав последнее сообщение и прочитав его сейчас, я задаю себе вопрос - что ты делаешь целую неделю?)
я неделю разобраться не могу. Но сейчас вроде проясняться начинает, ещё немного поэкспериментирую, а потом что нибудь спрошу.

Akopalipsis 31.07.2013 00:09

Цитата:

Так что не переживайте.
я так не очень умею.
Цитата:

Если вы хотите инициализировать какое-то представление отдельным конфигом, то нужно оборачивать его в ContextView и затем применять метод configure.
Вот что я понимаю из этих слов - если я хочу добавить класс в список отображения, отдельным конфигом, то нужно оборачивать его в ContextView и затем применять метод configure.
Белое я понимаю полностью, красное - нет, а бордовый не совсем.
я не понимаю красное, потому что не понятно - что обёртывать, класс или конфиг класса?
Если имеется ввиду класс - то слово обёртывание для меня звучит неоднозначно. Если я отбрасываю лексикон, то получается, обычное добавление посредством addChild. То есть если брать за эталон Ваш пример, то будет так..:
Код AS3:

private function startup(view:DisplayObjectContainer):void
{               
        view.addChild(new view.MainView() as flash.display.DisplayObject);
        context = new Context()
        .install(MVCSBundle)
        .configure(MainConfig)//главный конфиг
        .configure(MainViewConfig, new ContextView(view));//конфиг отображения                                                               
}

..но мне кажется, что Вы не о том мне говорите. Есть второй вариант ( имеется ввиду у меня, у кого то вариантов гораздо больше ) создавать класс MainView в конфиге, но я уже спрашивал про это и оказалось что это не правильно. А других вариантов у меня пока нет. Есть ещё догадка, что я не до конца понимаю слова:
Цитата:

Метод configure cтавит в соответствие отображению некоторые конфигурационные параметры.
я специально сделал в коде два конфига, чтобы показать, что на сейчас я думаю, что configure это метод для запуска предварительных настроек. Но Ваши слова:
Цитата:

отображению некоторые конфигурационные параметры
так же наводят на мысль, что я ошибаюсь... В общем я пока прекращаю поток вопросов и жду когда у Вас появится время) Спасибо!

TWETTI 31.07.2013 00:23

Цитата:

...Есть второй вариант ( имеется ввиду у меня, у кого то вариантов гораздо больше ) создавать класс MainView в конфиге, но я уже спрашивал про это и оказалось что это не правильно...
Почему не правильно!?

Главное представление я всегда добавляю в AppConfig вот так:
Код AS3:

package {
        импорты...
        public class AppConfig implements IConfig {
                инъекции...
 
                public function configure():void {
                        множество commandMap.map
                        множество injector.map
                        множество mediatorMap.map
 
                        context.afterInitializing(init);
                }
 
                private function init():void {
                        // Добавление главного представления на экран
                        contextView.view.addChild(new MainView());
                }
        }
}

В главном класе написано:
Код AS3:

_context = new Context();
_context.install(MVCSBundle);
_context.configure(AppConfig);
_context.configure(new ContextView(this));


Akopalipsis 31.07.2013 00:48

TWETTI если сказать честно, то я не капельки не расстроен из-за того, что okouser немножечко недоглядел мой глупый вопрос и я несколько день искал того, про что спрашивал в самом начале. Спасибо Вам Всем! Но у меня ещё много вопросов которые я буду потихоньку задавать. Вот такая конструкция это нормально? Что configure несколько? Просто как я сказал выше, пока я не понимаю до конца и не могу разобрать слова описания которые написаны okouser выше, и сейчас мне кажется что это лишь предварительные настройки - это так?
Код AS3:

        context = new Context()
        .install(MVCSBundle)
        .configure(MainConfig)//главный конфиг
        .configure(MainViewConfig, new ContextView(view));//конфиг отображения

Добавлено через 22 минуты
И ещё не понятно до конца, что если написать как у Вас, именно new MainView(), создания экземпляра без сохранения ссылки - это нормально? в RL они как то сохраняются и можно не боятся, что экземпляр как нибудь удалится?
Код AS3:

contextView.view.addChild(new MainView());


TWETTI 31.07.2013 10:09

Пока мы видим MainView на экране он никуда не удалится.

Несколько configure это нормально.


Часовой пояс GMT +4, время: 09:20.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.