//!-- UTF8 import com.johannesaxner.util.XMLLoader; import com.johannesaxner.util.SWFLoader; import mx.utils.Delegate; /** * Application class for Jerlov * @author Johannes Axner */ class se.jerlov.jerlov.Application { /** * An internal instance of the application for singleton reasons */ public static var instance:Application; /** * A reference to the target MovieClip */ private var target_mc:MovieClip; /** * Maximum height of application */ private var maxHeight:Number; /** * Maximum width of application */ private var maxWidth:Number; /** * Background MovieClip */ private var background_mc:MovieClip; /** * Base MovieClip */ private var base_mc:MovieClip; private var jobs_mc:MovieClip; private var navigation_mc:MovieClip; private var scene_mc:MovieClip; var navigationLoader:SWFLoader; var sceneLoader:SWFLoader; /** * Class constructor * @param target Target MovieClip */ private function Application() { _quality = "BEST"; Stage.scaleMode = "noScale"; Stage.align = "LT"; Stage.addListener( this ); this.navigation_mc._visible = false; } function init( target_mc:MovieClip ) { this.target_mc = target_mc; this.navigationLoader = new SWFLoader(); this.sceneLoader = new SWFLoader(); this.navigationLoader.addEventListener( 'onLoadInit', Delegate.create( this, onNavigationLoadInit ) ); this.navigationLoader.addEventListener( 'onLoadStart', Delegate.create( this, onNavigationLoadStart ) ); target_mc.navigation_mc = this.navigationLoader.loadClip( target_mc.navigation_mc, "navigation_mc", "navigation.swf" ); target_mc.scene_mc = this.sceneLoader.loadClip( target_mc.scene_mc, "scene_mc", "archive.swf" ); /* this.navigation_mc.onLoad = function() { this.navigation_mc.stopMove(); } */ //this.navigation_mc.init( this.target_mc ); } function onNavigationLoadStart( eventObj:Object ) { trace("loading of navigation started") this.navigation_mc._visible = false; } function onNavigationLoadInit( eventObj:Object ) { trace("loading of navigation done") this.navigation_mc._visible = true; } /** * Loads a movieClip from an external .swf to the stage * * @usage * @param movieClip_mc Target movieClip object * @param movieClip_str String with name of target movieClip * @param swf_str Name of the .swf file to load * @param x Where to place the clip on the x axis * @param y Where to place the clip on the y axis * @param width The width which to scale the movieClip to * @param height The height which to scale the movieClip to * @return Void */ function loadClip( movieClip_mc:MovieClip, movieClip_str:String, swf_str:String, x:Number, y:Number, width:Number, height:Number ):MovieClip { var loader:MovieClipLoader = new MovieClipLoader(); var loadListener:Object = new Object(); loadListener.onLoadStart = function( loadTarget ) { // do something fancy later on }; loadListener.onLoadProgress = function( loadTarget, bytesLoaded:Number, bytesTotal:Number ) { // do something fancy later on }; loadListener.onLoadError = function( loadTarget, target_mc ) { // do something fancy later on }; loadListener.onLoadComplete = function( loadTarget ) { // do something fancy later on }; loadListener.onLoadInit = function( loadTarget ) { if ( x ) { loadTarget._x = x; } if ( y ) { loadTarget._y = y; } if ( width ) { loadTarget._width = width; } if ( height ) { loadTarget._height = height; } }; loader.addListener( loadListener ); loader.loadClip( swf_str, movieClip_mc ); return movieClip_mc; } /** * Returns the next depth for the target clip * * @usage * @return Number */ public function getNextDepth() { return this.target_mc.getNextHighestDepth(); } /** * Moves the MovieClip on resize */ function onResize() { /* this.target_mc._x = Math.round( (Stage.width/2)-430 ); this.target_mc._y = Math.round( (Stage.height/2)-265 ); */ } /** * Returns an application instance (singleton) * @param target Target MovieClip */ public static function getInstance() { if ( Application.instance == null ) { Application.instance = new Application(); } return Application.instance; } }