我們?cè)僭囈幌芦@取實(shí)例的信息 :
var sprite1:Sprite = new Sprite(); var instanceInfo:XML = describeType(sprite1);
返回 :
代碼拷貝框
[Ctrl+A 全部選擇 然后拷貝]
所有的標(biāo)簽與之前 factory 標(biāo)簽中的內(nèi)容是一樣的
現(xiàn)在我們使用 describeType 來(lái)遍歷之前 Dummy 類中的元素
實(shí)例化:
var dummy:Dummy = new Dummy();
獲取實(shí)例信息:
var instanceInfo:XML = describeType(dummy);
把所有的屬性取出來(lái), 包括訪問(wèn)器和變量, 并且訪問(wèn)器不可為只寫:
var properties:XMLList = instanceInfo..accessor.(@access != "writeonly") + instanceInfo..variable;
此時(shí) properties 里就有所有的屬性名了. 最后我們遍歷這個(gè) XMLList
for each (var propertyInfo:XML in properties) { // 取出屬性名 var propertyName:String = propertyInfo.@name; // 根據(jù)屬性名來(lái)訪問(wèn) trace(dummy[propertyName]); }
這樣 dummy 就被 "遍歷" 出了~
完整代碼:
代碼拷貝框
[Ctrl+A 全部選擇 然后拷貝]
這樣我們可以專門寫一個(gè)類, 負(fù)責(zé)獲取類信息, 詳細(xì)見(jiàn)類中注釋 TypeDescriptor.as, 負(fù)責(zé)獲取信息
代碼拷貝框
[Ctrl+A 全部選擇 然后拷貝]
TypeDescription.as, 負(fù)責(zé)保存信息
代碼拷貝框
[Ctrl+A 全部選擇 然后拷貝]
點(diǎn)擊下載教程及源碼
出處:藍(lán)色理想
責(zé)任編輯:moby
上一頁(yè) AS3 中的反射 [4] 下一頁(yè)
◎進(jìn)入論壇Flash專欄版塊參加討論
|