- 浏览: 1088480 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (695)
- 心情日记 (14)
- AS开发工具 (12)
- 文章转载 (99)
- AIR (5)
- 问题总结 (46)
- SWF格式 (7)
- 测试总结 (10)
- 外文资料 (9)
- 算法技术 (33)
- AS3常用开源库 (43)
- 源码范例 (102)
- FLEX (72)
- FLASH 优化 (33)
- 游戏开发 (49)
- 开发技术 (11)
- 工作应用 (34)
- AS3收集 (140)
- WebBase (0)
- 开发构想 (4)
- 设计模式 (2)
- 框架和框架范例 (19)
- RED5 (3)
- java开发 (3)
- JAVA (1)
- FLASH-3D (23)
- 3D (6)
- 书籍 (10)
- 业界信息资料 (3)
- C# (1)
- JavaScript (12)
- HTML5 (6)
- Flixel (1)
- D5Power RPG网页游戏引擎 (0)
- ColorMatrixFilter - 获得相应颜色的色调 函数 (0)
- Starling (0)
最新评论
-
老顽童203:
字体
水果忍者鼠标跟随特效制作[转载] -
hairball00:
[转] 放出超多的Flash组件源代码 -
he74552775:
flash AS3 RegExp简单功能用法(转) -
hanshuai1232000:
第四点,有利也有弊,等你做了大型的aprg,你就知道了
[转]位图数据内存优化 -
yangfantao:
太感谢
[转] 放出超多的Flash组件源代码
http://bbs.9ria.com/viewthread.php?tid=73554&extra=page%3D1%26amp;orderby%3Ddateline%26amp;filter%3D2592000
其实也只是我初用puremvc的心得。大多数理论查看资料验证过,不会误人子弟。
不是绝对理论化的东西。所以最好不要太过纠结了。内含详细注释。
应该可以让没有接触过此框架的同学们瞬间学会如何使用。
Puremvc的好处在什么地方:
mvc合理的区分可以便于扩展和维护,但是实际估计流水线上的同学们往往体会不到这种乐趣了。
不过个人认为Notification比event的优势在于无需提供消息发生者,从而在监听时也无需获得消息发出者的引用,从而降低耦合性
(换句话说应该叫降低设计降低系统耦合性的难度)。
一般推荐尽量封装mediator和proxy,然后使用command来调用方法实现view和model的通讯
这个游戏一般一条程序逻辑是
由view层发出请求(sendnotification),command监视到notification后,自动响应excute方法。在方法中获得所需proxy和media的引用,调用它们封装的api传递请求给proxy,proxy处理完数据后,再把更新的数据用notification带参数的形式发送到view层。View层可以直接在mediator中监听notification也可以还是通过command的形式处理业务逻辑。
数据处理的逻辑放在了model层。因为这个游戏是基于“贪吃蛇”,而不是基于”可以无穷变换的区块逻辑”。
Puremvc工程搭建心得
1.实例化一个applicationFacade
[code="java"]facade = ApplicationFacade.getInstance();
facade.sendNotification(ApplicationFacade.STARTUP, this);
这里的this就是应用程序顶层视图。
[code="java"]applicationFacade类一般小项目的写法都很类同。
override protected function initializeController():void
{
super.initializeController();
registerCommand(ApplicationFacade.STARTUP, StartupCommand);
}
这个StartupCommand往往也是添加两个子command
[code="java"]addSubCommand(ModelPrepCommand);
addSubCommand(ViewPrepCommand);
两个子command也都会按照FIFO原则先后触发
[code="java"]facade.registerProxy( new DataProxy() );//注册数据模型代理
和注册主视图
[code="java"]var main:Main = notification.getBody() as Main;
facade.registerMediator( new ApplicationMediator(main) );
主视图一般负责注册子视图,并且将视图组件添加到主视图中。
//画上主网格布局
[code="java"]tileFrame = new TileFrame(data.tileArray);
facade.registerMediator( new TileFrameMediator(tileFrame));
main.addChild(tileFrame);
//画上菜单
[code="java"]menu=new Menus();
facade.registerMediator(new MenuMediator(menu));
main.addChild(menu);
menu.y=tileFrame.y+tileFrame.height+20;
接下来就任意发挥了,需要处理业务逻辑的时候,注册command(registerCommand)。
sendNotification来触发它。
Command中常常需要获得Proxy的引用(retrieveProxy)和mediator的引用(retrieveMediator)
如果只是简单业务逻辑,也可以使用mediator直接关注
[code="java"]override public function listNotificationInterests():Array{
return([])//这个数组里写需要关心的notification
}
override public function handleNotification(notification:INotification):void{
switch( notification.getName() )
{
Case xxx://消息名
//处理
Break;
}
}
关于游戏逻辑
游戏逻辑很简单,不是本篇主要。就不赘述了
简单概括,
snakeArr 记录蛇身所在各个区块的数组
tileArray 记录所有区块的状态。0,空白1,蛇身2,食物
headNo 蛇头所在区块
蛇头接受到移动命令后根据方向计算下一格所在区块,把tileArray中此格坐标设为蛇身,并加入snakeArr开头,如果新蛇头位置不是食物,把tileArray中蛇尾区块设置为空白,并将该蛇尾从snakeArr中移除,否则不做处理。如果蛇头新位置和蛇身数组中元素有相同,则死亡。
最后丢上代码。
src文件夹,纯代码actionscript项目,新建工程,放入src目录编译即可
其实也只是我初用puremvc的心得。大多数理论查看资料验证过,不会误人子弟。
不是绝对理论化的东西。所以最好不要太过纠结了。内含详细注释。
应该可以让没有接触过此框架的同学们瞬间学会如何使用。
Puremvc的好处在什么地方:
mvc合理的区分可以便于扩展和维护,但是实际估计流水线上的同学们往往体会不到这种乐趣了。
不过个人认为Notification比event的优势在于无需提供消息发生者,从而在监听时也无需获得消息发出者的引用,从而降低耦合性
(换句话说应该叫降低设计降低系统耦合性的难度)。
一般推荐尽量封装mediator和proxy,然后使用command来调用方法实现view和model的通讯
这个游戏一般一条程序逻辑是
由view层发出请求(sendnotification),command监视到notification后,自动响应excute方法。在方法中获得所需proxy和media的引用,调用它们封装的api传递请求给proxy,proxy处理完数据后,再把更新的数据用notification带参数的形式发送到view层。View层可以直接在mediator中监听notification也可以还是通过command的形式处理业务逻辑。
数据处理的逻辑放在了model层。因为这个游戏是基于“贪吃蛇”,而不是基于”可以无穷变换的区块逻辑”。
Puremvc工程搭建心得
1.实例化一个applicationFacade
[code="java"]facade = ApplicationFacade.getInstance();
facade.sendNotification(ApplicationFacade.STARTUP, this);
这里的this就是应用程序顶层视图。
[code="java"]applicationFacade类一般小项目的写法都很类同。
override protected function initializeController():void
{
super.initializeController();
registerCommand(ApplicationFacade.STARTUP, StartupCommand);
}
这个StartupCommand往往也是添加两个子command
[code="java"]addSubCommand(ModelPrepCommand);
addSubCommand(ViewPrepCommand);
两个子command也都会按照FIFO原则先后触发
[code="java"]facade.registerProxy( new DataProxy() );//注册数据模型代理
和注册主视图
[code="java"]var main:Main = notification.getBody() as Main;
facade.registerMediator( new ApplicationMediator(main) );
主视图一般负责注册子视图,并且将视图组件添加到主视图中。
//画上主网格布局
[code="java"]tileFrame = new TileFrame(data.tileArray);
facade.registerMediator( new TileFrameMediator(tileFrame));
main.addChild(tileFrame);
//画上菜单
[code="java"]menu=new Menus();
facade.registerMediator(new MenuMediator(menu));
main.addChild(menu);
menu.y=tileFrame.y+tileFrame.height+20;
接下来就任意发挥了,需要处理业务逻辑的时候,注册command(registerCommand)。
sendNotification来触发它。
Command中常常需要获得Proxy的引用(retrieveProxy)和mediator的引用(retrieveMediator)
如果只是简单业务逻辑,也可以使用mediator直接关注
[code="java"]override public function listNotificationInterests():Array{
return([])//这个数组里写需要关心的notification
}
override public function handleNotification(notification:INotification):void{
switch( notification.getName() )
{
Case xxx://消息名
//处理
Break;
}
}
关于游戏逻辑
游戏逻辑很简单,不是本篇主要。就不赘述了
简单概括,
snakeArr 记录蛇身所在各个区块的数组
tileArray 记录所有区块的状态。0,空白1,蛇身2,食物
headNo 蛇头所在区块
蛇头接受到移动命令后根据方向计算下一格所在区块,把tileArray中此格坐标设为蛇身,并加入snakeArr开头,如果新蛇头位置不是食物,把tileArray中蛇尾区块设置为空白,并将该蛇尾从snakeArr中移除,否则不做处理。如果蛇头新位置和蛇身数组中元素有相同,则死亡。
最后丢上代码。
src文件夹,纯代码actionscript项目,新建工程,放入src目录编译即可
发表评论
-
设计模式(23种设计模式.AS3实现)
2011-10-13 02:04 0设计模式(23种设计模式.AS3实现) -
CutLoad 库 UI库
2011-08-22 22:17 0CutLoad 库 UI库 http://www.mk ... -
Alternativa3D资料
2011-08-15 18:52 0Alternativa3D资料 Alternativa3D资 ... -
[转]一个Collision类,其中的block方法可以实现两个物体之间的碰撞检测。
2011-07-30 02:35 1402第二个是书中的源代码给出了一个Collision类,其中 ... -
[转] 关于动态嵌入字体
2011-07-26 23:38 1497http://bbs.9ria.com/viewthre ... -
文字如何缩放?
2011-07-26 23:20 1262做个文件打印的东东,需要预览,就是把保存的Sprite类缩小再 ... -
大航海通信信息解析工具 --- 大航海通信信息解析工具梁冀南,吴亮-大航海 通信VO解析用的工具和类, 实用-- 需要配合DOKU 需要对CLASS 进行全路径
2011-07-25 22:51 0大航海通信信息解析工 ... -
FLASH CS3-4所带的 组件 打包SWC 其中带了 另附 YAHOO组件
2011-07-14 21:17 0FLASH CS3-4所带的 组件 打包SWC 其中带 ... -
Transform Tool 2 更新
2011-06-22 01:59 0本帖最后由 sun11086 于 2011-6-9 1 ... -
[转] 放出超多的Flash组件源代码
2011-06-21 21:45 3117奋战了2周,其实我本来 ... -
[新闻资讯] [Flash/Flex] ActionScript 3多线程框架-CMVC框架
2011-05-17 20:44 2030http://bbs.9ria.com/viewthread. ... -
(Robotlegs五子棋)HelloRobotlegs
2011-05-17 00:41 793(Robotlegs五子棋)HelloRobotlegs -
[转] 老板让俺总结的puremvc学习笔记
2011-04-10 05:48 1605http://bbs.9ria.com/viewthread. ... -
ASWING BETA2.0
2011-03-22 21:17 0ASWING BETA2.0 -
[转]贡献一个游戏的架构思路
2011-03-14 20:25 1829http://uh.9ria.com/space-12147- ... -
[转]http://www.uml.org.cn/softwareprocess/rjgc6.htm
2011-03-08 15:48 868http://www.uml.org.cn/softwa ... -
[转]XP 极限编程
2011-03-08 15:47 761http://blog.csdn.net/bluesmile9 ... -
一款简易的flash UI组件
2011-03-04 19:31 1190http://code.google.com/p/librau ... -
WeeMVC
2011-03-02 16:57 802http://weemvc.org/ API:-- htt ... -
[转]浅谈三层结构与MVC模式的区别
2011-02-28 12:03 1066有朋友谈到三层与MVC的 ...
相关推荐
标题中的“PureMVC中文教程”表明这是一份关于PureMVC框架的中文学习资料,主要面向想要理解和掌握这一框架的开发者。PureMVC是一个开源的、轻量级的、跨平台的MVC(Model-View-Controller)设计模式框架,它提供了...
PureMVC是一个轻量级的MVC(Model-View-Controller)框架,旨在最小化不同组件之间的耦合。它的设计理念是提高代码的可维护性和可扩展性,特别适合于大型应用的开发。以下是对PureMVC框架核心概念的详细解释: 1. *...
标题中的“初探PureMVC:使用PHP+MySQL+Flex结合PureMVC框架做了个Flex留言本”揭示了本文将探讨如何使用PureMVC框架,结合PHP后端和MySQL数据库,构建一个基于Flex的前端留言本应用。PureMVC是一个轻量级、可扩展的...
建议开发者参考《设计模式:可复用面向对象软件的基础》一书,了解PureMVC所使用的设计模式,以便更深入地理解和使用PureMVC框架。 在实际开发中,要遵循Creative Commons Attribution 3.0协议,这意味着在使用Pure...
**PureMVC框架详解** PureMVC是一种轻量级、模型-视图-控制器(MVC)框架,最初是为ActionScript开发的,后来被移植到多种编程语言中,包括C++。它提供了一种组织代码结构的方式,使得开发者可以更高效地构建可维护...
若是想使用,可以直接查看网上的pureMVC 文档,我并未对任何一个函数改名或者更换参数位置。 注意,这个PureMVC中的 class(ClassName, BaseName) 函数并不提供,因为此框架本意就是为了用于cocos2d-x-lua中。
### PureMVC实现与实践——教程 #### 一、PureMVC概述 PureMVC是一个开源的、跨平台的框架,旨在帮助开发者构建结构清晰、易于扩展和维护的客户端应用程序。该框架最初由Futurescale公司创建并维护,遵循美国...
标题 "PureMVC 中文版" 指的是 PureMVC 框架的一个中文版本,这是一款广泛应用的开源框架,特别设计用于构建富互联网应用程序(RIA),尤其是基于Adobe Flex和ActionScript 3的项目。PureMVC 提供了一种模块化、结构...
标题"最新PureMVC框架中文文档[官方教程]"表明这是一个关于PureMVC的最新中文参考资料,可能是由官方提供的,旨在帮助中国开发者更好地理解和使用PureMVC。官方教程通常会涵盖框架的基本概念、核心组件、最佳实践...
在"puremvc-csharp-standard-framework-master"这个压缩包中,你将找到PureMVC C#标准版的源代码,包括实现MVC模式的各种接口和类,以及示例应用,这些都是理解和使用PureMVC框架的关键资源。通过深入研究这些文件,...
《PureMVC框架电子书》是一本专注于ActionScript编程中的重要框架——PureMVC的教程。这个框架在RIA(Rich Internet Application)开发中扮演着关键角色,尤其对于那些追求高性能和高效代码组织的开发者而言,它是一...
这个外观类提供了一种访问框架的通用方式,并且对于大部分PureMVC的应用来说,只有这一个类是需要直接使用的。 总体来说,PureMVC通过以上提到的组件和设计,旨在减少程序中类的数量,简化MVC的实现,从而降低项目...
在Flex环境中,PureMVC框架提供了ActionScript 3的实现,使得开发者能够轻松地创建可复用、可维护的Flex应用。通过使用PureMVC,开发者可以将复杂的业务逻辑和UI分离,提高代码的可测试性。 ### 4. 使用...
总结,PureMVC是一个强大的MVC框架,通过定义清晰的角色和通信机制,实现了模型、视图和控制器之间的解耦。对于希望构建可维护和可扩展的Flex或ActionScript应用的开发者来说,它是理想的选择。通过深入理解并实践...
6. **Notification**: 事件通知机制,PureMVC使用观察者模式实现,允许任何对象订阅和发布通知。 7. **Facade**: 是整个应用程序的入口点,它管理所有其他MVC组件,并提供了一个全局访问点。Facade通常负责初始化...
这些文档可能详细介绍了如何使用PureMVC框架来组织代码,创建多层结构的应用程序,以及如何实现命令模式、观察者模式和中介者模式等。通过阅读这些文档,开发者可以学习如何在实际项目中有效地应用PureMVC,理解其...
PureMVC是一个轻量级的、跨平台的、基于观察者模式的多层应用程序架构框架。这个框架的主要目的是为了简化开发过程,提供一种模块化、结构化的开发方式,以提高代码的可重用性和可维护性。在本教程中,我们将深入...
《Flash ActionScript3 教程:PureMVC 实现、术语阐述及最佳实践》 在Flash开发领域,ActionScript3(AS3)是用于创建交互式内容和应用程序的主要编程语言。而PureMVC是一个轻量级的框架,它提供了一种结构化的方式...
标题中的“可以运行的PureMVC的登陆实例”是指一个基于PureMVC框架的登录功能实现,这个实例已经经过验证可以在FlexBuilder3环境下正常运行。PureMVC是一种经典的多层应用架构模式,它为ActionScript、JavaScript、...