PDA

Просмотр полной версии : загрузка флекс swf во флэш (4.0-OK, 4.5.1-не OK)


djyamato
26.09.2011, 01:28
Не отображается swf откомпиленный из-под flex 4.5.1
А откомпиленный из-под 4.0 отображается

В чем причина?

Вот код загрузчика

package
{
import flash.display.DisplayObject;
import flash.display.MovieClip;
import flash.display.Loader;
import flash.display.StageScaleMode;
import flash.display.StageAlign;
import flash.display.Sprite;

import flash.events.Event;
import flash.events.IOErrorEvent;
import flash.events.ProgressEvent;
import flash.events.DataEvent;

import flash.display.LoaderInfo;
import flash.net.URLRequest;

import fl.controls.TextArea;

import div0.classes.interfaces.IFlexComponentInterface;
import div0.classes.events.FlexComponentEvent;



public class wrapper extends Sprite implements IFlexComponentInterface
{
public var info:TextArea;

private var krpano_parsepath:Function = null;
private var plugin_path:String = null;
private var plugin_obj:Object = null;
public static var krpano:krpano_as3_interface = null;

private static var _THE_PATH:String = "network/testPlugin/Main.swf";

public function wrapper()
{
info.appendText("\nWRAPPER stage="+stage);
if (stage == null)
{
this.addEventListener(Event.ADDED_TO_STAGE, this.startplugin);
}
else
{
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
registerEvent(null);
}
}

public function doYourThing():void
{
//info.appendText("interface Maethos");
}

private function startplugin(event:Event):void
{
trace("added to stage");
info.appendText("\n addedToStage");
this.removeEventListener(Event.ADDED_TO_STAGE, this.startplugin);
krpano = krpano_as3_interface.getInstance();

if (krpano.get("version") < "1.0.7")
{
return;
}
else
{
info.appendText("\nlistening for panno events...");
krpano.addPluginEventListener(this, krpano_as3_interface.PLUGINEVENT_REGISTER, this.registerEvent);
krpano.addPluginEventListener(this, krpano_as3_interface.PLUGINEVENT_UPDATE, this.updateEvent);
}
}


private function registerEvent(event:DataEvent):void
{
trace("loading component "+_THE_PATH);
info.appendText("\nregisterEvent krpano="+krpano);
// загрузка флексовского компонента
var loader:Loader = new Loader();
// Add complete event listener
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);

loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, onProgress);

loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onError);

loader.addEventListener("mx.managers.SystemManager.isBootstrapRoot", systemManagerHandler);
loader.addEventListener("mx.managers.SystemManager.isStageRoot", systemManagerHandler);


if(loaderInfo.parameters.pluginSwf)
{
info.appendText("\nloading flexplugin "+loaderInfo.parameters.pluginSwf);
loader.load(new URLRequest(loaderInfo.parameters.pluginSwf));
}
else
{
info.appendText("\nloading flexplugin "+_THE_PATH);
loader.load(new URLRequest(_THE_PATH));
}

this.addChild(loader);
loader.addEventListener(Event.ADDED_TO_STAGE,loaderAddedToStageHandler);
if(krpano)
{
krpano.call("trace(test)");
}
}
private function updateEvent(event:DataEvent):void
{
Info.appendText("\nupdateEvent");
}

private function onComplete(e:Event):void
{
trace("load complete "+e.target.content);

trace("mc="+(e.target.content as MovieClip));

info.appendText("\nlaodComplete is LoaderInfo="+(e.target is LoaderInfo));

if (e.target is LoaderInfo)
{
// Cast the target for easier use..
var l:LoaderInfo = LoaderInfo(e.target);

info.appendText("\ncontent="+l.content);
l.content.addEventListener("applicationComplete", onApplicationComplete);
l.content.addEventListener(Event.COMPLETE, flexPluginCompleteHandler);
}
}

private function systemManagerHandler(e:Event):void
{
trace("systemManagerHandler ");
e.preventDefault();
}

private function onProgress(e:ProgressEvent):void
{
var percentLoaded:String = String(e.bytesLoaded/e.bytesTotal) + "%";
trace("progress "+percentLoaded);
}

private function onError(e:IOErrorEvent):void
{
info.appendText("\nloadError "+e.text);
trace(e);
}

private function onApplicationComplete(e:Event):void
{
info.appendText("\n\nplugin ApplicationComplete");
if(e.target.application)
{
if(e.target.application is IFlexComponentInterface)
{
var myFlex:IFlexComponentInterface = IFlexComponentInterface(e.target.application);
}

}
}

protected function flexPluginCompleteHandler(event:Event):void
{
info.appendText("\n\nplugin Complete");
}
protected function loaderAddedToStageHandler(event:Event):void
{
trace("LOADER added to stage");
}
}
}