Swc中的UIComponent

时间:2010-06-07 15:51:25

标签: flash actionscript-3

在Flash中,如果我创建自定义 Movieclip ,并将其编译为SWC,我可以在.fla文件中使用它(通过链接到.swc)..

var mcInstance = new CustomMovieClip();
addChild(mcInstance);

保留自定义movieClip图层上所有图形的排列。

如果我将 UIComponent 子类化并编译为swc,我可以在我的.fla文件中使用自定义类,但新实例似乎不构造排列在图层上的子项。< / p>

我知道制作自定义组件的正确方法是使用两个框架,首先指定边界框,第二个框架指定资产,并在运行时删除第1帧中的第一个图形。但我并不是真的想要制作一个可重用的组件 - 我只想使用UIComponent类(它似乎对Sprite有一些很好的扩展)。

因为我真的想在组件内部有一些手工定位的层,我想我可以将边界框作为第1帧的第一个元素(知道它会被删除),但是我放在第1帧上的任何其他项目都是保留 - 按钮,图像,线条等

这可能吗?

2 个答案:

答案 0 :(得分:0)

Flex不是UIComponent吗?我认为这不会在FLA中发挥作用。

答案 1 :(得分:0)

所以我想通了..我以某种方式链接原始的.as文件,而不是.swc中的符号。

示例:我在.fla作品中有一个符号(默认MovieClip的实例)

我重命名它......

  

属性:类:“CustomMovieClass”

注意:我还没有创建.as文件。我得到了一个小小的警告 - “在类路径中找不到这个类的定义,因此在导出时会在SWF文件中自动生成一个”。

我将movieclip导出为Assets.swc。

- 休息一下,然后

创建新的TestingAssets.fla文件,将“Assets.swc”添加到库路径。从这个项目中的一些代码......

var ob1:CustomMovieClass = new CustomMovieClass();
addChild(ob1);

耶!它源于生活,我在CustomMovieClass时间轴中所做的所有动画都很好。

- 另一个休息,然后

返回原始项目,创建CustomMovieClass.as

package {
    import flash.display.MovieClip;
    public class CustomMovieClass extends MovieClip {
        // Simplest custom class definition
    }
}

并重新导出Assets.swc

回到TestingAssets.fla,构建并运行 - 没什么(编译和构建很好,但没有动画)。

所以我在 CustomMovieClass.as 中输入了一个拼写错误并再次构建,请记住我已经链接到.swc并且我发誓给你这个CustomMovieClass.as文件不在类路径或库路径...和“编译器错误”。所以它以某种方式链接在原始的src而不是编译成swc版本。

感谢收听。