FLASH中制作组件SWC,在FLEX应用此SWC
1.使用工具 FLASH CS5 + FLASH Builder
2.使用Flash Professional创建动画和内容将比使用Flex更为方便。
3.问题:
Flex 中的 UI元素 大都继承自 UIComponent类
UIComponent > FlexSprite> Sprite >DisplayObjectContainer>InteractiveObject >Displayobject
Flash 中的架构 (Sprite类的继承关系)
MovieClip > Sprite > DisplayObjectContainer > InteractiveObject >Displayobject
Flex 中无法直接使用Flash 中的MovieClip元件。
UIComponent > FlexSprite> Sprite >DisplayObjectContainer>InteractiveObject >Displayobject
Flash 中的架构 (Sprite类的继承关系)
MovieClip > Sprite > DisplayObjectContainer > InteractiveObject >Displayobject
Flex 中无法直接使用Flash 中的MovieClip元件。
4.方法1--FLASH = MC类绑定MovieClip类直接导出SWC
FLEX = 直接放入LIB文件夹使用 / 在项目中加入SWC存放的路径Flex Project Menu-> Properties->Flex Build Path->Library Path
FLEX使用时封装一次。如:SWC里有组件 Test;
import mx.core.UIComponent;
private var ui:UIComponent;
private var test:Test;
private function init():void {
ui = new UIComponent();
test = new Test();
ui.addChild(test)
addElement(ui);
}
方法2--FLASH = 使用将元件转化为FLEX组件工具(Flex Component Kit) 在Library中选择Test元件并且选择命令 > 将元件转化为FLEX组件,然后FlexComponentBase SWC将被添加至该库。
-
注:如果你的符号没有赋给它的自定义类,则到这一步你完成任务了。 然而,因为你的符号具有赋给它的自定义类,所以你需要在Flash Builder中更新该component类以便将其扩展名改变为 mx.flash.UIMovieClip以替代标准的flash.display.MovieClip。这是该命令试图完成的任务,但当你已经在Flash Builder中对其进行了定义时,它不能指派基类。 可以采用折中方案对你的脚本进行简单的更改。
-
返回Flash Builder,将Test类的
import
语句更改为下面语句:
import mx.flash.UIMovieClip; 将extends
关键字后面的类名从MovieClip更改为UIMovieClip
public class Character extends UIMovieClipFLEX = 使用和方法1一样,只是不用再封装一次。
如果要建类包,这个时候可以建类包,然后把类拖入包中,再次发布SWC,(不知为什么,我一开始就建类包,总是出错?)