2013-11-15 35 views
0

我和我大学的一个团队正在使用KineticJS在网络上开发一款游戏。我们正在使用显示,删除和几个actionevents的形状。KineticJS - 如何拆分物体和文件

现在我们还没有走得很远,但我仍然觉得档案越来越大。你有关于如何将所有内容分成小文件的提示吗?是否有可能将所有对象存储在一个文件中,并在另一个文件中执行actionevents?欢迎任何提示,了解工作流程应该是什么样子!

回答

0

提示:使用工厂模式来定义和创建动力学对象

这里有一个演示,让使用一个工厂,你在大约50行JavaScript代码的需要建立尽可能多的圈:

http://jsfiddle.net/m1erickson/s89Mu/

关于工厂模式

首先,创建一个保存人一个JS对象l定义单个唯一圆的属性。

您可以将此视为如何构建此确切圈子的蓝图。

实际的Kinetic.Circle将在稍后使用myCircleDefinition5进行构建,并将添加到图层中。

性能注释:您可以使用JSON来保存此值,以将myCircleDefinition5保存到文件或数据库中。

就像不引人注意的JavaScript一样,您的数据定义与您的代码保持分离,以实现更简洁的代码。

// create the definition of a circle -- not yet an actual circle 

var myCircleDefinition5={ 
    cx: 150, 
    cy: 100, 
    radius: 20, 
    fill: "blue", 
    strokewidth: 4 
} 

下面是一个使用myCircleDefinition5添加的层上的真实动力学圆的代码:

// turn the object into a real Kinetic.Circle 

makeCircle(myCircleDefinition5); 

// this is the "factory" that takes a definition and produces a real Kinetic.Circle 

function makeCircle(circleObject){ 
    var circle = new Kinetic.Circle({ 
     x:circleObject.cx, 
     y:circleObject.cy, 
     radius: circleObject.radius, 
     fill: circleObject.fill, 
     stroke: 'lightgray', 
     strokeWidth: circleObject.strokewidth, 
     draggable: true 
    }); 
    layer.add(circle); 
    layer.draw(); 
}