Project Template Syntax

From FDT Documentation

Revision as of 15:45, 27 February 2012 by Aklement (Talk | contribs)
Jump to: navigation, search
<a href="/docs/File:Template_properties.png" class="image"><img alt="Template properties.png" src="/w/images/0/08/Template_properties.png" width="600" height="150" /></a>

With FDT 4.2, the FDT team greatly expanded project templates and the syntax available in the description.xml.

Contents

Template Properties

description

Use this tag to add a text description to your template. This will appear in the text area below the template selector. You can even add in variables into your description and update the user about the current selection.

<a href="/docs/File:Description.png" class="image"><img alt="Description.png" src="/w/images/8/87/Description.png" width="600" height="150" /></a>
<span class="sc3"><span class="re1"><expressions<span class="re2">></span></span></span>
  <span class="sc3"><span class="re1"><expression</span> <span class="re0">name</span>=<span class="st0">"htmlDesc"</span> <span class="re0">value</span>=<span class="st0">"if(${htmlTemplate},</span>
<span class="sc3">'This HTML wrapper will create a simple HTML page with your SWF embedded in it.',' ')"</span> <span class="re2">/></span></span>
<span class="sc3"><span class="re1"></expressions<span class="re2">></span></span></span>	
<span class="sc3"><span class="re1"><description<span class="re2">></span></span></span>
	This template will create a project named '${projectName}' 
	which contains only the basic libraries to develop and compile a 
	pure AS3 project.${newline}${htmlDesc}
<span class="sc3"><span class="re1"></description<span class="re2">></span></span></span>


  • note: Use the ${newline} keyword to create a line break in your descriptions. In the above example, if the users sets true htmlDesc then the additional text will be added, on a new line, to the description.



name

The name of your template as it appears in the new project wizard.

<span class="sc3"><span class="re1"><name<span class="re2">></span></span></span>AS3<span class="sc3"><span class="re1"></name<span class="re2">></span></span></span>



version

FDT uses this element to keep track of the version for the template in case it is to be updated.

<span class="sc3"><span class="re1"><version<span class="re2">></span></span></span>2.0<span class="sc3"><span class="re1"></version<span class="re2">></span></span></span>



projectType

Each template needs to have its projectType defined. The project type is what determines which SDK &.SWCs are automatically added to your source path, your runtime, player and compiler arguments.

The project types are located in the projectTypes folder within the FDT folder.

<a href="/docs/File:Project_types.png" class="image"><img alt="Project types.png" src="/w/images/a/a3/Project_types.png" width="225" height="193" /></a>


Variables

variables

The variables tag is what defines templates in FDT 4.2 and later. When a template implements this element, you'll be able to create UI elements that allow you to customize your project before completion. Your template can only have one variables element. FDT will read the first and ignore any following variables elements.

<span class="sc3"><span class="re1"><variables<span class="re2">></span></span></span>
  <span class="sc3"><span class="re1"><primaryGroup</span> <span class="re0">label</span>=<span class="st0">"Template Options"</span><span class="re2">></span><span class="re1"></primaryGroup<span class="re2">></span></span></span>
<span class="sc3"><span class="re1"></variables<span class="re2">></span></span></span>



primaryGroup

When you create a variables element, you'll need to have a primaryGroup descendant element. Similar to variables, primaryGroup can only appear once inside of a variables element.

<span class="sc3"><span class="re1"><variables<span class="re2">></span></span></span>
  <span class="sc3"><span class="re1"><primaryGroup</span> <span class="re0">label</span>=<span class="st0">"Template Options"</span><span class="re2">></span></span>
    <span class="sc3"><span class="re1"><variable</span> <span class="re0">name</span>=<span class="st0">"addMetaData"</span> <span class="re0">label</span>=<span class="st0">"Add Metadata"</span> <span class="re0">default</span>=<span class="st0">"true"</span></span>
<span class="sc3">      <span class="re0">type</span>=<span class="st0">"boolean"</span> <span class="re2">/></span></span>
	<span class="sc3"><span class="re1"><group</span> <span class="re0">label</span>=<span class="st0">"Project Setup"</span><span class="re2">></span></span>
	  <span class="sc3"><span class="re1"><variable</span> <span class="re0">name</span>=<span class="st0">"addFla"</span> <span class="re0">label</span>=<span class="st0">"Add .fla"</span> <span class="re0">default</span>=<span class="st0">"true"</span></span>
<span class="sc3">		<span class="re0">type</span>=<span class="st0">"boolean"</span> <span class="re2">/></span></span>
	  <span class="sc3"><span class="re1"><variable</span> <span class="re0">name</span>=<span class="st0">"htmlTemplate"</span> <span class="re0">label</span>=<span class="st0">"Include HTML Wrapper"</span></span>
