源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

Flex addChild()方法注意事项

  • 时间:2020-05-21 10:33 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Flex addChild()方法注意事项
譬如以下代码就会报错: private function init():void { var sp:Sprite = new Sprite(); addChild(sp);}
[u]复制代码[/u] 代码如下:
TypeError: Error #1034: 强制转换类型失败:无法将 flash.display::Sprite@156b7b1 转换为 mx.core.IUIComponent。
这是因为Application的addChild方法并非完全继承自DisplayObjectContainer, Application→LayoutContainer→Container →UIComponent→FlexSprite→Sprite →DisplayObjectContainer 而是在Container那里被重写了:
[u]复制代码[/u] 代码如下:
public override function addChild(child:DisplayObject):DisplayObject
虽然参数child的类型是DisplayObject,但是它必须实现IUIComponent接口(所有Flex组件都实现了这一接口),才能添加。 如果要在Application里添加Sprite,可以先把它装进一个UIComponent,然后再添加这个UIComponent: 官方的说法: * <p><b>Note: </b>While the <code>child</code> argument to the method * is specified as of type DisplayObject, the argument must implement * the IUIComponent interface to be added as a child of a container. * All Flex components implement this interface.</p> 例子:
[u]复制代码[/u] 代码如下:
import mx.core.UIComponent;private function init():void { var sp:Sprite = new Sprite(); var uc:UIComponent = new UIComponent(); uc.addChild(sp); addChild(uc); }
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部