J'ai deux fichiers swf hébergés sur différents domaines aaa.com/a.swf et bbb.com/b.swf. a.swf charge b.swf et essaye de le transtyper sur une interface. Lorsque ces deux fichiers swf sont sous le même domaine, tout fonctionne correctement. Mais quand ils sont sous des domaines différents, je reçois null après avoir lancé b.swf à l'interface implémentée IComponent. Ces deux swfs sont compilés avec use-network = true et avec le même IComponent.as.Problèmes de domaine croisés dans Flash
public class Wrapper extends Sprite
{
public function Wrapper()
{
super();
var request:URLRequest = new URLRequest("http://aaa.com/Component.swf");
var loaderContext:LoaderContext = new LoaderContext();
loaderContext.applicationDomain = ApplicationDomain.currentDomain;
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE,onLoadingComplete);
loader.load(request,loaderContext);
addChild(loader);
}
private function onLoadingComplete(event:Event):void
{
var target:LoaderInfo = event.target as LoaderInfo;
var component:IComponent = target.content as IComponent;
component.init({"s":1});
component.run();
}
}
public class Component extends Sprite implements IComponent
{
public function Component()
{
super();
Security.allowInsecureDomain("*");
}
public function init(params:Object):void
{
//some actions
}
public function run():void
{
//some actions
}
}
je suppose Wrapper est la classe de document pour a.swf et le composant est le classe de document pour b.swf. Le chargement de target.content est-il du tout? pouvez-vous le retracer? – momo
Oui, c'est. Wrapper charge le composant, puis essaie de le convertir en IComponent –