PureMVC学习[三]用户与View Component和Mediator交互

本文深入探讨了登录面板Mediator的实现,包括其通知兴趣、处理逻辑和关键事件响应。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package com.wf.view
{
	import com.wf.facade.ApplicationFacade;
	
	import flash.events.Event;
	
	import org.puremvc.as3.interfaces.IMediator;
	import org.puremvc.as3.interfaces.INotification;
	import org.puremvc.as3.patterns.mediator.Mediator;

	//LoginPanel视图的Mediator
	public class LoginPanelMediator extends Mediator implements IMediator
	{
		public static const NAME:String = 'LoginPanelMediator';
		
		public function LoginPanelMediator(viewComponent:LoginPanel)
		{
			super(NAME,viewComponent);
			LoginPanel.addEventListener(LoginPanel.TRY_LOGIN,onTryLogin);
		}
		
		//列出该Mediator关心的Notification
		override public function listNotificationInterests():Array
		{
			return [
						LoginProxy.LOGIN_FAILED,
						LoginProxy.LOGIN_SUCCESS
					];
		}
		
		//处理Notification
		override public function handleNotification(note:INotification):void
		{
			switch(note.getName())
			{
				case LoginProxy.LOGIN_FAILED:
				{
					LoginPanel.loginVO = new LoginVO();
					loginPanel.loginStatus = LoginPanel.NOT_LOGGED_IN;
					break;
				}
					
				case LoginProxy.LOGIN_SUCCESS:
				{
					loginPanel.loginStatus = LoginPanel.LOGGED_IN;
					break;
				}
					
			}
			
		}
		
		//用户单击Login按钮,尝试登陆
		private function onTryLogin(event:Event):void{
			sendNotification(ApplicationFacade.LOGIN,loginPanl.loginVO);
		}
		
		//把viewComponent转化为它真正的类型
		protected function get loginPanel():LoginPanel{
			return viewComponent as LoginPanel;
		}
		
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值