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); }, });