我是靠谱客的博主 无辜冰淇淋,最近开发中收集的这篇文章主要介绍LayBox 3D场景的加载和对里面对象的控制,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

防止按钮点击一次 ,函数执行多次
private clickTime=0;
public ClickGoldBtnTimes() {
//this.showBanner();
if(Laya.Browser.now() - this.clickTime <= 100){
console.log(“点击失败”);
this.goldBtn.off(Laya.Event.CLICK,this,this.GoldcallBack);
return ;
}
else{
this.goldBtn.on(Laya.Event.CLICK, this,this.GoldcallBack);
}
this.clickTime=Laya.Browser.now() ;
}

GoldcallBack(){  
    this.goldTimes++;
    console.log("点击了goldBtn" + this.goldTimes);
    this.showBanner();
}

//砸金蛋的函数 计时器
showBanner() {
//如果showBannerAd流量主界面已经存在,先把他关闭
platform.hideBannerAd();
let a = function () {
console.log(“3秒时间到,弹出流量主”);
platform.showBannerAd();
}
//goldEgg界面出现3秒以后就显示流量主
Laya.timer.once(3000, this, a)
//如果三秒之前就点击超过了10次,就不在计时弹出流量组
console.log(“调用showBanner” + this.goldTimes);
if (this.goldTimes >= 10) {
console.log(“10次以后砸蛋成功”);
this.goldEgg.visible = false;
Laya.timer.clear(this, a);
//奖励用户金币100~200之间
let gold = 100 + Math.random() * 101;
this.AddGoldEgg(gold);
this.goldTimes = 0;
}
}

设备像素分辨率:Laya.Browser.clientWidth,Laya.Browser.clientHeight;
设备物理分辨率:Laya.Browser.width,Laya.Browser.height;
像素比:Laya.Browser.pixelRatio;
(显然平时常用的是:设备物理分辨率 width 与 height ,它们代表着浏览器窗口的实际分辨率)

Hander 事件处理器类

https://blog.csdn.net/wangmx1993328/article/details/86152443

1、Handler 是事件 处理器 类。这是优化内存的方式之一,可以参考《LayaAir 对象池 laya.utils.Pool》

2、推荐使用 Handler.create() 方法从对象池创建,减少对象创建消耗。创建的 Handler 对象不再使用后,可以使用 Handler.recover() 将其回收到对象池,回收后不要再使用此对象,否则会导致不可预料的错误。

3、注意:由于鼠标事件也用本对象池,不正确的回收及调用,可能会影响鼠标事件的执行。

4、开发过程中会经常使用 Handler 来完成异步回调。Laya.Handler.create 使用了内置对象池管理,因此在使用Handler对象时可使用 Laya.Handler.create 来创建回调处理器。以下代码使用 Laya.Handler.create 创建资源加载的回调处理器:
Laya.loader.load(urls, Laya.Handler.create(this, onAssetLoaded));

laya.utils.Handler
Laya.Handler 这个类使用的非常多。 一般一次性的操作需要透传我都会使用 Laya.Handler.create() 从对象池内创建一个Handler事件处理器类,默认会执行一次并立即回收,如果不需要自动回收,设置once参数为false。
这个方法进行透传 回调 它指向某些资源(可以是函数,内存等等)。

Promise异步加载(资源,图片) 用以微信分包

//game.json类
{
“name”: “ui”,
“root”: “ui”
}
//main.ts类

private loadSub(name): Promise {//异步加载,返回一个已给定解析后的对象
return new Promise((resolve, reject) => {
const loadTask = wx.loadSubpackage({ //微信加载分包
name: name,
success: resolve,
fail: reject,
})
})
}

onConfigLoaded(): void {
//加载IDE指定的场景
if (wx) {
// const loadTask = wx.loadSubpackage({
// name: ‘subpackages’, // name 可以填 name 或者 root
// success: function (res) {
// // 分包加载成功后通过 success 回调
// // GameConfig.startScene && Laya.Scene.open(GameConfig.startScene);
// Laya.loader.load([“ui/loadui/背景.png”], Laya.Handler.create(this, () => {
// GameConfig.startScene && Laya.Scene.o

最后

以上就是无辜冰淇淋为你收集整理的LayBox 3D场景的加载和对里面对象的控制的全部内容,希望文章能够帮你解决LayBox 3D场景的加载和对里面对象的控制所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(37)

评论列表共有 0 条评论

立即
投稿
返回
顶部