Hi Zusammen,
ich versuche nun schon seit ein paar Stunden den in der Dokumentation stehenden AS3 code, um pano2VR 2.2 panos zu laden, so umzustricken, daß dies erst durch einen button passiert.
Ziel ist es mehrere Pano so in einen Übersichtsplan einzubinden.
Mein Problem ist, daß ich zwar Tilt/Pan/Fov abfragen aber nicht wieder anwenden kann. Ich ruf die SET Befehle zusammen mit WindowSize und WindowPos unter der function initPanorama auf. Allerdings läuft diese function ins leere. Denn ich kann das ENTER_FRAME Event von initPanorama unmöglich die ganze Zeit durchrattern lassen. Meine Frage ist also, zu welcher Zeit muss ich initPanorama aufrufen?
Zum Zeitpunkt von "finished_loading" ist dies komischer weise noch nicht möglich... (Null-Objektverweis)
Nutze ich einen Button um dies nchträglich zu tun, geht es, genau so wenn ich ein delay von 1 Sekunde einbaue...
Bräuchte da mal jemand der ein bischen fitter als ich in Flash ist.
SWF-Panos in weitere SWF per Button laden
So nu hab ichs selber heraus gefunden.
Das bringt mich aber zu einer anderen Frage. Wie bekomme ich dieses Pano wieder raus aus Flash und zwar ganz. Mit:
ist es nich getan. vr ist immer noch nicht = null
Code: Select all
import flash.display.*;
import flash.net.URLRequest;
import flash.events.Event;
var vr:MovieClip = new MovieClip;
var loader:Loader = new Loader();
function initHandler(event:Event):void {
trace("initHandler: " + event);
vr = MovieClip(loader.content); // cast 'DisplayObject' to 'MovieClip'
vr.isFlash10=false; // Disable Flash 10 rendering if the container is Flash 9
}
function initPanorama(e:Event) {
if (vr.pano!=null) {
vr.pano.setWindowSize(200,100); // resize the window
vr.pano.setWindowPos(50,0); // reposition
removeEventListener( Event.ENTER_FRAME , initPanorama);
}
}
function load_swf(evt:MouseEvent) {
addEventListener( Event.ENTER_FRAME , initPanorama);
loader.contentLoaderInfo.addEventListener(Event.INIT, initHandler);
loader.load(new URLRequest("mein pano.swf"));
addChild(loader);
}
btn1.addEventListener(MouseEvent.CLICK,load_swf);
Code: Select all
vr.cleanup();
removeChild(loader);