2009-05-14 5 views

Répondre

0

Vous pouvez utiliser des espaces de noms et configurer l'espace de noms actuel (DEV/RELEASE) dans vos options de compilation.

CONFIG::release 
public function connect() 
{ 
    //connect to release url 
} 

CONFIG::dev 
public function connect() 
{ 
    //connect to dev url 
} 

ensuite définir ces options pour le compilateur:

-define=CONFIG::release,false 
-define=CONFIG::dev,true 
+0

Tant de haine pour une solution parfaitement viable! –

0

Je suggère soit d'utiliser un fichier de configuration ou de changer votre fichier hosts pour pointer des domaines vers des serveurs localhost ou dev sur votre machine de développement. Avec cette dernière option, vous utilisez toujours vos URL de production dans le code, mais votre machine de développement va les résoudre sur votre machine locale car elle vérifie d'abord le fichier hosts.

0

La meilleure approche ici est d'extérioriser ces informations dans un fichier de configuration - peut-être un fichier XML - qui est chargé via une URL relative. Le fichier de configuration peut vous regarder ceci:

<config> 
    <serviceEndpoint>http://www.mydomain.com/services</serviceEndpoint> 
</config> 

Assurez-vous de nommer vos éléments XML avec des noms de variables valides ActionScript ou vous pouvez rencontrer des difficultés à travailler avec le fichier (par exemple, les expressions E4X peut devenir difficile

.

Vous pouvez ensuite utiliser HTTPService pour charger «config.xml» qui est placé à côté du fichier SWF de votre application lorsqu'il est déployé, ce qui vous permettra de repointer un fichier SWF hébergé sur n'importe quel domaine vers un backend hébergé ailleurs. et se connectent à un serveur de développement partagé

Comp L'intégration de ces informations dans votre fichier SWF est très inflexible et constitue une mauvaise pratique.

0

Je généralement regarder le url dans l'objet contentLoaderInfo soit dans l'application (Flex - http://livedocs.adobe.com/flex/201/langref/mx/core/Application.html#url) ou objet d'affichage racine (Flash - http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/display/LoaderInfo.html#url). Si l'URL commence par "fichier", vous savez que vous êtes dans votre développement/IDE, si c'est "http", il est exécuté dans un navigateur. Si vous travaillez seulement dans le navigateur, vous pouvez également passer un paramètre à l'objet qui a quelque chose comme

{ 
    url: $_SERVER['SERVER_NAME']; 
} 

et effectuer une méthode init/démarrage pour commuter en fonction sur le chemin de l'application est en cours d'exécution sous.

0

J'ai eu ce problème dans une application AIR que j'écris et qui touche une application Rails via WebORB.

J'ai juste besoin de basculer entre http://localhost et http://fakeproductionurl.com selon que je courais dans Flex Builder (via ADL).

C'est ce que je fini par utiliser:

if (NativeApplication.nativeApplication.publisherID != "") { 
    return "http://fakeproductionurl.com"; 
} 
else { 
    return "http://localhost"; 
} 

Il ne vous donne pas la possibilité de basculer entre les différents environnements 3+, mais il est un moyen très facile de basculer entre les environnements de développement/production.

Questions connexes