Tag Archive: gaia


RobotGaiaAnt Demo

我在再谈Gaia结合Robotlegs进行开发一文中提到的视图接口注入方法,在Robotlegs更新到1.4版本以后就失效了。问题出在以下这行代码:

mediatorMap.mapView(IModule, ModulePageMediator, IModule);

在新版的Robotlegs下并不会生成对应的Mediator。经过一番研究后发现要改写MediatorMap才行,幸好已经有人开发出了ViewInterfaceMediatorMap插件,省了我很多工作。这个插件使用很简单。用以下代码来覆盖掉默认的mediatorMap就可以支持视图的接口注入了:

override protected function get mediatorMap():IMediatorMap
{
	return _mediatorMap ||= new ViewInterfaceMediatorMap(contextView, createChildInjector(), reflector);
}

我已经将该插件包含到RobotGaiaAnt 0.7的更新中,同时提供了一个简单的例子来演示这套框架的运行情况:RGADemo

这个例子包含了两个页面HomeMember。其中Home是一个通常的简单页面,而Member页面继承了ModulePage,是作为一个Robotlegs模块存在,包含独立的MemberContext

override public function set parentInjector(value : IInjector) : void
{
	super.parentInjector = value;
 
	context = new MemberContext(this, false, value, loaderInfo.applicationDomain);
}

我们可以在初始化的时候就自动启动Context。也可以选择在transitionIn()函数执行的时候再启动,这样能够引用到这个页面下包含的各项资源。但是在本例中两种启动时机都可以。

View full article »

RobotGaiaAnt 0.7

RobotGaiaAnt又迎来了一次较大的更新。本次升级主要有两个重点:一是Robotlegs升级到1.4版本以后,以前的框架采用的视图注入方法不兼容了。经过一番研究后,我找到了ViewInterfaceMediatorMap扩展,可以完美实现视图的接口注入。具体的细节将在下一篇描述。 二是FDT4.o以后增加了swf发布的设置文件和更好的Ant任务支持,RobotGaiaAnt将其整合,进一步简化工作。

首先我们来看项目的配置更新。和以前的版本一样:建立项目,复制必要的文件到项目目录下。然后对gaia.properties文件进行设置:

View full article »

RobotGaiaAnt Updated

距离写下第一篇RobotGaiaAnt Workflow的时间已经快满一年了。在这一年里,经过了几个项目的考验,边执行边完善,这套使用SWC的工作方式已经得到了一定范围的推广。在交流中大家遇到最多的问题还是设计与程序的衔接。有关设计师怎么看到最终结果,和如何能够真正减少程序员打开Flash IDE进行的操作等。我在去年12月份的分享会中提出了一定程度的解决方案。直到最近才抽空把设计师提出的预览问题给解决了。

在传统的流程中,发布最终文件是在Flash IDE里,现在把这个工作转移到FDT里以后,要求设计师去使用FDT难度比较大。所以最佳方法还是能在IDE里直接生成最终文件。按照Gaia的做法,搭建网站基本结构的时候通过JSFL脚本复制fla模版,并且把发布设置都做好了,非常方便。那么在FDT里用Ant怎么来实现类似的效果呢。考虑到我们不想要打开Flash IDE,也就是说JSFL的功能不能用了,那么fla里面的设置我们就无法更改。幸好Flash CS5新增了基于文本的xfl格式的支持,我们就可以制作一个xfl文件模版,让Ant来批量复制和修改发布属性,问题就解决了。

按照以上思路我升级了一下RobotGaiaAnt到了0.6.5版本。在这一版里,执行scaffolding target后将会多生成一个ide目录,里面就包含了每个页面的xfl文件。在不需要程序员介入的情况下,设计师可以直接用xfl发布最终文件。设计师还是需要两步工作,第一步永远是生成SWC文件。记住SWC就是给程序员使用的Library,为了更好的协作,这是必须的步骤。

解决协作问题的下一个关键就是团队内部普遍认同和执行的元件命名和帧标签命名规范,以及我在下一篇将会讲到的组件的运用。

Teaser先放一下哈:https://github.com/kyoji2/KafeComponent

Powered by KevinCao.com ©2010 | Platform: WordPress | Theme: Motion
kevincao.com