blob: b6515766d63ca0c76863ae4b00dc153121f29683 [file] [log] [blame]
/*jslint vars: true , plusplus: true, devel: true, nomen: true, regexp: true, indent: 4, maxerr: 50 */
/*global bm_keyframeHelper, bm_eventDispatcher, bm_generalUtils, bm_expressionHelper*/
var bm_textAnimatorHelper = (function () {
'use strict';
var ob = {};
function exportTextSelector(layerInfo, frameRate) {
var ob = {};
var i, len;
var selectorProperty;
var property, propertyName;
len = layerInfo.numProperties;
var selectorType = -1;
for (i = 0; i < len; i += 1) {
propertyName = layerInfo.property(i + 1).matchName;
if (propertyName === 'ADBE Text Selector') {
selectorType = 0;
selectorProperty = layerInfo.property('ADBE Text Selector');
break;
} else if (propertyName === 'ADBE Text Expressible Selector') {
selectorType = 1;
selectorProperty = layerInfo.property('ADBE Text Expressible Selector');
break;
}
}
len = selectorProperty.numProperties;
/*for (i = 0; i < len; i += 1) {
//bm_eventDispatcher.log(selectorProperty.property(i + 1).matchName);
}*/
if (selectorType === 0) {
var advancedProperty = selectorProperty.property('ADBE Text Range Advanced');
ob.t = 0;
ob.xe = bm_keyframeHelper.exportKeyframes(advancedProperty.property('ADBE Text Levels Max Ease'), frameRate);
ob.ne = bm_keyframeHelper.exportKeyframes(advancedProperty.property('ADBE Text Levels Min Ease'), frameRate);
ob.a = bm_keyframeHelper.exportKeyframes(advancedProperty.property('ADBE Text Selector Max Amount'), frameRate);
ob.b = advancedProperty.property("ADBE Text Range Type2").value;
ob.rn = advancedProperty.property("ADBE Text Randomize Order").value;
ob.sh = advancedProperty.property("ADBE Text Range Shape").value;
//
var rangeUnits = advancedProperty.property('ADBE Text Range Units').value;
if (rangeUnits === 1) {
if (selectorProperty.property('ADBE Text Percent Start').isModified) {
ob.s = bm_keyframeHelper.exportKeyframes(selectorProperty.property('ADBE Text Percent Start'), frameRate);
}
if (selectorProperty.property('ADBE Text Percent End').isModified) {
ob.e = bm_keyframeHelper.exportKeyframes(selectorProperty.property('ADBE Text Percent End'), frameRate);
}
if (selectorProperty.property('ADBE Text Percent Offset').isModified) {
ob.o = bm_keyframeHelper.exportKeyframes(selectorProperty.property('ADBE Text Percent Offset'), frameRate);
}
} else {
if (selectorProperty.property('ADBE Text Index Start').isModified) {
ob.s = bm_keyframeHelper.exportKeyframes(selectorProperty.property('ADBE Text Index Start'), frameRate);
}
if (selectorProperty.property('ADBE Text Index End').isModified) {
ob.e = bm_keyframeHelper.exportKeyframes(selectorProperty.property('ADBE Text Index End'), frameRate);
}
if (selectorProperty.property('ADBE Text Index Offset').isModified) {
ob.o = bm_keyframeHelper.exportKeyframes(selectorProperty.property('ADBE Text Index Offset'), frameRate);
}
}
ob.r = rangeUnits;
} else if (selectorType === 1) {
ob.t = 1;
ob.b = selectorProperty.property('ADBE Text Range Type2').value;
var amount = selectorProperty.property('ADBE Text Expressible Amount');
bm_expressionHelper.checkExpression(amount, ob);
//bm_eventDispatcher.log(ob.x);
}
return ob;
}
function exportAnimationSelector(layerInfo, frameRate) {
var ob = {};
var i, len, property, propertyName;
len = layerInfo.numProperties;
for (i = 0; i < len; i += 1) {
property = layerInfo.property(i + 1);
if (property.canSetExpression) {
propertyName = property.matchName;
switch (propertyName) {
case 'ADBE Text Anchor Point 3D':
ob.a = bm_keyframeHelper.exportKeyframes(property, frameRate);
break;
case 'ADBE Text Position 3D':
ob.p = bm_keyframeHelper.exportKeyframes(property, frameRate);
break;
case 'ADBE Text Scale 3D':
ob.s = bm_keyframeHelper.exportKeyframes(property, frameRate);
break;
case 'ADBE Text Rotation':
ob.r = bm_keyframeHelper.exportKeyframes(property, frameRate);
break;
case 'ADBE Text Rotation X':
ob.rx = bm_keyframeHelper.exportKeyframes(property, frameRate);
break;
case 'ADBE Text Rotation Y':
ob.ry = bm_keyframeHelper.exportKeyframes(property, frameRate);
break;
case 'ADBE Text Opacity':
ob.o = bm_keyframeHelper.exportKeyframes(property, frameRate);
break;
case 'ADBE Text Fill Color':
ob.fc = bm_keyframeHelper.exportKeyframes(property, frameRate);
break;
case 'ADBE Text Fill Hue':
ob.fh = bm_keyframeHelper.exportKeyframes(property, frameRate);
break;
case 'ADBE Text Fill Saturation':
ob.fs = bm_keyframeHelper.exportKeyframes(property, frameRate);
break;
case 'ADBE Text Fill Brightness':
ob.fb = bm_keyframeHelper.exportKeyframes(property, frameRate);
break;
case 'ADBE Text Stroke Color':
ob.sc = bm_keyframeHelper.exportKeyframes(property, frameRate);
break;
case 'ADBE Text Stroke Hue':
ob.sh = bm_keyframeHelper.exportKeyframes(property, frameRate);
break;
case 'ADBE Text Stroke Saturation':
ob.ss = bm_keyframeHelper.exportKeyframes(property, frameRate);
break;
case 'ADBE Text Stroke Brightness':
ob.sb = bm_keyframeHelper.exportKeyframes(property, frameRate);
break;
case 'ADBE Text Stroke Width':
ob.sw = bm_keyframeHelper.exportKeyframes(property, frameRate);
break;
case 'ADBE Text Fill Opacity':
ob.fo = bm_keyframeHelper.exportKeyframes(property, frameRate);
break;
case 'ADBE Text Stroke Opacity':
ob.so = bm_keyframeHelper.exportKeyframes(property, frameRate);
break;
case 'ADBE Text Tracking Amount':
ob.t = bm_keyframeHelper.exportKeyframes(property, frameRate);
break;
case 'ADBE Text Skew':
ob.sk = bm_keyframeHelper.exportKeyframes(property, frameRate);
break;
case 'ADBE Text Skew Axis':
ob.sa = bm_keyframeHelper.exportKeyframes(property, frameRate);
break;
}
}
}
return ob;
}
function exportAnimator(layerInfo, ob, frameRate) {
var i, len;
len = layerInfo.numProperties;
for (i = 0; i < len; i += 1) {
switch (layerInfo.property(i + 1).matchName) {
case "ADBE Text Selectors":
ob.s = exportTextSelector(layerInfo.property(i + 1), frameRate);
break;
case "ADBE Text Animator Properties":
ob.a = exportAnimationSelector(layerInfo.property(i + 1), frameRate);
break;
}
}
}
ob.exportAnimator = exportAnimator;
return ob;
}());