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. requirejs的config及optimizer r.js配置

    1.怎么处理require.js这些不需要被合并的东西 所有appDir中的文件都会先copy到dir文件中,进行压缩,然后根据build.js中的配置进行相应的合并,包括img等:2.样式合并后原来 ...

  2. 《C++游戏开发》笔记十三 平滑过渡的战争迷雾(一) 原理:Warcraft3地形拼接算法

    本系列文章由七十一雾央编写,转载请注明出处.  http://blog.csdn.net/u011371356/article/details/9611887 作者:七十一雾央 新浪微博:http:/ ...

  3. jquery animate stop函数解析

    今天我们来看看jquery中动画操作的stop函数.其实我至今不是很明白啊,所以此文算是求救以及抛砖引玉. 在jquery 1.7版本以前,stop支持两个参数,分别是clearQueue和jumpT ...

  4. ASP.NET4.5Web API及非同步程序开发系列3

    ASP.NET4.5Web API及非同步程序开发系列(3) 接着上一篇博客的内容做一个补充,正好是一个大哥提出来的,我们看看一个有趣的现象. 请求相关问题的补充: 我们先在Controller中的定 ...

  5. PHP, Python Nginx works together!

    Nginx is so good at delivering requests to many others. Good! Now let's use the nginx upstream modul ...

  6. JSP实现页面跳转的方式

    js实现页面跳转的几种方式普通方式 第一种: <script language="javascript" type="text/javascript"&g ...

  7. 使用DOM4J解析XML文档,以及使用XPath提取XML文档

    使用DOM4J解析XML文档 需要首先下载DOM4J工具包.这是个第三方工具包 在使用DOM4J解析的时候需要导入 DOM4J的JAR包 下载DOM4J工具包->在MyEclipse中新建lib ...

  8. 黑马程序员:Java基础总结----GUI&网络&IO综合开发

    黑马程序员:Java基础总结 GUI&网络&IO综合开发   ASP.Net+Android+IO开发 . .Net培训 .期待与您交流! 网络架构 C/S:Client/Server ...

  9. 小C的树(Treap节点删除)[70/100]

    用Treap暴力模拟,调常数~ 好了,接下来说一下Treap中的删除操作 Step 1:先找到这个结点. Step 2:如果它的儿子≤1,用它儿子替它 否则 把之后做根节点的儿子旋转到根 回到Step ...

  10. 分区数据库oracle自动分区

    首先声明,我是一个菜鸟.一下文章中出现技术误导情况盖不负责 oralce在linux下主动备份并删除5天前备份 导出脚本: export ORACLE_BASE=/opt/oracle         ...