sadsad

 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;
   }
  }
 }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值