266 lines
6.9 KiB
ActionScript
266 lines
6.9 KiB
ActionScript
package
|
|
{
|
|
import com.greensock.plugins.EndArrayPlugin;
|
|
import com.greensock.plugins.FramePlugin;
|
|
import com.greensock.plugins.TransformAroundCenterPlugin;
|
|
import com.greensock.plugins.TweenPlugin;
|
|
import com.yy.vip.pk.base.components.MyAlert;
|
|
import com.yy.vip.pk.effect.service.GiftService;
|
|
import com.yy.vip.pk.service.AppService;
|
|
import com.yy.vip.pk.service.BaseService;
|
|
import com.yy.vip.pk.service.JsService;
|
|
import com.yy.vip.pk.util.JSONUtil;
|
|
import com.yy.vip.pk.util.Tracer;
|
|
import com.yy.vip.pk.view.AppView;
|
|
import com.yy.vip.pk.view.module.entereffect.EnterEffectUtil;
|
|
|
|
import flash.display.Sprite;
|
|
import flash.display.StageAlign;
|
|
import flash.display.StageScaleMode;
|
|
import flash.events.Event;
|
|
import flash.events.IOErrorEvent;
|
|
import flash.events.SecurityErrorEvent;
|
|
import flash.external.ExternalInterface;
|
|
import flash.net.LocalConnection;
|
|
import flash.net.URLLoader;
|
|
import flash.net.URLRequest;
|
|
import flash.system.Capabilities;
|
|
import flash.system.Security;
|
|
import flash.utils.clearInterval;
|
|
import flash.utils.getTimer;
|
|
import flash.utils.setInterval;
|
|
|
|
import org.flexlite.domCore.Injector;
|
|
import org.flexlite.domUI.components.Alert;
|
|
import org.flexlite.domUI.core.Theme;
|
|
import org.flexlite.domUI.events.CloseEvent;
|
|
import org.flexlite.domUI.managers.SystemManager;
|
|
import org.flexlite.domUI.skins.themes.VectorTheme;
|
|
|
|
[SWF(frameRate="20")]
|
|
public class main extends Sprite
|
|
{
|
|
|
|
private var appView:AppView;
|
|
private var _configXML:Object;
|
|
private var _commonXML:Object;
|
|
|
|
private var _giftXML:Object;
|
|
private var _enterXML:Object;
|
|
|
|
public function main()
|
|
{
|
|
super();
|
|
Security.allowDomain('*');
|
|
Security.allowInsecureDomain("*");
|
|
|
|
if(stage)
|
|
{
|
|
initStage();
|
|
}
|
|
else
|
|
{
|
|
addEventListener(Event.ADDED_TO_STAGE,initStage);
|
|
}
|
|
}
|
|
|
|
public function get enterXML():Object
|
|
{
|
|
return _enterXML;
|
|
}
|
|
|
|
public function set enterXML(value:Object):void
|
|
{
|
|
_enterXML = value;
|
|
BaseService.getInstance().enterXML = _enterXML;
|
|
_enterXMLFlag = true;
|
|
this.commit();
|
|
}
|
|
|
|
public function get giftXML():Object
|
|
{
|
|
return _giftXML;
|
|
}
|
|
|
|
public function set giftXML(value:Object):void
|
|
{
|
|
_giftXML = value;
|
|
BaseService.getInstance().giftXML = _giftXML;
|
|
_giftXMLFlag = true;
|
|
this.commit();
|
|
}
|
|
|
|
public function get configXML():Object
|
|
{
|
|
return _configXML;
|
|
}
|
|
|
|
public function set configXML(value:Object):void
|
|
{
|
|
_configXML = value;
|
|
BaseService.getInstance().configXML = value;
|
|
_configFlag = true;
|
|
this.commit();
|
|
}
|
|
|
|
public function get commonXML():Object
|
|
{
|
|
return _commonXML;
|
|
}
|
|
public function set commonXML(value:Object):void
|
|
{
|
|
_commonXML = value;
|
|
BaseService.getInstance().commonXML = value;
|
|
BaseService.getInstance().bgXML = value.bgs;
|
|
_commonConfigFlag = true;
|
|
this.commit();
|
|
}
|
|
|
|
private function commit():void
|
|
{
|
|
if(_enterXMLFlag && _giftXMLFlag && _configFlag && _initStageFlag && _commonConfigFlag)
|
|
{
|
|
BaseService.getInstance().registAppService( 1,AppService.getInstance());
|
|
GiftService.getInstance().initConfig();
|
|
BaseService.getInstance().initCommon();
|
|
EnterEffectUtil.initEnterEffect();
|
|
|
|
initApp();
|
|
}
|
|
}
|
|
|
|
private function initStage(event:Event = null):void
|
|
{
|
|
BaseService.getInstance().stage = stage;
|
|
|
|
var localDomainLC:LocalConnection = new LocalConnection();
|
|
var domainName :String= localDomainLC.domain;
|
|
BaseService.getInstance().domainName = domainName;
|
|
TweenPlugin.activate([TransformAroundCenterPlugin]);
|
|
TweenPlugin.activate([FramePlugin]);
|
|
TweenPlugin.activate([EndArrayPlugin]);
|
|
Injector.mapClass(Theme,VectorTheme);
|
|
|
|
removeEventListener(Event.ADDED_TO_STAGE,initStage);
|
|
stage.addEventListener(Event.RESIZE,resizeHandler);
|
|
stage.align = StageAlign.TOP_LEFT;
|
|
stage.scaleMode = StageScaleMode.NO_SCALE;
|
|
|
|
_initStageFlag = true;
|
|
this.commit();
|
|
|
|
}
|
|
|
|
private var _w:Number;
|
|
private var _h:Number;
|
|
private var _configFlag:Boolean;
|
|
private var _initStageFlag:Boolean;
|
|
private var _enterXMLFlag:Boolean;
|
|
private var _giftXMLFlag:Boolean;
|
|
private var _commonConfigFlag:Boolean;
|
|
|
|
|
|
public function initApp():void{
|
|
|
|
Tracer.debugLog("Capabilities.os : " + Capabilities.os,Tracer.SYS_LOG,true);
|
|
Tracer.debugLog("PKCONFIG::MODE : " + PKCONFIG::MODE,Tracer.SYS_LOG,true);
|
|
BaseService.getInstance().PKCONFIG_MODE = PKCONFIG::MODE;
|
|
appView = new AppView();
|
|
addChild(appView);
|
|
var sm :SystemManager = new SystemManager();
|
|
addChild(sm);
|
|
checkSize();
|
|
//checkUpdateVer();
|
|
try{
|
|
ExternalInterface.call("mainLoadComplete");
|
|
}
|
|
catch(e:Error)
|
|
{
|
|
}
|
|
}
|
|
private var curReleaseVer:String;
|
|
private var tchannelLoader:URLLoader;
|
|
private function checkUpdateVer():void
|
|
{
|
|
|
|
if(!tchannelLoader)
|
|
{
|
|
tchannelLoader = new URLLoader();
|
|
tchannelLoader.addEventListener(Event.COMPLETE,loadPubVerHandler);
|
|
tchannelLoader.addEventListener(IOErrorEvent.IO_ERROR,loadPubVerErrorHandler);
|
|
tchannelLoader.addEventListener(SecurityErrorEvent.SECURITY_ERROR,loadPubVerErrorHandler);
|
|
}
|
|
tchannelLoader.load(new URLRequest("http://show.vip.yy.com/clientpkgame/config_tchannel.txt?t="+getTimer()));
|
|
}
|
|
|
|
protected function loadPubVerErrorHandler(event:Event):void
|
|
{
|
|
clearInterval(_checkforceUpdateVerIt);
|
|
}
|
|
|
|
protected function loadPubVerHandler(event:Event):void
|
|
{
|
|
var urlLoader:URLLoader = event.currentTarget as URLLoader;
|
|
var str : String = urlLoader.data;
|
|
var curVer:String;
|
|
var forceupdate:uint;
|
|
if(str)
|
|
{
|
|
var data:Object = JSONUtil.decode(str);
|
|
forceupdate = data.forceupdate;
|
|
if((!data.tests || data.tests.length == 0) && data.local == false)
|
|
{
|
|
curVer = data.release;//全量版本 + 线上的才会有强制升级功能
|
|
}
|
|
}
|
|
if(curVer)//全量版本才会有强制升级功能
|
|
{
|
|
if(!isStartCheckForceUpdateVer)
|
|
{
|
|
curReleaseVer = data.release;
|
|
if(curReleaseVer)
|
|
{
|
|
_checkforceUpdateVerIt = setInterval(checkForceUpdateVerHandler,1000);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if(curReleaseVer && curReleaseVer != curVer && forceupdate == 1)
|
|
{
|
|
clearInterval(_checkforceUpdateVerIt);
|
|
MyAlert.show("发现新版本,是否现在升级?","提示",function handler(event:CloseEvent):void{
|
|
if(event.detail == Alert.FIRST_BUTTON)
|
|
{
|
|
JsService.getInstance().reloadPage();
|
|
}
|
|
},"立刻升级","下次");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
private var isStartCheckForceUpdateVer :Boolean = false;
|
|
private var _checkforceUpdateVerIt :uint;
|
|
|
|
private function checkForceUpdateVerHandler():void
|
|
{
|
|
isStartCheckForceUpdateVer = true;
|
|
checkUpdateVer();
|
|
}
|
|
protected function resizeHandler(event:Event):void
|
|
{
|
|
checkSize();
|
|
}
|
|
private function checkSize():void
|
|
{
|
|
_w = stage.stageWidth;
|
|
_h = stage.stageHeight;
|
|
if(appView)
|
|
{
|
|
appView.setSizeWH(_w,_h);
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
}
|