Cocos Creator 常用API与方法

场景加载

场景跳转

cc.director.loadScene('场景名称');

预加载场景

cc.director.preloadScene('场景名称');

获取当前场景

cc.director.getScene();

获取节点

通过访问路径来获取节点

var node = cc.find("Canvas/bg");

通过名字获取子节点

var a = this.node.getChildByName('name');

获取节点上的组件值

node.getComponent(cc.Label).string = 'abc';

通过访问路径来获取节点,及获取该节点的指定组件

var a = cc.find("Canvas/bg").getComponent(cc.Sprite);

通过节点名获取子节点,获取该节点指定组件

this.node.getChildByName('节点名称').getComponent(cc.Label);

获取当前脚本所在的节点

var a = this.node;

获取父节点

var a = this.node.parent;

通过标签获取子节点

var a = this.node.getChildByTag(1001);

通过指定节点下的路径获取节点

var a = cc.find("bg/score",this.node);

获取所有子节点

var a = this.node.children;

获取子节点数量

var a = this.node.childrenCount;

获取场景主节点

var a = cc.director.getScene();

克隆节点

var a = cc.instantiate(node);

绑定父节点

this.node.parent = cc.find('Canvas');

添加子节点,可设置层级和标签

this.node.addChild(nodeName,zIndex,tag);

通过名字移除子节点

this.node.removeChild(nodeName);

通过标签移除子节点

this.node.removeChildByTag (nodeTag);

销毁节点

this.node.destroy();

判定节点是否可用

this.node.isValid;

移除节点中指定的子节点

this.node.removeChild(newNode);

通过标签移除节点中指定的子节点

this.node.removeChildByTag(1001);

移除所有子节点

this.node.removeAllChildren();

销毁所有子节点

this.node.destroyAllChildren();

停止所有正在播放的动作和计时器

this.node.cleanup();

递归查找自身及所有子节点中指定类型的组件

var sprites = this.node.getComponentsInChildren(cc.Label);

获取节点位置,设置节点

获取节点的 X 轴或 Y 轴坐标

var a = node.getPositionX();或 getPositionY()

获取节点的 X 轴或 Y 轴缩放比例

var a = node.getScaleX(); 或 getScaleY()

设置节点 x 轴坐标

node.x = 100;

设置节点 y 轴坐标

node.y = 100;

设置节点坐标

node.setPosition(x,y);

设置节点旋转角度

node.rotation = 90;

设置节点 x 轴缩放倍数

node.scaleX = 2;

设置节点 y 轴缩放倍数

node.scaleY = 2;

设置节点整体缩放倍数

node.setScale(2);

设置节点宽度大小

node.width = 100;

设置节点高度大小

node.height = 100;

设置节点宽高尺寸大小

node.setContentSize(100, 100);

设置节点 x 轴锚点坐标

node.anchorX = 1;

设置节点 y 轴锚点坐标

node.anchorY = 0;

设置节点锚点坐标

node.setAnchorPoint(1, 0);

设置节点透明度大小(0-255)

node.opacity = 128;

设置节点透明度(0~255)

node.setOpacity(20);

设置节点颜色(R,G,B,透明度)

node.color = new cc.color(100,100,100,255);

判定节点是否存在

if (cc.isValid(this.label.node) )

销毁节点

node.destroy();

获取所有子节点

this.cannons = [];
this.cannons = node.getChildren();

获取子节点数量

this.cannons = node.getChildrenCount();

关闭节点(隐藏节点)

node.active = false;

常驻节点(全局变量)

cc.game.addPersistRootNode(myNode);

取消常驻节点

cc.game.removePersistRootNode(myNode);

动作操作

立即显示

cc.show()

立即隐藏

cc.hide ()

显隐切换

cc.toggleVisibility()

渐显效果

cc.fadeIn(1)

渐隐效果

cc.fadeOut(1)

等待 1 秒

cc.delayTime(1)

移动到当前节点(时间(s),X 轴坐标,Y 轴坐标)

node.runAction(cc.moveTo(1,0,0));

缩放到当前倍数节点(时间(s),X 轴倍数,Y 轴倍数)

node.runAction(cc.scaleTo(1,0.7,0.8));

旋转到指定角度(时间(s),X 轴角度,Y 轴角度)

node.runAction(cc.rotateTo(1,160,160));

变化节点倾斜度(时间(s),X 轴倾斜度,Y 轴倾斜度)

node.runAction(cc.skewTo(1,5,-5));

变化当前节点的透明度(时间(s),透明度)

node.runAction(cc.fadeTo(2,0));

变化当前节点颜色(时间,R,G,B)

node.runAction(cc.tintTo(2,255,255,0));

停止所有动作

node.stopAllActions();

自定义动作


创建一个移动动作

var action = cc.moveTo(2, 100, 100);

执行动作

node.runAction(action);

停止一个动作

node.stopAction(action);

按顺序连续执行,先 action1,后 action2

cc.sequence(action1,action2);

同时执行,action1 和 action2 一起执行

cc.spawn(action1,action2);

一直重复括号里的动作

cc.repeatForever(cc.sequence(action1,action2));

计时器

只用 1 次的计时器,2 秒后执行

        this.scheduleOnce(function(){
            一条或多条执行语句

        },2); (function(){},时间(s))

每隔 5 秒执行 1 次

        this.schedule(function(){
            一条或多条执行语句

        },5);

计算多次的计时器(1 秒后,以 0.1 秒的执行间隔,执行 10 次)

        this.schedule(function(){
            一条或多条执行语句

        },0.1,10,1); (function(){},间隔时间,次数,多久后开始)

