看板 Flash 關於我們 聯絡資訊
今天我有一個a的swf檔,裡頭有一個影片片段(名稱A_mc) 以及有一個Loader(名稱loaderA)去讀取b的swf檔 而我b的swf檔中,有一個btn按鈕,也有一個Loader(名稱loaderB)去讀取jpg檔 當我b swf中的這顆按鈕按下時,會將讀到的jpg檔,放到a swf檔中的A_mc 並且 其中,b swf中按鈕事件: MovieClip(root.parent.root).A_mc.addchild(loaderB); 我的問題是: 第一個root是指向b swf的主時間軸吧,那root.parent是指向讀取它的loaderA嗎? 還是就直接指向a swf的主時間軸? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.228.73.62 ※ 文章網址: http://www.ptt.cc/bbs/Flash/M.1408863740.A.137.html
KawasumiMai: 你可以trace(root) trace(parent) 08/24 23:25
KawasumiMai: 還有trace(parent.root)慢慢看她是什麼東西 08/24 23:25
heavenbetula: 可是在b.swf檔怎麼parent也parent不到a.swf呀 08/25 22:06
heavenbetula: 然後我在a.swf中也trace不到b.swf中的東西啊 08/25 22:07
KawasumiMai: function onLoaded(e:Event){ 08/27 15:26
KawasumiMai: e.currentTarget.content.(b的變數或函式) 08/27 15:26
KawasumiMai: } 08/27 15:26
KawasumiMai: 這樣可以呼叫b裡面的東西 08/27 15:28
KawasumiMai: 你可以在a和b裡面分別設一個變數做彼此的指向 08/27 15:28
KawasumiMai: 這樣一來就可以方便呼叫 08/27 15:29
感謝K大!測試後發現第一個root果然是指向b swf的主時間軸,而root.parent是指向 讀取它的loaderA,root.parent.root才是指向a swf的主時間軸,但是我還有一個疑問 那就是為什麼 MovieClip(root.parent.root).A_mc.addchild(loaderB); 改成 MovieClip(parent.root).A_mc.addchild(loaderB); 也可以呢? 既然parent.root指向的是loaderA,那這樣loaderA.A_mc不是照理沒辦法這麼做嗎? ※ 編輯: heavenbetula (36.231.160.242), 09/02/2014 23:06:40 ※ 編輯: heavenbetula (36.231.160.242), 09/02/2014 23:07:54
KawasumiMai: parent才是loaderA,parent.root就是loaderA的root 09/03 10:45
我想我知道我哪裡有問題了,我一直將root.parent.root看的順序由右往左看... 然後在此對於b swf而言,root.parent與parent都是指向loaderA ※ 編輯: heavenbetula (61.231.11.41), 09/03/2014 20:28:07
KawasumiMai: 你把"."翻譯作"的"就不會搞錯了 09/03 20:53
KawasumiMai: 而root是根,parent是相對的上一層 09/03 20:53
KawasumiMai: 所以在最上層呼叫root等於自身,parent自然是一樣的 09/03 20:53
KawasumiMai: 如果你在b.swf內的元件內側呼叫parent.root 09/03 20:54
KawasumiMai: 因為parent是上一層,parent.root只會是b.swf的根 09/03 20:54
heavenbetula: 又長知識了,感謝K大! 09/04 19:56