home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Mobiclic 150
/
MOBICLIC150.ISO
/
pc
/
DATA
/
HOTE
/
launcher_as3
/
launcher.swf
/
scripts
/
com
/
milanpresse
/
launcher
/
Module.as
< prev
next >
Wrap
Text File
|
2012-12-18
|
12KB
|
371 lines
package com.milanpresse.launcher
{
import com.milanpresse.engine.Engine;
import com.milanpresse.engine.config.Config;
import com.milanpresse.engine.errors.GameEngineError;
import com.milanpresse.engine.medias.Media;
import com.milanpresse.engine.medias.MediaSwf;
import com.milanpresse.engine.typeargument.ModuleCallerParameter;
import com.milanpresse.tools.GlobalesFunctions;
import flash.display.DisplayObject;
import flash.display.Loader;
import flash.display.MovieClip;
import flash.events.Event;
public class Module
{
protected var _mediaSwf:MediaSwf = null;
protected var _initParams:ModuleCallerParameter;
protected var _moduleMain;
private var _loader:Loader;
private var _callback:Function = null;
private var _callback_getConfig:Function = null;
private var _callback_start:Function = null;
private var _callback_moduleAnimIsInit:Function = null;
private var _moduleController:CapsuleAlgo;
private var _engine:Engine;
private var _hostAS2:HoteAS2;
private var _config:Config = null;
private var _loadAnim:MediaSwf;
private var _loadBar:MediaSwf;
public function Module(param1:ModuleCallerParameter, param2:CapsuleAlgo, param3:HoteAS2)
{
super();
this._initParams = param1;
this._moduleController = param2;
this._hostAS2 = param3;
this._mediaSwf = this._moduleController.engine.getMedia({"id":this._initParams.id}) as MediaSwf;
if(this._mediaSwf == null)
{
throw new GameEngineError("Could not find info of module " + this._initParams.id + ". Check the ressource info is available in xml of the project.");
}
this._moduleMain = this._mediaSwf.swf;
}
public function get moduleMain() : DisplayObject
{
return this._moduleMain;
}
public function get id() : String
{
return this._mediaSwf.id;
}
public function get asVersion() : Number
{
return this._mediaSwf.asVersion;
}
public function get mediaSwf() : MediaSwf
{
return this._mediaSwf;
}
public function init(param1:Function) : void
{
var changeModuleAS2Params:Object = null;
var prop:String = null;
var callback:Function = param1;
this._callback = callback;
if(this._mediaSwf.data.nodexml.hasOwnProperty("@fps"))
{
this._moduleController.engine.setFrameRate(Number(this._mediaSwf.data.nodexml.@fps));
}
else
{
this._moduleController.engine.setFrameRate(12);
}
if(this.asVersion == 3)
{
this._moduleController.maskShow();
this.animLoad();
}
else
{
this._moduleController.maskHide();
this._mediaSwf.swf = new MovieClip();
this._config = new Config();
this._config.moduleName = this.id;
this._config.projetNumStr = this.id.substr(3,6);
this._config.rubriqueCode = this.id.substr(0,3);
this._mediaSwf.swf.sleep = function():void
{
_hostAS2.sleepModule();
};
this._mediaSwf.swf.wake = function():void
{
_hostAS2.wakeModule();
};
this._mediaSwf.swf.config = this._config;
this._moduleController.launchFirstModule = false;
this._moduleController.config.layers["activeAS2Module"].visible = true;
changeModuleAS2Params = {};
for(prop in this._initParams.CallerParameters)
{
changeModuleAS2Params[prop] = this._initParams.CallerParameters[prop];
}
changeModuleAS2Params.id = this._initParams.id;
this._hostAS2.loadModule(changeModuleAS2Params,this.moduleAS2Loaded);
this._moduleController.activeModuleDestroy();
}
}
private function animLoad() : void
{
var _loc1_:* = null;
var _loc2_:String = null;
if(this._moduleController.launchFirstModule)
{
this._moduleController.launchFirstModule = false;
this.animLoaded1();
}
else
{
if(this._mediaSwf.data.nodexml.hasOwnProperty("@loadAnim"))
{
_loc2_ = this._mediaSwf.data.nodexml.@loadAnim.toString();
if(_loc2_ == "MODULE")
{
_loc1_ = GlobalesFunctions.getDirectoryPathOfFile(this._mediaSwf.path) + "/C_" + this.id + "/C_" + this.id + ".swf";
}
else if(_loc2_ == "RUBRIQUE")
{
_loc1_ = GlobalesFunctions.getDirectoryPathOfFile(GlobalesFunctions.getDirectoryPathOfFile(this._mediaSwf.path)) + "/_COMMUN/load_anim/C_" + this.id.substr(0,6) + ".swf";
}
else
{
_loc1_ = this._moduleController.engine.config.modulePath + "/DATA/_COMMUN/load_anim_modules/" + this._mediaSwf.data.nodexml.@loadAnim.toString() + ".swf";
}
}
else
{
_loc1_ = this._moduleController.engine.config.modulePath + "/DATA/_COMMUN/load_anim_modules/default_load_anim.swf";
}
this._loadAnim = this._moduleController.engine.getMedia({
"id":this._initParams.id + "_LOAD_ANIM",
"type":"swf",
"path":_loc1_,
"initIfNotReady":true,
"callback":this.animLoaded1
}) as MediaSwf;
}
}
private function animLoaded1(param1:Media = null) : void
{
var _loc2_:* = this._moduleController.engine.config.modulePath + "/DATA/_COMMUN/load_bar/load_bar.swf";
this._loadBar = this._moduleController.engine.getMedia({
"id":this._initParams.id + "_LOAD_BAR",
"type":"swf",
"path":_loc2_,
"initIfNotReady":true,
"callback":this.animLoaded2
}) as MediaSwf;
}
private function animLoaded2(param1:Media = null) : void
{
if(this._loadAnim != null)
{
this._moduleController.engine.config.layers["load_anim"].addChild(this._loadAnim.swf);
this._loadAnim.swf.gotoAndPlay(1);
this._loadAnim.swf.mouseEnabled = false;
this._loadAnim.swf.mouseChildren = false;
this._loadAnim.swf.enabled = false;
}
this._moduleController.engine.config.layers["load_anim"].addChild(this._loadBar.swf);
this._loadBar.swfContent.loadbar.gotoAndStop(1);
this._loadBar.swfContent.stage.addEventListener(Event.ENTER_FRAME,this.loadBarEnterFrameHandler);
this._mediaSwf.init(this.moduleAS3Loaded);
this._moduleController.activeModuleDestroy();
}
private function loadBarEnterFrameHandler(param1:Event) : void
{
if(this._mediaSwf.swf != undefined)
{
this._loadBar.swfContent.loadbar.gotoAndStop(Math.floor(this._mediaSwf.swf.engine.config.loadedBytes + 1));
}
}
private function animDestroy() : void
{
if(this._loadAnim != null)
{
this._loadAnim.swf.visible = false;
this._loadAnim.swf.gotoAndStop(1);
this._moduleController.engine.destroyMedia(this._initParams.id + "_LOAD_ANIM");
this._loadAnim = null;
}
this._loadBar.swfContent.stage.removeEventListener(Event.ENTER_FRAME,this.loadBarEnterFrameHandler);
this._loadBar.swf.visible = false;
this._loadBar.swf.gotoAndStop(1);
this._moduleController.engine.destroyMedia(this._initParams.id + "_LOAD_BAR");
this._loadBar = null;
}
protected function moduleAS2Loaded() : void
{
}
public function moduleIsInit() : void
{
this._callback();
}
public function moduleIsStart() : void
{
this._callback_start();
}
public function moduleAnimIsInit() : void
{
this._moduleController.moduleAnimIsInit();
}
public function hostIsInitialized() : void
{
this._moduleController.hostIsInitialized();
}
protected function moduleAS3Loaded() : void
{
this._moduleMain = this._mediaSwf.swf;
this._moduleController.moduleAnimIsInit();
this._moduleMain.init({
"context":this._moduleController.config.context,
"callback":function():void
{
_config = _mediaSwf.swf.config as Config;
_callback();
},
"initParams":{"callerParameters":this._initParams}
});
}
public function start(param1:Function = null) : void
{
this._callback_start = param1;
if(this.asVersion == 3)
{
this._moduleMain.start();
this.animDestroy();
if(this._callback_start != null)
{
this._callback_start();
}
}
else
{
this._hostAS2.moduleStart(this._callback_start);
}
}
public function getConfig(param1:Function) : void
{
var _loc2_:Config = null;
var _loc3_:Object = null;
this._callback_getConfig = param1;
if(this.asVersion == 3)
{
_loc2_ = this._mediaSwf.swf.config as Config;
_loc3_ = {
"id":this.id,
"rubriqueCode":_loc2_.rubriqueCode,
"moduleNum":_loc2_.moduleNum
};
this.getConfigReturn(_loc3_);
}
else
{
this._hostAS2.getModuleConfig(this.getConfigReturn);
}
}
public function get config() : Config
{
return this._config;
}
public function get musicOn() : Boolean
{
return this.config.musicOn;
}
public function set musicOn(param1:Boolean) : void
{
if(this.asVersion == 3)
{
if(param1 == true)
{
this.mediaSwf.swf.engine.musicBackgroundTurnOn();
}
else
{
this.mediaSwf.swf.engine.musicBackgroundTurnOff();
}
this._hostAS2.musicOn = param1;
}
else
{
this._hostAS2.musicOn = param1;
}
}
public function get subtitlesOn() : Boolean
{
return this.config.subtitlesOn;
}
public function set subtitlesOn(param1:Boolean) : void
{
if(this.asVersion == 3)
{
this.mediaSwf.swf.engine.setSubtitles(param1);
}
else
{
this._hostAS2.subtitlesOn = param1;
}
}
private function getConfigReturn(param1:Object) : void
{
this._callback_getConfig(param1);
}
public function destroy() : void
{
if(this.asVersion == 3)
{
this._moduleMain.visible = false;
this._moduleMain.parent.removeChild(this._moduleMain);
this._mediaSwf.destroy();
this._mediaSwf = null;
this._moduleMain = null;
}
else
{
this._hostAS2.closeModule();
}
}
}
}