this.node.destory()和this.node.removeFromParent
第一次接触到cocos creator的this.node.destory()是在作官方给出的事例,可是发现调用这个destory会报错,因而搜索了一下,也没有结果,可是发现了一个与他类似的东西叫作this.node.removeFromParent() 试了一下 这个倒没有出现问题。先记录一下 ,想搞明白这个destory()究竟是设么毛病。node
感受本身解决了,拼写问题,这个坑感受还蛮大的,文档给出的是troy但我的经常使用写法为tory
this.node能够得到当前组件
得到同一个节点上的其余组件要用getComponent数组
start: function () { var label = this.getComponent(cc.Label); var text = this.name + ' started'; // Change the text in Label Component label.string = text; }
也能够传入一个类名。对用户定义的组件来讲类名就是脚本名
var rotate = this.getComponent("SinRotate");
在上面的例子中,若是你将属性的 type 声明为 Player 组件,当你拖动节点 "Player Node" 到 属性检查器,player 属性就会被设置为这个节点里面的 Player 组件。这样你就不须要再本身调用 getComponent 啦。动画
// Cannon.js var Player = require("Player"); cc.Class({ extends: cc.Component, properties: { // 声明 player 属性,此次直接是组件类型 player: { default: null, type: Player } }, start: function () { var playerComp = this.player; this.checkPlayer(playerComp); }, //... });
还能够将属性的默认值由 null 改成数组[],这样你就能在 属性检查器 中同时设置多个对象。
不过若是须要在运行时动态获取其它对象,还须要用到下面介绍的查找方法。ui
通常在场景载入时触发该回调
第一次执行 update 以前触发。start 一般用于初始化一些中间状态的数据,这些数据可能在 update 时会发生改变,而且被频繁的 enable 和 disable。
每一帧渲染物体的行为,状态,方位等。这些更新操做一般都放在update中
update会在全部动画更新前执行 但若是要在动画效果如粒子效果更新以后才进行额外操做,就要放在lateUpdate中回调
当组件或者所在节点调用了destroy()则会调用onDestroy回调
当组件的 enabled 属性从 false 变为 true 时,或者所在节点的 active 属性从 false 变为 true 时,会激活 onEnable 回调。假若节点第一次被建立且 enabled 为 true,则会在 onLoad 以后,start 以前被调用。
当组件的 enabled 属性从 true 变为 false 时,或者所在节点的 active 属性从 true 变为 false 时,会激活 onDisable 回调
建立this
cc.Class({ extends: cc.Component, properties: { sprite: { default: null, type: cc.SpriteFrame, }, }, start: function () { <!-- 经过new cc.Node实例化一个节点 --> var node = new cc.Node('Sprite'); <!-- 将节点添加为组件 --> var sp = node.addComponent(cc.Sprite); <!-- 将组建添加到场景中 --> sp.spriteFrame = this.sprite; node.parent = this.node; }, });
克隆经过cc.instantiate来完成code
cc.Class({ extends: cc.Component, properties: { target: { default: null, type: cc.Node, }, }, start: function () { var scene = cc.director.getScene(); var node = cc.instantiate(this.target); node.parent = scene; node.setPosition(0, 0); }, });