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匹配。

 
 
分类: Robotlegsrobotlegs是一个非常好用的框架,个人很喜欢。网上现在也米什么robotlegs2.0版本的中文教程,源码也难得找。前些天有兄弟问robotlegs的问题,我就写了个demo,现在将其放上来,给正在学习robotlegs2.0的兄弟看看,希望能有点帮助。代码有写得不好的地方,希望指点出来,谢谢了!
喜欢的话,赏银1两表示支持下,QQQ!

robotlegs官网:http://www.robotlegs.org/ 可下载框架源码

我有时候不喜欢下载源码,喜欢直接在网页上看代码。可能也有兄弟一样的想法。下面是框架启动的源码:
文档类RobotLegsTest :

  1. package
  2. {
  3. import flash.display.Sprite;
  4. /**
  5. *
  6. *@author Louis_Song <br />
  7. *创建时间:2013-5-2下午5:31:35
  8. *
  9. */
  10. public class RobotLegsTest extends Sprite
  11. {
  12. public function RobotLegsTest()
  13. {
  14. var mainView:MainView = new MainView();
  15. this.addChild(mainView);
  16. }
  17. }
  18. }

复制代码

启动类MainView:

  1. package
  2. {
  3. import flash.display.Sprite;
  4. import robotlegs.bender.bundles.mvcs.MVCSBundle;
  5. import robotlegs.bender.extensions.contextView.ContextView;
  6. import robotlegs.bender.framework.api.IContext;
  7. import robotlegs.bender.framework.impl.Context;
  8. /**
  9. *
  10. *@author Louis_Song <br />
  11. *创建时间:2013-5-3上午11:22:10
  12. *
  13. */
  14. public class MainView extends Sprite
  15. {
  16. private var _context:IContext;
  17. private var _TopLayer:Sprite;
  18. private var _UILayer:Sprite;
  19. private var _BackgroundLayer:Sprite;
  20. public function MainView()
  21. {
  22. _context = new Context().install(MVCSBundle).configure(AppConfig).configure(new ContextView(this));
  23. _context.injector.map(MainView).toValue(this);
  24. _BackgroundLayer = new Sprite();
  25. this.addChild(_BackgroundLayer);
  26. _UILayer = new Sprite();
  27. this.addChild(UILayer);
  28. _TopLayer = new Sprite();
  29. this.addChild(_TopLayer);
  30. }
  31. public function get UILayer():Sprite
  32. {
  33. return _UILayer;
  34. }
  35. public function get BackgroundLayer():Sprite
  36. {
  37. return _BackgroundLayer;
  38. }
  39. public function get TopLayer():Sprite
  40. {
  41. return _TopLayer;
  42. }
  43. }
  44. }

复制代码

框架配置类AppConfig:

  1. package
  2. {
  3. import flash.events.Event;
  4. import flash.events.IEventDispatcher;
  5. import robotlegs.bender.extensions.contextView.ContextView;
  6. import robotlegs.bender.extensions.eventCommandMap.api.IEventCommandMap;
  7. import robotlegs.bender.extensions.mediatorMap.api.IMediatorMap;
  8. import robotlegs.bender.framework.api.IConfig;
  9. import robotlegs.bender.framework.api.IContext;
  10. import robotlegs.bender.framework.api.LogLevel;
  11. import module.login.LoginMediator;
  12. import module.login.LoginView;
  13. import event.LoginEvent;
  14. import service.LoginService;
  15. import commond.LoginCommand;
  16. import core.net.Server;
  17. import module.login.model.LoginModel;
  18. /**
  19. *
  20. *@author Louis_Song <br />
  21. *创建时间:2013-5-2下午5:36:37
  22. *
  23. */
  24. public class AppConfig implements IConfig
  25. {
  26. [Inject]
  27. public var context:IContext;
  28. [Inject]
  29. public var commandMap:IEventCommandMap;
  30. [Inject]
  31. public var mediatorMap:IMediatorMap;
  32. [Inject]
  33. public var contextView:ContextView;
  34. [Inject]
  35. public var eventDispatcher:IEventDispatcher;
  36. public function AppConfig()
  37. {
  38. }
  39. public function configure():void
  40. {
  41. context.logLevel = LogLevel.DEBUG;//输出日志
  42. //所有的模块model在这里声明
  43. context.injector.map(LoginModel).asSingleton();
  44. //角色model
  45. //背包model
  46. //阵型model
  47. //.....
  48. //。。。service 通信部分
  49. var service:LoginService = new LoginService();
  50. context.injector.map(LoginService).toValue(service);
  51. context.injector.injectInto(service);
  52. //角色service
  53. //背包service
  54. //阵型service
  55. //.....
  56. //commond
  57. commandMap.map(LoginEvent.OPEN).toCommand(LoginCommand);
  58. //角色commond
  59. //背包command
  60. //阵型command
  61. //.....
  62. //mediator绑定view
  63. mediatorMap.map(LoginView).toMediator(LoginMediator);
  64. //角色view
  65. //背包view
  66. //阵型view
  67. //.....
  68. Server.inst.addEventListener(LoginEvent.CONNECT,connectHandler);
  69. //...各种error什么的 ,继续在下面侦听(需要在server里面抛出相应事件)
  70. //框架搞完了,连接服务器,请求ooxx吧
  71. Server.inst.connect('192.168.1.80',8800);
  72. }
  73. /**
  74. *连接服务器成功(连接失败或断开socket神马的,可以走和连接成功一样的流程,写在次函数后面)
  75. * @param evt
  76. *
  77. */
  78. private function connectHandler(evt:LoginEvent):void
  79. {
  80. //连接成功了,此处相当于一个没有框架的新项目的构造函数了。可以以此为入口 大展拳脚了
  81. //。。。。
  82. //加载资源配置文件。。。
  83. //。。。。
  84. //我在这里请求打开登陆面板,commond的execute会触发
  85. eventDispatcher.dispatchEvent(new LoginEvent(LoginEvent.OPEN));
  86. }
  87. }
  88. }

