/** * 广告 */ var ttGame; /** * 广告 */ (function (ttGame) { class BaseADManager { constructor(bannerAdID, rewardedAdID, interstitialAdID) { this.STATE_LOADED = 1; //1(01)加载完成 this.STATE_SHOW = 2; //2(10)显示 this.STATE_EXPOSURE = 3; //3(11)曝光(加载完成并显示) this._ids = { bannerAdID, rewardedAdID, interstitialAdID }; this._adState = { bannerAdState: 0, rewardedAdState: 0, interstitialAdState: 0 }; this.createBannerAd(bannerAdID); this.createRewardedVideoAd(rewardedAdID); this.createInterstitialAd(interstitialAdID); } //↓↓ Banner广告 ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ /** 创建Banner广告 */ createBannerAd(bannerAdID) { if (!tt.createBannerAd) return; let sysInfo = platform.systemInfo.info; // 创建 Banner 广告实例,提前初始化 let ad = tt.createBannerAd({ adUnitId: bannerAdID, adIntervals: 30, style: { left: 0, top: sysInfo.windowHeight, width: this._bannerAdWidth ? this._bannerAdWidth : sysInfo.windowWidth // height:90//字节广告只有设置宽度,无高度设置 } }); if (!ad) return; ad.onResize(this.onBannerResize.bind(this)); ad.onError(this.onBannerError.bind(this)); ad.onLoad(this.onBannerLoaded.bind(this)); this._bannerAd = ad; } onBannerResize(size) { log("Banner size:", size); let sysInfo = platform.systemInfo.info; this._bannerAd.style.left = (sysInfo.windowWidth - size.width) >> 1; //居中 this._bannerAd.style.top = sysInfo.windowHeight - size.height; //底部 } /** banner报错 */ onBannerError(err) { log("Banner广告报错:", err); } /** banner加载完成 */ onBannerLoaded() { // log("Banner onLoad:", windowHeight, ad.style.height) // ad.style.top = windowHeight - ad.style.height;//y坐标,按广告真实高度定 this.addBannerState(this.STATE_LOADED); core.Manager.wtsdk.sendAdLog(this._ids.bannerAdID, core.AdLogType.REQUEST); } /** 添加状态(加载完或显示),并查看是否曝光(加载完且显示) */ addBannerState(state) { this._adState.bannerAdState |= state; if (this._adState.bannerAdState == this.STATE_EXPOSURE) { core.Manager.wtsdk.sendAdLog(this._ids.bannerAdID, core.AdLogType.EXPOSURE); } } /** 显示 banner 广告 */ showBanner() { if (this._bannerAd) { this._bannerAd.show(); this.addBannerState(this.STATE_SHOW); } } /** 隐藏 banner 广告 */ hideBanner() { if (this._bannerAd) this._bannerAd.hide(); this._adState.bannerAdState = 0; //重置状态 } //↑↑ Banner广告 ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ //↓↓ 激励视频广告 ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ /** 创建激励视频广告 */ createRewardedVideoAd(rewardedAdID) { if (!tt.createRewardedVideoAd) return; this._rewardedVideoAd = tt.createRewardedVideoAd({ adUnitId: rewardedAdID }); log("创建激励视频广告", this._rewardedVideoAd); if (!this._rewardedVideoAd) return; this._rewardedVideoAd.onError(this.onRewardedVideoAdError.bind(this)); this._rewardedVideoAd.onClose(this.onRewardedVideoAdClosed.bind(this)); this._rewardedVideoAd.onLoad(this.onRewardedVideoAdLoaded.bind(this)); } /** 激励视频广告报错 */ onRewardedVideoAdError(err) { log("激励视频出错", err); core.Manager.eDispatcher.event(core.Event.REWARDED_AD_ERROR, err); } /** 激励视频广告关闭 */ onRewardedVideoAdClosed(res) { log("激励视频关闭", res); this._adState.rewardedAdState = 0; //重置状态 if (res && res.isEnded) core.Manager.wtsdk.sendAdLog(this._ids.interstitialAdID, core.AdLogType.FINISH); //完成激励视频观看 core.Manager.eDispatcher.event(core.Event.REWARDED_AD_CLOSE, res && res.isEnded); } /** 激励视频广告加载完成 */ onRewardedVideoAdLoaded(res) { log("激励视频加载", res); this.addRewardedState(this.STATE_LOADED); core.Manager.wtsdk.sendAdLog(this._ids.rewardedAdID, core.AdLogType.REQUEST); core.Manager.eDispatcher.event(core.Event.REWARDED_AD_ONLOAD, res); } /** 添加状态(加载完或显示),并查看是否曝光(加载完且显示) */ addRewardedState(state) { this._adState.rewardedAdState |= state; if (this._adState.rewardedAdState == this.STATE_EXPOSURE) { core.Manager.wtsdk.sendAdLog(this._ids.rewardedAdID, core.AdLogType.EXPOSURE); } } /** * 显示激励广告 */ showRewardedVideoAd() { if (!this._rewardedVideoAd) return; // let ad = this._rewardedVideoAd; // // 用户触发广告后,显示激励视频广告 // ad.show().catch(() => { // // 失败,手动加载一次 // ad.load() // .then(() => ad.show()) // .catch(err => // { // log('激励视频 广告显示失败'); // core.Manager.eDispatcher.event(core.Event.REWARDED_AD_ERROW, err); // }) // }) let ad = this._rewardedVideoAd; // this._rewardedVideoAd.load().then(() => { // ad.show(); // }); ad.show(); this.addRewardedState(this.STATE_SHOW); } //↑↑ 激励视频广告 ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ //↓↓ 插屏广告 ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ /** 创建插屏广告 */ createInterstitialAd(interstitialAdID) { // // 定义插屏广告 // // 创建插屏广告实例,提前初始化 if (!tt.createInterstitialAd) return; this._interstitialAd = tt.createInterstitialAd({ adUnitId: interstitialAdID }); log("创建插屏广告", this._rewardedVideoAd); if (!this._interstitialAd) return; this._interstitialAd.onError(this.onInterstitialAdError.bind(this)); this._interstitialAd.onClose(this.onInterstitialAdClosed.bind(this)); this._interstitialAd.onLoad(this.onInterstitialAdLoaded.bind(this)); } /** 插屏广告报错 */ onInterstitialAdError(err) { log("插屏广告出错", err); core.Manager.eDispatcher.event(core.Event.INTERSTITIAL_AD_ERROR, err); } /** 插屏广告关闭 */ onInterstitialAdClosed(res) { log("插屏广告关闭", res); this._adState.interstitialAdState = 0; //重置状态 core.Manager.eDispatcher.event(core.Event.INTERSTITIAL_AD_CLOSE, res); } /** 插屏广告加载完成 */ onInterstitialAdLoaded(res) { log("插屏广告加载", res); this.addInterstitialState(this.STATE_LOADED); core.Manager.wtsdk.sendAdLog(this._ids.interstitialAdID, core.AdLogType.REQUEST); core.Manager.eDispatcher.event(core.Event.INTERSTITIAL_AD_ONLOAD, res); } /** 添加状态(加载完或显示),并查看是否曝光(加载完且显示) */ addInterstitialState(state) { this._adState.interstitialAdState |= state; if (this._adState.interstitialAdState == this.STATE_EXPOSURE) { core.Manager.wtsdk.sendAdLog(this._ids.interstitialAdID, core.AdLogType.EXPOSURE); } } /** * 显示插屏广告 */ showInterstitialAd() { // 在适合的场景显示插屏广告 if (!this._interstitialAd) return; let ad = this._interstitialAd; this._interstitialAd.load().then(() => { ad.show(); this.addInterstitialState(this.STATE_SHOW); }).catch((err) => { log("显示插屏广告err:", err); }); ; } } ttGame.BaseADManager = BaseADManager; })(ttGame || (ttGame = {})); /// var ttGame; /// (function (ttGame) { class ADManager extends ttGame.BaseADManager { constructor() { super("5ned9cusvp93gaecf5", "548if3698jfe98cl0c", "pdjoqnq1i9537a7o1o"); //广告id this._bannerAdWidth = Math.floor(tt.getSystemInfoSync().windowWidth / 3); //不取默认屏幕宽度,则设置banner宽度 } //重写设置banner位置 onBannerResize(size) { let windowWidth = tt.getSystemInfoSync().windowWidth; let windowHeight = tt.getSystemInfoSync().windowHeight; this._bannerAd.style.left = windowWidth - size.width; //居右 this._bannerAd.style.top = windowHeight - size.height; //底部 } } ttGame.ADManager = ADManager; })(ttGame || (ttGame = {})); /// var ttGame; (function (ttGame) { class BasePlatform extends core.BasePlatform { constructor() { super(); } /** 初始化监听事件 */ initEvent() { tt.onShow(this.onShow.bind(this)); //监听小游戏回到前台的事件 tt.onHide(this.onHide.bind(this)); //监听小游戏隐藏到后台事件,锁屏、按 HOME 键退到桌面等操作会触发此事件。 } /** * 回到前台的事件处理函数 */ onShow(data) { Laya.timer.resume(); // Laya.stage.renderingEnabled=true//恢复渲染 // Laya.updateTimer.resume() //恢复onUpdate // Laya.physicsTimer.resume() //恢复物理 // Laya.systemTimer.resume(); core.Manager.wtsdk.sendStart({ scene: this.startScene }); core.Manager.eDispatcher.event(core.Event.ON_SHOW, data); } /** * 小游戏隐藏到后台事件处理函数。 */ onHide(data) { Laya.timer.pause(); // Laya.stage.renderingEnabled=false//停止渲染 // Laya.updateTimer.pause() //停止onUpdate // Laya.physicsTimer.pause() //停止物理 // Laya.systemTimer.pause(); core.Manager.wtsdk.sendExit({ scene: this.startScene }); core.Manager.eDispatcher.event(core.Event.ON_HIDE, data); } /** * 初始化(登陆、获取用户信息、设置默认分享) */ init() { this.systemInfo = new ttGame.SystemInfo(); core.Manager.baseInfo.app_name = this.systemInfo.appName; //设置应用名 core.Manager.baseInfo.device = this.systemInfo.device; //设置设备 core.Manager.baseInfo.platform_id = core.PlatformType.ID_TTGAME; //设置平台id(1-字节) // // core.Manager.wtsdk.sendVersion();//发送游戏版本到后台 // //请求php,游戏初始化和配置数据 // core.Manager.wtsdk.getInitData(Laya.Handler.create(this, (data) => (core.Manager.config.data = data.result))); // //请求php,获取游戏列表 // core.Manager.wtsdk.getGameList(Laya.Handler.create(core.Manager, core.Manager.setGameList)); this.openDataContext = tt.getOpenDataContext(); //获取开放数据域 this.ad = new ttGame.ADManager(); //初始化广告 this.initEvent(); //初始化监听事件 this.sendRes(); //资源加载完成后,使用接口将图集透传到子域 this.initRecorder(); //初始化录屏器 this.setDefaultShare(); //设置默认分享 this.login(); //登陆 // tt.setUserGroup({ groupId: this.GROUP_ID });//设置排行分组 } /** * 登陆 - 获取Code */ login() { tt.login({ force: false, success: this.loginComplete.bind(this, true), fail: this.loginComplete.bind(this, false) // complete:this.loginComplete.bind(this) }); } /** * 登陆完成回调 */ loginComplete(isSucc, data) { // {errMsg: "login:ok", anonymousCode: "535ed5c9f15679e2", code: "6a4bfc20dc513b4e", isLogin: true} // 登陆失败时,后台要求anonymousCode、code发个空值 if (!isSucc) { data.anonymousCode = null; data.code = null; } data.app_name = core.Manager.baseInfo.app_name; data.game_id = core.Manager.baseInfo.game_id; data.platform_id = core.Manager.baseInfo.platform_id; data.device = this.systemInfo.device; data.scene = this.startScene; data.version = BaseConfig.version; core.Manager.wtsdk.getUserInfo(data, Laya.Handler.create(this, this.httpUserInfoCallback)); //向后台请求用户信息 this.getAccessToken(); } /** 获取AccessToken接口 */ getAccessToken(callBack) { core.Manager.wtsdk.getAccessToken(Laya.Handler.create(this, (data) => { // "code": 200, // "result": { // "data": { // "access_token": "87be87ff0c68ecb79a970e6582b30ab1e90b1118f83bdd27d7f0d985f84ba8b1eda5b32488f9d84060bca6665b96c98937410dddd992c24664c4e863c45a31ea1d6d164dc8b59638fafbc97e31497", // "expires_in": 1606742584 // }, // "appId": "tt29575feab66d7a22" // }, // "msg": "操作成功" if (data.code) { this.appID = data.result.appId; this.accessToken = data.result.data.access_token; } if (callBack) callBack.runWith(data); })); } //向后台请求用户信息 httpUserInfoCallback(data) { if (data && data.code == 200) { core.Manager.baseInfo.token = data.result.id; core.Manager.selfInfo.updateAll(data.result); this.checkSetting(); //获取用户信息 } else log(data); } //向后台发送平台用户信息 setUserInfo(userInfo) { //如果能获取到字节个人信息,则发送更新用户信息 if (userInfo) core.Manager.wtsdk.modifyUserInfo({ userInfo: userInfo, member_id: core.Manager.selfInfo.id }, Laya.Handler.create(this, this.httpModifyUserInfoCallback)); else { core.Manager.selfInfo.isAuthorized = false; //未授权 this.sendUserInfo(core.Manager.selfInfo); //无需更新信息,则直接发送用户信息到开放域 } } httpModifyUserInfoCallback(data) { // log(data); if (data && data.code == 200) { core.Manager.selfInfo.update(data.result); core.Manager.selfInfo.isAuthorized = true; //已授权 this.sendUserInfo(core.Manager.selfInfo); //发送用户信息到开放域 } else log(data); } /** * 查看是否已授权 */ checkSetting() { tt.getSetting({ success: (res => { log("tt.getSetting:", res); if (!res.authSetting['scope.userInfo']) { this.authorizeUserInfo(); //未授权,显示授权按钮 } else { this.getUserInfo(); //已授权,取用户信息 } if (!res.authSetting['scope.screenRecord']) { this.authorizeScreenRecord(); //未授权录屏 } else { core.Manager.selfInfo.isAuthorizedScreenRecord = true; //已授权录屏 } }).bind(this) }); } //发出用户信息授权请求 authorizeUserInfo() { tt.authorize({ scope: "scope.userInfo", success: (res => { this.getUserInfo(); //已授权用户信息 log("tt.authorize UserInfo succ", res); }).bind(this), fail: (res => { this.setUserInfo(null); log("tt.authorize UserInfo fail", res); }).bind(this), complete: (res => { log("tt.authorize UserInfo complete", res); }).bind(this) }); } //发出录屏授权请求 authorizeScreenRecord() { tt.authorize({ success: (res => { core.Manager.selfInfo.isAuthorizedScreenRecord = true; //已授权录屏 log("tt.authorize screenRecord succ", res); }).bind(this), fail: (res => { log("tt.authorize screenRecord fail", res); }).bind(this), complete: (res => { log("tt.authorize screenRecord complete", res); }).bind(this) }); } /** * 获取用户信息 */ getUserInfo() { // 已授权 - 直接获取 tt.getUserInfo({ withCredentials: true, success: (res => { log("getUserInfo:", res); this.setUserInfo(res.userInfo); //设置用户信息 }).bind(this), fail: (res => { log("getUserInfo fail:", res); this.setUserInfo(null); }).bind(this), }); } /** 透传资源到子域 */ sendRes() { } /** 获取启动场景(php用到) */ get startScene() { let options = tt.getLaunchOptionsSync(); return options && options.scene ? options.scene : ""; } /** * 设置默认分享(微信小游戏小程序不再支持分享回调https://developers.weixin.qq.com/community/develop/doc/0000447a5b431807af57249a551408) */ setDefaultShare() { // tt.showShareMenu({ // withShareTicket: true, // menus: ['shareAppMessage', 'shareTimeline'], // success: (res?: any) => { log("showShareMenu success", res) }, // fail: (res?: any) => { log("showShareMenu fail", res) }, // complete: (res?: any) => { log("showShareMenu complete", res) } // }) tt.onShareAppMessage((() => { if (this._sharing) return; let channel = ""; let data = this.getShareData(); core.ObjectUtil.addKeys(data, { channel: channel, success: this.shareSuccess.bind(this), fail: this.shareFail.bind(this), complete: this.shareComplete.bind(this) }); return data; }).bind(this)); } /** 关注 */ attention() { tt.openAwemeUserProfile(); //跳转个人抖音号主页,用户可以选择关注/取消关注抖音号 } /** 收藏 */ addToFavorite() { tt.showFavoriteGuide(); // tt.showFavoriteGuide({ // type: "bar", //小游戏中只能使用 tip 否 引导组件类型,可以是 bar(底部弹窗)、tip(顶部气泡) // content: "一键添加到我的小程序", //弹窗文案,最多显示 12 个字符 // position: "bottom", //小游戏中该字段无意义 否 弹窗类型为 bar 时的位置参数,可以是 bottom(贴近底部)、overtab(悬于页面 tab 区域上方) // success(res) { log("引导组件展示成功"); }, // fail(res) { log("引导组件展示失败"); }, // complete(res){} // }); // tt.onFavoriteStateChange(callback); } /** 获取视频列表页面(字节用) */ getVideoList() { tt.request({ url: "https://gate.snssdk.com/developer/api/get_top_video_ids_by_like", method: "POST", data: { app_id: this.appID, number_of_top: 100, tag: "rankTag1", access_token: this.accessToken, }, success: (res) => { log("视频排行榜信息", res); if (res.data.err_no == -15003) this.getAccessToken(Laya.Handler.create(this, this.getVideoList)); else { core.Manager.eDispatcher.event(core.Event.VIDEO_LIST, res.data.err_no == 0 ? res.data : []); } // 从res中获取所需视频信息(videoId数组索引与返回数据数组索引一一对应) }, }); } /** 跳转到分享的视频播放页面 */ navigateToVideoView(videoId) { tt.navigateToVideoView({ videoId: videoId, success: (res) => { log("done"); }, fail: (err) => { if (err.errCode === 1006) { tt.showToast({ title: "something wrong with your network", }); } }, }); } /** * 主动分享 */ share(title) { if (this._sharing) return; let channel = ""; let data = this.getShareData(title); core.ObjectUtil.addKeys(data, { channel: channel, success: this.shareSuccess.bind(this, channel), fail: this.shareFail.bind(this, channel), complete: this.shareComplete.bind(this, channel) }); tt.shareAppMessage(data); } /** 分享的数据(需要重写) */ getShareData(title) { return { success: this.shareSuccess.bind(this), fail: this.shareFail.bind(this), complete: this.shareComplete.bind(this) }; } /** 视频分享 */ shareVideo(videoPath) { if (this._sharing) return; let channel = "video"; let data = this.getVideoShareData(videoPath); core.ObjectUtil.addKeys(data, { channel: channel, success: this.shareSuccess.bind(this, channel), fail: this.shareFail.bind(this, channel), complete: this.shareComplete.bind(this, channel) }); tt.shareAppMessage(data); //php统计用 core.Manager.wtsdk.sendRecord(); } /** 视频分享的数据(需要重写) */ getVideoShareData(videoPath) { let channel = "video"; return { channel: channel, success: this.shareSuccess.bind(this, channel), fail: this.shareFail.bind(this, channel), complete: this.shareComplete.bind(this, channel) }; } //分享成功回调 shareSuccess(channel, data) { //php统计用 if (channel == "video") core.Manager.wtsdk.sendRecordShare(); else core.Manager.wtsdk.sendShare(); data.channel = channel; core.Manager.eDispatcher.event(core.Event.SHARE_SUCCESS, data); log("分享成功", data); } //分享失败回调 shareFail(channel, data) { data.channel = channel; core.Manager.eDispatcher.event(core.Event.SHARE_FAIL, data); log("分享失败", data); } //分享完成回调 shareComplete(channel, data) { data.channel = channel; this._sharing = false; core.Manager.eDispatcher.event(core.Event.SHARE_COMPLETE, data); log("分享完成", data); } //↑↑分享 ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ /** 获取本地缓存数据 */ getStorageSync(key) { return tt.getStorageSync(key); } /** 保存数据本地缓存 */ setStorageSync(key, data) { return tt.setStorageSync(key, data); } /** * 向开放数据域发送消息 * @param message {} 要发送的消息,message 中及嵌套对象中 key 的 value 只能是 primitive value。即 number、string、boolean、null、undefined。 */ postMessage(message) { this.openDataContext.postMessage(message); } /** 传递UserInfo */ sendUserInfo(userInfo) { core.Manager.isLogined = true; let msg = { "action": core.DomainAction.UserInfo, "data": userInfo }; this.postMessage(msg); } /** clearCanvas */ clearCanvas() { let msg = { "action": core.DomainAction.ClearCanvas }; this.postMessage(msg); } // private _rank:DYRankView; /** 显示排行榜 */ showRank(rankType) { let msg; if (rankType == 0) msg = { "action": core.DomainAction.RankFriend }; else msg = { "action": core.DomainAction.RankWorld }; this.postMessage(msg); } /** 关闭排行榜 */ hideRank() { } /** 排行榜切页(-1上一页 0下一页 >0跳转到具体页数) */ rankChangePage(page) { this.postMessage({ "action": core.DomainAction.Paging, "page": page }); } /** 保存最高分 */ saveScore(score) { this.postMessage({ "action": core.DomainAction.SaveScore, "score": score }); core.Manager.wtsdk.saveScore({ score: score }); } //↓↓ 广告类 ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ /** 显示或隐藏Banner广告 */ adBanner(isShow) { try { if (isShow) this.ad.showBanner(); else this.ad.hideBanner(); } catch (e) { log("adBanner error:", e); } } /** 显示激励式广告 */ adRewardedVideo() { try { this.ad.showRewardedVideoAd(); } catch (e) { log("adBanner error:", e); } } /** 显示插屏广告 */ adInterstitial() { try { this.ad.showInterstitialAd(); } catch (e) { log("adBanner error:", e); } } /** 显示或隐藏格子广告 */ adGrid(isShow) { // if(isShow) this.ad.showGridAd(); // else this.ad.hideGridAd(); } //↑↑ 广告类 ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ //↓↓ 录屏 ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ initRecorder() { this.recorder = tt.getGameRecorderManager(); this.recorder.onStart(res => { log("录屏开始", res); core.Manager.eDispatcher.event(core.Event.RECORD_START, res); }); this.recorder.onStop(res => { log("录屏停止", res); core.Manager.eDispatcher.event(core.Event.RECORD_STOP, res.videoPath); }); this.recorder.onError(err => { log("录屏错误", err); core.Manager.eDispatcher.event(core.Event.RECORD_ERROR, err); }); // GameRecorderManager.onResume(function callback)// 监听录屏继续事件 // GameRecorderManager.onPause(function callback)// 监听录屏暂停事件 // GameRecorderManager.onInterruptionBegin(function callback)// 监听录屏中断开始 // GameRecorderManager.onInterruptionEnd(function callback)// 监听录屏中断结束 } /** 开始录屏 */ startRecord() { try { let maskInfo = this.recorder.getMark(); let x = (Laya.stage.width - maskInfo.markWidth) / 2; let y = (Laya.stage.height - maskInfo.markHeight) / 2; //添加水印并且居中处理 this.recorder.start({ duration: 30, isMarkOpen: true, locLeft: x, locTop: y, }); } catch (e) { log("startRecord error:", e); } } /** 停止录屏 */ stopRecord() { try { this.recorder.stop(); } catch (e) { log("stopRecord error:", e); } } /** * 更多游戏图标 * @parame isShow 是否显示 */ moreGameBtn(isShow) { core.Manager.eDispatcher.offAllCaller(this); // const systemInfo = tt.getSystemInfoSync(); // iOS 不支持,建议先检测再使用 if (this.systemInfo.device !== "ios") { if (isShow) { if (!core.Manager.gameList || core.Manager.gameList.length == 0) { core.Manager.eDispatcher.on(core.Event.GET_MOREGAME_COMPLETE, this, () => { this.moreGameBtn(true); }); return null; } if (!this._moreGameBtn) this._moreGameBtn = new ttGame.MoreGameIcon(this.moreGameParams); } else if (this._moreGameBtn) { this._moreGameBtn.destroy(); this._moreGameBtn = null; } return this._moreGameBtn; } } /** 更多游戏按钮参数 */ get moreGameParams() { return { x: 0, y: 0, w: 60, h: 60, appLaunchOptions: [] }; } /** 显示更多游戏 */ showMoreGame() { // const systemInfo = tt.getSystemInfoSync(); // iOS 不支持,建议先检测再使用 if (this.systemInfo.device !== "ios") { // 打开小游戏盒子 tt.showMoreGamesModal({ appLaunchOptions: [] }); } } } ttGame.BasePlatform = BasePlatform; })(ttGame || (ttGame = {})); /// /// var ttGame; /// /// (function (ttGame) { class Platform extends ttGame.BasePlatform { constructor() { super(); } /** 普通分享的数据 */ getShareData(title) { if (!title) title = "跟我一起去感受风的速度吧!"; let data = { title: title, }; core.ObjectUtil.addKeys(data, super.getShareData(title)); return data; } /** 视频分享的数据 */ getVideoShareData(videoPath) { let data = { query: "", // templateId: "81d7bjb2go51hggi19", // 替换成通过审核的分享ID title: "酷跑男女", desc: "跟我一起去感受风的速度吧!", extra: { videoPath: videoPath, videoTopics: ["#酷跑男女 #跟我一起去感受风的速度吧!"], withVideoId: true, videoTag: "rankTag1", } }; core.ObjectUtil.addKeys(data, super.getVideoShareData(videoPath)); return data; } /** 透传资源到子域 */ sendRes() { //加载完成后,使用接口将图集透传到子域 ttGame.SendRes.sendAtlasList(["res/atlas/res/imgs/rank.atlas", "res/atlas/res/imgs/revive.atlas",]); // SendRes.sendSinglePicList(["unpack/rankBg.png"]); // SendRes.sendJsonList(["test/1.json"]); } /** 更多游戏按钮参数 */ get moreGameParams() { return { x: Laya.stage.width / 2, y: 258, w: 80, h: 80, appLaunchOptions: [] }; } /** 显示即将超越好友 */ showSurpass(score) { this.postMessage({ "action": core.DomainActionEx.Surpass, "score": score, }); } /**显示称号 */ showTitle(score) { this.postMessage({ "action": core.DomainActionEx.Title, "score": score }); } // /**显示荣誉 */ // public showRongYu() // { // this.postMessage({ // "action":core.DomainActionEx.showRY // }) // } /** 发送登录检查保存分数 */ sendLoginCheck() { log('发送登录检查保存分数'); this.postMessage({ 'action': core.DomainActionEx.LoginCheck }); } } ttGame.Platform = Platform; })(ttGame || (ttGame = {})); window.ttGame = ttGame; //首次加载时,初始化 window.platform = new ttGame.Platform(); var ttGame; (function (ttGame) { class SendRes { //将加载完成的图集,使用接口透传到子域 static sendAtlasList(urls) { if (!urls) return; while (urls.length > 0) { let url = urls.pop(); if (Laya.loader.getRes(url)) Laya.TTMiniAdapter.sendAtlasToOpenDataContext(url); else Laya.loader.load(url, Laya.Handler.create(Laya.TTMiniAdapter, Laya.TTMiniAdapter.sendAtlasToOpenDataContext, [url])); } } //将加载完成的单个图片文件,使用接口透传到子域 static sendSinglePicList(urls) { if (!urls) return; while (urls.length > 0) { let url = urls.pop(); if (Laya.loader.getRes(url)) Laya.TTMiniAdapter.sendSinglePicToOpenDataContext(url); else Laya.loader.load(url, Laya.Handler.create(Laya.TTMiniAdapter, Laya.TTMiniAdapter.sendSinglePicToOpenDataContext, [url])); } } //将加载完成的json文件,使用接口透传到子域 static sendJsonList(urls) { if (!urls) return; while (urls.length > 0) { let url = urls.pop(); if (Laya.loader.getRes(url)) Laya.TTMiniAdapter.sendJsonDataToDataContext(url); else Laya.loader.load(url, Laya.Handler.create(Laya.TTMiniAdapter, Laya.TTMiniAdapter.sendJsonDataToDataContext, [url])); } } } ttGame.SendRes = SendRes; })(ttGame || (ttGame = {})); var ttGame; (function (ttGame) { class SystemInfo { constructor() { this.info = tt.getSystemInfoSync(); } /** 设备:android,ios */ get device() { return this.info.platform; } /** app名字 */ get appName() { return this.info.appName; } } ttGame.SystemInfo = SystemInfo; })(ttGame || (ttGame = {})); var ttGame; (function (ttGame) { class MoreGameIcon extends Laya.Box { constructor(params) { super(); this.ICON_SIZE = 120; //游戏图标的始尺寸 this.zOrder = core.ZOrder.POPUP; this._appLaunchOptions = params.appLaunchOptions; this.pos(params.x, params.y); // this.size(params.w, params.h); this.scale(params.w / this.ICON_SIZE, params.h / this.ICON_SIZE); Laya.stage.addChild(this); } onAwake() { this._index = 0; this._icon = new Laya.Image(); this._icon.anchorX = 0.5; this._icon.anchorY = 0.5; this.addChild(this._icon); this._icon.mouseEnabled = true; this._label = new Laya.Image(this.getRes("gdhw")); // this._label.anchorX = 0.5; this._label.anchorY = 0.5; this._label.y = 86; this.addChild(this._label); this._label.mouseEnabled = true; this._iconUrls = []; let gameList = core.Manager.gameList; for (let i = gameList.length - 1; i >= 0; i--) { if (gameList[i].rec_degree == 1) this._iconUrls.push(gameList[i].icon); //取热门游戏 } if (this._iconUrls.length == 0) this._iconUrls.push(gameList[0].icon); //无热门游戏,推第一个进去,保证起码有一个游戏 this._tweentimeLite = new core.TweenTimeLine(0); this._tweentimeLite.addToTween(this, { scaleX: this.scaleX * 0.8, scaleY: this.scaleX * 0.8 }, 600, Laya.Ease.backOut); this._tweentimeLite.addToTween(this, { scaleX: this.scaleX, scaleY: this.scaleX }, 600, Laya.Ease.backIn); } getRes(name) { return core.Manager.commonResPath + "gameIcon/" + name + ".png"; //指定取资源图片 } onEnable() { super.onEnable(); this.timerLoop(5000, this, this.changeSkin); this.changeSkin(); this._tweentimeLite.start(); this.on(Laya.Event.CLICK, this, this.onClick); this._icon.on(Laya.Event.LOADED, this, this.iconLoaded); } changeSkin() { if (this._index >= this._iconUrls.length) this._index = 0; this._icon.skin = this._iconUrls[this._index]; this._index++; } iconLoaded() { this._icon.size(this.ICON_SIZE, this.ICON_SIZE); //每个图片大小可能不一样,加载完成重新设置一下 } onClick(e) { // // 监听弹窗关闭 // tt.onMoreGamesModalClose(function (res) { // log("modal closed", res); // }); // // 监听小游戏盒子跳转 // tt.onNavigateToMiniGameBox(function (res) { // log(res.errCode); // log(res.errMsg); // }); // const systemInfo = tt.getSystemInfoSync(); // // iOS 不支持,建议先检测再使用 // if (systemInfo.platform !== "ios") { // // 打开小游戏盒子 // tt.showMoreGamesModal({ // appLaunchOptions: this._appLaunchOptions, // // success(res) { log("success", res.errMsg); }, // // fail(res) { log("fail", res.errMsg); }, // }); // } if (window.platform) { platform.showMoreGame(); } } onDisable() { super.onDisable(); this.clearTimer(this, this.changeSkin); this._tweentimeLite.pause(); this.off(Laya.Event.CLICK, this, this.onClick); this._icon.off(Laya.Event.LOADED, this, this.iconLoaded); } destroy() { super.destroy(); this._tweentimeLite.destroy(); this._tweentimeLite = null; this._appLaunchOptions = null; this._iconUrls = null; } } ttGame.MoreGameIcon = MoreGameIcon; })(ttGame || (ttGame = {})); //# sourceMappingURL=ttGame.js.map