2013-12-19 46 views
0

這是情況。我有下面的代碼行:信息我似乎只能在我需要在JavaScript中使用的控制檯中獲取信息?

console.log(contents.storeShapes_mc.children[i]); 

打印出控制檯,像這樣:

lib.Store106II {id: 137, _matrix: a, _rectangle: a, children: Array[2], shape: a…} 

我想找回lib.Store106II在我的JavaScript使用,但控制檯似乎是一個只有我能夠掌握這些特定的數據。有沒有辦法從代碼中訪問這些信息?

注: (1)我使用Flash創建的內容,對出口EaselJS (2)由於語法工具包CreateJS工具,都在this answer的意見並不能幫助我,很遺憾。

編輯: 這裏是JavaScript的是「工具包CreateJS」從Flash導出到創建該對象,與數十家類似的對象沿:我假設你是從內部調用的console.log

(lib.Store106II = function() { 
this.initialize(); 

// Layer 1 
this.shape = new cjs.Shape(); 
this.shape.graphics.f().s("#DDE0CE").ss(1,0,0,4).p("AgGE4IEyjjIkfmLIk4Dlg"); 

this.shape_1 = new cjs.Shape(); 
this.shape_1.graphics.f("#A0A67C").s().p("AkrhRIE4jmIEfGMIkyDjg"); 

this.addChild(this.shape_1,this.shape); 
}).prototype = p = new cjs.Container(); 
p.nominalBounds = new cjs.Rectangle(-30,-31.1,60.2,62.4); 

/* some other code */ 

this.s106II = new lib.Store106II();  

/* s106II is eventually added as an element of storeShapes_mc 
which is in turn added as an element of contents */ 
+1

我們可以看到顯示如何獲得該元素的代碼? –

+0

@JanDvorak,我剛剛編輯了問題以添加您請求的代碼。 –

回答

0

以極大的感謝fkranenburg在CreateJS社區支持論壇,我已經找到了答案,我的問題! http://community.createjs.com/discussions/easeljs/4568-is-there-a-way-to-retrieve-an-array-of-all-the-custom-classes-created-in-the-lib-namespace

for (libname in lib) { 
     lib[libname].prototype.className = libname; 
    } 

這個循環週期通過lib命名空間(你可以做到這一點,顯然!),並獲取該命名空間中創建的所有構造函數的名稱。然後,使用動態引用(也稱爲方括號表示法,又名數組表示法),通過名稱引用該名稱空間中的每個構造函數,並訪問其原型,以將名爲className的新屬性添加到由該構造函數創建的對象中,該對象返回該對象的構造函數的名稱!

0

閃? 如果是這樣,你需要從閃存中調用一個函數,並傳遞函數所需的數據:contents.storeShapes_mc.children[i]

然後將數據存儲在一個變量,並且可以用來查詢對象,並返回你需要什麼。

但是需要一個你正在用來獲得更好理解的例子。

- 編輯 -

可能略有但如果誤解你調用

console.log(contents.storeShapes_mc.children[i]); 

你能不能簡單地做到以下幾點:

var obj = contents.storeShapes_mc.children[i]; 
console.log(obj.id); 
console.log(obj._matrix); 
etc... 
+0

我沒有看到提及的任何閃光燈? – Christoph

+2

'注意:1)我正在使用Flash中創建的內容' –

+0

另一種情況:您不應該在最後一段前停止閱讀;) – Christoph

0

你的對象有結構如下:

var contents = { 
    "storeShapes_mc": { 
     "children": [ 
      { 
       "lib": { 
        "Store106II": { 
         "id": 137, 
         /* other stuff */ 
        } 
       } 
      }, /* possibly other stuff*/ 
     ], /* possibly other stuff*/ 
    } 
} 

現在如果你知道屬性lib和名稱Store106II你可以寫:

var obj = contents.storeShapes_mc.children[0]; 

console.log(obj.lib); // to access Store106II 
// or something like this 
console.log(obj.lib.Store106II.id); 

否則,您必須iterate through the Object's properties並選擇你認爲是正確的一個。

如果我誤解你了,請告訴我;)

+0

我編輯了這個問題來澄清我的情況。我已經包含了定義這個對象的javascript。謝謝。 –