<span class="sc3">		<span class="re0">default</span>=<span class="st0">"false"</span> <span class="re0">type</span>=<span class="st0">"boolean"</span> <span class="re2">/></span></span>
	<span class="sc3"><span class="re1"></group<span class="re2">></span></span></span>
  <span class="sc3"><span class="re1"></primaryGroup<span class="re2">></span></span></span>
<span class="sc3"><span class="re1"></variables<span class="re2">></span></span></span>


Arguments:

  1. label : The label description that will appear at the top of the template variables UI section within the New Flash Project Wizard.
  2. description : An optional description for documentation purposes.
  • note: Other arguments, such as 'enableIf', are ignored.



group

Groups are used to organize similar variables together. They are also used to create popup buttons that will open a new window containing more UI elements. Groups can have more groups nested within them.


<span class="sc3"><span class="re1"><variables<span class="re2">></span></span></span>	
  <span class="sc3"><span class="re1"><primaryGroup</span> <span class="re0">label</span>=<span class="st0">"Options"</span> <span class="re0">description</span>=<span class="st0">"My Template Variables"</span> <span class="re2">></span></span>
    <span class="sc3"><span class="re1"><group</span> <span class="re0">label</span>=<span class="st0">"Unit Testing"</span><span class="re2">></span></span>
	  <span class="sc3"><span class="re1"><variable</span> <span class="re0">name</span>=<span class="st0">"addUnitTesting"</span> <span class="re0">label</span>=<span class="st0">"Add Unit Testing"</span></span>
<span class="sc3">	    <span class="re0">default</span>=<span class="st0">"false"</span> <span class="re0">type</span>=<span class="st0">"boolean"</span> <span class="re2">/></span></span>
 
<span class="sc-1"><!-- Create a popupButton that will open these UI variables in a new window --></span>
		<span class="sc3"><span class="re1"><group</span> <span class="re0">label</span>=<span class="st0">"More..."</span> <span class="re0">style</span>=<span class="st0">"popupButton"</span><span class="re2">></span></span>
	  	  <span class="sc3"><span class="re1"><variable</span> <span class="re0">name</span>=<span class="st0">"testFolderName"</span> <span class="re0">label</span>=<span class="st0">"Test Folder Name"</span></span>
<span class="sc3">			<span class="re0">default</span>=<span class="st0">"test-src"</span> <span class="re0">type</span>=<span class="st0">"string"</span> <span class="re2">/></span></span>
	      <span class="sc3"><span class="re1"><variable</span> <span class="re0">name</span>=<span class="st0">"addExample"</span> <span class="re0">label</span>=<span class="st0">"Add Unit Test Example"</span></span>
<span class="sc3">			<span class="re0">default</span>=<span class="st0">"false"</span> <span class="re0">type</span>=<span class="st0">"boolean"</span> <span class="re2">/></span></span>
	      <span class="sc3"><span class="re1"><variable</span> <span class="re0">name</span>=<span class="st0">"addJar"</span> <span class="re0">label</span>=<span class="st0">"Include flexUnitTasks.jar"</span></span>
<span class="sc3">					<span class="re0">default</span>=<span class="st0">"false"</span> <span class="re0">type</span>=<span class="st0">"boolean"</span> <span class="re2">/></span></span>
	    <span class="sc3"><span class="re1"></group<span class="re2">></span></span></span>
	<span class="sc3"><span class="re1"></group<span class="re2">></span></span></span>
  <span class="sc3"><span class="re1"></primaryGroup<span class="re2">></span></span></span>
<span class="sc3"><span class="re1"></variables<span class="re2">></span></span></span>


Arguments:

  1. label : The label description that will appear at the top group.
  2. description : An optional description for documentation purposes.
  3. enableIf : A boolean that can disable and enable the UI variables within the group.
  4. style : Use this to set if the group is to be a popup window. Possible values are popupButton and hyperlink.



variable

The most powerful part of project templates are the UI variables you can create. Each variable element you create will represent itself as an interactive UI component (e.g. text input, combo box, radio button). The value of the variable will be evaluated as you change it while configuring your template.

If you reference the variable in any files (ActionScript,XML,JavaScript,HTML....) and you choose to process those files (within a contentCreation element) the variable will be replaced with whatever value you have assigned it.

To reference a variable use a dollar sign and brackets, '${}', with your variable name between the brackets.

