flash元件做运行时共享的问题

一直以来,我都会把美术资源做到运行时共享,今天发现一个问题,先看图:
flash元件做运行时共享的问题 - SylarLin - 低调做人高调做事
 
这个酒馆.fla是发布成一个swc来做对应模块的导入资源,而发报时报的这个错时来自如下这个运行时共享资源:
flash元件做运行时共享的问题 - SylarLin - 低调做人高调做事

这是一个莫名其妙的错误啊。。。按常理来说,该资源“关闭(ResCloseBtn)” 已经标示为运行时共享(前面有import),发布的时候不会引起这种编译时的错误的,下面时寻找排错方法来找问题原因。

我尝试把抛错的对象名去掉,再发布,没错了,方法如下:
flash元件做运行时共享的问题 - SylarLin - 低调做人高调做事

可是我需要取得这个运行时共享的对象的引用啊。。。这个方法不可取。

google了一下,发现网上面一大堆同样的问题:

我都详细看了一下,没找到解决办法,但是发现他们都说不到点上,因为这个错误的出现还有一个条件,就是包含这个运行时共享的对象的影片剪辑是导出一个类给代码使用的,如下:
flash元件做运行时共享的问题 - SylarLin - 低调做人高调做事

这个”关闭(ResCloseBtn)“时包含在”酒馆面板“这个影片剪辑中,并且对外导出为”ResPubView“,如果不导出,则不会出现这个编译错误。

正当我一筹莫展的时候,忽然感觉这个错误很熟悉,以我平时在fb上面做rsl时,这个错误再常见不过了,一般是没有导入对应的library时出现的。

很快,问题就得到解决了。方法如下:
flash元件做运行时共享的问题 - SylarLin - 低调做人高调做事

在发布设置 as3下拉框右边的扳手按钮面板中就加入如下的运行时共享库,并且设置成外部(External),这样刚才的编译错误就不再出现了,如下图:
flash元件做运行时共享的问题 - SylarLin - 低调做人高调做事

细想一下,由于本fla也是主要发布成swc,导出到外部给代码控制使用,所以是需要通过编译器来编译,当这个运行时共享的原件赋值到一个变量时,这个变量的类型找不到,则抛出这个错误。
我们这个时候需要告诉编译器,这个运行时共享的元件时来自哪里的,并且资源时外部的,不需要编译到代码中(merge into code)。


问题是解决了,但是感觉还有一个问题,因为这个ui.swc这个库时填写绝对路径的,这样mac和windows甚至不同的pc不同的工作空间,这个fla如果需要修改,ui.swc岂不是要再导一次? 

此问题有待解决,当然由于是模块的资源,对应的责任应该时归对应的模块开发者管理,再不需要别人修改的情况下,问题不大。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值