- 浏览: 897413 次
- 性别:
- 来自: 青岛
文章分类
最新评论
-
chienchia:
请问下,第4步,vpn做了什么使数据包发送到真实网卡,而不会再 ...
如何使用Android系统自带的VPN服务框架 -
fangyafenqidai:
我只要选第二个就可以呢,怒需要选第一个。之后不会有啥问题。正常 ...
Android Studio 超级简单的打包生成apk -
michaelye1988:
不错,很棒!
getcachedir和getexternalcachedir的区别 -
whlei01:
文章棒棒哒
常用的AS3代码 -
whlei01:
很不错 之前打开及时600M的内存 ,现在打开只有300兆了 ...
flash builder内存不够的解决办法
Src目录下:
LoginForm.mxml
PureLoginMVC.mxml
src目录下system包下:
MyFacade.as
package system
{
import Controller.ApplicationCommand;
import Controller.LoginCommand;
import org.puremvc.as3.interfaces.IFacade;
import org.puremvc.as3.patterns.facade.Facade;
public class MyFacade extends Facade implements IFacade
{
public function MyFacade()
{
super();
}
//实现MyFacade的单例
public static function getInstance():MyFacade{
if(instance == null){
instance = new MyFacade();
}
return instance as MyFacade;
}
//初始化
override protected function initializeController():void{
super.initializeController();
registerCommand(NameSpace.FacadeStart,ApplicationCommand);//注册开始命令
registerCommand(NameSpace.ApplicationLogin,LoginCommand);//注册登录命令
}
//开始的通知
public function startup(app:PureLoginMVC):void{
sendNotification(NameSpace.FacadeStart,app);
}
}
}
NameSpace.as
package system
{
public class NameSpace
{
public static const LoginProxyName:String = "LoginProxy";
public static const LoginSuccess:String = "loginSuccess";
public static const LoginFailed:String = "loginFailed";
public static const LoginEvent:String = "loginEvent";
public static const LoginMediatorName:String = "loginMediator";
public static const ApplicationLogin:String = "login";
public static const ApplicationMediatorName:String = "appliactionMediator";
public static const FacadeStart:String = "start";
}
}
src下Controller包
ApplicationCommand.as
package Controller
{
import org.puremvc.as3.interfaces.ICommand;
import org.puremvc.as3.patterns.command.MacroCommand;
public class ApplicationCommand extends MacroCommand implements ICommand
{
//构造器,可写可不写
public function ApplicationCommand()
{
super();
}
//写法一
override protected function initializeMacroCommand():void{
addSubCommand(ModelCommand);//添加model命令
addSubCommand(ViewCommand); //添加view命令
}
}
}
ModelCommand.as
package Controller
{
import model.LoginProxy;
import org.puremvc.as3.interfaces.ICommand;
import org.puremvc.as3.interfaces.INotification;
import org.puremvc.as3.patterns.command.SimpleCommand;
public class ModelCommand extends SimpleCommand implements ICommand
{
public function ModelCommand()
{
super();
}
override public function execute(notification:INotification):void
{
facade.registerProxy(new LoginProxy());//注册登录
}
}
}
ViewCommand。as
package Controller
{
import org.puremvc.as3.interfaces.ICommand;
import org.puremvc.as3.interfaces.INotification;
import org.puremvc.as3.patterns.command.SimpleCommand;
import view.ApplicationMediator;
import view.LoginMediator;
public class ViewCommand extends SimpleCommand implements ICommand
{
public function ViewCommand()
{
super();
}
//注册Mediator
override public function execute(notification:INotification):void
{
var app:PureLoginMVC = notification.getBody() as PureLoginMVC;
facade.registerMediator(new ApplicationMediator(app));//注册application中间人
facade.registerMediator(new LoginMediator(app));//注册登录中间人
}
}
}
LoginCommand。as
package Controller
{
import model.LoginProxy;
import model.vo.LoginVO;
import org.puremvc.as3.interfaces.ICommand;
import org.puremvc.as3.interfaces.INotification;
import org.puremvc.as3.patterns.command.SimpleCommand;
import system.NameSpace;
public class LoginCommand extends SimpleCommand implements ICommand
{
public function LoginCommand()
{
super();
}
override public function execute(notification:INotification):void{
var loginVO:LoginVO = notification.getBody() as LoginVO;
//var loginProxy:LoginProxy = new LoginProxy();
//从facade中获取proxy
var loginProxy:LoginProxy = facade.retrieveProxy(NameSpace.LoginProxyName) as LoginProxy;
loginProxy.CheckLogin(loginVO);
}
}
}
src下的model:
LoginProxy.as
package model
{
import model.vo.LoginVO;
import org.puremvc.as3.interfaces.IProxy;
import org.puremvc.as3.patterns.proxy.Proxy;
import system.NameSpace;
public class LoginProxy extends Proxy implements IProxy
{
public function LoginProxy()
{
super(NameSpace.LoginProxyName);//给登录通知一个参数名
}
//简单的进行判断
public function CheckLogin(vo:LoginVO):void{
if(vo.username =="test"&&vo.password == "test"){
sendNotification(NameSpace.LoginSuccess,vo);//发送成功的通知
}else{
sendNotification(NameSpace.LoginFailed);//发送失败的通知
}
}
}
}
model。vo下的:
LoginVO.as
package model.vo
{
public class LoginVO
{
public var username:String;
public var password:String;
}
}
src下的viewbao下:
ApplicationMediator。as
package view
{
import model.vo.LoginVO;
import mx.controls.Label;
import org.puremvc.as3.interfaces.IMediator;
import org.puremvc.as3.interfaces.INotification;
import org.puremvc.as3.patterns.mediator.Mediator;
import system.NameSpace;
public class ApplicationMediator extends Mediator implements IMediator
{
private var loginApplication:PureLoginMVC;
//构造器,获取application实例
public function ApplicationMediator(app:Object)
{
super(NameSpace.ApplicationMediatorName,app);
loginApplication = app as PureLoginMVC;
}
//监听通知
override public function listNotificationInterests():Array{
return[NameSpace.LoginSuccess];
}
//响应通知
override public function handleNotification(notification:INotification):void{
switch (notification.getName()){
case NameSpace.LoginSuccess:
setLoginSuc(notification.getBody() as LoginVO);
break;
default:
break;
}
}
private function setLoginSuc(loginVO:LoginVO):void{
var label:Label = new Label();
label.text = "欢迎光临!"+loginVO.username;
loginApplication.addChild(label);
}
}
}
LoginMediator.as
package view
{
import flash.events.Event;
import model.vo.LoginVO;
import mx.managers.PopUpManager;
import org.puremvc.as3.interfaces.IMediator;
import org.puremvc.as3.interfaces.INotification;
import org.puremvc.as3.patterns.mediator.Mediator;
import system.NameSpace;
public class LoginMediator extends Mediator implements IMediator
{
//获取应用实例
private var loginPanel:LoginForm;
private var loginApplication:PureLoginMVC;
public function LoginMediator(app:Object)
{
super(NameSpace.LoginMediatorName,app);
loginApplication = app as PureLoginMVC;
loginPanel = new LoginForm();
loginPanel.addEventListener(NameSpace.LoginEvent,onLogin);
PopUpManager.addPopUp(loginPanel,loginApplication);
PopUpManager.centerPopUp(loginPanel);
}
//监听通知
override public function listNotificationInterests():Array{
var arr:Array = new Array();
arr.push(NameSpace.LoginSuccess);
arr.push(NameSpace.LoginFailed);
return arr;
}
//响应通知
override public function handleNotification(notification:INotification):void{
switch(notification.getName()){
case NameSpace.LoginSuccess:
setLoginSuc();
break;
case NameSpace.LoginFailed:
setLoginFailed();
break;
default:
break;
}
}
//登录成功,移除登录窗口
private function setLoginSuc():void{
PopUpManager.removePopUp(loginPanel);
}
//登录失败,提示
private function setLoginFailed():void{
loginPanel.labStatus.text ="用户名密码有误,请重试";
loginPanel.loginName.setFocus();
}
private function onLogin(evt:Event):void{
if(loginPanel.loginName.text!=""&&loginPanel.loginPassword.text!=""){
var loginVO:LoginVO = new LoginVO();
loginVO.username = loginPanel.loginName.text;
loginVO.password = loginPanel.loginPassword.text;
sendNotification(NameSpace.ApplicationLogin,loginVO);
}else{
loginPanel.labStatus.text = "请输入用户名和密码";
}
}
}
}
LoginForm.mxml
<?xml version="1.0" encoding="utf-8"?> <mx:Panel xmlns:mx="http://www.adobe.com/2006/mxml" fontSize="12" layout="vertical" horizontalAlign="center" title="用户登录" width="314"> <mx:Script> <![CDATA[ import system.NameSpace; ]]> </mx:Script> <mx:Form width="100%" height="100%"> <mx:FormHeading label="敬请登录"/> <mx:FormItem label="登录名称"> <mx:TextInput id="loginName"/> </mx:FormItem> <mx:FormItem label="登录密码"> <mx:TextInput id="loginPassword"/> </mx:FormItem> <mx:FormItem> <mx:Button label="确定" id="loginBtn" click="dispatchEvent(new Event(NameSpace.LoginEvent))"/> </mx:FormItem> </mx:Form> <mx:Label id="labStatus"/> </mx:Panel>
PureLoginMVC.mxml
<?xml version="1.0" encoding="utf-8"?> <mx:Application fontSize="12" xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="init()" layout="absolute"> <mx:Script> <![CDATA[ import system.MyFacade; import org.puremvc.as3.patterns.facade.Facade; public function init():void{ var myFacade:MyFacade = MyFacade.getInstance(); myFacade.startup(this); } ]]> </mx:Script> </mx:Application>
src目录下system包下:
MyFacade.as
package system
{
import Controller.ApplicationCommand;
import Controller.LoginCommand;
import org.puremvc.as3.interfaces.IFacade;
import org.puremvc.as3.patterns.facade.Facade;
public class MyFacade extends Facade implements IFacade
{
public function MyFacade()
{
super();
}
//实现MyFacade的单例
public static function getInstance():MyFacade{
if(instance == null){
instance = new MyFacade();
}
return instance as MyFacade;
}
//初始化
override protected function initializeController():void{
super.initializeController();
registerCommand(NameSpace.FacadeStart,ApplicationCommand);//注册开始命令
registerCommand(NameSpace.ApplicationLogin,LoginCommand);//注册登录命令
}
//开始的通知
public function startup(app:PureLoginMVC):void{
sendNotification(NameSpace.FacadeStart,app);
}
}
}
NameSpace.as
package system
{
public class NameSpace
{
public static const LoginProxyName:String = "LoginProxy";
public static const LoginSuccess:String = "loginSuccess";
public static const LoginFailed:String = "loginFailed";
public static const LoginEvent:String = "loginEvent";
public static const LoginMediatorName:String = "loginMediator";
public static const ApplicationLogin:String = "login";
public static const ApplicationMediatorName:String = "appliactionMediator";
public static const FacadeStart:String = "start";
}
}
src下Controller包
ApplicationCommand.as
package Controller
{
import org.puremvc.as3.interfaces.ICommand;
import org.puremvc.as3.patterns.command.MacroCommand;
public class ApplicationCommand extends MacroCommand implements ICommand
{
//构造器,可写可不写
public function ApplicationCommand()
{
super();
}
//写法一
override protected function initializeMacroCommand():void{
addSubCommand(ModelCommand);//添加model命令
addSubCommand(ViewCommand); //添加view命令
}
}
}
ModelCommand.as
package Controller
{
import model.LoginProxy;
import org.puremvc.as3.interfaces.ICommand;
import org.puremvc.as3.interfaces.INotification;
import org.puremvc.as3.patterns.command.SimpleCommand;
public class ModelCommand extends SimpleCommand implements ICommand
{
public function ModelCommand()
{
super();
}
override public function execute(notification:INotification):void
{
facade.registerProxy(new LoginProxy());//注册登录
}
}
}
ViewCommand。as
package Controller
{
import org.puremvc.as3.interfaces.ICommand;
import org.puremvc.as3.interfaces.INotification;
import org.puremvc.as3.patterns.command.SimpleCommand;
import view.ApplicationMediator;
import view.LoginMediator;
public class ViewCommand extends SimpleCommand implements ICommand
{
public function ViewCommand()
{
super();
}
//注册Mediator
override public function execute(notification:INotification):void
{
var app:PureLoginMVC = notification.getBody() as PureLoginMVC;
facade.registerMediator(new ApplicationMediator(app));//注册application中间人
facade.registerMediator(new LoginMediator(app));//注册登录中间人
}
}
}
LoginCommand。as
package Controller
{
import model.LoginProxy;
import model.vo.LoginVO;
import org.puremvc.as3.interfaces.ICommand;
import org.puremvc.as3.interfaces.INotification;
import org.puremvc.as3.patterns.command.SimpleCommand;
import system.NameSpace;
public class LoginCommand extends SimpleCommand implements ICommand
{
public function LoginCommand()
{
super();
}
override public function execute(notification:INotification):void{
var loginVO:LoginVO = notification.getBody() as LoginVO;
//var loginProxy:LoginProxy = new LoginProxy();
//从facade中获取proxy
var loginProxy:LoginProxy = facade.retrieveProxy(NameSpace.LoginProxyName) as LoginProxy;
loginProxy.CheckLogin(loginVO);
}
}
}
src下的model:
LoginProxy.as
package model
{
import model.vo.LoginVO;
import org.puremvc.as3.interfaces.IProxy;
import org.puremvc.as3.patterns.proxy.Proxy;
import system.NameSpace;
public class LoginProxy extends Proxy implements IProxy
{
public function LoginProxy()
{
super(NameSpace.LoginProxyName);//给登录通知一个参数名
}
//简单的进行判断
public function CheckLogin(vo:LoginVO):void{
if(vo.username =="test"&&vo.password == "test"){
sendNotification(NameSpace.LoginSuccess,vo);//发送成功的通知
}else{
sendNotification(NameSpace.LoginFailed);//发送失败的通知
}
}
}
}
model。vo下的:
LoginVO.as
package model.vo
{
public class LoginVO
{
public var username:String;
public var password:String;
}
}
src下的viewbao下:
ApplicationMediator。as
package view
{
import model.vo.LoginVO;
import mx.controls.Label;
import org.puremvc.as3.interfaces.IMediator;
import org.puremvc.as3.interfaces.INotification;
import org.puremvc.as3.patterns.mediator.Mediator;
import system.NameSpace;
public class ApplicationMediator extends Mediator implements IMediator
{
private var loginApplication:PureLoginMVC;
//构造器,获取application实例
public function ApplicationMediator(app:Object)
{
super(NameSpace.ApplicationMediatorName,app);
loginApplication = app as PureLoginMVC;
}
//监听通知
override public function listNotificationInterests():Array{
return[NameSpace.LoginSuccess];
}
//响应通知
override public function handleNotification(notification:INotification):void{
switch (notification.getName()){
case NameSpace.LoginSuccess:
setLoginSuc(notification.getBody() as LoginVO);
break;
default:
break;
}
}
private function setLoginSuc(loginVO:LoginVO):void{
var label:Label = new Label();
label.text = "欢迎光临!"+loginVO.username;
loginApplication.addChild(label);
}
}
}
LoginMediator.as
package view
{
import flash.events.Event;
import model.vo.LoginVO;
import mx.managers.PopUpManager;
import org.puremvc.as3.interfaces.IMediator;
import org.puremvc.as3.interfaces.INotification;
import org.puremvc.as3.patterns.mediator.Mediator;
import system.NameSpace;
public class LoginMediator extends Mediator implements IMediator
{
//获取应用实例
private var loginPanel:LoginForm;
private var loginApplication:PureLoginMVC;
public function LoginMediator(app:Object)
{
super(NameSpace.LoginMediatorName,app);
loginApplication = app as PureLoginMVC;
loginPanel = new LoginForm();
loginPanel.addEventListener(NameSpace.LoginEvent,onLogin);
PopUpManager.addPopUp(loginPanel,loginApplication);
PopUpManager.centerPopUp(loginPanel);
}
//监听通知
override public function listNotificationInterests():Array{
var arr:Array = new Array();
arr.push(NameSpace.LoginSuccess);
arr.push(NameSpace.LoginFailed);
return arr;
}
//响应通知
override public function handleNotification(notification:INotification):void{
switch(notification.getName()){
case NameSpace.LoginSuccess:
setLoginSuc();
break;
case NameSpace.LoginFailed:
setLoginFailed();
break;
default:
break;
}
}
//登录成功,移除登录窗口
private function setLoginSuc():void{
PopUpManager.removePopUp(loginPanel);
}
//登录失败,提示
private function setLoginFailed():void{
loginPanel.labStatus.text ="用户名密码有误,请重试";
loginPanel.loginName.setFocus();
}
private function onLogin(evt:Event):void{
if(loginPanel.loginName.text!=""&&loginPanel.loginPassword.text!=""){
var loginVO:LoginVO = new LoginVO();
loginVO.username = loginPanel.loginName.text;
loginVO.password = loginPanel.loginPassword.text;
sendNotification(NameSpace.ApplicationLogin,loginVO);
}else{
loginPanel.labStatus.text = "请输入用户名和密码";
}
}
}
}
- PureMVCLogin.rar (381.6 KB)
- 下载次数: 321
评论
3 楼
ch_kexin
2011-08-10
不好意思没有C#版的
2 楼
dandanlai
2011-07-29
谢谢,真好的例子,让我理解了很多。
1 楼
Nancy771959506
2011-04-03
有没有C#版的啊???
发表评论
-
flash builder内存不够的解决办法
2014-02-18 16:33 8177方法一 Flash Builder 4. ... -
网页中插入Flash中<object>标签属性
2014-04-14 10:43 810网页中插入Flash中<obje ... -
JSFL入门指导 .
2013-05-24 15:50 4757JSFL入门 JSF ... -
用 jsfl 扩展你的 flash
2013-05-24 14:49 1060为什么要学习jsfl? 作 ... -
谷歌Chrome浏览器总报Shockwave Flash插件...
2013-04-01 13:44 1241工具/原料 谷歌chrome浏览器,打开ch ... -
用AS3写滚动文字
2012-08-06 17:44 2361[SWF(backgroundColor=0)]//设置背景色 ... -
AS3中常用到的公式
2012-08-01 17:45 2275基本三角函数的计算:角的正弦值 = 对边 / 斜边角的余弦 ... -
如果 AVM1 内容(AS1 或 AS2)已加载到 AVM2 (AS3) 内容中,则不可将其移动到 displayList 的其他部分
2012-07-26 16:19 2689今天做一个东西时,无意中发现了这个问题。 问题描述 ... -
Flash CS5的弊端
2012-06-08 15:57 11271.Flash CS5之后 如何解决flash大字体锯齿问题 ... -
flash制作过程中避免占用CPU资源过度的几种方法
2012-06-04 14:19 10421.减少本透明物体的使用率 2.减少大型图片的移动,这个是最 ... -
我做的连连看
2011-11-02 16:07 011月1日完工,花费3天时间,自己做的简易连连看 -
Flex学习—关于Shareobject对象(本地共享对象)
2011-11-02 11:08 1084在我们浏览网页的时候,通常有个能存储客户端信息的Cookie文 ... -
Flex in a Week系列视频教程中文版发布
2011-10-19 09:51 1252Adobe Flex是全球炙手可热的RIA开发工具。除了官方网 ... -
RIAPlayer播放器不能用的问题解决 .
2011-10-19 09:45 2132在网上下在的flex4官方中文视频教程,需使用RIAPlaye ... -
AS3中Loader与URLLoader的比较
2011-10-17 08:54 878AS3已经中Loader与URLLoader是两个比较容易混淆 ... -
涂鸦小游戏
2011-09-02 14:13 975这是一个小的涂鸦游戏,我也是学习别人的,只是自己放在程序里,稍 ... -
AS3和JS互相调用的小技巧 【一】
2011-08-26 14:04 3766我对chm帮助手册小解: 选择“文件”>“新建”> ... -
AS3和JS互相调用的小技巧【二】
2011-08-26 13:56 17323引用AS3和JS的互相调用 ... -
Flash CS3 新增组件——Slider
2010-11-17 20:33 1640引用 这回我们来谈一谈Slider组件。 在Flex 2中也 ... -
[FLASH]影片剪辑上的九大事件-给想了解AS的同学
2010-03-10 15:06 1156在这部分教程我给大家 ...
相关推荐
**PureMVC框架详解** PureMVC是一种轻量级、模型-视图-控制器(Model-View-Controller,MVC)框架,最初是为Flash/Flex应用设计的,但后来扩展到支持多种编程语言,包括JavaScript、Java、C#等。在Flex开发中,Pure...
在这个压缩包中,包含了一个用ActionScript实现的PureMVC实例以及一份中文文档,帮助开发者理解和应用这个框架。 一、PureMVC简介 PureMVC是基于经典的MVC设计模式的,它将应用程序的数据(模型Model)、用户界面...
在提供的“mvc HelloWord实例.doc”中,你可能找到一个基础的PureMVC入门示例。通常,这个例子会展示如何创建一个简单的“Hello, World!”应用程序,包括如何定义模型、视图和控制器组件,以及如何使用PureMVC的...
这个“PureMVC简单例子”是为了帮助初学者理解PureMVC框架的基本原理和实际操作流程。在这个例子中,我们将深入探讨各层的职责以及它们之间的通信机制。 首先,我们来了解一下MVC模式。MVC模式是一种软件设计模式,...
1. **Multiton**:PureMVC引入了多实例(Multiton)模式,意味着每个`Model`、`View`和`Controller`都是全局唯一的,可以通过单例访问。 2. **Notifications**:PureMVC使用`Notification`作为组件间通信的机制,它...
8. **Facade(门面)**:门面是整个PureMVC架构的入口点,提供了一个简单的接口,用于初始化和访问系统中的所有其他组件。通过门面,开发者可以轻松地管理和协调应用程序的各个部分。 在压缩包文件`PureMVC_CPP_1_0...
- 示例项目:可能包含一个简单的Unity项目,演示了如何在实际项目中使用PureMVC框架。 - 文档:可能有README或其他文档,解释如何在Unity项目中集成和使用PureMVC。 - 测试用例:可能包含测试代码,用于验证PureMVC...
5. **Facade(门面)**:作为客户端应用程序与 PureMVC 框架之间的接口,Facade 提供了一个简单的方法来初始化和协调多模块应用程序。它管理所有模块的注册和通信,确保模块间的协作顺畅。 在提供的文件列表中,...
PureMVC的实例通常包括一个简单的应用场景,用于演示如何组织代码和利用框架功能。例如,你可以创建一个Todo应用,其中Model管理待办事项的列表,View显示这些列表,并允许用户添加、删除和标记完成任务,而...
标签"pureMVC java 框架搭建 登录"进一步明确了主题,强调了这是关于使用Java语言实现PureMVC框架,并且关注于框架的构建和一个实际的登录功能。 在"pureMVC例子"这个压缩包中,可能包含的文件有: 1. **Model** -...
《PureMVC结构pdf中文版》是对PureMVC框架的深度解析,主要针对Flex和ActionScript3开发者。这个文档提供了一套完整的理解、应用及优化PureMVC模式的方法。PureMVC是一个轻量级的、多层的架构框架,旨在简化开发过程...
《Lua实现PureMVC》 PureMVC是一个轻量级的框架,主要用于构建多层应用程序。这个框架的设计理念是基于模型-视图-控制器(Model-View-Controller,MVC)模式,它提供了一种组织代码的方式,使得代码更易于理解和...
【雅虎天气PureMVC实例解析】 在编程领域,PureMVC是一种经典的多层架构设计模式,它为ActionScript、JavaScript、C#等语言提供了一种可复用的框架,用于构建模块化、松耦合的富应用。在这个“雅虎天气PureMVC例子...
- **创建Façade**: 为了方便地使用PureMVC框架,开发者需要首先创建一个Façade实例,并通过它来初始化框架和注册组件。 - **初始化Façade**: 初始化过程中,Façade会注册所有必要的组件,并准备好接收通知。 - *...
在这个简单的PureMVC示例中,我们将深入理解其核心概念和工作流程。 首先,让我们分解PureMVC的三个主要组件: 1. **Model(模型)**:这是应用程序的核心数据部分,负责存储和管理业务对象。在PureMVC中,模型...
**Façade**:Façade是PureMVC框架中的门面类,它为用户提供了一个简单的接口来访问框架的核心功能。Façade类内部封装了Model、View和Controller的实例,通过这些实例来实现各个组件之间的通信。 **Core**:Core...
PureMVC是一个开源的、轻量级的框架,主要用于构建多层架构的富客户端应用程序。这个框架最初是为ActionScript编程语言设计的,但后来发展成为支持多种编程语言,包括JavaScript、C#、Java等。它引入了一种结构化的...
《PureMVC官方手册》是开发者们深入了解和学习PureMVC框架的重要参考资料,它提供了中英文两种语言版本,便于不同语言背景的程序员理解和应用。PureMVC是一个轻量级的、跨平台的Model-View-Controller(MVC)框架,...
PureMVC是一个轻量级的、跨平台的、基于观察者模式的多层应用程序架构框架。这个框架的主要目的是为了简化开发过程,提供一种模块化、结构化的开发方式,以提高代码的可重用性和可维护性。在本教程中,我们将深入...
纯MVC(PureMVC)是一个轻量级的框架,用于构建基于模型-视图-控制器(Model-View-Controller)设计模式的应用程序。在AS3.0版本中,PureMVC提供了强大的组织和管理代码的方式,使得开发者可以更有效地进行多层应用...