Skip to content

Commit de86310

Browse files
committed
Merge pull request cocos2d#2830 from VisualSJ/develop-3.5
Update -x timeline and parser
2 parents a721a5c + 8d8c200 commit de86310

File tree

5 files changed

+312
-34
lines changed

5 files changed

+312
-34
lines changed

extensions/cocostudio/action/CCActionFrame.js

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -99,17 +99,19 @@ ccs.FrameEaseType = {
9999
Circ_EaseOut : 20,
100100
Circ_EaseInOut : 21,
101101

102-
Elastic_EaesIn : 22,
103-
Elastic_EaesOut : 23,
104-
Elastic_EaesInOut : 24,
102+
Elastic_EaseIn : 22,
103+
Elastic_EaseOut : 23,
104+
Elastic_EaseInOut : 24,
105105

106106
Back_EaseIn : 25,
107107
Back_EaseOut : 26,
108108
Back_EaseInOut : 27,
109109

110110
Bounce_EaseIn : 28,
111111
Bounce_EaseOut : 29,
112-
Bounce_EaseInOut : 30
112+
Bounce_EaseInOut : 30,
113+
114+
TWEEN_EASING_MAX: 1000
113115
};
114116

115117

@@ -227,13 +229,13 @@ ccs.ActionFrame = ccs.Class.extend(/** @lends ccs.ActionFrame# */{
227229
case ccs.FrameEaseType.Circ_EaseInOut:
228230
resultAction = action.easing(cc.easeCircleActionInOut());
229231
break;
230-
case ccs.FrameEaseType.Elastic_EaesIn:
232+
case ccs.FrameEaseType.Elastic_EaseIn:
231233
resultAction = action.easing(cc.easeElasticIn());
232234
break;
233-
case ccs.FrameEaseType.Elastic_EaesOut:
235+
case ccs.FrameEaseType.Elastic_EaseOut:
234236
resultAction = action.easing(cc.easeElasticOut());
235237
break;
236-
case ccs.FrameEaseType.Elastic_EaesInOut:
238+
case ccs.FrameEaseType.Elastic_EaseInOut:
237239
resultAction = action.easing(cc.easeElasticInOut());
238240
break;
239241
case ccs.FrameEaseType.Back_EaseIn:

extensions/cocostudio/loader/parsers/action-2.x.js

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@
6565
deferred: function(json, resourcePath, action, file){
6666
var animationlist = json["Content"]["Content"]["AnimationList"];
6767
var length = animationlist ? animationlist.length : 0;
68-
for (var i = 0; i < length; i++) {
68+
for (var i = 0; i < length; i++){
6969
var animationdata = animationlist[i];
7070
var info = { name: null, startIndex: null, endIndex: null };
7171
info.name = animationdata["Name"];
@@ -220,7 +220,7 @@
220220
},
221221
{
222222
name: "ActionValue",
223-
handle: function(options){
223+
handle: function (options) {
224224

225225
var frame = new ccs.InnerActionFrame();
226226
var innerActionType = options["InnerActionType"];
@@ -229,6 +229,10 @@
229229

230230
var singleFrameIndex = options["SingleFrameIndex"];
231231

232+
var frameIndex = options["FrameIndex"];
233+
if(frameIndex !== undefined)
234+
frame.setFrameIndex(frameIndex);
235+
232236
frame.setInnerActionType(ccs.InnerActionType[innerActionType]);
233237
frame.setSingleFrameIndex(singleFrameIndex);
234238

@@ -240,6 +244,18 @@
240244
}
241245
];
242246

247+
var loadEasingDataWithFlatBuffers = function(frame, options){
248+
var type = options["Type"];
249+
frame.setTweenType(type);
250+
var points = options["Points"];
251+
if(points){
252+
points = points.map(function(p){
253+
return cc.p(p["X"], p["Y"]);
254+
});
255+
frame.setEasingParams(points);
256+
}
257+
};
258+
243259
frameList.forEach(function(item){
244260
parser.registerParser(item.name, function(options, resourcePath){
245261
var timeline = new ccs.Timeline();
@@ -252,6 +268,10 @@
252268
frame.setFrameIndex(frameData["FrameIndex"]);
253269
var tween = frameData["Tween"] != null ? frameData["Tween"] : true;
254270
frame.setTween(tween);
271+
//https://github.com/cocos2d/cocos2d-x/pull/11388/files
272+
var easingData = frameData["EasingData"];
273+
if(easingData)
274+
loadEasingDataWithFlatBuffers(frame, easingData);
255275
timeline.addFrame(frame);
256276
});
257277
}

extensions/cocostudio/loader/parsers/timelineParser-2.x.js

Lines changed: 48 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,13 @@
111111

112112
node.setTag(json["Tag"] || 0);
113113

114-
node.setUserObject(new ccs.ActionTimelineData(json["ActionTag"] || 0));
114+
var actionTag = json["ActionTag"] || 0;
115+
var extensionData = new ccs.ObjectExtensionData();
116+
var customProperty = json["UserData"];
117+
if(customProperty !== undefined)
118+
extensionData.setCustomProperty(customProperty);
119+
extensionData.setActionTag(actionTag);
120+
node.setUserObject(extensionData);
115121

116122
node.setCascadeColorEnabled(true);
117123
node.setCascadeOpacityEnabled(true);
@@ -175,6 +181,16 @@
175181
}
176182
});
177183

184+
var blendData = json["BlendFunc"];
185+
if(json["BlendFunc"]) {
186+
var blendFunc = cc.BlendFunc.ALPHA_PREMULTIPLIED;
187+
if (blendData["Src"] !== undefined)
188+
blendFunc.src = blendData["Src"];
189+
if (blendData["Dst"] !== undefined)
190+
blendFunc.dst = blendData["Dst"];
191+
node.setBlendFunc(blendFunc);
192+
}
193+
178194
if(json["FlipX"])
179195
node.setFlippedX(true);
180196
if(json["FlipY"])
@@ -203,6 +219,16 @@
203219
node = new cc.ParticleSystem(path);
204220
self.generalAttributes(node, json);
205221
!cc.sys.isNative && node.setDrawMode(cc.ParticleSystem.TEXTURE_MODE);
222+
223+
var blendData = json["BlendFunc"];
224+
if(json["BlendFunc"]){
225+
var blendFunc = cc.BlendFunc.ALPHA_PREMULTIPLIED;
226+
if(blendData["Src"] !== undefined)
227+
blendFunc.src = blendData["Src"];
228+
if(blendData["Dst"] !== undefined)
229+
blendFunc.dst = blendData["Dst"];
230+
node.setBlendFunc(new cc.BlendFunc());
231+
}
206232
});
207233
return node;
208234
};
@@ -227,7 +253,12 @@
227253

