addElement()

addChild(displayObject :DisplayObject) 加在这里的child必须是DisplayObject的子类。

addElement(element :IVisualElement) 加在这里的child必须是实现IVisualElement接口的类。

Flex 3的组件继承关系

Object>EventDispather>DisplayObject>InteractiveObject>DisplayObjectContainaer>Sprite>UIComponent>All components

其中public class UIComponent extends FlexSprite
    implements IAutomationObject, IChildList, IConstraintClient,
    IDeferredInstantiationUIComponent, IFlexDisplayObject, IFlexModule,
    IInvalidating, ILayoutManagerClient, IPropertyChangeNotifier,
    IRepeaterClient, IStateClient, IAdvancedStyleClient, IToolTipManagerClient,
    IUIComponent, IValidatorListener, IVisualElement

UIComponent 实现IVisualElement借口

Flex 4的组件继承关系Object>EventDispather>DisplayObject>InteractiveObject>DisplayObjectContainaer>Sprite>UIComponent>SkinnableComponent>SkinnableContainerBase>............

addElement()即可以加载spark组件也可以加载halo组建。

addChild()如果是spark组件的addChild()这方法是被禁用的。会抛出一个error。所以在spark组件不可能用到此方法。用法只能是类同在Flex3的用法。

现在有个问题就是如果组件继承sprite 而sprite是没有实现IVisualElement接口的。

在Flex4一般采用此方法。

sprite>FlexSprite>SpriteVisualElement 而SpriteVisualElement是实现了IVisualElement接口的。

public class SpriteVisualElement extends FlexSprite
    implements IVisualElement, IMXMLObject, IFlexModule

所以一般采用SprieVisualElement来替代Flex3用的Sprite.

总之对于上面两个方法。在Flex4中。永远都只用addElement()方法。

var uic:UIComponent = new UIComponent();
var mc:MovieClip = new MovieClip();
uic.addChild(mc);
this.addElement(uic);

时间: 2024-10-17 03:28:37

addElement()的相关文章

[ Perl 6 ] 被取代的钻石操作符(<>)

[ Perl 6 ] 被取代的钻石操作符(<>) There is more than one way to do it. Perl 5中,如果要逐行读取一个文件的内容,你可能会写出下面的代码 while (<>) { chomp; print "It was $_ that I saw.\n"; } $ perl myscript.pl in 但是在Perl 6中,钻石操作符<>已经不再被支持,现在可以用下面的代码来完成上面的功能 for line

微信小程序 this.setData() 详解

1.定义 setData()函数用于将逻辑层数据发送到视图层,同时对应的改变this.data的值. 2.setData()参数格式 接受一个对象,以键(key)值(value)的方式改变值. 其中,key十分灵活,以数据路径的方式给出 -- array[2].message,a.b.c.d,并且不需要在 this.data 中预先定义. 3.实例 Page({ data: { text: 'init data', array: [{text: 'init data'}], object: {

linux中fork()函数详解

 一.fork入门知识 一个进程,包括代码.数据和分配给进程的资源.fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事.    一个进程调用fork()函数后,系统先给新的进程分配资源,例如存储数据和代码的空间.然后把原来的进程的所有值都复制到新的新进程中,只有少数值与原来的进程的值不同.相当于克隆了一个自己. 我们来看一个例子: [cpp] view plain copy /* *  f

LeetCode 50 Pow(x, n)(Math、Binary Search)(*)

翻译 实现pow(x, n). 原文 Implement pow(x, n). 分析 首先给大家推荐维基百科: zh.wikipedia.org/wiki/二元搜尋樹 en.wikipedia.org/wiki/Binary_search_tree 其次,大家也可以看看类似的一道题: LeetCode 69 Sqrt(x)(Math.Binary Search)(*) 然而这题我还是没有解出来,看看别人的解法-- class Solution { private: double myPowHel

&lt;转载&gt;Div+Css布局教程(-)CSS必备知识

目录: 1.Div+Css布局教程(-)CSS必备知识 注:本教程要求对html和css有基础了解. 一.CSS布局属性 Width:设置对象的宽度(width:45px). Height:设置对象的高度(Height:45px;). Background:设置对象的背景颜色.背景图像. 1.背景颜色 background:#09F; 2.背景图像 background:url(file:///C|/Users/Administrator/Desktop/huipu.jpg) repeat-x;

转载——c++中冒号(:)和双冒号(::)的用法

1.冒号(:)用法 (1)表示机构内位域的定义(即该变量占几个bit空间) typedef struct _XXX{ unsigned char a:4; unsigned char c; } ; XXX (2)构造函数后面的冒号起分割作用,是类给成员变量赋值的方法,初始化列表,更适用于成员变量的常量const型. struct _XXX{ _XXX() : y(0xc0) {} }; (3) public:和private:后面的冒号,表示后面定义的所有成员都是公有或私有的,直到下一个"pub

android socket readline()方法读不到值的问题

在一次socket编码中,我从客户端发送一条数据到服务器, 可是在服务器我用readline()方法没取到值,也没报错. 于是我把可能发生错误的代码用输出语句包裹,到readline这一行的时候停止的编译, 我意识到是读取的时候出了问题 BufferedReader的readLine方法是一次读一行的,这个方法是阻塞的, 直到它读到了一行数据为止程序才会继续往下执行 直到程序遇到了换行符或者是对应流的结束符readLine方法才会认为读到了一行, 才会结束其阻塞,让程序继续往下执行 所以在写入的

操作符(++,+,+=,小于号,(),--等)重载

 1. 操作符(++,+,+=,小于号等)重载 新建QT项目,编写头文件 #ifndef DIALOG_H #define DIALOG_H #include <QDialog> #include<QLabel> namespace Ui { class Dialog; } //编写自己的Label class myLabel { public: //一定要是共有的,才可以被调用 QLabel *ql; int cx; int cy; myLabel() { ql=new QL

Java中 == 和 equals()、 equals() 和 hashCode()

 == 和 equals() 记住三句话 1. 语义上:==指的是内存引用一样.equals是指的是逻辑相等.逻辑相等具体的意思由编写者决定. 2. 默认情况下(继承自Object类),equals和==是一样的,除非被覆写(override)了. public boolean equals(Object obj) { return (this == obj); } 3. 最典型equals已经被override的例子是String: String中的字符串文本相等则视为逻辑相等(s1.equa