在Flash中,如果我创建一个自定义的Movieclip并将其编译到SWC中,我可以在.fla文件中使用它(通过链接到.swc)。
var mcInstance = new CustomMovieClip();
addChild(mcInstance);自定义电影层上的所有图形排列都被保存下来。
如果我将UIComponent子类编译为swc,则可以在.fla文件中使用自定义类,但新实例似乎并不构造层上排列的子实例。
我知道,制作自定义组件的正确方法是有两个框架,第一个是指定边界框,第二个是用于资产的框架,第一个是在运行时删除框架1中的第一个图形。但是我并不是真的想要做一个可重用的组件--我只是想使用UIComponent类(它似乎对Sprite有一些很好的扩展)。
因为我真的希望在组件中有一些手动定位的层,我想我可以在第1帧上将边框作为第一个元素(知道它会被移除),但是我放置在第1帧上的任何其他项目都会被保留下来-按钮、图像、线条等等。
这个是可能的吗?
发布于 2010-06-08 15:32:57
所以我想出来了..。我以某种方式链接到原始的.as文件,而不是.swc中的符号。
示例:在.fla组合中有一个符号(默认MovieClip的实例)
我把它重命名为…
属性:类:"CustomMovieClass“
注意:我还没有创建.as文件。我收到了一个小小的警告--“在类路径中找不到该类的定义,因此导出时将在SWF文件中自动生成一个定义”。
我把电影输出为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中,构建和运行- Nothing (编译和构建很好,但没有动画)。
所以我在CustomMovieClass.as中放了一个错误并重新构建,记住我是针对.swc和链接的--我向发誓,这个CustomMovieClass.as文件不在类路径或库路径…中和“编译错误”。因此,它是在原来的src中链接,而不是编译成swc版本。
谢谢你的倾听。
发布于 2010-06-07 19:26:42
UIComponent不适合Flex吗?我不认为这在FLA内部有效。
https://stackoverflow.com/questions/2990989
复制相似问题