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)自定义事件:

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

例:

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

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

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

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

侦听事件分为两个部分:

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

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

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

注册侦听函数的定义:

  1. 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(事件类型);
    10TouchEvent的启动开关:
    启动开关touchEnabled指定此对象是否接受触摸或其他用户的输入。默认值为true,表示默认情况下,任何DisplayObject都会接受触摸事件或其他用户输入事件;若设置为false,则不接受任何触摸事件,子级
    也不会受到影响;要更改显示列表上的所有子级的touchEnable行为,请使用DisplayObjectContainer.touchChildren;
    显示过程中,如果某些对象不再需要侦听touchEvent,则使用 事件发送者.touchEvent = false;取消

Egret --视觉编程,显示对象,事件的更多相关文章

  1. Egret Engine 2D - 显示对象

        alpha:透明度 width:宽度 height:高度 rotation:旋转角度 scaleX:横向缩放 scaleY:纵向缩放 skewX:横向斜切 skewY:纵向斜切 visible ...

  2. [.net 面向对象编程基础] (22) 事件

    [.net 面向对象编程基础] (22)  事件 事件(Event)是学习.net面向对象编程很重要的一部分,在学习事件之前,我们实际上已经在很多地方使用了事件,比如控件的click事件等,这些都是. ...

  3. Cocos2d-X3.0 刨根问底(五)----- Node类及显示对象列表源码分析

    上一章 我们分析了Cocos2d-x的内存管理,主要解剖了 Ref.PoolManager.AutoreleasePool这三个类,了解了对象是如何自动释放的机制.之前有一个类 Node经常出现在各种 ...

  4. Erget 显示对象

    核心显示类: 类 描述 DisplayObject 显示对象基类,所有显示对象均继承自此类 Bitmap 位图,用来显示图片 Shape 用来显示矢量图,可以使用其中的方法绘制矢量图形 TextFie ...

  5. Egret的容器--删除对象,遮罩

    class P91F extends egret.Sprite { public constructor() { super(); this.addEventListener(egret.Event. ...

  6. 白鹭引擎 - 显示对象与 HelloWord ( 绘制了一个红蓝相间的 2 x 2 格子 )

    1: 白鹭引擎默认实在一个 640 * 1136 的画布上作画 2: 入口文件 Main.ts,  类 Main 是程序的入口 // 1, 在一个宽高为 640 * 1136 的画布上作画 // 2, ...

  7. Egret容器的鼠标默认事件

    容器的鼠标默认事件   touchEnabled touchChildren touchThrough DisplayObject false \ \ DisplayObjectContainer f ...

  8. Arcgis for Js之鼠标经过显示对象名的实现

    在浏览地图时,移动鼠标经过某个对象或者POI的时候,能够提示该对象的名称对用户来说是很实用的,本文讲述在Arcgis for Js中,用两种不同的方式来实现该效果. 为了有个直观的概念,先给大家看看实 ...

  9. Day07:常用模块,面向对象编程(对象&类)及内置函数

    今日内容:1.常用模块2.面向对象编程(*****)    介绍面向对象编程    类    对象3.内置函数------------------------------1.面向过程编程    核心“ ...

随机推荐

  1. leetcode Binary Tree Postorder Traversal 二叉树后续遍历

    先给出递归版本的实现方法,有时间再弄个循环版的.代码如下: /** * Definition for binary tree * struct TreeNode { * int val; * Tree ...

  2. Mocha JavaScript TDD

    JavaScript TDD with Mocha 2014-04-30 02:05 by owenyang, 317 阅读, 0 评论, 收藏, 编辑 开发现状 当新的版本快要发布的时候,大家都忙于 ...

  3. OrchardNoCMS

    基于ASP.NET MVC的热插拔模块式开发框架(OrchardNoCMS)--BootStrap 按照几个月之前的计划,也应该写一个使用Bootstrap作为OrchardNoCMS的UI库.之前这 ...

  4. ORACLE表建立自增列

    create tablespace studentDBdatafile 'E:\datafiles_1.dbf' size 10m; create user Huang_Ying_Boidentifi ...

  5. C#通过模板导出Word(文字,表格,图片)

    C#通过模板导出Word(文字,表格,图片)   C#导出Word,Excel的方法有很多,这次因为公司的业务需求,需要导出内容丰富(文字,表格,图片)的报告,以前的方法不好使,所以寻找新的导出方法, ...

  6. android中自定义shape

    <shape> <!-- 实心 --> <solid android:color="#ff9d77"/> <!-- 渐变 --> & ...

  7. MD5算法-爬虫学习(五)

    在实现爬虫的时候,我们使用Hash结构去存储我们用过的URL的时候,有些URL可能长度很长,为了更加节省空间,我们就要对URL进行压缩,帮它减减肥,这个我们介绍这个MD5算法,可以对URL进行有效的压 ...

  8. c++class 内存布局

    #include <iostream> using namespace std; class base1 { int a; double b; char c; }; int main() ...

  9. 长乐集训2012.7.11 happy(指针技巧的运用)

    题1  Noip的快乐 (happy.pas/c/cpp) [问题描述] 终于到了一年一度的Noip比赛了,多么令人期待和兴奋的一天!其实,人们最高兴的还不是遇见老朋友,而是结交新朋友.可是结交新的朋 ...

  10. EasyNet.Solr 4.4.0发布及例子

    EasyNet.Solr 4.4.0发布及例子 EasyNet.Solr 4.4.0已经发布,可以直接从http://easynet.codeplex.com/ 下载试用并反馈.最新版本进行了以下改动 ...