如何在as3中共享组件

时间:2013-03-04 09:14:20

标签: actionscript-3 components share swc rsl

我有一个在几个swfs中使用的自定义组件(例如MyButton)。我想在运行时共享组件,因此一旦我们的设计师更改按钮的视觉效果,我们就不需要发布使用此按钮的所有闪光灯。

在as2中,我可以将此按钮放在资产fla(例如lib.swf)中,并检查symbol属性中的“export for runtime share”。然后将按钮复制到fla(例如main.swf)并检查“import for runtime share”,这样可以正常工作。但是在as3中,完成上面的操作后,如果我在舞台上放置一个按钮实例并修改其可检查属性,我将收到编译错误“1046:找不到类型或者不是编译时常量”。

我在网上搜索了http://www.kirupa.com/forum/showthread.php?317257-Runtime-Shared-Library-woes。然后我尝试了swc方法,但似乎swc将编译成swf,它根本不共享。

  1. 共享组件必须放在舞台上,因为我们的设计师会修改所有fla,而他对编程一无所知。
  2. 我们无法使用flex ,所有操作都必须在Flash CS5中完成。

2 个答案:

答案 0 :(得分:0)

1:将所有组件放在库中,如下所示:我的名称BrushClip.fla组件包裹MovieClip。并将ActionScript链接导出到ActionScript类。

enter image description here

2:文件 - 发布设置检查SWC格式并发布如下:

enter image description here

3:检查,在项目中创建swc文件。现在您可以使用swc其他项目,您必须链接到File-ActionScript Settings-Library Path中的SWC库。以后如果更改组件设计,请重新发布。并复制并粘贴swc文件。自动将更改重启swf文件。 BrushClip.swc包含所有组件。

enter image description here

您可以按如下方式访问:

var brushClip0:MovieClip = new BrushClip0();
addChild(brushClip0);

var brushClip10:MovieClip = new BrushClip10();
addChild(brushClip10);

答案 1 :(得分:0)

我找到了解决方案。

  1. 为包含导入组件的Sprite提供绑定类
  2. 编辑类文件,自行声明组件,无论是否选中“舞台上的自动声明实例”