You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1180 lines
42 KiB
1180 lines
42 KiB
{
|
|
/////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// MAkinE - Disney GEN EP Customizer
|
|
//
|
|
// ©2017 Jorge Vasquez
|
|
// Author: Jorge Vasquez
|
|
//
|
|
// Version History
|
|
//
|
|
////////////////////////////////////////////////////////////////////////
|
|
|
|
var tcd_scriptName = "MAkinE - Disney GEN EP Customizer ";
|
|
var tcd_version = "0.1";
|
|
|
|
/////////////////////////////Array.indexOf for older JS/////////////////////
|
|
// Production steps of ECMA-262, Edition 5, 15.4.4.14
|
|
// Reference: http://es5.github.io/#x15.4.4.14
|
|
if (!Array.prototype.indexOf) {
|
|
Array.prototype.indexOf = function(searchElement, fromIndex) {
|
|
|
|
var k;
|
|
|
|
// 1. Let o be the result of calling ToObject passing
|
|
// the this value as the argument.
|
|
if (this == null) {
|
|
throw new TypeError('"this" is null or not defined');
|
|
}
|
|
|
|
var o = Object(this);
|
|
|
|
// 2. Let lenValue be the result of calling the Get
|
|
// internal method of o with the argument "length".
|
|
// 3. Let len be ToUint32(lenValue).
|
|
var len = o.length >>> 0;
|
|
|
|
// 4. If len is 0, return -1.
|
|
if (len === 0) {
|
|
return -1;
|
|
}
|
|
|
|
// 5. If argument fromIndex was passed let n be
|
|
// ToInteger(fromIndex); else let n be 0.
|
|
var n = fromIndex | 0;
|
|
|
|
// 6. If n >= len, return -1.
|
|
if (n >= len) {
|
|
return -1;
|
|
}
|
|
|
|
// 7. If n >= 0, then Let k be n.
|
|
// 8. Else, n<0, Let k be len - abs(n).
|
|
// If k is less than 0, then let k be 0.
|
|
k = Math.max(n >= 0 ? n : len - Math.abs(n), 0);
|
|
|
|
// 9. Repeat, while k < len
|
|
while (k < len) {
|
|
// a. Let Pk be ToString(k).
|
|
// This is implicit for LHS operands of the in operator
|
|
// b. Let kPresent be the result of calling the
|
|
// HasProperty internal method of o with argument Pk.
|
|
// This step can be combined with c
|
|
// c. If kPresent is true, then
|
|
// i. Let elementK be the result of calling the Get
|
|
// internal method of o with the argument ToString(k).
|
|
// ii. Let same be the result of applying the
|
|
// Strict Equality Comparison Algorithm to
|
|
// searchElement and elementK.
|
|
// iii. If same is true, return k.
|
|
if (k in o && o[k] === searchElement) {
|
|
return k;
|
|
}
|
|
k++;
|
|
}
|
|
return -1;
|
|
};
|
|
}
|
|
////////////////////////////////////////////////////////////////////////
|
|
debug = {}
|
|
debug.active = true;
|
|
debug.updateN = 0;
|
|
debug.log = function( string ){
|
|
if ( debug.active ){
|
|
//$.writeln( string );
|
|
writeLn( string );
|
|
debug.updateN += 1;
|
|
}
|
|
return;
|
|
}
|
|
function getItem( item_name, item_type ){
|
|
var result = null;
|
|
var items = app.project.items;
|
|
var names = [];
|
|
|
|
for ( i = 1 ; i <= items.length ; i ++ )
|
|
{
|
|
var item = items[i];
|
|
var type = item.typeName;
|
|
if ( ( type == item_type ) && ( item.name == item_name ) )
|
|
{
|
|
result = item;
|
|
//$.writeln( item.name );
|
|
}
|
|
}
|
|
return result;
|
|
}
|
|
function getItemByName( item_name ){
|
|
var result = null;
|
|
var items = app.project.items;
|
|
|
|
for ( i = 1 ; i <= items.length ; i ++ )
|
|
{
|
|
var item = items[i];
|
|
if ( ( item.name == item_name ) )
|
|
{
|
|
result = item;
|
|
//$.writeln( item.name );
|
|
}
|
|
}
|
|
return result;
|
|
}
|
|
function getFolder( given_name ){
|
|
|
|
result = getItem( given_name, "Folder" );
|
|
|
|
return result;
|
|
}
|
|
function getComp( given_name ){
|
|
|
|
result = getItem( given_name, "Composition" );
|
|
|
|
return result;
|
|
}
|
|
function hexToColor(theHex){
|
|
var r = theHex >> 16;
|
|
var g = (theHex & 0x00ff00) >> 8;
|
|
var b = theHex & 0xff;
|
|
return [r/255,g/255,b/255,1];
|
|
}
|
|
function titleCase(str) {
|
|
str = str.toLowerCase().split(' ');
|
|
|
|
for(var i = 0; i < str.length; i++){
|
|
str[i] = str[i].split('');
|
|
str[i][0] = str[i][0].toUpperCase();
|
|
str[i] = str[i].join('');
|
|
}
|
|
return str.join(' ');
|
|
}
|
|
function getTitle(){
|
|
var comp = myPalette.comp;
|
|
var title_layer = comp.layer("TITLE");
|
|
var title = title_layer.sourceText.value.text;
|
|
|
|
return title
|
|
}
|
|
function formatTitle( s ){
|
|
title = titleCase( s );
|
|
var exp = new RegExp(" " , 'g');
|
|
title = title.replace(" ","");
|
|
title = title.replace(exp, '');
|
|
|
|
return title;
|
|
}
|
|
function generateName(){
|
|
var name = getTitle();
|
|
var extra = genExtraCode ();
|
|
var date = genDateCode () ;
|
|
var nAvatars = myPalette.grp.avatar.avatar.avatarOption.selection.index + 1;
|
|
if ( nAvatars > 1 )
|
|
{
|
|
nAvatars = "_"+String(nAvatars) + "xAvatars"
|
|
}
|
|
else
|
|
{
|
|
nAvatars = ""
|
|
}
|
|
if ( date != "" )
|
|
{
|
|
date = "_" + date;
|
|
}
|
|
|
|
if ( extra != "undefined" )
|
|
{
|
|
extra = "_" + extra;
|
|
}
|
|
else
|
|
{
|
|
extra = "";
|
|
}
|
|
|
|
name = formatTitle ( name ) + nAvatars + extra + date + "_" +genTimeCode ();
|
|
return name
|
|
}
|
|
function genExtraCode(){
|
|
if (!myPalette.grp.opt.extraSelected.value){
|
|
return "undefined";
|
|
}
|
|
|
|
value = String(myPalette.grp.extra.extra.extraString.text);
|
|
|
|
return value;
|
|
}
|
|
function genDateCode(){
|
|
|
|
var day = String(myPalette.grp.tunein.day.dayOption.selection).substr(0,3);
|
|
|
|
if (!myPalette.grp.opt.dateSelected.value){
|
|
return day;
|
|
}
|
|
|
|
|
|
var month = String(myPalette.grp.tuneindate.day.monthOption.selection).substr(0,3);
|
|
var day_of_week = String(myPalette.grp.tuneindate.day.dateOption.selection);
|
|
var ordinal = myPalette.getOrdinal( parseInt(myPalette.grp.tuneindate.day.dateOption.selection ) + 1 );
|
|
var date = ordinal;
|
|
|
|
|
|
|
|
var value = day + month + day_of_week + date ;
|
|
|
|
return value
|
|
}
|
|
function genTimeCode(){
|
|
var value = String(myPalette.grp.time.time_slot.timeOption.selection);
|
|
if( myPalette.grp.time.time_slot.half.value == true )
|
|
{
|
|
value+=":30";
|
|
}
|
|
if( myPalette.grp.time.time_slot.nightTime.value == true )
|
|
{
|
|
value+="p";
|
|
}
|
|
else
|
|
{
|
|
value+="a";
|
|
}
|
|
return value.replace(":",".")
|
|
}
|
|
function genColorCode(){
|
|
var id = String(myPalette.grp.match.title.paletteOption.selection);
|
|
cc = "";
|
|
switch ( id )
|
|
{
|
|
case "Blue_1":
|
|
cc = "BLU1";
|
|
break;
|
|
case "Blue_2":
|
|
cc = "BLU2";
|
|
break;
|
|
case "Blue_3":
|
|
cc = "BLU3";
|
|
break;
|
|
case "Gray":
|
|
cc = "GRY";
|
|
break;
|
|
case "Magenta":
|
|
cc = "MGN";
|
|
break;
|
|
case "Gold":
|
|
cc = "GLD"
|
|
break;
|
|
}
|
|
return cc;
|
|
}
|
|
function applyShowTitle( new_title ){
|
|
var comp = myPalette.comp;
|
|
var title_layer = comp.layer("TITLE");
|
|
var ctrl_layer = comp.layer("ctrl_bubble");
|
|
title_layer.sourceText.setValue( new_title );
|
|
|
|
width = title_layer.sourceRectAtTime(0, false).width;
|
|
var new_scale;
|
|
var new_center;
|
|
|
|
if ( width >= 1300 )
|
|
{
|
|
new_scale = (1500/width)*100;
|
|
new_center = [787,540];
|
|
}
|
|
else if ( width > 640 )
|
|
{
|
|
new_scale = 100;
|
|
new_center = [960,540];
|
|
}
|
|
else
|
|
{
|
|
new_scale = 100;
|
|
new_center = [1040,540];
|
|
|
|
}
|
|
|
|
comp.layer("DONT_TOUCH_CTRL_CENTER")("Transform")("Position").setValue(new_center);
|
|
comp.layer("ctrl_bubble")("Transform")("Scale").setValue([new_scale,new_scale]);
|
|
ctrl_layer("Effects")("width")("Slider").setValue(width + 75);
|
|
}
|
|
var colors = {
|
|
gray : 0x2C313B,
|
|
purple : 0x7c36e1,
|
|
purple_dark : 0x5525ab,
|
|
yellow : 0xfffa38,
|
|
yellow_dark : 0xBBB900,
|
|
magenta : 0xE74DB7,
|
|
magenta_dark : 0xA93886,
|
|
cyan : 0x1BF0FF,
|
|
cyan_darl : 0x128DA6,
|
|
aqua_dark : 0x238573,
|
|
aqua : 0x288492,
|
|
aqua_light : 0x3ED8BB,
|
|
bluish_gray : 0x2A3B52
|
|
}
|
|
function buildUI(thisObj) {
|
|
|
|
if ( getComp("DC_GEN_EP_FullFrame_##Base##_10s") == null )
|
|
{
|
|
alert("Make sure to have the DC_GEN_EP_Horiz Template project open before running the script");
|
|
return;
|
|
}
|
|
|
|
if (thisObj instanceof Panel) {
|
|
var myPal = thisObj;
|
|
} else {
|
|
var myPal = new Window("palette",tcd_scriptName + " v" + tcd_version,undefined, {resizeable:true});
|
|
}
|
|
|
|
if (myPal != null) {
|
|
|
|
/*
|
|
timeSelected: Checkbox { text: 'Time', alignment: ['fill','center']}, \
|
|
daySelected: Checkbox { text: 'Day', alignment: ['left','center']}, \
|
|
*/
|
|
|
|
var res =
|
|
"group { \
|
|
alignment: ['fill','fill'], \
|
|
alignChildren: ['left','top'], \
|
|
orientation: 'column', \
|
|
avatar: Group { \
|
|
alignment: ['fill','top'], \
|
|
alignChildren: ['fill','top'], \
|
|
avatar: Group {\
|
|
alignment: ['left','fill'], \
|
|
alignChildren: ['left','top'], \
|
|
orientation: 'column', \
|
|
avatarText: StaticText {text:'# Avatars', alignment: ['left','center']}, \
|
|
avatarOption: DropDownList {alignment: ['left','center']}, \
|
|
}\
|
|
a1: Group {\
|
|
alignment: ['fill','fill'], \
|
|
alignChildren: ['left','top'], \
|
|
orientation: 'column', \
|
|
avatarText: StaticText {text:'A1 Image', alignment: ['left','center']}, \
|
|
avatarOption: DropDownList {alignment: ['fill','center']}, \
|
|
}\
|
|
a2: Group {\
|
|
alignment: ['fill','fill'], \
|
|
alignChildren: ['left','top'], \
|
|
orientation: 'column', \
|
|
avatarText: StaticText {text:'A2 Image', alignment: ['left','center']}, \
|
|
avatarOption: DropDownList {alignment: ['fill','center']}, \
|
|
}\
|
|
a3: Group {\
|
|
alignment: ['fill','fill'], \
|
|
alignChildren: ['left','top'], \
|
|
orientation: 'column', \
|
|
avatarText: StaticText {text:'A3 Image', alignment: ['left','center']}, \
|
|
avatarOption: DropDownList {alignment: ['fill','center']}, \
|
|
}\
|
|
a4: Group {\
|
|
alignment: ['fill','fill'], \
|
|
alignChildren: ['left','top'], \
|
|
orientation: 'column', \
|
|
avatarText: StaticText {text:'A4 Image', alignment: ['left','center']}, \
|
|
avatarOption: DropDownList {alignment: ['fill','center']}, \
|
|
}\
|
|
} \
|
|
title: Group { \
|
|
alignment: ['fill','top'], \
|
|
alignChildren: ['fill','top'], \
|
|
orientation:'column', \
|
|
title: Group { \
|
|
alignment: ['fill','top'], \
|
|
alignChildren: ['fill','top'], \
|
|
titleText: StaticText {text:'Show Title', alignment: ['left','center']}, \
|
|
titleString: EditText {text:'PLACEHOLDER TITLE',alignment: ['fill','center']}, \
|
|
isEvent: Checkbox {text:'Event', alignment: ['right','center']}, \
|
|
} \
|
|
} \
|
|
opt: Group { \
|
|
dateSelected: Checkbox { text: 'Date', alignment: ['left','center']}, \
|
|
extraSelected: Checkbox { text: 'Extra', alignment: ['left','center']}, \
|
|
},\
|
|
time: Group { \
|
|
alignment: ['fill','top'], \
|
|
alignChildren: ['fill','top'], \
|
|
orientation:'column', \
|
|
time_slot: Group { \
|
|
alignment: ['fill','top'], \
|
|
alignChildren: ['fill','top'], \
|
|
timeText: StaticText {text:'Time', alignment: ['left','center']}, \
|
|
timeOption: DropDownList {alignment: ['fill','center']}, \
|
|
half: Checkbox {text:':30', alignment: ['right','center']}, \
|
|
nightTime: Checkbox {text:'PM', alignment: ['right','center']}, \
|
|
} \
|
|
} \
|
|
tunein: Group { \
|
|
alignment: ['fill','top'], \
|
|
alignChildren: ['fill','top'], \
|
|
orientation:'column', \
|
|
day: Group { \
|
|
alignment: ['fill','top'], \
|
|
alignChildren: ['fill','top'], \
|
|
dayText: StaticText {text:'Day of the Week', alignment: ['left','center']}, \
|
|
dayOption: DropDownList {text:'PM',alignment: ['fill','center']}, \
|
|
dayShort: Checkbox {text:'Short', alignment: ['right','center']}, \
|
|
} \
|
|
} \
|
|
tuneindate: Group { \
|
|
alignment: ['fill','top'], \
|
|
alignChildren: ['fill','top'], \
|
|
orientation:'column', \
|
|
day: Group { \
|
|
alignment: ['fill','top'], \
|
|
alignChildren: ['fill','top'], \
|
|
monthText: StaticText {text:'Month', alignment: ['left','center']}, \
|
|
monthOption: DropDownList {alignment: ['fill','center']}, \
|
|
dateText: StaticText {text:'Date', alignment: ['left','center']}, \
|
|
dateOption: DropDownList {text:'PM',alignment: ['fill','center']}, \
|
|
} \
|
|
} \
|
|
extra: Group { \
|
|
alignment: ['fill','top'], \
|
|
alignChildren: ['fill','top'], \
|
|
orientation:'column', \
|
|
extra: Group { \
|
|
alignment: ['fill','top'], \
|
|
alignChildren: ['fill','top'], \
|
|
extraText: StaticText {text:'Extra Text', alignment: ['left','center']}, \
|
|
extraString: EditText {text:'next',alignment: ['fill','center']}, \
|
|
} \
|
|
} \
|
|
doItBtn: Button {text: 'Apply to new Comp', alignment: ['center','top']} , \
|
|
}";
|
|
|
|
myPal.avatar_folder = getFolder("AVATAR_ICONS_1080x1080");
|
|
myPal.comp = getComp("DC_GEN_EP_FullFrame_##Base##_10s");
|
|
myPal.ctrl_day_layer = myPal.comp.layer("DAY_CTRL");
|
|
myPal.ctrl_time_layer = myPal.comp.layer("TIME_CTRL");
|
|
myPal.ctrl_extra_layer = myPal.comp.layer("EXTRA_CTRL");
|
|
myPal.ctrl_title_layer = myPal.comp.layer("TITLE_CTRL");
|
|
myPal.day_layer = myPal.comp.layer("DAY");
|
|
myPal.time_layer = myPal.comp.layer("TIME");
|
|
myPal.extra_layer = myPal.comp.layer("EXTRA");
|
|
myPal.title_layer = myPal.comp.layer("TITLE");
|
|
myPal.title_bubble_layer = myPal.comp.layer("tittle_bubble");
|
|
myPal.title_loc_layer = myPal.comp.layer("CTRL_Center_Title");
|
|
myPal.tunein_loc_layer = myPal.comp.layer("CTRL_Center_Tunein");
|
|
myPal.debug_width = myPal.comp.layer("debug.width");
|
|
myPal.debug_width_2 = myPal.comp.layer("debug.width 2");
|
|
myPal.ctrl_info = myPal.comp.layer("CTRL_Info");
|
|
|
|
myPal.avatar_layers =
|
|
{
|
|
a1: [
|
|
myPal.comp.layer("1A_A1")
|
|
],
|
|
a2: [
|
|
myPal.comp.layer("2A_A1"),
|
|
myPal.comp.layer("2A_A2"),
|
|
],
|
|
a3: [
|
|
myPal.comp.layer("3A_A1"),
|
|
myPal.comp.layer("3A_A2"),
|
|
myPal.comp.layer("3A_A3"),
|
|
],
|
|
a4: [
|
|
myPal.comp.layer("4A_A1"),
|
|
myPal.comp.layer("4A_A2"),
|
|
myPal.comp.layer("4A_A3"),
|
|
myPal.comp.layer("4A_A4"),
|
|
]
|
|
}
|
|
|
|
|
|
myPal.extra_layers = [
|
|
myPal.comp.layer("EXTRA"),
|
|
myPal.comp.layer("bubble_connect_extra"),
|
|
myPal.comp.layer("bubble_extra"),
|
|
myPal.comp.layer("bubble_extra_overlap"),
|
|
myPal.comp.layer("disney_logo_extra"),
|
|
myPal.comp.layer("bubble_disney_logo_extra")
|
|
];
|
|
myPal.not_extra_layers = [
|
|
myPal.comp.layer("disney_logo"),
|
|
myPal.comp.layer("bubble_disney_logo")
|
|
];
|
|
|
|
myPal.fold_width = 100;
|
|
myPal.disney_logo = 272;
|
|
myPal.days_of_week = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday", "Today", "Tomorrow", "Tonight"];
|
|
myPal.time_slots = [ 1,2,3,4,5,6,7,8,9,10,11,12 ];
|
|
myPal.months = [ "January","February","March","April","May","June","July","August","September","October","November","December"];
|
|
myPal.timeMargin = 30;
|
|
myPal.dayMargin = 95;
|
|
myPal.extraHorizOffset = 40;
|
|
myPal.yaam = -120;
|
|
|
|
myPal.avatarNumOpt = [0,2,3,4];
|
|
|
|
|
|
//myPal Methods -->
|
|
myPal.getLayerWidth = function( textLayerObject ){
|
|
var width = textLayerObject.sourceRectAtTime(0, false).width;
|
|
return width;
|
|
}
|
|
myPal.updateFont = function ( opt ){
|
|
/*
|
|
var animators = [
|
|
myPal.day_layer("Text")("Animators")("ordinal"),
|
|
myPal.day_layer("Text")("Animators")("ordinal_offset"),
|
|
myPal.day_layer("Text")("Animators")("smaller"),
|
|
myPal.time_layer("Text")("Animators")("smaller"),
|
|
myPal.time_layer("Text")("Animators")("smaller"),
|
|
myPal.extra_layer("Text")("Animators")("smaller")
|
|
];
|
|
*/
|
|
var animators = [
|
|
myPal.day_layer("Text")("Animators")("smaller"),
|
|
myPal.time_layer("Text")("Animators")("smaller"),
|
|
myPal.time_layer("Text")("Animators")("smaller"),
|
|
myPal.extra_layer("Text")("Animators")("smaller")
|
|
];
|
|
for ( var i = 0; i < animators.length ; i ++ )
|
|
{
|
|
animators[i].enabled = opt;
|
|
}
|
|
|
|
/*
|
|
var ordinal = myPal.getOrdinal( parseInt(myPal.grp.tuneindate.day.dateOption.selection ) + 1 );
|
|
|
|
if( ordinal == "nd" ){
|
|
myPal.day_layer("Text")("Animators")("nd").enabled = true;
|
|
}
|
|
else
|
|
{
|
|
myPal.day_layer("Text")("Animators")("nd").enabled = false;
|
|
}
|
|
*/
|
|
|
|
}
|
|
myPal.setFontSize = function ( value ){
|
|
myPal.day_layer.sourceText.value.fontSize = value;
|
|
myPal.time_layer.sourceText.value.fontSize = value;
|
|
myPal.extra_layer.sourceText.value.fontSize = value;
|
|
}
|
|
myPal.updateTitleBar = function(){
|
|
var s = myPal.ctrl_title_layer.transform.scale[0];
|
|
s = myPal.ctrl_title_layer.transform.scale.value[0]/100;
|
|
var new_width = ( (myPal.timeMargin*4) + myPal.getLayerWidth( myPal.title_layer ) )* s;
|
|
myPal.title_bubble_layer("Effects")("width")("Slider").setValue( new_width );
|
|
myPal.updateTitle();
|
|
}
|
|
myPal.getTuneinWidth = function (){
|
|
var time_width = myPal.getLayerWidth( myPal.time_layer );
|
|
var day_width = myPal.getLayerWidth( myPal.day_layer );
|
|
//var disney_logo = 272;
|
|
var extra_width = myPal.getLayerWidth( myPal.extra_layer );
|
|
var connecting_width = 36;
|
|
var value;
|
|
|
|
if ( !myPal.grp.opt.extraSelected.value )
|
|
{
|
|
value = time_width + day_width + (myPal.timeMargin* 2.25 )+ myPal.disney_logo;
|
|
}
|
|
else
|
|
{
|
|
value = time_width + day_width + (myPal.timeMargin* 2.25 )+ myPal.disney_logo + extra_width + (myPal.timeMargin*2.60) + connecting_width;
|
|
}
|
|
|
|
return value;
|
|
}
|
|
myPal.getTuneinNoLogoWidth = function (){
|
|
var time_width = myPal.getLayerWidth( myPal.time_layer );
|
|
var day_width = myPal.getLayerWidth( myPal.day_layer );
|
|
var disney_logo = 272;
|
|
var extra_width = myPal.getLayerWidth( myPal.extra_layer );
|
|
var connecting_width = 36;
|
|
var value;
|
|
|
|
if ( !myPal.grp.opt.extraSelected.value )
|
|
{
|
|
value = time_width + day_width + (myPal.timeMargin* 2.25 );
|
|
}
|
|
else
|
|
{
|
|
value = time_width + day_width + (myPal.timeMargin* 2.25 ) + extra_width + (myPal.timeMargin*2.60) + connecting_width;
|
|
}
|
|
|
|
return value;
|
|
}
|
|
myPal.getTitleWidth = function()
|
|
{
|
|
var rect_width = myPal.title_bubble_layer("Contents")("bubble_animation")("Contents")("Rectangle Path 1")("Size").value[0];
|
|
var rect_roundness = myPal.title_bubble_layer("Contents")("bubble_animation")("Contents")("Rectangle Path 1")("Roundness").value;
|
|
var value = rect_width - rect_roundness;
|
|
|
|
return value;
|
|
}
|
|
myPal.updateBars = function(){
|
|
var time_width = myPal.getLayerWidth( myPal.time_layer );
|
|
var day_width = myPal.getLayerWidth( myPal.day_layer );
|
|
var extra_width = myPal.getLayerWidth( myPal.extra_layer );
|
|
var title_width = myPal.getLayerWidth( myPal.title_layer );
|
|
myPal.ctrl_time_layer("Effects")("date_bubble_length")("Slider").setValue(time_width+day_width+(myPal.timeMargin*2.25));
|
|
myPal.ctrl_extra_layer("Effects")("extra_bubble_length")("Slider").setValue( extra_width + (myPal.timeMargin*2.60) );
|
|
myPal.ctrl_day_layer("Transform")("Position").setValue(myPal.ctrl_time_layer("Transform")("Position").value + [-time_width -myPal.timeMargin ,0,0]);
|
|
myPal.ctrl_extra_layer("Transform")("Position").setValue(myPal.ctrl_day_layer("Transform")("Position").value + [-day_width -myPal.dayMargin,myPal.extraHorizOffset ,0]);
|
|
myPal.debug_width("Effects")("width")("Slider").setValue( myPal.getTuneinNoLogoWidth() );
|
|
myPal.debug_width_2("Effects")("width")("Slider").setValue( myPal.getTitleWidth() );
|
|
//myPal.ctrl_day_layer("Effects")("extrude_mult")("Slider").setValue(100);
|
|
}
|
|
myPal.getOrdinal = function(n){
|
|
var ordinal = "th";
|
|
|
|
var cyphers = String(n);
|
|
var last_digit = parseInt(cyphers[cyphers.length-1]);
|
|
|
|
if ( (n < 4) || ( n > 20 ) ){
|
|
if ( last_digit == "1"){
|
|
ordinal = "st";
|
|
}
|
|
else if( last_digit == "2"){
|
|
ordinal = "nd";
|
|
}
|
|
else if( last_digit == "3"){
|
|
ordinal = "rd";
|
|
}
|
|
}
|
|
|
|
return ordinal;
|
|
}
|
|
myPal.getDate = function(){
|
|
var date;
|
|
return date;
|
|
}
|
|
myPal.updateNumAvatarOptions = function(){
|
|
var numAvatars = myPal.grp.avatar.avatar.avatarOption.selection.index + 1;
|
|
|
|
//HORRIBLE SWITCH
|
|
//debug.log( numAvatars );
|
|
|
|
if ( numAvatars == 1)
|
|
{
|
|
//myPal.grp.avatar.a1.enabled = true ;
|
|
myPal.grp.avatar.a1.enabled = false ;
|
|
myPal.grp.avatar.a2.enabled = false ;
|
|
myPal.grp.avatar.a3.enabled = false ;
|
|
myPal.grp.avatar.a4.enabled = false ;
|
|
}
|
|
else if ( numAvatars == 2)
|
|
{
|
|
myPal.grp.avatar.a1.enabled = true ;
|
|
myPal.grp.avatar.a2.enabled = true ;
|
|
myPal.grp.avatar.a3.enabled = false ;
|
|
myPal.grp.avatar.a4.enabled = false ;
|
|
}
|
|
else if ( numAvatars == 3)
|
|
{
|
|
myPal.grp.avatar.a1.enabled = true ;
|
|
myPal.grp.avatar.a2.enabled = true ;
|
|
myPal.grp.avatar.a3.enabled = true ;
|
|
myPal.grp.avatar.a4.enabled = false ;
|
|
}
|
|
else if ( numAvatars == 4)
|
|
{
|
|
myPal.grp.avatar.a1.enabled = true ;
|
|
myPal.grp.avatar.a2.enabled = true ;
|
|
myPal.grp.avatar.a3.enabled = true ;
|
|
myPal.grp.avatar.a4.enabled = true ;
|
|
}
|
|
myPal.populateAvatars();
|
|
}
|
|
myPal.populateAvatars = function(){
|
|
var avatarOptions =
|
|
[
|
|
myPal.grp.avatar.a1.avatarOption,
|
|
myPal.grp.avatar.a2.avatarOption,
|
|
myPal.grp.avatar.a3.avatarOption,
|
|
myPal.grp.avatar.a4.avatarOption
|
|
];
|
|
for ( var i = 0 ; i < avatarOptions.length ; i ++ ){
|
|
var ao = avatarOptions[i];
|
|
ao.removeAll();
|
|
for ( var j = 0 ; j < myPal.avatars.length ; j ++ ){
|
|
ao.add("item", myPal.avatars[j].name );
|
|
}
|
|
ao.selected = 0;
|
|
|
|
}
|
|
}
|
|
myPal.updateAvatarsFromFolder = function(){
|
|
myPal.avatars = [];
|
|
if ( myPal.avatar_folder != null ){
|
|
for ( i = 1 ; i <= myPal.avatar_folder.numItems ; i ++ ){
|
|
myPal.avatars.push( myPal.avatar_folder.item(i) );
|
|
}
|
|
}
|
|
}
|
|
myPal.updateAvatarLayers = function(){
|
|
var numAvatars = myPal.grp.avatar.avatar.avatarOption.selection.index + 1;
|
|
var index = 0;
|
|
for ( var i in myPal.avatar_layers )
|
|
{
|
|
index++;
|
|
layers = myPal.avatar_layers[i];
|
|
for ( var j = 0 ; j < layers.length ; j ++ )
|
|
{
|
|
var layer = layers[j];
|
|
if ( numAvatars != 1 ){
|
|
layer.enabled = ( index == numAvatars );
|
|
}
|
|
else
|
|
{
|
|
layer.enabled = false;
|
|
}
|
|
}
|
|
}
|
|
if ( numAvatars != 1 ){
|
|
myPal.ctrl_info.transform.position.setValue([0,0,0]);
|
|
}
|
|
else
|
|
{
|
|
myPal.ctrl_info.transform.position.setValue([0,-160,0]);
|
|
}
|
|
}
|
|
myPal.updateTime = function(){
|
|
var value = String(myPal.grp.time.time_slot.timeOption.selection);
|
|
if( myPal.grp.time.time_slot.half.value == true )
|
|
{
|
|
value+=":30";
|
|
}
|
|
if( myPal.grp.time.time_slot.nightTime.value == true )
|
|
{
|
|
value+="p";
|
|
}
|
|
else
|
|
{
|
|
value+="a[";
|
|
}
|
|
myPal.applyTime( value );
|
|
}
|
|
myPal.updateDay = function(){
|
|
var value = String(myPal.grp.tunein.day.dayOption.selection);
|
|
myPal.applyDay( value );
|
|
}
|
|
myPal.updateDate = function(){
|
|
if (!myPal.grp.opt.dateSelected.value){
|
|
//myPal.updateDay();
|
|
return;
|
|
}
|
|
var day_index = myPal.grp.tunein.day.dayOption.selection.index;
|
|
var short_day = String(myPal.grp.tunein.day.dayOption.selection).substr(0,3);
|
|
var day = String( myPal.grp.tunein.day.dayOption.selection );
|
|
var month = String(myPal.grp.tuneindate.day.monthOption.selection);
|
|
var day_of_week = String(myPal.grp.tuneindate.day.dateOption.selection);
|
|
var date_int = parseInt(myPal.grp.tuneindate.day.dateOption.selection ) ;
|
|
var ordinal = myPal.getOrdinal( date_int );
|
|
//var date = ordinal;
|
|
|
|
var date = date_int;
|
|
|
|
if ( myPal.grp.tunein.day.dayShort.value ){
|
|
day = short_day;
|
|
}
|
|
|
|
month_space = " ";
|
|
if ( day_index <= 6 )
|
|
{
|
|
month_space = "," + month_space;
|
|
}
|
|
|
|
var value = day + month_space + month + " " + day_of_week ;
|
|
|
|
myPal.applyDay( value );
|
|
//myPal.ctrl_day_layer("Effects")("extrude_mult")("Slider").setValue(0);
|
|
}
|
|
myPal.updateEvent = function(){
|
|
var isEvent = myPal.grp.title.title.isEvent.value;
|
|
myPal.applyEvent( isEvent );
|
|
}
|
|
myPal.updateExtra = function(){
|
|
if (!myPal.grp.opt.extraSelected.value){
|
|
}
|
|
else
|
|
{
|
|
var value = String( myPal.grp.extra.extra.extraString.text ).toLowerCase();
|
|
myPal.applyExtra( value );
|
|
}
|
|
}
|
|
myPal.updateTuneinY = function(){
|
|
debug.log("updateey");
|
|
var tuneinW = myPal.getTuneinWidth();
|
|
var titleW = myPal.getTitleWidth();
|
|
var tuneinWider = tuneinW > titleW;
|
|
|
|
var offset;
|
|
var y;
|
|
|
|
if ( ( myPal.grp.extra.enabled ) || ((tuneinWider && myPal.grp.extra.enabled )) ){
|
|
y = 861;
|
|
}
|
|
else
|
|
{
|
|
y = 904;
|
|
}
|
|
|
|
|
|
myPal.tunein_loc_layer.transform.position.setValue( [myPal.tunein_loc_layer.transform.position.value[0],y])
|
|
|
|
}
|
|
|
|
myPal.updateTitles = function()
|
|
{
|
|
var tuneinW = myPal.getTuneinWidth();
|
|
var titleW = myPal.getTitleWidth();
|
|
var d = (tuneinW - titleW);
|
|
var offset = 0;
|
|
if ( Math.abs(d) < 150 )
|
|
{
|
|
debug.log("CASO:"+ String(d));
|
|
offset = Math.abs(d)/2;
|
|
}
|
|
else
|
|
{
|
|
debug.log("NOT:"+ String(d));
|
|
}
|
|
var tuneinWider = tuneinW > titleW;
|
|
|
|
if ( tuneinWider )
|
|
{
|
|
|
|
myPal.centerTuneIn( offset );
|
|
var margin = myPal.tunein_loc_layer("Effects")("margin")("Slider").value;
|
|
var x = myPal.tunein_loc_layer.transform.position.value[0];
|
|
myPal.positionTitle( x - myPal.getTuneinNoLogoWidth() -margin - myPal.fold_width );
|
|
}
|
|
else
|
|
{
|
|
myPal.centerTitle( offset );
|
|
var tuneinWidth = myPal.getTuneinWidth();
|
|
var title_x = myPal.title_loc_layer.transform.position.value[0];
|
|
var fold_width = myPal.fold_width;
|
|
myPal.positionTunein( title_x + fold_width + tuneinWidth + 40 );
|
|
|
|
}
|
|
|
|
myPal.updateTuneinY();
|
|
}
|
|
myPal.updateTitle = function(){
|
|
|
|
var value = String( myPal.grp.title.title.titleString.text ).toUpperCase();
|
|
myPal.applyTitle( value );
|
|
}
|
|
myPal.updateText = function(){
|
|
|
|
myPal.updateFont( myPal.grp.opt.dateSelected.value );
|
|
|
|
if( myPal.grp.opt.dateSelected.value ){
|
|
myPal.ctrl_day_layer("Effects")("extrude_mult")("Slider").setValue(0);
|
|
}
|
|
else
|
|
{
|
|
myPal.ctrl_day_layer("Effects")("extrude_mult")("Slider").setValue(100);
|
|
}
|
|
}
|
|
|
|
myPal.updateVisibility = function(){
|
|
for ( var i = 0 ; i < myPal.extra_layers.length ; i ++ )
|
|
{
|
|
myPal.extra_layers[i].enabled = myPal.grp.opt.extraSelected.value ;
|
|
}
|
|
for ( var i = 0 ; i < myPal.not_extra_layers.length ; i ++ )
|
|
{
|
|
myPal.not_extra_layers[i].enabled = !myPal.grp.opt.extraSelected.value ;
|
|
}
|
|
}
|
|
myPal.updateAll = function (){
|
|
myPal.updateNumAvatarOptions();
|
|
myPal.updateTitle();
|
|
myPal.updateEvent();
|
|
myPal.updateTitleBar();
|
|
myPal.updateTime();
|
|
myPal.updateDay();
|
|
myPal.updateDate();
|
|
myPal.updateExtra();
|
|
myPal.updateText();
|
|
//myPal.updateScale();
|
|
myPal.updateBars();
|
|
myPal.updateTuneinY();
|
|
myPal.updateVisibility();
|
|
myPal.updateAvatarLayers();
|
|
myPal.updateTitles();
|
|
//debug.log( "Updating: " + String(debug.updateN));
|
|
}
|
|
myPal.applyTime = function( s ){
|
|
app.beginUndoGroup("applyTime");
|
|
|
|
//myPal.updateBars();
|
|
|
|
var singleton = s.search("a") != -1;
|
|
myPal.time_layer("Text")("Animators")("singleton").enabled = singleton;
|
|
|
|
myPal.time_layer.sourceText.setValue( s );
|
|
app.endUndoGroup();
|
|
};
|
|
myPal.applyDay = function( s ){
|
|
app.beginUndoGroup("applyDay");
|
|
myPal.day_layer.sourceText.setValue( s );
|
|
|
|
//myPal.updateAll();
|
|
app.endUndoGroup();
|
|
};
|
|
myPal.applyEvent = function( value )
|
|
{
|
|
app.beginUndoGroup("applyDay");
|
|
var isEvent = value;
|
|
|
|
myPal.title_layer("Text")("Animators")("event").enabled = myPal.title_layer("Text")("Animators")("event_2").enabled = myPal.title_layer("Text")("Animators")("event_3").enabled = myPal.title_layer("Text")("Animators")("event_4").enabled = isEvent;
|
|
|
|
var s = "Do Not Touch";
|
|
|
|
for (var i = 0 ; i < 5 ; i++ ){
|
|
myPal.title_layer("Effects")(s).enabled = isEvent;
|
|
s+="-";
|
|
}
|
|
|
|
myPal.title_layer("Effects")("---------------").enabled = isEvent;
|
|
app.endUndoGroup();
|
|
}
|
|
myPal.applyExtra = function( s ){
|
|
app.beginUndoGroup("applyExtra");
|
|
myPal.extra_layer.sourceText.setValue( s );
|
|
//myPal.updateBars();
|
|
app.endUndoGroup();
|
|
}
|
|
myPal.positionLayer = function( layer , x_coord ){
|
|
var orig_loc = layer.transform.position;
|
|
var coord = [ x_coord , orig_loc.value[1] ];
|
|
layer.transform.position.setValue( coord );
|
|
}
|
|
myPal.positionTitle = function( x_coord ){
|
|
myPal.positionLayer( myPal.title_loc_layer , x_coord );
|
|
}
|
|
myPal.positionTunein = function( x_coord ){
|
|
myPal.positionLayer( myPal.tunein_loc_layer , x_coord );
|
|
}
|
|
myPal.centerTitle = function( offset ){
|
|
var width = myPal.getLayerWidth( myPal.title_layer );
|
|
|
|
var new_scale;
|
|
|
|
var x_max = 1600 ;
|
|
if ( width >= x_max )
|
|
{
|
|
new_scale = x_max / width * 100 ;
|
|
}
|
|
else
|
|
{
|
|
new_scale = 100;
|
|
}
|
|
|
|
var old_pos = myPal.title_loc_layer.transform.position.value;
|
|
var center = (width/2) * (new_scale/100);
|
|
var new_pos = [ (((myPal.comp.width)/2) - center - 30) + offset ,old_pos[1]];
|
|
|
|
app.beginUndoGroup(this);
|
|
myPal.ctrl_title_layer.transform.scale.setValue( [ new_scale, new_scale ]);
|
|
myPal.title_loc_layer.transform.position.setValue( new_pos );
|
|
app.endUndoGroup();
|
|
}
|
|
myPal.centerTuneIn = function( offset ){
|
|
|
|
var width = myPal.getTuneinWidth();
|
|
|
|
var old_pos = [960,861];
|
|
var center = (-width/2);
|
|
var new_pos = [ (((myPal.comp.width)/2) - center ) + offset ,old_pos[1]];
|
|
app.beginUndoGroup(this);
|
|
myPal.tunein_loc_layer.transform.position.setValue( new_pos );
|
|
app.endUndoGroup();
|
|
}
|
|
myPal.applyTitle = function( s ){
|
|
app.beginUndoGroup("applyTitle");
|
|
|
|
|
|
myPal.title_layer.sourceText.setValue( s );
|
|
|
|
//myPal.centerTitle();
|
|
|
|
//myPal.updateBars();
|
|
app.endUndoGroup();
|
|
}
|
|
//myPal Methods <--
|
|
|
|
myPal.grp = myPal.add(res);
|
|
//populate number of avatars option
|
|
|
|
for ( var i = 0 ; i < myPal.avatarNumOpt.length; i ++ ) {
|
|
var item = myPal.avatarNumOpt[i];
|
|
myPal.grp.avatar.avatar.avatarOption.add("item",item );
|
|
}
|
|
myPal.grp.avatar.avatar.avatarOption.selection = myPal.avatarNumOpt.length -1;
|
|
|
|
//populate days_of the week
|
|
for ( var i = 0 ; i < myPal.days_of_week.length; i ++ ) {
|
|
myPal.grp.tunein.day.dayOption.add("item", myPal.days_of_week[i]);
|
|
}
|
|
myPal.grp.tunein.day.dayOption.selection = 0;
|
|
myPal.grp.tunein.day.dayOption.preferredSize.width = 75;
|
|
|
|
//populate time_slots
|
|
for ( var i = 0 ; i < myPal.time_slots.length; i ++ ) {
|
|
myPal.grp.time.time_slot.timeOption.add("item", myPal.time_slots[i]);
|
|
}
|
|
myPal.grp.time.time_slot.timeOption.selection = 0;
|
|
myPal.grp.time.time_slot.timeOption.preferredSize.width = 75;
|
|
|
|
//populate moths
|
|
for ( var i = 0 ; i < myPal.months.length; i ++ ) {
|
|
myPal.grp.tuneindate.day.monthOption.add("item", myPal.months[i]);
|
|
}
|
|
myPal.grp.tuneindate.day.monthOption.selection = 0;
|
|
myPal.grp.tuneindate.day.monthOption.preferredSize.width = 75;
|
|
|
|
//populate days_of month
|
|
for ( var i = 1 ; i <= 31; i ++ ) {
|
|
myPal.grp.tuneindate.day.dateOption.add("item", i );
|
|
}
|
|
myPal.grp.tuneindate.day.dateOption.selection = 0;
|
|
myPal.grp.tuneindate.day.dateOption.preferredSize.width = 75;
|
|
|
|
//set initial visibility options
|
|
|
|
myPal.grp.title.title.isEvent.value = myPal.grp.tuneindate.enabled = myPal.grp.tunein.day.dayShort.enabled = myPal.grp.extra.enabled = false;
|
|
|
|
// control possible options
|
|
|
|
myPal.grp.opt.dateSelected.onClick = function(){
|
|
myPal.grp.tuneindate.enabled = this.value;
|
|
myPal.grp.tunein.day.dayShort.enabled= this.value;
|
|
//myPal.comp.layer("")
|
|
myPal.updateAll();
|
|
}
|
|
myPal.grp.opt.extraSelected.onClick = function(){
|
|
myPal.grp.extra.enabled = this.value;
|
|
myPal.updateAll();
|
|
}
|
|
myPal.grp.title.title.isEvent.onClick = function(){
|
|
|
|
var isEvent = myPal.grp.title.title.isEvent.value;
|
|
|
|
var value;
|
|
if ( isEvent ){
|
|
value = "Event title";
|
|
}
|
|
else
|
|
{
|
|
value = "Show title";
|
|
}
|
|
|
|
myPal.grp.title.title.titleText.text = value;
|
|
|
|
myPal.updateAll();
|
|
}
|
|
//Assign Methods to UI
|
|
//Update on every UI change/click
|
|
myPal.grp.avatar.avatar.avatarOption.onChange = myPal.grp.tunein.day.dayShort.onClick = myPal.grp.title.title.titleString.onChanging = myPal.grp.extra.extra.extraString.onChanging = myPal.grp.time.time_slot.timeOption.onChange = myPal.grp.time.time_slot.half.onClick = myPal.grp.time.time_slot.nightTime.onClick = myPal.grp.tunein.day.dayOption.onChange = myPal.grp.tuneindate.day.dateOption.onChange = myPal.grp.tuneindate.day.monthOption.onChange = myPal.updateAll;
|
|
|
|
myPal.grp.avatar.a1.avatarOption.onChange = function(){
|
|
var a_layers = [ "a1","a2","a3","a4"];
|
|
for ( var i = 0; i < a_layers.length ; i ++ )
|
|
{
|
|
|
|
try {
|
|
var layer = myPal.avatar_layers[ a_layers[i] ][0];
|
|
layer.replaceSource( getItemByName( String(this.selection) ) ,false);
|
|
}
|
|
catch(err)
|
|
{
|
|
debug.log( String(err) );
|
|
}
|
|
}
|
|
}
|
|
myPal.grp.avatar.a2.avatarOption.onChange = function(){
|
|
var a_layers = [ "a2","a3","a4"];
|
|
for ( var i = 0; i < a_layers.length ; i ++ )
|
|
{
|
|
try {
|
|
var layer = myPal.avatar_layers[ a_layers[i] ][1];
|
|
layer.replaceSource( getItemByName( String(this.selection) ) ,false);
|
|
}
|
|
catch(err)
|
|
{
|
|
debug.log( String(err) );
|
|
}
|
|
}
|
|
}
|
|
myPal.grp.avatar.a3.avatarOption.onChange = function(){
|
|
var a_layers = [ "a3","a4"];
|
|
for ( var i = 0; i < a_layers.length ; i ++ )
|
|
{
|
|
try {
|
|
var layer = myPal.avatar_layers[ a_layers[i] ][2];
|
|
layer.replaceSource( getItemByName( String(this.selection) ) ,false);
|
|
}
|
|
catch(err)
|
|
{
|
|
debug.log( String(err) );
|
|
}
|
|
}
|
|
}
|
|
myPal.grp.avatar.a4.avatarOption.onChange = function(){
|
|
var a_layers = [ "a4"];
|
|
for ( var i = 0; i < a_layers.length ; i ++ )
|
|
{
|
|
try {
|
|
var layer = myPal.avatar_layers[ a_layers[i] ][3];
|
|
layer.replaceSource( getItemByName( String(this.selection) ) ,false);
|
|
}
|
|
catch(err)
|
|
{
|
|
debug.log( String(err) );
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
myPal.onDeactivate = function(){
|
|
myPal.updateAvatarsFromFolder();
|
|
//$.writeln("active");
|
|
}
|
|
|
|
myPal.onActivate = function(){
|
|
myPal.updateAvatarsFromFolder();
|
|
}
|
|
|
|
myPal.grp.doItBtn.onClick = function () {
|
|
var new_comp = myPal.comp.duplicate();
|
|
new_comp.name = myPal.comp.name.replace("##Base##",generateName());
|
|
}
|
|
|
|
myPal.layout.layout(true);
|
|
myPal.grp.avatar.preferredSize.width = 900;
|
|
myPal.layout.resize();
|
|
myPal.onResizing = myPal.onResize = function () {this.layout.resize();}
|
|
|
|
myPal.updateAvatarsFromFolder();
|
|
myPal.populateAvatars();
|
|
} //if (myPal != null)
|
|
return myPal;
|
|
}
|
|
|
|
//main
|
|
|
|
var myPalette = buildUI(this);
|
|
|
|
//var tcd_folderName, tcd_addFolder, tcd_origParentFolder, tcd_parentFolder, previousComps, previousFolders;
|
|
|
|
if (parseFloat(app.version) < 8) {
|
|
alert("This script requires Adobe After Effects CS3 or later.", tcd_scriptName);
|
|
} else {
|
|
if (myPalette != null && myPalette instanceof Window) {
|
|
//myPalette.center();
|
|
myPalette.show();
|
|
}
|
|
}
|
|
}
|