123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- // 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();
- }
- }
- }
- }
|