好快啊,一天的工作又结束了,总结一下遇到的问题
1.本地存储数据
cc.sys.localStorage.getItem(key,value);
cc.sys.localStorage.setItem(key,value);
2.读取文本文件
cc.loader.loadTxt(cc.url.raw('scripts/test.proto'), function(err, txt) {
// 读取成功,err为null,读取失败才会有错误信息:err:{‘status':0,’errorMessage’:’….'}
// txt为文本内容
});
3.打印LOG信息:
需要先初始化Debug配置
cc._initDebugSetting(cc.DebugMode.INFO);
cc.log('print log info ...');
4.场景切换动画:
【A场景切换到B场景】
A场景:
this.node.runAction(cc.fadeOut(1.0));
cc.director.loadScene('B');
--------------------------------------------------
B场景
Canvas下或background节点下
onload:function(){
this.node.runAction(cc.fadeIn(1.0));
.......
}
或者将runAction那行换成this.getComponent(cc.Animation).play('customAnim');
5.动态更换精灵的纹理:
var imgUrl = cc.url.raw('imgs/xx.png');
var texture = cc.textureCache.addImage(imgUrl);
this.getComponent(cc.Sprite).spriteFrame.setTexture(texture);
6.cc.Lable组件隐藏方法:
label.enabled = false // 隐藏单个组件
(写在 onLoad: function () 里是没有效果,可以在编辑器中把勾选去掉)
或者
label.node.active = false // 整个 node 的所有组件一起禁用
7.require脚本文件,脚本的load函数要放在外头调用,不要在js加载的时候就去调用,因为这个时候引擎的一些参数还未初始化呢。
8.节点组件的获取和查找用法:
a.获取canvas节点下面的子节点score-bg
-> 子节点没有层级: this.node.getChildByName('score-bg');
-> 子节点在多个层级下面: cc.find("background/score-bg", this.node);
b.获取当前节点scoreNode下的Label组件:
scoreNode.getComponent(cc.Label);
9.Node上的Action动作系统与Widget兼容问题:
node.runAction(..);
注意事项:如果node节点上面,包含Widget组件,且设定了top,bottom,left,right中的数值。
例:right=50px,效果就是node节点始终距离屏幕右侧边缘50px;
这时你给node加上cc.moveBy(2,-100,-100)动作,此时node只会在y方向运动,x方向不会运动。
此时需要先解除Widget组件,才能去修改node的position属性。
// 获取节点的组件,然后移除
var widget = pauseNode.getComponent(cc.Widget);
pauseNode.removeComponent(widget);
10.动态添加节点:
// 动态添加节点
var dynamicNode = new cc.Node('sprite 1');
// 添加Sprite组件
var sp = dynamicNode.addComponent(cc.Sprite);
// 读取图片纹理
var imgUrl = cc.url.raw('textures/tangguo/floor.png');
var texture = cc.textureCache.addImage(imgUrl);
// 创建渲染图片资源
sp.spriteFrame = new cc.SpriteFrame();
// 绑定纹理
sp.spriteFrame.setTexture(texture);
// 设置节点坐标
dynamicNode.setPosition(200,0);
// 将节点加入父节点
this.node.addChild(dynamicNode);
11.动画组件:
var anim = this.player.getComponent(cc.Animation);
anim.play();
如果动画组件在修改position属性了,代码中就无法修改了。
12.Android工程导入Eclipse报错问题:
去截图中的位置检查引用的lib路径是否正确,如果不正确,你可以把下面的lib工程导入到Eclipse里面,
/Users/haocao/CocosCreatorWorkPlace/HelloWorld/build/HelloWorld/jsb/frameworks/cocos2d-x/cocos/platform/android/java
然后修改HelloWorld的Library依赖。
![](http://static.oschina.net/uploads/space/2016/0301/163007_xLio_1866808.png)