307 lines
9.3 KiB
ActionScript
307 lines
9.3 KiB
ActionScript
package com.yy.vip.pk.yyshow
|
|
{
|
|
import com.yy.vip.pk.event.JsCallEvent;
|
|
import com.yy.vip.pk.service.JsService;
|
|
import com.yy.vip.pk.util.DeposeUtil;
|
|
import com.yy.vip.pk.util.UrlUtil;
|
|
|
|
import flash.display.Loader;
|
|
import flash.display.MovieClip;
|
|
import flash.display.Sprite;
|
|
import flash.events.Event;
|
|
import flash.events.IOErrorEvent;
|
|
import flash.events.MouseEvent;
|
|
import flash.events.SecurityErrorEvent;
|
|
import flash.net.URLRequest;
|
|
import flash.net.navigateToURL;
|
|
import flash.system.Security;
|
|
import flash.text.TextField;
|
|
import flash.utils.clearTimeout;
|
|
import flash.utils.setTimeout;
|
|
|
|
[SWF(width=260,height=75,frameRate=15)]
|
|
public class YYShowBrocast extends MovieClip
|
|
{
|
|
private var it : uint
|
|
private var logoLoader :Loader;
|
|
private var bgLoader:Loader;
|
|
private var bgSprite:Sprite;
|
|
private var label1:TextField;
|
|
private var label2:TextField;
|
|
private var iconLoader:Loader;
|
|
private var label3:TextField;
|
|
private var label4:TextField;
|
|
private var data:Object;
|
|
private var mainSprite:Sprite;
|
|
private var logoSprite:Sprite;
|
|
private var bgLoaderUI:Sprite;
|
|
private var iconLoaderUI:Sprite;
|
|
public function YYShowBrocast()
|
|
{
|
|
Security.allowDomain("*");
|
|
Security.allowInsecureDomain("*");
|
|
if(stage)
|
|
initHandler();
|
|
else
|
|
this.addEventListener(Event.ADDED_TO_STAGE,this.initHandler);
|
|
}
|
|
protected function initHandler(event:Event = null):void
|
|
{
|
|
this.visible = false;
|
|
bgSprite = new Sprite();
|
|
this.addChild(bgSprite);
|
|
|
|
logoSprite = new Sprite();
|
|
bgSprite.addChild(logoSprite);
|
|
|
|
mainSprite = new Sprite();
|
|
mainSprite.x = 65;
|
|
bgSprite.addChild(mainSprite);
|
|
|
|
label1 = new TextField();
|
|
label2 = new TextField();
|
|
|
|
|
|
label3 = new TextField();
|
|
label4 = new TextField();
|
|
|
|
mainSprite.addChild(label1);
|
|
mainSprite.addChild(label2);
|
|
|
|
mainSprite.addChild(label3);
|
|
mainSprite.addChild(label4);
|
|
|
|
this.addEventListener(MouseEvent.CLICK,clickHandler);
|
|
|
|
JsService.getInstance().addEventListener(JsCallEvent.CALL_BY_MAIN_SWF,callByMainSwfHandler);
|
|
|
|
JsService.getInstance().start(JsService.PUBLIC_TOP_YYSHOW_SWF_ID);
|
|
|
|
try{
|
|
this.stage.addEventListener(MouseEvent.RIGHT_CLICK,rightClickHandler);
|
|
}
|
|
catch(e:Error)
|
|
{
|
|
|
|
}
|
|
}
|
|
|
|
protected function rightClickHandler(event:MouseEvent):void
|
|
{
|
|
event.stopImmediatePropagation();
|
|
}
|
|
protected function clickHandler(event:MouseEvent):void
|
|
{
|
|
if(this.data && this.data.url)
|
|
JsService.getInstance().callMainSwf(JsService.CMD_SHOW_ETIT_NOTICE_PANEL,JsService.PUBLIC_TOP_YYSHOW_SWF_ID,this.data.url);
|
|
}
|
|
|
|
protected function callByMainSwfHandler(event:JsCallEvent):void
|
|
{
|
|
var data:Object = event.data;
|
|
this.data = data;
|
|
if(event.cmd == JsService.CMD_BROCAST_YYSHOW)
|
|
{
|
|
this.visible = false;
|
|
bgSprite.graphics.clear();
|
|
bgSprite.graphics.beginFill(data.bgColor,1);
|
|
bgSprite.graphics.drawRect(0,0,260,75);
|
|
bgSprite.graphics.endFill();
|
|
|
|
clearLoader();
|
|
|
|
var bgUrl:String = data.bgUrl;
|
|
|
|
if(!bgLoaderUI)
|
|
{
|
|
bgLoaderUI = new Sprite()
|
|
bgSprite.addChildAt(bgLoaderUI,0);
|
|
}
|
|
if(!bgLoader){
|
|
bgLoader = new Loader();
|
|
bgLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,bgCompleteHandler)
|
|
bgLoader.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR,ioErrorHandler);
|
|
bgLoader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,ioErrorHandler);
|
|
bgLoaderUI.addChild(bgLoader);
|
|
}
|
|
if(bgUrl.indexOf("http")!=-1 && (bgUrl.indexOf(".png")!=-1 || bgUrl.indexOf(".jpg")!=-1))
|
|
bgLoader.load(new URLRequest(UrlUtil.checkHttps(bgUrl)));
|
|
label1.width = 80;
|
|
label1.x = 15;
|
|
label1.y = 10;
|
|
label1.textColor = uint(data.msgInfo.tip1Color);
|
|
label1.text = data.msgInfo.tip1;
|
|
|
|
if(!iconLoaderUI)
|
|
{
|
|
iconLoaderUI = new Sprite()
|
|
mainSprite.addChild(iconLoaderUI);
|
|
}
|
|
if(!iconLoader){
|
|
iconLoader = new Loader();
|
|
iconLoader.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR,ioErrorHandler);
|
|
iconLoader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,ioErrorHandler);
|
|
iconLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,iconLoaderComplete);
|
|
iconLoaderUI.addChild(iconLoader);
|
|
}
|
|
|
|
iconLoaderUI.x = label1.x + label1.textWidth + 20;
|
|
iconLoaderUI.y = 10;
|
|
if(data.msgInfo.img )
|
|
{
|
|
var iconUrl:String = data.msgInfo.img;
|
|
if(iconUrl.indexOf("http")!=-1 && (iconUrl.indexOf(".png")!=-1 || iconUrl.indexOf(".jpg")!=-1))
|
|
iconLoader.load(new URLRequest(UrlUtil.checkHttps(iconUrl)));
|
|
}
|
|
label2.width = 90;
|
|
label2.x = iconLoaderUI.x + 30;
|
|
label2.y = 10;
|
|
label2.textColor = uint(data.msgInfo.nickColor);
|
|
label2.text = data.msgInfo.nick;
|
|
|
|
label3.width = 90;
|
|
label3.x = 15;
|
|
label3.y = 36;
|
|
label3.textColor = uint(data.msgInfo.roleNameColor);
|
|
label3.text = data.msgInfo.roleName;
|
|
|
|
label4.width = 90;
|
|
label4.x = label3.x + label3.textWidth + 5;
|
|
label4.y = 36;
|
|
label4.textColor = uint(data.msgInfo.roleTipColor);
|
|
label4.text = data.msgInfo.roleTip;
|
|
|
|
if(data.logo)
|
|
{
|
|
if(!logoLoader)
|
|
{
|
|
logoLoader = new Loader();
|
|
logoLoader.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR,ioErrorHandler);
|
|
logoLoader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,ioErrorHandler);
|
|
logoLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,logoLoaderCompleteHandler);
|
|
}
|
|
if(data.logo.indexOf("http")!=-1 && (data.logo.indexOf(".png")!=-1 || data.logo.indexOf(".jpg")!=-1))
|
|
logoLoader.load(new URLRequest(UrlUtil.checkHttps(data.logo)));
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
protected function logoLoaderCompleteHandler(event:Event):void
|
|
{
|
|
if(logoLoader && logoSprite)
|
|
{
|
|
logoLoader.x = 3;
|
|
logoLoader.y = 3;
|
|
logoLoader.scaleX = logoLoader.scaleY = 0.85;
|
|
logoSprite.addChild(logoLoader);
|
|
}
|
|
if(logoLoader && logoLoader.contentLoaderInfo)
|
|
{
|
|
logoLoader.contentLoaderInfo.removeEventListener(SecurityErrorEvent.SECURITY_ERROR,ioErrorHandler);
|
|
logoLoader.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR,ioErrorHandler);
|
|
logoLoader.contentLoaderInfo.removeEventListener(Event.COMPLETE,logoLoaderCompleteHandler);
|
|
}
|
|
}
|
|
|
|
protected function iconLoaderComplete(event:Event):void
|
|
{
|
|
if(iconLoaderUI && iconLoader)
|
|
iconLoaderUI.addChild(iconLoader);
|
|
|
|
if(iconLoader)
|
|
{
|
|
iconLoader.contentLoaderInfo.removeEventListener(SecurityErrorEvent.SECURITY_ERROR,ioErrorHandler);
|
|
iconLoader.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR,ioErrorHandler);
|
|
iconLoader.contentLoaderInfo.removeEventListener(Event.COMPLETE,iconLoaderComplete);
|
|
}
|
|
}
|
|
|
|
protected function bgCompleteHandler(event:Event):void
|
|
{
|
|
if(!bgLoader)
|
|
return;
|
|
|
|
bgLoader.contentLoaderInfo.removeEventListener(Event.COMPLETE,bgCompleteHandler)
|
|
bgLoader.contentLoaderInfo.removeEventListener(SecurityErrorEvent.SECURITY_ERROR,ioErrorHandler);
|
|
bgLoader.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR,ioErrorHandler);
|
|
|
|
this.mouseEnabled = this.buttonMode = this.useHandCursor = this.data.url?true:false;
|
|
|
|
JsService.getInstance().showYYShowDiv();
|
|
this.visible = true;
|
|
try{
|
|
var contentWidth:Number = bgLoader.contentLoaderInfo.width;
|
|
var contentHeight:Number = bgLoader.contentLoaderInfo.height;
|
|
|
|
var rx:Number = 260/ contentWidth;
|
|
var ry:Number = 75 / contentHeight;
|
|
bgLoaderUI.scaleY = ry;
|
|
bgLoaderUI.scaleX = rx;
|
|
clearTimeout(it);
|
|
it = setTimeout(function ():void{
|
|
depose();
|
|
}
|
|
,data.showTime * 1000);
|
|
}
|
|
catch(e:Error){
|
|
depose();
|
|
}
|
|
}
|
|
private function depose():void
|
|
{
|
|
clearTimeout(it);
|
|
clearLoader();
|
|
JsService.getInstance().hideYYShowDiv();
|
|
}
|
|
protected function ioErrorHandler(event:Event):void
|
|
{
|
|
|
|
}
|
|
|
|
private function clearLoader():void
|
|
{
|
|
try{
|
|
|
|
this.visible = false;
|
|
|
|
clearTimeout(it);
|
|
|
|
this.mouseEnabled = this.buttonMode = this.useHandCursor = false;
|
|
|
|
DeposeUtil.removeFromStage(bgLoader);
|
|
if(bgLoader)
|
|
{
|
|
|
|
bgLoader.unloadAndStop(true);
|
|
bgLoader.contentLoaderInfo.removeEventListener(Event.COMPLETE,bgCompleteHandler)
|
|
bgLoader.contentLoaderInfo.removeEventListener(SecurityErrorEvent.SECURITY_ERROR,ioErrorHandler);
|
|
bgLoader.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR,ioErrorHandler);
|
|
}
|
|
bgLoader = null;
|
|
|
|
DeposeUtil.removeFromStage(iconLoader);
|
|
if(iconLoader)
|
|
{
|
|
iconLoader.unloadAndStop(true);
|
|
iconLoader.contentLoaderInfo.removeEventListener(SecurityErrorEvent.SECURITY_ERROR,ioErrorHandler);
|
|
iconLoader.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR,ioErrorHandler);
|
|
iconLoader.contentLoaderInfo.removeEventListener(Event.COMPLETE,iconLoaderComplete);
|
|
}
|
|
iconLoader = null;
|
|
|
|
DeposeUtil.removeFromStage(logoLoader);
|
|
if(logoLoader)
|
|
{
|
|
logoLoader.unloadAndStop(true);
|
|
logoLoader.contentLoaderInfo.removeEventListener(SecurityErrorEvent.SECURITY_ERROR,ioErrorHandler);
|
|
logoLoader.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR,ioErrorHandler);
|
|
logoLoader.contentLoaderInfo.removeEventListener(Event.COMPLETE,logoLoaderCompleteHandler);
|
|
}
|
|
logoLoader = null;
|
|
}
|
|
catch(e:Error){
|
|
}
|
|
}
|
|
}
|
|
} |