zoukankan      html  css  js  c++  java
  • Egret --视觉编程,显示对象,事件

    1,在egret中,视觉图形都是由显示对象和显示对象容器组成的;

    显示对象:准确的说,就是在舞台上显示出来的,包括能真实看见的图形,文字,图片,视频等;也包括不能看见但真实存在的显示对象容器;

    一:显示对象的等级结构:

    在最上面的是舞台,舞台是最根本的显示容器,是显示树结构的根本;

    在egret中显示对象分为两大类:

    1)包含显示对象的显示对象容器,简称为容器;

    2)单纯的显示对象;

    2,在egret中封装了 7个显示类:

    DisplayObject:显示对象基类,所有显示对象都继承自它;

    DisplayObjectContainer:显示对象容器接口,所有显示对象容器均实现此接口;

    Bitmap:位图,用来显示图片;

    3,显示对象的基本概念:

    egret中,坐标系从左上角开始:

    横轴方向,越向右,X值越大;向上为正;

    纵轴方向,越向下,Y值越大;向下为正;

    Shape:矢量图类,可以使用其中的方法绘制图形;

    Sprite:轻量级显示容器;

    Stage:舞台类;继承自Sprite类;

    TextField:文本类;

    TextInput:输入文本类;继承自TextField类;

     4,使用显示对象创建矩形的时候;

    修改显示对象的位置:可以使用x,y来修改矩形的位置;

    透明度:alpha;

    缩放变化:在x, y方向都进行缩放;

    scaleX; //横向缩放;

    scaleY;  //纵向缩放;

    旋转属性rotation;

    skewX:横向斜切;

    skewY:纵向斜切;

    visible:是否可见;

    x : x轴坐标

    y: y轴坐标;

    例:

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

    spr.x = 100;

    spr.y = 50;

    spr.scaleX = 0.5; //缩放0.5倍;

    spr.scaleY = 0.5;

    spr.alpha = 0.4;

    spr.rotation = 30; //旋转30度;

    5,锚点的操作:

    锚点默认位于显示对象的左上角;

    当设置显示对象的位置时,默认是以锚点为参照物的,但是锚点相对于对象的位置也是可以改动的;

    6,显示对象的转化坐标的方法:

    globalToLocal():将舞台坐标转为本地坐标;

     localToGlobal():将本地坐标转为舞台坐标;

    7,事件的执行流程:

    注册侦听器(addEventListener()),发送事件,执行事件,移除侦听器(removeEventListener());

    8,Event :是所有事件的基类;所有事件都应继承自它;

    使用Event时,有几个属性和参数需要注意:

    1)首先是构造函数中的几个参数:type,bubbles,cancelable;

    type指事件的类型,常用的事件类型有,ADDED, COMPLETE等;

    bubbles指事件是否参与事件流的冒泡阶段;

    cancelable指是否取消Event对象;

    另外还要注意的属性是target,表示要事件的目标,也就是事件的发送者,

    2)自定义事件:

    游戏中常常会使用一些自定义事件:

    例:

    class DateEvent extends egret.Event
    {
        public static DATE:string = "约会";
        public _year:number = 0;
        public _month:number = 0;
        public _date:number = 0;
        public _where:string = "";
        public _todo:string = "";
        public constructor(type:string, bubbles:boolean=false, cancelable:boolean=false)
        {
            super(type,bubbles,cancelable);
        }
    }
    自定义事件类很简单,仅仅是继承自egret.Event类,然后有个自己的事件的静态属性 DATE ,另外还有一些事件的数据;如日期year,month,date,地点等;

     9,事件侦听器:就是事件的处理者,接受事件的信息,并在接受后执行相应的代码;

    事件的侦听器必须是一个函数,事件的发送者必须是event.EventDispatcher类或其子类的实例;

    只有事件发送者可以侦听事件,并可以注册侦听器;

    侦听事件分为两个部分:

    1)建立侦听器:侦听器可以是独立的函数,也可以是某个对象()实例)的方法;但是这个侦听器必须有一个参数,参数必须是event类实例或其子类的实例,并且返回值必须为空(void);

    listenerName(evt : Event) : void{ // 。。。。。。}

    2)注册侦听器:使用addEventListener将相应事件分配给侦听器;

    注册侦听函数的定义:

    public addEventListener(type:string, listener:Function, thisObject:any, useCapture:boolean = false, priority:number = 0);
    前三个参数是最常用的;
    type:表示事件类型;
    listener:用来处理事件的侦听器;
    thisObject:它比较特殊,一般写this;
    3)注册侦听器和移除侦听器:
    二者总是成对出现的;
    注册侦听器:事件发送者.addEventListener(事件类型,侦听器,this);
    移除侦听器:事件发送者.removeEventListener(事件类型,侦听器,this);
    4)检测侦听器:检测某个事件发送者是否注册了侦听器;
    两个方法可以使用:hasEventListener()或者是willTrigger(); 执行效果相同,都是判断事件发送者是否注册了某个类型 的事件;如果事件类型被注册过,返回true,否则返回false
    事件发送者.hasEventListener(事件类型);
    10,TouchEvent的启动开关:
    启动开关touchEnabled指定此对象是否接受触摸或其他用户的输入默认值为true,表示默认情况下,任何DisplayObject都会接受触摸事件或其他用户输入事件;若设置为false,则不接受任何触摸事件,子级
    也不会受到影响;要更改显示列表上的所有子级的touchEnable行为,请使用DisplayObjectContainer.touchChildren;
    显示过程中,如果某些对象不再需要侦听touchEvent,则使用 事件发送者.touchEvent = false;取消
  • 相关阅读:
    Java中的final关键字
    使用chrome浏览器调试时的搜索技巧
    查看“文件路径”&“在此处打开命令窗口”
    python安装 错误 “User installations are disabled via policy on the machine”
    Charles 激活入口以及账号密码
    大数据学习(一) | 初识 Hadoop
    Django基础3-数据库交互
    Django基础2
    Django基础使用1
    创建-Django创建启动
  • 原文地址:https://www.cnblogs.com/RitaLee/p/6197815.html
Copyright © 2011-2022 走看看