MCPcopy Create free account
hub / github.com/SuperMap/iClient-JavaScript / createTrackClip

Function createTrackClip

libs/echarts/echarts-en.simple.js:4312–4524  ·  view source on GitHub ↗
(animator, easing, oneTrackDone, keyframes, propName, forceAnimate)

Source from the content-addressed store, hash-verified

4310}
4311
4312function createTrackClip(animator, easing, oneTrackDone, keyframes, propName, forceAnimate) {
4313 var getter = animator._getter;
4314 var setter = animator._setter;
4315 var useSpline = easing === 'spline';
4316
4317 var trackLen = keyframes.length;
4318 if (!trackLen) {
4319 return;
4320 }
4321 // Guess data type
4322 var firstVal = keyframes[0].value;
4323 var isValueArray = isArrayLike(firstVal);
4324 var isValueColor = false;
4325 var isValueString = false;
4326
4327 // For vertices morphing
4328 var arrDim = isValueArray ? getArrayDim(keyframes) : 0;
4329
4330 var trackMaxTime;
4331 // Sort keyframe as ascending
4332 keyframes.sort(function (a, b) {
4333 return a.time - b.time;
4334 });
4335
4336 trackMaxTime = keyframes[trackLen - 1].time;
4337 // Percents of each keyframe
4338 var kfPercents = [];
4339 // Value of each keyframe
4340 var kfValues = [];
4341 var prevValue = keyframes[0].value;
4342 var isAllValueEqual = true;
4343 for (var i = 0; i < trackLen; i++) {
4344 kfPercents.push(keyframes[i].time / trackMaxTime);
4345 // Assume value is a color when it is a string
4346 var value = keyframes[i].value;
4347
4348 // Check if value is equal, deep check if value is array
4349 if (!((isValueArray && isArraySame(value, prevValue, arrDim))
4350 || (!isValueArray && value === prevValue))) {
4351 isAllValueEqual = false;
4352 }
4353 prevValue = value;
4354
4355 // Try converting a string to a color array
4356 if (typeof value === 'string') {
4357 var colorArray = parse(value);
4358 if (colorArray) {
4359 value = colorArray;
4360 isValueColor = true;
4361 }
4362 else {
4363 isValueString = true;
4364 }
4365 }
4366 kfValues.push(value);
4367 }
4368 if (!forceAnimate && isAllValueEqual) {
4369 return;

Callers 1

Calls 6

pushMethod · 0.80
isArrayLikeFunction · 0.70
getArrayDimFunction · 0.70
isArraySameFunction · 0.70
parseFunction · 0.70
fillArrFunction · 0.70

Tested by

no test coverage detected