在Flash中,如果我创建自定义 Movieclip ,并将其编译为SWC,我可以在.fla文件中使用它(通过链接到.swc)..
var mcInstance = new CustomMovieClip();
addChild(mcInstance);
保留自定义movieClip图层上所有图形的排列。
如果我将 UIComponent 子类化并编译为swc,我可以在我的.fla文件中使用自定义类,但新实例似乎不构造排列在图层上的子项。< / p>
我知道制作自定义组件的正确方法是使用两个框架,首先指定边界框,第二个框架指定资产,并在运行时删除第1帧中的第一个图形。但我并不是真的想要制作一个可重用的组件 - 我只想使用UIComponent类(它似乎对Sprite有一些很好的扩展)。
因为我真的想在组件内部有一些手工定位的层,我想我可以将边界框作为第1帧的第一个元素(知道它会被删除),但是我放在第1帧上的任何其他项目都是保留 - 按钮,图像,线条等
这可能吗?
答案 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版本。
感谢收听。