<span class="sc3"><span class="re1"><variables<span class="re2">></span></span></span>	
  <span class="sc3"><span class="re1"><primaryGroup</span> <span class="re0">label</span>=<span class="st0">"Options"</span><span class="re2">></span></span>
<span class="sc-1"><!-- This variable is being used to determine to add Metadata or not--></span>
    <span class="sc3"><span class="re1"><variable</span> <span class="re0">name</span>=<span class="st0">"addMetaData"</span> <span class="re0">label</span>=<span class="st0">"Add Metadata"</span> <span class="re0">default</span>=<span class="st0">"true"</span></span>
<span class="sc3">	  <span class="re0">type</span>=<span class="st0">"boolean"</span> <span class="re2">/></span></span>
<span class="sc-1"><!-- This variable is being used to setup the base class of my ActionScript file. </span>
<span class="sc-1">     In my ActionScript files'${classExtends}' will be replaced with whatever</span>
<span class="sc-1"> 	 value it is assigned here --></span>	
	<span class="sc3"><span class="re1"><variable</span> <span class="re0">name</span>=<span class="st0">"classExtends"</span> <span class="re0">label</span>=<span class="st0">"Base Class:"</span> <span class="re0">default</span>=<span class="st0">"Sprite"</span></span>
<span class="sc3">	  <span class="re0">type</span>=<span class="st0">"enum('Sprite','MovieClip')"</span> <span class="re2">/></span></span>
  <span class="sc3"><span class="re1"></primaryGroup<span class="re2">></span></span></span>
<span class="sc3"><span class="re1"></variables<span class="re2">></span></span></span>


Arguments:

  1. name : To reuse your variable, you'll need to be able to reference it either within the template itself, or in an external file that will be processed ( variables replaced ).
  2. label : What will be displayed to the users within the template GUI.
  3. default : The starting value for the variable.
  4. type : Use this to set the UI component (e.g. text input, combo box, radio button).
  5. description : An optional description for documentation purposes.
  6. enableIf : A boolean that can disable and enable the variable.

When using the type attribute here are some examples of UI components you can create:

  • enum('value 1','value 2','value 3',...): This will create a combo box or radio button set of predefined values. The default for enum will be a combo box. To create radio buttons, add a style=radio attribute.
  • color: This will create a button that will display a color hex value and allow you to open the color picker.
  • int('minimum value','maximum value','increment value'): This will create a text input for number values based on the define range.
  • float: Creates a text input for float values.
  • string: A text input.
  • string('value 1','value 2',...): A text input with a combo box that allows for preset (but editable) values.
  • boolean: This will create a checkbox that will toggle the variable from true to false.
  • file: This will create a text input and browse button that will point to a specific file. There is also the option to create file filters, e.g. type="file('png','gif')"
  • folder: This will create a text input and browse button for a specific folder. There is also the option to create file filters, e.g. type="file('png','gif')"



hyperlink

Within group elements, you can add a hyperlink which will open your browser and navigate to a particular URL.

<span class="sc3"><span class="re1"><variables<span class="re2">></span></span></span>
  <span class="sc3"><span class="re1"><primaryGroup</span> <span class="re0">label</span>=<span class="st0">"Template Options"</span><span class="re2">></span></span>
    <span class="sc3"><span class="re1"><group<span class="re2">></span></span></span>
      <span class="sc3"><span class="re1"><variable</span> <span class="re0">name</span>=<span class="st0">"addUnitTesting"</span> <span class="re0">label</span>=<span class="st0">"Add Unit Testing"</span></span>
<span class="sc3">		<span class="re0">default</span>=<span class="st0">"false"</span> <span class="re0">type</span>=<span class="st0">"boolean"</span> <span class="re2">/></span></span>
	  <span class="sc3"><span class="re1"><hyperlink</span> <span class="re0">label</span>=<span class="st0">"More About Unit Testing"</span> <span class="re0">target</span>=<span class="st0">"http://www.flexunit.com..."</span> </span>
<span class="sc3">	        <span class="re0">style</span>=<span class="st0">"hyperlink"</span> <span class="re2">/></span></span>		
	<span class="sc3"><span class="re1"></group<span class="re2">></span></span></span>
  <span class="sc3"><span class="re1"></primaryGroup<span class="re2">></span></span></span>
<span class="sc3"><span class="re1"></variables<span class="re2">></span></span></span>


Arguments:

  1. label : The text that will appear for the button / hyperlink.
  2. description : An optional description for documentation purposes.
  3. enableIf : A boolean that can disable and enable the link.
  4. style : Use this to set the UI as a button or an HTML style link. Possible values are popupButton and hyperlink.



Expressions

Overview

Expressions allow you to create more variables (not associated with any UI), if/else statements, hashmaps(maps) and concatenation expressions.

