
<!DOCTYPE html>
<!--
 Generated by Apache Maven Doxia at 2016-10-09
 Rendered using Reflow Maven Skin 1.1.1 (http://andriusvelykis.github.io/reflow-maven-skin)
-->
<html  xml:lang="en" lang="en">

	<head>
		<meta charset="UTF-8" />
		<title>Getting Started with Apache Flex | Maven</title>
		<meta name="viewport" content="width=device-width, initial-scale=1.0" />
		<meta name="description" content="" />
		<meta http-equiv="content-language" content="en" />

		<link href="http://netdna.bootstrapcdn.com/bootswatch/2.3.2/spacelab/bootstrap.min.css" rel="stylesheet" />
		<link href="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/css/bootstrap-responsive.min.css" rel="stylesheet" />
		<link href="./css/bootswatch.css" rel="stylesheet" />
		<link href="./css/reflow-skin.css" rel="stylesheet" />


		<link href="./css/lightbox.css" rel="stylesheet" />

		<link href="./css/site.css" rel="stylesheet" />
		<link href="./css/print.css" rel="stylesheet" media="print" />

		<!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->
		<!--[if lt IE 9]>
			<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
		<![endif]-->



	</head>

	<body class="page-doc-getstarted project-flex-site" data-spy="scroll" data-offset="60" data-target="#toc-scroll-target">

		<div class="navbar navbar-fixed-top">
			<div class="navbar-inner">
				<div class="container">
					<a class="btn btn-navbar" data-toggle="collapse" data-target="#top-nav-collapse">
						<span class="icon-bar"></span>
						<span class="icon-bar"></span>
						<span class="icon-bar"></span>
					</a>
					<div class="nav-collapse collapse" id="top-nav-collapse">
						<ul class="nav pull-right">
							<li ><a href="index.html" title="Home">Home</a></li>
							<li class="dropdown">
								<a href="#" class="dropdown-toggle" data-toggle="dropdown">About Flex <b class="caret"></b></a>
								<ul class="dropdown-menu">
									<li ><a href="about-whatis.html" title="What is Flex?">What is Flex?</a></li>
									<li ><a href="about-features.html" title="Features">Features</a></li>
									<li ><a href=".html" title="Tour de Flex">Tour de Flex</a></li>
									<li ><a href="about-licensing.html" title="License & Trademarks">License & Trademarks</a></li>
									<li ><a href="about-people.html" title="The Team">The Team</a></li>
									<li ><a href="about-history.html" title="Project History">Project History</a></li>
									<li ><a href="about-assets.html" title="Logo and Assets">Logo and Assets</a></li>
								</ul>
							</li>
							<li class="dropdown">
								<a href="#" class="dropdown-toggle" data-toggle="dropdown">Community <b class="caret"></b></a>
								<ul class="dropdown-menu">
									<li ><a href="community-getinvolved.html" title="How to get involved">How to get involved</a></li>
									<li ><a href="community-mailinglists.html" title="Mailing Lists">Mailing Lists</a></li>
									<li ><a href="community-showcase.html" title="Flex Showcase">Flex Showcase</a></li>
									<li ><a href="community-3rdparty.html" title="Third-Party">Third-Party</a></li>
									<li ><a href="https://cwiki.apache.org/confluence/display/FLEX/Apache+Flex+Wiki" title="Wiki" class="externalLink">Wiki</a></li>
									<li ><a href="http://blogs.apache.org/flex/" title="Blog" class="externalLink">Blog</a></li>
								</ul>
							</li>
							<li class="dropdown">
								<a href="#" class="dropdown-toggle" data-toggle="dropdown">Development <b class="caret"></b></a>
								<ul class="dropdown-menu">
									<li ><a href="dev-faq.html" title="Developer FAQ">Developer FAQ</a></li>
									<li ><a href="dev-sourcecode.html" title="Source Code">Source Code</a></li>
									<li ><a href="https://issues.apache.org/jira/browse/FLEX" title="Bug-Tracker" class="externalLink">Bug-Tracker</a></li>
								</ul>
							</li>
							<li class="dropdown active">
								<a href="#" class="dropdown-toggle" data-toggle="dropdown">Documentation <b class="caret"></b></a>
								<ul class="dropdown-menu">
									<li class="active"><a href="" title="Getting Started">Getting Started</a></li>
									<li ><a href="doc-videos.html" title="Videos">Videos</a></li>
									<li ><a href=".html" title="Flex ASDocs">Flex ASDocs</a></li>
									<li ><a href=".html" title="FlexJS ASDocs">FlexJS ASDocs</a></li>
									<li ><a href="http://help.adobe.com/en_US/flex/using/index.html" title="Documentation Reference (Old)" class="externalLink">Documentation Reference (Old)</a></li>
									<li ><a href=".html" title="FlexUnit Tutorials">FlexUnit Tutorials</a></li>
									<li ><a href=".html" title="FlexUnit ASDocs">FlexUnit ASDocs</a></li>
								</ul>
							</li>
							<li class="dropdown">
								<a href="#" class="dropdown-toggle" data-toggle="dropdown">About Apache <b class="caret"></b></a>
								<ul class="dropdown-menu">
									<li ><a href="http://www.apache.org" title="The Apache Software Foundation Website" class="externalLink">The Apache Software Foundation Website</a></li>
									<li ><a href="http://www.apache.org/foundation/contributing.html" title="Donations" class="externalLink">Donations</a></li>
									<li ><a href="http://www.apache.org/foundation/sponsorship.html" title="Sponsorship" class="externalLink">Sponsorship</a></li>
									<li ><a href="http://www.apache.org/foundation/thanks.html" title="Thanks" class="externalLink">Thanks</a></li>
								</ul>
							</li>
							<li class="dropdown">
								<a href="#" class="dropdown-toggle" data-toggle="dropdown">Download Flex <b class="caret"></b></a>
								<ul class="dropdown-menu">
									<li ><a href=".html" title="SDK Installer (For Application Developers)">SDK Installer (For Application Developers)</a></li>
									<li ><a href=".html" title="SDK Source Code (For SDK Developers)">SDK Source Code (For SDK Developers)</a></li>
									<li ><a href=".html" title="SDK Binaries (For SDK Developers)">SDK Binaries (For SDK Developers)</a></li>
									<li ><a href=".html" title="FlexJS 'beta' (For Application Developers)">FlexJS 'beta' (For Application Developers)</a></li>
									<li ><a href=".html" title="FlexUnit (For Application Developers)">FlexUnit (For Application Developers)</a></li>
									<li ><a href=".html" title="Blaze DS Source Code">Blaze DS Source Code</a></li>
									<li ><a href=".html" title="Tour De Flex Source Code">Tour De Flex Source Code</a></li>
									<li ><a href=".html" title="Squiggly Spell Checker">Squiggly Spell Checker</a></li>
									<li ><a href=".html" title="Flex Utilities">Flex Utilities</a></li>
									<li ><a href=".html" title="Previous Versions">Previous Versions</a></li>
								</ul>
							</li>
						</ul>
					</div><!--/.nav-collapse -->
				</div>
			</div>
		</div>

	<div class="container">

	<!-- Masthead
	================================================== -->

	<header>
	<div class="jumbotron subhead">
		<div class="row" id="banner">
			<div class="span12">
				<div class="pull-left">
					<a href="http://flex.apache.org/" id="bannerLeft"><img src="http://flex.apache.org/images/logo_01_fullcolor-sm.png" alt='"'Apache Flex'"' /></a>
				</div>
				<div class="pull-right">
					<a href="http://www.apache.org" id="bannerRight"><img src="http://www.apache.org/images/feather-small.gif" alt='"'An Apache Project'"' /></a>
				</div>
			</div>
		</div>
	</div>
		<div>
			<ul class="breadcrumb">
				<li class="projectVersion version-date">Version: 0.8.0-SNAPSHOT</li>
				<li class="divider">|</li>
				<li class="publishDate version-date">Last Published: 2016-10-09</li>
			</ul>
		</div>
	</header>

	<div class="main-body">
	<div class="row">
		<div class="span12">
			<div class="body-content">
<!-- Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
 The ASF licenses this file to You under the Apache License, Version 2.0
 (the "License"); you may not use this file except in compliance with
 the License.  You may obtain a copy of the License at
 
 http://www.apache.org/licenses/LICENSE-2.0
 
 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License. --> 
<div class="page-header">
 <h1>Getting Started with Apache Flex</h1>
</div> 
<p>Before you start to learn how to program with Apache Flex, you will need to get your environment setup. The Apache Flex SDK includes everything you need to make applications except for an IDE. You technically don’t need one, but it is <b>HIGHLY</b> encouraged for you to use one. We won’t cover the workflows in this document on how to create and compile applications with Notepad or vi, just know that you can.</p> 
<p>There are four major IDEs available that work with Apache Flex. There are other, lesser-used IDEs and plugins for other IDEs out there as well. For the most part, the workflow is the same for all of them. Below we will outline the steps needed to use Apache Flex with <a class="externalLink" href="http://www.adobe.com/products/flash-builder-family.html">Adobe Flash Builder 4.7</a>, <a class="externalLink" href="http://www.jetbrains.com/idea/">JetBrains IntelliJ IDEA 13.1</a>, <a class="externalLink" href="http://www.flashdevelop.org/">FlashDevelop</a> and <a class="externalLink" href="http://fdt.powerflasher.com/">FDT</a>. If you use another IDE and want to help us add to this document please contact us on the <a href="community-mailinglists.html">mailing list</a>.</p> 
<p>Get started by setting up the Apache Flex SDK itself, then move on the specific section for your IDE.</p> 
<div class="section"> 
 <h2 id="Setting_up_the_Apache_Flex_SDK">Setting up the Apache Flex SDK</h2> 
 <ol style="list-style-type: decimal"> 
  <li><b>Download the SDK installer</b> Go to the <a href="installer.html">Download the SDK Installer</a> on the menu above and install the SDK installer. Click on the Download link on the installer badge, which will download the proper installer for your computer.</li> 
  <li><b>Run the SDK installer</b> The first question you will be asked is the installation directory. If you are on a Mac, use /Applications/Adobe Flash Builder 4.7/sdks/4.14.0/. If you are on a PC, use C:\Program Files(x86)\Adobe Flash Builder 4.7\sdks\4.14.0. You will need to create the 4.14.0 folders. Press Next.</li> 
  <li><b>Accept SDK Licenses and Install</b> Check the red boxes to accept each of the licenses. Read the licenses, of course ;) Click Install to download all the components into the new 4.14.0 directory. This can take a few minutes.</li> 
 </ol> 
