字号没有 22
mg.alertManager.showAlert(SpecialTeQuanAlert, true, true, TypeTeQuan.CFGID_3); 弹窗跳转
mg.uiManager.show(dialog.RechareTeHuiMain, { tabIndex: TypeFunOpenIndex.XYLC }); 界面跳转
奖励小组件:
这段可以经常看 : var voBuy: vo.SgActivityListVO = GameModels.sgActivity.getSgActivityListVOByType(game.sgActivityType.xylc_buy);
var voList: vo.SgActivityRewardListVO[] = voBuy.actRewardListVO;
for (let i: number = 0; i < this._rwards.length; i++) {
if (voList[i]) {
this._rwards[i].data = { reward: voList[i].otherRewards, day: i + 1 };
}
}
多个奖励的
// { reward: voList[i].otherRewards, day: i + 1 }
var rewards: Array<string> = this.data.reward.split(";");
for (var i: number = 0; i < this._rwards.length; i++) {
var iconBox: components.RewardItemBox = this._rwards[i];
if (i < rewards.length) {
iconBox.dataSource = rewards[i];
this.boxGroup.addChild(iconBox);
} else {
if (iconBox.parent) {
iconBox.parent.removeChild(iconBox);
}
}
}
添加未知奖励个数奖励:
if (this.data) {
this.groupReward.removeChildren();
var tempFind: templates.dataSetting[] = Templates.getTemplatesByProperty(templates.Map.DATASETTING, "type", 158);
if (!tempFind) return;
var findNameList = tempFind[4].value.split(";")
for (let i = 0; i < findNameList.length; i++) {
if (this.data.playerType == findNameList[i].split("_")[0]) {
this.labFindName.text = findNameList[i].split("_")[1];
}
}
var smallAwds: string[] = this.data.rewardItem;
this._rwards = smallAwds;
for (let i: number = 0; i < this._rwards.length; i++) {
var rend: components.RewardItemBox = new components.RewardItemBox();
rend.dataSource = this._rwards[i];
this.groupReward.addChild(rend);
}
} else {
this.groupReward.removeChildren();
}
永久次数:
if (GameModels.clientTag.tagCountSByType(1, TypeClientTag.Talk_7) <= 0) {
main.mainTalk1.instance.add(7097);
GameModels.clientTag.clientAddTag(1, TypeClientTag.Talk_7);
}
给list添加组件
var rend: renderer.ImperialEdictListRenderer;
for (let i = 0; i < len; i++) {
rend = this.list.getElementAt(i) as renderer.ImperialEdictListRenderer;
if (!!rend) {
rend.all.x = rend.all.width;
rend.showEffect(i);
}
}
添加音效:
AudioManager.playSoundByConfID(TypeSound.GET_REWARD);
关闭当前弹窗:
this.dispatchEventWith(egret.Event.CLOSE);
关闭当前打开的所有界面的弹窗或者界面:GameManager文件
mg.uiManager.removeAllDialogs();
mg.alertManager.closeALert();
mg.alertnewManager.closeAllAlert();
读配置表:通过一个任意属性获取本地数据模板
var tempRefine: templates.equipRefine = Templates.getTemplateByProperty(templates.Map.EQUIPREFINE, "lv", this._template.lv);
Templates.ts文件有获取配置表的方法
读配置设置文字(携带参数的,多个参数逗号隔开,依次放在后面),没有参数的直接Language.E_WJDJ1JS
this.openTxt.text = Language.getExpression(Language.E_WJDJ1JS, funcVO.openLv);
文字有颜色的
this.labFind.textFlow = utils.TextFlowMaker.htmlParser(Language.getExpression(Language.E_HYDMSKZHJL, tempFind[3].value, tempFind[2].value));
弹文字tip提示
mg.alertManager.tip(Language.J_HQCG);
序列帧特效
mg.effectManager.bindEffect(this.btnGet, TypeEffectId.BUTTON_EFF_MID);
添加定时器
utils.timer.once(250, this, () => {
this._isMoveBack = false;
});
清除定时器
if (this._isMoveBack) return;
配置导出到本地:
七日挑战界面是 jinjietiaozhanview
浅拷贝:concat()
每次上线有奖励的时候显示红点:不把奖励和标记联系在一起,上线的时候先给标记(this._isFirstOpenFind)为true,判断红点的时候同时满足这两个条件 if (this._isFirstOpenFind && newFindRewards.length > 0) return true;
添加滤镜:(按钮变成灰色)
utils.DisplayUtil.addFilter(this.btnLeft, utils.DisplayUtil.GRAY_FILTER2);
清除滤镜:(按钮灰显放开)
utils.DisplayUtil.clearFilter(this.btnLeft);
scroller下面含group 要让group里面居中 要在代码里面设置scroler的宽高
点击事件有时用到
var index = this._items.indexOf(e.currentTarget);
需要mg.uiManager.show的时候需要调用
Mediator.getMediator(this).onAdd(this, this.enter);
Mediator.getMediator(this).onRemove(this, this.exit);
如果是界面中的组件的时候 需要在引用的界面里面enter (eg: this.prospect.enter();)和移除;
锚点设置:思路打开 锚点不一定在图片上,也可以在外面(get)
数组排序:eg:
eventArr.sort((a: vo.GameHoleEventVO, b: vo.GameHoleEventVO) => {
return a.stepId - b.stepId;
})
多条件排序:
this._listArr.sort((a: vo.ItemVO, b: vo.ItemVO) => {
if (a["isSelect"] != b["isSelect"]) {
return a["isSelect"] ? -1 : 1;
} else if (a["isLead"] != b["isLead"]) {
return a["isLead"] ? -1 : 1;
} else if (a.templateProp.quality != b.templateProp.quality) {
return b.templateProp.quality - a.templateProp.quality;
} else if (a.templateProp.id != b.templateProp.id) {
return parseInt(a.templateProp.id) - parseInt(b.templateProp.id);
}
return 0;
});
(a-b)此时为升序,即从小到大排序。
当a-b>0时,a>b,相当于return 1,ab之间交换;
当a-b=0时,相当于return 0,不交换,;
当a-b<0时,a<b,相当于return -1,不交换。
如果想要降序,则可以将 return a-b变为return b-a;
隐藏左上角标题在Dialog.ts文件里
注意:使用特效的时候 要注意一下清除特效
清除tween动画:egret.Tween.removeTweens(目标); eg:this
使用物品id从缓存池取出:
itemvo = vo.fromPool(vo.ItemVO, parseInt(GameModels.shengQi.rewardId)) as vo.ItemVO;
问题:遇到弹窗界面里面的代码走了 但是没有弹界面,可以是弹了 界面被关闭导致的 ; 或者在弹窗移除那里断点,看下堆栈,是从哪里关闭的,可能是场景去的是空场景;
派发事件时传参数:
GameModels.hole.dispatchEventWith(mo.ModelHole.HOLE_DOOR);//不传参数的写法
GameModels.hole.dispatchEventWith(mo.ModelHole.HOLE_DOOR, false, this._nextLevel);//传参数的写法
接收: 用 e.data
private onClickHandler(e: egret.Event) {
this._nextLevel = e.data ? e.data : this._nextLevel;
}
有协议的代码 前后端代码要一起提交,避免报错
网页上面卡断点 ctrl+P 输入界面;
this.once(egret.Event.RENDER, () => {})
进度条滚动距离参考 (ChapterInfoAlert)
if (scroller0Width < scrollerW) {
this.scroller0.viewport.scrollH = 0;
} else if (scroller0Width - receivedW < scrollerW) {
this.scroller0.viewport.scrollH = scroller0Width - scrollerW;
} else {
this.scroller0.viewport.scrollH = receivedW;
}
看战报: b+(空格)+战报