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;取消
Egret --视觉编程,显示对象,事件的更多相关文章
- Egret Engine 2D - 显示对象
alpha:透明度 width:宽度 height:高度 rotation:旋转角度 scaleX:横向缩放 scaleY:纵向缩放 skewX:横向斜切 skewY:纵向斜切 visible ...
- [.net 面向对象编程基础] (22) 事件
[.net 面向对象编程基础] (22) 事件 事件(Event)是学习.net面向对象编程很重要的一部分,在学习事件之前,我们实际上已经在很多地方使用了事件,比如控件的click事件等,这些都是. ...
- Cocos2d-X3.0 刨根问底(五)----- Node类及显示对象列表源码分析
上一章 我们分析了Cocos2d-x的内存管理,主要解剖了 Ref.PoolManager.AutoreleasePool这三个类,了解了对象是如何自动释放的机制.之前有一个类 Node经常出现在各种 ...
- Erget 显示对象
核心显示类: 类 描述 DisplayObject 显示对象基类,所有显示对象均继承自此类 Bitmap 位图,用来显示图片 Shape 用来显示矢量图,可以使用其中的方法绘制矢量图形 TextFie ...
- Egret的容器--删除对象,遮罩
class P91F extends egret.Sprite { public constructor() { super(); this.addEventListener(egret.Event. ...
- 白鹭引擎 - 显示对象与 HelloWord ( 绘制了一个红蓝相间的 2 x 2 格子 )
1: 白鹭引擎默认实在一个 640 * 1136 的画布上作画 2: 入口文件 Main.ts, 类 Main 是程序的入口 // 1, 在一个宽高为 640 * 1136 的画布上作画 // 2, ...
- Egret容器的鼠标默认事件
容器的鼠标默认事件 touchEnabled touchChildren touchThrough DisplayObject false \ \ DisplayObjectContainer f ...
- Arcgis for Js之鼠标经过显示对象名的实现
在浏览地图时,移动鼠标经过某个对象或者POI的时候,能够提示该对象的名称对用户来说是很实用的,本文讲述在Arcgis for Js中,用两种不同的方式来实现该效果. 为了有个直观的概念,先给大家看看实 ...
- Day07:常用模块,面向对象编程(对象&类)及内置函数
今日内容:1.常用模块2.面向对象编程(*****) 介绍面向对象编程 类 对象3.内置函数------------------------------1.面向过程编程 核心“ ...
随机推荐
- NServiceBus 概况
NServiceBus 概况 NServiceBus 概况 NServiceBus 被设计用来组合面向业务的服务,它并不是用来替代诸如 WCF 一类的RPC技术. NServiceBus 不只包含通信 ...
- ASP.NET MVC5 视图预编译
ASP.NET MVC5 视图预编译 ASP.NET MVC5 视图预编译 关于Razor视图及引擎原理,就不多说了. 这里通俗或者不恰当地说,cshtml视图文件是先编译成dll文件,再通过视图 ...
- Shards
跟我一起云计算(5)——Shards 什么是sharding Sharding的基本思想就要把一个数据库切分成多个部分放到不同的数据库 (server)上,从而缓解单一数据库的性能问题.不太严格的 ...
- [置顶] 从引爆点的角度看360随身wifi的发展
从引爆点的角度看360随身wifi的发展 不到一个月的时间,随身wifi预定量就数百万.它的引爆点在哪里,为什么相同的产品这么多它却能火起来,通过对随身wifi的了解和我知识层面分析,主要是因为随身w ...
- MDX示例:求解众数(mode)
在统计学中,众数(Mode)是样本观测值在频数分布表中频数最多的那一组的组中值,主要应用于大面积普查研究之中,众数在一组数据中可能会有好几个.简单的说,众数就是一组数据中占比例最多的一个或几个数.MD ...
- Xml转化为DataTable
/// <summary> /// XML转换为DataTable /// </summary> /// <param name="fileName" ...
- AOP in Spring
AOP in Spring 是不是已经对包裹在每个业务周围的异常处理.事务管理.性能监控.日志记录等重复出现的代码感到厌倦,那么是时候轮到AOP出场了.不得不承认程序员的惰性有时候会是一件好事(毕竟提 ...
- C#开发 “因为某项目未能生成,所以无法发布”
今天把笔记本电脑中开发的项目复制到台式机上,启用调试都正常.准备发布的时候却提示“因为某项目未能生成,所以无法发布”的错误. 从网上查找资料可以通过以下方法解决: 在项目属性的签名标签中,创建测试证书 ...
- 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 ...
- 典型的团队VS优秀团队
如果做不了优秀的团队,那么就做一个典型的团队,公司需要这么一个神话,需要这么一个领头羊. 我在进入某公司后,第一个项目用的是"敏捷开发方法".而公司的理念恰恰是:开发.协作性强.扁 ...