There are different ways of using expressions.

Simple Assignments

<span class="sc3"><span class="re1"><expressions<span class="re2">></span></span></span>
  <span class="sc3"><span class="re1"><expression</span> <span class="re0">name</span>=<span class="st0">"sourceFolder"</span> <span class="re0">value</span>=<span class="st0">"src"</span> <span class="re2">/></span></span>
<span class="sc3"><span class="re1"></expressions<span class="re2">></span></span></span>

Arithmetic Operations

<span class="sc3"><span class="re1"><expressions<span class="re2">></span></span></span>
  <span class="sc3"><span class="re1"><expression</span> <span class="re0">name</span>=<span class="st0">"number"</span> <span class="re0">value</span>=<span class="st0">"8*2"</span><span class="re2">/></span></span>
<span class="sc3"><span class="re1"></expressions<span class="re2">></span></span></span>


Boolean Operations

<span class="sc3"><span class="re1"><expressions<span class="re2">></span></span></span>
  <span class="sc-1"><!--using operator symbols such as '||' and '&amp;&amp;' --></span>
  <span class="sc3"><span class="re1"><expression</span> <span class="re0">name</span>=<span class="st0">"allUnitTestingSamples"</span> </span>
<span class="sc3">    <span class="re0">value</span>=<span class="st0">"${addExample} &amp;&amp; ${addUnitTesting} &amp;&amp; ${addCIExample}"</span><span class="re2">/></span></span>
  <span class="sc3"><span class="re1"><expression</span> <span class="re0">name</span>=<span class="st0">"anyExampleChosen"</span> <span class="re0">value</span>=<span class="st0">"${addExample} || ${addCIExample}"</span><span class="re2">/></span></span>
 
  <span class="sc-1"><!--using operator expressions such as 'or()' and 'and()' --></span>
  <span class="sc3"><span class="re1"><expression</span> <span class="re0">name</span>=<span class="st0">"allUnitTestingSamples2"</span> </span>
<span class="sc3">    <span class="re0">value</span>=<span class="st0">"and(${addExample}, ${addUnitTesting},  ${addCIExample}"</span><span class="re2">/></span></span>
  <span class="sc3"><span class="re1"><expression</span> <span class="re0">name</span>=<span class="st0">"anyExampleChosen2"</span> <span class="re0">value</span>=<span class="st0">"or(${addExample} ,${addCIExample})"</span><span class="re2">/></span></span>
<span class="sc3"><span class="re1"></expressions<span class="re2">></span></span></span>


  • note: Because of how Ant works, you need to use the '&amp;&amp;' syntax when you want to use '&&'.
  • note: Expressions 'and(value 1, value 2,...)' and 'or(value 1, value 2,...)' can accept any number of arguments.

String Operations

<span class="sc3"><span class="re1"><expressions<span class="re2">></span></span></span>
  <span class="sc3"><span class="re1"><expression</span> <span class="re0">name</span>=<span class="st0">"var"</span> <span class="re0">value</span>=<span class="st0">" wonderful "</span><span class="re2">/></span></span>
  <span class="sc3"><span class="re1"><expression</span> <span class="re0">name</span>=<span class="st0">"myExp"</span> <span class="re0">value</span>=<span class="st0">"concat('hello ',${var},' world')"</span> <span class="re2">/></span></span>
  <span class="sc3"><span class="re1"><expression</span> <span class="re0">name</span>=<span class="st0">"myExp2"</span> <span class="re2">></span></span>hello wonderful world<span class="sc3"><span class="re1"></expression<span class="re2">></span></span></span>
<span class="sc-1"><!--both output 'hello wonderful world' --></span>
<span class="sc3"><span class="re1"></expressions<span class="re2">></span></span></span>


  • note: 'concat(value 1, value 2, value 3,...)' can accept any number of arguments.



expressions

The expressions element is used as a placeholder for your expressions. It can only appear once in your description.xml.


expression

Inside of your expressions tag you can place individual expressions and maps. An expression can be either a simple variable creation or an evaluation. Examples include:

  • if('boolean','use this value if true','use this value if false')
  • concat(value 1, value 2, value 3,...)
  • and(value 1, value 2, ...)
  • or(value 1, value 2, ...)
  • true
  • false
