在Flex的帮助文档里,有很多例子都是扩展Sprite类的。如果想把这些实例添加到你的mx:Application中,如:addChild(DisplayObject ),肯定会出错。错误的大致意思是:flash.display::Sprite没有实现mx.core.IUIComponent接口。

Sprite->DisplayObjectContainer ->InteractiveObject ->DisplayObject ->EventDispatcher ->Object

flex中的显示元素继承关系如下:
UIComponent ->  FlexSprite -> Sprite -> DisplayObjectContainer ->....

从Sprite的继承关系来看,它虽然是DIsplayObject但是它没有实现IUIComponent,不能直接添加到Flex组件里是当然的了。Flex文档上指出所有的可视化控件都继承自UIComponent 而它自己是实现了IUIComponent 接口的。UIComponent 允许添。Sprite和MovieClip。

要显示Sprite可以使用UIComponent包装一下,例如 

Mxml代码
  1. var comp: UIComponent = new UIComponent();  
  2. comp.addChild(Sprite对象);  
这样sprite就可以加入到flex中,原理是UIComponent实现了IUIcomponent接口的类,可以把该类作为Flex和Sprite的桥梁,所有的sprite类都可以通过此类轻易的加入到flex架构中。或者把Sprite改成UIComponent就可以了。
本文出自 “SAP帝国” 博客,请务必保留此出处http://sapking.blog.51cto.com/909324/196601

posted on 2012-03-11 19:00  星^_^風  阅读(218)  评论(0编辑  收藏  举报