robotlegs2.0框架实例源码带注释
robotlegs2.0框架实例源码带注释
Robotlegs2的Starling扩展
有个老外写了robotleges2的starling扩展,地址是
https://github.com/brean/robotlegs2-starling-viewmap
需要注意的是要先创建一个基于Starling的容器,例如继承Starling的Sprite。这个容器的mediator继承roboglegs原生的mediator。然后在这个容器内addChild基于Starling或者Feathers的组件,这些组件的mediator继承StarlingMediator,这样在config里面配置的基于starling或者feathers的组件的view和mediator才会起作用。
需要注意的是一个Starling容器内的子对象最好在该容器的StarlingMediator的initialize() 内执行初始化,这样能确保子对象的view和mediator匹配。
喜欢的话,赏银1两表示支持下,
robotlegs官网:http://www.robotlegs.org/ 可下载框架源码
我有时候不喜欢下载源码,喜欢直接在网页上看代码。可能也有兄弟一样的想法。下面是框架启动的源码:
文档类RobotLegsTest :
- package
- {
- import flash.display.Sprite;
- /**
- *
- *@author Louis_Song <br />
- *创建时间:2013-5-2下午5:31:35
- *
- */
- public class RobotLegsTest extends Sprite
- {
- public function RobotLegsTest()
- {
- var mainView:MainView = new MainView();
- this.addChild(mainView);
- }
- }
- }
复制代码
启动类MainView:
- package
- {
- import flash.display.Sprite;
- import robotlegs.bender.bundles.mvcs.MVCSBundle;
- import robotlegs.bender.extensions.contextView.ContextView;
- import robotlegs.bender.framework.api.IContext;
- import robotlegs.bender.framework.impl.Context;
- /**
- *
- *@author Louis_Song <br />
- *创建时间:2013-5-3上午11:22:10
- *
- */
- public class MainView extends Sprite
- {
- private var _context:IContext;
- private var _TopLayer:Sprite;
- private var _UILayer:Sprite;
- private var _BackgroundLayer:Sprite;
- public function MainView()
- {
- _context = new Context().install(MVCSBundle).configure(AppConfig).configure(new ContextView(this));
- _context.injector.map(MainView).toValue(this);
- _BackgroundLayer = new Sprite();
- this.addChild(_BackgroundLayer);
- _UILayer = new Sprite();
- this.addChild(UILayer);
- _TopLayer = new Sprite();
- this.addChild(_TopLayer);
- }
- public function get UILayer():Sprite
- {
- return _UILayer;
- }
- public function get BackgroundLayer():Sprite
- {
- return _BackgroundLayer;
- }
- public function get TopLayer():Sprite
- {
- return _TopLayer;
- }
- }
- }
复制代码
框架配置类AppConfig:
- package
- {
- import flash.events.Event;
- import flash.events.IEventDispatcher;
- import robotlegs.bender.extensions.contextView.ContextView;
- import robotlegs.bender.extensions.eventCommandMap.api.IEventCommandMap;
- import robotlegs.bender.extensions.mediatorMap.api.IMediatorMap;
- import robotlegs.bender.framework.api.IConfig;
- import robotlegs.bender.framework.api.IContext;
- import robotlegs.bender.framework.api.LogLevel;
- import module.login.LoginMediator;
- import module.login.LoginView;
- import event.LoginEvent;
- import service.LoginService;
- import commond.LoginCommand;
- import core.net.Server;
- import module.login.model.LoginModel;
- /**
- *
- *@author Louis_Song <br />
- *创建时间:2013-5-2下午5:36:37
- *
- */
- public class AppConfig implements IConfig
- {
- [Inject]
- public var context:IContext;
- [Inject]
- public var commandMap:IEventCommandMap;
- [Inject]
- public var mediatorMap:IMediatorMap;
- [Inject]
- public var contextView:ContextView;
- [Inject]
- public var eventDispatcher:IEventDispatcher;
- public function AppConfig()
- {
- }
- public function configure():void
- {
- context.logLevel = LogLevel.DEBUG;//输出日志
- //所有的模块model在这里声明
- context.injector.map(LoginModel).asSingleton();
- //角色model
- //背包model
- //阵型model
- //.....
- //。。。service 通信部分
- var service:LoginService = new LoginService();
- context.injector.map(LoginService).toValue(service);
- context.injector.injectInto(service);
- //角色service
- //背包service
- //阵型service
- //.....
- //commond
- commandMap.map(LoginEvent.OPEN).toCommand(LoginCommand);
- //角色commond
- //背包command
- //阵型command
- //.....
- //mediator绑定view
- mediatorMap.map(LoginView).toMediator(LoginMediator);
- //角色view
- //背包view
- //阵型view
- //.....
- Server.inst.addEventListener(LoginEvent.CONNECT,connectHandler);
- //...各种error什么的 ,继续在下面侦听(需要在server里面抛出相应事件)
- //框架搞完了,连接服务器,请求ooxx吧
- Server.inst.connect('192.168.1.80',8800);
- }
- /**
- *连接服务器成功(连接失败或断开socket神马的,可以走和连接成功一样的流程,写在次函数后面)
- * @param evt
- *
- */
- private function connectHandler(evt:LoginEvent):void
- {
- //连接成功了,此处相当于一个没有框架的新项目的构造函数了。可以以此为入口 大展拳脚了
- //。。。。
- //加载资源配置文件。。。
- //。。。。
- //我在这里请求打开登陆面板,commond的execute会触发
- eventDispatcher.dispatchEvent(new LoginEvent(LoginEvent.OPEN));
- }
- }
- }
复制代码
下面是项目源代码,用flash buider写的。可以导入到项目中查看:
robotlegs2.0框架实例源码带注释的更多相关文章
- 使用C#重写网上的60行 Javascript 俄罗斯方块源码 (带注释)
在很久很久以前,就已经看过 60行Js的俄罗斯方块源码.无奈当时能力不够看明白,当时觉得就是个神作. 现在总算有空再看了,顺便用c#实现一遍(超过60行),顺道熟悉下Js API. 网上其他博客也有分 ...
- hbase源码带注释版本,放在这里,方便大家下载吧
看了5个月的hbase源码,记录了一些笔记,如果有需要的朋友可以拿去. 里面总共包括几个主要的工程吧:hbase-common,hbase-client,hbase-prefix-tree,hbase ...
- 【所见即所得】textarea 精确限制字数、行数,中、英、全半角混检 。源码带注释
主要解决难点: 1 中文 全角2字符深深的恶意 2 多行输入textarea 手动,自动换行问题 3 获得每行内容 原创,转载请注明出处! <!DOCTYPE html PUBLIC " ...
- 基于Docker的TensorFlow机器学习框架搭建和实例源码解读
概述:基于Docker的TensorFlow机器学习框架搭建和实例源码解读,TensorFlow作为最火热的机器学习框架之一,Docker是的容器,可以很好的结合起来,为机器学习或者科研人员提供便捷的 ...
- [百度地图] 用于类似 DWZ UI 框架的 百度地图 功能封装类 [MultiZMap.js] 实例源码
MultiZMap 功能说明 MultiZMap.js 本类方法功能大多使用 prototype 原型 实现,它是 ZMap 的多加载版本,主要用于类似 DWZ 这个 多标签的 UI 的框架: 包含的 ...
- JAVA上百实例源码以及开源项目
简介 笔者当初为了学习JAVA,收集了很多经典源码,源码难易程度分为初级.中级.高级等,详情看源码列表,需要的可以直接下载! 这些源码反映了那时那景笔者对未来的盲目,对代码的热情.执着,对IT的憧憬. ...
- 框架-spring源码分析(一)
框架-spring源码分析(一) 参考: https://www.cnblogs.com/heavenyes/p/3933642.html http://www.cnblogs.com/BINGJJF ...
- JUC同步器框架AbstractQueuedSynchronizer源码图文分析
JUC同步器框架AbstractQueuedSynchronizer源码图文分析 前提 Doug Lea大神在编写JUC(java.util.concurrent)包的时候引入了java.util.c ...
- JAVA上百实例源码网站
JAVA源码包1JAVA源码包2JAVA源码包3JAVA源码包4 JAVA开源包1 JAVA开源包2 JAVA开源包3 JAVA开源包4 JAVA开源包5 JAVA开源包6 JAVA开源包7 JAVA ...
随机推荐
- Android 最热的高速发展框架XUtils
近期搜了一些框架供刚開始学习的人学习,比較了一下XUtils是眼下git上比較活跃 功能比較完好的一个框架,是基于afinal开发的,比afinal稳定性提高了不少.以下是介绍: 鉴于大家的热情,我又 ...
- 工作介绍xml书包文件
光开放平台一个非常重要的特点就是简化了对xml文件的操作,您能非常轻松地引入xml文件.定位到随意节点.增删属性和文本以及节点本身,以下咱们用实例来介绍对xml的操作 引入xml文件: <cht ...
- SSIS从理论到实战,再到应用(1)----创建自己的第一个包
原文:SSIS从理论到实战,再到应用(1)----创建自己的第一个包 其实,如果你使用sql2008的导出导入工具的时候,你就已经在使用包了. 目标:使用sql2008 导入导出工具,导入excel数 ...
- hdu 2066 一个人的旅行 最短路径
一个人的旅行 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Sub ...
- CSS3+HTML5特效1 - 上下滑动效果
先看看效果,把鼠标移上去看看. back front 1. 本实例需要以下元素: a. 外容器 box b. 内容器 border c. 默认显示内容 front d. 滑动内容 back 2. 外容 ...
- TCP连接状态
TCP 连接状态按 TCP 协议的标准表示法, TCP 可具有如下几种状态,为讨论方便,如下讨论中区分服务端和客户端,实际软件处理上对二者一视同仁. CLOSED关闭状态.在两个通信端使用“三路握手” ...
- linux c ping 实现
用c语言实现的linux中的ping命令 #include <stdio.h> #include <signal.h> #include <arpa/inet.h> ...
- NET 2015
.NET 2015 英文原文:Understanding .NET 2015 Understanding 翻译为了解或理解,对于 .NET 来说,2015 年注定会更加精彩,所以标题就用了“精彩”这个 ...
- Zepto
移动开发流量省起来之Zepto 事情是这样的:最近开发的一个手机网站客户反应访问起来特别慢,刷了半天才能看到页面,然后问我们是不是网站出问题了.于是我赶紧找了各种手机测试一下,没有问题,首先排除程序错 ...
- getch()和getchar()之再讨论
原文:getch()和getchar()之再讨论 在C语言的字符处理函数中,getch()和getchar()是经常让人迷惑的两个函数,他们都有一些“奇怪的”特点让初学者摸不着头脑.两个函数有很多相似 ...