</div> 
<div class="section"> 
 <h2 id="IDE-specific_instructions">IDE-specific instructions</h2> 
 <ul> 
  <li><a href="#setupFlashBuilder">Flash Builder</a></li> 
  <li><a href="#setupIDEA">IntelliJ IDEA</a></li> 
  <li><a href="#setupFD">FlashDevelop</a></li> 
  <li><a href="#setupFDT">FDT</a></li> 
 </ul> 
 <div class="section"> 
  <h3 id="Setting_up_Apache_Flex_with_Adobe_Flash_Builder">Setting up Apache Flex with Adobe Flash Builder</h3> 
  <ol style="list-style-type: decimal"> 
   <li><b>Download Adobe Flash Builder</b> Adobe Flash Builder is available from the <a class="externalLink" href="http://www.adobe.com/products/flash-builder-family.html">Adobe Website</a>. It offers a 30-day trial and retails for about $250. It is available for both Windows and MacOS X</li> 
   <li><b>Install Adobe Flash Builder</b> Follow the on-screen installation wizard.</li> 
   <li><b>Run Flash Builder</b> Launch Adobe Flash Builder. You may need to login with your Adobe ID to activate the trial.</li> 
   <li><b>Tell Flash Builder about the SDK</b> On Windows, go to the Window Menu -&gt; Preferences. On the Mac, go to the Flash Builder menu -&gt; Preferences. Go to the Flash Builder node, then select the Installed Flex SDKs node. Click [ADD], then choose the directory in which you saved the 4.14.0 SDK (Step 4). The name should be populated with Apache Flex 4.14.0 FP11.1 en_US. Press OK, and OK again.</li> 
   <li><b>Create a new project</b> Right-click in the empty Package Explorer area, choose New -&gt; Flex Project. Give the project a name. Under the Flex SDK version, choose Apache Flex 4.14.0. Press Finish. Flash Builder will create the new project.</li> 
   <li><b>Start Coding!</b> Jump down below to make your first Hello World application.</li> 
  </ol> 
  <div class="section"> 
   <h4 id="Known_Flash_Builder_Issues">Known Flash Builder Issues</h4> 
   <p>Adobe Flash Builder 4.7 and Adobe Flash Builder 4.6 both contain a bug where, when generating the .mxml file for a new project that uses Apache Flex and Spark Application, Flash Builder will incorrectly insert the attribute:</p> 
   <div class="source"> 
    <div class="source"> 
     <pre>layout=&quot;absolute&quot;
