2011-01-26 4 views
1

J'utilise Flex Builder 3 pour construire ce qui sera un projet assez important. Je souffre de modules qui se chevauchent et d'un conflit entre application/module. Ma structure ressemble à quelque chose comme ce qui suit:Comment spécifiez-vous ApplicationDomain.currentDomain lors du chargement via SWFLoader?

Application principale | --Recrutement 2 | --Recrutement 3 | --Recrutement 3

(Application 2 est un enfant de l'application principale, tandis que les applications 2 et 3 sont frères et sœurs, les enfants de l'application 2)

En réalité, c'est plus compliqué que cela, mais c'est là que les problèmes commencent. À la fin, je pourrais avoir l'arbre quatre ou peut-être cinq niveaux de profondeur ... Si cela peut être fait pour travailler. Le fichier d'application principal est constitué d'un peu plus d'une toile et d'une série de boutons. La deuxième application contient un navigateur d'onglets vertical avec des canevas comme conteneurs, une liste et une arborescence dans deux des onglets. L'application 3 est très compliquée, de même qu'un calendrier d'événements dans l'application 4. Tant qu'aucune interaction n'a lieu, tout se charge et apparaît bien. En regardant les modules 2 et 3, les deux ont ComboBoxes. Le premier à accéder fonctionne correctement, mais le second renvoie des erreurs, ce que je considère être des violations de bac à sable. J'ai converti les applications 2, 3 et 4 en modules et utilisé ModuleLoader pour les amener et pour spécifier ApplicationDomain = currentDomain. Maintenant, les fonctions de calendrier dans le dernier (maintenant le module) ne parviennent pas à afficher du tout. Je peux tracer des valeurs et lancer des boîtes d'alerte, donc je sais que c'est au moins le chargement, mais rien ne s'affiche. Comme un test, j'ai dépouillé ce module pour ne rien contenir du tout sauf une étiquette qui dit "Test" et il affiche bien, mais dès que je l'ai mis dans un composant Canvas, rien ne s'affiche. Mais si je convertis ce module à une application et le charge en utilisant un SWFLoader, il affiche bien, mais je suis certain que dès que j'essaie d'introduire une autre application en parallèle, je vais être de retour où je Commencé. Je peux facilement utiliser so.data et LocalConnections pour transmettre des informations, mais comment charger un fichier SWF en tant qu'application et spécifier un domaine d'application? Ce serait bien d'avoir tout comme currentDomain et de bien jouer.

Répondre

2

Je ne suis pas sûr de comprendre vraiment votre blurb, mais si votre titre est précis, vous pouvez trouver the sample on this page utile.

+0

Cela peut le faire, cependant lorsque j'essaie d'utiliser SecurityDomain, il me donne une violation de bac à sable. Si je supprime cette ligne, cela semble fonctionner, jusqu'à présent. Je vais devoir construire quelques autres "Applications" et voir comment ils se comportent. Je pense que le LoaderContext est ce dont j'avais besoin. private function setMemberPanel(): void { \t var contexte: LoaderContext = new LoaderContext(); // \t context.securityDomain = SecurityDomain.currentDomain; \t context.applicationDomain = new ApplicationDomain(); \t memberContext.loaderContext = context; \t memberContext.source = "btl_memberTools.swf"; } –

Questions connexes