228254
var actionTag = json["ActionTag"] || 0;
229255
widget.setActionTag(actionTag);
230-
widget.setUserObject(new ccs.ActionTimelineData(actionTag));
256+
var extensionData = new ccs.ObjectExtensionData();
257+
var customProperty = json["UserData"];
258+
if(customProperty !== undefined)
259+
extensionData.setCustomProperty(customProperty);
260+
extensionData.setActionTag(actionTag);
261+
widget.setUserObject(extensionData);
231262

232263
var rotationSkewX = json["RotationSkewX"];
233264
if (rotationSkewX)
@@ -492,6 +523,16 @@
492523
}
493524
widget.setTextVerticalAlignment(v_alignment);
494525

526+
if(json["OutlineEnabled"] && json["OutlineColor"])
527+
widget.enableOutline(getColor(json["OutlineColor"]), json["OutlineSize"] || 0);
528+
529+
if(json["ShadowEnabled"] && json["ShadowColor"])
530+
widget.enableShadow(
531+
getColor(json["ShadowColor"]),
532+
cc.size(getParam(json["ShadowOffsetX"], 2), getParam(json["ShadowOffsetY"], -2)),
533+
json["ShadowBlurRadius"] || 0
534+
);
535+
495536
//todo check it
496537
var isCustomSize = json["IsCustomSize"];
497538
if(isCustomSize != null)
@@ -1157,6 +1198,9 @@
11571198
parser.generalAttributes(obj.node, json);
11581199
if(obj.action && obj.node){
11591200
obj.action.tag = obj.node.tag;
1201+
var InnerActionSpeed = json["InnerActionSpeed"];
1202+
if(InnerActionSpeed !== undefined)
1203+
obj.action.setTimeSpeed(InnerActionSpeed);
11601204
obj.node.runAction(obj.action);
11611205
obj.action.gotoFrameAndPause(0);
11621206
}
@@ -1245,7 +1289,8 @@
12451289
var r = json["R"] != null ? json["R"] : 255;
12461290
var g = json["G"] != null ? json["G"] : 255;
12471291
var b = json["B"] != null ? json["B"] : 255;
1248-
return cc.color(r, g, b);
1292+
var a = json["A"] != null ? json["A"] : 255;
1293+
return cc.color(r, g, b, a);
12491294
};
12501295

12511296
var setContentSize = function(node, size){

extensions/cocostudio/timeline/ActionTimeline.js

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,29 @@ ccs.ActionTimelineData = ccs.Class.extend({
6060

6161
});
6262

63+
ccs.ObjectExtensionData = ccs.Class.extend({
64+
65+
_customProperty: null,
66+
_timelineData: null,
67+
68+
ctor: function(){
69+
this._timelineData = new ccs.ActionTimelineData(0);
70+
return true;
71+
},
72+
73+
setActionTag: function(actionTag){
74+
this._timelineData.setActionTag(actionTag);
75+
},
76+
77+
getActionTag: function(){
78+
return this._timelineData.getActionTag();
79+
}
80+
});
81+
82+
ccs.ObjectExtensionData.create = function(){
83+
return new ccs.ObjectExtensionData();
84+
};
85+
6386
/**
6487
* Create new ActionTimelineData.
6588
*

0 commit comments

Comments
 (0)