</pre> 
    </div> 
   </div> 
   <p>This results in a compile error in the new project. The remedy is to simply remove the errant attribute.</p> 
   <p>A <a class="externalLink" href="https://cwiki.apache.org/confluence/display/FLEX/Adobe+Flash+Builder+'New+Project'+Bug">wiki page</a> has been set up to contain the latest news on Adobe’s attempt to correct this problem.</p> 
  </div> 
 </div> 
 <div class="section"> 
  <h3 id="Setting_up_Apache_Flex_with_Jetbrains_IntelliJ_IDEA">Setting up Apache Flex with Jetbrains IntelliJ IDEA</h3> 
  <ol style="list-style-type: decimal"> 
   <li><b>Download JetBrains IntelliJ IDEA</b> IntelliJ IDEA is available from the <a class="externalLink" href="http://www.jetbrains.com/idea/">JetBrains Website</a>. They offer a 30-day trail and it retails for about $200. It is available for both Windows and MacOS X</li> 
   <li><b>Install IntelliJ IDEA</b> Follow the on-screen installation wizard.</li> 
   <li><b>Download the SDK installer</b> Go to the <a href="installer.html">Download the SDK Installer</a> on the menu above and install the SDK installer. Click on the Download link on the installer badge, which will download the proper installer for your computer.</li> 
   <li><b>Run the SDK installer</b> The first question you will be asked is the installation directory. Note where you save the SDK (as you will need it later). Press Next.</li> 
   <li><b>Accept SDK Licenses and Install</b> Check the red boxes to accept each of the licenses. Read the licenses, of course ;) Click Install to download all the components into the new 4.14.0 directory. This can take a few minutes.</li> 
   <li><b>Run IntelliJ</b> Run IntelliJ. You will need to start the 30 day trial, and accept the license agreement when the app runs the first time. You will be launched into the configuration wizard. Select which VCS Plugins you want (we suggest Git Subversion). Next, select the Web/J2EE Plugins (We suggest Database, SQL and WebServices). Next, select the HTML Development tools (You must select FLash/Flex, CSS, JavaScript, JavaScript Debugger, but we suggest keeping them all selected). Finally, select which other plugins you wish to use (Select ANT, Properties, Copyright, Coverage, IntelliLang, Inspection Gadgets, Type Migration, UML. We suggest keeping most of the defaults).</li> 
   <li><b>Create your new project</b> When at the welcome screen, select “Create New Project”. In the left menu, choose Flash Module under the Other heading. Give the project a name, and select Next.</li> 
   <li><b>Configure the new project</b> On the “New Project” screen, select Web for the target platform, and keep the rest of the options the same. Keep the Flex SDK as [none] for this step. Click Finish.</li> 
   <li><b>Tell IntelliJ about the SDK</b> Right click on your project name in the Project Explorer, and click Open Module Settings. In the second pane, click the application settings (it says (app) behind the name – it should have red squigglies under it). Go to the dependency tab. To the right of the Flex SDK drop down, select New… to add the 4.14.0 SDK to the project. Find the 4.14.0 directory you created in step 4, and select Choose. Press Ok to return to the project. Wait for IntelliJ to index the project and the new SDK.</li> 
   <li><b>Create your Application file</b> Add a new MXML component under the /src/ directory by right clicking on src. Give it a name of your choosing, Template of “Flex 4 Component” and Parent Component of Application (spark.components).</li> 
   <li><b>Finish configuring your project</b> Go back to the project settings (right-click on the project name in the project explorer -&gt; Module Settings). Go to the General Tab of the app settings. Click the … button to the right of the Main Class box, and choose the filename you just created. This will set the project root.</li> 
   <li><b>Start Coding!</b> Jump down below to make your first Hello World application.</li> 
  </ol> 
 </div> 
 <div class="section"> 
  <h3 id="Setting_up_Apache_Flex_with_FlashDevelop">Setting up Apache Flex with FlashDevelop</h3> 
  <p>You can follow along the steps described in this <a class="externalLink" href="https://cwiki.apache.org/confluence/display/FLEX/2.3+FlashDevelop">wiki page</a></p> 
 </div> 
 <div class="section"> 
  <h3 id="Setting_up_Apache_Flex_with_FDT">Setting up Apache Flex with FDT</h3> 
  <p>You can follow along the steps described in this <a class="externalLink" href="http://vimeo.com/46898669">video</a></p> 
 </div> 
