# 動作系統(tǒng)的使用
* 動作API的使用
// 創(chuàng)建一個動作
var action = cc.moveTo(2, 100, 100);
// 節(jié)點執(zhí)行一個動作
node.runAction(action);
// 節(jié)點停止一個動作
node.stopAction(action);
// 節(jié)點停止所有動作
node.stopAllActions();
// 給動作設置一個Tag
var tag = 1;
action.setTag(tag);
// 通過 Tag 獲取一個動作
node.getActionBtTag(tag);
// 通過 tag 停止一個動作
node.stopActionByTag(tag);
* 即時動作
即時動作就是瞬間完成的基礎動作展箱,可以完成節(jié)點的各種形變柏靶、位移、顯示/消失呈枉、縮放等满粗。 他們?nèi)祭^承自 cc.ActionInstanl
* 時間間隔動作
時間間隔動作就是在一定時間內(nèi)完成的漸變動作, 他們?nèi)祭^承自 cc.ActionInterval
* 容器動作
容器動作就是可以將不同的動作組合起來藏研,完成復雜的動作撵术。
1. 順序動作逮光,cc.sequence可以讓一系列動作順序執(zhí)行
// 讓節(jié)點左右來回移動
var seq = cc.sequence(cc.moveBy(0.5, 200, 0), cc.moveBy(0.5, -200, 0));
node.runAction(seq);
2. 同步動作,cc.spawn可以同步執(zhí)行一系列子動作栖秕,子動作會疊加起來顯示效果春塌。
// 讓節(jié)點向上移動的同時縮放
var spawn = cc.spawn(cc.moveBy(0.5, 0, 50), cc.scaleTo(0.5, 0.8, 1.4));
node.runAction(spawn);
3. 重復動作,cc.repeat可以多次重復一個或多個動作
// 讓節(jié)點左右來回移動累魔,并重復5次
var seq = cc.repeat(cc.sequence(cc.moveBy(0.5, 200, 0), cc.moveBy(0.5, -200, 0)), 5);
node.runAction(seq);
4. 永遠重復動作摔笤,cc.repeatForever 一直重復某個動作,直到手動停止
// 讓節(jié)點左右來回移動并一直重復
var seq = cc.repeatForever(cc.sequence(cc.moveBy(0.5, 200, 0), cc.moveBy(0.5, -200, 0)));
node.runAction(seq);
5. 速度動作 cc.speed 可以改變目標動作的執(zhí)行速率垦写,讓動作更快或更慢完成。
// 讓目標動作速度加快一倍彰触,相當于原本2秒的動作在1秒內(nèi)完成
var action = cc.speed(cc.spawn(cc.moveBy(2, 0, 50), cc.scaleTo(2, 0.8, 1.4)), 0.5);
node.runAction(action);
* 緩動動作
緩動動作不可以單獨存在梯投,它永遠是為了修飾基礎動作而存在的。 它可以用來修飾基礎動作的時間線况毅,讓動作有快入/快出分蓖、緩入/緩出或其他更為復雜的特效。 并且尔许,只有時間間隔動作才支持緩動么鹤。
// API
var action = cc.scaleTo(0.5, 2, 2);
action.easing(cc.easeIn(3.0));
* 動作回調(diào)
動作回調(diào)API:
var finished = cc.callFunc(this.myMethod, this, opt);
cc.callFunc 的第一個參數(shù)是處理回調(diào)的方法,可以是CCClass的成員方法味廊,也可以是匿名函數(shù)蒸甜。 第二個參數(shù)綁定this。 第三個參數(shù)是傳入處理函數(shù)的參數(shù)余佛。
在聲明了回調(diào)函數(shù)后柠新,可以這樣用
var myAction = cc.sequence(cc.moveBy(1, cc.v2(0, 100)), cc.fadeOut(1), finished);
// 也可以多次插入回調(diào)
var myAction = cc.sequence(cc.moveBy(1, cc.v2(0, 100)), finished1, cc.fadeOut(1), finished2);
動作列表: https://docs.cocos.com/creator/manual/zh/scripting/action-list.html