Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > Flex

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 21.09.2014, 18:26
djyamato вне форума Посмотреть профиль Отправить личное сообщение для djyamato Посетить домашнюю страницу djyamato Найти все сообщения от djyamato
  № 1  
Ответить с цитированием
djyamato
 
Аватар для djyamato

Регистрация: Feb 2006
Сообщений: 884
Записей в блоге: 2
Отправить сообщение для djyamato с помощью ICQ Отправить сообщение для djyamato с помощью Skype™
По умолчанию spark.modules.Module не инициализируется swiz framework в браузере

Здравствуйте
У меня приложение построенное при помощи swiz framework загружает модули (spark).
Я хотел бы чтобы и в каждом из модулей я мог бы использовать swiz.
Запуская приложение из под FlashBuilder в каждом из модулей свиз инициализируется и все зависимости внедряются.
Если же запускать приложение в браузере то такое впечатление что свиз не инициализируется. Зависимости не внедряются.

Вот мой код

основное приложение
---------------------------------------
Application
Код AS3:
<?xml version="1.0" encoding="utf-8"?>
<s:Application 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:config="swiz.conf.*"
			   xmlns:swiz="http://swiz.swizframework.org"
				width="955" 
				height="600" 
				addedToStage="application1_addedToStageHandler(event)">
 
	<fx:Script>
		<![CDATA[
 
			// to enable managers inside modules
			import mx.managers.CursorManager;
			import mx.managers.DragManager;
			import mx.managers.PopUpManager;
			import mx.managers.ToolTipManager;
			import mx.core.EmbeddedFontRegistry;
 
			private var popUpManager:PopUpManager; 
			private var dragManager:DragManager; 
			private var tooltipManager:ToolTipManager; 
			private var _cursorManager:CursorManager; 
			private var embeddedFontRegistry:EmbeddedFontRegistry;
 
			import swiz.pm.AppPM;
 
			[Inject]
			public var appPM:AppPM;
 
			protected function application1_addedToStageHandler(event:Event):void
			{
				appPM.viewAddedToStage();
			}
		]]>
	</fx:Script>
 
	<fx:Declarations>
		<swiz:Swiz id="mySwiz" >
			<swiz:beanProviders>
				<config:MainApplicationBeans/>
			</swiz:beanProviders>
			<swiz:config>
				<swiz:SwizConfig viewPackages="swiz.views.*"
								 eventPackages="swiz.events.*"/>
			</swiz:config>
		</swiz:Swiz>
	</fx:Declarations>
 
	<mx:UIComponent id="modulesContainer"/>
</s:Application>
свиз конфиг основного приложения
Код AS3:
<?xml version="1.0" encoding="utf-8"?>
<swiz:BeanProvider xmlns:fx="http://ns.adobe.com/mxml/2009"
				   xmlns:swiz="http://swiz.swizframework.org" 
				   xmlns:controllers="swiz.controllers.*" 
				   xmlns:pm="swiz.pm.*" 
				   xmlns:models="swiz.models.*" >
	<!-- CONTROLLERS --> 
	<controllers:AppController id="appController"/>
	<!-- MODELS -->
	<models:AppModel id="aappModel"/>
	<!-- PM -->
	<pm:AppPM id="appPM"/>
</swiz:BeanProvider>
Контроллер
Код AS3:
package swiz.controllers
{
	import mx.events.ModuleEvent;
 
	import spark.modules.ModuleLoader;
 
	import org.swizframework.controller.AbstractController;
 
	import swiz.models.AppModel;
	import swiz.pm.AppPM;
 
	public class AppController extends AbstractController
	{
		[Inject]
		public var appPM:AppPM;
 
		[Inject]
		public var appModel:AppModel;
 
		protected var modulesLoader:ModuleLoader;
 
		[PostConstruct]
		public function initHandler():void
		{
			modulesLoader = new ModuleLoader();
		}
 
		[EventHandler(event="AppPMEvent.VIEW_ADDED")]
		public function viewAddedHandler():void
		{
			appPM.addModuleLoader(modulesLoader);
 
			//load first module
			modulesLoader.addEventListener(ModuleEvent.READY,moduleReadyHandler);
			modulesLoader.url = appModel.firstModulePath;
		}
 
		protected function moduleReadyHandler(event:ModuleEvent):void
		{
			trace("module loaded but not inited yet");
 
		}
	}
}
Presentation model
Код AS3:
package swiz.pm
{
	import flash.events.IEventDispatcher;
 
	import spark.modules.ModuleLoader;
 
	import swiz.events.AppPMEvent;
 
	// application view presentation module
	public class AppPM
	{
		[Dispatcher]
		public var dispatcher:IEventDispatcher;
 
		protected var view:SwizFlexSparkModulesTest;
 
		[ViewAdded]
		public function viewAddedHandler(_view:SwizFlexSparkModulesTest):void
		{
			view = _view;
		}
 
		public function viewAddedToStage():void
		{
			var event:AppPMEvent = new AppPMEvent(AppPMEvent.VIEW_ADDED);
			dispatcher.dispatchEvent(event);
		}
 
		public function addModuleLoader(value:ModuleLoader):void
		{
			view.modulesContainer.addChild(value);
		}
	}
}
--------------------------------
модуль
Код AS3:
<?xml version="1.0" encoding="utf-8"?>
<s:Module xmlns:fx="http://ns.adobe.com/mxml/2009" 
		  xmlns:s="library://ns.adobe.com/flex/spark"
		  xmlns:ns="http://swiz.swizframework.org"
		  xmlns:conf="swiz.modules.FirstModule.swiz.conf.*"
		  width="100%" 
		  height="100%" >
 
	<fx:Declarations>
		<ns:Swiz id="mySwiz" >
			<ns:beanProviders>
				<conf:FirstModuleBeans/>
			</ns:beanProviders>
			<ns:config>
				<ns:SwizConfig viewPackages="swiz.modules.FirstModule.*"
								 eventPackages="swiz.modules.FirstModule.events.*"/>
			</ns:config>
		</ns:Swiz>
	</fx:Declarations>
 
	<fx:Script>
		<![CDATA[
			import swiz.modules.FirstModule.swiz.pm.FirstModulePM;
 
			[Inject]
			public var pm:FirstModulePM;
 
			protected function btn_clickHandler(event:MouseEvent):void
			{
				trace("pm = "+pm);
				log.appendText("pm = "+pm);
			}
		]]>
	</fx:Script>
 
	<s:VGroup width="100%" height="100%" horizontalAlign="center" verticalAlign="middle">
		<s:Label text="first module"/>
		<s:Button label="Load second module" 
				  id="btn" 
				  click="btn_clickHandler(event)"/>
		<s:TextArea id="log"/>
	</s:VGroup>
</s:Module>
свиз конфиг
Код AS3:
<?xml version="1.0" encoding="utf-8"?>
<swiz:BeanProvider xmlns:fx="http://ns.adobe.com/mxml/2009"
				   xmlns:swiz="http://swiz.swizframework.org" 
				   xmlns:pm="swiz.modules.FirstModule.swiz.pm.*">
	<!-- PM -->
	<pm:FirstModulePM id="pm"/>
</swiz:BeanProvider>
Presentation model
Код AS3:
package swiz.modules.FirstModule.swiz.pm
{
	import flash.events.IEventDispatcher;
 
	public class FirstModulePM
	{
		[Dispatcher]
		public var dispatcher:IEventDispatcher;
	}
}
Выложил проект для FB4.7 для полного понимания моей проблемы

Создать новую тему Ответ Часовой пояс GMT +4, время: 00:12.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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