2014-07-06 25 views
0
「交談」海誓山盟

說我有使用座標的三維陣列程序生成的兩個對象。第一個維度是「網格」表格,第二個維度是網格的「行」,第三個維度是該行中的列位置。 (我只提到數組的設置方式,以便可能有所幫助的任何洞察力)。需要一種方法爲兩個獨立的動力學對象在Javascript

使用for循環和利用我在視覺網格創建多個三角形的動力學庫正多邊形代的標準方法。每個三角形都是它自己的對象,我想獨立進行動畫製作。

我的問題是:如果我想將動畫串成一個三角形的鄰居,我不確定如何引用哪個三角形是「原點」三角形的鄰居(無需在每個三角形內創建「網格ID」屬性三角形對象和使用三角形自己的網格ID進行交叉引用),然後一旦識別出對象,就將補間動畫推送給它的鄰居。

每個三角形其命名爲內存引用完全一樣的,所以叫子屬性X三角形的功能將無法正常工作,我需要一個方式,通過ID或其他一些屬性得到的對象,使該對象運行它的功能。

這裏是動力學JS對象的一個​​示例:

  var tri = new Kinetic.RegularPolygon({ 
       x: x, 
       y: y, 
       sides: 3, 
       radius: 15, 
       rotation: z, 
       fillRed: 17, 
       fillGreen: 17, 
       fillBlue: 17, 
       closed: true, 
       shadowColor: '#5febff', 
       shadowBlur: 5, 
       shadowOpacity: 0.18 
      }); 

我從一個單獨的陣列創建網格像這樣:

 function createTri(x, y, z) { 
      var tri = new Kinetic.RegularPolygon({ 
       x: x, 
       y: y, 
       sides: 3, 
       radius: 15, 
       rotation: z, 
       fillRed: 17, 
       fillGreen: 17, 
       fillBlue: 17, 
       closed: true, 
       shadowColor: '#5febff', 
       shadowBlur: 5, 
       shadowOpacity: 0.18 
      }); 


      layer.add(tri); 

     } 

     for (var i = 0; i < pax.length; i++){ 
      for (var j = 0; j < pax[i].length; j++){ 
       createTri(pax[i][j][0],pax[i][j][1],pax[i][j][2]); //Reads the two coordinates and the orientation located in the grid based on index location and then calls the function createTri to create each triangle in the grid. 
      }; 
     } 

如果我需要進一步解釋我的意圖,我會高興地澄清。

回答

0

你可以使用simple.js,並與它們彼此關聯關係創建對象。

例如

var Triangle = Simple.Model = function(options) { 
    // add any attributes 
    this.attributes = this.defaults || {}; 
} 

當你罵createTri,

var tri = new Kinetic.RegularPolygon({ ... }); 

var obj = new Triangle(); 
obj.polygon = tri; 
obj.neighbors = []; 

這僅僅是我會考慮的方法。如果您想爲對象添加更多功能,則可以更輕鬆地進行擴展。

+0

可能會奏效,但有沒有,你知道的,任何功能有點像「getObjectByAttributeValue()」? (有點像getElementByID()),然後讓我調用類似於:getObjectByAttributeValue(valueCrossReference).callFunction? – JSArrakis

+0

如果您的意思是一個HTML元素,[是](http://api.jquery.com/attribute-equals-selector/)。 – bryce

+0

我沒有意思是使用HTML ...我用的getElementById至於是什麼我試着做 – JSArrakis

相關問題