Egret社区

引擎2.5的事件类

2015-9-30 15:23
15506
1银子
项目刚升级到2.5 首当其冲遇到一个事件问题  因为引擎内部限制了 有些属性设置了只读的属性,如果修改只读的属性那么就会抛出警告。
对于Event的重复利用  官方建议使用egret.Event.create    但是每一个事件类本身都有自己一些自定义的属性。
egret.TouchEvent 内部的属性有其他的属性 ,但是我想要创建一个touchEvent的事件我就必须在创建touchEvent的时候把一些属性赋值给予他,不然我就无法在中途去设置。但是egretTouchEvent.create 内部没有对touchEvent本身的事件的参数做支持。。那么请问如何处理。代码片段如下:
create()方法
public create( EventClass:{new (type:string, bubbles?:boolean, cancelable?:boolean): T;eventPool?:Event[]},type:string ,bubbles:boolean ,cancelable:boolean ):T
语言版本: Egret 2.4
运行时版本: Web,Native

了解更多

从对象池中取出或创建一个新的事件实例。我们建议您尽可能使用Event.create()和Event.release() 这一对方法来创建和释放事件对象,这一对方法会将事件实例在内部缓存下来供下次循环使用,减少对象的创建次数,从而获得更高的代码运行性能。
注意:若使用此方法来创建自定义事件的实例,自定义的构造函数参数列表必须跟Event类一致。


上面 是api 文档的提示。  

分享到 :
0 人收藏

6 个回复

倒序浏览
acxzx  登堂入室 | 2015-9-30 16:02:05
SOS`~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dom  圆转纯熟 | 2015-9-30 18:00:15
create()和release()方法分开就是让你可以在这之间再设置额外的属性。你看一眼egret.ProgressEvent. dispatchProgressEvent()方法就明白了。
acxzx  登堂入室 | 2015-9-30 19:08:40
dom 发表于 2015-9-30 18:00
create()和release()方法分开就是让你可以在这之间再设置额外的属性。你看一眼egret.ProgressEvent. dispat ...

ok。  下午已经搞明白 整个事件体系的架构了。。
BTW,问个其他问题,现在是不是已经实现了 单个文件 加载进度了,就是 已经加载的字节数 和 文件的总字节数。
看到ProgressEvent  这个类 想起的之前实现不到的问题
dom  圆转纯熟 | 2015-9-30 21:47:00
acxzx 发表于 2015-9-30 19:08
ok。  下午已经搞明白 整个事件体系的架构了。。
BTW,问个其他问题,现在是不是已经实现了 单个文件 加 ...

嗯,实现了。但是图片加载还是没进度。其他的文件可以有进度。之前无法实现进度的原因就是图片没进度,然后所有加载器都是一个URLLoader,所以统一没进度。现在分成了两个类:ImageLoader和HttpRequest,ImageLoader还是没进度,负责加载图片。HttpRequest加载其他类型,它是有进度的。
acxzx  登堂入室 | 2015-9-30 21:50:10
dom 发表于 2015-9-30 21:47
嗯,实现了。但是图片加载还是没进度。其他的文件可以有进度。之前无法实现进度的原因就是图片没进度,然 ...

图片无法实现进度吗?毕竟现在做游戏 又打成一张spritesheet那种类型的图 单图的大小比较大了。现在用模拟进度条的形式 体验真心不好。
dom  圆转纯熟 | 2015-9-30 23:12:21
acxzx 发表于 2015-9-30 21:50
图片无法实现进度吗?毕竟现在做游戏 又打成一张spritesheet那种类型的图 单图的大小比较大了。现在用模 ...

嗯,目前无法实现,因为浏览器上没有提供任何图片加载进度的接口。是有新的接口可以变通实现,但是还没普及。要等上一段时间。就是那个把字节流转换为图片的接口。加载字节流可以有进度。加载完成的时候转成图片对象。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|京网文[2014]0791-191号|京ICP证150115号|Egret社区 ( 京ICP备14025619号 )

Powered by Discuz! X3.4 © 2001-2019 Comsenz Inc.

返回顶部