egret知(填)识(坑)点集

1. egret.Label 富文本用法

...
public lbTest:eui.Label;
...

lbTest.textFlow=[
  {text:"hello",style:{size:12,textColor:oxffffff}},
   {text:"hello",style:{size:16,textColor:oxffff00}}
]

富文本还可以添加链接,同时可以给链接添加下划线哦 ^0^

var ADDRESS = "egret知(填)识(坑)点集";
lbTest.textFlow=[
...
{
  text: ADDRESS,
  style: { textColor: 0x76b7e8, size: 21, href:"https://www.jianshu.com/p/a4d600ce46af", underline: true },
}
...
]

给链接添加事件:

var ADDRESS = "egret知(填)识(坑)点集";
lbTest.textFlow=[
{
  text: ADDRESS,
  style: { textColor: 0x76b7e8, size: 21, href:"event:gotoPage", underline: true },
}
...
]

lbTest.addEventListener( egret.TextEvent.LINK, function( evt:egret.TextEvent ){
      console.log( evt.text );
      if(isMobile){
          evt.preventDefault();
      }
      window.open("https://www.jianshu.com/p/a4d600ce46af","_blank");
}, this );

但是这样写可能会带来坑,在监听egret.TextEvent.LINK事件的函数内跳转链接,会被浏览器阻止!!!

因此,兼容移动端时,应该这么些:

var ADDRESS = "egret知(填)识(坑)点集";
lbTest.textFlow=[
{
  text: ADDRESS,
  style: { textColor: 0x76b7e8, size: 21, href: isMobile ? "event:gotoPage" : "https://www.jianshu.com/p/a4d600ce46af", underline: true },
}
...
]

lbTest.addEventListener( egret.TextEvent.LINK, function( evt:egret.TextEvent ){
      console.log( evt.text );
      if(isMobile){
          evt.preventDefault();
      }
}, this );

具体情况,请看 论egret的坑

2. 骨骼动画

加载:

 let dragonebonesData = RES.getRes(<*.json>);
 let textureData = RES.getRes(<*_ske.json>); 
 let texture = RES.getRes(<*.png>);
 let factory:dragonBones.EgretFactory = new dragonBones.EgretFactory();
 factory.addDragonBonesData(dragonBones.DataParser.parseDragonBonesData(dragonebonesData));
 factory.addTextureAtlas(new dragonBones.EgretTextureAtlas(texture , textureData));

 var armature:dragonBones.FastArmature = factory.buildFastArmature(armatureName);
 armature.enableAnimationCache(30); 
...

替换控件,方法为dragonBones.Slot.setDisplay(dispaly:any),但是并不是每一次都能成功设置上,display也并不是一直有值,以下提供一种方式参考,并不一定对哈:

private testGroup:eui.Group;//参考点
...

armature.addEventListener(dragonBones.AnimationEvent.START, function(){
  egret.setTimeout(function(){
    let group = this.testGroup;
    let slot: dragonBones.Slot = armature.getSlot("<骨骼名称>");
    let cell = new <控件类>();
    cell.width =group.width;
    cell.height = group.height;
    cell.anchorOffsetX = group.width / 2;
    cell.anchorOffsetY = group.height / 2;
    slot.setDisplay(cell);    
 },this,200);
},this);  

3. 事件

按钮点击事件

private btnTest:eui.Button;
...
btnTest.addEventListener(egret.TouchEvent.TOUCH_TAP,this.onTouch,this);
...
private onTouch(event){
  switch(event.target){
     case this.btnTest:{
        //TODO
      }
  }
}

控件加入和移除事件:

this.addEventListener(egret.Event.ADDED_TO_STAGE...
this.addEventListener(egret.Event.REMOVED_FROM_STAGE...

定时执行

...
let timer:egret.Timer = new egret.Timer(RETRY_INTERVALS[this._retries], 1);
timer.addEventListener(egret.TimerEvent.TIMER,this.text, this);
timer.start();
...
private test(event){
//TODO
}

4. 控件状态替换

class TestLayer eui.Component implements  eui.UIComponent{
...
this.skin.currentState = this.skin.states[0].name;
...
}

5.获取时间的方式

...
let date = Date.now()
...

6.http请求

http://edn.egret.com/cn/article/index/id/589


10.13更新

7.移动端接口适配

 interface MobileInterface {
        ...
        openLink(url:string):void
        ...
    }

    export const API: MobileInterface = window['iface'];

8.获取url参数

var id = egret.getOption('id');

9.Object.keysObject.values的使用

var obj = {};
var keys = (<any>Object).keys(obj);
var values = (<any>Object).values(obj);

10.StringNumberMath等方法的拓展

interface String {
...
  format(...args:any[]): string;
}

String.prototype.format = function () {
    var a = this;
    for (k in arguments) {
        a = a.replace("{" + k + "}", arguments[k]);
    }
    return a;
}

11. TextInput聚焦文本隐藏的bug

div,body{
      overflow-x: hidden; 
      overflow-y: auto;
}

index.html如果设置了以上样式,输入框在聚焦的时候,文本将完全隐藏掉,这个bug不好找,是我一个个版本排错才找出来的。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,122评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,070评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,491评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,636评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,676评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,541评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,292评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,211评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,655评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,846评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,965评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,684评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,295评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,894评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,012评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,126评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,914评论 2 355

推荐阅读更多精彩内容