</div> 
<div class="section"> 
 <h2 id="Creating_your_first_Hello_World_application">Creating your first Hello World application</h2> 
 <p>This is a very simple, generic hello world application. You can learn a lot more by checking out some of our other resources below, or some of our <a href="doc-videos.html">tutorial videos</a>.</p> 
 <ol style="list-style-type: decimal"> 
  <li>Set the height and width of your application. Add the following tags to the Application tag (2nd line) : <tt>width=&quot;640&quot; height=&quot;480&quot;</tt></li> 
  <li>Add a new Layout tag within the Application tags. This will tell Flex how we plan on laying out our app. <tt>&lt;s:layout&gt;&lt;/s:layout&gt;</tt></li> 
  <li>Within the layout tags, add a BasicLayout tag. This will tell Flex we intend on telling it where to place our components. <tt>&lt;s:BasicLayout /&gt;</tt></li> 
  <li>Between the Layout and Application tags, Add a Label tag. We will be setting the <tt>text</tt> <tt>horizontalCenter</tt> and <tt>verticalCenter</tt> properties. <tt>&lt;s:Label text=&quot;Hello World!&quot; horizontalCenter=&quot;0&quot; verticalCenter=&quot;0&quot; /&gt;</tt></li> 
  <li>Find the Debug toolbar icon and click it. Your application should be launched in your default web browser and you should see the words Hello World! in the middle of the screen.</li> 
 </ol> 
 <p>The complete code listing is (there may be some variations, depending on your IDE template. Just make sure what we talked about above match) :</p> 
 <div class="source"> 
  <div class="source"> 
   <pre>&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;s:Application xmlns:fx=&quot;http://ns.adobe.com/mxml/2009&quot;
               xmlns:s=&quot;library://ns.adobe.com/flex/spark&quot;
               xmlns:mx=&quot;library://ns.adobe.com/flex/mx&quot; width=&quot;640&quot; height=&quot;480&quot;&gt;

    &lt;s:layout&gt;
        &lt;s:BasicLayout /&gt;
    &lt;/s:layout&gt;

    &lt;s:Label text=&quot;Hello World!&quot; horizontalCenter=&quot;0&quot; verticalCenter=&quot;0&quot; /&gt;

