在模拟器中,运行时间从0.001以下变成0.03了。
在真机中,更明显了,3-4秒的卡顿,连续几个会达到8秒。
附上我的丑陋的代码,不要见怪。
local scene = cc.Scene:create();
local node = cc.CSLoader:createNode(“armature.csb”);
local action = cc.CSLoader:createTimeline(“armature.csb”);
action:retain();
node:setPosition(500,500);
scene:addChild(node);
local node1 = cc.CSLoader:createNode("armature.csb");
node1:setPosition(500,300);
scene:addChild(node1);
local node2 = cc.CSLoader:createNode("armature.csb");
node2:setPosition(500,100);
scene:addChild(node2);
local act = action:clone();
local act1 = action:clone();
local act2 = action:clone();
act:gotoFrameAndPlay(0,false);
act1:gotoFrameAndPlay(0,false);
act2:gotoFrameAndPlay(0,false);
node:runAction(act);
node1:runAction(act1);
node2:runAction(act2);
cc.Director:getInstance():getScheduler():scheduleScriptFunc(function(dt)
print("---");
local t1 = os.clock();
node:stopAction(act);
print(os.clock() - t1);
act = action:clone();
act:gotoFrameAndPlay(0,false);
node:runAction(act);
local t1 = os.clock();
node1:stopAction(act1);
print(os.clock() - t1);
act1 = action:clone();
act1:gotoFrameAndPlay(0,false);
node1:runAction(act1);
local t1 = os.clock();
node2:stopAction(act2);
print(os.clock() - t1);
act2 = action:clone();
act2:gotoFrameAndPlay(0,false);
node2:runAction(act2);
end,3,false);
输出是
0.00099999999999945
0.047
0.039000000000001
0.0019999999999998
0.047
0.045