Всем привет.Есть такая ситуация, долго объяснять зачем это, но в общем, есть главный контейнер который находится на домене example.com, он загружает флешку с другого домена, а эта флешку загружает третью флешку на текущем домене. Тут идет принцип матрешки. Одна загружается в другую, другая в третью и т.п. В общем, при загрузке главной containerLoader LoadFlexA , все отображается отлично, но в LoadFlexA загружается еще и флешка LoadFlexB, которая уже не отображается, вопрос почему. Есть предположение, что я упускаю какой-то момент в lifecycle flex , но вот какой - ума не приложу. АТТЭНШН То что я не указал Security.allowDomain - то это так задумано. Буду очень благодарен
ЗЫ: Не загружается код, поэтому выкладываю его сюда
containerLoader:
Код AS3:
private var loaderContainer:Loader = new Loader;
public function containerLoader()
{
/*Security.allowDomain("*");
Security.allowInsecureDomain("*");*/
var query:String = "http://test_load/LoadFlexA.swf";
var urlReq:URLRequest = new URLRequest(query);
loaderContainer.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoadComplete);
loaderContainer.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onError);
loaderContainer.addEventListener("mx.managers.SystemManager.isBootstrapRoot", systemManagerHandler);
loaderContainer.addEventListener("mx.managers.SystemManager.isStageRoot", systemManagerHandler);
loaderContainer.load(urlReq)
addChild(loaderContainer);
}
protected function systemManagerHandler(event:Event):void
{
// TODO Auto-generated method stub
trace();
}
protected function onError(event:Event):void
{
// TODO Auto-generated method stub
}
protected function onLoadComplete(event:Event):void
{
}
function onFlexSwfLoaded (vEvent:Event) :void
{
//mClip.accessInternalPublicProperty = true; // or something
LoadFlexA:
Код AS3:
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" applicationComplete="application1_applicationCompleteHandler(event)" backgroundAlpha="0">
<fx:Script>
<![CDATA[
import mx.events.FlexEvent;
protected function application1_applicationCompleteHandler(event:FlexEvent):void
{
// TODO Auto-generated method stub
}
]]>
</fx:Script>
<fx:Declarations>
<!-- Разместить невизуальные элементы (например, службы или объекты значений) -->
</fx:Declarations>
<s:SWFLoader source="LoadFlexB.swf"/>
<s:Button label="hello world" width="50" height="50" x="100" y="100"/>
</s:Application>
LoadFlexB:
Код AS3:
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" backgroundAlpha="0">
<fx:Declarations>
<!-- Разместить невизуальные элементы (например, службы или объекты значений) -->
</fx:Declarations> <s:Button label="hello world111" width="70" height="70"/>
</s:Application>
ЗЫ: Для тех кто не понял, идут такие этапы - conainerLoader load LoadFlexA; LoadFlexA load LoadFlexB