<span class="sc3"><span class="re1"><expressions<span class="re2">></span></span></span>
  <span class="sc-1"><!-- simple variable declaration--></span>
  <span class="sc3"><span class="re1"><expression</span> <span class="re0">name</span>=<span class="st0">"sourceFolder"</span> <span class="re0">value</span>=<span class="st0">"src"</span> <span class="re2">/></span></span>
  <span class="sc-1"><!-- using the concat() expression--></span>
  <span class="sc3"><span class="re1"><expression</span> <span class="re0">name</span>=<span class="st0">"metaDataExp"</span> <span class="re0">value</span>=<span class="st0">"concat('[SWF(backgroundColor=&quot;',0xFFFFFF,</span>
<span class="sc3">'&quot;,frameRate=&quot;',bannerFPS(${metaTheme}),'&quot;, width=&quot;',</span>
<span class="sc3">bannerWidth(${metaTheme}),'&quot;,height=&quot;',bannerHeight(${metaTheme}),</span>
<span class="sc3">'&quot;)]')"</span> <span class="re2">/></span></span>
   <span class="sc-1"><!-- using an if() expression--></span>
   <span class="sc3"><span class="re1"><expression</span> <span class="re0">name</span>=<span class="st0">"htmlDesc"</span></span>
<span class="sc3">    <span class="re0">value</span>=<span class="st0">"if(${htmlTemplate},</span>
<span class="sc3">   'This HTML wrapper will create a simple HTML page with </span>
<span class="sc3">	your SWF embedded in it.',' ')"</span> <span class="re2">/></span></span>
<span class="sc3"><span class="re1"></expressions<span class="re2">></span></span></span>



map

A map (hashmap, hash table, dictionary) is a way to create a collection of key value pairs. This is helpful when creating themes or predefined sets. Whenever a particular theme or set is selected, various variables and values can be changed throughout your template.

<span class="sc-1"><!-- Create a variable (a collection of 'themes') that users can select and change--></span>
<span class="sc3"><span class="re1"><variable</span> <span class="re0">name</span>=<span class="st0">"metaTheme"</span> <span class="re0">label</span>=<span class="st0">"Application Type"</span></span>
<span class="sc3"><span class="re0">default</span>=<span class="st0">"Leaderboard"</span> <span class="re0">type</span>=<span class="st0">"enum('Leaderboard','Full Banner','Half Banner','Full Site')"</span><span class="re2">/></span></span>
 
 
<span class="sc3"><span class="re1"><expressions<span class="re2">></span></span></span>
  <span class="sc-1"><!-- Create some maps associated with the value of 'metaTheme' --></span>
  <span class="sc3"><span class="re1"><map</span> <span class="re0">name</span>=<span class="st0">"bannerWidth"</span> <span class="re2">></span></span>	
	<span class="sc3"><span class="re1"><entry</span> <span class="re0">key</span>=<span class="st0">"Leaderboard"</span> <span class="re0">value</span>=<span class="st0">"'728'"</span><span class="re2">/></span></span>
	<span class="sc3"><span class="re1"><entry</span> <span class="re0">key</span>=<span class="st0">"Full Banner"</span> <span class="re0">value</span>=<span class="st0">"'468'"</span><span class="re2">/></span></span>
	<span class="sc3"><span class="re1"><entry</span> <span class="re0">key</span>=<span class="st0">"Half Banner"</span> <span class="re0">value</span>=<span class="st0">"'234'"</span><span class="re2">/></span></span>
	<span class="sc3"><span class="re1"><entry</span> <span class="re0">key</span>=<span class="st0">"Full Site"</span> <span class="re0">value</span>=<span class="st0">"'800'"</span><span class="re2">/></span></span>
  <span class="sc3"><span class="re1"></map<span class="re2">></span></span></span>
  <span class="sc3"><span class="re1"><map</span> <span class="re0">name</span>=<span class="st0">"bannerHeight"</span> <span class="re2">></span></span>	
	<span class="sc3"><span class="re1"><entry</span> <span class="re0">key</span>=<span class="st0">"Leaderboard"</span> <span class="re0">value</span>=<span class="st0">"'90'"</span><span class="re2">/></span></span>
	<span class="sc3"><span class="re1"><entry</span> <span class="re0">key</span>=<span class="st0">"Full Banner"</span> <span class="re0">value</span>=<span class="st0">"'60'"</span><span class="re2">/></span></span>
	<span class="sc3"><span class="re1"><entry</span> <span class="re0">key</span>=<span class="st0">"Half Banner"</span> <span class="re0">value</span>=<span class="st0">"'60'"</span><span class="re2">/></span></span>
	<span class="sc3"><span class="re1"><entry</span> <span class="re0">key</span>=<span class="st0">"Full Site"</span> <span class="re0">value</span>=<span class="st0">"'600'"</span><span class="re2">/></span></span>
  <span class="sc3"><span class="re1"></map<span class="re2">></span></span></span>
  <span class="sc3"><span class="re1"><map</span> <span class="re0">name</span>=<span class="st0">"bannerFPS"</span>  <span class="re2">></span></span>
	<span class="sc3"><span class="re1"><entry</span> <span class="re0">key</span>=<span class="st0">"Leaderboard"</span> <span class="re0">value</span>=<span class="st0">"'22'"</span><span class="re2">/></span></span>
	<span class="sc3"><span class="re1"><entry</span> <span class="re0">key</span>=<span class="st0">"Full Banner"</span> <span class="re0">value</span>=<span class="st0">"'22'"</span><span class="re2">/></span></span>
	<span class="sc3"><span class="re1"><entry</span> <span class="re0">key</span>=<span class="st0">"Half Banner"</span> <span class="re0">value</span>=<span class="st0">"'22'"</span><span class="re2">/></span></span>
	<span class="sc3"><span class="re1"><entry</span> <span class="re0">key</span>=<span class="st0">"Full Site"</span> <span class="re0">value</span>=<span class="st0">"'60'"</span><span class="re2">/></span></span>
  <span class="sc3"><span class="re1"></map<span class="re2">></span></span></span>
