| Vishapakahr |
18.10.2011 00:58 |
PureMVC registerMediator
Здравствуйте , помогите со следующей проблемой пожалуйста. Проэкт вот вот начал на основе puremvc , стартовал нормально но увы возниклы проблемы ))
Код AS3:
package com.view
{
import com.SpionFacade;
import com.controller.MissionEnterCommand;
import com.controller.PrepViewCommand;
import com.controller.StartupCommand;
import com.view.Missions_Menu.MissionsMenu;
import com.view.Missions_Menu.MissionsMenuMediator;
import com.view.menus.menus;
import flash.display.DisplayObject;
import flash.display.Shape;
import flash.display.Sprite;
import flash.events.Event;
import flash.utils.*;
import mx.core.IUIComponent;
import mx.core.UIComponent;
import org.puremvc.as3.multicore.interfaces.IMediator;
import org.puremvc.as3.multicore.interfaces.INotification;
import org.puremvc.as3.multicore.patterns.mediator.Mediator;
import spark.primitives.BitmapImage;
public class SpionMediator extends Mediator implements IMediator
{
public static const NAME:String = 'SpionMediator';
public function SpionMediator( viewComponent:Object )
{
super( NAME, viewComponent );
}
override public function onRegister():void
{
app.addEventListener( Spion.HELLO_CLICK, handleHelloClick );
//app.txt.addEventListener(Event.CHANGE,onTxtChange);
}
protected function handleHelloClick( e:Event ):void
{
sendNotification( SpionFacade.HIDE_INTRO, "You clicked the button" );
}
override public function listNotificationInterests():Array{
return [SpionFacade.HIDE_INTRO,
SpionFacade.ENTER_MISSION1];
}
override public function handleNotification(notification:INotification):void{
switch(notification.getName()){
case SpionFacade.HIDE_INTRO:
while(app.numElements>0){
app.removeElementAt(0);
}
var menus_var:menus = new menus();
app.addElement(menus_var);
/************** вот эта часть , тут пытаюсь задать медиатор ******************//
var missions_menu_var:MissionsMenu = new MissionsMenu();
facade.registerMediator(new MissionsMenuMediator(missions_menu_var));
app.addElement(missions_menu_var);
/************** вот эта часть , тут пытаюсь задать медиатор ******************//
break;
case SpionFacade.ENTER_MISSION1:
Spion.txt.appendText('at SpionMediator');
break;
}
}
protected function get app():Spion
{
return viewComponent as Spion;
}
}
}
Тут медиатор не регистрируется в чем проблема ?
Добавлено через 4 минуты
Код AS3:
var missions_menu_var:MissionsMenu = new MissionsMenu();
в нем есть кнопка , при нажатии
а вот и MissionsMenuMediator
Код AS3:
package com.view.Missions_Menu
{
import com.SpionFacade;
import flash.events.Event;
import org.puremvc.as3.multicore.interfaces.IMediator;
import org.puremvc.as3.multicore.patterns.mediator.Mediator;
public class MissionsMenuMediator extends Mediator implements IMediator
{
public static const NAME:String = 'SpionMediator';
public function MissionsMenuMediator(viewComponent:Object=null)
{
super(NAME, viewComponent);
//viewComponent.addEventListener( MissionsMenu.CLICK, handleMissionsClick );
}
override public function onRegister():void
{
Spion.txt.appendText('entering missionsmenu: ');
app.addEventListener( MissionsMenu.CLICK, handleMissionsClick );
}
protected function handleMissionsClick( e:Event ):void
{
Spion.txt.appendText('handleMissionsClick');
sendNotification( SpionFacade.ENTER_MISSION1, 'entering mission' );
}
protected function get app():MissionsMenu
{
return viewComponent as MissionsMenu;
}
}
}
даже onRegister не работает
|