作者的个人站点:
http://jim.blueidea.com/
相信大家都用过attachMovie这个语句,可以方便的绑定库中带Linkage输出的元素, 在一些游戏以及交互程度比较高的网站中经常会用到。 那么这里就遇到一个问题,假如我在sub.fla库里面用linkage设定了几个元素, 然后想在main.fla里面attachMovie这几个元素,该如何处理尼?
第一种方法,main.fla使用 loadMovie(); 或 loadMovieNum();先导入 sub.swf, 然后导入完成后,再使用attachMovie来绑定元素。 但是这种方法,使用受到一个很大的限制,就是只能在 loadMovieNum()语句导入所在的层,或者loadMovie()语句导入所在的mc上面使用attachMovie, 比如:
loadMovieNum("sub.swf",1); _level1.attachMovie("cc","cc1",5);
是有效的
loadMovieNum("sub.swf",1); _level0.attachMovie("cc","cc1",5);
是无效的
同样:
loadMovie("sub.swf", "abc"); _root.abc.attachMovie("cc", "cc2", 50);
是有效的
loadMovie("sub.swf", "abc"); _root.attachMovie("cc", "cc2", 50);
是无效的
第二种方法,使用Export for runtime sharing的方式,方法如下:
在sub.fla中,设置好需要attach元素的 Linkage值,并选定 Export for ActionScript 以及 Export in first frame这两项 然后,在sub.fla中新建一个空的mc, 在库中设置这个空mc的linkage值为 ext ,选定 Export in first frame 以及 export for runtime sharing, URL这一项则填写为 sub.swf 如图:
在main.fla中,新建一个空的mc,在库中设置这个空mc的linkage值为 ext ,然后选定 Import for runtime sharing , URL一项填为 sub.swf 如图:
然后在main.fla中,再新建一个mc,从库中把刚才的ext这个空mc拖放到新建的这个mc中,然后把这个新mc任意设置一个linkage值,然后选定Export for ActionScript 以及 Export in first frame这两项。 做好以上的两步,就可以在main.fla里面任意attach sub.fla里面的可用元素了,比如:
attachMovie("cc","cc", 1); attachMovie("bar","bar", 2);
第三种方法, 采用上面的第二种方法虽然已经很理想了,不过还是有一个限制,那就是必须编辑 sub.fla,加入 ext这个空mc, 那么有没有方法绕过去,可以不需要改动sub.fla,直接在main.fla里面做文章尼? 下面就介绍第三种实用方法:
假定我们现有一个tt.swf这个文件,里面库中设置了 linkage 为 a,b,c 的三个可用元素, 那么用下面的方法,可以不修改tt.fla,直接attach tt.swf里的这三个元素
我们打开主控文件mm.fla, 新建一个空mc,然后在库中设置linkage值为 a (或者b或者c,只要保持和tt.swf里面的某个linage值同名即可) ,然后选定 Import for runtime sharing , URL一项填为 tt.swf,如图:
然后在mm.fla中,再新建一个mc,从库中把刚才的a这个空mc拖放到新建的这个mc中,然后把这个新mc任意设置一个linkage值,然后选定Export for ActionScript 以及 Export in first frame这两项。 然后就可以在mm.fla里面任意attach tt.fla里面的可用元素了,比如:
_root.attachMovie("c", "c", 1); _root.attachMovie("a", "a", 11); _root.attachMovie("b", "b", 111);
本教程第二以及第三种方法,提供源文件下载,有兴趣可以到
下载
(注源文件为flash8格式)
|