zoukankan      html  css  js  c++  java
  • Egret 显示容器

    1,显示容器:所有的容器都继承自DisplayObjectContainer , DisplayObjectContainer 又继承自DisplayObject;

    2,想定义一个容器只要创建一个类,并使其继承自DisplayObjectContainer 即可,想实现graphics功能,只要继承Sprite类即可;

    3,显示对象的操作:添加,删除,检测,访问,设置堆叠次序;

    建立显示对象

    var spr:egret.Sprite = new egret.Sprite();

    spr.beignFill(0x009900);

    spr.drawRect(0,0,100,100);

    spr.endFill();

    this.addChild(spr);  //建立完后要添加显示对象

    显示列表是一个树状结构,spr的上一级就是this,也就是文档类,文档类是stage舞台的第一个对象;

    删除显示对象:this.removeChild(spr);

    4,显示对象的注意点:

    1)显示对象独立于显示列表:当显示对象被删除后,显示对象只是不再参与渲染,但是仍然在内存常驻;

    2)显示对象的坐标系是相对坐标系,而非绝对坐标系,就是相对于父级原点的位置;

    3)多次添加显示对象到显示列表:同一个显示对象无论被添加多少次,在屏幕上只会显示一次;

    例如:将一个显示对象A添加到B容器中,又被添加到C容器中,则第二次添加A对象时C.addChild(A),是先从B容器上删除A对象,然后再添加到C容器上;

    4)删除操作的注意点:

    删除一个显示对象时,该显示对象必须有父级也就是必须在显示列表中;否则会报错;

    因此,每次删除显示对象前,都对其进行一次判断;

    if(spr.parent){

      spr.parent.removeChild(spr);

    }

    5,深度管理:

    每个显示对象在显示列表中都有一个深度值,就是堆叠次序,称之为”z-次序‘’;

    egret容器中的深度从0开始,第一个被添加的对象的深度值就是0;也即是位于容器的最底层,后加的显示对象覆盖在它上面;

    添加/删除指定深度的对象:

    使用addChild()添加显示对象时,,默认是按照次序一次堆叠,如果想要插入到指定深度处,使用容器.addChildAt(显示对象,深度值)方法;

    可以使用removeChild(spr)删除显示对象,也可以使用removeChild(深度值)来删除指定的显示对象;

    6,访问容器子对象

    1)通过获取深度值获取容器子对象:

    容器.getChildAt(深度值);

    2)通过name属性获取:

    可以先为显示对象添加属性name:spr.name ="xxxx";

    容器.getChildByName("xxxx");

    6,输入文本:

    使用输入文本的关键是设置输入文本类型,TextFieldType.INPUT:

    var tx : egret.TextField = new egret.TextField();

    tx.type = egret.TextFieldType.INPUT ;

    tx.width = 200;

    tx.height = 100;

    tx.x = 150;

    tx.y = 100;

    this._container.addChild(tx);  //_container 是事先建立的显示容器;egret.Shape;

    7,多种样式文本的组合方式:

    JSON方式分段设置样式:

    interface ITextField{

      text : string ;

      style : ITextStyle;

    }

    var tx:egret.TextField = new TextField();

    tx.textFlow = <Array<egret.ITextElement>>[{ text : "举个例子" , style : {"size" : 10} } , {} ,{}];   //将文档流转成为元素的egret.ITextElement的数组

  • 相关阅读:
    满屏品字布局怎么设计
    Web前端面试题(二)
    Welcome-to-Swift-11方法(Methods)
    Welcome-to-Swift-10属性 (Properties)
    Welcome-to-Swift-09类和结构体(Classes and Structures)
    Welcome-to-Swift-08枚举 (Enumerations)
    Welcome-to-Swift-07闭包(Closures)
    Welcome-to-Swift-06函数(Functions)
    Welcome-to-Swift-05控制流(Control Flow )
    Welcome-to-Swift-04集合类型(Collection Types)
  • 原文地址:https://www.cnblogs.com/RitaLee/p/6207303.html
Copyright © 2011-2022 走看看