`

UIcomponent和Sprite的区别和使用上的不同

阅读更多

关于flex的容器UIComponent和Sprite物体的关系

flex中的架构,(举例UIComponent类的继承关系) 
UIComponent > FlexSprite> Sprite >DisplayObjectContainer>InteractiveObject >Displayobject

flash中的架构(Sprite类的继承关系) 
Sprite >DisplayObjectContainer>InteractiveObject >Displayobject

Flex中的UIMovieClip类继承于UIComponent ,flash中的MovieClip继承于Sprite, 
它们的这种继承关系我们可以通过flex帮助手册查阅到。


Flex Application里的addChild()

在Flex Application里,是不能直接用addChild添加Sprite,MovieClip等来自flash.display包里的类的。譬如以下代码就会报错:

 

private function init():void 
{    var sp:Sprite = new Sprite();    
      addChild(sp);
}

private function init():void 
{    var sp:Sprite = new Sprite();    
      addChild(sp);
}

 

TypeError: Error #1034: 强制转换类型失败:无法将 flash.display::Sprite@156b7b1 转换为 mx.core.IUIComponent。

这是因为Application的addChild方法并非完全继承自DisplayObjectContainer,

Application→LayoutContainer→Container→UIComponent→FlexSprite→Sprite

→DisplayObjectContainer

而是在Container那里被重写了:

 

public override function addChild(child:DisplayObject):DisplayObject

public override function addChild(child:DisplayObject):DisplayObject

 

虽然参数child的类型是DisplayObject,但是它必须实现IUIComponent接口(所有Flex组件都实现了这一接口),才能添加。

如果要在Application里添加Sprite,可以先把它装进一个UIComponent,然后再添加这个UIComponent:

 

import mx.core.UIComponent;

private function init():void 
{    var sp:Sprite = new Sprite();    
      var uc:UIComponent = new UIComponent();    
      uc.addChild(sp);    
      addChild(uc);
}
 

分享到:
评论

相关推荐

    UIComponent.unitypackage

    UIComponent.unitypackage

    UIComponent

    UIComponent

    MatlabGUI使用java组件无所不能-uicomponent.m

    MatlabGUI使用java组件无所不能-uicomponent.m 是不是曾经想做出漂亮的GUI 界面? 是不是曾经想在 Matlab GUI里面显示网页? 看看这个界面: matlab_java.png 所以,...

    UICOMPONENT - 将 uicontrol 扩展到所有 Java 类:增强替换 uicontrol 和 javacomponent,接受所有 Java (Swing/AWT) 样式组件-matlab开发

    UICOMPONENT 尽可能使用内置的 UICONTROL(即,用于所有标准样式),并使用 JAVACOMPONENT 创建和显示所有其他 java 类。 UICOMPONENT 以几种等效的不区分大小写的格式支持整个 Swing/AWT 和任何用户定义的类。 ...

    itemStorage_as_class.rar_Flex xml_UIComponent_flex_flex 3_flex s

    This is a Flex UIComponent that can be used 谋n a FLEX 3 mxml application as component written in action script 3.0, provides you to create items that cab be filled from an XML or Query ResultSet or ...

    UIComponent:自定义组件(空视图、标题、表单输入项、设置项、菜单项、按钮、文字)

    CustomComponent 自定义组件(空视图、标题、表单输入项、设置项、菜单项、...文字相对于图标是否使用topToBottom属性,默认false,即bottomToBottom empty_title_topToBottom_margin dimension 文字相对于图标topTo

    BlurryLoading-UiComponent

    BlurryLoading-UiComponent

    flex开发自定义控件

    flex开发自定义控件

    facelets模板

    在 JavaServer Faces (JSF) 2.0 中,Facelets 取代 JavaServer Pages (JSP) 成为默认的视图声明语言 (VDL)。有了 Facelets,您不需要像以前...在 Web 应用程序中使用 Facelets 的部分好处包括模板化、重用和易于开发。

    SwiftUI-Server-Driver-UI:使用Swifts声明式SwiftUI UI工具包的服务器驱动的UI

    SwiftUI-服务器驱动的UI 如果您想在平台上阅读它,请进入此 本文将讨论服务器驱动的用户界面, 其实现使用称为UIComponents的可重用组件,以及创建用于呈现UI组件的通用垂直列表视图。 最后,将简要讨论UI组件如何...

    over_react:一个使用Dart构建静态类型的React UI组件的库

    一个使用Dart构建静态类型的React UI组件的库。 该库还公开了OverReact Redux ,它具有。 流利的组件消耗 DOM组件和道具 组件格式 构建自定义组件 组件样板 组件最佳实践 贡献 迁移指南 UiComponent2 /组件样板...

    微信小程序 - dialog

    实现了 标题,内容和按钮设置,可动态设置按钮,以及按钮点击事件的回调 可作为component 使用 ...viewclass="uiComponent uiComponent_mask uiComponent_mask_{{uiComponent.mask.show &&'active'}}

    jboss as 7 support jsf2.2.1 modules

    在服务器端,可以使用类UIComponent的新方法getPassThroughAttributes() 和getPassThroughAttributes(boolean create) 来设置属性。 UIComponent component = new SomeComponent(); Map passThrough = component....

    微信小程序 - toptip效果

    在Page顶部下滑一个提示条 , 代码见 /mixins/UIComponent.js ,其中的self 可以认为是微信小程序的Page对象 (此图片来源于网络,如有侵权,请联系删除! ) 效果: 默认2秒展示,上移动画隐藏   /** * 展示顶部 tip , 多...

    listenerMCVE:再现侦听器问题的简约示例

    有关此问题的MCVE: : 问题:在index.xhtml上,单击呈现的“主要”按钮=> actionListener将不会执行。 解决方案:Row.java的渲染方法(第77行)未使用多功能界面。 将呈现方法更改为以下方法(Row.java第67行)后,...

    Dreamweaver 插件集

    根据不同的时段插入不同的问候语 script_editor 让你更方便的编辑脚本,包括外部脚本 popup_menu_builder 帮助您轻松创建一个跨浏览器的弹出菜单 TableLines 文章文字各行间都有横线分离 alternate_table_rows 使...

    Dreamweaver 扩展

    justsoalt 用于在你的图片上加入alt标记,它可以利用模板一次为多张图片加入alt说明 calendarPopup 一个弹出日历表格,用以确保输入的日历是按照特定的格式进行输入的,主要特色包括:日历链接,按照需要的方式设定...

    70款经典Dreamweaver插件

    insert_greeting 根据不同的时段插入不同的问候语 script_editor 让你更方便的编辑脚本,包括外部脚本 popup_menu_builder 帮助您轻松创建一个跨浏览器的弹出菜单 TableLines 文章文字各行间都有横线分离 alternate_...

Global site tag (gtag.js) - Google Analytics