21.2.在Flash 中使用ContainerMovieClip创建Flex容器

21.2.1.问题
我想在Flash IDE中创建用于Flex的容器组件。
21.2.2.解决方案
使用Flex组件工具包的[元件转换成Flex容器]的命令,或者更简单的,可以在Flash IDE中创建一个扩展自ContainerMovieClip的类,然后在你的应用程序中导入一个包含那个类的SWC。
21.2.3.讨论
ContainerMovieClip的实例可以拥有子项;响应点击,鼠标移动,及其他事件;定义视图状态和过渡效果;像其他Flex组件一样使用各种效果。尽管在编译期或运行期只能往这样的容器中添加一个子项,但是你可以添加一个Flex容器,这样就可以添加多个项了。

要在Flash IDE中创建一个ContainerMovieClip,首先在Flash IDE中创建一个影片剪辑元件,并给它起个名字。图21-4中的元件叫做Smiley。然后使用Flex组件工具包的[元件转换成Flex容器]的命令把元件打包到ContainerMovieClip的实例中。

图21-4.创建一个MovieClipContainer的实例

把元件转换成MovieClipContainer实例后,接下来就可以放置这个FlexContentHolder了。它决定了Flex内容可以被添加到这个容器的哪个区域,它是mx.flash.FlexContentHolder类的实例。

当向它里面添加内容时,内容显示在它指定的区域中。注意,FlexContentHolder中只能添加一个子项,因此任何添加进来的子项都会自动填充它的整个区域。使用Flash IDE,你可以调整FlexContentHolder的尺寸和位置,就像图21-5那样:

图21-5.调整FlexContentHolder的尺寸和位置

调整完之后,你可以把它发布成一个SWC文件,然后导入到Flex项目中。要想往MovieClipContainer中添加多个子项,需要往它里面添加一个容器,比如像下面的VBox:
+展开
-XML
<local:SmileyContainer id="smileyy="100x="100">
<mx:VBox>
<mx:Button label="buttonwidth="100%"/><mx:Button label="buttonwidth="100%"/>
<mx:Button label="buttonwidth="100%"/>
<mx:Button label="buttonwidth="100%"/>
</mx:VBox>
</local:SmileyContainer>

Button对象出现在VBox里,VBox的位置和尺寸由FlexContentHolder类指定(图21-6)。

图21-6.ContainerMovieClip的内容的区域由FlexContentHolder的位置和尺寸决定

加支付宝好友偷能量挖...


评论(0)网络
阅读(116)喜欢(0)flash/flex/fcs/AIR