加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Flash共享资源加载

发布时间:2020-12-15 18:39:34 所属栏目:百科 来源:网络整理
导读:http://www.cnblogs.com/captain2011/archive/2011/08/13/2137477.html Flash共享资源加载 ?? ???????Flash多人开发的时候,常常需要把ui资源分成多个fla文件,若这些fla文件需要用到的很多相同的元件,就要考虑到资源重复利用的问题了。 假设你建了个comm.f

http://www.cnblogs.com/captain2011/archive/2011/08/13/2137477.html

Flash共享资源加载

??

???????Flash多人开发的时候,常常需要把ui资源分成多个fla文件,若这些fla文件需要用到的很多相同的元件,就要考虑到资源重复利用的问题了。

假设你建了个comm.fla的文件,里面有个元件叫P03_07,你要在其他fla文件中都能使用。Ctrl+C和Ctrl+V这种方式我们就不考虑了,这对维护来说是一个灾难,要是你在100个fla中都用了这个元件,一改就要到100个fla文件中去一个个改,显然非常麻烦。

我们用另一种方法。

首先打开comm.fla文件,新建一个叫“元件1”的影片剪辑,设置该元件的属性,“为Actionscript导出”打上勾,类名写上mytest,url写成comm.swf。

然后在comm.fla下新建一个test.fla文件,在共享栏的“为运行时共享导入”打上勾,url跟上面一样写上comm.swf,然后点击浏览按钮,找到comm.fla,选中刚才新建元件。点确定按钮。再重新打开这个元件的属性面板,即使刚才你为该元件的类命名了,flash还是会自动把这个类名设置成你所导入的那个元件的类名。

?

这两步完了之后分别给这两个fla文件生成swf文件,将生成的swf文件放在同一文件夹下。

下面进行代码测试。加载test.swf文件并获取comm.swf中的元件:

复制代码

private ?function?testRes(): void
????????{
????????????loader?
= ? new ?Loader();
????????????loader.contentLoaderInfo.addEventListener(Event.COMPLETE,onComplete);
????????????loader.load(
new ?URLRequest( " test.swf " ), new ?LoaderContext( false ,ApplicationDomain.currentDomain));
????????}

????
private ?function?onComplete(e:Event): void
{
????????????var?cls:Class?
= ?loader.contentLoaderInfo.applicationDomain.getDefinition( ' mytest ' )? as ?Class;
????????????var?mc:MovieClip?
= ? new ?cls(); // ?as?MovieClip;
????????????trace( ' mc ' ? + ?mc);
????????????addChild(mc);

????????}

复制代码

?

这样comm.fla中的元件在其他任何fla文件中都可以使用,要修改也只用改comm.fla一个文件,重新发布即可。另外还有一点需要说明的是如果comm.fla中的元件在其他fla文件中被放到场景上,并且为该元件指定了名称,需要为comm的共享元件手动写一个类,比如上面的comm.fla中的mytest元件,要写这样一个类:

?

复制代码

package??
{
????import?flash.display.MovieClip;
????
????
/* *
?????*?...
?????*?@author?dragonWorrior
?????
*/
????
public ? class ?mytest?extends?MovieClip?
????{
????????
????????
public ?function?mytest()?
????????{
????????????
????????}
????????
????}

}

复制代码

有点麻烦,但也是举手之劳而已。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读