attachMovie外部swf中的元素


 
[1b]作者的个人站点:[/1b]
[url=http://jim.blueidea.com/]
http://jim.blueidea.com/
[/url]

相信大家都用过attachMovie这个语句,可以方便的绑定库中带Linkage输出的元素, 在一些游戏以及交互程度比较高的网站中经常会用到。 那么这里就遇到一个问题,假如我在sub.fla库里面用linkage设定了几个元素, 然后想在main.fla里面attachMovie这几个元素,该如何处理尼?
[1b]第一种方法[/1b],main.fla使用 loadMovie(); 或 loadMovieNum();先导入 sub.swf, 然后导入完成后,再使用attachMovie来绑定元素。 但是这种方法,使用受到一个很大的限制,就是只能在 loadMovieNum()语句导入所在的层,或者loadMovie()语句导入所在的mc上面使用attachMovie, 比如:
同样:
[1b]第二种方法[/1b],使用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);
 
[1b]第三种方法[/1b], 采用上面的第二种方法虽然已经很理想了,不过还是有一个限制,那就是必须编辑 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);
本教程第二以及第三种方法,提供源文件下载,有兴趣可以到
[url=http://www.blueidea.com/articleimg/2006/04/3389/attach.rar][1b]
下载
[/1b][/url]
(注源文件为flash8格式)
loadMovie("sub.swf", "abc");
_root.abc.attachMovie("cc", "cc2", 50);
是有效的
loadMovie("sub.swf", "abc");
_root.attachMovie("cc", "cc2", 50);
是无效的
loadMovieNum("sub.swf",1);
_level1.attachMovie("cc","cc1",5);
是有效的
 loadMovieNum("sub.swf",1);
_level0.attachMovie("cc","cc1",5);
是无效的
本文转自:http://www.5uflash.com/flashjiaocheng/Flashaschengxu/193.html

你可能感兴趣的:(游戏,C++,c,ext,actionscript)