Flex project setup - Five use cases for multiple source paths linking

I had a chance to give a talk at the Wellington User Group recently. In the process of preparing it, I discovered a few new tricks and solidified a few old ones.

What I will describe here is how you can take advantage of source import to set up your flex project to enable parallel development of an official release, unit test, web service test, ui development and experimentation, mock data.

At its worst, you will end up with a reserved workspace in Flash Builder that contains the following projects:

I found that such an approach is worth considering any time you end in that scenario:

Other members of the team depend on you to get their job done.

You cannot compromise your ability to deliver a stable release at short notice.

All the variants that will be introduced have this in common. They exploit the ability there is, in Flex to define multiple source paths for your code, with some of these source paths being a reference to the source path of another Flex project.

To get to the view illustrated below, select a project in your Flex/Flash Builder environment. Right click to pop the navigation menu. Select Properties... at the very bottom of the menu. This should reveal the properties panel. In that panel, select Flex Build Path in the navigation menu on the left. Then make clear that the Source Path tab is selected.

Ah, I should make clear that the purpose is to initiate a discussion and invite feedback, not to come up with a framework.

To illustrate all this, we will use this very simple app below. Completely made up for the purpose of this demo, but with two important characteristics.

The landing page contains a somewhat complex visual component, with a parallax effect. Not per se complex in terms of programming. Complex in terms of providing assets and parameters that work. That's an area where the designer may appreciate some support.

The "Art of war" page has its content dynamically loaded at runtime.

You are missing some Flash content that should appear here! Perhaps your browser cannot display it, or maybe it did not initialize correctly.