zoukankan      html  css  js  c++  java
  • flex DisplayObject UIComponent的区别

    在Flex的帮助文档里,有很多例子都是扩展Sprite类的。如果想把这些实例添加到你的s:Application中,如:addChild(DisplayObject ),肯定会出错。错误的大致意思是:flash.display::Sprite没有实现mx.core.IUIComponent接口。    Sprite->DisplayObjectContainer ->InteractiveObject ->DisplayObject ->EventDispatcher ->Object 从Sprite的继承关系来看,它虽然是DIsplayObject但是它没有实现IUIComponent,不能直接添加到Flex组件里是当然的了。    Flex文档上指出所有的可视化控件都继承自UIComponent 而它自己是实现了IUIComponent 接口的。UIComponent 允许添加Sprite和MovieClip。 经常使用到的做法是:   var comp: UIComponent = new UIComponent();
        comp.addChild(sprite);
        cavas1.addChild(comp); 这样flash控件就能正常在flex组件里显示了。

    举个例子我在as文件中这么写:

    Java代码 复制代码
    1. <SPAN style="FONT-SIZE: medium">package components   
    2. {   
    3.     import flash.display.*;   
    4.     import flash.net.URLRequest;   
    5.     public class Main extends Sprite {   
    6.         public function Main(   ) {   
    7.              var loader:Loader = new Loader(   );   
    8.              addChild( loader );   
    9.              loader.load( new URLRequest( "img/aa.jpg" ) );   
    10.          }   
    11.      }   
    12.   
    13. }</SPAN>  
    package components{ import flash.display.*; import flash.net.URLRequest; public class Main extends Sprite { public function Main( ) { var loader:Loader = new Loader( ); addChild( loader ); loader.load( new URLRequest( "img/aa.jpg" ) ); } }}

    然后具体显示就想上面说的那样   Xml代码 复制代码
    1. <SPAN style="FONT-SIZE: medium"><?xml version="1.0" encoding="utf-8"?>  
    2. <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"   
    3.                xmlns:s="library://ns.adobe.com/flex/spark"   
    4.                xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" creationComplete="init()">  
    5.     <fx:Declarations>  
    6.         <!-- 将非可视元素(例如服务、值对象)放在此处 -->  
    7.     </fx:Declarations>  
    8.    <fx:Script>  
    9.        <![CDATA[
    10.             import components.Main;
    11.            
    12.             import mx.core.UIComponent;
    13.             function init():void{
    14.                var comp: UIComponent = new UIComponent();
    15.                var main:Main=new Main();
    16.                comp.addChild(main);
    17.                this.addElement(comp);
    18.             }
    19.         ]]>  
    20.    </fx:Script>  
    21. </s:Application>  
    22. </SPAN>  
  • 相关阅读:
    【WebSocket】Qt客户端
    【WebSocket】入门教程(JS)
    【C++ 压缩&解压缩 开源库】ZIP入门使用总结
    【C++ JSON 开源库】nlohmann入门使用总结
    OSS C++ SDK使用总结
    解决Element中table文字过多换行问题
    Xmind安装报错
    Object.assign()
    mousedown、mouseup、click
    el-table 动态控制表格高度
  • 原文地址:https://www.cnblogs.com/xinzhuangzi/p/4100537.html
Copyright © 2011-2022 走看看