cocoscreate使用资料整理与总结

一.如果遇到如图的问题,说明之前用旧版本构建了native项目,因此如果换了新版本,需要把旧的native删除,重新构建即可。

二.构建windows版本,会出现windows sdk版本问题,如果正好与ccc一致那么没什么问题,如果不一致,那么先用ccc构建出项目,然后用vs打开,重定向后,再用ccc编译,即可。

三.如果不以h5版本为主,以客户端平台为主的话,还是回归传统文件读取,这样省时省力,开发快捷。

因为native支持jsb,因此直接使用jsb相关功能

1: 掌握jsb.fileUtils的基本使用;

FileUtils

API   CCFileUtils.h

1:jsb是javascript bind的代表,整个C/C++ 导出的绑定都在这个jsb里面,jsb 支持native,不支持h5(浏览器上无法运行jsb is not defined );

2: FileUtils是本地文件读写的一个工具类,全局只有一个实例;

3: jsb.fileUtils来获取文件读写工具类的实例;

4: jsb.fileUtils.isDirectoryExist(path): 判断路径是否存在;

5: jsb.fileUtils.createDirectory(path); 创建一个路径;

6: jsb.fileUtils.getDataFromFile(path)获取二进制数据; // Uint8Array文本

7: jsb.fileUtils.writeDataToFile(data,path); 写二进制数据; // Uint8Array 对象

8: jsb.fileUtils.writeStringToFile(data,path); 写文本文件; // data String对象

9: jsb.fileUtils.getStringFromFile(path); 获取文本数据; // data String

9: jsb.fileUtils.removeFile(path); 删除掉一个文件;

10: jsb.fileUtils.getWritablePath(); 获取文件的可写目录,是一个内部存储的目录,我们的手机OS会为每个APP分配一个可读写的路径,但是这个App如果卸载以后,这个数据也会被删除;

  如果你要想保存到本地有又是持久的,你可以写入外部存储,外部存储的这个路径也是适用于fileUtils工具类的;

cc.Class({
    extends: cc.Component,

    properties: {
        // foo: {
        //    default: null,      // The default value will be used only when the component attaching
        //                           to a node for the first time
        //    url: cc.Texture2D,  // optional, default is typeof default
        //    serializable: true, // optional, default is true
        //    visible: true,      // optional, default is true
        //    displayName: 'Foo', // optional
        //    readonly: false,    // optional, default is false
        // },
        // ...
    },

    // use this for initialization
    onLoad: function () {
        // jsb.fileUtils获取全局的工具类的实例, cc.director;
        // 如果是在电脑的模拟器上,就会是安装路径下模拟器的位置;
        // 如果是手机上,那么就是手机OS为这个APP分配的可以读写的路径; 
        // jsb --> javascript binding --> jsb是不支持h5的
        var writeable_path = jsb.fileUtils.getWritablePath();
        console.log(writeable_path);


        // 要在可写的路径先创建一个文件夹
        var new_dir = writeable_path + "new_dir";
        // 路径也可以是 外部存储的路径,只要你有可写外部存储的权限;
        // getWritablePath这个路径下,会随着我们的程序卸载而删除,外部存储除非你自己删除,否者的话,卸载APP数据还在;
        if(!jsb.fileUtils.isDirectoryExist(new_dir)) {
            jsb.fileUtils.createDirectory(new_dir);
        }
        else {
            console.log("dir is exist!!!");
        }
        
        // 读写文件我们分两种,文本文件, 二进制文件;
        // (1)文本文件的读,返回的是一个string对象
        var str_data = jsb.fileUtils.getStringFromFile(new_dir + "/test_str_read.txt"); 
        console.log(str_data);
        str_data = "hello test_write !!!!!"
        jsb.fileUtils.writeStringToFile(str_data, new_dir + "/test_str_write.txt");
        // (2)二进制文件的读写, Uint8Array --> js对象
        var bin_array = jsb.fileUtils.getDataFromFile(new_dir + "/test_bin_read.png");
        console.log(bin_array[0], bin_array[1]); // 使用这个就能访问二进制的每一个字节数据;
        jsb.fileUtils.writeDataToFile(bin_array, new_dir + "/test_bin_write.png");
        // end 

        // 删除文件和文件夹
        // jsb.fileUtils.removeFile(new_dir + "/test_bin_write.png"); 
        // jsb.fileUtils.removeDirectory(new_dir);
    },

    // called every frame, uncomment this function to activate update callback
    // update: function (dt) {

    // },
});

四,ccc的motionstreak问题,

当一个motionstreak放在节点A上,节点A又放在节点B上,A往左移动,B往下移动,motionstreak的效果与预期效果不一致。

解决方案:https://forum.cocos.com/t/motionstreak/69923/8

文件路径:xxx盘:\CocosCreator\resources\engine\cocos2d\core\renderer\webgl\assemblers,motion-streak.js

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值