当前位置: 首页 > news >正文

CocosCreator引擎修改与定制

1.CCGame.js 修改部分数据脚本的加载时机,避免首屏卡顿

// Load game scripts
var jsList = config[CONFIG_KEY.jsList];
if (jsList && jsList.length > 0) {
    cc.loader.load(jsList, function (err) {
        if (err) throw new Error(JSON.stringify(err));
        self._prepared = true;
        if (cb) cb();
        self.emit(self.EVENT_GAME_INITED);
    });
}
else {
    if (cb) cb();
    self.emit(self.EVENT_GAME_INITED);
}

 

2.CCLoader.js 加载代码回退处理

1.6.1 -> 1.5.1避免加载并发时回调次数不足

回退后该代码在1.6.1中运行稳定,最新版本需要验证

回退仅处理了items.destroy()这一条语句的位置

var queue = LoadingItems.create(this, progressCallback, function (errors, items) {
    callInNextTick(function () {
        if (completeCallback) {
            if (singleRes) {
                let id = res.url;
                completeCallback.call(self, items.getError(id), items.getContent(id));
            }
            else {
                completeCallback.call(self, errors, items);
            }
            completeCallback = null;
            //++
            items.destroy();
        }

        if (CC_EDITOR) {
            for (let id in self._cache) {
                if (self._cache[id].complete) {
                    self.removeItem(id);
                }
            }
        }
        //-- items.destroy();
    });
});

 

3.CCView.js 判断分辨率,切换适配模式(ipx/全面屏)

setResolutionPolicy: function (resolutionPolicy) {
    //增加对于ipx全面屏的特殊处理(横版游戏)
    if(cc.view._frameSize.width / cc.view._frameSize.height > 1.778 /*1136/640*/){
        resolutionPolicy = cc.ResolutionPolicy.SHOW_ALL //cc.ResolutionPolicy.FIXED_HEIGHT
    }
    //end
    var _t = this;
    if (resolutionPolicy instanceof cc.ResolutionPolicy) {
        _t._resolutionPolicy = resolutionPolicy;
    }
    // Ensure compatibility with JSB
    else {
        var _locPolicy = cc.ResolutionPolicy;
        if(resolutionPolicy === _locPolicy.EXACT_FIT)
            _t._resolutionPolicy = _t._rpExactFit;
        if(resolutionPolicy === _locPolicy.SHOW_ALL)
            _t._resolutionPolicy = _t._rpShowAll;
        if(resolutionPolicy === _locPolicy.NO_BORDER)
            _t._resolutionPolicy = _t._rpNoBorder;
        if(resolutionPolicy === _locPolicy.FIXED_HEIGHT)
            _t._resolutionPolicy = _t._rpFixedHeight;
        if(resolutionPolicy === _locPolicy.FIXED_WIDTH)
            _t._resolutionPolicy = _t._rpFixedWidth;
    }
},

 

4.CCInputManager.js 部分iframe情况下点击偏移处理

注释掉全部两处element.focus(验证无误)

 

5.脚本跨域获取error堆栈信息

downloader.js

function downloadScript

增加script element属性

s.crossOrigin = true

转载于:https://www.cnblogs.com/billyrun/p/8417988.html

相关文章:

  • 新年的展望,2018 hello world~
  • Collection---CopyOnWrite(应用于大量度 而少量写的场景)
  • 模块使用
  • 16、sockect
  • USACO 2006 NOV Corn Fields
  • 存储快照实现原理
  • 软件需求模式阅读笔记1
  • centos6之前版本的启动流程
  • django 之 用户忘记密码的解决办法
  • 青蛙跳杯子
  • 详解mysql 获取当前日期及格式化
  • 事务、视图、索引、备份、还原
  • 软件工程——个人记录(g)
  • C语言实现的简单银行存取款程序 请输入如下数字命令
  • PyMongo官方文档翻译——VNPY
  • Android 架构优化~MVP 架构改造
  • Brief introduction of how to 'Call, Apply and Bind'
  • DataBase in Android
  • gf框架之分页模块(五) - 自定义分页
  • IDEA 插件开发入门教程
  • Java比较器对数组,集合排序
  • MySQL Access denied for user 'root'@'localhost' 解决方法
  • Quartz实现数据同步 | 从0开始构建SpringCloud微服务(3)
  • 动态规划入门(以爬楼梯为例)
  • 力扣(LeetCode)56
  • 罗辑思维在全链路压测方面的实践和工作笔记
  • 如何借助 NoSQL 提高 JPA 应用性能
  • 如何选择开源的机器学习框架?
  • 使用 Node.js 的 nodemailer 模块发送邮件(支持 QQ、163 等、支持附件)
  • 数据库写操作弃用“SELECT ... FOR UPDATE”解决方案
  • 项目实战-Api的解决方案
  • 译米田引理
  • 做一名精致的JavaScripter 01:JavaScript简介
  • Semaphore
  • 翻译 | The Principles of OOD 面向对象设计原则
  • # 深度解析 Socket 与 WebSocket:原理、区别与应用
  • #Java第九次作业--输入输出流和文件操作
  • #我与Java虚拟机的故事#连载08:书读百遍其义自见
  • (NSDate) 时间 (time )比较
  • (pojstep1.1.1)poj 1298(直叙式模拟)
  • (三维重建学习)已有位姿放入colmap和3D Gaussian Splatting训练
  • (十一)图像的罗伯特梯度锐化
  • (转)利用PHP的debug_backtrace函数,实现PHP文件权限管理、动态加载 【反射】...
  • *ST京蓝入股力合节能 着力绿色智慧城市服务
  • .bat批处理(十):从路径字符串中截取盘符、文件名、后缀名等信息
  • .gitattributes 文件
  • .NET Core 通过 Ef Core 操作 Mysql
  • .Net MVC + EF搭建学生管理系统
  • /etc/sudoers (root权限管理)
  • @DataRedisTest测试redis从未如此丝滑
  • @property @synthesize @dynamic 及相关属性作用探究
  • [ IOS ] iOS-控制器View的创建和生命周期
  • [ linux ] linux 命令英文全称及解释
  • [2024最新教程]地表最强AGI:Claude 3注册账号/登录账号/访问方法,小白教程包教包会
  • [Android]一个简单使用Handler做Timer的例子