&lt;/s:Application&gt;
</pre> 
  </div> 
 </div> 
</div> 
<div class="section"> 
 <h2 id="Additional_Resources">Additional Resources</h2> 
 <ul> 
  <li>Make sure to check out our video and screencast library on the <a href="doc-videos.html">videos page</a>.</li> 
  <li>There are a large variety of books available online. One of our favorites is from Michael Labriola and Jeff Tapper (both Apache Flex Committers). <a class="externalLink" href="http://www.amazon.com/Adobe-Flex-4-5-Fundamentals-ebook/dp/B005EFKGCS/">Amazon Link to book</a></li> 
  <li>There are quite a few people that blog about Flex. Check out the <a class="externalLink" href="https://blogs.apache.org/flex/">official blog of Apache Flex</a>, <a class="externalLink" href="http://flashdaily.net/tagged/apacheflex">FlashDaily.net</a> and <a class="externalLink" href="http://feeds.adobe.com/index.cfm?query=bySmartCategory&amp;smartCategoryId=5">Adobe Feeds for Apache Flex</a></li> 
 </ul> 
</div>
			</div>
		</div>
	</div>
	</div>

	</div><!-- /container -->

	<!-- Footer
	================================================== -->
	<footer class="well">
		<div class="container">
			<div class="row">
				<div class="span9 bottom-nav">
					<ul class="nav nav-list">
						<li class="nav-header">About Flex</li>
						<li >
							<a href="about-whatis.html" title="What is Flex?">What is Flex?</a>
						</li>
						<li >
							<a href="about-features.html" title="Features">Features</a>
						</li>
						<li >
							<a href=".html" title="Tour de Flex">Tour de Flex</a>
						</li>
						<li >
							<a href="about-licensing.html" title="License & Trademarks">License & Trademarks</a>
						</li>
						<li >
							<a href="about-people.html" title="The Team">The Team</a>
						</li>
						<li >
							<a href="about-history.html" title="Project History">Project History</a>
						</li>
						<li >
							<a href="about-assets.html" title="Logo and Assets">Logo and Assets</a>
						</li>
						<li class="nav-header">Community</li>
						<li >
							<a href="community-getinvolved.html" title="How to get involved">How to get involved</a>
						</li>
						<li >
							<a href="community-mailinglists.html" title="Mailing Lists">Mailing Lists</a>
						</li>
						<li >
							<a href="community-showcase.html" title="Flex Showcase">Flex Showcase</a>
						</li>
						<li >
							<a href="community-3rdparty.html" title="Third-Party">Third-Party</a>
						</li>
						<li >
							<a href="https://cwiki.apache.org/confluence/display/FLEX/Apache+Flex+Wiki" title="Wiki" class="externalLink">Wiki</a>
						</li>
						<li >
							<a href="http://blogs.apache.org/flex/" title="Blog" class="externalLink">Blog</a>
						</li>
						<li class="nav-header">Development</li>
						<li >
							<a href="dev-faq.html" title="Developer FAQ">Developer FAQ</a>
						</li>
						<li >
							<a href="dev-sourcecode.html" title="Source Code">Source Code</a>
						</li>
						<li >
							<a href="https://issues.apache.org/jira/browse/FLEX" title="Bug-Tracker" class="externalLink">Bug-Tracker</a>
						</li>
						<li class="nav-header">Documentation</li>
						<li class="active">
							<a href="#" title="Getting Started">Getting Started</a>
						</li>
						<li >
							<a href="doc-videos.html" title="Videos">Videos</a>
						</li>
						<li >
							<a href=".html" title="Flex ASDocs">Flex ASDocs</a>
						</li>
						<li >
							<a href=".html" title="FlexJS ASDocs">FlexJS ASDocs</a>
						</li>
						<li >
							<a href="http://help.adobe.com/en_US/flex/using/index.html" title="Documentation Reference (Old)" class="externalLink">Documentation Reference (Old)</a>
						</li>
						<li >
							<a href=".html" title="FlexUnit Tutorials">FlexUnit Tutorials</a>
						</li>
						<li >
							<a href=".html" title="FlexUnit ASDocs">FlexUnit ASDocs</a>
						</li>
						<li class="nav-header">About Apache</li>
						<li >
							<a href="http://www.apache.org" title="The Apache Software Foundation Website" class="externalLink">The Apache Software Foundation Website</a>
						</li>
						<li >
							<a href="http://www.apache.org/foundation/contributing.html" title="Donations" class="externalLink">Donations</a>
						</li>
						<li >
							<a href="http://www.apache.org/foundation/sponsorship.html" title="Sponsorship" class="externalLink">Sponsorship</a>
						</li>
						<li >
							<a href="http://www.apache.org/foundation/thanks.html" title="Thanks" class="externalLink">Thanks</a>
						</li>
						<li class="nav-header">Download Flex</li>
						<li >
							<a href=".html" title="SDK Installer (For Application Developers)">SDK Installer (For Application Developers)</a>
						</li>
						<li >
							<a href=".html" title="SDK Source Code (For SDK Developers)">SDK Source Code (For SDK Developers)</a>
						</li>
						<li >
							<a href=".html" title="SDK Binaries (For SDK Developers)">SDK Binaries (For SDK Developers)</a>
						</li>
						<li >
							<a href=".html" title="FlexJS 'beta' (For Application Developers)">FlexJS 'beta' (For Application Developers)</a>
						</li>
						<li >
							<a href=".html" title="FlexUnit (For Application Developers)">FlexUnit (For Application Developers)</a>
						</li>
						<li >
							<a href=".html" title="Blaze DS Source Code">Blaze DS Source Code</a>
						</li>
						<li >
							<a href=".html" title="Tour De Flex Source Code">Tour De Flex Source Code</a>
						</li>
						<li >
							<a href=".html" title="Squiggly Spell Checker">Squiggly Spell Checker</a>
						</li>
						<li >
							<a href=".html" title="Flex Utilities">Flex Utilities</a>
						</li>
						<li >
							<a href=".html" title="Previous Versions">Previous Versions</a>
						</li>
					</ul>
				</div>
				<div class="span3 bottom-description">
					<blockquote>This is a very good project doing interesting
                and valuable things.</blockquote>
				</div>
			</div>
		</div>
	</footer>

	<div class="container subfooter">
		<div class="row">
			<div class="span12">
				<p class="pull-right"><a href="#">Back to top</a></p>
				<p class="copyright">Copyright &copy;2016 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All Rights Reserved.</p>
				<p><a href="http://github.com/andriusvelykis/reflow-maven-skin" title="Reflow Maven skin">Reflow Maven skin</a> by <a href="http://andrius.velykis.lt" target="_blank" title="Andrius Velykis">Andrius Velykis</a>.</p>
			</div>
		</div>
	</div>

	<!-- Le javascript
	================================================== -->
	<!-- Placed at the end of the document so the pages load faster -->
	<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

	<script src="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
	<script src="./js/lightbox.min.js"></script>
	<script src="./js/reflow-scroll.js"></script>

	<script src="./js/reflow-skin.js"></script>

	</body>
</html>
