2013-05-13 72 views
0

我試圖在場景中創建一個n×n大小的矩陣,每個元素都應該是一個名爲Table的Movie Clip,它已經在Library中準備好了。具有自定義類型元素的二維數組

var tables:Array.<Table> = new Array.<Table>(tablesDimension, tablesDimension); 

for (var i:int = 0; i < tablesDimension; i++) { 
    for (var j:int = 0; j < tablesDimension; j++) { 
     var tempTable:Table = new Table(); 
     tempTable.x = i * 150 + 100; 
     tempTable.y = j * 100 + 100; 
     stage.addChild(tempTable); 
     tables.push(tempTable); 
     trace(tables[0][0].x); 
    } 
} 

電影剪輯(在這種情況下,表)不能放在二維數組?我應該在最後一行中使用某種類型轉換,在trace(tables[0][0].x);上向編譯器建議:它是關於Table類型對象的?

錯誤消息我收到:「類型參數與非參數化類型」

回答

1

我不確定你爲什麼試圖處理你的第一行,但這是不正確的。 引用adobe actionscript參考:

Array()構造函數可以以三種方式使用。

看到這個adobe reference link on Array creation。或者你可以使用矢量(這是打字,就像你想要的)。

所以基本上你想創建一個數組,它本身將包含數組。您需要在通過第一個時創建其中包含的數組。否則,你會嘗試推入不存在的元素。此外,您需要添加索引作爲RST說。

var tables:Array.<Table> = new Array(); 

for (var i:int = 0; i < tablesDimension; i++) { 

    tables[i] = new Array(); 
    for (var j:int = 0; j < tablesDimension; j++) { 
     var tempTable:Table = new Table(); 
     tempTable.x = i * 150 + 100; 
     tempTable.y = j * 100 + 100; 
     stage.addChild(tempTable); 
     tables[i].push(tempTable); 
    } 
} 
     trace(tables[0][0].x); 

這應該工作。

0

我認爲你缺少一個索引。試試這個

for (var i:int = 0; i < tablesDimension; i++) { 
    for (var j:int = 0; j < tablesDimension; j++) { 
     var tempTable:Table = new Table(); 
     tempTable.x = i * 150 + 100; 
     tempTable.y = j * 100 + 100; 
     stage.addChild(tempTable); 
     tables[i].push(tempTable); 
     trace(tables[0][0].x); 
    } 
} 
+0

不工作。我收到的錯誤消息:「使用非參數化類型輸入參數」 – MMMM 2013-05-13 19:48:42

+0

我刪除了一個索引。 – RST 2013-05-13 20:26:27