由於某些原因,AS3不能將XML類的子函數識別爲函數。xml.child不是一個函數嗎?
在文檔:
child(propertyName:Object):XMLList
列出XML對象的孩子。
var xml:XML = new XML (
<body>
<bar value = "1"/>
<foo value = "2"/>
</body>);
var f:Function = xml.child as Function;
trace(XMLList(f("foo")).toXMLString());
此代碼給出了錯誤:Error #1006: value is not a function.
經過進一步檢驗,f
被發現是null
。
所以我的問題是,如何將XML
類的child()
函數分配給Function
類型的變量?
在附註中,這是必要的原因是因爲它用於效用函數forEach(arr:Array, f:Function):Array
,該函數在數組中的每個項目上執行函數f
並返回結果。
是的,但這樣的函數將不得不採取兩個參數,一個用於xml對象,另一個用於propertyName:String參數。由於forEach()接受只有一個參數的函數,所以我需要傳入xml.child函數或與xml.child相同頭文件的函數 – bananasplits
更新了答案... HTH – catholicon
這是您應該採取的一般方法。在我的情況下,由於設備的原因,我能夠通過在另一個函數中嵌套函數來獲取,以便xml實例處於範圍內,我可以調用xml.child()只接受一個參數。所以這個函數確實滿足了每個()的要求 – bananasplits