package
{
import com.base.display.BaseEncryptLoader;
import com.base.events.BaseEvent;
import com.engine.display.BaseDisplayObject;
import com.flashdynamix.utils.SWFProfiler;
import flash.display.Loader;
import flash.display.StageAlign;
import flash.display.StageQuality;
import flash.display.StageScaleMode;
import flash.events.Event;
import flash.events.ProgressEvent;
import flash.external.ExternalInterface;
import flash.net.URLRequest;
import flash.system.Security;
import rpg.game.system.RpgLocator;
import rpg.game.system.SystemParam;
public class game_index extends BaseDisplayObject
{
public var preloader:PreloadUI;
private var iloader:BaseEncryptLoader;
private var userID:String;
private var userName:String;
private var gameCrolePanel:*;
private var gameMainPanel:*;
private var xmlconfig:String;
private var model1:String;
private var model2:String;
private var stu:int=1;
public var sgameLoader:Loader;
public function game_index()
{
Security.allowDomain("*");
addEventListener(Event.ADDED_TO_STAGE, this.init);
}
public function init(e:Event):void
{
removeEventListener(Event.ADDED_TO_STAGE, this.init);
var screen:Object=ExternalInterface.call("getScreen");
if (screen != null)
{
SystemParam.GAMEWIDTH=screen.width;
SystemParam.GAMEHEIGHT=screen.height;
SystemParam.GAMETILESWIDTH=screen.width / 2;
SystemParam.GAMETILESHEIGHT=screen.height / 2;
}
// userID=loaderInfo.parameters.userid;
userID="www";
xmlconfig=loaderInfo.parameters.xmlconfig;
model1=loaderInfo.parameters.model1;
model2=loaderInfo.parameters.model2;
stage.frameRate = SystemParam.FRAMERATE;
stage.align = StageAlign.TOP_LEFT;
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.quality = StageQuality.BEST;
stage.showDefaultContextMenu = false;
stage.tabChildren=false;
stage.stageFocusRect = false;
stage.showDefaultContextMenu=false;
SWFProfiler.init(stage,this)
//初始化预加载条
preloader=new PreloadUI();
sgameLoader=new Loader();
sgameLoader.load(new URLRequest("popop_FT.swf")) ;
sgameLoader.x=(SystemParam.GAMEWIDTH-preloader.width)/2;
sgameLoader.y=0//(600-preloader.height-200)/2;
preloader.x=(SystemParam.GAMEWIDTH-preloader.width)/2;
preloader.y=510//(stage.stageWidth-preloader.height)/2-100;
this.addChild(preloader);
this.addChild(sgameLoader);
//加载创建角色界面
ExternalInterface.addCallback("croleFullScreenAddCallbackHandler", fullScreenHandler);
iloader=new BaseEncryptLoader();
iloader.addEventListener(BaseEvent.COMPLETE,completeHandler);
iloader.addEventListener(ProgressEvent.PROGRESS,progressHandler);
if(model1!=null)
{
iloader.load(model1);
model1=null;
}else
{
iloader.load("game_crole.swf");
}
}
/**
* 创建角色swf加载完成
*/
private function completeHandler(e:BaseEvent):void
{
var screen:Object=ExternalInterface.call("getScreen");
if (screen != null)
{
SystemParam.GAMEWIDTH=screen.width;
SystemParam.GAMEHEIGHT=screen.height;
SystemParam.GAMETILESWIDTH=screen.width / 2;
SystemParam.GAMETILESHEIGHT=screen.height / 2;
}
sgameLoader.visible=false;
gameCrolePanel=e.loaderInfo.content;
iloader.removeEventListener(BaseEvent.COMPLETE,completeHandler);
iloader.removeEventListener(ProgressEvent.PROGRESS,progressHandler);
gameCrolePanel.setParam(this.userID,this.xmlconfig);
gameCrolePanel.addEventListener("croleComplete",croleComplete);
addChildAt(gameCrolePanel,0);
gameCrolePanel.x=(SystemParam.GAMEWIDTH-gameCrolePanel.width)/2;
gameCrolePanel.y=(SystemParam.GAMEHEIGHT-gameCrolePanel.height)/2;
preloader.gotoAndStop(0);
preloader.visible=false;
}
public function fullScreenHandler(width:Number, height:Number):void
{
if(gameCrolePanel!=null){
gameCrolePanel.x=(width-gameCrolePanel.width)/2;
gameCrolePanel.y=(height-gameCrolePanel.height)/2;
}
if(preloader!=null)
{
preloader.x=(width-preloader.width)/2;
sgameLoader.x=preloader.x
}
}
/**
* 选择角色完成-加载游戏界面
*/
private function croleComplete(e:BaseEvent):void
{
//trace("创建角色完成");
gameCrolePanel.removeEventListener("croleComplete",croleComplete);
RpgLocator.getInstance().roleID=e.data.roleID;
RpgLocator.getInstance().roleName=e.data.roleName;
RpgLocator.getInstance().chatIP=e.data.chatIP;
RpgLocator.getInstance().chatPort=e.data.chatPort;
RpgLocator.getInstance().chatHttpPort=e.data.chatHttpPort;
RpgLocator.getInstance().gameIP=e.data.gameIP;
RpgLocator.getInstance().gamePort=e.data.gamePort;
RpgLocator.getInstance().gameHttpPort=e.data.gameHttpPort;
gameCrolePanel.clear();
removeChild(gameCrolePanel);
gameCrolePanel=null;
preloader.gotoAndStop(0);
sgameLoader.visible=true;
preloader.visible=true;
iloader.addEventListener(BaseEvent.COMPLETE,gameCompleteHandler);
iloader.addEventListener(ProgressEvent.PROGRESS,progressHandler);
stu=2;
if(model2!=null)
{
iloader.load(model2);
model2=null;
}else
{
iloader.load("game_main.swf");
}
}
private function gameCompleteHandler(e:BaseEvent):void
{
gameMainPanel=e.loaderInfo.content;
iloader.removeEventListener(BaseEvent.COMPLETE,gameCompleteHandler);
iloader.removeEventListener(ProgressEvent.PROGRESS,progressHandler);
iloader=null;
gameMainPanel.setParam(
[this.userID,
this.userName,
RpgLocator.getInstance().roleID,
RpgLocator.getInstance().roleName,
RpgLocator.getInstance().chatIP,
RpgLocator.getInstance().chatPort,
RpgLocator.getInstance().chatHttpPort,
RpgLocator.getInstance().gameIP,
RpgLocator.getInstance().gamePort,
RpgLocator.getInstance().gameHttpPort,
xmlconfig]
);
gameMainPanel.addEventListener("gameReady",gameReady);
gameMainPanel.addEventListener("gameProgress",gameProgress);
gameMainPanel.visible=false;
addChildAt(gameMainPanel,0);
RpgLocator.instance=null;
}
private function gameReady(e:BaseEvent):void
{
sgameLoader.visible=false;
(sgameLoader.content as Object).clear();
this.removeChild(sgameLoader);
sgameLoader=null;
gameMainPanel.removeEventListener("gameReady",gameReady);
gameMainPanel.removeEventListener("gameProgress",gameProgress);
removeChild(preloader);
preloader=null;
stu=0;
gameMainPanel.visible=true;
gameMainPanel=null;
}
private function gameProgress(e:BaseEvent):void
{
this.preloader.gotoAndStop(e.data);
}
private function progressHandler(e:ProgressEvent):void
{
switch(stu)
{
case 1:
this.preloader.gotoAndStop(int(e.bytesLoaded/e.bytesTotal*100));
break;
case 2:
this.preloader.gotoAndStop(int(e.bytesLoaded/e.bytesTotal*50));
break;
}
}
}
}
{
import com.base.display.BaseEncryptLoader;
import com.base.events.BaseEvent;
import com.engine.display.BaseDisplayObject;
import com.flashdynamix.utils.SWFProfiler;
import flash.display.Loader;
import flash.display.StageAlign;
import flash.display.StageQuality;
import flash.display.StageScaleMode;
import flash.events.Event;
import flash.events.ProgressEvent;
import flash.external.ExternalInterface;
import flash.net.URLRequest;
import flash.system.Security;
import rpg.game.system.RpgLocator;
import rpg.game.system.SystemParam;
public class game_index extends BaseDisplayObject
{
public var preloader:PreloadUI;
private var iloader:BaseEncryptLoader;
private var userID:String;
private var userName:String;
private var gameCrolePanel:*;
private var gameMainPanel:*;
private var xmlconfig:String;
private var model1:String;
private var model2:String;
private var stu:int=1;
public var sgameLoader:Loader;
public function game_index()
{
Security.allowDomain("*");
addEventListener(Event.ADDED_TO_STAGE, this.init);
}
public function init(e:Event):void
{
removeEventListener(Event.ADDED_TO_STAGE, this.init);
var screen:Object=ExternalInterface.call("getScreen");
if (screen != null)
{
SystemParam.GAMEWIDTH=screen.width;
SystemParam.GAMEHEIGHT=screen.height;
SystemParam.GAMETILESWIDTH=screen.width / 2;
SystemParam.GAMETILESHEIGHT=screen.height / 2;
}
// userID=loaderInfo.parameters.userid;
userID="www";
xmlconfig=loaderInfo.parameters.xmlconfig;
model1=loaderInfo.parameters.model1;
model2=loaderInfo.parameters.model2;
stage.frameRate = SystemParam.FRAMERATE;
stage.align = StageAlign.TOP_LEFT;
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.quality = StageQuality.BEST;
stage.showDefaultContextMenu = false;
stage.tabChildren=false;
stage.stageFocusRect = false;
stage.showDefaultContextMenu=false;
SWFProfiler.init(stage,this)
//初始化预加载条
preloader=new PreloadUI();
sgameLoader=new Loader();
sgameLoader.load(new URLRequest("popop_FT.swf")) ;
sgameLoader.x=(SystemParam.GAMEWIDTH-preloader.width)/2;
sgameLoader.y=0//(600-preloader.height-200)/2;
preloader.x=(SystemParam.GAMEWIDTH-preloader.width)/2;
preloader.y=510//(stage.stageWidth-preloader.height)/2-100;
this.addChild(preloader);
this.addChild(sgameLoader);
//加载创建角色界面
ExternalInterface.addCallback("croleFullScreenAddCallbackHandler", fullScreenHandler);
iloader=new BaseEncryptLoader();
iloader.addEventListener(BaseEvent.COMPLETE,completeHandler);
iloader.addEventListener(ProgressEvent.PROGRESS,progressHandler);
if(model1!=null)
{
iloader.load(model1);
model1=null;
}else
{
iloader.load("game_crole.swf");
}
}
/**
* 创建角色swf加载完成
*/
private function completeHandler(e:BaseEvent):void
{
var screen:Object=ExternalInterface.call("getScreen");
if (screen != null)
{
SystemParam.GAMEWIDTH=screen.width;
SystemParam.GAMEHEIGHT=screen.height;
SystemParam.GAMETILESWIDTH=screen.width / 2;
SystemParam.GAMETILESHEIGHT=screen.height / 2;
}
sgameLoader.visible=false;
gameCrolePanel=e.loaderInfo.content;
iloader.removeEventListener(BaseEvent.COMPLETE,completeHandler);
iloader.removeEventListener(ProgressEvent.PROGRESS,progressHandler);
gameCrolePanel.setParam(this.userID,this.xmlconfig);
gameCrolePanel.addEventListener("croleComplete",croleComplete);
addChildAt(gameCrolePanel,0);
gameCrolePanel.x=(SystemParam.GAMEWIDTH-gameCrolePanel.width)/2;
gameCrolePanel.y=(SystemParam.GAMEHEIGHT-gameCrolePanel.height)/2;
preloader.gotoAndStop(0);
preloader.visible=false;
}
public function fullScreenHandler(width:Number, height:Number):void
{
if(gameCrolePanel!=null){
gameCrolePanel.x=(width-gameCrolePanel.width)/2;
gameCrolePanel.y=(height-gameCrolePanel.height)/2;
}
if(preloader!=null)
{
preloader.x=(width-preloader.width)/2;
sgameLoader.x=preloader.x
}
}
/**
* 选择角色完成-加载游戏界面
*/
private function croleComplete(e:BaseEvent):void
{
//trace("创建角色完成");
gameCrolePanel.removeEventListener("croleComplete",croleComplete);
RpgLocator.getInstance().roleID=e.data.roleID;
RpgLocator.getInstance().roleName=e.data.roleName;
RpgLocator.getInstance().chatIP=e.data.chatIP;
RpgLocator.getInstance().chatPort=e.data.chatPort;
RpgLocator.getInstance().chatHttpPort=e.data.chatHttpPort;
RpgLocator.getInstance().gameIP=e.data.gameIP;
RpgLocator.getInstance().gamePort=e.data.gamePort;
RpgLocator.getInstance().gameHttpPort=e.data.gameHttpPort;
gameCrolePanel.clear();
removeChild(gameCrolePanel);
gameCrolePanel=null;
preloader.gotoAndStop(0);
sgameLoader.visible=true;
preloader.visible=true;
iloader.addEventListener(BaseEvent.COMPLETE,gameCompleteHandler);
iloader.addEventListener(ProgressEvent.PROGRESS,progressHandler);
stu=2;
if(model2!=null)
{
iloader.load(model2);
model2=null;
}else
{
iloader.load("game_main.swf");
}
}
private function gameCompleteHandler(e:BaseEvent):void
{
gameMainPanel=e.loaderInfo.content;
iloader.removeEventListener(BaseEvent.COMPLETE,gameCompleteHandler);
iloader.removeEventListener(ProgressEvent.PROGRESS,progressHandler);
iloader=null;
gameMainPanel.setParam(
[this.userID,
this.userName,
RpgLocator.getInstance().roleID,
RpgLocator.getInstance().roleName,
RpgLocator.getInstance().chatIP,
RpgLocator.getInstance().chatPort,
RpgLocator.getInstance().chatHttpPort,
RpgLocator.getInstance().gameIP,
RpgLocator.getInstance().gamePort,
RpgLocator.getInstance().gameHttpPort,
xmlconfig]
);
gameMainPanel.addEventListener("gameReady",gameReady);
gameMainPanel.addEventListener("gameProgress",gameProgress);
gameMainPanel.visible=false;
addChildAt(gameMainPanel,0);
RpgLocator.instance=null;
}
private function gameReady(e:BaseEvent):void
{
sgameLoader.visible=false;
(sgameLoader.content as Object).clear();
this.removeChild(sgameLoader);
sgameLoader=null;
gameMainPanel.removeEventListener("gameReady",gameReady);
gameMainPanel.removeEventListener("gameProgress",gameProgress);
removeChild(preloader);
preloader=null;
stu=0;
gameMainPanel.visible=true;
gameMainPanel=null;
}
private function gameProgress(e:BaseEvent):void
{
this.preloader.gotoAndStop(e.data);
}
private function progressHandler(e:ProgressEvent):void
{
switch(stu)
{
case 1:
this.preloader.gotoAndStop(int(e.bytesLoaded/e.bytesTotal*100));
break;
case 2:
this.preloader.gotoAndStop(int(e.bytesLoaded/e.bytesTotal*50));
break;
}
}
}
}