2010-11-24 38 views
2

J'ai déjà vu des questions similaires, mais rien à voir avec ce que j'essaie de comprendre, alors voilà. J'ai une application flexible avec de nombreux états d'affichage, dont certains sont utilisés fréquemment, d'autres non. Actuellement, tous ces états résident dans un fichier mxml de sorte qu'un seul fichier swf est généré et chargé dans le navigateur client. Je voudrais modulariser ces états d'affichage en les séparant dans différents fichiers sources et en chargeant simplement les états d'un fichier dans un autre, cependant, je veux toujours que l'utilisateur ait seulement à charger un fichier swf. Ma principale raison à cela est d'éviter d'avoir des fichiers sources de plus de 10 000 lignes. Existe-t-il un moyen standard de résoudre ce problème?états de modularité et de vue flex

Merci.

Répondre

5

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> 
+0

Merci beaucoup. C'était très utile. –