作者heavenbetula (绿草)
看板Flash
标题[问题]Loader读取另一个swf档的物件层级关系
时间Sun Aug 24 15:02:18 2014
今天我有一个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://webptt.com/cn.aspx?n=bbs/Flash/M.1408863740.A.137.html
1F:推 KawasumiMai: 你可以trace(root) trace(parent) 08/24 23:25
2F:→ KawasumiMai: 还有trace(parent.root)慢慢看她是什麽东西 08/24 23:25
3F:→ heavenbetula: 可是在b.swf档怎麽parent也parent不到a.swf呀 08/25 22:06
4F:→ heavenbetula: 然後我在a.swf中也trace不到b.swf中的东西啊 08/25 22:07
5F:推 KawasumiMai: function onLoaded(e:Event){ 08/27 15:26
6F:→ KawasumiMai: e.currentTarget.content.(b的变数或函式) 08/27 15:26
7F:→ KawasumiMai: } 08/27 15:26
8F:→ KawasumiMai: 这样可以呼叫b里面的东西 08/27 15:28
9F:→ KawasumiMai: 你可以在a和b里面分别设一个变数做彼此的指向 08/27 15:28
10F:→ 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
11F:推 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
12F:→ KawasumiMai: 你把"."翻译作"的"就不会搞错了 09/03 20:53
13F:→ KawasumiMai: 而root是根,parent是相对的上一层 09/03 20:53
14F:→ KawasumiMai: 所以在最上层呼叫root等於自身,parent自然是一样的 09/03 20:53
15F:→ KawasumiMai: 如果你在b.swf内的元件内侧呼叫parent.root 09/03 20:54
16F:→ KawasumiMai: 因为parent是上一层,parent.root只会是b.swf的根 09/03 20:54
17F:→ heavenbetula: 又长知识了,感谢K大! 09/04 19:56