复制代码

下面是项目源代码,用flash buider写的。可以导入到项目中查看:

robotlegs2.0框架实例源码带注释的更多相关文章

  1. 使用C#重写网上的60行 Javascript 俄罗斯方块源码 (带注释)

    在很久很久以前,就已经看过 60行Js的俄罗斯方块源码.无奈当时能力不够看明白,当时觉得就是个神作. 现在总算有空再看了,顺便用c#实现一遍(超过60行),顺道熟悉下Js API. 网上其他博客也有分 ...

  2. hbase源码带注释版本,放在这里,方便大家下载吧

    看了5个月的hbase源码,记录了一些笔记,如果有需要的朋友可以拿去. 里面总共包括几个主要的工程吧:hbase-common,hbase-client,hbase-prefix-tree,hbase ...

  3. 【所见即所得】textarea 精确限制字数、行数,中、英、全半角混检 。源码带注释

    主要解决难点: 1 中文 全角2字符深深的恶意 2 多行输入textarea 手动,自动换行问题 3 获得每行内容 原创,转载请注明出处! <!DOCTYPE html PUBLIC " ...

  4. 基于Docker的TensorFlow机器学习框架搭建和实例源码解读

    概述:基于Docker的TensorFlow机器学习框架搭建和实例源码解读,TensorFlow作为最火热的机器学习框架之一,Docker是的容器,可以很好的结合起来,为机器学习或者科研人员提供便捷的 ...

  5. [百度地图] 用于类似 DWZ UI 框架的 百度地图 功能封装类 [MultiZMap.js] 实例源码

    MultiZMap 功能说明 MultiZMap.js 本类方法功能大多使用 prototype 原型 实现,它是 ZMap 的多加载版本,主要用于类似 DWZ 这个 多标签的 UI 的框架: 包含的 ...

  6. JAVA上百实例源码以及开源项目

    简介 笔者当初为了学习JAVA,收集了很多经典源码,源码难易程度分为初级.中级.高级等,详情看源码列表,需要的可以直接下载! 这些源码反映了那时那景笔者对未来的盲目,对代码的热情.执着,对IT的憧憬. ...

  7. 框架-spring源码分析(一)

    框架-spring源码分析(一) 参考: https://www.cnblogs.com/heavenyes/p/3933642.html http://www.cnblogs.com/BINGJJF ...

  8. JUC同步器框架AbstractQueuedSynchronizer源码图文分析

    JUC同步器框架AbstractQueuedSynchronizer源码图文分析 前提 Doug Lea大神在编写JUC(java.util.concurrent)包的时候引入了java.util.c ...

  9. JAVA上百实例源码网站

    JAVA源码包1JAVA源码包2JAVA源码包3JAVA源码包4 JAVA开源包1 JAVA开源包2 JAVA开源包3 JAVA开源包4 JAVA开源包5 JAVA开源包6 JAVA开源包7 JAVA ...

随机推荐

  1. ABP应用层——参数有效性验证

    ABP应用层——参数有效性验证 基于DDD的现代ASP.NET开发框架--ABP系列之17.ABP应用层——参数有效性验证 ABP是“ASP.NET Boilerplate Project (ASP. ...

  2. linux Apache安装

    原文:linux Apache安装 1.       下载apache,http://httpd.apache.org/download.cgi  通过这个官方网站,我们可以下到最新的版本.现在版本都 ...

  3. PYTHON单元测试

    PYTHON开发入门与实战11-单元测试 1. 单元测试 本章节我们来讲讲django工程中如何实现单元测试,单元测试如何编写以及在可持续项目中单元测试的重要性. 下面是单元测试的定义: 单元测试是开 ...

  4. vimer

    vimer 第1.0章.统一概念   不管学什么技术,我都深信概念是最重要的.是影响整个学习轨迹,决定能在这个技术领域高度. 当然如果你现在的目的不是在学习而在于解决问题(很多人不愿意承认,或者没发现 ...

  5. Kd-Tree算法原理和开源实现代码

    本文介绍一种用于高维空间中的高速近期邻和近似近期邻查找技术--Kd-Tree(Kd树). Kd-Tree,即K-dimensional tree,是一种高维索引树形数据结构,经常使用于在大规模的高维数 ...

  6. OWIN轻量型框架介绍

    OWIN轻量型框架介绍 阅读目录 引言 框架的特色 如何启动 各项功能 静态路由的3种写法 伪静态路由的支持 处理Form表单提交的文件 流式处理Post请求的数据 多种请求类型自动识别 响应处理 请 ...

  7. Same binary weight (位运算)

    题目描述 The binary weight of a positive  integer is the number of 1's in its binary representation.for ...

  8. 写手Remoting测试工具

    基于.NET开发分布式系统.经经常使用到Remoting技术.在測试驱动开发流行的今天.假设针对分布式系统中的每一个Remoting接口的每一个方法都要写具体的測试脚本,无疑很浪费时间.所以,我想写一 ...

  9. JAVA设计模式(09):结构化-代理模式(Proxy)

    一,定义:  代理模式(Proxy):为其它对象提供一种代理以控制对这个对象的訪问. 二.其类图: 三,分类一:静态代理 1,介绍:也就是须要我们为目标对象编写一个代理对象,在编译期就生成了这个代理对 ...

  10. View Component

    View Component 在之前的MVC中,我们经常需要类似一种小部件的功能,通常我们都是使用Partial View来实现,因为MVC中没有类似Web Forms中的WebControl的功能. ...