停止某组件的所有计时器

this.unscheduleAllCallbacks(this);

自定义定时器执行内容(相比常规使用的定时器优势是:方便随时开启或关闭)

var cb= function(){
do something ##
};

启动定时器

this.schedule(cb,1);

取消定时器

this.unschedule(cb);

# 事件监听

(开始:'touchstart',移动:'touchmove',结束:'touchend',取消:'touchcancel')
node.on('touchstart',function(event){
this.doSomething();

    var id = event.getID();  获取触点的ID
    var x = event.getLocationX();获取触摸点的坐标X
    var y = event.getLocationY();获取触摸点的坐标Y

},this);

cc.eventManager.addListener({
event: cc.EventListener.KEYBOARD/TOUCH_ONE_BY_ONE,myfunction},self.node);

定义全局变量

任意脚本里可定义全局变量

window.DEFAULT_IP = "192.168.1.1";

任意脚本里可定义全局变量

window.G = {
a: null,
b: null,
};

任意脚本里可访问全局变量(切记定义全局变量的那个脚本已执行过)

G.a = 0;
G.b = 0;

var something = require(‘something’);

常驻节点,必须位于层级的根节点(也可算全局节点吧)

cc.game.addPersistRootNode(myNode);

module.exports = {

         config: 123

}

分辨率

获得设备分辨率

var b = cc.director.getWinSizeInPixels()
var bx = b.width
var by = b.height

获得设备分辨率的宽度

cc.view.getCanvasSize().width;

获得设备分辨率的高度

cc.view.getCanvasSize().height;

显示帧数信息

cc.director.setDisplayStats(true);

音频控制

播放音乐(true 代表循环)

cc.audioEngine.playMusic(this.BGAudio,true);

停止播放背景音乐

cc.audioEngine.stopMusic()

播放音效(false 代表只播放一次)

cc.audioEngine.playEffect(this.ClickAudio,false);

停止指定音效(需要先把音效赋值给变量)

cc.audioEngine.stopEffect(音效变量名);

停止所有音效

cc.audioEngine.AllEffects();

设置背景音乐的音量(该参数范围是 0 到 1)

cc.audioEngine.setMusicVolume(参数);

设置音效的音量(该参数范围是 0 到 1)

cc.audioEngine.setEffectsVolume(参数);

存档操作

存储存档数据

cc.sys.localStorage.setItem('存储标识名',变量名);

读取存档数据

var a = cc.sys.localStorage.getItem('存储标识名');

擦除存档数据

cc.sys.localStorage.removeItem('存储标识名');

userData = {
name: 'Tracer',
level: 1,
gold: 100
};

存取复杂对象数据

cc.sys.localStorage.setItem('userData', JSON.stringify(userData));

读取复杂对象数据

var userData = JSON.parse(cc.sys.localStorage.getItem('userData'));

判断平台

是否是本地

cc.sys.isNative

是否是网页

cc.sys.isBrowser

是否是移动系统

cc.sys.isMobile

正在运行的平台

cc.sys.platform

当前运行系统的语言

cc.sys.language

当前正在运行的系统

cc.sys.os

是否是 IOS 系统

cc.sys.OS_IOS

是否是 android 系统

cc.sys.OS_ANDROID

是否是 windows 系统

cc.sys.OS_WINDOWS

打开网页

cc.sys.openURL('Http:www.baidu.com');

监听和发射事件

暂停节点系统事件

this.node.pauseSystemEvents(true);

恢复节点系统事件

this.node.resumeSystemEvents(true);

移除所有注册事件

this.node.targetOff(this);

触摸监听:开始'touchstart',移动'touchmove',结束'touchend',取消'touchcancel'

获取触摸点的坐标(包含 X 和 Y)

var pos = event.getLocation();

获取触摸点的 X 坐标

var x = event.getLocationX();

获取触摸点的 Y 坐标

var y = event.getLocationY();

获取触点的 ID

var a = event.getID();

鼠标监听:鼠标按下'mousedown',移入节点'mouseenter',节点中移动'mousemove',移出节点'mouseleave,'松开鼠标'mouseup'

获取滚轮滚动的 Y 轴距离,只有滚动时才有效

var a = event.getScrollY();

获取鼠标位置对象,对象包含 x 和 y 属性

var a = event.getLocation();

输入框监听:获得焦点'editing-did-began',文字变化'text-changed',失去焦点'editing-did-ended',按下回车'editing-return'

属性变化监听:位置'position-changed',宽高 'size-changed',旋转'rotation-changed',缩放'scale-changed'

ScrollView 控件监听:滚动中'scrolling',停止滚动'scroll-ended'

用户自定义事件:

注册监听

this.node.on('事件名',function,this);

发送监听广播

this.node.emit('事件名');

关闭监听

this.node.off('事件名',function,this);

注册带参数监听

this.node.on('事件名',function(event){

    “具体方法函数内容”

},this);

发送带参数的监听

this.node.emit('事件名',{id:1001});

添加事件

cc.eventManager.addListener(listener, node);

移除事件

cc.eventManager.removeListener((listener);

其他操作

暂停

cc.director.pause();

继续

cc.director.resume();

退出整个应用

cc.director.end();

输出想要的信息

cc.log(变量) 或 console.log(something);

锁定当前使用的 this 指向

let self = this;

层级获取

node.getLocalZOrder();

层级改变

node.setLocalZOrder(1);

读取带变量的路径

cc.find('canvas/map' + num)

打开网页

cc.sys.openURL('Http:www.baidu.com');
  • 6
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值