Bonjour,
Je suis depuis qq jours sur les chargement de module et d application au sein d une application Air.
J ai eu plusieurs cas a gérer sachant que Air est lancée localement et que ma subbapplication est chargée dans un SWFLoader :
<mx:SWFLoader id="swfLoader" width="100%" height="100%" ioError="onModuleLoadError(event)"/>
Lorsque ma subapplication (une "Application" compilée en swf et interragissant avec mon application principale grace a une API) est chargée en locale j arrive a gerer les 2 cas voulus :
- sandbox : Propre systeme de securité, donc je ne peux pas proceder a un "drag and drop" d'un element de ma subapplication vers un panel (par exemple) de mon application principale. Pour cela je met un "file:/" devant l emplacement de ma subbaplication.
swfLoader.source = "file://subbapplication.swf"
- non sandbox : Meme systeme de securité, donc je peux proceder a un "drag and drop" d'un element de ma subapplication vers un panel (par exemple) de mon application principale. Pour cela je met un "app:/" devant l emplacement de ma subbaplication.
swfLoader.source = "app://subbapplication.swf"
Lorsque ma subapplication (une "Application" compilée en swf et interragissant avec mon application principale grace a une API) est chargée depuis un serveur web je n arrive a gerer qu un des cas :
- Ma subapplication est toujours chargée en sandbox, donc avec son propre systeme de securité et je ne peux jamais proceder au drag n drop entre les 2 appli (la sub et la principale)
swfLoader.source = "http://localhost/server/subbapplication.swf"
Je souhaiterais pouvoir charger cette subapplication depuis un serveur web au sein du meme systeme de securité que mon application AIR.
Donc j ai tenté :
swfLoader.trustContent = true;
ou encore
1 2 3 4
| var context:LoaderContext = new LoaderContext();
context.securityDomain = SecurityDomain.currentDomain;
context.applicationDomain = new ApplicationDomain();
swfLoader.loaderContext = context; |
Maiis j obtiens la meme erreur au chargement de la subbappli:
"Error #2142: Security sandbox violation: local SWF files cannot use the LoaderContext.securityDomain property"
J ai donc essayé :
Security.allowDomain("*")
ou
Security.allowInsecureDomain("*")
au sein de mon application AIR principale mais obtient l erreur
"Error #3207: Application-sandbox content cannot access this feature"
J ai donc enqueté du cote des crossDomain et ai procédé au chargement d un fichier "nonSandbox.xml" au sein de mon appli Air principale :
Security.loadPolicyFile("http://localhost/server/NonSandbox.xml");
avec le NonSnadbox.xml :
1 2 3
| <cross-domain-policy>
<allow-access-from domain="*" to-ports="*" />
</cross-domain-policy> |
Pas de crash mais toujours pas de drag and drop non plus...
Je commence a me demander si c est possible cette histoire !!!
Est ce que quelqu un est en mesure de m eclairer sur la question ?
MERCI d avance !!!!!
Partager