`
云端的Android
  • 浏览: 61660 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

LimeJS---Html5游戏引擎简介(续)--基本特性介绍

阅读更多
1.基于Closure

LimeJS基于Closure,Closure是Google开发的JS库。它已经被用来开发了许多产品比如Gmail,GoogleDocs等。它具有高可维护性,高可读性,快速等特点。他也可以和很多工具结合比如Compiler或Templates.

2.namespace命名空间
Closure的一个显著特点就是支持namespacing system(命名空间)。不像其他库那样所有的代码只靠文件分割。每一个文件为他其中的代码指定一个name,也可以通过name去引入其他的文件如果这个文件的name被公开了的话,类似于java中的import和package.
开发时你需要导入"base.js"文件,这个文件中提供了几个新的function比如
goog.provide(namespace)和goog.require(namespace)。Provide函数声明了这个文件中所有的代码能被它人访问的name。Require函数类似于java中的import


name不必指明正确的文件夹结构也能被正确找到。Closure使用deps.js文件管理namespace与文件路径的映射,这就意味着,如果你加入了新的namespace
你就必须在命令行中执行

python  bin/lime.py update
以便更新deps.js文件,这样你的新文件才能被访问到
在你自己的项目中并不一定要使用goog.provide()。但是最好用它。
这样在你最后编译你的游戏时会得到更好的结果

3.继承
使用LimeJS工作带来的一个特点就是可以以内置类的形式自定义子类。这样你可以给公共对象加入你自己游戏的特殊方法。下面是一个例子,从lime.Circle继承出一个Ball的子类
mygame.Ball.


	#!JavaScript
	// make file loadable from other files
	goog.provide('mygame.Ball'); 
	
	// request that lime.Circle's definitions are loaded
	goog.require('lime.Circle'); 
	
	// new constructor
	mygame.Ball = function(){
	    // call parents constructor 
		goog.base(this);
		
		// custom initialization code
		this.color_ = 'red';
	}
	// define parent class
         //注意这里就是设定Ball与Circle的继承关系
	goog.inherits(mygame.Ball,lime.Circle); 
	
	// new custom method for ball instances
	mygame.Ball.prototype.myMethod = function(){	
	}

4.Event
Closure给你提供了函数用来为Object产生监听事件
你可以用`goog.events.listen(src, type, listener, opt_capture, opt_handler)`. 函数添加监听事件 Src 是发送事件的目标对象,type是事件类型(for example mousedown). Listener 是事件触发后的回调函数 移除事件使用`goog.events.unlisten()` 参数一样
如果你想让你的自定义对象能够产生事件,你必须继承goog.events.EventTarget
然后调用对象的 `dispatchEvent()方法.


想要了解更多Closure Library的信息,
访问文档http://closure-library.googlecode.com/svn/docs/index.html,
电子书http://www.amazon.com/Closure-Definitive-Guide-Michael-Bolin/dp/1449381871
视频http://www.youtube.com/watch?v=yp_9q3tgDnQ
0
1
分享到:
评论
1 楼 fancy4u 2011-07-01  
有空多交流...我也在研究html5 游戏框架  QQ 406972

相关推荐

Global site tag (gtag.js) - Google Analytics