2010-06-07 20 views
0

在Flash中,如果我创建一个自定义影片剪辑,并编译成一个SWC,我可以(通过链接到名为.swc)用它的.fla文件..UIComponent在SWC

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

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

如果我继承UIComponent并编译成SWC,我可以使用自定义类在我的FLA文件,但新的情况似乎并没有构建安排在层的孩子。

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

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

这可能吗?

回答

0

所以我想出来..我莫名其妙地被链接到的原始文件。如,而不是在对名为.swc象征。

:我有一个符号在一个.fla组合物

我从而将其重命名(默认的实例的MovieClip)...

属性:分类: “CustomMovieClass”

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

我出口的动画片段Assets.swc。

- 休息一下,然后

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

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

Yay!它会弹回生命,我在CustomMovieClass时间表中所做的所有动画都已合并。

- 另一种休息,然后

回到原来的项目,创建CustomMovieClass.as

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

和再出口的资产。swc

回到TestingAssets.fla,编译并运行 - Nothing(编译和编译好但没有动画)。

所以我把一个错字在CustomMovieClass.as并再次建立,记住,我是反对和名为.swc链接我发誓给你,这CustomMovieClass.as文件不在类路径或库路径...和“编译器错误”。所以不知何故,它在原始的src中链接,而不是编译成swc版本。

感谢收听。

0

是而不是UIComponent Flex的?我认为这不会在FLA内部发挥作用。

+0

不,它在Flash中正常工作。 Flash带有fl.display.UIComponent的许多子类。您正在考虑mx.core.UIComponent – hooleyhoop 2010-06-07 21:36:13

+0

感谢您的贡献 – hooleyhoop 2010-06-08 06:59:15