var doc = fl.getDocumentDOM();
fl.outputPanel.clear();
if (fl.getDocumentDOM() == null) {
fl.trace("Error: No document open.");
}
if(!doc.library.itemExists("TEMPLATE_ROUNDBOX")){
alert("The Template for this entry style does not yet exist. It will now be created.");
var lib = fl.getDocumentDOM().library;
lib.addNewItem('movie clip', "TEMPLATE_ROUNDBOX");
lib.editItem();
fl.getDocumentDOM().addNewRectangle({left:0, top:0, right:230, bottom:60}, 16);
fl.getDocumentDOM().setSelectionRect({left:-20, top:28, right:241, bottom:68}, true, true);
fl.getDocumentDOM().deleteSelection();
fl.getDocumentDOM().addNewLine({x:0, y:28.0}, {x:230, y:28.0});
fl.getDocumentDOM().setSelectionRect({left:-10.1, top:-10.2, right:235.1, bottom:59.1}, true, true);
fl.getDocumentDOM().setStroke('#000000', 1, 'solid');
fl.getDocumentDOM().setStrokePixelHint(true);
fl.getDocumentDOM().setStrokeScaleType('vertical');
fl.getDocumentDOM().setStrokeColor('#000000');
fl.getDocumentDOM().setSelectionRect({left:-16, top:-13, right:248, bottom:54}, true, true);
fl.getDocumentDOM().setFillColor('#990000');
fl.getDocumentDOM().setSelectionRect({left:-16, top:-13, right:248, bottom:54}, true, true);
fl.getDocumentDOM().convertToSymbol('movie clip', 'T_RBFLAG', 'top left');
fl.getDocumentDOM().library.setItemProperty('scalingGrid', true);
fl.getDocumentDOM().library.setItemProperty('scalingGridRect', {left:22, top:15, right:211, bottom:29});
fl.getDocumentDOM().setTransformationPoint({x:0, y:0});
fl.getDocumentDOM().getTimeline().setLayerProperty('name', 'Flag');
fl.getDocumentDOM().getTimeline().addNewLayer();
fl.getDocumentDOM().getTimeline().setLayerProperty('name', 'Date Text');
fl.getDocumentDOM().setFillColor('#ffffff');
fl.getDocumentDOM().addNewText({left:5, top:4.4, right:27.2, bottom:25.2});
fl.getDocumentDOM().setElementTextAttr('size', 15);
fl.getDocumentDOM().setElementTextAttr('face', 'Arial');
fl.getDocumentDOM().setElementProperty('autoExpand', true);
fl.getDocumentDOM().setTextString('Date Text');
fl.getDocumentDOM().selectNone();
fl.getDocumentDOM().getTimeline().addNewLayer();
fl.getDocumentDOM().getTimeline().setLayerProperty('name', 'Content Text');
fl.getDocumentDOM().setFillColor('#000000');
fl.getDocumentDOM().addNewText({left:5, top:31.3, right:27.2, bottom:55.1});
fl.getDocumentDOM().setElementTextAttr('size', 12);
fl.getDocumentDOM().setElementTextAttr('face', 'Arial');
fl.getDocumentDOM().setElementProperty('autoExpand', true);
fl.getDocumentDOM().setTextString('Content Text');
fl.getDocumentDOM().selectNone();
fl.getDocumentDOM().getTimeline().addNewLayer();
fl.getDocumentDOM().getTimeline().setLayerProperty('name', 'Content Box');
fl.getDocumentDOM().setStroke('#000000', 1, 'solid');
fl.getDocumentDOM().setStrokeColor('#000000');
var myFill = fl.getDocumentDOM().getCustomFill("toolbar");
myFill.color = '#FFFFFF';
myFill.style = "solid";
fl.getDocumentDOM().setCustomFill(myFill);
var myStroke = fl.getDocumentDOM().getCustomStroke("toolbar");
myStroke.color = "#000000";
fl.getDocumentDOM().setCustomStroke(myStroke);
fl.getDocumentDOM().addNewRectangle({left:0, top:0, right:230, bottom:56}, 16, false, false);
fl.getDocumentDOM().getTimeline().reorderLayer(0, 3, false);
fl.getDocumentDOM().getTimeline().reorderLayer(0, 2, false);
fl.getDocumentDOM().selectNone();
fl.getDocumentDOM().getTimeline().layers[3].frames[0].elements[0].selected = true;
fl.getDocumentDOM().setStrokePixelHint(true);
fl.getDocumentDOM().convertToSymbol('movie clip', 'T_RBCONTENT', 'top left');
fl.getDocumentDOM().library.setItemProperty('scalingGrid', true);
fl.getDocumentDOM().library.setItemProperty('scalingGridRect', {left:22, top:15, right:211, bottom:41});
fl.getDocumentDOM().setTransformationPoint({x:0, y:0});
fl.getDocumentDOM().library.newFolder("TimelineElements");
fl.getDocumentDOM().library.moveToFolder("TimelineElements", "T_RBCONTENT", true);
fl.getDocumentDOM().library.moveToFolder("TimelineElements", "T_RBFLAG", true);
alert("The template has now been created. Customize colors, but do not change the structure of the template. When finished, click the button again to create the timeline using this template.");
}
else{
var fileURI = fl.browseForFileURL("open", "Choose Your Timeline Data");
if(fileURI != undefined){
var str = FLfile.read ( fileURI);
var startYLocation = 50;
var startXLocation = 30;
var entryBuffer = 30; var currentXLocation = 0; var lastEntryWidth = 0; var area;
var newWidth;
var newHeight;
var dateTextWidth;
var newMatrix;
var templateName = "TEMPLATE_ROUNDBOX";
if (str) {
fl.trace("Importing data...");
var stringArray = str.split("\r\n");
for(var i=0; i < stringArray.length; i++){
if(stringArray[i] == ""){
stringArray.splice(i, 1);
}
}
var len = stringArray.length;
while(len--) stringArray[len] = stringArray[len].split("\t");
}else{
alert("File not found. Check your path again.");
}
for(var i=0; i < stringArray.length; i++){
fl.trace("currently unquoting " + stringArray[i][0]);
if(stringArray[i][0][0] == '"'){
stringArray[i][0] = stringArray[i][0].substring(1, stringArray[i][0].lastIndexOf('"'));
}
if(stringArray[i][1][0] == '"'){
stringArray[i][1] = stringArray[i][1].substring(1, stringArray[i][1].lastIndexOf('"'));
}
}
for(var row = 0; row < stringArray.length; row++){
var carryOn = false;
var itemExists = false;
var date = stringArray[row][0]; var itemName = date;
var content = stringArray[row][1];
if(doc.library.itemExists("Timeline Entries/" + itemName)){
var i = 2;
while(doc.library.itemExists("Timeline Entries/" + itemName)){
if(itemName.indexOf('_') != -1){
itemName = itemName.substring(0, itemName.indexOf('_'))
}
itemName = itemName + "_" + i;
fl.trace("itemName is now: " + itemName);
i++;
}
carryOn = true;
}
else{carryOn = true}
if(carryOn){
fl.getDocumentDOM().selectNone();
fl.getDocumentDOM().library.selectNone();
fl.getDocumentDOM().library.duplicateItem(templateName);
fl.getDocumentDOM().library.renameItem(itemName);
fl.getDocumentDOM().library.newFolder("Timeline Entries");
fl.getDocumentDOM().library.moveToFolder("Timeline Entries", itemName, true);
fl.getDocumentDOM().library.editItem("Timeline Entries/" + itemName);
fl.getDocumentDOM().getTimeline().layers[0].frames[0].elements[0].selected = true;
fl.getDocumentDOM().selection[0].setTextString(date);
dateTextWidth = fl.getDocumentDOM().selection[0].width;
fl.getDocumentDOM().selectNone();
fl.getDocumentDOM().getTimeline().layers[2].frames[0].elements[0].selected = true;
fl.getDocumentDOM().selection[0].setTextString(content);
area = fl.getDocumentDOM().selection[0].height * fl.getDocumentDOM ().selection[0].width;
newWidth = (Math.sqrt(area/.5));
fl.getDocumentDOM().setTextRectangle({left:0, top:0, right:newWidth, bottom:200}); newHeight = fl.getDocumentDOM().selection[0].height;
fl.getDocumentDOM().selectNone();
fl.getDocumentDOM().getTimeline().layers[1].frames[0].elements[0].selected = true;
fl.getDocumentDOM().setTransformationPoint({x:0, y:0});
if(dateTextWidth > newWidth)
fl.getDocumentDOM().selection[0].width = dateTextWidth + 10;
else
fl.getDocumentDOM().selection[0].width = newWidth + 10;
newHeight += fl.getDocumentDOM().selection[0].height;
fl.getDocumentDOM().selectNone();
fl.getDocumentDOM().getTimeline().layers[3].frames[0].elements[0].selected = true;
if(fl.getDocumentDOM ().selection.length > 1){
alert("Problem found. Either group your Content box or restructure your entry template.");
}
else{
fl.getDocumentDOM().setTransformationPoint({x:0, y:0});
if(dateTextWidth > newWidth)
fl.getDocumentDOM().selection[0].width = dateTextWidth + 10;
else
fl.getDocumentDOM().selection[0].width = newWidth + 10;
fl.getDocumentDOM ().selection[0].height = newHeight + 10;
fl.getDocumentDOM().selectNone();
}
fl.getDocumentDOM().exitEditMode();
currentXLocation += lastEntryWidth + entryBuffer;
fl.getDocumentDOM ().library.addItemToDocument({x:currentXLocation, y:startYLocation}, "Timeline Entries/" + itemName);
newMatrix = fl.getDocumentDOM().selection[0].matrix;
newMatrix.tx = currentXLocation;
newMatrix.ty = startYLocation;
fl.getDocumentDOM().selection[0].matrix = newMatrix;
lastEntryWidth = fl.getDocumentDOM().selection[0].width;
}
}
}
}