Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   PureMVC registerMediator (http://www.flasher.ru/forum/showthread.php?t=170074)

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 не работает


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

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