[問題] 取得object array裡的child object

看板Flash作者 (KK)時間17年前 (2008/12/09 22:52), 編輯推噓1(105)
留言6則, 2人參與, 最新討論串1/1
請問一下各位, 我在flex下, 創造了一個object, public var objData:Object ={children: [ {label: "a", children: [ {label: "a-1", children: [ {label: "a-1-1", nodeURL: "http://a-1-1"}, ]}, {label: "a-2", children: [ {label: "a-2-1", nodeURL: "http://a-2-1"}, ]}, ]}, {label: "b", children: [ {label: "b-1", children: [ {label: "b-1-1", nodeURL: "http://b-1-1"}, ]}, {label: "a-2", children: [ {label: "b-2-1", nodeURL: "http://b-2-1"}, ]}, ]}, ]}; 我設了一個<mx:Tree id="tree">來呈現上面的資料, 可是我想一開始進入頁面tree就開啟a-1這個node(用expandItem function), tree.expandItem(objData.children[0], true, true); 上面那行objData.children[0]他會順利開啟 a node, 但是當我改成objData.children[0].children[0]時它卻沒反應, 我在想可能是我對as3的array裡的觀念不甚了解的關係, 想請問有經驗的人這大概是什麼地方錯了? ================================================ 無意間看到這段 囧 Opens or closes a branch item. When a branch item opens, it restores the open and closed states of its child branches if they were already opened. If you set dataProvider and then immediately call expandItem() you may not see the correct behavior. You should either wait for the component to validate or call validateNow(). 修改之後 private function initTree():void { tree.expandItem(objData.children[0], true, true); setTimeout(validateNow, 600); setTimeout(openChildren, 600); } private function openChildren():void { tree.expandItem(objData.children[0].children[0], true, true); } tree的初始化使用兩次expandItem第一次太快會看不出效果, 所以改成這樣讓它看起來像它自動開了兩次, 感謝兔兔凱特引導 XD -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 210.64.251.74 ※ 編輯: pankk 來自: 210.64.251.74 (12/09 22:53)

12/10 01:32, , 1F
objData.children[0].children[0]的確是a-1這個node沒錯
12/10 01:32, 1F

12/10 01:33, , 2F
所以問題可能是在於Tree的method使用方面
12/10 01:33, 2F

12/10 01:33, , 3F
不過我對Flex不熟...就有待Flex高手來詳細回答囉 :)
12/10 01:33, 3F

12/10 07:08, , 4F
嗯嗯,我再從tree的相關下手好了 感謝
12/10 07:08, 4F

12/10 08:58, , 5F
try出來了,果然是tree的expandItem function的問題
12/10 08:58, 5F

12/10 09:01, , 6F
當我手動點開a node時發現裡面的a-1 node是開的= =|||
12/10 09:01, 6F
※ 編輯: pankk 來自: 210.64.251.74 (12/10 09:38)
文章代碼(AID): #19FeOJrI (Flash)