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;取消

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. NServiceBus 概况

    NServiceBus 概况 NServiceBus 概况 NServiceBus 被设计用来组合面向业务的服务,它并不是用来替代诸如 WCF 一类的RPC技术. NServiceBus 不只包含通信 ...

  2. ASP.NET MVC5 视图预编译

    ASP.NET MVC5 视图预编译 ASP.NET MVC5 视图预编译   关于Razor视图及引擎原理,就不多说了. 这里通俗或者不恰当地说,cshtml视图文件是先编译成dll文件,再通过视图 ...

  3. Shards

    跟我一起云计算(5)——Shards   什么是sharding Sharding的基本思想就要把一个数据库切分成多个部分放到不同的数据库 (server)上,从而缓解单一数据库的性能问题.不太严格的 ...

  4. [置顶] 从引爆点的角度看360随身wifi的发展

    从引爆点的角度看360随身wifi的发展 不到一个月的时间,随身wifi预定量就数百万.它的引爆点在哪里,为什么相同的产品这么多它却能火起来,通过对随身wifi的了解和我知识层面分析,主要是因为随身w ...

  5. MDX示例:求解众数(mode)

    在统计学中,众数(Mode)是样本观测值在频数分布表中频数最多的那一组的组中值,主要应用于大面积普查研究之中,众数在一组数据中可能会有好几个.简单的说,众数就是一组数据中占比例最多的一个或几个数.MD ...

  6. Xml转化为DataTable

    /// <summary> /// XML转换为DataTable /// </summary> /// <param name="fileName" ...

  7. AOP in Spring

    AOP in Spring 是不是已经对包裹在每个业务周围的异常处理.事务管理.性能监控.日志记录等重复出现的代码感到厌倦,那么是时候轮到AOP出场了.不得不承认程序员的惰性有时候会是一件好事(毕竟提 ...

  8. C#开发 “因为某项目未能生成,所以无法发布”

    今天把笔记本电脑中开发的项目复制到台式机上,启用调试都正常.准备发布的时候却提示“因为某项目未能生成,所以无法发布”的错误. 从网上查找资料可以通过以下方法解决: 在项目属性的签名标签中,创建测试证书 ...

  9. Cross platform GUI for creating SSL certs with OpenSSL

    Someone said: from : https://micksmix.wordpress.com/2012/08/09/xca-cross-platform-gui-for-creating-s ...

  10. 典型的团队VS优秀团队

    如果做不了优秀的团队,那么就做一个典型的团队,公司需要这么一个神话,需要这么一个领头羊. 我在进入某公司后,第一个项目用的是"敏捷开发方法".而公司的理念恰恰是:开发.协作性强.扁 ...