Il y a deux façons de faire ce que vous demandez. Le premier est ce que vous semblez demander, le second est ce que je recommanderais.
Première:
Créer votre application main.mxml puis créer component1.mxml séparés et les fichiers component2.mxml pour chacun de vos états. Ensuite, dans votre application le configurer comme ceci:
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" xmlns:local="*">
<s:states>
<s:State name="State1"/>
<s:State name="State2"/>
</s:states>
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<local:Component1 includeIn="State1"/>
<local:Component2 includeIn="State2"/>
</s:Application>
La deuxième façon, et celui que je recommande à cause de votre description de l'application, il se décompose en plusieurs modules swf avec une application swf. De cette façon, l'utilisateur ne télécharge que ce qu'il prévoit d'utiliser. Dans ce scénario, faites de même que précédemment mais créez des modules à la place des composants.
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" xmlns:local="*">
<s:states>
<s:State name="State1"/>
<s:State name="State2"/>
</s:states>
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<mx:ModuleLoader url="Component1.swf" includeIn="State1"/>
<mx:ModuleLoader url="Component2.swf" includeIn="State2"/>
</s:Application>
Merci beaucoup. C'était très utile. –