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");
}
}
}
А откомпиленный из-под 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");
}
}
}