2009-03-18 6 views
0

je quelque chose comme çaComment accéder à un fichier de configuration dans deux fichiers MXML différents

1.mxml

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="init()"> 
    <mx:Script source="_Public.as"/> 
</mx:Application> 

_public.as

[Bindable] 
public var config:XML; 
public function init():void 
{ 
    var request:URLRequest = new URLRequest("config/config.xml"); 
    try { 
    loader.load(request); 
    } catch (error:Error) { 
    trace("Unable to load requested document."); 
    } 
    loader.addEventListener(Event.COMPLETE,init_continue); 
} 

public function init_continue(event:Event):void { 
    config = new XML(loader.data); 
} 

La config est rempli et je peux utilise le. Après que j'appuie sur un bouton dans 1.mxml et il crée 2.mxml popup (sans l'init).

config.xml

<data> 
    <LOGIN_BUTTON>Inloggen</LOGIN_BUTTON> 
</data> 

Maintenant, je veux accéder config.LOGIN_BUTTON. Mais config ne me donne rien.

Est-il possible d'avoir "accès" à la configuration, ou pas?

+0

Pouvez-vous modifier la tho question ont un titre significatif? Je ne l'ai pas assez bien compris pour faire un titre popper. – Tomalak

Répondre

1

D'abord, ajoutez toujours un écouteur d'abord, et la charge d'émission() que par la suite, comme ceci:

loader.addEventListener(Event.COMPLETE, init_continue); 
    try { 
    loader.load(request); 
    } catch (error:Error) { 
    trace("Unable to load requested document."); 
    } 

Sinon, la charge pourrait être assez rapide juste pour passer votre auditeur. Ensuite, à votre question. Je ne suis pas sûr de ce que vous entendez par "accéder" à config.LOGIN_BUTTON. Mais si les données xml sont chargées avec succès, la structure XML doit être accessible en tant que config.LOGIN_BUTTON, c'est-à-dire que cette dernière doit retourner un objet XMLList. Je crains d'avoir besoin d'une explication plus claire de ce que vous essayez d'accomplir pour donner une meilleure réponse que cela.

Modifier: en fonction de votre suivi, je pense qu'il serait préférable d'avoir une variable distincte pour l'étiquette, comme ceci:

[Bindable] 
private var buttonLabel:String; 
.... 
public function init_continue(event:Event):void { 
    config = new XML(loader.data); 
    buttonLabel = config.BUTTON_LABEL; 
} 

Et puis dans 2.mxml:

<mx:FormItem label="{buttonLabel}" required="true" 

Je ne suis pas sûr si la liaison de variable fonctionne à l'intérieur d'une structure XML.

0

Vous pouvez y accéder en utilisant

Application.application.config.LOGIN_BUTTON 
+0

Ok merci, cela fonctionne quand je change 2.mxml en application au lieu de Titlewindow. Existe-t-il un autre moyen de conserver 2.mxml une Titlewindow et d'accéder à config.LOGIN_BUTTON? –

Questions connexes