FLASH中动态载入外部SWF文件的一点体会

今天突然想到一个问题,在一个MC中载入外部的SWF文件后,能对这个外部SWF文件的内容进行控制吗?开始想想也许不行吧。但为了验证设想到底是可行与否,还是做了个试验,毕竟真理来源于实践。
    于是乎,编了一个简单的验证程序。先做一个待加载的SWF文件Content.swf,在其中随意产生一个变量或者MC,比如叫MC1(是什么不重要,只要有这样一个对象就OK)。然后再创建一个Container.swf的文件,在其主场景中产生一个空的电影剪辑Container_MC,用 LoadMovie方法加载Content.swf到其中。如果在Container.swf中能够引用到原Content.swf中的MC1对象,那么肯定能控制它。于是在加载完毕后调用Trace(_root.Container_MC.MC1)语句,即可验证设想了。让我意外但是高兴的提示出现了: “_leve0.Container_MC.MC1”。什么意思呢,加载容器能控制被加载SWF文件中的内容,反正是我的一点小心得,在即将开始的我一个制作中很有用,模块化设计必须要这个。

结论: FLASH中不仅能控制加载的外部SWF本身,也能控制其中的对象。可以理解为,被加载的SWF文件是完全替代了它的加载容器MC,对加载容器MC的各种操作均等同于对外部SWF的操作。对于主场景来说,被加载的SWF中各对象的路径均在其加载容器之下。