// Learn TypeScript: // - https://docs.cocos.com/creator/manual/en/scripting/typescript.html // Learn Attribute: // - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html // Learn life-cycle callbacks: // - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html import SDK, { NodeAction } from "../SDK"; import Utils from "../tools/Utils"; const {ccclass, property} = cc._decorator; @ccclass export default class Video extends cc.Component { private _videoAd = null; private _config; private _isVideo; private _loadVideo; private _callBacks; private _fail; public init(config){ this._config = config; this._isVideo = config.videoAdEnable > 0; Utils.instance.log('创建Video广告') this.initRewardVideo(); } private initRewardVideo(){ let self = this; let rewardvideoCode = this._config.videoAdCode; Utils.instance.log("-------激励视频创建----- "+rewardvideoCode); this._videoAd = qg.createRewardedVideoAd({ posId:rewardvideoCode }) this._videoAd.load(); this._videoAd.onError(err => { Utils.instance.log("激励视频广告加载失败"+ JSON.stringify(err)); self.scheduleOnce(()=>{ self.initRewardVideo(); },4); self._loadVideo = false; }); this._videoAd.onLoad(function() { Utils.instance.log('激励视频加载成功') self._loadVideo = true; }) this._videoAd.onClose(function(res) { self._loadVideo = false; if (res && res.isEnded) { Utils.instance.log('激励视频广告完成,发放奖励') SDK.Instance.reportLog(NodeAction.VIDEO_CLOSE,"激励视频广告完成,发放奖励"); if(self._callBacks){ self._callBacks(); } } else { Utils.instance.log('激励视频广告取消关闭,不发放奖励') SDK.Instance.reportLog(NodeAction.VIDEO_CLOSE,"激励视频广告取消关闭,不发放奖励"); if(self._fail){ self._fail(); } } self._callBacks = null; self._fail = null; self.loadRewardVideo(); }) } private loadRewardVideo(){ if( this._videoAd){ this._videoAd.load(); }else{ this.initRewardVideo(); } } public showRewardVideo(callBacks: Function,fail:Function,noAd:Function){ this._callBacks = callBacks; this._fail = fail; if(this._isVideo){ if(this._videoAd){ if(this._loadVideo){ this._videoAd.show(); SDK.Instance.reportLog(NodeAction.VIDEO_SHOW,"激励视频广告展示"); }else{ if(noAd){ noAd(); noAd = null; } this.loadRewardVideo(); } }else{ if(noAd){ noAd(); noAd = null; } this.initRewardVideo(); } } } }