<span class="sc-1"><!-- Use the maps and pass to them, as a key, the theme you chose. </span>
<span class="sc-1"> E.g if 'metaTheme' is equal to 'Leaderboard', </span>
<span class="sc-1">then 'bannerFPS(${metaTheme})' is equal to 728--></span>	
  <span class="sc3"><span class="re1"><expression</span> <span class="re0">name</span>=<span class="st0">"metaDataExp"</span> <span class="re0">value</span>=<span class="st0">"concat('[SWF(backgroundColor=&quot;',0xFFFFFF,</span>
<span class="sc3">'&quot;,frameRate=&quot;',bannerFPS(${metaTheme}),'&quot;, width=&quot;',</span>
<span class="sc3">bannerWidth(${metaTheme}),'&quot;,height=&quot;',bannerHeight(${metaTheme}),</span>
<span class="sc3">'&quot;)]')"</span> <span class="re2">/></span></span>
 
<span class="sc3"><span class="re1"></expressions<span class="re2">></span></span></span>





Replace

With 4.5, FDT extended the expressions syntax with two new expressions: 'replace' and 'replaceRegex'. Both of these allow you to replace the values of strings or variables.

<span class="sc-1"><!-- Create a variable (a collection of 'themes') that users can select and change--></span>
<span class="sc3"><span class="re1"><variable</span> <span class="re0">name</span>=<span class="st0">"metaTheme"</span> <span class="re0">label</span>=<span class="st0">"Application Type"</span></span>
<span class="sc3"><span class="re0">default</span>=<span class="st0">"Leaderboard"</span> <span class="re0">type</span>=<span class="st0">"enum('Leaderboard','Full Banner','Half Banner','Full Site')"</span><span class="re2">/></span></span>
 
<span class="sc3"><span class="re1"><expressions<span class="re2">></span></span></span>
 
<span class="sc-1"><!-- This will create a new expression (variable) named 'postFileName'. </span>
<span class="sc-1">This expression will execute a regex computation on the variable ${projectName} </span>
<span class="sc-1">and replace it.  In this case it's replacing it with blank: ''. --></span>	
	<span class="sc3"><span class="re1"><expression</span> <span class="re0">name</span>=<span class="st0">"postFileName"</span></span>
<span class="sc3">		<span class="re0">value</span>=<span class="st0">"replaceRegex(${projectName}, '([^\w]+)', '')"</span> <span class="re2">/></span></span>
 
<span class="sc-1"><!-- This expression will scan the variable '${projectName}' and if it finds the value</span>
<span class="sc-1"> 'Joe', it will replace it with 'Bob' --></span>
	<span class="sc3"><span class="re1"><expression</span> <span class="re0">name</span>=<span class="st0">"postFileName"</span></span>
<span class="sc3">		<span class="re0">value</span>=<span class="st0">"replace(${projectName}, 'Joe', 'Bob')"</span> <span class="re2">/></span></span>
<span class="sc3"><span class="re1"></expressions<span class="re2">></span></span></span>

