Hi gingerwinger,
I coming back to megazine for testing it on iPad and try to take few minutes to help you.
The loaderPano.swf in just a fla for loading FPP panorama player in Megazine engine, a proxy to be clear.
Here is the source code if can help you:
import de.mightypirates.megazine.interfaces.*;
import de.mightypirates.megazine.elements.AbstractElement;
//import de.mightypirates.megazine.gui.ILibrary;
import de.mightypirates.megazine.events.*;
import de.mightypirates.megazine.events.PageEvent;
import de.mightypirates.utils.events.*;
import _as.fla.events.LEC;
import flash.events.Event;
//import GuardBunny;
//GuardBunny.mode = GuardBunny.URL_STRING;
//GuardBunny.test("regionalesbretagneenimages.fr", loaderInfo);
var numPano:String;
var booShowAide:Boolean = false;
var booPanoLoaded:Boolean = false;
var panoController:Object=null;
var myConteneur:Sprite = new Sprite();
if(root.loaderInfo.parameters.num)
{
numPano = root.loaderInfo.parameters.num;
}
var myLocalData:SharedObject;
var panorama:MovieClip;
var pageNumber:int;
var pageNumberDem:int;
var mz:IMegaZine;
var isClick:Boolean;
var lec:LEC = new LEC();
var myDragHandler:*;
var t:Timer = new Timer(500,1);
var tHandleDragDown:Timer = new Timer(500);
var pageSide:IPageSide;
var loader:Loader = new Loader();
loader.load(new URLRequest("./data/fr/files/pano.swf"));
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete);
addChild(loader);
function loadComplete (e:Event) {
t.addEventListener(TimerEvent.TIMER, initComplete);
t.start();
}
function loadCompleteReload (e:Event) {
t.addEventListener(TimerEvent.TIMER, initCompleteReload);
t.start();
}
/*
PRECHARGEMENT DES FACES DE CUBES
*/
var toCache:Array = new Array();
var preloader:Loader;
function startCache()
{
var _loc_1:URLRequest;
if (toCache[0] != null)
{
_loc_1 = new URLRequest(toCache[0]);
preloader = new Loader();
preloader.contentLoaderInfo.addEventListener(Event.COMPLETE, preloadcompleted);
preloader.load(_loc_1);
}
return;
}
function preloadcompleted(param1:Event) : void
{
toCache.shift();
startCache();
return;
}
/*
PRECHARGEMENT DES FACES DE CUBES
*/
function initComplete (e:Event)
{
t.stop();
}
function initCompleteReload(e:Event)
{
panorama = ( loader.content as MovieClip );
panorama.setArea(0,0,900,600);
panoController = panorama;
panorama.loadPanorama("xml_file=./data/fr/pano_"+numPano+".xml");
t.stop();
}
function handleDragDown()
{
//t.addEventListener(TimerEvent.TIMER, initCompleteReload);
//t.start();
this.addEventListener(MouseEvent.MOUSE_DOWN,handleDragDownEvent);
this.addEventListener(MouseEvent.MOUSE_UP,handleDragUpEvent);
}
function handleDragDownEvent(e:Event)
{
if(mouseX<75)
{
if(panoController.externals.autorotator != null)
{
panoController.externals.autorotator.disabled = 1;
}
}
}
function handleDragUpEvent(e:Event)
{
if(mouseX<75)
{
if(panoController.externals.autorotator != null)
{
panoController.externals.autorotator.disabled = 0;
}
}
}
// INIT
function megazineSetup(mz:*, page:*):void
{
pageNumber = page.number + (page.number & 1);
pageNumberDem = pageNumber;
pageSide = mz.getPageSide(pageNumber);
/*
if (pageSide.state == Constants.PAGE_SIDE_STATE_LOADED) {
// loaded, do stuff
//doStuffForPageside(pageside);
} else {
pageSide.addEventListener(StateChangeEvent.STATE_CHANGE, handleStateChange, false, 0, true);
}
*/
pageSide.addEventListener(VisibilityEvent.VISIBLE, handleVisible, false, 0, true);
// Remove if unnecessary.
pageSide.addEventListener(VisibilityEvent.INVISIBLE, handleInvisible, false, 0, true);
// Initial check if page is already visible
if (pageSide.visible) {
handleVisible(null);
} else {
handleInvisible(null);
}
//mz.addEventListener("page_change", handlePageChange, false, 0, true);
mz.addEventListener(DragAreaEvent.DRAG_AREA_OVER,myhandleDragAreaOver,false, 0, true);
mz.addEventListener(DragAreaEvent.DRAG_AREA_OUT,myhandleDragAreaOut,false, 0, true);
myLocalData = SharedObject.getLocal("isClick");
toCache.push("./data/fr/panos/"+numPano+"/pano_f.jpg");
toCache.push("./data/fr/panos/"+numPano+"/pano_r.jpg");
toCache.push("./data/fr/panos/"+numPano+"/pano_b.jpg");
toCache.push("./data/fr/panos/"+numPano+"/pano_l.jpg");
toCache.push("./data/fr/panos/"+numPano+"/pano_u.jpg");
toCache.push("./data/fr/panos/"+numPano+"/pano_d.jpg");
startCache();
}
function handleVisible(e:Event):void {
//if(!booPanoLoaded)
//{
panorama = new MovieClip();
if(loader.content)
{
//trace("loader.content: "+loader.content);
panorama = ( loader.content as MovieClip );
panorama.setArea(0,0,900,600);
panoController = panorama;
panorama.loadPanorama("xml_file=./data/fr/pano_"+numPano+".xml");
if(!myLocalData.data.isClick)
{
showAide();
}
booPanoLoaded = true
}
else
{
loader.load(new URLRequest("./data/fr/files/pano.swf"));
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadCompleteReload);
}
//}
}
// Remove if unnecessary.
function handleInvisible(e:Event):void {
// Now invisible.
if(panorama)
{
if(panoController)
{
panoController.externals.autorotator.disabled = 1;
panorama.pano.remove();
panorama.pano = null;
panorama = null;
if(loader)
{
loader.unload();
}
System.gc();
System.gc();
if(mz)
{
//mz.removeEventListener("page_change", handlePageChange);
}
}
}
}
function handleStateChange(e:StateChangeEvent):void {
if(pageNumber == pageNumberDem)
{
if (e.newState == "page_side_state_loaded") {
// now loaded
var pageside:IPageSide = IPageSide(e.currentTarget); // or e.target, I never know...
pageside.removeEventListener(StateChangeEvent.STATE_CHANGE, handleStateChange);
//doStuffForPageside(pageside);
demarrageDirect();
}
}
}
function ecouteur(e:*):void
{
trace("DOWN...");
}
function myhandleDragAreaOver(e:*):void
{
if(panoController != null && panoController.externals != null)
{
if(panoController.externals.autorotator != null)
{
panoController.externals.autorotator.disabled = 1;
}
}
}
function myhandleDragAreaOut(e:*):void
{
//si drag en dehors ???
if(panoController != null && panoController.externals != null)
{
if(panoController.externals.autorotator != null)
{
panoController.externals.autorotator.disabled = 0;
}
}
}
//handlePageChange(null);
function handlePageChange(e:*):void
{
//trace("handlePageChange...");
pageNumber = e.newPage;
if(e.newPage==pageNumber)
{
//trace("page main visible: "+numPano);
panorama = new MovieClip();
if(loader.content)
{
//trace("loader.content: "+loader.content);
panorama = ( loader.content as MovieClip );
panorama.setArea(0,0,900,600);
panoController = panorama;
panorama.loadPanorama("xml_file=./data/fr/pano_"+numPano+".xml");
if(!myLocalData.data.isClick)
{
showAide();
}
}
else
{
loader.load(new URLRequest("./data/fr/files/pano.swf"));
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadCompleteReload);
}
}
else if (e.oldPage == pageNumber)
{
if(panorama)
{
if(panoController)
{
panoController.externals.autorotator.disabled = 1;
panorama.pano.remove();
panorama.pano = null;
panorama = null;
if(loader)
{
loader.unload();
}
System.gc();
System.gc();
if(mz)
{
mz.removeEventListener("page_change", handlePageChange);
}
}
}
}
}
function demarrageDirect():void
{
//trace("demarrageDirect...");
//trace("page main visible: "+numPano);
panorama = new MovieClip();
if(loader.content)
{
//trace("loader.content: "+loader.content);
panorama = ( loader.content as MovieClip );
panorama.setArea(0,0,900,600);
panoController = panorama;
panorama.loadPanorama("xml_file=./data/fr/pano_"+numPano+".xml");
if(!myLocalData.data.isClick)
{
showAide();
}
}
else
{
loader.load(new URLRequest("./data/fr/files/pano.swf"));
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadCompleteReload);
}
}
function showAide()
{
if(!booShowAide && !isClick)
{
booShowAide = true;
myConteneur.addChild(fondAide);
myConteneur.addChild(aide);
aide.x = 0;
aide.y = 0;
addChild(myConteneur);
myConteneur.x = 290;
myConteneur.y = 270;
addEventListener(MouseEvent.MOUSE_DOWN, doDownAide);
}
}
var myFont:Font = new Futura();
//myFont.registerFont(Futura);
var fondAide:Shape = new Shape();
fondAide.graphics.beginFill(0x999999);
fondAide.graphics.drawRect(0, 0, 320, 60);
fondAide.alpha = 0.35;
/*
var myFormat:TextFormat = new TextFormat();
myFormat.size = 25;
myFormat.color = 0xffffff;
myFormat.bold = true;
myFormat.font = myFont.fontName;
myFormat.align = TextFormatAlign.CENTER;
var monAide:TextField = new TextField();
with(monAide)
{
x = 8; //coordonnée x
y = 10; //coordonnée y
defaultTextFormat = myFormat;
autoSize = TextFieldAutoSize.LEFT; //largeur et hauteur automatique à partir du bord gauche
selectable = false; // Le texte ne peut pas être sélectionné
text = "Glisser / Déplacer l'image"; // Contenu du champ de texte
}
*/
function setRegistrationPoint(s:Sprite, regx:Number, regy:Number, showRegistration:Boolean )
{
//translate movieclip
s.transform.matrix = new Matrix(1, 0, 0, 1, -regx, -regy);
//registration point.
if (showRegistration)
{
var mark:Sprite = new Sprite();
mark.graphics.lineStyle(1, 0x000000);
mark.graphics.moveTo(-5, -5);
mark.graphics.lineTo(5, 5);
mark.graphics.moveTo(-5, 5);
mark.graphics.lineTo(5, -5);
s.parent.addChild(mark);
}
}
function doDownAide (event:MouseEvent) {
removeChild(myConteneur);
//booShowAide = false;
myLocalData.data.isClick = "true";
myLocalData.flush();
removeEventListener(MouseEvent.MOUSE_DOWN, doDownAide);
}
Regards