Egret 显示对象基本概念

舞台 stage, 文档类, 容器 和对象

容器 DisplayObjectContainer

对象 DisplayObject

                   EventDispatcher
                     ↑
                DisplayObject
                     ↑
    ------------------------------------------------------------------
    DisplayObjectContainer Bitmap BitmapText Shape TextField MovieClip
        ↑
-----------------------------------
Sprite Stage ScrollView UIComponent

直接集成 DisplayObject 的位非容器, 集成自 DisplayObjectContainer 的为容器,
由于 DisplayObject 集成与 EventDispatcher, 所有显示对象均可以发送事件

脏矩形: 设定渲染区域

// 绘制
var rect = new egret.Rectangle( 0, 0, stageW, stageH - 200 );
egret.RenderFilter.getInstance().addDrawArea( rect );

// 重绘: 设置之前, 场景结束时
egret.RenderFilter.getInstance().clearDrawArea();

显示对象 DisplayObject

  1. x, y (位置,单位像素)
  2. width, heigth (宽高,单位像素)
  3. ancherX, ancherY (百分比锚点设定)
  4. ancherOffsetX, ancherOffsetY (像素锚点设定)
  5. scaleX, scaleY (缩放,百分比) – 位图进行缩放或拉伸,图像会发生模糊
  6. alpha (透明度 0-1)
  7. visible 是否可见
  8. rotation (顺时针旋转角度)
  9. skewX, skewY (横纵向斜切), 将矩形变成菱形 ^_^
  10. mask 遮罩对象 = new egret.Rectangle(x,y,w,h);

Bitmap 位图, Shape 矢量图绘制, TextField 文本操作, BitmapText 使用位图显示文本, MovieClip 逐帧动画

碰撞

var isHit:boolean = shp.hitTestPoint(10, 10 [,true]);

第三参数 false 为根据 w|h 所占用大小进行碰撞, true 为根据实际像素覆盖进行碰撞

自定义显示对象

class MyShape extends egret.Shape {
    private colors:Array<number> = [0xff0000, 0x00ff00, 0x0000ff];
    public constructor() {
    super();
    }
    public drowRects(amount:number):void {
    for (var i=0; i< amount; i++) {
        for (var j=0; j< amount; j++) {
        this.graphics.beginFill(this.colors[i%colors.length], 0.5);
        this.graphics.drowRect(i*50,j*50,50,50);
        this.graphics.endFill();
        }
    }
    }
}
var _myShape:MyShape = new MyShape();
_myShape.drowRects();
this.addChild(_myShape);
Donate - Support to make this site better.
捐助 - 支持我让我做得更好.