Arguments:

  1. name : The reference (variable name) of the expression. Use this to reference the expression elsewhere in the template or your files.
  2. value : Three values: replaceRegex([the variable or string you'd like to evaluate],[what to look for],[what to replace if found])

Extensions

The extensions tag is used internally by the team to add functionality to templates into the future. When this is developed, more information will added here.



Folders

folders

This tag, and its descendants, is used to define properties of special folders in your project. This is where you define which folders are source folder(s), your output folder, and auto library folder(s). If the folder referenced here doesn't exist when the project is created, FDT will create it.

<span class="sc3"><span class="re1"><folders<span class="re2">></span></span></span>	
	<span class="sc-1"><!-- set, or create, a source folder named 'src' --></span>
	<span class="sc3"><span class="re1"><sourceFolder<span class="re2">></span></span></span>src<span class="sc3"><span class="re1"></sourceFolder<span class="re2">></span></span></span>
	<span class="sc-1"><!-- set, or create, a source folder named 'src2' --></span>
	<span class="sc3"><span class="re1"><sourceFolder<span class="re2">></span></span></span>src2<span class="sc3"><span class="re1"></sourceFolder<span class="re2">></span></span></span>
	<span class="sc-1"><!-- set, or create, an output folder named 'bin-debug' --></span>
	<span class="sc3"><span class="re1"><outputFolder<span class="re2">></span></span></span>bin-debug<span class="sc3"><span class="re1"></outputFolder<span class="re2">></span></span></span>
 
	<span class="sc-1"><!-- set, or create, various auto library folders --></span>
	<span class="sc3"><span class="re1"><autoLibFolder<span class="re2">></span></span></span>libs<span class="sc3"><span class="re1"></autoLibFolder<span class="re2">></span></span></span>
	<span class="sc3"><span class="re1"><autoLibFolder<span class="re2">></span></span></span>libs2<span class="sc3"><span class="re1"></autoLibFolder<span class="re2">></span></span></span>
<span class="sc3"><span class="re1"></folders<span class="re2">></span></span></span>



sourceFolder

When your project is created, FDT will create a source folder for you.

<span class="sc3"><span class="re1"><folders<span class="re2">></span></span></span>
	<span class="sc-1"><!-- set, or create, a source folder named 'src' --></span>
	<span class="sc3"><span class="re1"><sourceFolder<span class="re2">></span></span></span>src<span class="sc3"><span class="re1"></sourceFolder<span class="re2">></span></span></span>	
<span class="sc3"><span class="re1"></folders<span class="re2">></span></span></span>


Arguments:

  1. if : A boolean value that determines if the folder is created.



outputFolder

When your project is created, FDT will preset your output folder for you.

<span class="sc3"><span class="re1"><folders<span class="re2">></span></span></span>
	<span class="sc-1"><!-- set, or create, an output folder named 'bin-debug' --></span>
	<span class="sc3"><span class="re1"><outputFolder<span class="re2">></span></span></span>bin-debug<span class="sc3"><span class="re1"></outputFolder<span class="re2">></span></span></span>
<span class="sc3"><span class="re1"></folders<span class="re2">></span></span></span>


Arguments:

  1. if : A boolean value that determines if the folder is created.



autoLibFolder

When your project is created, FDT will create an auto library folder for you.

<span class="sc3"><span class="re1"><folders<span class="re2">></span></span></span>
	<span class="sc-1"><!-- set, or create, various auto library folders --></span>
	<span class="sc3"><span class="re1"><autoLibFolder<span class="re2">></span></span></span>libs<span class="sc3"><span class="re1"></autoLibFolder<span class="re2">></span></span></span>
<span class="sc3"><span class="re1"></folders<span class="re2">></span></span></span>

Arguments:

  1. if : A boolean value that determines if the folder is created.



Libraries

libraries

Use this tag to define a particular .SWC or .ANE to be added to your class path upon template generation. .SWC and .ANE locations are relative to your project root.

  • note: When using SWCs, this tag is best implemented when using linked resources; otherwise, we suggest placing your .SWCs inside of an Auto Library Folder.
  • note: The

    Invalid language.

    You need to specify a language like this: <samp><source lang="html4strict">...</source></samp>

    Supported languages for syntax highlighting:

    <samp>4cs</samp>, <samp>abap</samp>, <samp>actionscript</samp>, <samp>actionscript3</samp>, <samp>ada</samp>, <samp>apache</samp>, <samp>applescript</samp>, <samp>apt_sources</samp>, <samp>asm</samp>, <samp>asp</samp>, <samp>autoconf</samp>, <samp>autohotkey</samp>, <samp>autoit</samp>, <samp>avisynth</samp>, <samp>awk</samp>, <samp>bash</samp>, <samp>basic4gl</samp>, <samp>bf</samp>, <samp>bibtex</samp>, <samp>blitzbasic</samp>, <samp>bnf</samp>, <samp>boo</samp>, <samp>c</samp>, <samp>c_mac</samp>, <samp>caddcl</samp>, <samp>cadlisp</samp>, <samp>cfdg</samp>, <samp>cfm</samp>, <samp>chaiscript</samp>, <samp>cil</samp>, <samp>clojure</samp>, <samp>cmake</samp>, <samp>cobol</samp>, <samp>cpp</samp>, <samp>cpp-qt</samp>, <samp>csharp</samp>, <samp>css</samp>, <samp>cuesheet</samp>, <samp>d</samp>, <samp>dcs</samp>, <samp>delphi</samp>, <samp>diff</samp>, <samp>div</samp>, <samp>dos</samp>, <samp>dot</samp>, <samp>ecmascript</samp>, <samp>eiffel</samp>, <samp>email</samp>, <samp>erlang</samp>, <samp>fo</samp>, <samp>fortran</samp>, <samp>freebasic</samp>, <samp>fsharp</samp>, <samp>gambas</samp>, <samp>gdb</samp>, <samp>genero</samp>, <samp>genie</samp>, <samp>gettext</samp>, <samp>glsl</samp>, <samp>gml</samp>, <samp>gnuplot</samp>, <samp>groovy</samp>, <samp>gwbasic</samp>, <samp>haskell</samp>, <samp>hicest</samp>, <samp>hq9plus</samp>, <samp>html4strict</samp>, <samp>icon</samp>, <samp>idl</samp>, <samp>ini</samp>, <samp>inno</samp>, <samp>intercal</samp>, <samp>io</samp>, <samp>j</samp>, <samp>java</samp>, <samp>java5</samp>, <samp>javascript</samp>, <samp>jquery</samp>, <samp>kixtart</samp>, <samp>klonec</samp>, <samp>klonecpp</samp>, <samp>latex</samp>, <samp>lisp</samp>, <samp>locobasic</samp>, <samp>logtalk</samp>, <samp>lolcode</samp>, <samp>lotusformulas</samp>, <samp>lotusscript</samp>, <samp>lscript</samp>, <samp>lsl2</samp>, <samp>lua</samp>, <samp>m68k</samp>, <samp>magiksf</samp>, <samp>make</samp>, <samp>mapbasic</samp>, <samp>matlab</samp>, <samp>mirc</samp>, <samp>mmix</samp>, <samp>modula2</samp>, <samp>modula3</samp>, <samp>mpasm</samp>, <samp>mxml</samp>, <samp>mysql</samp>, <samp>newlisp</samp>, <samp>nsis</samp>, <samp>oberon2</samp>, <samp>objc</samp>, <samp>ocaml</samp>, <samp>ocaml-brief</samp>, <samp>oobas</samp>, <samp>oracle11</samp>, <samp>oracle8</samp>, <samp>oxygene</samp>, <samp>oz</samp>, <samp>pascal</samp>, <samp>pcre</samp>, <samp>per</samp>, <samp>perl</samp>, <samp>perl6</samp>, <samp>pf</samp>, <samp>php</samp>, <samp>php-brief</samp>, <samp>pic16</samp>, <samp>pike</samp>, <samp>pixelbender</samp>, <samp>plsql</samp>, <samp>postgresql</samp>, <samp>povray</samp>, <samp>powerbuilder</samp>, <samp>powershell</samp>, <samp>progress</samp>, <samp>prolog</samp>, <samp>properties</samp>, <samp>providex</samp>, <samp>purebasic</samp>, <samp>python</samp>, <samp>q</samp>, <samp>qbasic</samp>, <samp>rails</samp>, <samp>rebol</samp>, <samp>reg</samp>, <samp>robots</samp>, <samp>rpmspec</samp>, <samp>rsplus</samp>, <samp>ruby</samp>, <samp>sas</samp>, <samp>scala</samp>, <samp>scheme</samp>, <samp>scilab</samp>, <samp>sdlbasic</samp>, <samp>smalltalk</samp>, <samp>smarty</samp>, <samp>sql</samp>, <samp>systemverilog</samp>, <samp>tcl</samp>, <samp>teraterm</samp>, <samp>text</samp>, <samp>thinbasic</samp>, <samp>tsql</samp>, <samp>typoscript</samp>, <samp>unicon</samp>, <samp>vala</samp>, <samp>vb</samp>, <samp>vbnet</samp>, <samp>verilog</samp>, <samp>vhdl</samp>, <samp>vim</samp>, <samp>visualfoxpro</samp>, <samp>visualprolog</samp>, <samp>whitespace</samp>, <samp>whois</samp>, <samp>winbatch</samp>, <samp>xbasic</samp>, <samp>xml</samp>, <samp>xorg_conf</samp>, <samp>xpp</samp>, <samp>z80</samp>

Get FDT5