Section 1
//BG_BODY_3 (bulletchaos_final_fla.BG_BODY_3)
package bulletchaos_final_fla {
import flash.events.*;
import flash.display.*;
public dynamic class BG_BODY_3 extends MovieClip {
public var i;
public var max;
public function BG_BODY_3(){
super();
addFrameScript(0, frame1);
}
function frame1(){
i = 0;
max = 10;
this.addEventListener(Event.ENTER_FRAME, update);
((this.parent.parent as MovieClip)["GTAnimation"] as MovieClip).addEventListener("ANIMATION_MIDDLE", refreshBg);
refreshBg();
}
public function refreshBg(event:Event=null):void{
this.gotoAndStop((Math.round(((Math.random() * this.totalFrames) - 2)) + 1));
}
public function update(event:Event=null):void{
i++;
if (i > max){
i = 0;
this.gotoAndStop(((this.currentFrame)==this.totalFrames) ? 2 : (this.currentFrame + 2));
};
}
}
}//package bulletchaos_final_fla
Section 2
//blick_380 (bulletchaos_final_fla.blick_380)
package bulletchaos_final_fla {
import flash.display.*;
public dynamic class blick_380 extends MovieClip {
public function blick_380(){
super();
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package bulletchaos_final_fla
Section 3
//blickcopy_382 (bulletchaos_final_fla.blickcopy_382)
package bulletchaos_final_fla {
import flash.display.*;
public dynamic class blickcopy_382 extends MovieClip {
public function blickcopy_382(){
super();
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package bulletchaos_final_fla
Section 4
//bossLine_261 (bulletchaos_final_fla.bossLine_261)
package bulletchaos_final_fla {
import flash.display.*;
public dynamic class bossLine_261 extends MovieClip {
public var line:MovieClip;
public function bossLine_261(){
super();
}
}
}//package bulletchaos_final_fla
Section 5
//btn_music_20 (bulletchaos_final_fla.btn_music_20)
package bulletchaos_final_fla {
import flash.display.*;
public dynamic class btn_music_20 extends MovieClip {
public function btn_music_20(){
super();
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package bulletchaos_final_fla
Section 6
//btn_sound_23 (bulletchaos_final_fla.btn_sound_23)
package bulletchaos_final_fla {
import flash.display.*;
public dynamic class btn_sound_23 extends MovieClip {
public function btn_sound_23(){
super();
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package bulletchaos_final_fla
Section 7
//btn_stop_play_25 (bulletchaos_final_fla.btn_stop_play_25)
package bulletchaos_final_fla {
import flash.display.*;
public dynamic class btn_stop_play_25 extends MovieClip {
public function btn_stop_play_25(){
super();
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package bulletchaos_final_fla
Section 8
//chooseSaver_76 (bulletchaos_final_fla.chooseSaver_76)
package bulletchaos_final_fla {
import flash.display.*;
public dynamic class chooseSaver_76 extends MovieClip {
public function chooseSaver_76(){
super();
addFrameScript(0, frame1, 1, frame2);
}
function frame1(){
stop();
}
function frame2(){
stop();
}
}
}//package bulletchaos_final_fla
Section 9
//demo_good1_93 (bulletchaos_final_fla.demo_good1_93)
package bulletchaos_final_fla {
import flash.display.*;
public dynamic class demo_good1_93 extends MovieClip {
public var _mc:MovieClip;
public var mc:MovieClip;
public function demo_good1_93(){
super();
addFrameScript(0, frame1);
}
function frame1(){
_mc = (this["mc"] as MovieClip);
_mc.gotoAndStop(Math.round((1 + ((_mc.totalFrames - 1) * Math.random()))));
}
}
}//package bulletchaos_final_fla
Section 10
//demo1_30 (bulletchaos_final_fla.demo1_30)
package bulletchaos_final_fla {
import flash.display.*;
public dynamic class demo1_30 extends MovieClip {
public var _mc:MovieClip;
public var mc:MovieClip;
public function demo1_30(){
super();
addFrameScript(0, frame1);
}
function frame1(){
_mc = (this["mc"] as MovieClip);
_mc.gotoAndStop(Math.round((1 + ((_mc.totalFrames - 1) * Math.random()))));
this.rotation = (360 * Math.random());
}
}
}//package bulletchaos_final_fla
Section 11
//demo2_54 (bulletchaos_final_fla.demo2_54)
package bulletchaos_final_fla {
import flash.display.*;
public dynamic class demo2_54 extends MovieClip {
public var _mc:MovieClip;
public var mc:MovieClip;
public function demo2_54(){
super();
addFrameScript(0, frame1);
}
function frame1(){
_mc = (this["mc"] as MovieClip);
_mc.gotoAndStop(Math.round((1 + ((_mc.totalFrames - 1) * Math.random()))));
this.rotation = (360 * Math.random());
}
}
}//package bulletchaos_final_fla
Section 12
//demo3_55 (bulletchaos_final_fla.demo3_55)
package bulletchaos_final_fla {
import flash.display.*;
public dynamic class demo3_55 extends MovieClip {
public var _mc:MovieClip;
public var mc:MovieClip;
public function demo3_55(){
super();
addFrameScript(0, frame1);
}
function frame1(){
_mc = (this["mc"] as MovieClip);
_mc.gotoAndStop(Math.round((1 + ((_mc.totalFrames - 1) * Math.random()))));
this.rotation = (360 * Math.random());
}
}
}//package bulletchaos_final_fla
Section 13
//demo4_56 (bulletchaos_final_fla.demo4_56)
package bulletchaos_final_fla {
import flash.display.*;
public dynamic class demo4_56 extends MovieClip {
public var _mc:MovieClip;
public var mc:MovieClip;
public function demo4_56(){
super();
addFrameScript(0, frame1);
}
function frame1(){
_mc = (this["mc"] as MovieClip);
_mc.gotoAndStop(Math.round((1 + ((_mc.totalFrames - 1) * Math.random()))));
this.rotation = (360 * Math.random());
}
}
}//package bulletchaos_final_fla
Section 14
//demo5_57 (bulletchaos_final_fla.demo5_57)
package bulletchaos_final_fla {
import flash.display.*;
public dynamic class demo5_57 extends MovieClip {
public var _mc:MovieClip;
public var mc:MovieClip;
public function demo5_57(){
super();
addFrameScript(0, frame1);
}
function frame1(){
_mc = (this["mc"] as MovieClip);
_mc.gotoAndStop(Math.round((1 + ((_mc.totalFrames - 1) * Math.random()))));
this.rotation = (360 * Math.random());
}
}
}//package bulletchaos_final_fla
Section 15
//gameZheroPreloader_599 (bulletchaos_final_fla.gameZheroPreloader_599)
package bulletchaos_final_fla {
import flash.display.*;
public dynamic class gameZheroPreloader_599 extends MovieClip {
public var pr:MovieClip;
public function gameZheroPreloader_599(){
super();
addFrameScript(139, frame140);
}
function frame140(){
stop();
}
}
}//package bulletchaos_final_fla
Section 16
//help_77 (bulletchaos_final_fla.help_77)
package bulletchaos_final_fla {
import flash.display.*;
public dynamic class help_77 extends MovieClip {
public var cursor:MovieClip;
public function help_77(){
super();
}
}
}//package bulletchaos_final_fla
Section 17
//HSArmourIndicator_125 (bulletchaos_final_fla.HSArmourIndicator_125)
package bulletchaos_final_fla {
import flash.display.*;
public dynamic class HSArmourIndicator_125 extends MovieClip {
public var currentArmour:MovieClip;
public function HSArmourIndicator_125(){
super();
}
}
}//package bulletchaos_final_fla
Section 18
//HScurrentHeroSettings_119 (bulletchaos_final_fla.HScurrentHeroSettings_119)
package bulletchaos_final_fla {
import flash.display.*;
import flash.text.*;
public dynamic class HScurrentHeroSettings_119 extends MovieClip {
public var health_txt:TextField;
public var upgradeArmourBtn:MovieClip;
public var Acost2_txt:TextField;
public var buy10:MovieClip;
public var healthInfo:MovieClip;
public var armor_txt:TextField;
public var armourIndicator:MovieClip;
public var armorLevel:MovieClip;
public var cost1_txt:TextField;
public var upgradeHealthBtn:MovieClip;
public var health_info_tx:TextField;
public var armour_info_tx:TextField;
public var Hcost2_txt:TextField;
public function HScurrentHeroSettings_119(){
super();
}
}
}//package bulletchaos_final_fla
Section 19
//HSinfoPanel_112 (bulletchaos_final_fla.HSinfoPanel_112)
package bulletchaos_final_fla {
import flash.display.*;
import flash.text.*;
public dynamic class HSinfoPanel_112 extends MovieClip {
public var upgrade_cost_tx:TextField;
public var weapon_upgrade_btn:MovieClip;
public var weapon_speed_tx_2:TextField;
public var weapon_rate_tx:TextField;
public var weapon_overheat_tx:TextField;
public var sale_cost_tx:TextField;
public var weapon_speed_tx:TextField;
public var sale_btn:MovieClip;
public var weapon_name_tx:TextField;
public var weapon_info_tx:TextField;
public var weaponLevelInfo:MovieClip;
public var weapon_type_tx:TextField;
public var weapon_power_tx:TextField;
public var weapon_rate_tx_2:TextField;
public var weapon_overheat_tx_2:TextField;
public function HSinfoPanel_112(){
super();
}
}
}//package bulletchaos_final_fla
Section 20
//HSPanelHeader_130 (bulletchaos_final_fla.HSPanelHeader_130)
package bulletchaos_final_fla {
import flash.display.*;
import flash.text.*;
public dynamic class HSPanelHeader_130 extends MovieClip {
public var money_tx:TextField;
public var play_btn:MovieClip;
public function HSPanelHeader_130(){
super();
}
}
}//package bulletchaos_final_fla
Section 21
//HSWeaponForSale_108 (bulletchaos_final_fla.HSWeaponForSale_108)
package bulletchaos_final_fla {
import flash.display.*;
public dynamic class HSWeaponForSale_108 extends MovieClip {
public var HSsaleWeapons:MovieClip;
public function HSWeaponForSale_108(){
super();
}
}
}//package bulletchaos_final_fla
Section 22
//HSWeaponInfo_107 (bulletchaos_final_fla.HSWeaponInfo_107)
package bulletchaos_final_fla {
import flash.display.*;
import flash.text.*;
public dynamic class HSWeaponInfo_107 extends MovieClip {
public var weapon_cost_tx:TextField;
public var weapon_name_tx:TextField;
public var summary_tx:TextField;
public function HSWeaponInfo_107(){
super();
}
}
}//package bulletchaos_final_fla
Section 23
//indicatorText_266 (bulletchaos_final_fla.indicatorText_266)
package bulletchaos_final_fla {
import flash.display.*;
import flash.text.*;
public dynamic class indicatorText_266 extends MovieClip {
public var wNumber_tx:TextField;
public function indicatorText_266(){
super();
}
}
}//package bulletchaos_final_fla
Section 24
//intro_19 (bulletchaos_final_fla.intro_19)
package bulletchaos_final_fla {
import flash.display.*;
public dynamic class intro_19 extends MovieClip {
public function intro_19(){
super();
addFrameScript(15, frame16);
}
function frame16(){
stop();
}
}
}//package bulletchaos_final_fla
Section 25
//level_info_113 (bulletchaos_final_fla.level_info_113)
package bulletchaos_final_fla {
import flash.display.*;
import flash.text.*;
public dynamic class level_info_113 extends MovieClip {
public var level_txt:TextField;
public var totallevel_tx:TextField;
public function level_info_113(){
super();
}
}
}//package bulletchaos_final_fla
Section 26
//menuBtn3_63 (bulletchaos_final_fla.menuBtn3_63)
package bulletchaos_final_fla {
import flash.display.*;
public dynamic class menuBtn3_63 extends MovieClip {
public function menuBtn3_63(){
super();
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package bulletchaos_final_fla
Section 27
//preloaderLine_600 (bulletchaos_final_fla.preloaderLine_600)
package bulletchaos_final_fla {
import flash.display.*;
public dynamic class preloaderLine_600 extends MovieClip {
public var begun:MovieClip;
public function preloaderLine_600(){
super();
}
}
}//package bulletchaos_final_fla
Section 28
//setDontShow_75 (bulletchaos_final_fla.setDontShow_75)
package bulletchaos_final_fla {
import flash.display.*;
public dynamic class setDontShow_75 extends MovieClip {
public var chSaver:MovieClip;
public function setDontShow_75(){
super();
}
}
}//package bulletchaos_final_fla
Section 29
//stars_97 (bulletchaos_final_fla.stars_97)
package bulletchaos_final_fla {
import flash.display.*;
public dynamic class stars_97 extends MovieClip {
public function stars_97(){
super();
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package bulletchaos_final_fla
Section 30
//taskMc_tx_388 (bulletchaos_final_fla.taskMc_tx_388)
package bulletchaos_final_fla {
import flash.display.*;
import flash.text.*;
public dynamic class taskMc_tx_388 extends MovieClip {
public var task_tx:TextField;
public function taskMc_tx_388(){
super();
}
}
}//package bulletchaos_final_fla
Section 31
//video_66 (bulletchaos_final_fla.video_66)
package bulletchaos_final_fla {
import flash.events.*;
import flash.display.*;
import fl.video.*;
import sources.*;
public dynamic class video_66 extends MovieClip {
public var player:FLVPlayback;
public function video_66(){
super();
addFrameScript(0, frame1);
}
public function error(event:VideoState=null):void{
trace("FLV Error1");
clearPlayer();
}
public function error2(event:IOErrorEvent=null):void{
trace("FLV Error2");
clearPlayer();
}
function frame1(){
player = new FLVPlayback();
player.width = 500;
player.height = 170;
player.source = String(GameParams.uncryptObj("eNrj4mZkLy3KYWtkzygpKbDS10/LzEkt1ktPzE2tykgtytdLzs/Vz8/LycxL1U8qzclJLUnOSMwv1i/LTEnNRxbRS8spYwQACcQbwg==")["url"]);
(this as MovieClip).addChildAt(player, 1);
player.addEventListener(VideoEvent.COMPLETE, completeHandler);
player.addEventListener(Event.REMOVED_FROM_STAGE, clearPlayer);
player.addEventListener(VideoState.CONNECTION_ERROR, error);
player.addEventListener(VideoState.DISCONNECTED, error);
player.loaderInfo.addEventListener(IOErrorEvent.IO_ERROR, error2);
}
public function clearPlayer(event:Event=null):void{
var event = event;
player.stop();
(this as MovieClip).removeChild(player);
player.source = null;
//unresolved jump
var _slot1 = e;
player.removeEventListener(VideoEvent.COMPLETE, completeHandler);
player.removeEventListener(Event.REMOVED_FROM_STAGE, clearPlayer);
player.removeEventListener(VideoState.CONNECTION_ERROR, error);
player.removeEventListener(VideoState.DISCONNECTED, error);
player.removeEventListener(IOErrorEvent.IO_ERROR, error2);
}
public function completeHandler(event:VideoEvent=null):void{
var event = event;
player.seek(0);
player.play();
//unresolved jump
var _slot1 = e;
}
}
}//package bulletchaos_final_fla
Section 32
//wIndicatorActive_265 (bulletchaos_final_fla.wIndicatorActive_265)
package bulletchaos_final_fla {
import flash.display.*;
public dynamic class wIndicatorActive_265 extends MovieClip {
public function wIndicatorActive_265(){
super();
addFrameScript(0, frame1, 4, frame5);
}
function frame1(){
stop();
}
function frame5(){
stop();
}
}
}//package bulletchaos_final_fla
Section 33
//z_2_378 (bulletchaos_final_fla.z_2_378)
package bulletchaos_final_fla {
import flash.display.*;
public dynamic class z_2_378 extends MovieClip {
public function z_2_378(){
super();
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package bulletchaos_final_fla
Section 34
//FlashChecker (classes.gamezhero.FlashChecker)
package classes.gamezhero {
import flash.display.*;
public dynamic class FlashChecker extends MovieClip {
public var b:SimpleButton;
public function FlashChecker(){
super();
addFrameScript(0, frame1, 1, frame2);
}
function frame1(){
stop();
}
function frame2(){
stop();
}
}
}//package classes.gamezhero
Section 35
//Base64 (com.base64.Base64)
package com.base64 {
import flash.utils.*;
public class Base64 {
public static const version:String = "1.0.0";
private static const BASE64_CHARS:String = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
public function Base64(){
super();
throw (new Error("Base64 class is static container only"));
}
public static function encode(data:String):String{
var bytes:ByteArray;
bytes = new ByteArray();
bytes.writeUTFBytes(data);
return (encodeByteArray(bytes));
}
public static function encodeByteArray(data:ByteArray):String{
var output:String;
var dataBuffer:Array;
var outputBuffer:Array;
var i:uint;
var j:uint;
var k:uint;
output = "";
outputBuffer = new Array(4);
data.position = 0;
while (data.bytesAvailable > 0) {
dataBuffer = new Array();
i = 0;
while ((((i < 3)) && ((data.bytesAvailable > 0)))) {
dataBuffer[i] = data.readUnsignedByte();
i++;
};
outputBuffer[0] = ((dataBuffer[0] & 252) >> 2);
outputBuffer[1] = (((dataBuffer[0] & 3) << 4) | (dataBuffer[1] >> 4));
outputBuffer[2] = (((dataBuffer[1] & 15) << 2) | (dataBuffer[2] >> 6));
outputBuffer[3] = (dataBuffer[2] & 63);
j = dataBuffer.length;
while (j < 3) {
outputBuffer[(j + 1)] = 64;
j++;
};
k = 0;
while (k < outputBuffer.length) {
output = (output + BASE64_CHARS.charAt(outputBuffer[k]));
k++;
};
};
return (output);
}
public static function decode(data:String):String{
var bytes:ByteArray;
bytes = decodeToByteArray(data);
return (bytes.readUTFBytes(bytes.length));
}
public static function decodeToByteArray(data:String):ByteArray{
var output:ByteArray;
var dataBuffer:Array;
var outputBuffer:Array;
var i:uint;
var j:uint;
var k:uint;
output = new ByteArray();
dataBuffer = new Array(4);
outputBuffer = new Array(3);
i = 0;
while (i < data.length) {
j = 0;
while ((((j < 4)) && (((i + j) < data.length)))) {
dataBuffer[j] = BASE64_CHARS.indexOf(data.charAt((i + j)));
j++;
};
outputBuffer[0] = ((dataBuffer[0] << 2) + ((dataBuffer[1] & 48) >> 4));
outputBuffer[1] = (((dataBuffer[1] & 15) << 4) + ((dataBuffer[2] & 60) >> 2));
outputBuffer[2] = (((dataBuffer[2] & 3) << 6) + dataBuffer[3]);
k = 0;
while (k < outputBuffer.length) {
if (dataBuffer[(k + 1)] == 64){
break;
};
output.writeByte(outputBuffer[k]);
k++;
};
i = (i + 4);
};
output.position = 0;
return (output);
}
}
}//package com.base64
Section 36
//Background (com.gamezhero.api.as3.gui.Background)
package com.gamezhero.api.as3.gui {
import flash.display.*;
public class Background extends MovieClip {
private var _bg:MovieClip;
private var _goal:MovieClip;
public function Background(g:MovieClip){
super();
_goal = g;
_goal.addChild(this);
ini();
iniEvents();
}
private function iniEvents():void{
}
private function getBg():MovieClip{
var mc:MovieClip;
mc = new MovieClip();
mc.graphics.beginFill(0, 1);
mc.graphics.lineStyle(0, 0, 0);
mc.graphics.moveTo(0, 0);
mc.graphics.lineTo(1000, 0);
mc.graphics.lineTo(1000, 1000);
mc.graphics.lineTo(0, 1000);
mc.graphics.lineTo(0, 0);
mc.graphics.endFill();
return (mc);
}
private function ini():void{
_bg = getBg();
this.addChild(_bg);
}
public function remove():void{
clearEvents();
_goal.removeChild(this);
}
public function update(w:Number, h:Number):void{
this.x = 0;
this.y = 0;
this.width = (w + 100);
this.height = (h + 100);
}
private function clearEvents():void{
}
}
}//package com.gamezhero.api.as3.gui
Section 37
//Indicator (com.gamezhero.api.as3.gui.Indicator)
package com.gamezhero.api.as3.gui {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
import flash.text.*;
public class Indicator extends MovieClip {
private var _timer:Timer;
private var _indicator:MovieClip;
private var _timer_2:Timer;
private var _dalpha:Number;
private var _current:Number;// = 0
private var _info_text:TextField;
private var _arr:Array;
private var _n:uint;// = 10
private var _goal:MovieClip;
public function Indicator(g:MovieClip){
_n = 10;
_dalpha = (360 / _n);
_arr = new Array();
_current = 0;
super();
_goal = g;
_goal.addChild(this);
ini();
iniEvents();
}
public function createInfoText():void{
var fontFormat:TextFormat;
var w:Number;
var h:Number;
_info_text = new TextField();
fontFormat = new TextFormat();
fontFormat.color = 0xFFFFFF;
fontFormat.size = 11;
fontFormat.font = "Arial";
_info_text.defaultTextFormat = fontFormat;
_info_text.autoSize = TextFieldAutoSize.CENTER;
_indicator.addChild(_info_text);
w = 100;
h = 20;
w = _info_text.width;
h = _info_text.height;
_info_text.x = (-(w) / 2);
_info_text.y = -10;
}
private function getBorder():MovieClip{
var cr:Number;
var boxWidth:Number;
var boxHeight:Number;
var mc:MovieClip;
cr = 10;
boxWidth = 150;
boxHeight = 150;
mc = new MovieClip();
mc.graphics.beginFill(0x333333, 1);
mc.graphics.moveTo(cr, 0);
mc.graphics.lineTo((boxWidth - cr), 0);
mc.graphics.curveTo(boxWidth, 0, boxWidth, cr);
mc.graphics.lineTo(boxWidth, cr);
mc.graphics.lineTo(boxWidth, (boxHeight - cr));
mc.graphics.curveTo(boxWidth, boxHeight, (boxWidth - cr), boxHeight);
mc.graphics.lineTo((boxWidth - cr), boxHeight);
mc.graphics.lineTo(cr, boxHeight);
mc.graphics.curveTo(0, boxHeight, 0, (boxHeight - cr));
mc.graphics.lineTo(0, (boxHeight - cr));
mc.graphics.lineTo(0, cr);
mc.graphics.curveTo(0, 0, cr, 0);
mc.graphics.lineTo(cr, 0);
mc.graphics.endFill();
_indicator.addChild(mc);
mc.x = (-(mc.width) / 2);
mc.y = (-(mc.height) / 2);
return (mc);
}
private function iniEvents():void{
_timer.addEventListener(TimerEvent.TIMER, updateIndicator);
_timer.start();
_timer_2.addEventListener(TimerEvent.TIMER, updateCurrent);
_timer_2.start();
}
private function ini():void{
var i:uint;
var fooMc:MovieClip;
this.visible = false;
_timer = new Timer((1000 / 40), 0);
_timer_2 = new Timer((1000 / 20), 0);
_indicator = new MovieClip();
this.addChild(_indicator);
getBorder();
i = 0;
while (i < _n) {
fooMc = getItem();
fooMc.rotation = (_dalpha * i);
fooMc.alpha = 0.2;
_arr.push(fooMc);
i++;
};
createInfoText();
}
public function setVal(val:String):void{
_info_text.text = val;
}
private function updateCurrent(event:TimerEvent=null):void{
_current++;
if (_current >= _arr.length){
_current = 0;
};
_arr[_current].alpha = 1;
event.updateAfterEvent();
}
public function setSize(w:Number, h:Number):void{
this.visible = true;
this.width = w;
this.height = h;
}
public function remove():void{
clearEvents();
_goal.removeChild(this);
}
private function getItem():MovieClip{
var mc:MovieClip;
mc = new MovieClip();
mc.graphics.beginFill(0xFFFFFF, 1);
mc.graphics.lineStyle(0, 0, 0);
mc.graphics.moveTo(32.3, -5.7);
mc.graphics.curveTo(30, -3.3, 30, 0);
mc.graphics.curveTo(30, 3.3, 32.3, 5.6);
mc.graphics.curveTo(34.7, 8, 38.05, 8);
mc.graphics.lineTo(57, 8);
mc.graphics.curveTo(60.3, 8, 62.6, 5.6);
mc.graphics.curveTo(65, 3.3, 65, 0);
mc.graphics.curveTo(65, -3.3, 62.6, -5.7);
mc.graphics.curveTo(60.3, -8, 57, -8);
mc.graphics.lineTo(38.05, -8);
mc.graphics.curveTo(34.7, -8, 32.3, -5.7);
mc.graphics.endFill();
_indicator.addChild(mc);
return (mc);
}
private function updateIndicator(event:TimerEvent=null):void{
var i:uint;
i = 0;
while (i < _n) {
_arr[i].alpha = (_arr[i].alpha - 0.07);
if (_arr[i].alpha <= 0){
_arr[i].alpha = 0;
};
i++;
};
event.updateAfterEvent();
}
public function setPos(x:Number, y:Number):void{
this.visible = true;
this.x = x;
this.y = y;
}
public function update(w:Number, h:Number):void{
this.visible = true;
this.x = (w / 2);
this.y = (h / 2);
}
private function clearEvents():void{
_timer.removeEventListener(TimerEvent.TIMER, updateIndicator);
_timer_2.removeEventListener(TimerEvent.TIMER, updateCurrent);
}
}
}//package com.gamezhero.api.as3.gui
Section 38
//URL (com.gamezhero.api.as3.utils.URL)
package com.gamezhero.api.as3.utils {
public class URL {
private var _scheme:String;
private var _host:String;
private var _query:String;
private var _path:String;
private var _userinfo:String;
private var _port:String;
private var _fragment:String;
private var _url:String;
private static const PATTERN:RegExp = /^([A-Za-z0-9_+.]{1,8}:\/\/)?([!-~]+@)?([^\/?#:]*)(:[0-9]*)?(\/[^?#]*)?(\?[^#]*)?(\#.*)?/i;
public function URL(url:String):void{
var result:Array;
super();
result = url.match(URL.PATTERN);
_url = result[0];
_scheme = result[1];
_userinfo = result[2];
_host = result[3];
_port = result[4];
_path = result[5];
_query = result[6];
_fragment = result[7];
}
public function get port():int{
return (((_port.length <= 0)) ? undefined : int(_port.substring(1, _port.length)));
}
public function get query():Object{
var ret:Object;
var _parse:String;
var _intovars:Array;
var i:int;
var _kv:Array;
ret = {raw:undefined, parsed:undefined};
if (((_query) && ((_query.length > 0)))){
ret.raw = _query;
_parse = _query.substring(1, _query.length);
_intovars = _parse.split("&");
ret.parsed = ((_intovars.length > 0)) ? {} : undefined;
i = 0;
while (i < _intovars.length) {
_kv = _intovars[i].split("=");
ret.parsed[_kv[0]] = _kv[1];
i++;
};
};
return (ret);
}
public function get fragment():String{
return (((_fragment.length <= 0)) ? undefined : _fragment);
}
public function get scheme():String{
return (((_scheme.length <= 0)) ? undefined : _scheme.substring(0, (_scheme.length - 3)));
}
public function get host():String{
return (((_host.length <= 0)) ? undefined : _host);
}
public function get path():String{
return (((_path.length <= 0)) ? undefined : _path);
}
public function get url():String{
return (((_url.length <= 0)) ? undefined : _url);
}
public function get userinfo():Object{
var ret:Object;
var arr:Array;
ret = {user:undefined, pass:undefined};
if (_userinfo){
arr = _userinfo.substring(0, (_userinfo.length - 1)).split(":");
ret.user = (arr[0]) ? arr[0] : ret.user;
ret.pass = (arr[1]) ? arr[1] : ret.pas;
};
return (ret);
}
}
}//package com.gamezhero.api.as3.utils
Section 39
//GamePreloader (com.gamezhero.api.as3.GamePreloader)
package com.gamezhero.api.as3 {
import flash.events.*;
import flash.display.*;
import flash.net.*;
import flash.utils.*;
import com.google.analytics.*;
import com.gamezhero.api.as3.gui.*;
import flash.ui.*;
public class GamePreloader extends MovieClip {
private var _obj_listener_preloader:Object;
private var _scale_old:String;
private var _obj:Object;
private var _timer:Timer;
private var _loader_preloader_skin:Loader;
private var _send_localconnection_preloader:LocalConnection;
private var _align_old:String;
private var _in_target:String;
private var _in_url:String;// = "null"
private var _indicator:Indicator;
private var _bg:Background;
private var _error_flag:Boolean;// = false
private var _amount_try:uint;// = 10
private var _quality_old:String;
private var _gamezhero_code_preloader:Number;
private var _recive_localconnection_preloader:LocalConnection;
private var _debug_flag:Boolean;// = false
private var _rate_old:Number;
private var _send_name_connection_preloader:String;
private var _recived_name_connection_preloader:String;
private var _preloader_active_flag:Boolean;// = false
private var _urls:Dictionary;
private var _par:MovieClip;
private var _tracker:GATracker;
public static const finish:String = "PRELOAD_COMPLETE";
public function GamePreloader(par:MovieClip, iniObject:Object=null){
var par = par;
var iniObject = iniObject;
_timer = new Timer((1000 / 10), 0);
_error_flag = false;
_preloader_active_flag = false;
_in_url = "null";
_obj = new Object();
_urls = new Dictionary();
_debug_flag = false;
_amount_try = 10;
_recive_localconnection_preloader = new LocalConnection();
_send_localconnection_preloader = new LocalConnection();
_loader_preloader_skin = new Loader();
_obj_listener_preloader = new Object();
super();
_par = par;
_par.addChild(this);
if (iniObject != null){
_obj = iniObject;
};
_debug_flag = _obj["debug"];
//unresolved jump
var _slot1 = e;
_debug_flag = false;
_bg = new Background(this);
_indicator = new Indicator(this);
_gamezhero_code_preloader = new Date().getTime();
_recived_name_connection_preloader = ("_recived_gamezhero_preloader_" + _gamezhero_code_preloader);
_send_name_connection_preloader = ("_send_gamezhero_preloader_" + _gamezhero_code_preloader);
iniLocalConnectionsPreloader();
iniEvents();
iniStage();
iniGoogleAnalitics();
}
private function beginScenario2():void{
_error_flag = true;
clearTimers();
_timer.addEventListener(TimerEvent.TIMER, updatePreloader2);
_timer.start();
}
private function resizeAction(event:Event=null):void{
var obj:Object;
var event = event;
obj = new Object();
obj.width = stage.stageWidth;
obj.height = stage.stageHeight;
//unresolved jump
var _slot1 = e;
obj.width = 550;
obj.height = 400;
if ((((_error_flag == false)) && ((_preloader_active_flag == true)))){
_send_localconnection_preloader.send(_send_name_connection_preloader, GamezheroGlobal.toText([117, 112, 100, 97, 116, 101, 80, 111, 115]), obj);
//unresolved jump
var _slot1 = e;
beginScenario2();
};
_indicator.update(obj.width, obj.height);
_bg.update(obj.width, obj.height);
}
private function iniEvents():void{
_par.loaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
_loader_preloader_skin.contentLoaderInfo.addEventListener(Event.INIT, preloaderLoaderInit);
_loader_preloader_skin.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, preloaderLoaderError);
_recive_localconnection_preloader.addEventListener(StatusEvent.STATUS, onStatusRecivePreloader);
_recive_localconnection_preloader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onErrorRecivePreloader);
_send_localconnection_preloader.addEventListener(StatusEvent.STATUS, onStatusSendPreloader);
_send_localconnection_preloader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onErrorSendPreloader);
}
private function updatePreloader2(event:TimerEvent=null):void{
var proc:Number;
var obj:Object;
var event = event;
iniStageSettings();
proc = (_par.loaderInfo.bytesLoaded / _par.loaderInfo.bytesTotal);
_indicator.setVal((Math.round((proc * 100)) + " %"));
if (proc >= 1){
action();
};
obj = new Object();
obj.width = stage.stageWidth;
obj.height = stage.stageHeight;
//unresolved jump
var _slot1 = e;
obj.width = 550;
obj.height = 400;
event.updateAfterEvent();
}
private function updatePreloader1(event:TimerEvent=null):void{
var proc:Number;
var obj:Object;
var event = event;
iniStageSettings();
proc = (_par.loaderInfo.bytesLoaded / _par.loaderInfo.bytesTotal);
_indicator.setVal("Loading...");
obj = new Object();
obj.width = stage.stageWidth;
obj.height = stage.stageHeight;
//unresolved jump
var _slot1 = e;
obj.width = 550;
obj.height = 400;
obj.loaded = proc;
_send_localconnection_preloader.send(_send_name_connection_preloader, GamezheroGlobal.toText([117, 112, 100, 97, 116, 101, 80, 114, 101, 108, 111, 97, 100, 101, 114]), obj);
event.updateAfterEvent();
}
private function onStatusRecivePreloader(infoObject:StatusEvent=null):void{
switch (infoObject.level){
case "status":
break;
case "error":
beginScenario2();
break;
};
}
public function action(evt:Event=null):void{
clearTimers();
_timer.addEventListener(TimerEvent.TIMER, actionDone);
_timer.start();
}
private function checkPreloader(event:TimerEvent=null):void{
_send_localconnection_preloader.send(_send_name_connection_preloader, GamezheroGlobal.toText([112, 114, 101, 108, 111, 97, 100, 101, 114, 73, 115, 79, 107]), null);
}
private function onErrorRecivePreloader(infoObject:SecurityErrorEvent=null):void{
beginScenario2();
}
private function ioErrorHandler(event:IOErrorEvent=null):void{
beginScenario2();
}
private function clearTimers():void{
_timer.removeEventListener(TimerEvent.TIMER, updatePreloader1);
_timer.removeEventListener(TimerEvent.TIMER, updatePreloader2);
_timer.removeEventListener(TimerEvent.TIMER, actionDone);
}
private function preloaderLoaderComplete(event:Event=null):void{
}
private function onStatusSendPreloader(infoObject:StatusEvent=null):void{
switch (infoObject.level){
case "status":
break;
case "error":
beginScenario2();
break;
};
}
private function iniGoogleAnalitics():void{
_tracker = new GATracker(this, "UA-262190-1", "AS3", false);
_tracker.trackEvent("preloader", "loading", GamezheroGlobal.gameName);
//unresolved jump
var _slot1 = e;
}
private function preloaderLoaderInit(event:Event=null):void{
var foo:Timer;
foo = new Timer(200, 1);
foo.addEventListener(TimerEvent.TIMER, checkPreloader);
foo.start();
}
private function onErrorSendPreloader(infoObject:SecurityErrorEvent=null):void{
beginScenario2();
}
private function actionDone(event:TimerEvent=null):void{
var evnt:Event;
this.alpha = (this.alpha - 1);
if (this.alpha <= 1){
this.alpha = 0;
clearEvents();
clearStageEvents();
clearTimers();
setStageSettings();
evnt = new Event(finish);
this.dispatchEvent(evnt);
_indicator.remove();
_bg.remove();
_par.removeChild(this);
};
event.updateAfterEvent();
}
private function iniContextMenu():void{
var domain:String;
var game_name:String;
var gamezheroMenu:ContextMenu;
var defaultItems:ContextMenuBuiltInItems;
var title:String;
var menuItemFoo:ContextMenuItem;
domain = GamezheroGlobal.getDomain(_par.stage);
game_name = GamezheroGlobal.gameName;
_obj.gamezhero_url = (((("http://www.gamezhero.com/?utm_campaign=" + game_name) + "&utm_source=") + domain) + "&utm_medium=preloader");
_obj.gamezhero_menu = {Free Online Games @ Gamezhero.com:(((("http://www.gamezhero.com/?utm_campaign=" + game_name) + "&utm_source=") + domain) + "&utm_medium=context_menu"), Send To Friends:(((((("http://www.gamezhero.com/sendtofriends/" + game_name) + "-onlinegames.html?utm_campaign=") + game_name) + "&utm_source=") + domain) + "&utm_medium=send_to_friends_context_menu"), Put This Game To Your Blog or Site:(((((("http://www.gamezhero.com/freewebsitegames/" + game_name) + "-onlinegames.html?utm_campaign=") + game_name) + "&utm_source=") + domain) + "&utm_medium=free_web_site_games_context")};
gamezheroMenu = new ContextMenu();
gamezheroMenu.hideBuiltInItems();
defaultItems = gamezheroMenu.builtInItems;
defaultItems.quality = true;
defaultItems.print = true;
for (title in _obj.gamezhero_menu) {
menuItemFoo = new ContextMenuItem(title);
_urls[menuItemFoo] = _obj.gamezhero_menu[title];
menuItemFoo.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, getURLContextMenu);
gamezheroMenu.customItems.push(menuItemFoo);
};
this.parent.contextMenu = gamezheroMenu;
}
private function getInfo():Object{
var obj:UserInfo;
obj = new UserInfo(_par);
return ((obj as Object));
}
private function clearStageEvents():void{
stage.removeEventListener(Event.RESIZE, resizeAction);
//unresolved jump
var _slot1 = e;
}
private function iniStageEvents():void{
stage.addEventListener(Event.RESIZE, resizeAction);
resizeAction();
}
private function preloaderLoaderError(IOErrorEvent:Event=null):void{
beginScenario2();
}
private function moveAction(event:MouseEvent=null):void{
}
private function gotoAction(event:MouseEvent=null):void{
trace((((("gotoAction 2 " + _in_url) + " ") + _in_target) + " "));
if (_in_url != "null"){
GamezheroGlobal.getURL(_in_url, _in_target);
_in_url = "null";
};
}
private function iniLocalConnectionsPreloader():void{
var dom:String;
_obj_listener_preloader = new Object();
_obj_listener_preloader.preloaderOk = function ():void{
_send_localconnection_preloader.send(_send_name_connection_preloader, GamezheroGlobal.toText([105, 110, 105, 80, 114, 101, 108, 111, 97, 100, 101, 114]), getInfo());
beginScenario1();
};
_obj_listener_preloader.preloaderGetUrlAction = function (url:String, target:String):void{
var url = url;
var target = target;
_tracker.trackEvent("preloader", "click", GamezheroGlobal.gameName);
//unresolved jump
var _slot1 = e;
gotoActionIni(url, target);
};
_obj_listener_preloader.finishAction = function (val:Object):void{
action();
};
dom = GamezheroGlobal.toText([102, 105, 108, 101, 115, 46, 103, 97, 109, 101, 122, 104, 101, 114, 111, 46, 99, 111, 109]);
_recive_localconnection_preloader.allowInsecureDomain(dom);
_recive_localconnection_preloader.allowDomain(dom);
_recive_localconnection_preloader.client = _obj_listener_preloader;
_recive_localconnection_preloader.connect(_recived_name_connection_preloader);
//unresolved jump
var _slot1 = e;
beginScenario2();
_send_localconnection_preloader.allowInsecureDomain(dom);
_send_localconnection_preloader.allowDomain(dom);
}
private function iniStage(event:Event=null):void{
var event = event;
this.removeEventListener(Event.ENTER_FRAME, iniStage);
getStageSettings();
iniStageSettings();
iniContextMenu();
iniStageEvents();
if (_debug_flag == false){
loadPreloaderSkin();
} else {
beginScenario2();
};
//unresolved jump
var _slot1 = e;
_amount_try--;
if (_amount_try <= 0){
beginScenario2();
} else {
this.addEventListener(Event.ENTER_FRAME, iniStage);
};
}
private function getStageSettings():void{
_scale_old = stage.scaleMode;
_align_old = stage.align;
_rate_old = stage.frameRate;
_quality_old = stage.quality;
}
private function gotoActionIni(url:String, target:String):void{
trace((((("gotoAction 1 " + url) + " ") + target) + " "));
_in_url = url;
_in_target = target;
gotoAction();
}
private function getURLContextMenu(evt:ContextMenuEvent=null):void{
GamezheroGlobal.getURL(_urls[evt.target], "_blank");
}
private function iniStageSettings():void{
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
stage.frameRate = 20;
stage.quality = StageQuality.HIGH;
}
private function clearEvents():void{
_par.loaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
this.removeEventListener(Event.ENTER_FRAME, iniStage);
_loader_preloader_skin.contentLoaderInfo.removeEventListener(Event.INIT, preloaderLoaderInit);
_loader_preloader_skin.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, preloaderLoaderError);
_recive_localconnection_preloader.removeEventListener(StatusEvent.STATUS, onStatusRecivePreloader);
_recive_localconnection_preloader.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, onErrorRecivePreloader);
_recive_localconnection_preloader.client = {};
_recive_localconnection_preloader.close();
_recive_localconnection_preloader = new LocalConnection();
_send_localconnection_preloader.removeEventListener(StatusEvent.STATUS, onStatusSendPreloader);
_send_localconnection_preloader.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, onErrorSendPreloader);
_send_localconnection_preloader = new LocalConnection();
}
private function loadPreloaderSkin():void{
var url:String;
var request:URLRequest;
url = (GamezheroGlobal.toText([104, 116, 116, 112, 58, 47, 47, 102, 105, 108, 101, 115, 46, 103, 97, 109, 101, 122, 104, 101, 114, 111, 46, 99, 111, 109, 47, 112, 114, 101, 108, 111, 97, 100, 101, 114, 47, 112, 114, 101, 108, 111, 97, 100, 101, 114, 95, 118, 49, 46, 115, 119, 102, 63, 103, 97, 109, 101, 122, 104, 101, 114, 111, 67, 111, 100, 101, 61]) + String(_gamezhero_code_preloader));
request = new URLRequest(url);
_loader_preloader_skin.load(request);
addChild(_loader_preloader_skin);
//unresolved jump
var _slot1 = e;
beginScenario2();
}
private function beginScenario1():void{
_preloader_active_flag = true;
clearTimers();
_timer.addEventListener(TimerEvent.TIMER, updatePreloader1);
_timer.start();
resizeAction();
}
private function setStageSettings():void{
stage.scaleMode = _scale_old;
stage.align = _align_old;
stage.frameRate = _rate_old;
stage.quality = _quality_old;
}
}
}//package com.gamezhero.api.as3
Section 40
//GamezheroApi (com.gamezhero.api.as3.GamezheroApi)
package com.gamezhero.api.as3 {
import flash.events.*;
import flash.display.*;
import flash.system.*;
public class GamezheroApi {
private static var _score_continue_function:Function;
private static var _preloader_next_step_function:Function;
private static var _preloader_goal:MovieClip;
private static var _score_submit_function:Function;
private static var _score_error_function:Function;
private static var _score_goal:MovieClip;
public function GamezheroApi(){
super();
}
private static function scoreSubmitAction(event:Event=null):void{
_score_submit_function.apply();
}
public static function preloader(target:MovieClip, nextStep:Function):void{
var gamePreloader:GamePreloader;
_preloader_goal = (target as MovieClip);
_preloader_next_step_function = nextStep;
if (GamezheroGlobal.gameName == "unset"){
trace("Error. GamezheroApi don't ini !");
} else {
gamePreloader = new GamePreloader(_preloader_goal, {debug:false});
gamePreloader.addEventListener(GamePreloader.finish, preloaderNextStep);
};
}
public static function ini(gameName:String):void{
Security.allowDomain("www.gamezhero.com", "gamezhero.com", "files.gamezhero.com", "data.gamezhero.com", "*.gamezhero.com");
Security.allowInsecureDomain("www.gamezhero.com", "gamezhero.com", "files.gamezhero.com", "data.gamezhero.com", "*.gamezhero.com");
GamezheroGlobal.gameName = gameName;
}
private static function scoreErrorAction(event:Event=null):void{
_score_error_function.apply();
}
public static function linkSendToFrined():void{
GamezheroGlobal.getURL((((((("http://www.gamezhero.com/sendtofriends/" + GamezheroGlobal.gameName) + "-games.html?utm_campaign=") + GamezheroGlobal.gameName) + "&utm_source=") + GamezheroGlobal.getDomain()) + "&utm_medium=send_to_friend"), "_blank");
}
private static function scoreContinueAction(event:Event=null):void{
_score_continue_function.apply();
}
public static function score(target:MovieClip, gameCode:String, scoreValue:Number, scoreX:Number, scoreY:Number, submitAction:Function, continueAction:Function, errorAction:Function, scoreSkin:Object=null):void{
var score_value:Number;
var score_x_pos:Number;
var score_y_pos:Number;
var score_skin:Object;
var scoreGamezheroForm:SubmitArea;
GamezheroGlobal.gameCode = gameCode;
_score_goal = (target as MovieClip);
_score_submit_function = submitAction;
_score_continue_function = continueAction;
_score_error_function = errorAction;
if (GamezheroGlobal.gameName == "unset"){
trace("Error. GamezheroApi don't ini !");
} else {
score_value = scoreValue;
score_x_pos = scoreX;
score_y_pos = scoreY;
score_skin = scoreSkin;
if (score_skin == null){
score_skin = {border:{width:4, color:0xFFFFFF, alpha:100}, background:{topColor:0x999999, bottomColor:0x666666, topAlpha:100, bottomAlpha:100, cornerRadius:10}, language:"ENG"};
};
scoreGamezheroForm = new SubmitArea(_score_goal, score_x_pos, score_y_pos, score_value, score_skin);
scoreGamezheroForm.addEventListener(SubmitArea.SUBMITED, scoreSubmitAction);
scoreGamezheroForm.addEventListener(SubmitArea.CONTINUE, scoreContinueAction);
scoreGamezheroForm.addEventListener(SubmitArea.ERROR, scoreErrorAction);
};
}
private static function preloaderNextStep(event:Event=null):void{
_preloader_next_step_function.apply();
}
public static function linkTopScore():void{
GamezheroGlobal.getURL((((((("http://www.gamezhero.com/topscore/" + GamezheroGlobal.gameName) + "/top100.html?utm_campaign=") + GamezheroGlobal.gameName) + "&utm_source=") + GamezheroGlobal.getDomain()) + "&utm_medium=top_score"), "_blank");
}
public static function linkMoreGames():void{
GamezheroGlobal.getURL((((("http://www.gamezhero.com/?utm_campaign=" + GamezheroGlobal.gameName) + "&utm_source=") + GamezheroGlobal.getDomain()) + "&utm_medium=more_free_games"), "_blank");
}
public static function linkZorroLogo():void{
GamezheroGlobal.getURL((((("http://www.gamezhero.com/?utm_campaign=" + GamezheroGlobal.gameName) + "&utm_source=") + GamezheroGlobal.getDomain()) + "&utm_medium=zorro_logo"), "_blank");
}
public static function linkPublish():void{
GamezheroGlobal.getURL((((((("http://www.gamezhero.com/freewebsitegames/" + GamezheroGlobal.gameName) + "-games.html?utm_campaign=") + GamezheroGlobal.gameName) + "&utm_source=") + GamezheroGlobal.getDomain()) + "&utm_medium=free_web_site_games"), "_blank");
}
}
}//package com.gamezhero.api.as3
Section 41
//GamezheroGlobal (com.gamezhero.api.as3.GamezheroGlobal)
package com.gamezhero.api.as3 {
import flash.display.*;
import flash.net.*;
import com.gamezhero.api.as3.utils.*;
import flash.external.*;
public class GamezheroGlobal {
public static const SAFARI:String = "safari";
public static const FIREFOX:String = "firefox";
public static const CHROME:String = "chrome";
public static const IE:String = "ie";
public static const OPERA:String = "opera";
public static var gameNameVar:String = "unset";
public static var host:String = "error";
public static var browser:String = "unset";
public static var gameCodeVar:String = "unset";
public function GamezheroGlobal(){
super();
}
public static function getDomain(stage:Stage=null):String{
var url:URL;
var stage = stage;
if (host != "error"){
return (host);
};
url = new URL(stage.loaderInfo.url);
host = url.host;
if (url.host == null){
host = "local";
};
//unresolved jump
var _slot1 = e;
host = "error";
return (host);
}
public static function toText(arr:Array):String{
var st_url:String;
var i:Number;
st_url = "";
i = 0;
while (i < arr.length) {
st_url = (st_url + String.fromCharCode(arr[i]));
i++;
};
return (st_url);
}
public static function getURL(url:String, window:String):void{
var url_req:URLRequest;
url_req = new URLRequest(url);
navigateToURL(url_req, window);
}
public static function get gameName():String{
return (gameNameVar);
}
public static function getBrowser():String{
var st:String;
if (browser == "unset"){
if (ExternalInterface.available){
st = ExternalInterface.call("function (){ return navigator['userAgent']}");
st = st.toLowerCase();
if (st.indexOf("firefox") != -1){
browser = FIREFOX;
} else {
if (st.indexOf("chrome") != -1){
browser = CHROME;
} else {
if (st.indexOf("safari") != -1){
browser = SAFARI;
} else {
if (st.indexOf("opera") != -1){
browser = OPERA;
} else {
browser = IE;
};
};
};
};
//unresolved jump
var _slot1 = e;
browser = IE;
} else {
browser = IE;
};
};
return (browser);
}
public static function set gameName(name:String):void{
gameNameVar = name;
}
public static function set gameCode(name:String):void{
gameCodeVar = name;
}
public static function get gameCode():String{
return (gameCodeVar);
}
}
}//package com.gamezhero.api.as3
Section 42
//SubmitArea (com.gamezhero.api.as3.SubmitArea)
package com.gamezhero.api.as3 {
import flash.events.*;
import flash.display.*;
import flash.net.*;
import flash.utils.*;
import flash.text.*;
import com.gamezhero.api.as3.gui.*;
public class SubmitArea extends MovieClip {
private var x_pos:Number;// = 0
private var loader_skin:Loader;
private var skin_info:Object;
private var sendLocalConnection_engine:LocalConnection;
private var _indicator:Indicator;
private var score:Number;
private var engine_mc:MovieClip;
private var gamezheroCode_engine:Number;
private var sendNameConnection_engine:String;
private var objListenerSkin:Object;
private var _loader_url:String;// = "null"
public var versionGame:String;// = "2.0"
private var objListenerEngine:Object;
private var reciveLocalConnection_engine:LocalConnection;
private var infoText:TextField;
private var goal:MovieClip;
private var _loader:URLVariables;
private var sendLocalConnection_skin:LocalConnection;
private var recivedNameConnection_skin:String;
private var score_value:Number;// = 0
private var sendNameConnection_skin:String;
private var y_pos:Number;// = 0
private var skin_mc:MovieClip;
private var reciveLocalConnection_skin:LocalConnection;
private var recivedNameConnection_engine:String;
private var gamezheroCode_skin:Number;
private var loader_engine:Loader;
public static const SUBMITED:String = "gamezhero_submited";
public static const CONTINUE:String = "gamezhero_continue";
public static const ERROR:String = "gamezhero_error";
public function SubmitArea(g:DisplayObject, x_:Number, y_:Number, score_:Number, skin_:Object){
versionGame = "2.0";
score_value = 0;
x_pos = 0;
y_pos = 0;
reciveLocalConnection_skin = new LocalConnection();
sendLocalConnection_skin = new LocalConnection();
reciveLocalConnection_engine = new LocalConnection();
sendLocalConnection_engine = new LocalConnection();
loader_skin = new Loader();
loader_engine = new Loader();
objListenerSkin = new Object();
objListenerEngine = new Object();
_loader = new URLVariables();
_loader_url = "null";
super();
gamezheroCode_skin = new Date().getTime();
gamezheroCode_engine = gamezheroCode_skin;
recivedNameConnection_skin = ("_send_gamezhero_skin_" + gamezheroCode_skin);
sendNameConnection_skin = ("_recive_gamezhero_skin_" + gamezheroCode_skin);
recivedNameConnection_engine = ("_send_gamezhero_engine_" + gamezheroCode_engine);
sendNameConnection_engine = ("_recive_gamezhero_engine_" + gamezheroCode_engine);
iniLocalConnectionsSkin();
iniLocalConnectionsEngine();
iniSubmitArea(g, x_, y_, score_, skin_);
iniEvents();
}
private function onStatusReciveEngine(infoObject:StatusEvent=null):void{
switch (infoObject.level){
case "status":
break;
case "error":
infoText.text = "Error Connections 'Recive From Engine'";
break;
};
}
private function engineLoaderError(IOErrorEvent:Event=null):void{
infoText.text = "Error Loading Engine...";
errorAction();
}
public function createInfoText():void{
var fontFormat:TextFormat;
infoText = new TextField();
infoText.autoSize = TextFieldAutoSize.LEFT;
fontFormat = new TextFormat();
fontFormat.color = 0xFFFFFF;
fontFormat.size = 11;
fontFormat.font = "Arial";
infoText.defaultTextFormat = fontFormat;
this.addChild(infoText);
infoText.x = 10;
infoText.y = 10;
infoText.visible = false;
}
private function iniEvents():void{
loader_skin.contentLoaderInfo.addEventListener(Event.INIT, skinLoaderInit);
loader_skin.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, skinLoaderError);
loader_engine.contentLoaderInfo.addEventListener(Event.INIT, engineLoaderInit);
loader_engine.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, engineLoaderError);
reciveLocalConnection_skin.addEventListener(StatusEvent.STATUS, onStatusReciveSkin);
reciveLocalConnection_skin.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onErrorReciveSkin);
sendLocalConnection_skin.addEventListener(StatusEvent.STATUS, onStatusSendSkin);
sendLocalConnection_skin.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onErrorSendSkin);
reciveLocalConnection_engine.addEventListener(StatusEvent.STATUS, onStatusReciveEngine);
reciveLocalConnection_engine.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onErrorReciveEngine);
sendLocalConnection_engine.addEventListener(StatusEvent.STATUS, onStatusSendEngine);
sendLocalConnection_engine.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onErrorSendEngine);
}
private function onErrorReciveSkin(infoObject:SecurityErrorEvent=null):void{
errorAction();
}
private function toText(arr:Array):String{
var st_url:String;
var i:Number;
st_url = "";
i = 0;
while (i < arr.length) {
st_url = (st_url + String.fromCharCode(arr[i]));
i++;
};
return (st_url);
}
public function errorAction():void{
diactivateAllEvents();
deleteAll();
dispatchEvent(new Event(ERROR));
}
public function submitAction(username:String=""):void{
diactivateAllEvents();
deleteAll();
dispatchEvent(new Event(SUBMITED));
}
private function onErrorSendEngine(infoObject:SecurityErrorEvent=null):void{
errorAction();
}
private function diactivateAllEvents():void{
loader_skin.contentLoaderInfo.removeEventListener(Event.INIT, skinLoaderInit);
loader_skin.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, skinLoaderError);
loader_engine.contentLoaderInfo.removeEventListener(Event.INIT, engineLoaderInit);
loader_engine.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, engineLoaderError);
reciveLocalConnection_skin.removeEventListener(StatusEvent.STATUS, onStatusReciveSkin);
reciveLocalConnection_skin.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, onErrorReciveSkin);
sendLocalConnection_skin.removeEventListener(StatusEvent.STATUS, onStatusSendSkin);
sendLocalConnection_skin.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, onErrorSendSkin);
reciveLocalConnection_engine.removeEventListener(StatusEvent.STATUS, onStatusReciveEngine);
reciveLocalConnection_engine.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, onErrorReciveEngine);
sendLocalConnection_engine.removeEventListener(StatusEvent.STATUS, onStatusSendEngine);
sendLocalConnection_engine.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, onErrorSendEngine);
}
private function checkSkin(event:TimerEvent=null):void{
sendLocalConnection_skin.send(sendNameConnection_skin, "skinIsOk");
}
private function onErrorReciveEngine(infoObject:SecurityErrorEvent=null):void{
errorAction();
}
private function sendScoreAction(event:MouseEvent=null):void{
var request:URLRequest;
if (_loader_url != "null"){
request = new URLRequest(_loader_url);
request.method = URLRequestMethod.POST;
request.data = _loader;
navigateToURL(request, "_blank");
_loader = new URLVariables();
_loader_url = "null";
submitAction();
};
}
private function loadEngine():void{
var url:String;
var request:URLRequest;
infoText.text = "Loading Engine...";
url = (toText([104, 116, 116, 112, 58, 47, 47, 102, 105, 108, 101, 115, 46, 103, 97, 109, 101, 122, 104, 101, 114, 111, 46, 99, 111, 109, 47, 115, 99, 111, 114, 101, 47, 101, 110, 103, 105, 110, 101, 47, 101, 110, 103, 105, 110, 101, 95, 118, 49, 46, 115, 119, 102, 63, 103, 97, 109, 101, 122, 104, 101, 114, 111, 67, 111, 100, 101, 61]) + gamezheroCode_engine);
request = new URLRequest(url);
loader_engine.load(request);
addChild(loader_engine);
//unresolved jump
var _slot1 = e;
infoText.text = "Error Loading Engine...";
errorAction();
}
private function iniLocalConnectionsEngine():void{
var dom:String;
objListenerEngine = new Object();
objListenerEngine.engineOk = function ():void{
sendLocalConnection_engine.send(sendNameConnection_engine, "iniEngine", skin_info);
infoText.text = "Engine Connections...";
};
objListenerEngine.engineError = function ():void{
infoText.text = "Error Engine...";
};
objListenerEngine.submitActionDone = function (obj:Object):void{
sendScore(obj);
};
objListenerEngine.engineActivated = function ():void{
iniSkin();
};
dom = toText([102, 105, 108, 101, 115, 46, 103, 97, 109, 101, 122, 104, 101, 114, 111, 46, 99, 111, 109]);
reciveLocalConnection_engine.allowDomain(dom);
reciveLocalConnection_engine.allowInsecureDomain(dom);
reciveLocalConnection_engine.client = objListenerEngine;
reciveLocalConnection_engine.connect(recivedNameConnection_engine);
sendLocalConnection_engine.allowDomain(dom);
sendLocalConnection_engine.allowInsecureDomain(dom);
}
private function onStatusSendSkin(infoObject:StatusEvent=null):void{
switch (infoObject.level){
case "status":
break;
case "error":
infoText.text = "Error Connections 'Send To Skin'";
break;
};
}
private function skinLoaderInit(event:Event=null):void{
var foo:Timer;
infoText.text = "Check Skin Connection... ";
foo = new Timer(200, 1);
foo.addEventListener(TimerEvent.TIMER, checkSkin);
foo.start();
}
private function checkEngine(event:TimerEvent=null):void{
sendLocalConnection_engine.send(sendNameConnection_engine, "engineIsOk");
}
private function moveAction(event:MouseEvent=null):void{
}
private function onStatusSendEngine(infoObject:StatusEvent=null):void{
switch (infoObject.level){
case "status":
break;
case "error":
infoText.text = "Error Connections 'Send To Engine'";
break;
};
}
private function onStatusReciveSkin(infoObject:StatusEvent=null):void{
switch (infoObject.level){
case "status":
break;
case "error":
infoText.text = "Error Connections 'Recive From Skin'";
break;
};
}
private function iniSkin():void{
loader_skin.x = x_pos;
loader_skin.y = y_pos;
infoText.text = "";
_indicator.remove();
//unresolved jump
var _slot1 = e;
sendLocalConnection_skin.send(sendNameConnection_skin, "iniSkin", skin_info);
}
private function loadSkin():void{
var url:String;
var request:URLRequest;
infoText.text = "Loading Skin...";
url = (toText([104, 116, 116, 112, 58, 47, 47, 102, 105, 108, 101, 115, 46, 103, 97, 109, 101, 122, 104, 101, 114, 111, 46, 99, 111, 109, 47, 115, 99, 111, 114, 101, 47, 115, 107, 105, 110, 47, 115, 107, 105, 110, 95, 118, 49, 46, 115, 119, 102, 63, 103, 97, 109, 101, 122, 104, 101, 114, 111, 67, 111, 100, 101, 61]) + gamezheroCode_skin);
request = new URLRequest(url);
loader_skin.load(request);
addChild(loader_skin);
//unresolved jump
var _slot1 = e;
infoText.text = "Error Loading Skin...";
errorAction();
}
private function iniLocalConnectionsSkin():void{
var dom:String;
objListenerSkin = new Object();
objListenerSkin.skinOk = function ():void{
loadEngine();
};
objListenerSkin.submitAction = function (userName:String):void{
sendLocalConnection_engine.send(sendNameConnection_engine, toText([115, 101, 110, 100, 83, 99, 111, 114, 101]), userName);
};
objListenerSkin.errorInputActin = function ():void{
};
objListenerSkin.continueAction = function ():void{
continueAction();
};
dom = toText([102, 105, 108, 101, 115, 46, 103, 97, 109, 101, 122, 104, 101, 114, 111, 46, 99, 111, 109]);
reciveLocalConnection_skin.allowInsecureDomain(dom);
reciveLocalConnection_skin.allowDomain(dom);
reciveLocalConnection_skin.client = objListenerSkin;
reciveLocalConnection_skin.connect(recivedNameConnection_skin);
sendLocalConnection_skin.allowInsecureDomain(dom);
sendLocalConnection_skin.allowDomain(dom);
}
private function engineLoaderInit(event:Event=null):void{
var foo:Timer;
infoText.text = "Check Engine Connection...";
foo = new Timer(200, 1);
foo.addEventListener(TimerEvent.TIMER, checkEngine);
foo.start();
}
private function onErrorSendSkin(infoObject:SecurityErrorEvent=null):void{
errorAction();
}
public function continueAction():void{
diactivateAllEvents();
deleteAll();
dispatchEvent(new Event(CONTINUE));
}
private function iniSubmitArea(g:DisplayObject, x_:Number, y_:Number, score_:Number, skin_:Object):void{
goal = (g as MovieClip);
goal.addChild(this);
x_pos = x_;
y_pos = y_;
score_value = Math.abs(Math.round(score_));
skin_info = skin_;
skin_info.score = score_value;
skin_info.gameName = GamezheroGlobal.gameName;
skin_info.gameCode = GamezheroGlobal.gameCode;
skin_info.domain = GamezheroGlobal.getDomain(goal.stage);
_indicator = new Indicator(goal);
_indicator.setSize(50, 50);
_indicator.setPos(30, 30);
createInfoText();
loadSkin();
}
private function sendScore(obj:Object):void{
var i:String;
_loader = new URLVariables();
_loader_url = obj.url;
for (i in obj.vars) {
_loader[i] = obj.vars[i];
};
sendScoreAction();
}
private function fromText(txt:String):Array{
var arr:Array;
var i:Number;
arr = new Array();
i = 0;
while (i < txt.length) {
arr.push(txt.charCodeAt(i));
i++;
};
return (arr);
}
private function skinLoaderError(IOErrorEvent:Event=null):void{
infoText.text = "Error Loading Skin...";
errorAction();
}
private function deleteAll():void{
this.removeChild(infoText);
//unresolved jump
var _slot1 = e;
this.removeChild(loader_skin);
//unresolved jump
var _slot1 = e;
this.removeChild(loader_engine);
//unresolved jump
var _slot1 = e;
_indicator.remove();
//unresolved jump
var _slot1 = e;
goal.removeChild(this);
//unresolved jump
var _slot1 = e;
}
}
}//package com.gamezhero.api.as3
Section 43
//UserInfo (com.gamezhero.api.as3.UserInfo)
package com.gamezhero.api.as3 {
import flash.display.*;
import flash.system.*;
import flash.external.*;
public class UserInfo {
public var flash_domain:String;
private var _stage:Stage;
public var ad_zone:String;// = "preloader"
public var flash_height:Number;
public var flash_vars:Object;
public var referrer:String;
public var flash_url:String;
public var browser:String;
public var href:String;
private var _goal:MovieClip;
public var flash_width:Number;
public var api_version:String;// = "AS3 - v3.0"
public var publisher:String;// = "gamezhero"
public var capabilities:String;
public var game_name:String;
public function UserInfo(g:MovieClip){
var g = g;
publisher = "gamezhero";
ad_zone = "preloader";
api_version = "AS3 - v3.0";
_goal = g;
_stage = _goal.stage;
//unresolved jump
var _slot1 = e;
super();
iniInfo();
}
private function iniInfo():void{
var i:String;
this["publisher"] = "gamezhero";
this["ad_zone"] = "preloader";
this["api_version"] = "AS3 - v3.0";
this["flash_vars"] = new Object();
this["capabilities"] = Capabilities.serverString;
if (ExternalInterface.available){
this["href"] = ExternalInterface.call("function (){return document.location.href}");
//unresolved jump
var _slot1 = e;
this["href"] = "-1";
this["browser"] = ExternalInterface.call("function (){var st = ''; for (i in navigator){ if (typeof(navigator[i])!='function'){ st+=i+'='+navigator[i]+'&'; }} return st}");
//unresolved jump
var _slot1 = e;
this["browser"] = "-1";
this["referrer"] = ExternalInterface.call("function (){return document.referrer}");
//unresolved jump
var _slot1 = e;
this["referrer"] = "-1";
} else {
this["href"] = "-1";
this["browser"] = "-1";
this["referrer"] = "-1";
};
this["game_name"] = GamezheroGlobal.gameName;
this["flash_domain"] = GamezheroGlobal.getDomain();
this["flash_width"] = _stage.stageWidth;
this["flash_height"] = _stage.stageHeight;
this["flash_url"] = _stage.root.loaderInfo.url;
//unresolved jump
var _slot1 = e;
for (i in _stage.root.loaderInfo.parameters) {
this["flash_vars"][i] = _stage.root.loaderInfo.parameters[i];
};
//unresolved jump
var _slot1 = e;
}
}
}//package com.gamezhero.api.as3
Section 44
//GamePreloader (com.gamezhero.as3.GamePreloader)
package com.gamezhero.as3 {
import flash.display.*;
public dynamic class GamePreloader extends MovieClip {
public var bg:MovieClip;
public var intro:MovieClip;
public function GamePreloader(){
super();
}
}
}//package com.gamezhero.as3
Section 45
//Music (com.gamezhero.media.Music)
package com.gamezhero.media {
import flash.events.*;
import flash.media.*;
import flash.utils.*;
public class Music {
public static var activeMusic:String = "";
private static var timerSub:Timer = new Timer(50, 0);
public static var musicArchByID:Object = new Object();
private static var musicInArr:Array = new Array();
private static var musicOutArr:Array = new Array();
public static var musicArch:Dictionary = new Dictionary();
private static var musicVolume:Number = 0.5;
public function Music(){
super();
}
private static function completeHandler(event:Event):void{
var ind:*;
var id:String;
var soundFactory:Sound;
ind = event.target;
if (musicArch[ind].loopFlag == "infinity"){
id = musicArch[ind].id;
soundFactory = musicArch[ind].sound;
iniMusic(id, soundFactory);
};
delete musicArch[ind];
}
private static function iniMusic(id:String, soundFactory:Sound, val:Number=0):void{
var loop:Number;
var channel:SoundChannel;
var transf:SoundTransform;
loop = 1000;
channel = soundFactory.play(0, loop);
transf = channel.soundTransform;
transf.pan = 0;
transf.volume = ((val)>musicVolume) ? musicVolume : val;
channel.soundTransform = transf;
channel.addEventListener(Event.SOUND_COMPLETE, completeHandler);
musicArch[channel] = {id:id, sound:soundFactory};
musicArchByID[id] = channel;
}
private static function musicOut(id:String):void{
if (musicArchByID[id] != undefined){
musicOutArr.push(id);
timerSub.addEventListener("timer", updateMusicValue);
timerSub.start();
};
}
public static function stopAll():void{
var i:*;
var channel:*;
for (i in musicArchByID) {
musicOut(i);
};
for (channel in musicArch) {
};
(activeMusic = "");
}
private static function musicIn(id:String):void{
if (musicArchByID[id] != undefined){
musicInArr.push(id);
timerSub.addEventListener("timer", updateMusicValue);
timerSub.start();
};
}
public static function play(sName:String, step:Number=0):void{
var id:String;
var soundFactory:Sound;
var sndClass:Class;
var sName = sName;
var step = step;
id = sName;
if (activeMusic != id){
musicOut(activeMusic);
activeMusic = id;
sndClass = (getDefinitionByName(sName) as Class);
//unresolved jump
var _slot1 = e;
trace(("НЕТ ТАКОЙ МУЗЫКИ :" + sName));
return;
soundFactory = (new (sndClass) as Sound);
iniMusic(id, soundFactory, step);
musicIn(activeMusic);
};
}
private static function updateMusicValue(evnt:TimerEvent=null):void{
var i:Number;
var transf:SoundTransform;
var channel:SoundChannel;
i = 0;
while (i < musicInArr.length) {
channel = musicArchByID[musicInArr[i]];
transf = channel.soundTransform;
transf.volume = (transf.volume + 0.025);
transf.volume = ((transf.volume)>=musicVolume) ? musicVolume : transf.volume;
channel.soundTransform = transf;
if (transf.volume == musicVolume){
musicInArr.splice(i, 1);
i--;
};
i++;
};
i = 0;
while (i < musicOutArr.length) {
channel = musicArchByID[musicOutArr[i]];
transf = channel.soundTransform;
transf.volume = (transf.volume - 0.1);
transf.volume = ((transf.volume)<=0) ? 0 : transf.volume;
channel.soundTransform = transf;
if (transf.volume == 0){
channel.stop();
trace("STOP AFTER MINUS");
musicOutArr.splice(i, 1);
i--;
};
i++;
};
if ((((musicInArr.length == 0)) && ((musicOutArr.length == 0)))){
timerSub.removeEventListener("timer", updateMusicValue);
timerSub.stop();
};
}
public static function setVolume(val:Number):void{
var channel:*;
var transf:SoundTransform;
musicVolume = val;
for (channel in musicArch) {
transf = channel.soundTransform;
transf.volume = musicVolume;
channel.soundTransform = transf;
};
}
}
}//package com.gamezhero.media
Section 46
//SoundFX (com.gamezhero.media.SoundFX)
package com.gamezhero.media {
import flash.events.*;
import flash.media.*;
import flash.utils.*;
public class SoundFX {
private static var soundArch:Dictionary = new Dictionary();
private static var soundVolume:Number = 0.5;
private static var soundArchByID:Object = new Object();
public function SoundFX(){
super();
}
private static function iniSound(id, soundFactory:Sound, pan:Number, loopFlag, kof:Number):SoundChannel{
var loop:Number;
var channel:SoundChannel;
var transf:SoundTransform;
var id = id;
var soundFactory = soundFactory;
var pan = pan;
var loopFlag = loopFlag;
var kof = kof;
loop = ((loopFlag)=="infinity") ? 1000 : loopFlag;
channel = soundFactory.play(0, loop);
transf = channel.soundTransform;
transf.pan = pan;
transf.volume = (soundVolume * kof);
channel.soundTransform = transf;
channel.addEventListener(Event.SOUND_COMPLETE, completeHandler);
soundArch[channel] = {id:id, sound:soundFactory, loopFlag:loopFlag, pan:pan, kof:kof};
if (id != null){
soundArchByID[id] = channel;
};
return (channel);
//unresolved jump
var _slot1 = e;
return (null);
return (null);
}
public static function setPanByID(id:String, pan:Number):void{
var channel:*;
var transf:SoundTransform;
channel = soundArchByID[id];
if (channel != undefined){
transf = channel.soundTransform;
soundArch[channel].pan = pan;
transf.pan = pan;
channel.soundTransform = transf;
};
}
private static function completeHandler(event:Event):void{
var ind:*;
var id:*;
var soundFactory:Sound;
var loopFlag:*;
var pan:Number;
var kof:Number;
ind = event.target;
id = soundArch[ind].id;
if (soundArch[ind].loopFlag == "infinity"){
soundFactory = soundArch[ind].sound;
loopFlag = soundArch[ind].loopFlag;
pan = soundArch[ind].pan;
kof = soundArch[ind].kof;
iniSound(id, soundFactory, loopFlag, pan, kof);
};
delete soundArch[ind];
delete soundArchByID[id];
}
public static function play(id, sName:String, loopFlag=0, pan:Number=0, kof:Number=1):SoundChannel{
var sndClass:Class;
var soundFactory:Sound;
var id = id;
var sName = sName;
var loopFlag = loopFlag;
var pan = pan;
var kof = kof;
if (kof > 1){
kof = 1;
};
if (soundArchByID[id] != undefined){
removeSoundByID(id);
};
sndClass = (getDefinitionByName(sName) as Class);
soundFactory = (new (sndClass) as Sound);
return (iniSound(id, soundFactory, pan, loopFlag, kof));
//unresolved jump
var _slot1 = e;
return (null);
return (null);
}
private static function setVolumeKofByID(id:String, kof:Number):void{
var channel:*;
var transf:SoundTransform;
channel = soundArchByID[id];
if (channel != undefined){
soundArch[channel].kof = kof;
transf = channel.soundTransform;
transf.volume = (soundVolume * soundArch[channel].kof);
channel.soundTransform = transf;
};
}
public static function setVolume(val:Number):void{
var channel:*;
var transf:SoundTransform;
soundVolume = val;
for (channel in soundArch) {
transf = channel.soundTransform;
transf.volume = (soundVolume * soundArch[channel].kof);
channel.soundTransform = transf;
};
}
public static function removeSoundByID(id:String):void{
var channel:*;
channel = soundArchByID[id];
if (channel != undefined){
channel.stop();
channel.removeEventListener(Event.SOUND_COMPLETE, completeHandler);
delete soundArch[channel];
};
}
public static function stopAll():void{
var i:*;
for (i in soundArch) {
i.stop();
i.addEventListener(Event.SOUND_COMPLETE, completeHandler);
delete soundArch[i];
};
soundArchByID = new Object();
soundArch = new Dictionary();
}
}
}//package com.gamezhero.media
Section 47
//CampaignInfo (com.google.analytics.campaign.CampaignInfo)
package com.google.analytics.campaign {
import com.google.analytics.utils.*;
public class CampaignInfo {
private var _new:Boolean;
private var _empty:Boolean;
public function CampaignInfo(empty:Boolean=true, newCampaign:Boolean=false){
super();
_empty = empty;
_new = newCampaign;
}
public function isEmpty():Boolean{
return (_empty);
}
public function toURLString():String{
var v:Variables;
v = toVariables();
return (v.toString());
}
public function toVariables():Variables{
var variables:Variables;
variables = new Variables();
variables.URIencode = true;
if (((!(isEmpty())) && (isNew()))){
variables.utmcn = utmcn;
};
if (((!(isEmpty())) && (!(isNew())))){
variables.utmcr = utmcr;
};
return (variables);
}
public function isNew():Boolean{
return (_new);
}
public function get utmcn():String{
return ("1");
}
public function get utmcr():String{
return ("1");
}
}
}//package com.google.analytics.campaign
Section 48
//CampaignKey (com.google.analytics.campaign.CampaignKey)
package com.google.analytics.campaign {
public class CampaignKey {
public var UCMD:String;// = "utm_medium"
public var UCID:String;// = "utm_id"
public var UCTR:String;// = "utm_term"
public var UCSR:String;// = "utm_source"
public var UCNO:String;// = "utm_nooverride"
public var UCCN:String;// = "utm_campaign"
public var UGCLID:String;// = "gclid"
public var UCCT:String;// = "utm_content"
public function CampaignKey(){
UCCN = "utm_campaign";
UCCT = "utm_content";
UCID = "utm_id";
UCMD = "utm_medium";
UCNO = "utm_nooverride";
UCSR = "utm_source";
UCTR = "utm_term";
UGCLID = "gclid";
super();
}
}
}//package com.google.analytics.campaign
Section 49
//CampaignManager (com.google.analytics.campaign.CampaignManager)
package com.google.analytics.campaign {
import com.google.analytics.core.*;
import com.google.analytics.v4.*;
import com.google.analytics.debug.*;
import com.google.analytics.utils.*;
public class CampaignManager {
private var _config:Configuration;
private var _domainHash:Number;
private var _debug:DebugConfiguration;
private var _timeStamp:Number;
private var _referrer:String;
private var _buffer:Buffer;
public static const trackingDelimiter:String = "|";
public function CampaignManager(config:Configuration, debug:DebugConfiguration, buffer:Buffer, domainHash:Number, referrer:String, timeStamp:Number){
super();
_config = config;
_debug = debug;
_buffer = buffer;
_domainHash = domainHash;
_referrer = referrer;
_timeStamp = timeStamp;
}
public function hasNoOverride(search:String):Boolean{
var key:CampaignKey;
var variables:Variables;
var value:String;
key = _config.campaignKey;
if (search == ""){
return (false);
};
variables = new Variables(search);
value = "";
if (variables.hasOwnProperty(key.UCNO)){
value = variables[key.UCNO];
switch (value){
case "1":
return (true);
case "":
case "0":
default:
return (false);
};
};
return (false);
}
public function getCampaignInformation(search:String, noSessionInformation:Boolean):CampaignInfo{
var campInfo:CampaignInfo;
var campaignTracker:CampaignTracker;
var duplicateCampaign:Boolean;
var campNoOverride:Boolean;
var responseCount:int;
var oldTracker:CampaignTracker;
var sessionCount:int;
campInfo = new CampaignInfo();
duplicateCampaign = false;
campNoOverride = false;
responseCount = 0;
if (((_config.allowLinker) && (_buffer.isGenuine()))){
if (!_buffer.hasUTMZ()){
return (campInfo);
};
};
campaignTracker = getTrackerFromSearchString(search);
if (isValid(campaignTracker)){
campNoOverride = hasNoOverride(search);
if (((campNoOverride) && (!(_buffer.hasUTMZ())))){
return (campInfo);
};
};
if (!isValid(campaignTracker)){
campaignTracker = getOrganicCampaign();
if (((!(_buffer.hasUTMZ())) && (isIgnoredKeyword(campaignTracker)))){
return (campInfo);
};
};
if (((!(isValid(campaignTracker))) && (noSessionInformation))){
campaignTracker = getReferrerCampaign();
if (((!(_buffer.hasUTMZ())) && (isIgnoredReferral(campaignTracker)))){
return (campInfo);
};
};
if (!isValid(campaignTracker)){
if (((!(_buffer.hasUTMZ())) && (noSessionInformation))){
campaignTracker = getDirectCampaign();
};
};
if (!isValid(campaignTracker)){
return (campInfo);
};
if (((_buffer.hasUTMZ()) && (!(_buffer.utmz.isEmpty())))){
oldTracker = new CampaignTracker();
oldTracker.fromTrackerString(_buffer.utmz.campaignTracking);
duplicateCampaign = (oldTracker.toTrackerString() == campaignTracker.toTrackerString());
responseCount = _buffer.utmz.responseCount;
};
if (((!(duplicateCampaign)) || (noSessionInformation))){
sessionCount = _buffer.utma.sessionCount;
responseCount++;
if (sessionCount == 0){
sessionCount = 1;
};
_buffer.utmz.domainHash = _domainHash;
_buffer.utmz.campaignCreation = _timeStamp;
_buffer.utmz.campaignSessions = sessionCount;
_buffer.utmz.responseCount = responseCount;
_buffer.utmz.campaignTracking = campaignTracker.toTrackerString();
_debug.info(_buffer.utmz.toString(), VisualDebugMode.geek);
campInfo = new CampaignInfo(false, true);
} else {
campInfo = new CampaignInfo(false, false);
};
return (campInfo);
}
public function isValid(tracker:CampaignTracker):Boolean{
if (((tracker) && (tracker.isValid()))){
return (true);
};
return (false);
}
public function getTrackerFromSearchString(search:String):CampaignTracker{
var organicCampaign:CampaignTracker;
var camp:CampaignTracker;
var key:CampaignKey;
var variables:Variables;
organicCampaign = getOrganicCampaign();
camp = new CampaignTracker();
key = _config.campaignKey;
if (search == ""){
return (camp);
};
variables = new Variables(search);
if (variables.hasOwnProperty(key.UCID)){
camp.id = variables[key.UCID];
};
if (variables.hasOwnProperty(key.UCSR)){
camp.source = variables[key.UCSR];
};
if (variables.hasOwnProperty(key.UGCLID)){
camp.clickId = variables[key.UGCLID];
};
if (variables.hasOwnProperty(key.UCCN)){
camp.name = variables[key.UCCN];
} else {
camp.name = "(not set)";
};
if (variables.hasOwnProperty(key.UCMD)){
camp.medium = variables[key.UCMD];
} else {
camp.medium = "(not set)";
};
if (variables.hasOwnProperty(key.UCTR)){
camp.term = variables[key.UCTR];
} else {
if (((organicCampaign) && (!((organicCampaign.term == ""))))){
camp.term = organicCampaign.term;
};
};
if (variables.hasOwnProperty(key.UCCT)){
camp.content = variables[key.UCCT];
};
return (camp);
}
public function getOrganicCampaign():CampaignTracker{
var camp:CampaignTracker;
var ref:URL;
var name:String;
var tmp:Array;
var currentOrganicSource:OrganicReferrer;
var keyword:String;
if (((isInvalidReferrer(_referrer)) || (isFromGoogleCSE(_referrer, _config)))){
return (camp);
};
ref = new URL(_referrer);
name = "";
if (ref.hostName != ""){
if (ref.hostName.indexOf(".") > -1){
tmp = ref.hostName.split(".");
switch (tmp.length){
case 2:
name = tmp[0];
break;
case 3:
name = tmp[1];
break;
};
};
};
if (_config.organic.match(name)){
currentOrganicSource = _config.organic.getReferrerByName(name);
keyword = _config.organic.getKeywordValue(currentOrganicSource, ref.search);
camp = new CampaignTracker();
camp.source = currentOrganicSource.engine;
camp.name = "(organic)";
camp.medium = "organic";
camp.term = keyword;
};
return (camp);
}
public function isIgnoredReferral(tracker:CampaignTracker):Boolean{
if (((tracker) && ((tracker.medium == "referral")))){
return (_config.organic.isIgnoredReferral(tracker.source));
};
return (false);
}
public function getDirectCampaign():CampaignTracker{
var camp:CampaignTracker;
camp = new CampaignTracker();
camp.source = "(direct)";
camp.name = "(direct)";
camp.medium = "(none)";
return (camp);
}
public function isIgnoredKeyword(tracker:CampaignTracker):Boolean{
if (((tracker) && ((tracker.medium == "organic")))){
return (_config.organic.isIgnoredKeyword(tracker.term));
};
return (false);
}
public function getReferrerCampaign():CampaignTracker{
var camp:CampaignTracker;
var ref:URL;
var hostname:String;
var content:String;
if (((isInvalidReferrer(_referrer)) || (isFromGoogleCSE(_referrer, _config)))){
return (camp);
};
ref = new URL(_referrer);
hostname = ref.hostName;
content = ref.path;
if (hostname.indexOf("www.") == 0){
hostname = hostname.substr(4);
};
camp = new CampaignTracker();
camp.source = hostname;
camp.name = "(referral)";
camp.medium = "referral";
camp.content = content;
return (camp);
}
public static function isInvalidReferrer(referrer:String):Boolean{
var url:URL;
if ((((((referrer == "")) || ((referrer == "-")))) || ((referrer == "0")))){
return (true);
};
if (referrer.indexOf("://") > -1){
url = new URL(referrer);
if ((((url.protocol == Protocols.file)) || ((url.protocol == Protocols.none)))){
return (true);
};
};
return (false);
}
public static function isFromGoogleCSE(referrer:String, config:Configuration):Boolean{
var url:URL;
url = new URL(referrer);
if (url.hostName.indexOf(config.google) > -1){
if (url.search.indexOf((config.googleSearchParam + "=")) > -1){
if (url.path == ("/" + config.googleCsePath)){
return (true);
};
};
};
return (false);
}
}
}//package com.google.analytics.campaign
Section 50
//CampaignTracker (com.google.analytics.campaign.CampaignTracker)
package com.google.analytics.campaign {
import com.google.analytics.utils.*;
public class CampaignTracker {
public var content:String;
public var id:String;
public var clickId:String;
public var name:String;
public var term:String;
public var medium:String;
public var source:String;
public function CampaignTracker(id:String="", source:String="", clickId:String="", name:String="", medium:String="", term:String="", content:String=""){
super();
this.id = id;
this.source = source;
this.clickId = clickId;
this.name = name;
this.medium = medium;
this.term = term;
this.content = content;
}
public function toTrackerString():String{
var data:Array;
data = [];
_addIfNotEmpty(data, "utmcid=", id);
_addIfNotEmpty(data, "utmcsr=", source);
_addIfNotEmpty(data, "utmgclid=", clickId);
_addIfNotEmpty(data, "utmccn=", name);
_addIfNotEmpty(data, "utmcmd=", medium);
_addIfNotEmpty(data, "utmctr=", term);
_addIfNotEmpty(data, "utmcct=", content);
return (data.join(CampaignManager.trackingDelimiter));
}
public function isValid():Boolean{
if (((((!((id == ""))) || (!((source == ""))))) || (!((clickId == ""))))){
return (true);
};
return (false);
}
private function _addIfNotEmpty(arr:Array, field:String, value:String):void{
if (value != ""){
value = value.split("+").join("%20");
value = value.split(" ").join("%20");
arr.push((field + value));
};
}
public function fromTrackerString(tracker:String):void{
var data:String;
var vars:Variables;
data = tracker.split(CampaignManager.trackingDelimiter).join("&");
vars = new Variables(data);
if (vars.hasOwnProperty("utmcid")){
this.id = vars["utmcid"];
};
if (vars.hasOwnProperty("utmcsr")){
this.source = vars["utmcsr"];
};
if (vars.hasOwnProperty("utmccn")){
this.name = vars["utmccn"];
};
if (vars.hasOwnProperty("utmcmd")){
this.medium = vars["utmcmd"];
};
if (vars.hasOwnProperty("utmctr")){
this.term = vars["utmctr"];
};
if (vars.hasOwnProperty("utmcct")){
this.content = vars["utmcct"];
};
if (vars.hasOwnProperty("utmgclid")){
this.clickId = vars["utmgclid"];
};
}
}
}//package com.google.analytics.campaign
Section 51
//BrowserInfo (com.google.analytics.core.BrowserInfo)
package com.google.analytics.core {
import com.google.analytics.v4.*;
import com.google.analytics.utils.*;
public class BrowserInfo {
private var _config:Configuration;
private var _info:Environment;
public function BrowserInfo(config:Configuration, info:Environment){
super();
_config = config;
_info = info;
}
public function get utmul():String{
return (_info.language.toLowerCase());
}
public function get utmje():String{
return ("0");
}
public function toURLString():String{
var v:Variables;
v = toVariables();
return (v.toString());
}
public function get utmsr():String{
return (((_info.screenWidth + "x") + _info.screenHeight));
}
public function get utmcs():String{
return (_info.languageEncoding);
}
public function get utmfl():String{
var v:Version;
if (_config.detectFlash){
v = _info.flashVersion;
return (((((v.major + ".") + v.minor) + " r") + v.build));
};
return ("-");
}
public function toVariables():Variables{
var variables:Variables;
variables = new Variables();
variables.URIencode = true;
variables.utmcs = utmcs;
variables.utmsr = utmsr;
variables.utmsc = utmsc;
variables.utmul = utmul;
variables.utmje = utmje;
variables.utmfl = utmfl;
return (variables);
}
public function get utmsc():String{
return ((_info.screenColorDepth + "-bit"));
}
}
}//package com.google.analytics.core
Section 52
//Buffer (com.google.analytics.core.Buffer)
package com.google.analytics.core {
import flash.events.*;
import flash.net.*;
import com.google.analytics.v4.*;
import com.google.analytics.debug.*;
import com.google.analytics.data.*;
public dynamic class Buffer {
private var _volatile:Boolean;
private var _data:Object;
private var _OBJ:Object;
private var _utmb:UTMB;
private var _utmc:UTMC;
private var _utma:UTMA;
private var _debug:DebugConfiguration;
private var _utmk:UTMK;
private var _config:Configuration;
private var _utmv:UTMV;
private var _utmx:UTMX;
private var _utmz:UTMZ;
private var _SO:SharedObject;
public function Buffer(config:Configuration, debug:DebugConfiguration, volatile:Boolean=false, data:Object=null){
var prop:String;
super();
_config = config;
_debug = debug;
_data = data;
_volatile = volatile;
if (_volatile){
_OBJ = new Object();
if (_data){
for (prop in _data) {
_OBJ[prop] = _data[prop];
};
};
};
}
public function save():void{
var flushStatus:String;
if (!isVolatile()){
flushStatus = null;
flushStatus = _SO.flush();
//unresolved jump
var _slot1 = e;
_debug.warning("Error...Could not write SharedObject to disk");
switch (flushStatus){
case SharedObjectFlushStatus.PENDING:
_debug.info("Requesting permission to save object...");
_SO.addEventListener(NetStatusEvent.NET_STATUS, _onFlushStatus);
break;
case SharedObjectFlushStatus.FLUSHED:
_debug.info("Value flushed to disk.");
break;
};
};
}
public function get utmv():UTMV{
if (!hasUTMV()){
_createUMTV();
};
return (_utmv);
}
public function get utmx():UTMX{
if (!hasUTMX()){
_createUMTX();
};
return (_utmx);
}
public function get utmz():UTMZ{
if (!hasUTMZ()){
_createUMTZ();
};
return (_utmz);
}
public function hasUTMA():Boolean{
if (_utma){
return (true);
};
return (false);
}
public function hasUTMB():Boolean{
if (_utmb){
return (true);
};
return (false);
}
public function clearCookies():void{
utma.reset();
utmb.reset();
utmc.reset();
utmz.reset();
utmv.reset();
utmk.reset();
}
public function resetCurrentSession():void{
_clearUTMB();
_clearUTMC();
save();
}
public function hasUTMC():Boolean{
if (_utmc){
return (true);
};
return (false);
}
public function hasUTMK():Boolean{
if (_utmk){
return (true);
};
return (false);
}
public function getLinkerUrl(targetUrl:String="", useHash:Boolean=false):String{
var linkerParams:String;
var formattedUrl:String;
var urlFields:Array;
linkerParams = toLinkerParams();
formattedUrl = targetUrl;
urlFields = targetUrl.split("#");
if (linkerParams){
if (useHash){
if (1 >= urlFields.length){
formattedUrl = (formattedUrl + ("#" + linkerParams));
} else {
formattedUrl = (formattedUrl + ("&" + linkerParams));
};
} else {
if (1 >= urlFields.length){
if (targetUrl.indexOf("?") > -1){
formattedUrl = (formattedUrl + "&");
} else {
formattedUrl = (formattedUrl + "?");
};
formattedUrl = (formattedUrl + linkerParams);
} else {
formattedUrl = urlFields[0];
if (targetUrl.indexOf("?") > -1){
formattedUrl = (formattedUrl + "&");
} else {
formattedUrl = (formattedUrl + "?");
};
formattedUrl = (formattedUrl + ((linkerParams + "#") + urlFields[1]));
};
};
};
return (formattedUrl);
}
public function generateCookiesHash():Number{
var value:String;
value = "";
value = (value + utma.valueOf());
value = (value + utmb.valueOf());
value = (value + utmc.valueOf());
value = (value + utmx.valueOf());
value = (value + utmz.valueOf());
value = (value + utmv.valueOf());
return (Utils.generateHash(value));
}
private function _createUMTA():void{
_utma = new UTMA();
_utma.proxy = this;
}
private function _createUMTB():void{
_utmb = new UTMB();
_utmb.proxy = this;
}
private function _createUMTC():void{
_utmc = new UTMC();
}
public function hasUTMV():Boolean{
if (_utmv){
return (true);
};
return (false);
}
private function _createUMTK():void{
_utmk = new UTMK();
_utmk.proxy = this;
}
public function hasUTMX():Boolean{
if (_utmx){
return (true);
};
return (false);
}
public function hasUTMZ():Boolean{
if (_utmz){
return (true);
};
return (false);
}
private function _createUMTV():void{
_utmv = new UTMV();
_utmv.proxy = this;
}
private function _createUMTX():void{
_utmx = new UTMX();
_utmx.proxy = this;
}
private function _createUMTZ():void{
_utmz = new UTMZ();
_utmz.proxy = this;
}
public function updateUTMA(timestamp:Number):void{
if (_debug.verbose){
_debug.info((("updateUTMA( " + timestamp) + " )"), VisualDebugMode.advanced);
};
if (!utma.isEmpty()){
if (isNaN(utma.sessionCount)){
utma.sessionCount = 1;
} else {
utma.sessionCount = (utma.sessionCount + 1);
};
utma.lastTime = utma.currentTime;
utma.currentTime = timestamp;
};
}
public function isGenuine():Boolean{
if (!hasUTMK()){
return (true);
};
return ((utmk.hash == generateCookiesHash()));
}
private function _onFlushStatus(event:NetStatusEvent):void{
_debug.info("User closed permission dialog...");
switch (event.info.code){
case "SharedObject.Flush.Success":
_debug.info("User granted permission -- value saved.");
break;
case "SharedObject.Flush.Failed":
_debug.info("User denied permission -- value not saved.");
break;
};
_SO.removeEventListener(NetStatusEvent.NET_STATUS, _onFlushStatus);
}
public function toLinkerParams():String{
var output:String;
output = "";
output = (output + utma.toURLString());
output = (output + ("&" + utmb.toURLString()));
output = (output + ("&" + utmc.toURLString()));
output = (output + ("&" + utmx.toURLString()));
output = (output + ("&" + utmz.toURLString()));
output = (output + ("&" + utmv.toURLString()));
output = (output + ("&__utmk=" + generateCookiesHash()));
return (output);
}
private function _clearUTMA():void{
_utma = null;
if (!isVolatile()){
_SO.data.utma = null;
delete _SO.data.utma;
};
}
private function _clearUTMC():void{
_utmc = null;
}
private function _clearUTMB():void{
_utmb = null;
if (!isVolatile()){
_SO.data.utmb = null;
delete _SO.data.utmb;
};
}
public function update(name:String, value):void{
if (isVolatile()){
_OBJ[name] = value;
} else {
_SO.data[name] = value;
};
}
public function createSO():void{
var saveSO:Boolean;
UTMZ.defaultTimespan = _config.conversionTimeout;
UTMB.defaultTimespan = _config.sessionTimeout;
if (!_volatile){
_SO = SharedObject.getLocal(_config.cookieName, _config.cookiePath);
//unresolved jump
var _slot1 = e;
if (_debug.active){
_debug.warning(((("Shared Object " + _config.cookieName) + " failed to be set\nreason: ") + _slot1.message));
};
saveSO = false;
if (_SO.data.utma){
if (!hasUTMA()){
_createUMTA();
};
_utma.fromSharedObject(_SO.data.utma);
if (_debug.verbose){
_debug.info(("found: " + _utma.toString(true)), VisualDebugMode.geek);
};
if (_utma.isExpired()){
if (_debug.verbose){
_debug.warning("UTMA has expired", VisualDebugMode.advanced);
};
_clearUTMA();
saveSO = true;
};
};
if (_SO.data.utmb){
if (!hasUTMB()){
_createUMTB();
};
_utmb.fromSharedObject(_SO.data.utmb);
if (_debug.verbose){
_debug.info(("found: " + _utmb.toString(true)), VisualDebugMode.geek);
};
if (_utmb.isExpired()){
if (_debug.verbose){
_debug.warning("UTMB has expired", VisualDebugMode.advanced);
};
_clearUTMB();
saveSO = true;
};
};
if (_SO.data.utmc){
delete _SO.data.utmc;
saveSO = true;
};
if (_SO.data.utmk){
if (!hasUTMK()){
_createUMTK();
};
_utmk.fromSharedObject(_SO.data.utmk);
if (_debug.verbose){
_debug.info(("found: " + _utmk.toString()), VisualDebugMode.geek);
};
};
if (!hasUTMX()){
_createUMTX();
};
if (_SO.data.utmv){
if (!hasUTMV()){
_createUMTV();
};
_utmv.fromSharedObject(_SO.data.utmv);
if (_debug.verbose){
_debug.info(("found: " + _utmv.toString(true)), VisualDebugMode.geek);
};
if (_utmv.isExpired()){
if (_debug.verbose){
_debug.warning("UTMV has expired", VisualDebugMode.advanced);
};
_clearUTMV();
saveSO = true;
};
};
if (_SO.data.utmz){
if (!hasUTMZ()){
_createUMTZ();
};
_utmz.fromSharedObject(_SO.data.utmz);
if (_debug.verbose){
_debug.info(("found: " + _utmz.toString(true)), VisualDebugMode.geek);
};
if (_utmz.isExpired()){
if (_debug.verbose){
_debug.warning("UTMZ has expired", VisualDebugMode.advanced);
};
_clearUTMZ();
saveSO = true;
};
};
if (saveSO){
save();
};
};
}
private function _clearUTMZ():void{
_utmz = null;
if (!isVolatile()){
_SO.data.utmz = null;
delete _SO.data.utmz;
};
}
private function _clearUTMV():void{
_utmv = null;
if (!isVolatile()){
_SO.data.utmv = null;
delete _SO.data.utmv;
};
}
public function isVolatile():Boolean{
return (_volatile);
}
public function get utma():UTMA{
if (!hasUTMA()){
_createUMTA();
};
return (_utma);
}
public function get utmb():UTMB{
if (!hasUTMB()){
_createUMTB();
};
return (_utmb);
}
public function get utmc():UTMC{
if (!hasUTMC()){
_createUMTC();
};
return (_utmc);
}
public function get utmk():UTMK{
if (!hasUTMK()){
_createUMTK();
};
return (_utmk);
}
}
}//package com.google.analytics.core
Section 53
//DocumentInfo (com.google.analytics.core.DocumentInfo)
package com.google.analytics.core {
import com.google.analytics.v4.*;
import com.google.analytics.utils.*;
import com.google.analytics.external.*;
public class DocumentInfo {
private var _config:Configuration;
private var _utmr:String;
private var _adSense:AdSenseGlobals;
private var _info:Environment;
private var _pageURL:String;
public function DocumentInfo(config:Configuration, info:Environment, formatedReferrer:String, pageURL:String=null, adSense:AdSenseGlobals=null){
super();
_config = config;
_info = info;
_utmr = formatedReferrer;
_pageURL = pageURL;
_adSense = adSense;
}
public function get utmr():String{
if (!_utmr){
return ("-");
};
return (_utmr);
}
public function toURLString():String{
var v:Variables;
v = toVariables();
return (v.toString());
}
private function _renderPageURL(pageURL:String=""):String{
var pathname:String;
var search:String;
pathname = _info.locationPath;
search = _info.locationSearch;
if (((!(pageURL)) || ((pageURL == "")))){
pageURL = (pathname + unescape(search));
if (pageURL == ""){
pageURL = "/";
};
};
return (pageURL);
}
public function get utmp():String{
return (_renderPageURL(_pageURL));
}
private function _generateHitId():Number{
var hid:Number;
if (((_adSense.hid) && (!((_adSense.hid == ""))))){
hid = Number(_adSense.hid);
} else {
hid = Math.round((Math.random() * 2147483647));
_adSense.hid = String(hid);
};
return (hid);
}
public function get utmhid():String{
return (String(_generateHitId()));
}
public function toVariables():Variables{
var variables:Variables;
variables = new Variables();
variables.URIencode = true;
if (((_config.detectTitle) && (!((utmdt == ""))))){
variables.utmdt = utmdt;
};
variables.utmhid = utmhid;
variables.utmr = utmr;
variables.utmp = utmp;
return (variables);
}
public function get utmdt():String{
return (_info.documentTitle);
}
}
}//package com.google.analytics.core
Section 54
//Domain (com.google.analytics.core.Domain)
package com.google.analytics.core {
import com.google.analytics.debug.*;
public class Domain {
private var _mode:DomainNameMode;
private var _name:String;
private var _debug:DebugConfiguration;
public function Domain(mode:DomainNameMode=null, name:String="", debug:DebugConfiguration=null){
super();
_debug = debug;
if (mode == null){
mode = DomainNameMode.auto;
};
_mode = mode;
if (mode == DomainNameMode.custom){
this.name = name;
} else {
_name = name;
};
}
public function get mode():DomainNameMode{
return (_mode);
}
public function set mode(value:DomainNameMode):void{
_mode = value;
if (_mode == DomainNameMode.none){
_name = "";
};
}
public function get name():String{
return (_name);
}
public function set name(value:String):void{
if (((!((value.charAt(0) == "."))) && (_debug))){
_debug.warning(("missing leading period \".\", cookie will only be accessible on " + value), VisualDebugMode.geek);
};
_name = value;
}
}
}//package com.google.analytics.core
Section 55
//DomainNameMode (com.google.analytics.core.DomainNameMode)
package com.google.analytics.core {
public class DomainNameMode {
private var _value:int;
private var _name:String;
public static const custom:DomainNameMode = new DomainNameMode(2, "custom");
;
public static const none:DomainNameMode = new DomainNameMode(0, "none");
;
public static const auto:DomainNameMode = new DomainNameMode(1, "auto");
;
public function DomainNameMode(value:int=0, name:String=""){
super();
_value = value;
_name = name;
}
public function valueOf():int{
return (_value);
}
public function toString():String{
return (_name);
}
}
}//package com.google.analytics.core
Section 56
//Ecommerce (com.google.analytics.core.Ecommerce)
package com.google.analytics.core {
import com.google.analytics.debug.*;
import com.google.analytics.ecommerce.*;
public class Ecommerce {
private var _debug:DebugConfiguration;
private var _trans:Array;
public function Ecommerce(debug:DebugConfiguration){
super();
this._debug = debug;
_trans = new Array();
}
public function getTransaction(orderId:String):Transaction{
var i:Number;
i = 0;
while (i < _trans.length) {
if (_trans[i].id == orderId){
return (_trans[i]);
};
i++;
};
return (null);
}
public function getTransLength():Number{
return (_trans.length);
}
public function getTransFromArray(i:Number):Transaction{
return (_trans[i]);
}
public function addTransaction(id:String, affiliation:String, total:String, tax:String, shipping:String, city:String, state:String, country:String):Transaction{
var newTrans:Transaction;
newTrans = getTransaction(id);
if (newTrans == null){
newTrans = new Transaction(id, affiliation, total, tax, shipping, city, state, country);
_trans.push(newTrans);
} else {
newTrans.affiliation = affiliation;
newTrans.total = total;
newTrans.tax = tax;
newTrans.shipping = shipping;
newTrans.city = city;
newTrans.state = state;
newTrans.country = country;
};
return (newTrans);
}
}
}//package com.google.analytics.core
Section 57
//EventInfo (com.google.analytics.core.EventInfo)
package com.google.analytics.core {
import com.google.analytics.utils.*;
import com.google.analytics.data.*;
public class EventInfo {
private var _isEventHit:Boolean;
private var _ext10:X10;
private var _x10:X10;
public function EventInfo(isEventHit:Boolean, xObject:X10, extObject:X10=null){
super();
_isEventHit = isEventHit;
_x10 = xObject;
_ext10 = extObject;
}
public function toURLString():String{
var v:Variables;
v = toVariables();
return (v.toString());
}
public function get utmt():String{
return ("event");
}
public function get utme():String{
return (_x10.renderMergedUrlString(_ext10));
}
public function toVariables():Variables{
var variables:Variables;
variables = new Variables();
variables.URIencode = true;
if (_isEventHit){
variables.utmt = utmt;
};
variables.utme = utme;
return (variables);
}
}
}//package com.google.analytics.core
Section 58
//EventTracker (com.google.analytics.core.EventTracker)
package com.google.analytics.core {
import com.google.analytics.v4.*;
public class EventTracker {
private var _parent:GoogleAnalyticsAPI;
public var name:String;
public function EventTracker(name:String, parent:GoogleAnalyticsAPI){
super();
this.name = name;
_parent = parent;
}
public function trackEvent(action:String, label:String=null, value:Number=NaN):Boolean{
return (_parent.trackEvent(name, action, label, value));
}
}
}//package com.google.analytics.core
Section 59
//ga_internal (com.google.analytics.core.ga_internal)
package com.google.analytics.core {
public namespace ga_internal;
}//package com.google.analytics.core
Section 60
//GIFRequest (com.google.analytics.core.GIFRequest)
package com.google.analytics.core {
import flash.events.*;
import flash.display.*;
import flash.net.*;
import com.google.analytics.v4.*;
import com.google.analytics.debug.*;
import com.google.analytics.utils.*;
import flash.system.*;
public class GIFRequest {
private var _info:Environment;
private var _count:int;
private var _utmac:String;
private var _alertcount:int;
private var _debug:DebugConfiguration;
private var _lastRequest:URLRequest;
private var _buffer:Buffer;
private var _config:Configuration;
private var _requests:Array;
public function GIFRequest(config:Configuration, debug:DebugConfiguration, buffer:Buffer, info:Environment){
super();
_config = config;
_debug = debug;
_buffer = buffer;
_info = info;
_count = 0;
_alertcount = 0;
_requests = [];
}
public function get utmn():String{
return ((Utils.generate32bitRandom() as String));
}
public function onIOError(event:IOErrorEvent):void{
var url:String;
var id:String;
var msg:String;
url = _lastRequest.url;
id = String((_requests.length - 1));
msg = (("Gif Request #" + id) + " failed");
if (_debug.GIFRequests){
if (!_debug.verbose){
if (url.indexOf("?") > -1){
url = url.split("?")[0];
};
url = _shortenURL(url);
};
if (int(_debug.mode) > int(VisualDebugMode.basic)){
msg = (msg + ((" \"" + url) + "\" does not exists or is unreachable"));
};
_debug.failure(msg);
} else {
_debug.warning(msg);
};
_removeListeners(event.target);
}
public function send(account:String, variables:Variables=null, force:Boolean=false, rateLimit:Boolean=false):void{
var localPath:String;
var localImage:URLRequest;
var remoteImage:URLRequest;
_utmac = account;
if (!variables){
variables = new Variables();
};
variables.URIencode = false;
variables.pre = ["utmwv", "utmn", "utmhn", "utmt", "utme", "utmcs", "utmsr", "utmsc", "utmul", "utmje", "utmfl", "utmdt", "utmhid", "utmr", "utmp"];
variables.post = ["utmcc"];
if (_debug.verbose){
_debug.info(((("tracking: " + _buffer.utmb.trackCount) + "/") + _config.trackingLimitPerSession), VisualDebugMode.geek);
};
if ((((_buffer.utmb.trackCount < _config.trackingLimitPerSession)) || (force))){
if (rateLimit){
updateToken();
};
if (((((force) || (!(rateLimit)))) || ((_buffer.utmb.token >= 1)))){
if (((!(force)) && (rateLimit))){
_buffer.utmb.token = (_buffer.utmb.token - 1);
};
_buffer.utmb.trackCount = (_buffer.utmb.trackCount + 1);
if (_debug.verbose){
_debug.info(_buffer.utmb.toString(), VisualDebugMode.geek);
};
variables.utmwv = utmwv;
variables.utmn = Utils.generate32bitRandom();
if (_info.domainName != ""){
variables.utmhn = _info.domainName;
};
if (_config.sampleRate < 1){
variables.utmsp = (_config.sampleRate * 100);
};
if ((((_config.serverMode == ServerOperationMode.local)) || ((_config.serverMode == ServerOperationMode.both)))){
localPath = _info.locationSWFPath;
if (localPath.lastIndexOf("/") > 0){
localPath = localPath.substring(0, localPath.lastIndexOf("/"));
};
localImage = new URLRequest();
if (_config.localGIFpath.indexOf("http") == 0){
localImage.url = _config.localGIFpath;
} else {
localImage.url = (localPath + _config.localGIFpath);
};
localImage.url = (localImage.url + ("?" + variables.toString()));
if (((_debug.active) && (_debug.GIFRequests))){
_debugSend(localImage);
} else {
sendRequest(localImage);
};
};
if ((((_config.serverMode == ServerOperationMode.remote)) || ((_config.serverMode == ServerOperationMode.both)))){
remoteImage = new URLRequest();
if (_info.protocol == Protocols.HTTPS){
remoteImage.url = _config.secureRemoteGIFpath;
} else {
if (_info.protocol == Protocols.HTTP){
remoteImage.url = _config.remoteGIFpath;
} else {
remoteImage.url = _config.remoteGIFpath;
};
};
variables.utmac = utmac;
variables.utmcc = encodeURIComponent(utmcc);
remoteImage.url = (remoteImage.url + ("?" + variables.toString()));
if (((_debug.active) && (_debug.GIFRequests))){
_debugSend(remoteImage);
} else {
sendRequest(remoteImage);
};
};
};
};
}
public function onSecurityError(event:SecurityErrorEvent):void{
if (_debug.GIFRequests){
_debug.failure(event.text);
};
}
public function get utmsp():String{
return (((_config.sampleRate * 100) as String));
}
public function get utmcc():String{
var cookies:Array;
cookies = [];
if (_buffer.hasUTMA()){
cookies.push((_buffer.utma.toURLString() + ";"));
};
if (_buffer.hasUTMZ()){
cookies.push((_buffer.utmz.toURLString() + ";"));
};
if (_buffer.hasUTMV()){
cookies.push((_buffer.utmv.toURLString() + ";"));
};
return (cookies.join("+"));
}
public function get utmac():String{
return (_utmac);
}
public function get utmwv():String{
return (_config.version);
}
public function sendRequest(request:URLRequest):void{
var loader:Loader;
var context:LoaderContext;
var request = request;
loader = new Loader();
loader.name = String(_count++);
context = new LoaderContext(false);
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onIOError);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
_lastRequest = request;
_requests[loader.name] = new RequestObject(request);
loader.load(request, context);
//unresolved jump
var _slot1 = e;
_debug.failure("\"Loader.load()\" could not instanciate Gif Request");
}
private function _removeListeners(target:Object):void{
target.removeEventListener(IOErrorEvent.IO_ERROR, onIOError);
target.removeEventListener(Event.COMPLETE, onComplete);
}
public function updateToken():void{
var timestamp:Number;
var tokenDelta:Number;
timestamp = new Date().getTime();
tokenDelta = ((timestamp - _buffer.utmb.lastTime) * (_config.tokenRate / 1000));
if (_debug.verbose){
_debug.info(("tokenDelta: " + tokenDelta), VisualDebugMode.geek);
};
if (tokenDelta >= 1){
_buffer.utmb.token = Math.min(Math.floor((_buffer.utmb.token + tokenDelta)), _config.bucketCapacity);
_buffer.utmb.lastTime = timestamp;
if (_debug.verbose){
_debug.info(_buffer.utmb.toString(), VisualDebugMode.geek);
};
};
}
private function _shortenURL(url:String):String{
var paths:Array;
if (url.length > 60){
paths = url.split("/");
while (url.length > 60) {
paths.shift();
url = ("../" + paths.join("/"));
};
};
return (url);
}
public function get utmhn():String{
return (_info.domainName);
}
private function _debugSend(request:URLRequest):void{
var data:String;
var _local3:String;
data = "";
switch (_debug.mode){
case VisualDebugMode.geek:
data = ((("Gif Request #" + _alertcount) + ":\n") + request.url);
break;
case VisualDebugMode.advanced:
_local3 = request.url;
if (_local3.indexOf("?") > -1){
_local3 = _local3.split("?")[0];
};
_local3 = _shortenURL(_local3);
data = (((("Send Gif Request #" + _alertcount) + ":\n") + _local3) + " ?");
break;
case VisualDebugMode.basic:
default:
data = (((("Send " + _config.serverMode.toString()) + " Gif Request #") + _alertcount) + " ?");
};
_debug.alertGifRequest(data, request, this);
_alertcount++;
}
public function onComplete(event:Event):void{
var id:String;
var msg:String;
var url:String;
id = event.target.loader.name;
_requests[id].complete();
msg = (("Gif Request #" + id) + " sent");
url = _requests[id].request.url;
if (_debug.GIFRequests){
if (!_debug.verbose){
if (url.indexOf("?") > -1){
url = url.split("?")[0];
};
url = _shortenURL(url);
};
if (int(_debug.mode) > int(VisualDebugMode.basic)){
msg = (msg + ((" to \"" + url) + "\""));
};
_debug.success(msg);
} else {
_debug.info(msg);
};
_removeListeners(event.target);
}
}
}//package com.google.analytics.core
Section 61
//IdleTimer (com.google.analytics.core.IdleTimer)
package com.google.analytics.core {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
import com.google.analytics.v4.*;
import com.google.analytics.debug.*;
public class IdleTimer {
private var _loop:Timer;
private var _stage:Stage;
private var _lastMove:int;
private var _debug:DebugConfiguration;
private var _session:Timer;
private var _inactivity:Number;
private var _buffer:Buffer;
public function IdleTimer(config:Configuration, debug:DebugConfiguration, display:DisplayObject, buffer:Buffer){
var delay:Number;
var inactivity:Number;
var sessionTimeout:Number;
super();
delay = config.idleLoop;
inactivity = config.idleTimeout;
sessionTimeout = config.sessionTimeout;
_loop = new Timer((delay * 1000));
_session = new Timer((sessionTimeout * 1000), 1);
_debug = debug;
_stage = display.stage;
_buffer = buffer;
_lastMove = getTimer();
_inactivity = (inactivity * 1000);
_loop.addEventListener(TimerEvent.TIMER, checkForIdle);
_session.addEventListener(TimerEvent.TIMER_COMPLETE, endSession);
_stage.addEventListener(MouseEvent.MOUSE_MOVE, onMouseMove);
_debug.info(((((("delay: " + delay) + "sec , inactivity: ") + inactivity) + "sec, sessionTimeout: ") + sessionTimeout), VisualDebugMode.geek);
_loop.start();
}
private function onMouseMove(event:MouseEvent):void{
_lastMove = getTimer();
if (_session.running){
_debug.info("session timer reset", VisualDebugMode.geek);
_session.reset();
};
}
public function endSession(event:TimerEvent):void{
_session.removeEventListener(TimerEvent.TIMER_COMPLETE, endSession);
_debug.info("session timer end session", VisualDebugMode.geek);
_session.reset();
_buffer.resetCurrentSession();
_debug.info(_buffer.utmb.toString(), VisualDebugMode.geek);
_debug.info(_buffer.utmc.toString(), VisualDebugMode.geek);
_session.addEventListener(TimerEvent.TIMER_COMPLETE, endSession);
}
public function checkForIdle(event:TimerEvent):void{
var current:int;
current = getTimer();
if ((current - _lastMove) >= _inactivity){
if (!_session.running){
_debug.info("session timer start", VisualDebugMode.geek);
_session.start();
};
};
}
}
}//package com.google.analytics.core
Section 62
//Organic (com.google.analytics.core.Organic)
package com.google.analytics.core {
import com.google.analytics.utils.*;
public class Organic {
private var _sourcesCache:Array;
private var _sourcesEngine:Array;
private var _ignoredKeywords:Array;
private var _ignoredReferralsCache:Object;
private var _ignoredReferrals:Array;
private var _ignoredKeywordsCache:Object;
private var _sources:Array;
public static var throwErrors:Boolean = false;
public function Organic(){
super();
_sources = [];
_sourcesCache = [];
_sourcesEngine = [];
_ignoredReferrals = [];
_ignoredReferralsCache = {};
_ignoredKeywords = [];
_ignoredKeywordsCache = {};
}
public function getKeywordValue(or:OrganicReferrer, path:String):String{
var keyword:String;
keyword = or.keyword;
return (getKeywordValueFromPath(keyword, path));
}
public function isIgnoredKeyword(keyword:String):Boolean{
if (_ignoredKeywordsCache.hasOwnProperty(keyword)){
return (true);
};
return (false);
}
public function isIgnoredReferral(referrer:String):Boolean{
if (_ignoredReferralsCache.hasOwnProperty(referrer)){
return (true);
};
return (false);
}
public function clear():void{
clearEngines();
clearIgnoredReferrals();
clearIgnoredKeywords();
}
public function get ignoredKeywordsCount():int{
return (_ignoredKeywords.length);
}
public function match(name:String):Boolean{
if (name == ""){
return (false);
};
name = name.toLowerCase();
if (_sourcesEngine[name] != undefined){
return (true);
};
return (false);
}
public function get count():int{
return (_sources.length);
}
public function addSource(engine:String, keyword:String):void{
var orgref:OrganicReferrer;
orgref = new OrganicReferrer(engine, keyword);
if (_sourcesCache[orgref.toString()] == undefined){
_sources.push(orgref);
_sourcesCache[orgref.toString()] = (_sources.length - 1);
if (_sourcesEngine[orgref.engine] == undefined){
_sourcesEngine[orgref.engine] = [(_sources.length - 1)];
} else {
_sourcesEngine[orgref.engine].push((_sources.length - 1));
};
} else {
if (throwErrors){
throw (new Error((orgref.toString() + " already exists, we don't add it.")));
};
};
}
public function clearIgnoredKeywords():void{
_ignoredKeywords = [];
_ignoredKeywordsCache = {};
}
public function clearEngines():void{
_sources = [];
_sourcesCache = [];
_sourcesEngine = [];
}
public function get ignoredReferralsCount():int{
return (_ignoredReferrals.length);
}
public function addIgnoredReferral(referrer:String):void{
if (_ignoredReferralsCache[referrer] == undefined){
_ignoredReferrals.push(referrer);
_ignoredReferralsCache[referrer] = (_ignoredReferrals.length - 1);
} else {
if (throwErrors){
throw (new Error((("\"" + referrer) + "\" already exists, we don't add it.")));
};
};
}
public function clearIgnoredReferrals():void{
_ignoredReferrals = [];
_ignoredReferralsCache = {};
}
public function getReferrerByName(name:String):OrganicReferrer{
var index:int;
if (match(name)){
index = _sourcesEngine[name][0];
return (_sources[index]);
};
return (null);
}
public function addIgnoredKeyword(keyword:String):void{
if (_ignoredKeywordsCache[keyword] == undefined){
_ignoredKeywords.push(keyword);
_ignoredKeywordsCache[keyword] = (_ignoredKeywords.length - 1);
} else {
if (throwErrors){
throw (new Error((("\"" + keyword) + "\" already exists, we don't add it.")));
};
};
}
public function get sources():Array{
return (_sources);
}
public static function getKeywordValueFromPath(keyword:String, path:String):String{
var value:String;
var vars:Variables;
if (path.indexOf((keyword + "=")) > -1){
if (path.charAt(0) == "?"){
path = path.substr(1);
};
path = path.split("+").join("%20");
vars = new Variables(path);
value = vars[keyword];
};
return (value);
}
}
}//package com.google.analytics.core
Section 63
//OrganicReferrer (com.google.analytics.core.OrganicReferrer)
package com.google.analytics.core {
public class OrganicReferrer {
private var _engine:String;
private var _keyword:String;
public function OrganicReferrer(engine:String, keyword:String){
super();
this.engine = engine;
this.keyword = keyword;
}
public function set engine(value:String):void{
_engine = value.toLowerCase();
}
public function get keyword():String{
return (_keyword);
}
public function toString():String{
return (((engine + "?") + keyword));
}
public function get engine():String{
return (_engine);
}
public function set keyword(value:String):void{
_keyword = value.toLowerCase();
}
}
}//package com.google.analytics.core
Section 64
//RequestObject (com.google.analytics.core.RequestObject)
package com.google.analytics.core {
import flash.net.*;
import flash.utils.*;
public class RequestObject {
public var start:int;
public var request:URLRequest;
public var end:int;
public function RequestObject(request:URLRequest){
super();
start = getTimer();
this.request = request;
}
public function toString():String{
var data:Array;
data = [];
data.push((("duration: " + duration) + "ms"));
data.push(("url: " + request.url));
return ((("{ " + data.join(", ")) + " }"));
}
public function get duration():int{
if (!hasCompleted()){
return (0);
};
return ((end - start));
}
public function hasCompleted():Boolean{
return ((end > 0));
}
public function complete():void{
end = getTimer();
}
}
}//package com.google.analytics.core
Section 65
//ServerOperationMode (com.google.analytics.core.ServerOperationMode)
package com.google.analytics.core {
public class ServerOperationMode {
private var _value:int;
private var _name:String;
public static const both:ServerOperationMode = new ServerOperationMode(2, "both");
;
public static const remote:ServerOperationMode = new ServerOperationMode(1, "remote");
;
public static const local:ServerOperationMode = new ServerOperationMode(0, "local");
;
public function ServerOperationMode(value:int=0, name:String=""){
super();
_value = value;
_name = name;
}
public function valueOf():int{
return (_value);
}
public function toString():String{
return (_name);
}
}
}//package com.google.analytics.core
Section 66
//TrackerCache (com.google.analytics.core.TrackerCache)
package com.google.analytics.core {
import com.google.analytics.v4.*;
import flash.errors.*;
public class TrackerCache implements GoogleAnalyticsAPI {
public var tracker:GoogleAnalyticsAPI;
private var _ar:Array;
public static var CACHE_THROW_ERROR:Boolean;
public function TrackerCache(tracker:GoogleAnalyticsAPI=null){
super();
this.tracker = tracker;
_ar = [];
}
public function size():uint{
return (_ar.length);
}
public function flush():void{
var o:Object;
var name:String;
var args:Array;
var l:int;
var i:int;
if (tracker == null){
return;
};
if (size() > 0){
l = _ar.length;
while (i < l) {
o = _ar.shift();
name = (o.name as String);
args = (o.args as Array);
if (((!((name == null))) && ((name in tracker)))){
(tracker[name] as Function).apply(tracker, args);
};
i++;
};
};
}
public function enqueue(name:String, ... _args):Boolean{
if (name == null){
return (false);
};
_ar.push({name:name, args:_args});
return (true);
}
public function link(targetUrl:String, useHash:Boolean=false):void{
enqueue("link", targetUrl, useHash);
}
public function addOrganic(newOrganicEngine:String, newOrganicKeyword:String):void{
enqueue("addOrganic", newOrganicEngine, newOrganicKeyword);
}
public function setAllowLinker(enable:Boolean):void{
enqueue("setAllowLinker", enable);
}
public function getLinkerUrl(url:String="", useHash:Boolean=false):String{
if (CACHE_THROW_ERROR){
throw (new IllegalOperationError("The tracker is not ready and you can use the 'getLinkerUrl' method for the moment."));
};
return ("");
}
public function getClientInfo():Boolean{
if (CACHE_THROW_ERROR){
throw (new IllegalOperationError("The tracker is not ready and you can use the 'getClientInfo' method for the moment."));
};
return (false);
}
public function trackTrans():void{
enqueue("trackTrans");
}
public function trackPageview(pageURL:String=""):void{
enqueue("trackPageview", pageURL);
}
public function setClientInfo(enable:Boolean):void{
enqueue("setClientInfo", enable);
}
public function trackEvent(category:String, action:String, label:String=null, value:Number=NaN):Boolean{
enqueue("trackEvent", category, action, label, value);
return (true);
}
public function linkByPost(formObject:Object, useHash:Boolean=false):void{
enqueue("linkByPost", formObject, useHash);
}
public function setCookieTimeout(newDefaultTimeout:int):void{
enqueue("setCookieTimeout", newDefaultTimeout);
}
public function isEmpty():Boolean{
return ((_ar.length == 0));
}
public function getDetectTitle():Boolean{
if (CACHE_THROW_ERROR){
throw (new IllegalOperationError("The tracker is not ready and you can use the 'getDetectTitle' method for the moment."));
};
return (false);
}
public function resetSession():void{
enqueue("resetSession");
}
public function setDetectFlash(enable:Boolean):void{
enqueue("setDetectFlash", enable);
}
public function clear():void{
_ar = [];
}
public function setCampNameKey(newCampNameKey:String):void{
enqueue("setCampNameKey", newCampNameKey);
}
public function addItem(item:String, sku:String, name:String, category:String, price:Number, quantity:int):void{
enqueue("addItem", item, sku, name, category, price, quantity);
}
public function createEventTracker(objName:String):EventTracker{
if (CACHE_THROW_ERROR){
throw (new IllegalOperationError("The tracker is not ready and you can use the 'createEventTracker' method for the moment."));
};
return (null);
}
public function clearIgnoredOrganic():void{
enqueue("clearIgnoredOrganic");
}
public function setVar(newVal:String):void{
enqueue("setVar", newVal);
}
public function setDomainName(newDomainName:String):void{
enqueue("setDomainName", newDomainName);
}
public function addTrans(orderId:String, affiliation:String, total:Number, tax:Number, shipping:Number, city:String, state:String, country:String):void{
if (CACHE_THROW_ERROR){
throw (new IllegalOperationError("The tracker is not ready and you can use the 'addTrans' method for the moment."));
};
}
public function setCampSourceKey(newCampSrcKey:String):void{
enqueue("setCampSourceKey", newCampSrcKey);
}
public function setCampContentKey(newCampContentKey:String):void{
enqueue("setCampContentKey", newCampContentKey);
}
public function clearIgnoredRef():void{
enqueue("clearIgnoredRef");
}
public function setLocalServerMode():void{
enqueue("setLocalServerMode");
}
public function getLocalGifPath():String{
if (CACHE_THROW_ERROR){
throw (new IllegalOperationError("The tracker is not ready and you can use the 'getLocalGifPath' method for the moment."));
};
return ("");
}
public function setAllowAnchor(enable:Boolean):void{
enqueue("setAllowAnchor", enable);
}
public function setLocalGifPath(newLocalGifPath:String):void{
enqueue("setLocalGifPath", newLocalGifPath);
}
public function getVersion():String{
if (CACHE_THROW_ERROR){
throw (new IllegalOperationError("The tracker is not ready and you can use the 'getVersion' method for the moment."));
};
return ("");
}
public function setCookiePath(newCookiePath:String):void{
enqueue("setCookiePath", newCookiePath);
}
public function setSampleRate(newRate:Number):void{
enqueue("setSampleRate", newRate);
}
public function setAllowHash(enable:Boolean):void{
enqueue("setAllowHash", enable);
}
public function addIgnoredOrganic(newIgnoredOrganicKeyword:String):void{
enqueue("addIgnoredOrganic", newIgnoredOrganicKeyword);
}
public function setCampNOKey(newCampNOKey:String):void{
enqueue("setCampNOKey", newCampNOKey);
}
public function getServiceMode():ServerOperationMode{
if (CACHE_THROW_ERROR){
throw (new IllegalOperationError("The tracker is not ready and you can use the 'getServiceMode' method for the moment."));
};
return (null);
}
public function setLocalRemoteServerMode():void{
enqueue("setLocalRemoteServerMode");
}
public function cookiePathCopy(newPath:String):void{
enqueue("cookiePathCopy", newPath);
}
public function setDetectTitle(enable:Boolean):void{
enqueue("setDetectTitle", enable);
}
public function getDetectFlash():Boolean{
if (CACHE_THROW_ERROR){
throw (new IllegalOperationError("The tracker is not ready and you can use the 'getDetectFlash' method for the moment."));
};
return (false);
}
public function setCampaignTrack(enable:Boolean):void{
enqueue("setCampaignTrack", enable);
}
public function clearOrganic():void{
enqueue("clearOrganic");
}
public function setCampTermKey(newCampTermKey:String):void{
enqueue("setCampTermKey", newCampTermKey);
}
public function addIgnoredRef(newIgnoredReferrer:String):void{
enqueue("addIgnoredRef", newIgnoredReferrer);
}
public function setCampMediumKey(newCampMedKey:String):void{
enqueue("setCampMediumKey", newCampMedKey);
}
public function setSessionTimeout(newTimeout:int):void{
enqueue("setSessionTimeout", newTimeout);
}
public function setRemoteServerMode():void{
enqueue("setRemoteServerMode");
}
public function element(){
return (_ar[0]);
}
public function getAccount():String{
if (CACHE_THROW_ERROR){
throw (new IllegalOperationError("The tracker is not ready and you can use the 'getAccount' method for the moment."));
};
return ("");
}
}
}//package com.google.analytics.core
Section 67
//TrackerMode (com.google.analytics.core.TrackerMode)
package com.google.analytics.core {
public class TrackerMode {
public static const BRIDGE:String = "Bridge";
public static const AS3:String = "AS3";
public function TrackerMode(){
super();
}
}
}//package com.google.analytics.core
Section 68
//Utils (com.google.analytics.core.Utils)
package com.google.analytics.core {
public class Utils {
public function Utils(){
super();
}
public static function trim(raw:String, everything:Boolean=false):String{
var whitespaces:Array;
var str:String;
var i:int;
var iLeft:int;
var iRight:int;
if (raw == ""){
return ("");
};
whitespaces = [" ", "\n", "\r", "\t"];
str = raw;
if (everything){
i = 0;
while ((((i < whitespaces.length)) && ((str.indexOf(whitespaces[i]) > -1)))) {
str = str.split(whitespaces[i]).join("");
i++;
};
} else {
iLeft = 0;
while ((((iLeft < str.length)) && ((whitespaces.indexOf(str.charAt(iLeft)) > -1)))) {
iLeft++;
};
str = str.substr(iLeft);
iRight = (str.length - 1);
while ((((iRight >= 0)) && ((whitespaces.indexOf(str.charAt(iRight)) > -1)))) {
iRight--;
};
str = str.substring(0, (iRight + 1));
};
return (str);
}
public static function generateHash(input:String):int{
var hash:int;
var leftMost7:int;
var pos:int;
var current:int;
hash = 1;
leftMost7 = 0;
if (((!((input == null))) && (!((input == ""))))){
hash = 0;
pos = (input.length - 1);
while (pos >= 0) {
current = input.charCodeAt(pos);
hash = ((((hash << 6) & 268435455) + current) + (current << 14));
leftMost7 = (hash & 266338304);
if (leftMost7 != 0){
hash = (hash ^ (leftMost7 >> 21));
};
pos--;
};
};
return (hash);
}
public static function generate32bitRandom():int{
return (Math.round((Math.random() * 2147483647)));
}
public static function validateAccount(account:String):Boolean{
var rel:RegExp;
rel = /^UA-[0-9]*-[0-9]*$/;
return (rel.test(account));
}
}
}//package com.google.analytics.core
Section 69
//Cookie (com.google.analytics.data.Cookie)
package com.google.analytics.data {
public interface Cookie {
function toURLString():String;
function toSharedObject():Object;
function set creation(E:\projects\gameZheroNew.com\ourGames\2009\plazmatron\v3;com\google\analytics\data;Cookie.as:Date):void;
function fromSharedObject(E:\projects\gameZheroNew.com\ourGames\2009\plazmatron\v3;com\google\analytics\data;Cookie.as:Object):void;
function get expiration():Date;
function isExpired():Boolean;
function set expiration(E:\projects\gameZheroNew.com\ourGames\2009\plazmatron\v3;com\google\analytics\data;Cookie.as:Date):void;
function get creation():Date;
}
}//package com.google.analytics.data
Section 70
//UTMA (com.google.analytics.data.UTMA)
package com.google.analytics.data {
import com.google.analytics.utils.*;
public class UTMA extends UTMCookie {
private var _domainHash:Number;
private var _firstTime:Number;
private var _currentTime:Number;
private var _sessionId:Number;
private var _lastTime:Number;
private var _sessionCount:Number;
public function UTMA(domainHash:Number=NaN, sessionId:Number=NaN, firstTime:Number=NaN, lastTime:Number=NaN, currentTime:Number=NaN, sessionCount:Number=NaN){
super("utma", "__utma", ["domainHash", "sessionId", "firstTime", "lastTime", "currentTime", "sessionCount"], (Timespan.twoyears * 1000));
this.domainHash = domainHash;
this.sessionId = sessionId;
this.firstTime = firstTime;
this.lastTime = lastTime;
this.currentTime = currentTime;
this.sessionCount = sessionCount;
}
public function get lastTime():Number{
return (_lastTime);
}
public function set lastTime(value:Number):void{
_lastTime = value;
update();
}
public function get sessionCount():Number{
return (_sessionCount);
}
public function get firstTime():Number{
return (_firstTime);
}
public function set sessionId(value:Number):void{
_sessionId = value;
update();
}
public function set sessionCount(value:Number):void{
_sessionCount = value;
update();
}
public function set firstTime(value:Number):void{
_firstTime = value;
update();
}
public function set currentTime(value:Number):void{
_currentTime = value;
update();
}
public function get sessionId():Number{
return (_sessionId);
}
public function set domainHash(value:Number):void{
_domainHash = value;
update();
}
public function get currentTime():Number{
return (_currentTime);
}
public function get domainHash():Number{
return (_domainHash);
}
}
}//package com.google.analytics.data
Section 71
//UTMB (com.google.analytics.data.UTMB)
package com.google.analytics.data {
import com.google.analytics.utils.*;
public class UTMB extends UTMCookie {
private var _lastTime:Number;
private var _domainHash:Number;
private var _trackCount:Number;
private var _token:Number;
public static var defaultTimespan:Number = Timespan.thirtyminutes;
public function UTMB(domainHash:Number=NaN, trackCount:Number=NaN, token:Number=NaN, lastTime:Number=NaN){
super("utmb", "__utmb", ["domainHash", "trackCount", "token", "lastTime"], (defaultTimespan * 1000));
this.domainHash = domainHash;
this.trackCount = trackCount;
this.token = token;
this.lastTime = lastTime;
}
public function get token():Number{
return (_token);
}
public function set trackCount(value:Number):void{
_trackCount = value;
update();
}
public function set lastTime(value:Number):void{
_lastTime = value;
update();
}
public function get lastTime():Number{
return (_lastTime);
}
public function set domainHash(value:Number):void{
_domainHash = value;
update();
}
public function get domainHash():Number{
return (_domainHash);
}
public function set token(value:Number):void{
_token = value;
update();
}
public function get trackCount():Number{
return (_trackCount);
}
}
}//package com.google.analytics.data
Section 72
//UTMC (com.google.analytics.data.UTMC)
package com.google.analytics.data {
public class UTMC extends UTMCookie {
private var _domainHash:Number;
public function UTMC(domainHash:Number=NaN){
super("utmc", "__utmc", ["domainHash"]);
this.domainHash = domainHash;
}
public function set domainHash(value:Number):void{
_domainHash = value;
update();
}
public function get domainHash():Number{
return (_domainHash);
}
}
}//package com.google.analytics.data
Section 73
//UTMCookie (com.google.analytics.data.UTMCookie)
package com.google.analytics.data {
import com.google.analytics.core.*;
public class UTMCookie implements Cookie {
protected var inURL:String;
protected var name:String;
private var _creation:Date;
private var _expiration:Date;
public var proxy:Buffer;
private var _timespan:Number;
protected var fields:Array;
public function UTMCookie(name:String, inURL:String, fields:Array, timespan:Number=0){
super();
this.name = name;
this.inURL = inURL;
this.fields = fields;
_timestamp(timespan);
}
public function isEmpty():Boolean{
var empty:int;
var field:String;
var i:int;
empty = 0;
i = 0;
while (i < fields.length) {
field = fields[i];
if ((((this[field] is Number)) && (isNaN(this[field])))){
empty++;
} else {
if ((((this[field] is String)) && ((this[field] == "")))){
empty++;
};
};
i++;
};
if (empty == fields.length){
return (true);
};
return (false);
}
protected function update():void{
resetTimestamp();
if (proxy){
proxy.update(name, toSharedObject());
};
}
public function fromSharedObject(data:Object):void{
var field:String;
var len:int;
var i:int;
len = fields.length;
i = 0;
while (i < len) {
field = fields[i];
if (data[field]){
this[field] = data[field];
};
i++;
};
if (data.creation){
this.creation = data.creation;
};
if (data.expiration){
this.expiration = data.expiration;
};
}
private function _timestamp(timespan:Number):void{
creation = new Date();
_timespan = timespan;
if (timespan > 0){
expiration = new Date((creation.valueOf() + timespan));
};
}
public function isExpired():Boolean{
var current:Date;
var diff:Number;
current = new Date();
diff = (expiration.valueOf() - current.valueOf());
if (diff <= 0){
return (true);
};
return (false);
}
public function set expiration(value:Date):void{
_expiration = value;
}
public function get creation():Date{
return (_creation);
}
public function reset():void{
var field:String;
var i:int;
i = 0;
while (i < fields.length) {
field = fields[i];
if ((this[field] is Number)){
this[field] = NaN;
} else {
if ((this[field] is String)){
this[field] = "";
};
};
i++;
};
resetTimestamp();
update();
}
public function valueOf():String{
var data:Array;
var field:String;
var value:*;
var testData:Array;
var testOut:String;
var i:int;
data = [];
testOut = "";
i = 0;
while (i < fields.length) {
field = fields[i];
value = this[field];
if ((value is String)){
if (value == ""){
value = "-";
data.push(value);
} else {
data.push(value);
};
} else {
if ((value is Number)){
if (value == 0){
data.push(value);
} else {
if (isNaN(value)){
value = "-";
data.push(value);
} else {
data.push(value);
};
};
};
};
i++;
};
if (isEmpty()){
return ("-");
};
return (("" + data.join(".")));
}
public function resetTimestamp(timespan:Number=NaN):void{
if (!isNaN(timespan)){
_timespan = timespan;
};
_creation = null;
_expiration = null;
_timestamp(_timespan);
}
public function get expiration():Date{
if (_expiration){
return (_expiration);
};
return (new Date((new Date().valueOf() + 1000)));
}
public function toURLString():String{
return (((inURL + "=") + valueOf()));
}
public function toSharedObject():Object{
var data:Object;
var field:String;
var value:*;
var i:int;
data = {};
i = 0;
for (;i < fields.length;i++) {
field = fields[i];
value = this[field];
if ((value is String)){
data[field] = value;
} else {
if (value == 0){
data[field] = value;
} else {
if (isNaN(value)){
continue;
} else {
data[field] = value;
};
};
};
};
data.creation = creation;
data.expiration = expiration;
return (data);
}
public function toString(showTimestamp:Boolean=false):String{
var data:Array;
var field:String;
var value:*;
var len:int;
var i:int;
var str:String;
data = [];
len = fields.length;
i = 0;
for (;i < len;i++) {
field = fields[i];
value = this[field];
if ((value is String)){
data.push((((field + ": \"") + value) + "\""));
} else {
if (value == 0){
data.push(((field + ": ") + value));
} else {
if (isNaN(value)){
continue;
} else {
data.push(((field + ": ") + value));
};
};
};
};
str = (((name.toUpperCase() + " {") + data.join(", ")) + "}");
if (showTimestamp){
str = (str + (((" creation:" + creation) + ", expiration:") + expiration));
};
return (str);
}
public function set creation(value:Date):void{
_creation = value;
}
}
}//package com.google.analytics.data
Section 74
//UTMK (com.google.analytics.data.UTMK)
package com.google.analytics.data {
public class UTMK extends UTMCookie {
private var _hash:Number;
public function UTMK(hash:Number=NaN){
super("utmk", "__utmk", ["hash"]);
this.hash = hash;
}
public function get hash():Number{
return (_hash);
}
public function set hash(value:Number):void{
_hash = value;
update();
}
}
}//package com.google.analytics.data
Section 75
//UTMV (com.google.analytics.data.UTMV)
package com.google.analytics.data {
import com.google.analytics.utils.*;
public class UTMV extends UTMCookie {
private var _domainHash:Number;
private var _value:String;
public function UTMV(domainHash:Number=NaN, value:String=""){
super("utmv", "__utmv", ["domainHash", "value"], (Timespan.twoyears * 1000));
this.domainHash = domainHash;
this.value = value;
}
public function get value():String{
return (_value);
}
public function set value(value:String):void{
_value = value;
update();
}
public function get domainHash():Number{
return (_domainHash);
}
public function set domainHash(value:Number):void{
_domainHash = value;
update();
}
}
}//package com.google.analytics.data
Section 76
//UTMX (com.google.analytics.data.UTMX)
package com.google.analytics.data {
public class UTMX extends UTMCookie {
private var _value:String;
public function UTMX(){
super("utmx", "__utmx", ["value"], 0);
_value = "-";
}
public function set value(value:String):void{
_value = value;
}
public function get value():String{
return (_value);
}
}
}//package com.google.analytics.data
Section 77
//UTMZ (com.google.analytics.data.UTMZ)
package com.google.analytics.data {
import com.google.analytics.utils.*;
public class UTMZ extends UTMCookie {
private var _domainHash:Number;
private var _campaignSessions:Number;
private var _campaignTracking:String;
private var _responseCount:Number;
private var _campaignCreation:Number;
public static var defaultTimespan:Number = Timespan.sixmonths;
public function UTMZ(domainHash:Number=NaN, campaignCreation:Number=NaN, campaignSessions:Number=NaN, responseCount:Number=NaN, campaignTracking:String=""){
super("utmz", "__utmz", ["domainHash", "campaignCreation", "campaignSessions", "responseCount", "campaignTracking"], (defaultTimespan * 1000));
this.domainHash = domainHash;
this.campaignCreation = campaignCreation;
this.campaignSessions = campaignSessions;
this.responseCount = responseCount;
this.campaignTracking = campaignTracking;
}
public function get campaignCreation():Number{
return (_campaignCreation);
}
public function set campaignSessions(value:Number):void{
_campaignSessions = value;
update();
}
public function set responseCount(value:Number):void{
_responseCount = value;
update();
}
public function set campaignCreation(value:Number):void{
_campaignCreation = value;
update();
}
public function get campaignSessions():Number{
return (_campaignSessions);
}
public function get responseCount():Number{
return (_responseCount);
}
public function set domainHash(value:Number):void{
_domainHash = value;
update();
}
public function get campaignTracking():String{
return (_campaignTracking);
}
public function set campaignTracking(value:String):void{
_campaignTracking = value;
update();
}
public function get domainHash():Number{
return (_domainHash);
}
}
}//package com.google.analytics.data
Section 78
//X10 (com.google.analytics.data.X10)
package com.google.analytics.data {
public class X10 {
private var _delimEnd:String;// = ")"
private var _delimSet:String;// = "*"
private var _escapeChar:String;// = "'"
private var _delimBegin:String;// = "("
private var _delimNumValue:String;// = "!"
private var _key:String;// = "k"
private var _set:Array;
private var _projectData:Object;
private var _hasData:int;
private var _escapeCharMap:Object;
private var _minimum:int;
private var _value:String;// = "v"
public function X10(){
_key = "k";
_value = "v";
_set = [_key, _value];
_delimBegin = "(";
_delimEnd = ")";
_delimSet = "*";
_delimNumValue = "!";
_escapeChar = "'";
super();
_projectData = {};
_escapeCharMap = {};
_escapeCharMap[_escapeChar] = "'0";
_escapeCharMap[_delimEnd] = "'1";
_escapeCharMap[_delimSet] = "'2";
_escapeCharMap[_delimNumValue] = "'3";
_minimum = 1;
}
private function _clearInternal(projectId:Number, type:String):void{
var isEmpty:Boolean;
var i:int;
var l:int;
if (((hasProject(projectId)) && (!((_projectData[projectId][type] == undefined))))){
_projectData[projectId][type] = undefined;
isEmpty = true;
l = _set.length;
i = 0;
while (i < l) {
if (_projectData[projectId][_set[i]] != undefined){
isEmpty = false;
break;
};
i++;
};
if (isEmpty){
_projectData[projectId] = undefined;
_hasData = (_hasData - 1);
};
};
}
public function hasData():Boolean{
return ((_hasData > 0));
}
private function _setInternal(projectId:Number, type:String, num:Number, value:String):void{
if (!hasProject(projectId)){
_projectData[projectId] = {};
};
if (_projectData[projectId][type] == undefined){
_projectData[projectId][type] = [];
};
_projectData[projectId][type][num] = value;
_hasData = (_hasData + 1);
}
public function hasProject(projectId:Number):Boolean{
return (_projectData[projectId]);
}
public function clearKey(projectId:Number):void{
_clearInternal(projectId, _key);
}
private function _renderDataType(data:Array):String{
var result:Array;
var str:String;
var i:int;
result = [];
i = 0;
while (i < data.length) {
if (data[i] != undefined){
str = "";
if (((!((i == _minimum))) && ((data[(i - 1)] == undefined)))){
str = (str + i.toString());
str = (str + _delimNumValue);
};
str = (str + _escapeExtensibleValue(data[i]));
result.push(str);
};
i++;
};
return (((_delimBegin + result.join(_delimSet)) + _delimEnd));
}
public function getKey(projectId:Number, num:Number):String{
return ((_getInternal(projectId, _key, num) as String));
}
public function clearValue(projectId:Number):void{
_clearInternal(projectId, _value);
}
public function renderMergedUrlString(extObject:X10=null):String{
var result:Array;
var projectId:String;
if (!extObject){
return (renderUrlString());
};
result = [extObject.renderUrlString()];
for (projectId in _projectData) {
if (((hasProject(Number(projectId))) && (!(extObject.hasProject(Number(projectId)))))){
result.push((projectId + _renderProject(_projectData[projectId])));
};
};
return (result.join(""));
}
public function setValue(projectId:Number, num:Number, value:Number):Boolean{
if (((((!((Math.round(value) == value))) || (isNaN(value)))) || ((value == Infinity)))){
return (false);
};
_setInternal(projectId, _value, num, value.toString());
return (true);
}
public function renderUrlString():String{
var result:Array;
var projectId:String;
result = [];
for (projectId in _projectData) {
if (hasProject(Number(projectId))){
result.push((projectId + _renderProject(_projectData[projectId])));
};
};
return (result.join(""));
}
private function _getInternal(projectId:Number, type:String, num:Number):Object{
if (((hasProject(projectId)) && (!((_projectData[projectId][type] == undefined))))){
return (_projectData[projectId][type][num]);
};
return (undefined);
}
public function setKey(projectId:Number, num:Number, value:String):Boolean{
_setInternal(projectId, _key, num, value);
return (true);
}
public function getValue(projectId:Number, num:Number){
var value:*;
value = _getInternal(projectId, _value, num);
if (value == null){
return (null);
};
return (Number(value));
}
private function _renderProject(project:Object):String{
var result:String;
var needTypeQualifier:Boolean;
var i:int;
var data:Array;
var l:int;
result = "";
needTypeQualifier = false;
l = _set.length;
i = 0;
while (i < l) {
data = project[_set[i]];
if (data){
if (needTypeQualifier){
result = (result + _set[i]);
};
result = (result + _renderDataType(data));
needTypeQualifier = false;
} else {
needTypeQualifier = true;
};
i++;
};
return (result);
}
private function _escapeExtensibleValue(value:String):String{
var result:String;
var i:int;
var c:String;
var escaped:String;
result = "";
i = 0;
while (i < value.length) {
c = value.charAt(i);
escaped = _escapeCharMap[c];
if (escaped){
result = (result + escaped);
} else {
result = (result + c);
};
i++;
};
return (result);
}
}
}//package com.google.analytics.data
Section 79
//_Style (com.google.analytics.debug._Style)
package com.google.analytics.debug {
import flash.net.*;
import flash.text.*;
public class _Style {
public var borderColor:uint;
public var backgroundColor:uint;
private var _sheet:StyleSheet;
public var roundedCorner:uint;
public var alertColor:uint;
public var infoColor:uint;
public var successColor:uint;
private var _loader:URLLoader;
public var failureColor:uint;
private var _defaultSheet:String;
public var warningColor:uint;
public function _Style(){
super();
_sheet = new StyleSheet();
_loader = new URLLoader();
_init();
}
private function _parseSheet(data:String):void{
_sheet.parseCSS(data);
}
public function get sheet():StyleSheet{
return (_sheet);
}
private function _init():void{
_defaultSheet = "";
_defaultSheet = (_defaultSheet + "a{text-decoration: underline;}\n");
_defaultSheet = (_defaultSheet + ".uiLabel{color: #000000;font-family: Arial;font-size: 12;margin-left: 2;margin-right: 2;}\n");
_defaultSheet = (_defaultSheet + ".uiWarning{color: #ffffff;font-family: Arial;font-size: 14;font-weight: bold;margin-left: 6;margin-right: 6;}\n");
_defaultSheet = (_defaultSheet + ".uiAlert{color: #ffffff;font-family: Arial;font-size: 14;font-weight: bold;margin-left: 6;margin-right: 6;}\n");
_defaultSheet = (_defaultSheet + ".uiInfo{color: #000000;font-family: Arial;font-size: 14;font-weight: bold;margin-left: 6;margin-right: 6;}\n");
_defaultSheet = (_defaultSheet + ".uiSuccess{color: #ffffff;font-family: Arial;font-size: 12;font-weight: bold;margin-left: 6;margin-right: 6;}\n");
_defaultSheet = (_defaultSheet + ".uiFailure{color: #ffffff;font-family: Arial;font-size: 12;font-weight: bold;margin-left: 6;margin-right: 6;}\n");
_defaultSheet = (_defaultSheet + ".uiAlertAction{color: #ffffff;text-align: center;font-family: Arial;font-size: 12;font-weight: bold;margin-left: 6;margin-right: 6;}\n");
_defaultSheet = (_defaultSheet + ".uiAlertTitle{color: #ffffff;font-family: Arial;font-size: 16;font-weight: bold;margin-left: 6;margin-right: 6;}\n");
_defaultSheet = (_defaultSheet + "\n");
roundedCorner = 6;
backgroundColor = 0xCCCCCC;
borderColor = 0x555555;
infoColor = 16777113;
alertColor = 0xFFCC00;
warningColor = 0xCC0000;
successColor = 0xFF00;
failureColor = 0xFF0000;
_parseSheet(_defaultSheet);
}
}
}//package com.google.analytics.debug
Section 80
//Alert (com.google.analytics.debug.Alert)
package com.google.analytics.debug {
import flash.events.*;
public class Alert extends Label {
public var actionOnNextLine:Boolean;// = true
public var autoClose:Boolean;// = true
private var _actions:Array;
public function Alert(text:String, actions:Array, tag:String="uiAlert", color:uint=0, alignement:Align=null, stickToEdge:Boolean=false, actionOnNextLine:Boolean=true){
var i:int;
autoClose = true;
actionOnNextLine = true;
if (color == 0){
color = Style.alertColor;
};
if (alignement == null){
alignement = Align.center;
};
super(text, tag, color, alignement, stickToEdge);
this.selectable = true;
super.mouseChildren = true;
this.buttonMode = true;
this.mouseEnabled = true;
this.useHandCursor = true;
this.actionOnNextLine = actionOnNextLine;
_actions = [];
i = 0;
while (i < actions.length) {
actions[i].container = this;
_actions.push(actions[i]);
i++;
};
}
protected function getAction(name:String):AlertAction{
var i:int;
i = 0;
while (i < _actions.length) {
if (name == _actions[i].activator){
return (_actions[i]);
};
i++;
};
return (null);
}
override protected function layout():void{
super.layout();
_defineActions();
}
protected function spaces(num:int):String{
var str:String;
var spc:String;
var i:int;
str = "";
spc = " ";
i = 0;
while (i < (num + 1)) {
str = (str + spc);
i++;
};
return (str);
}
override public function onLink(event:TextEvent):void{
var action:AlertAction;
if (isValidAction(event.text)){
action = getAction(event.text);
if (action){
action.execute();
};
};
if (autoClose){
close();
};
}
protected function isValidAction(action:String):Boolean{
var i:int;
i = 0;
while (i < _actions.length) {
if (action == _actions[i].activator){
return (true);
};
i++;
};
return (false);
}
private function _defineActions():void{
var str:String;
var actions:Array;
var action:AlertAction;
var i:int;
str = "";
if (actionOnNextLine){
str = (str + "\n");
} else {
str = (str + " |");
};
str = (str + " ");
actions = [];
i = 0;
while (i < _actions.length) {
action = _actions[i];
actions.push((((("<a href=\"event:" + action.activator) + "\">") + action.name) + "</a>"));
i++;
};
str = (str + actions.join(" | "));
appendText(str, "uiAlertAction");
}
public function close():void{
if (parent != null){
parent.removeChild(this);
};
}
}
}//package com.google.analytics.debug
Section 81
//AlertAction (com.google.analytics.debug.AlertAction)
package com.google.analytics.debug {
public class AlertAction {
public var container:Alert;
private var _callback;
public var name:String;
public var activator:String;
public function AlertAction(name:String, activator:String, callback){
super();
this.name = name;
this.activator = activator;
_callback = callback;
}
public function execute():void{
if (_callback){
if ((_callback is Function)){
(_callback as Function)();
} else {
if ((_callback is String)){
var _local1 = container;
_local1[_callback]();
};
};
};
}
}
}//package com.google.analytics.debug
Section 82
//Align (com.google.analytics.debug.Align)
package com.google.analytics.debug {
public class Align {
private var _value:int;
private var _name:String;
public static const bottomRight:Align = new Align(18, "bottomRight");
;
public static const right:Align = new Align(16, "right");
;
public static const left:Align = new Align(32, "left");
;
public static const topRight:Align = new Align(17, "topRight");
;
public static const bottom:Align = new Align(2, "bottom");
;
public static const bottomLeft:Align = new Align(34, "bottomLeft");
;
public static const topLeft:Align = new Align(33, "topLeft");
;
public static const center:Align = new Align(0x0100, "center");
;
public static const none:Align = new Align(0, "none");
;
public static const top:Align = new Align(1, "top");
;
public function Align(value:int=0, name:String=""){
super();
_value = value;
_name = name;
}
public function valueOf():int{
return (_value);
}
public function toString():String{
return (_name);
}
}
}//package com.google.analytics.debug
Section 83
//Background (com.google.analytics.debug.Background)
package com.google.analytics.debug {
import flash.display.*;
public class Background {
public function Background(){
super();
}
public static function drawRounded(target, g:Graphics, width:uint=0, height:uint=0):void{
var W:uint;
var H:uint;
var R:uint;
R = Style.roundedCorner;
if ((((width > 0)) && ((height > 0)))){
W = width;
H = height;
} else {
W = target.width;
H = target.height;
};
if (((target.stickToEdge) && (!((target.alignement == Align.none))))){
switch (target.alignement){
case Align.top:
g.drawRoundRectComplex(0, 0, W, H, 0, 0, R, R);
break;
case Align.topLeft:
g.drawRoundRectComplex(0, 0, W, H, 0, 0, 0, R);
break;
case Align.topRight:
g.drawRoundRectComplex(0, 0, W, H, 0, 0, R, 0);
break;
case Align.bottom:
g.drawRoundRectComplex(0, 0, W, H, R, R, 0, 0);
break;
case Align.bottomLeft:
g.drawRoundRectComplex(0, 0, W, H, 0, R, 0, 0);
break;
case Align.bottomRight:
g.drawRoundRectComplex(0, 0, W, H, R, 0, 0, 0);
break;
case Align.left:
g.drawRoundRectComplex(0, 0, W, H, 0, R, 0, R);
break;
case Align.right:
g.drawRoundRectComplex(0, 0, W, H, R, 0, R, 0);
break;
case Align.center:
g.drawRoundRect(0, 0, W, H, R, R);
break;
};
} else {
g.drawRoundRect(0, 0, W, H, R, R);
};
}
}
}//package com.google.analytics.debug
Section 84
//Debug (com.google.analytics.debug.Debug)
package com.google.analytics.debug {
import flash.events.*;
import flash.ui.*;
public class Debug extends Label {
private var _lines:Array;
private var _preferredForcedWidth:uint;// = 540
public var maxLines:uint;// = 16
private var _linediff:int;// = 0
public static var count:uint;
public function Debug(color:uint=0, alignement:Align=null, stickToEdge:Boolean=false){
_linediff = 0;
_preferredForcedWidth = 540;
maxLines = 16;
if (alignement == null){
alignement = Align.bottom;
};
super("", "uiLabel", color, alignement, stickToEdge);
this.name = ("Debug" + count++);
_lines = [];
selectable = true;
addEventListener(KeyboardEvent.KEY_DOWN, onKey);
}
public function close():void{
dispose();
}
public function writeBold(message:String):void{
write(message, true);
}
override protected function dispose():void{
removeEventListener(KeyboardEvent.KEY_DOWN, onKey);
super.dispose();
}
override public function get forcedWidth():uint{
if (this.parent){
if (UISprite(this.parent).forcedWidth > _preferredForcedWidth){
return (_preferredForcedWidth);
};
return (UISprite(this.parent).forcedWidth);
} else {
};
return (!NULL!);
}
private function onKey(event:KeyboardEvent=null):void{
var lines:Array;
switch (event.keyCode){
case Keyboard.DOWN:
lines = _getLinesToDisplay(1);
break;
case Keyboard.UP:
lines = _getLinesToDisplay(-1);
break;
default:
lines = null;
};
if (lines == null){
return;
};
text = lines.join("\n");
}
public function write(message:String, bold:Boolean=false):void{
var inputLines:Array;
var pre:String;
var post:String;
var i:int;
var lines:Array;
if (message.indexOf("") > -1){
inputLines = message.split("\n");
} else {
inputLines = [message];
};
pre = "";
post = "";
if (bold){
pre = "<b>";
post = "</b>";
};
i = 0;
while (i < inputLines.length) {
_lines.push(((pre + inputLines[i]) + post));
i++;
};
lines = _getLinesToDisplay();
text = lines.join("\n");
}
private function _getLinesToDisplay(direction:int=0):Array{
var lines:Array;
var start:uint;
var end:uint;
if ((_lines.length - 1) > maxLines){
if ((_linediff <= 0)){
_linediff = (_linediff + direction);
} else {
if ((((_linediff > 0)) && ((direction < 0)))){
_linediff = (_linediff + direction);
};
};
start = ((_lines.length - maxLines) + _linediff);
end = (start + maxLines);
lines = _lines.slice(start, end);
} else {
lines = _lines;
};
return (lines);
}
}
}//package com.google.analytics.debug
Section 85
//DebugConfiguration (com.google.analytics.debug.DebugConfiguration)
package com.google.analytics.debug {
import flash.net.*;
import flash.utils.*;
import com.google.analytics.core.*;
import flash.ui.*;
public class DebugConfiguration {
public var showHideKey:Number;
private var _mode:VisualDebugMode;
private var _verbose:Boolean;// = false
public var destroyKey:Number;
public var GIFRequests:Boolean;// = false
public var infoTimeout:Number;// = 1000
public var showInfos:Boolean;// = true
public var minimizedOnStart:Boolean;// = false
private var _active:Boolean;// = false
public var traceOutput:Boolean;// = false
public var layout:ILayout;
public var warningTimeout:Number;// = 1500
public var javascript:Boolean;// = false
public var showWarnings:Boolean;// = true
private var _visualInitialized:Boolean;// = false
public function DebugConfiguration(){
_active = false;
_verbose = false;
_visualInitialized = false;
_mode = VisualDebugMode.basic;
traceOutput = false;
javascript = false;
GIFRequests = false;
showInfos = true;
infoTimeout = 1000;
showWarnings = true;
warningTimeout = 1500;
minimizedOnStart = false;
showHideKey = Keyboard.SPACE;
destroyKey = Keyboard.BACKSPACE;
super();
}
public function get verbose():Boolean{
return (_verbose);
}
public function set verbose(value:Boolean):void{
_verbose = value;
}
public function set mode(value):void{
if ((value is String)){
switch (value){
case "geek":
value = VisualDebugMode.geek;
break;
case "advanced":
value = VisualDebugMode.advanced;
break;
case "basic":
default:
value = VisualDebugMode.basic;
};
};
_mode = value;
}
public function success(message:String):void{
if (layout){
layout.createSuccessAlert(message);
};
if (traceOutput){
trace((("[+] " + message) + " !!"));
};
}
public function get active():Boolean{
return (_active);
}
private function _initializeVisual():void{
if (layout){
layout.init();
_visualInitialized = true;
};
}
private function _destroyVisual():void{
if (((layout) && (_visualInitialized))){
layout.destroy();
};
}
public function warning(message:String, mode:VisualDebugMode=null):void{
if (_filter(mode)){
return;
};
if (((layout) && (showWarnings))){
layout.createWarning(message);
};
if (traceOutput){
trace((("## " + message) + " ##"));
};
}
private function _filter(mode:VisualDebugMode=null):Boolean{
return (((mode) && ((int(mode) >= int(this.mode)))));
}
public function failure(message:String):void{
if (layout){
layout.createFailureAlert(message);
};
if (traceOutput){
trace((("[-] " + message) + " !!"));
};
}
public function get mode(){
return (_mode);
}
public function set active(value:Boolean):void{
_active = value;
if (_active){
_initializeVisual();
} else {
_destroyVisual();
};
}
protected function trace(message:String):void{
var messages:Array;
var pre0:String;
var pre1:String;
var len:int;
var i:int;
var msgs:Array;
var j:int;
messages = [];
pre0 = "";
pre1 = "";
if (this.mode == VisualDebugMode.geek){
pre0 = (getTimer() + " - ");
pre1 = (new Array(pre0.length).join(" ") + " ");
};
if (message.indexOf("\n") > -1){
msgs = message.split("\n");
j = 0;
while (j < msgs.length) {
if (msgs[j] == ""){
} else {
if (j == 0){
messages.push((pre0 + msgs[j]));
} else {
messages.push((pre1 + msgs[j]));
};
};
j++;
};
} else {
messages.push((pre0 + message));
};
len = messages.length;
i = 0;
while (i < len) {
trace(messages[i]);
i++;
};
}
public function alert(message:String):void{
if (layout){
layout.createAlert(message);
};
if (traceOutput){
trace((("!! " + message) + " !!"));
};
}
public function info(message:String, mode:VisualDebugMode=null):void{
if (_filter(mode)){
return;
};
if (((layout) && (showInfos))){
layout.createInfo(message);
};
if (traceOutput){
trace(message);
};
}
public function alertGifRequest(message:String, request:URLRequest, ref:GIFRequest):void{
if (layout){
layout.createGIFRequestAlert(message, request, ref);
};
if (traceOutput){
trace(((">> " + message) + " <<"));
};
}
}
}//package com.google.analytics.debug
Section 86
//FailureAlert (com.google.analytics.debug.FailureAlert)
package com.google.analytics.debug {
public class FailureAlert extends Alert {
public function FailureAlert(debug:DebugConfiguration, text:String, actions:Array){
var alignement:Align;
var stickToEdge:Boolean;
var actionOnNextLine:Boolean;
alignement = Align.bottomLeft;
stickToEdge = true;
actionOnNextLine = false;
if (debug.verbose){
text = ((("<u><span class=\"uiAlertTitle\">Failure</span>" + spaces(18)) + "</u>\n\n") + text);
alignement = Align.center;
stickToEdge = false;
actionOnNextLine = true;
};
super(text, actions, "uiFailure", Style.failureColor, alignement, stickToEdge, actionOnNextLine);
}
}
}//package com.google.analytics.debug
Section 87
//GIFRequestAlert (com.google.analytics.debug.GIFRequestAlert)
package com.google.analytics.debug {
public class GIFRequestAlert extends Alert {
public function GIFRequestAlert(text:String, actions:Array){
super(text, actions);
}
}
}//package com.google.analytics.debug
Section 88
//ILayout (com.google.analytics.debug.ILayout)
package com.google.analytics.debug {
import flash.display.*;
import flash.net.*;
import com.google.analytics.core.*;
public interface ILayout {
function createWarning(:String):void;
function addToStage(:DisplayObject):void;
function createGIFRequestAlert(_arg1:String, _arg2:URLRequest, _arg3:GIFRequest):void;
function createPanel(_arg1:String, _arg2:uint, _arg3:uint):void;
function createInfo(:String):void;
function createFailureAlert(:String):void;
function addToPanel(_arg1:String, _arg2:DisplayObject):void;
function init():void;
function createSuccessAlert(:String):void;
function createVisualDebug():void;
function createAlert(:String):void;
function destroy():void;
function bringToFront(:DisplayObject):void;
function isAvailable():Boolean;
}
}//package com.google.analytics.debug
Section 89
//Info (com.google.analytics.debug.Info)
package com.google.analytics.debug {
import flash.events.*;
import flash.utils.*;
public class Info extends Label {
private var _timer:Timer;
public function Info(text:String="", timeout:uint=3000){
super(text, "uiInfo", Style.infoColor, Align.top, true);
if (timeout > 0){
_timer = new Timer(timeout, 1);
_timer.start();
_timer.addEventListener(TimerEvent.TIMER_COMPLETE, onComplete, false, 0, true);
};
}
public function onComplete(event:TimerEvent):void{
close();
}
override public function onLink(event:TextEvent):void{
switch (event.text){
case "hide":
close();
break;
};
}
public function close():void{
if (parent != null){
parent.removeChild(this);
};
}
}
}//package com.google.analytics.debug
Section 90
//Label (com.google.analytics.debug.Label)
package com.google.analytics.debug {
import flash.events.*;
import flash.display.*;
import flash.text.*;
public class Label extends UISprite {
private var _text:String;
private var _textField:TextField;
private var _color:uint;
protected var selectable:Boolean;
public var stickToEdge:Boolean;
private var _background:Shape;
private var _tag:String;
public static var count:uint = 0;
public function Label(text:String="", tag:String="uiLabel", color:uint=0, alignement:Align=null, stickToEdge:Boolean=false){
super();
this.name = ("Label" + count++);
selectable = false;
_background = new Shape();
_textField = new TextField();
_text = text;
_tag = tag;
if (alignement == null){
alignement = Align.none;
};
this.alignement = alignement;
this.stickToEdge = stickToEdge;
if (color == 0){
color = Style.backgroundColor;
};
_color = color;
_textField.addEventListener(TextEvent.LINK, onLink);
}
override protected function dispose():void{
_textField.removeEventListener(TextEvent.LINK, onLink);
super.dispose();
}
private function _draw():void{
var g:Graphics;
var W:uint;
var H:uint;
g = _background.graphics;
g.clear();
g.beginFill(_color);
W = _textField.width;
H = _textField.height;
if (forcedWidth > 0){
W = forcedWidth;
};
Background.drawRounded(this, g, W, H);
g.endFill();
}
override protected function layout():void{
_textField.type = TextFieldType.DYNAMIC;
_textField.autoSize = TextFieldAutoSize.LEFT;
_textField.background = false;
_textField.selectable = selectable;
_textField.multiline = true;
_textField.styleSheet = Style.sheet;
this.text = _text;
addChild(_background);
addChild(_textField);
}
public function get text():String{
return (_textField.text);
}
public function set tag(value:String):void{
_tag = value;
text = "";
}
public function set text(value:String):void{
if (value == ""){
value = _text;
};
_textField.htmlText = (((("<span class=\"" + tag) + "\">") + value) + "</span>");
_text = value;
_draw();
resize();
}
public function appendText(value:String, newtag:String=""):void{
if (value == ""){
return;
};
if (newtag == ""){
newtag = tag;
};
_textField.htmlText = (_textField.htmlText + (((("<span class=\"" + newtag) + "\">") + value) + "</span>"));
_text = (_text + value);
_draw();
resize();
}
public function onLink(event:TextEvent):void{
}
public function get tag():String{
return (_tag);
}
}
}//package com.google.analytics.debug
Section 91
//Layout (com.google.analytics.debug.Layout)
package com.google.analytics.debug {
import flash.events.*;
import flash.display.*;
import flash.net.*;
import com.google.analytics.core.*;
import com.google.analytics.*;
public class Layout implements ILayout {
private var _display:DisplayObject;
private var _infoQueue:Array;
private var _maxCharPerLine:int;// = 85
private var _hasInfo:Boolean;
private var _warningQueue:Array;
private var _hasDebug:Boolean;
private var _hasWarning:Boolean;
private var _mainPanel:Panel;
private var _GRAlertQueue:Array;
private var _debug:DebugConfiguration;
public var visualDebug:Debug;
private var _hasGRAlert:Boolean;
public function Layout(debug:DebugConfiguration, display:DisplayObject){
_maxCharPerLine = 85;
super();
_display = display;
_debug = debug;
_hasWarning = false;
_hasInfo = false;
_hasDebug = false;
_hasGRAlert = false;
_warningQueue = [];
_infoQueue = [];
_GRAlertQueue = [];
}
private function onKey(event:KeyboardEvent=null):void{
switch (event.keyCode){
case _debug.showHideKey:
_mainPanel.visible = !(_mainPanel.visible);
break;
case _debug.destroyKey:
destroy();
break;
};
}
public function bringToFront(visual:DisplayObject):void{
_display.stage.setChildIndex(visual, (_display.stage.numChildren - 1));
}
public function createFailureAlert(message:String):void{
var actionClose:AlertAction;
var fa:Alert;
if (_debug.verbose){
message = _filterMaxChars(message);
actionClose = new AlertAction("Close", "close", "close");
} else {
actionClose = new AlertAction("X", "close", "close");
};
fa = new FailureAlert(_debug, message, [actionClose]);
addToPanel("analytics", fa);
if (_hasDebug){
if (_debug.verbose){
message = message.split("\n").join("");
message = _filterMaxChars(message, 66);
};
visualDebug.writeBold(message);
};
}
public function init():void{
var spaces:int;
var W:uint;
var H:uint;
var mp:Panel;
spaces = 10;
W = (_display.stage.stageWidth - (spaces * 2));
H = (_display.stage.stageHeight - (spaces * 2));
mp = new Panel("analytics", W, H);
mp.alignement = Align.top;
mp.stickToEdge = false;
mp.title = ("Google Analytics v" + GATracker.version);
_mainPanel = mp;
addToStage(mp);
bringToFront(mp);
if (_debug.minimizedOnStart){
_mainPanel.onToggle();
};
createVisualDebug();
_display.stage.addEventListener(KeyboardEvent.KEY_DOWN, onKey, false, 0, true);
}
public function addToPanel(name:String, visual:DisplayObject):void{
var d:DisplayObject;
var panel:Panel;
d = _display.stage.getChildByName(name);
if (d){
panel = (d as Panel);
panel.addData(visual);
} else {
trace((("panel \"" + name) + "\" not found"));
};
}
private function _clearInfo(event:Event):void{
_hasInfo = false;
if (_infoQueue.length > 0){
createInfo(_infoQueue.shift());
};
}
private function _filterMaxChars(message:String, maxCharPerLine:int=0):String{
var CRLF:String;
var output:Array;
var lines:Array;
var line:String;
var i:int;
CRLF = "\n";
output = [];
lines = message.split(CRLF);
if (maxCharPerLine == 0){
maxCharPerLine = _maxCharPerLine;
};
i = 0;
while (i < lines.length) {
line = lines[i];
while (line.length > maxCharPerLine) {
output.push(line.substr(0, maxCharPerLine));
line = line.substring(maxCharPerLine);
};
output.push(line);
i++;
};
return (output.join(CRLF));
}
public function createWarning(message:String):void{
var w:Warning;
if (((_hasWarning) || (!(isAvailable())))){
_warningQueue.push(message);
return;
};
message = _filterMaxChars(message);
_hasWarning = true;
w = new Warning(message, _debug.warningTimeout);
addToPanel("analytics", w);
w.addEventListener(Event.REMOVED_FROM_STAGE, _clearWarning, false, 0, true);
if (_hasDebug){
visualDebug.writeBold(message);
};
}
private function _clearGRAlert(event:Event):void{
_hasGRAlert = false;
if (_GRAlertQueue.length > 0){
createGIFRequestAlert.apply(this, _GRAlertQueue.shift());
};
}
public function createSuccessAlert(message:String):void{
var actionClose:AlertAction;
var sa:Alert;
if (_debug.verbose){
message = _filterMaxChars(message);
actionClose = new AlertAction("Close", "close", "close");
} else {
actionClose = new AlertAction("X", "close", "close");
};
sa = new SuccessAlert(_debug, message, [actionClose]);
addToPanel("analytics", sa);
if (_hasDebug){
if (_debug.verbose){
message = message.split("\n").join("");
message = _filterMaxChars(message, 66);
};
visualDebug.writeBold(message);
};
}
public function isAvailable():Boolean{
return (!((_display.stage == null)));
}
public function createAlert(message:String):void{
var a:Alert;
message = _filterMaxChars(message);
a = new Alert(message, [new AlertAction("Close", "close", "close")]);
addToPanel("analytics", a);
if (_hasDebug){
visualDebug.writeBold(message);
};
}
public function createInfo(message:String):void{
var i:Info;
if (((_hasInfo) || (!(isAvailable())))){
_infoQueue.push(message);
return;
};
message = _filterMaxChars(message);
_hasInfo = true;
i = new Info(message, _debug.infoTimeout);
addToPanel("analytics", i);
i.addEventListener(Event.REMOVED_FROM_STAGE, _clearInfo, false, 0, true);
if (_hasDebug){
visualDebug.write(message);
};
}
public function createGIFRequestAlert(message:String, request:URLRequest, ref:GIFRequest):void{
var f:Function;
var gra:GIFRequestAlert;
var message = message;
var request = request;
var ref = ref;
if (_hasGRAlert){
_GRAlertQueue.push([message, request, ref]);
return;
};
_hasGRAlert = true;
f = function ():void{
ref.sendRequest(request);
};
message = _filterMaxChars(message);
gra = new GIFRequestAlert(message, [new AlertAction("OK", "ok", f), new AlertAction("Cancel", "cancel", "close")]);
addToPanel("analytics", gra);
gra.addEventListener(Event.REMOVED_FROM_STAGE, _clearGRAlert, false, 0, true);
if (_hasDebug){
if (_debug.verbose){
message = message.split("\n").join("");
message = _filterMaxChars(message, 66);
};
visualDebug.write(message);
};
}
public function createVisualDebug():void{
if (!visualDebug){
visualDebug = new Debug();
visualDebug.alignement = Align.bottom;
visualDebug.stickToEdge = true;
addToPanel("analytics", visualDebug);
_hasDebug = true;
};
}
public function addToStage(visual:DisplayObject):void{
_display.stage.addChild(visual);
}
private function _clearWarning(event:Event):void{
_hasWarning = false;
if (_warningQueue.length > 0){
createWarning(_warningQueue.shift());
};
}
public function createPanel(name:String, width:uint, height:uint):void{
var p:Panel;
p = new Panel(name, width, height);
p.alignement = Align.center;
p.stickToEdge = false;
addToStage(p);
bringToFront(p);
}
public function destroy():void{
_mainPanel.close();
_debug.layout = null;
}
}
}//package com.google.analytics.debug
Section 92
//Margin (com.google.analytics.debug.Margin)
package com.google.analytics.debug {
public class Margin {
public var bottom:int;
public var top:int;
public var right:int;
public var left:int;
public function Margin(top:int=0, bottom:int=0, left:int=0, right:int=0){
super();
this.top = top;
this.bottom = bottom;
this.left = left;
this.right = right;
}
}
}//package com.google.analytics.debug
Section 93
//Panel (com.google.analytics.debug.Panel)
package com.google.analytics.debug {
import flash.events.*;
import flash.display.*;
public class Panel extends UISprite {
protected var baseAlpha:Number;
private var _border:Shape;
private var _name:String;
private var _title:Label;
private var _data:UISprite;
private var _backgroundColor:uint;
private var _colapsed:Boolean;
private var _stickToEdge:Boolean;
private var _background:Shape;
private var _savedW:uint;
private var _mask:Sprite;
private var _savedH:uint;
private var _borderColor:uint;
public function Panel(name:String, width:uint, height:uint, backgroundColor:uint=0, borderColor:uint=0, baseAlpha:Number=0.3, alignement:Align=null, stickToEdge:Boolean=false){
super();
_name = name;
this.name = name;
this.mouseEnabled = false;
_colapsed = false;
forcedWidth = width;
forcedHeight = height;
this.baseAlpha = baseAlpha;
_background = new Shape();
_data = new UISprite();
_data.forcedWidth = width;
_data.forcedHeight = height;
_data.mouseEnabled = false;
_title = new Label(name, "uiLabel", 0xFFFFFF, Align.topLeft, stickToEdge);
_title.buttonMode = true;
_title.margin.top = 0.6;
_title.margin.left = 0.6;
_title.addEventListener(MouseEvent.CLICK, onToggle);
_title.mouseChildren = false;
_border = new Shape();
_mask = new Sprite();
_mask.useHandCursor = false;
_mask.mouseEnabled = false;
_mask.mouseChildren = false;
if (alignement == null){
alignement = Align.none;
};
this.alignement = alignement;
this.stickToEdge = stickToEdge;
if (backgroundColor == 0){
backgroundColor = Style.backgroundColor;
};
_backgroundColor = backgroundColor;
if (borderColor == 0){
borderColor = Style.borderColor;
};
_borderColor = borderColor;
}
public function set stickToEdge(value:Boolean):void{
_stickToEdge = value;
_title.stickToEdge = value;
}
public function onToggle(event:MouseEvent=null):void{
if (_colapsed){
_data.visible = true;
} else {
_data.visible = false;
};
_colapsed = !(_colapsed);
_update();
resize();
}
override protected function dispose():void{
_title.removeEventListener(MouseEvent.CLICK, onToggle);
super.dispose();
}
private function _draw():void{
var W:uint;
var H:uint;
var g0:Graphics;
var g01:Graphics;
var g1:Graphics;
var g2:Graphics;
if (((_savedW) && (_savedH))){
forcedWidth = _savedW;
forcedHeight = _savedH;
};
if (!_colapsed){
W = forcedWidth;
H = forcedHeight;
} else {
W = _title.width;
H = _title.height;
_savedW = forcedWidth;
_savedH = forcedHeight;
forcedWidth = W;
forcedHeight = H;
};
g0 = _background.graphics;
g0.clear();
g0.beginFill(_backgroundColor);
Background.drawRounded(this, g0, W, H);
g0.endFill();
g01 = _data.graphics;
g01.clear();
g01.beginFill(_backgroundColor, 0);
Background.drawRounded(this, g01, W, H);
g01.endFill();
g1 = _border.graphics;
g1.clear();
g1.lineStyle(0.1, _borderColor);
Background.drawRounded(this, g1, W, H);
g1.endFill();
g2 = _mask.graphics;
g2.clear();
g2.beginFill(_backgroundColor);
Background.drawRounded(this, g2, (W + 1), (H + 1));
g2.endFill();
}
override protected function layout():void{
_update();
addChild(_background);
addChild(_data);
addChild(_title);
addChild(_border);
addChild(_mask);
mask = _mask;
}
public function get title():String{
return (_title.text);
}
public function get stickToEdge():Boolean{
return (_stickToEdge);
}
public function set title(value:String):void{
_title.text = value;
}
private function _update():void{
_draw();
if (baseAlpha < 1){
_background.alpha = baseAlpha;
_border.alpha = baseAlpha;
};
}
public function addData(child:DisplayObject):void{
_data.addChild(child);
}
public function close():void{
dispose();
if (parent != null){
parent.removeChild(this);
};
}
}
}//package com.google.analytics.debug
Section 94
//Style (com.google.analytics.debug.Style)
package com.google.analytics.debug {
public const Style:_Style = new _Style();
}//package com.google.analytics.debug
Section 95
//SuccessAlert (com.google.analytics.debug.SuccessAlert)
package com.google.analytics.debug {
public class SuccessAlert extends Alert {
public function SuccessAlert(debug:DebugConfiguration, text:String, actions:Array){
var alignement:Align;
var stickToEdge:Boolean;
var actionOnNextLine:Boolean;
alignement = Align.bottomLeft;
stickToEdge = true;
actionOnNextLine = false;
if (debug.verbose){
text = ((("<u><span class=\"uiAlertTitle\">Success</span>" + spaces(18)) + "</u>\n\n") + text);
alignement = Align.center;
stickToEdge = false;
actionOnNextLine = true;
};
super(text, actions, "uiSuccess", Style.successColor, alignement, stickToEdge, actionOnNextLine);
}
}
}//package com.google.analytics.debug
Section 96
//UISprite (com.google.analytics.debug.UISprite)
package com.google.analytics.debug {
import flash.events.*;
import flash.display.*;
public class UISprite extends Sprite {
private var _forcedHeight:uint;
protected var listenResize:Boolean;
public var alignement:Align;
private var _forcedWidth:uint;
public var margin:Margin;
protected var alignTarget:DisplayObject;
public function UISprite(alignTarget:DisplayObject=null){
super();
listenResize = false;
alignement = Align.none;
this.alignTarget = alignTarget;
margin = new Margin();
addEventListener(Event.ADDED_TO_STAGE, _onAddedToStage);
addEventListener(Event.REMOVED_FROM_STAGE, _onRemovedFromStage);
}
protected function dispose():void{
var d:DisplayObject;
var i:int;
i = 0;
while (i < numChildren) {
d = getChildAt(i);
if (d){
removeChild(d);
};
i++;
};
}
protected function layout():void{
}
public function get forcedHeight():uint{
if (_forcedHeight){
return (_forcedHeight);
};
return (height);
}
public function alignTo(alignement:Align, target:DisplayObject=null):void{
var H:uint;
var W:uint;
var X:uint;
var Y:uint;
var t:UISprite;
if (target == null){
if ((parent is Stage)){
target = this.stage;
} else {
target = parent;
};
};
if (target == this.stage){
if (this.stage == null){
return;
};
H = this.stage.stageHeight;
W = this.stage.stageWidth;
X = 0;
Y = 0;
} else {
t = (target as UISprite);
if (t.forcedHeight){
H = t.forcedHeight;
} else {
H = t.height;
};
if (t.forcedWidth){
W = t.forcedWidth;
} else {
W = t.width;
};
X = 0;
Y = 0;
};
switch (alignement){
case Align.top:
x = ((W / 2) - (forcedWidth / 2));
y = (Y + margin.top);
break;
case Align.bottom:
x = ((W / 2) - (forcedWidth / 2));
y = (((Y + H) - forcedHeight) - margin.bottom);
break;
case Align.left:
x = (X + margin.left);
y = ((H / 2) - (forcedHeight / 2));
break;
case Align.right:
x = (((X + W) - forcedWidth) - margin.right);
y = ((H / 2) - (forcedHeight / 2));
break;
case Align.center:
x = ((W / 2) - (forcedWidth / 2));
y = ((H / 2) - (forcedHeight / 2));
break;
case Align.topLeft:
x = (X + margin.left);
y = (Y + margin.top);
break;
case Align.topRight:
x = (((X + W) - forcedWidth) - margin.right);
y = (Y + margin.top);
break;
case Align.bottomLeft:
x = (X + margin.left);
y = (((Y + H) - forcedHeight) - margin.bottom);
break;
case Align.bottomRight:
x = (((X + W) - forcedWidth) - margin.right);
y = (((Y + H) - forcedHeight) - margin.bottom);
break;
};
if (((!(listenResize)) && (!((alignement == Align.none))))){
target.addEventListener(Event.RESIZE, onResize, false, 0, true);
listenResize = true;
};
this.alignement = alignement;
this.alignTarget = target;
}
public function get forcedWidth():uint{
if (_forcedWidth){
return (_forcedWidth);
};
return (width);
}
protected function onResize(event:Event):void{
resize();
}
private function _onRemovedFromStage(event:Event):void{
removeEventListener(Event.ADDED_TO_STAGE, _onAddedToStage);
removeEventListener(Event.REMOVED_FROM_STAGE, _onRemovedFromStage);
dispose();
}
public function resize():void{
if (alignement != Align.none){
alignTo(alignement, alignTarget);
};
}
private function _onAddedToStage(event:Event):void{
layout();
resize();
}
public function set forcedHeight(value:uint):void{
_forcedHeight = value;
}
public function set forcedWidth(value:uint):void{
_forcedWidth = value;
}
}
}//package com.google.analytics.debug
Section 97
//Warning (com.google.analytics.debug.Warning)
package com.google.analytics.debug {
import flash.events.*;
import flash.utils.*;
public class Warning extends Label {
private var _timer:Timer;
public function Warning(text:String="", timeout:uint=3000){
super(text, "uiWarning", Style.warningColor, Align.top, false);
margin.top = 32;
if (timeout > 0){
_timer = new Timer(timeout, 1);
_timer.start();
_timer.addEventListener(TimerEvent.TIMER_COMPLETE, onComplete, false, 0, true);
};
}
public function onComplete(event:TimerEvent):void{
close();
}
override public function onLink(event:TextEvent):void{
switch (event.text){
case "hide":
close();
break;
};
}
public function close():void{
if (parent != null){
parent.removeChild(this);
};
}
}
}//package com.google.analytics.debug
Section 98
//VisualDebugMode (com.google.analytics.debug.VisualDebugMode)
package com.google.analytics.debug {
public class VisualDebugMode {
private var _value:int;
private var _name:String;
public static const advanced:VisualDebugMode = new VisualDebugMode(1, "advanced");
;
public static const geek:VisualDebugMode = new VisualDebugMode(2, "geek");
;
public static const basic:VisualDebugMode = new VisualDebugMode(0, "basic");
;
public function VisualDebugMode(value:int=0, name:String=""){
super();
_value = value;
_name = name;
}
public function valueOf():int{
return (_value);
}
public function toString():String{
return (_name);
}
}
}//package com.google.analytics.debug
Section 99
//Item (com.google.analytics.ecommerce.Item)
package com.google.analytics.ecommerce {
import com.google.analytics.utils.*;
public class Item {
private var _id:String;
private var _price:String;
private var _sku:String;
private var _category:String;
private var _name:String;
private var _quantity:String;
public function Item(id:String, sku:String, name:String, category:String, price:String, quantity:String){
super();
this._id = id;
this._sku = sku;
this._name = name;
this._category = category;
this._price = price;
this._quantity = quantity;
}
public function set category(value:String):void{
_category = value;
}
public function get name():String{
return (_name);
}
public function get price():String{
return (_price);
}
public function get quantity():String{
return (_quantity);
}
public function set name(value:String):void{
_name = value;
}
public function set price(value:String):void{
_price = value;
}
public function get id():String{
return (_id);
}
public function get sku():String{
return (_sku);
}
public function set quantity(value:String):void{
_quantity = value;
}
public function toGifParams():Variables{
var vars:Variables;
vars = new Variables();
vars.URIencode = true;
vars.post = ["utmt", "utmtid", "utmipc", "utmipn", "utmiva", "utmipr", "utmiqt"];
vars.utmt = "item";
vars.utmtid = _id;
vars.utmipc = _sku;
vars.utmipn = _name;
vars.utmiva = _category;
vars.utmipr = _price;
vars.utmiqt = _quantity;
return (vars);
}
public function set id(value:String):void{
_id = value;
}
public function set sku(value:String):void{
_sku = value;
}
public function get category():String{
return (_category);
}
}
}//package com.google.analytics.ecommerce
Section 100
//Transaction (com.google.analytics.ecommerce.Transaction)
package com.google.analytics.ecommerce {
import com.google.analytics.utils.*;
public class Transaction {
private var _items:Array;
private var _total:String;
private var _vars:Variables;
private var _shipping:String;
private var _city:String;
private var _state:String;
private var _country:String;
private var _tax:String;
private var _affiliation:String;
private var _id:String;
public function Transaction(id:String, affiliation:String, total:String, tax:String, shipping:String, city:String, state:String, country:String){
super();
this._id = id;
this._affiliation = affiliation;
this._total = total;
this._tax = tax;
this._shipping = shipping;
this._city = city;
this._state = state;
this._country = country;
_items = new Array();
}
public function get total():String{
return (_total);
}
public function getItemFromArray(i:Number):Item{
return (_items[i]);
}
public function getItem(sku:String):Item{
var i:Number;
i = 0;
while (i < _items.length) {
if (_items[i].sku == sku){
return (_items[i]);
};
i++;
};
return (null);
}
public function set total(value:String):void{
_total = value;
}
public function getItemsLength():Number{
return (_items.length);
}
public function addItem(sku:String, name:String, category:String, price:String, quantity:String):void{
var newItem:Item;
newItem = getItem(sku);
if (newItem == null){
newItem = new Item(_id, sku, name, category, price, quantity);
_items.push(newItem);
} else {
newItem.name = name;
newItem.category = category;
newItem.price = price;
newItem.quantity = quantity;
};
}
public function set shipping(value:String):void{
_shipping = value;
}
public function get country():String{
return (_country);
}
public function get state():String{
return (_state);
}
public function set tax(value:String):void{
_tax = value;
}
public function set affiliation(value:String):void{
_affiliation = value;
}
public function set state(value:String):void{
_state = value;
}
public function get id():String{
return (_id);
}
public function get tax():String{
return (_tax);
}
public function toGifParams():Variables{
var vars:Variables;
vars = new Variables();
vars.URIencode = true;
vars.utmt = "tran";
vars.utmtid = id;
vars.utmtst = affiliation;
vars.utmtto = total;
vars.utmttx = tax;
vars.utmtsp = shipping;
vars.utmtci = city;
vars.utmtrg = state;
vars.utmtco = country;
vars.post = ["utmtid", "utmtst", "utmtto", "utmttx", "utmtsp", "utmtci", "utmtrg", "utmtco"];
return (vars);
}
public function get affiliation():String{
return (_affiliation);
}
public function get city():String{
return (_city);
}
public function get shipping():String{
return (_shipping);
}
public function set id(value:String):void{
_id = value;
}
public function set city(value:String):void{
_city = value;
}
public function set country(value:String):void{
_country = value;
}
}
}//package com.google.analytics.ecommerce
Section 101
//AnalyticsEvent (com.google.analytics.events.AnalyticsEvent)
package com.google.analytics.events {
import flash.events.*;
import com.google.analytics.*;
public class AnalyticsEvent extends Event {
public var tracker:AnalyticsTracker;
public static const READY:String = "ready";
public function AnalyticsEvent(type:String, tracker:AnalyticsTracker, bubbles:Boolean=false, cancelable:Boolean=false){
super(type, bubbles, cancelable);
this.tracker = tracker;
}
override public function clone():Event{
return (new AnalyticsEvent(type, tracker, bubbles, cancelable));
}
}
}//package com.google.analytics.events
Section 102
//AdSenseGlobals (com.google.analytics.external.AdSenseGlobals)
package com.google.analytics.external {
import com.google.analytics.debug.*;
public class AdSenseGlobals extends JavascriptProxy {
private var _gaGlobalVerified:Boolean;// = false
public static var gaGlobal_js:XML = <script>
<![CDATA[
function()
{
try
{
gaGlobal
}
catch(e)
{
gaGlobal = {} ;
}
}
]]>
</script>
;
public function AdSenseGlobals(debug:DebugConfiguration){
_gaGlobalVerified = false;
super(debug);
}
public function set vid(value:String):void{
if (!isAvailable()){
return;
};
_verify();
setProperty("gaGlobal.vid", value);
}
public function get hid():String{
if (!isAvailable()){
return (null);
};
_verify();
return (getProperty("gaGlobal.hid"));
}
public function get dh():String{
if (!isAvailable()){
return (null);
};
_verify();
return (getProperty("gaGlobal.dh"));
}
public function get gaGlobal():Object{
if (!isAvailable()){
return (null);
};
_verify();
return (getProperty("gaGlobal"));
}
public function set hid(value:String):void{
if (!isAvailable()){
return;
};
_verify();
setProperty("gaGlobal.hid", value);
}
public function get sid():String{
if (!isAvailable()){
return (null);
};
_verify();
return (getProperty("gaGlobal.sid"));
}
private function _verify():void{
if (!_gaGlobalVerified){
executeBlock(gaGlobal_js);
_gaGlobalVerified = true;
};
}
public function get vid():String{
if (!isAvailable()){
return (null);
};
_verify();
return (getProperty("gaGlobal.vid"));
}
public function set sid(value:String):void{
if (!isAvailable()){
return;
};
_verify();
setProperty("gaGlobal.sid", value);
}
}
}//package com.google.analytics.external
Section 103
//HTMLDOM (com.google.analytics.external.HTMLDOM)
package com.google.analytics.external {
import com.google.analytics.debug.*;
public class HTMLDOM extends JavascriptProxy {
private var _referrer:String;
private var _protocol:String;
private var _host:String;
private var _location:String;
private var _pathname:String;
private var _title:String;
private var _characterSet:String;
private var _search:String;
private var _language:String;
private var _colorDepth:String;
public static var cache_properties_js:XML = <script>
<![CDATA[
function()
{
var obj = {};
obj.host = document.location.host;
obj.language = navigator.language ? navigator.language : navigator.browserLanguage;
obj.characterSet = document.characterSet ? document.characterSet : document.charset;
obj.colorDepth = window.screen.colorDepth;
obj.location = document.location.toString();
obj.pathname = document.location.pathname;
obj.protocol = document.location.protocol;
obj.search = document.location.search;
obj.referrer = document.referrer;
obj.title = document.title;
return obj;
}
]]>
</script>
;
public function HTMLDOM(debug:DebugConfiguration){
super(debug);
}
public function get search():String{
if (_search){
return (_search);
};
if (!isAvailable()){
return (null);
};
_search = getProperty("document.location.search");
return (_search);
}
public function get location():String{
if (_location){
return (_location);
};
if (!isAvailable()){
return (null);
};
_location = getPropertyString("document.location");
return (_location);
}
public function get pathname():String{
if (_pathname){
return (_pathname);
};
if (!isAvailable()){
return (null);
};
_pathname = getProperty("document.location.pathname");
return (_pathname);
}
public function get referrer():String{
if (_referrer){
return (_referrer);
};
if (!isAvailable()){
return (null);
};
_referrer = getProperty("document.referrer");
return (_referrer);
}
public function get protocol():String{
if (_protocol){
return (_protocol);
};
if (!isAvailable()){
return (null);
};
_protocol = getProperty("document.location.protocol");
return (_protocol);
}
public function cacheProperties():void{
var obj:Object;
if (!isAvailable()){
return;
};
obj = call(cache_properties_js);
if (obj){
_host = obj.host;
_language = obj.language;
_characterSet = obj.characterSet;
_colorDepth = obj.colorDepth;
_location = obj.location;
_pathname = obj.pathname;
_protocol = obj.protocol;
_search = obj.search;
_referrer = obj.referrer;
_title = obj.title;
};
}
public function get colorDepth():String{
if (_colorDepth){
return (_colorDepth);
};
if (!isAvailable()){
return (null);
};
_colorDepth = getProperty("window.screen.colorDepth");
return (_colorDepth);
}
public function get title():String{
if (_title){
return (_title);
};
if (!isAvailable()){
return (null);
};
_title = getProperty("document.title");
return (_title);
}
public function get host():String{
if (_host){
return (_host);
};
if (!isAvailable()){
return (null);
};
_host = getProperty("document.location.host");
return (_host);
}
public function get characterSet():String{
var cs:String;
if (_characterSet){
return (_characterSet);
};
if (!isAvailable()){
return (null);
};
cs = getProperty("document.characterSet");
if (cs == null){
cs = getProperty("document.charset");
};
_characterSet = cs;
return (_characterSet);
}
public function get language():String{
var lang:String;
if (_language){
return (_language);
};
if (!isAvailable()){
return (null);
};
lang = getProperty("navigator.language");
if (lang == null){
lang = getProperty("navigator.browserLanguage");
};
_language = lang;
return (_language);
}
}
}//package com.google.analytics.external
Section 104
//JavascriptProxy (com.google.analytics.external.JavascriptProxy)
package com.google.analytics.external {
import com.google.analytics.debug.*;
import flash.system.*;
import flash.external.*;
public class JavascriptProxy {
private var _notAvailableWarning:Boolean;// = true
private var _debug:DebugConfiguration;
public static var setProperty_js:XML = <script>
<![CDATA[
function( path , value )
{
var paths;
var prop;
if( path.indexOf(".") > 0 )
{
paths = path.split(".");
prop = paths.pop() ;
}
else
{
paths = [];
prop = path;
}
var target = window ;
var len = paths.length ;
for( var i = 0 ; i < len ; i++ )
{
target = target[ paths[i] ] ;
}
target[ prop ] = value ;
}
]]>
</script>
;
public static var hasProperty_js:XML = <script>
<![CDATA[
function( path )
{
var paths;
if( path.indexOf(".") > 0 )
{
paths = path.split(".");
}
else
{
paths = [path];
}
var target = window ;
var len = paths.length ;
for( var i = 0 ; i < len ; i++ )
{
target = target[ paths[i] ] ;
}
if( target )
{
return true;
}
else
{
return false;
}
}
]]>
</script>
;
public static var setPropertyRef_js:XML = <script>
<![CDATA[
function( path , target )
{
var paths;
var prop;
if( path.indexOf(".") > 0 )
{
paths = path.split(".");
prop = paths.pop() ;
}
else
{
paths = [];
prop = path;
}
alert( "paths:"+paths.length+", prop:"+prop );
var targets;
var name;
if( target.indexOf(".") > 0 )
{
targets = target.split(".");
name = targets.pop();
}
else
{
targets = [];
name = target;
}
alert( "targets:"+targets.length+", name:"+name );
var root = window;
var len = paths.length;
for( var i = 0 ; i < len ; i++ )
{
root = root[ paths[i] ] ;
}
var ref = window;
var depth = targets.length;
for( var j = 0 ; j < depth ; j++ )
{
ref = ref[ targets[j] ] ;
}
root[ prop ] = ref[name] ;
}
]]>
</script>
;
public function JavascriptProxy(debug:DebugConfiguration){
_notAvailableWarning = true;
super();
_debug = debug;
}
public function getProperty(name:String){
return (call((name + ".valueOf")));
}
public function hasProperty(path:String):Boolean{
return (call(hasProperty_js, path));
}
public function setProperty(path:String, value):void{
call(setProperty_js, path, value);
}
public function executeBlock(data:String):void{
var data = data;
if (isAvailable()){
ExternalInterface.call(data);
//unresolved jump
var _slot1 = e;
if (_debug.javascript){
_debug.warning("ExternalInterface is not allowed.\nEnsure that allowScriptAccess is set to \"always\" in the Flash embed HTML.");
};
//unresolved jump
var _slot1 = e;
if (_debug.javascript){
_debug.warning(("ExternalInterface failed to make the call\nreason: " + _slot1.message));
};
};
}
public function getPropertyString(name:String):String{
return (call((name + ".toString")));
}
public function setPropertyByReference(path:String, target:String):void{
call(setPropertyRef_js, path, target);
}
public function call(functionName:String, ... _args){
var output:String;
var functionName = functionName;
var args = _args;
if (isAvailable()){
if (((_debug.javascript) && (_debug.verbose))){
output = "";
output = ("Flash->JS: " + functionName);
output = (output + "( ");
if (args.length > 0){
output = (output + args.join(","));
};
output = (output + " )");
_debug.info(output);
};
args.unshift(functionName);
return (ExternalInterface.call.apply(ExternalInterface, args));
//unresolved jump
var _slot1 = e;
if (_debug.javascript){
_debug.warning("ExternalInterface is not allowed.\nEnsure that allowScriptAccess is set to \"always\" in the Flash embed HTML.");
};
//unresolved jump
var _slot1 = e;
if (_debug.javascript){
_debug.warning(("ExternalInterface failed to make the call\nreason: " + _slot1.message));
};
};
return (null);
}
public function isAvailable():Boolean{
var available:Boolean;
available = ExternalInterface.available;
if (((available) && ((Capabilities.playerType == "External")))){
available = false;
};
if (((((!(available)) && (_debug.javascript))) && (_notAvailableWarning))){
_debug.warning("ExternalInterface is not available.");
_notAvailableWarning = false;
};
return (available);
}
}
}//package com.google.analytics.external
Section 105
//Environment (com.google.analytics.utils.Environment)
package com.google.analytics.utils {
import com.google.analytics.core.*;
import com.google.analytics.debug.*;
import com.google.analytics.external.*;
import flash.system.*;
public class Environment {
private var _dom:HTMLDOM;
private var _appName:String;
private var _debug:DebugConfiguration;
private var _appVersion:Version;
private var _url:String;
private var _protocol:Protocols;
private var _userAgent:UserAgent;
public function Environment(url:String="", app:String="", version:String="", debug:DebugConfiguration=null, dom:HTMLDOM=null){
var v:Version;
super();
if (app == ""){
if (isAIR()){
app = "AIR";
} else {
app = "Flash";
};
};
if (version == ""){
v = flashVersion;
} else {
v = Version.fromString(version);
};
_url = url;
_appName = app;
_appVersion = v;
_debug = debug;
_dom = dom;
}
public function isAIR():Boolean{
return ((((playerType == "Desktop")) && ((Security.sandboxType.toString() == "application"))));
}
public function get playerType():String{
return (Capabilities.playerType);
}
public function get locationSearch():String{
var _search:String;
_search = _dom.search;
if (_search){
return (_search);
};
return ("");
}
public function get protocol():Protocols{
if (!_protocol){
_findProtocol();
};
return (_protocol);
}
public function get flashVersion():Version{
var v:Version;
v = Version.fromString(Capabilities.version.split(" ")[1], ",");
return (v);
}
public function get screenWidth():Number{
return (Capabilities.screenResolutionX);
}
public function get languageEncoding():String{
var _charset:String;
if (System.useCodePage){
_charset = _dom.characterSet;
if (_charset){
return (_charset);
};
return ("-");
};
return ("UTF-8");
}
public function get appName():String{
return (_appName);
}
public function get screenColorDepth():String{
var color:String;
var _colorDepth:String;
switch (Capabilities.screenColor){
case "bw":
color = "1";
break;
case "gray":
color = "2";
break;
case "color":
default:
color = "24";
};
_colorDepth = _dom.colorDepth;
if (_colorDepth){
color = _colorDepth;
};
return (color);
}
private function _findProtocol():void{
var p:Protocols;
var _proto:String;
var proto:String;
var URL:String;
var test:String;
p = Protocols.none;
if (_url != ""){
URL = _url.toLowerCase();
test = URL.substr(0, 5);
switch (test){
case "file:":
p = Protocols.file;
break;
case "http:":
p = Protocols.HTTP;
break;
case "https":
if (URL.charAt(5) == ":"){
p = Protocols.HTTPS;
};
break;
default:
_protocol = Protocols.none;
};
};
_proto = _dom.protocol;
proto = (p.toString() + ":").toLowerCase();
if (((((_proto) && (!((_proto == proto))))) && (_debug))){
_debug.warning(((("Protocol mismatch: SWF=" + proto) + ", DOM=") + _proto));
};
_protocol = p;
}
public function get locationSWFPath():String{
return (_url);
}
public function get platform():String{
var p:String;
p = Capabilities.manufacturer;
return (p.split("Adobe ")[1]);
}
public function get operatingSystem():String{
return (Capabilities.os);
}
public function set appName(value:String):void{
_appName = value;
userAgent.applicationProduct = value;
}
public function get userAgent():UserAgent{
if (!_userAgent){
_userAgent = new UserAgent(this, appName, appVersion.toString(4));
};
return (_userAgent);
}
ga_internal function set url(value:String):void{
_url = value;
}
public function get referrer():String{
var _referrer:String;
_referrer = _dom.referrer;
if (_referrer){
return (_referrer);
};
if (protocol == Protocols.file){
return ("localhost");
};
return ("");
}
public function isInHTML():Boolean{
return ((Capabilities.playerType == "PlugIn"));
}
public function get language():String{
var _lang:String;
var lang:String;
_lang = _dom.language;
lang = Capabilities.language;
if (_lang){
if ((((_lang.length > lang.length)) && ((_lang.substr(0, lang.length) == lang)))){
lang = _lang;
};
};
return (lang);
}
public function get domainName():String{
var URL:String;
var str:String;
var end:int;
if ((((protocol == Protocols.HTTP)) || ((protocol == Protocols.HTTPS)))){
URL = _url.toLowerCase();
if (protocol == Protocols.HTTP){
str = URL.split("http://").join("");
} else {
if (protocol == Protocols.HTTPS){
str = URL.split("https://").join("");
};
};
end = str.indexOf("/");
if (end > -1){
str = str.substring(0, end);
};
return (str);
};
if (protocol == Protocols.file){
return ("localhost");
};
return ("");
}
public function set userAgent(custom:UserAgent):void{
_userAgent = custom;
}
public function set appVersion(value:Version):void{
_appVersion = value;
userAgent.applicationVersion = value.toString(4);
}
public function get screenHeight():Number{
return (Capabilities.screenResolutionY);
}
public function get locationPath():String{
var _pathname:String;
_pathname = _dom.pathname;
if (_pathname){
return (_pathname);
};
return ("");
}
public function get documentTitle():String{
var _title:String;
_title = _dom.title;
if (_title){
return (_title);
};
return ("");
}
public function get appVersion():Version{
return (_appVersion);
}
}
}//package com.google.analytics.utils
Section 106
//Protocols (com.google.analytics.utils.Protocols)
package com.google.analytics.utils {
public class Protocols {
private var _value:int;
private var _name:String;
public static const none:Protocols = new Protocols(0, "none");
;
public static const HTTPS:Protocols = new Protocols(3, "HTTPS");
;
public static const file:Protocols = new Protocols(1, "file");
;
public static const HTTP:Protocols = new Protocols(2, "HTTP");
;
public function Protocols(value:int=0, name:String=""){
super();
_value = value;
_name = name;
}
public function valueOf():int{
return (_value);
}
public function toString():String{
return (_name);
}
}
}//package com.google.analytics.utils
Section 107
//Timespan (com.google.analytics.utils.Timespan)
package com.google.analytics.utils {
public class Timespan {
public static var sixmonths:Number = 15768000;
public static var twoyears:Number = 63072000;
public static var thirtyminutes:Number = 1800;
public function Timespan(){
super();
}
}
}//package com.google.analytics.utils
Section 108
//URL (com.google.analytics.utils.URL)
package com.google.analytics.utils {
public class URL {
private var _url:String;
public function URL(url:String=""){
super();
_url = url.toLowerCase();
}
public function get domain():String{
var parts:Array;
if (((!((hostName == ""))) && ((hostName.indexOf(".") > -1)))){
parts = hostName.split(".");
switch (parts.length){
case 2:
return (hostName);
case 3:
if (parts[1] == "co"){
return (hostName);
};
parts.shift();
return (parts.join("."));
case 4:
parts.shift();
return (parts.join("."));
};
};
return ("");
}
public function get path():String{
var _path:String;
_path = _url;
if (_path.indexOf("://") > -1){
_path = _path.split("://")[1];
};
if (_path.indexOf(hostName) == 0){
_path = _path.substr(hostName.length);
};
if (_path.indexOf("?") > -1){
_path = _path.split("?")[0];
};
if (_path.charAt(0) != "/"){
_path = ("/" + _path);
};
return (_path);
}
public function get search():String{
var _search:String;
_search = _url;
if (_search.indexOf("://") > -1){
_search = _search.split("://")[1];
};
if (_search.indexOf(hostName) == 0){
_search = _search.substr(hostName.length);
};
if (_search.indexOf("?") > -1){
_search = _search.split("?")[1];
} else {
_search = "";
};
return (_search);
}
public function get subDomain():String{
if (((!((domain == ""))) && (!((domain == hostName))))){
return (hostName.split(("." + domain)).join(""));
};
return ("");
}
public function get protocol():Protocols{
var proto:String;
proto = _url.split("://")[0];
switch (proto){
case "file":
return (Protocols.file);
case "http":
return (Protocols.HTTP);
case "https":
return (Protocols.HTTPS);
default:
return (Protocols.none);
};
}
public function get hostName():String{
var hostname:String;
hostname = _url;
if (hostname.indexOf("://") > -1){
hostname = hostname.split("://")[1];
};
if (hostname.indexOf("/") > -1){
hostname = hostname.split("/")[0];
};
if (hostname.indexOf("?") > -1){
hostname = hostname.split("?")[0];
};
if ((((protocol == Protocols.file)) || ((protocol == Protocols.none)))){
return ("");
};
return (hostname);
}
}
}//package com.google.analytics.utils
Section 109
//UserAgent (com.google.analytics.utils.UserAgent)
package com.google.analytics.utils {
import com.google.analytics.core.*;
import flash.system.*;
public class UserAgent {
private var _version:Version;
private var _localInfo:Environment;
private var _applicationProduct:String;
public static var minimal:Boolean = false;
public function UserAgent(localInfo:Environment, product:String="", version:String=""){
super();
_localInfo = localInfo;
applicationProduct = product;
_version = Version.fromString(version);
}
public function get tamarinProductToken():String{
if (UserAgent.minimal){
return ("");
};
if (System.vmVersion){
return (("Tamarin/" + Utils.trim(System.vmVersion, true)));
};
return ("");
}
public function set applicationProduct(value:String):void{
_applicationProduct = value;
}
public function get applicationVersion():String{
return (_version.toString(2));
}
public function get applicationProductToken():String{
var token:String;
token = applicationProduct;
if (applicationVersion != ""){
token = (token + ("/" + applicationVersion));
};
return (token);
}
public function get vendorProductToken():String{
var vp:String;
vp = "";
if (_localInfo.isAIR()){
vp = (vp + "AIR");
} else {
vp = (vp + "FlashPlayer");
};
vp = (vp + "/");
vp = (vp + _version.toString(3));
return (vp);
}
public function toString():String{
var UA:String;
UA = "";
UA = (UA + applicationProductToken);
if (applicationComment != ""){
UA = (UA + (" " + applicationComment));
};
if (tamarinProductToken != ""){
UA = (UA + (" " + tamarinProductToken));
};
if (vendorProductToken != ""){
UA = (UA + (" " + vendorProductToken));
};
return (UA);
}
public function get applicationComment():String{
var comment:Array;
comment = [];
comment.push(_localInfo.platform);
comment.push(_localInfo.playerType);
if (!UserAgent.minimal){
comment.push(_localInfo.operatingSystem);
comment.push(_localInfo.language);
};
if (Capabilities.isDebugger){
comment.push("DEBUG");
};
if (comment.length > 0){
return ((("(" + comment.join("; ")) + ")"));
};
return ("");
}
public function set applicationVersion(value:String):void{
_version = Version.fromString(value);
}
public function get applicationProduct():String{
return (_applicationProduct);
}
}
}//package com.google.analytics.utils
Section 110
//Variables (com.google.analytics.utils.Variables)
package com.google.analytics.utils {
import flash.net.*;
public dynamic class Variables {
public var post:Array;
public var URIencode:Boolean;
public var pre:Array;
public var sort:Boolean;// = true
public function Variables(source:String=null, pre:Array=null, post:Array=null){
pre = [];
post = [];
sort = true;
super();
if (source){
decode(source);
};
if (pre){
this.pre = pre;
};
if (post){
this.post = post;
};
}
private function _join(vars:Variables):void{
var prop:String;
if (!vars){
return;
};
for (prop in vars) {
this[prop] = vars[prop];
};
}
public function join(... _args):void{
var l:int;
var i:int;
l = _args.length;
i = 0;
while (i < l) {
if (!(_args[i] is Variables)){
} else {
_join(_args[i]);
};
i++;
};
}
public function toString():String{
var data:Array;
var value:String;
var p:String;
var component:String;
var i:int;
var j:int;
var priority:String;
var last:String;
data = [];
for (p in this) {
value = this[p];
if (URIencode){
value = encodeURI(value);
};
data.push(((p + "=") + value));
};
if (sort){
data.sort();
};
if (pre.length > 0){
pre.reverse();
i = 0;
while (i < pre.length) {
priority = pre[i];
j = 0;
while (j < data.length) {
component = data[j];
if (component.indexOf(priority) == 0){
data.unshift(data.splice(j, 1)[0]);
};
j++;
};
i++;
};
pre.reverse();
};
if (post.length > 0){
i = 0;
while (i < post.length) {
last = post[i];
j = 0;
while (j < data.length) {
component = data[j];
if (component.indexOf(last) == 0){
data.push(data.splice(j, 1)[0]);
};
j++;
};
i++;
};
};
return (data.join("&"));
}
public function decode(source:String):void{
var data:Array;
var prop:String;
var name:String;
var value:String;
var tmp:Array;
var i:int;
if (source == ""){
return;
};
if (source.charAt(0) == "?"){
source = source.substr(1, source.length);
};
if (source.indexOf("&") > -1){
data = source.split("&");
} else {
data = [source];
};
i = 0;
while (i < data.length) {
prop = data[i];
if (prop.indexOf("=") > -1){
tmp = prop.split("=");
name = tmp[0];
value = decodeURI(tmp[1]);
this[name] = value;
};
i++;
};
}
public function toURLVariables():URLVariables{
var urlvars:URLVariables;
var p:String;
urlvars = new URLVariables();
for (p in this) {
urlvars[p] = this[p];
};
return (urlvars);
}
}
}//package com.google.analytics.utils
Section 111
//Version (com.google.analytics.utils.Version)
package com.google.analytics.utils {
public class Version {
private var _maxBuild:uint;// = 0xFF
private var _maxMinor:uint;// = 15
private var _maxMajor:uint;// = 15
private var _revision:uint;
private var _separator:String;// = "."
private var _maxRevision:uint;// = 0xFFFF
private var _build:uint;
private var _minor:uint;
private var _major:uint;
public function Version(major:uint=0, minor:uint=0, build:uint=0, revision:uint=0){
var v:Version;
_maxMajor = 15;
_maxMinor = 15;
_maxBuild = 0xFF;
_maxRevision = 0xFFFF;
_separator = ".";
super();
if ((((((((major > _maxMajor)) && ((minor == 0)))) && ((build == 0)))) && ((revision == 0)))){
v = Version.fromNumber(major);
major = v.major;
minor = v.minor;
build = v.build;
revision = v.revision;
};
this.major = major;
this.minor = minor;
this.build = build;
this.revision = revision;
}
public function toString(fields:int=0):String{
var arr:Array;
if ((((fields <= 0)) || ((fields > 4)))){
fields = getFields();
};
switch (fields){
case 1:
arr = [major];
break;
case 2:
arr = [major, minor];
break;
case 3:
arr = [major, minor, build];
break;
case 4:
default:
arr = [major, minor, build, revision];
};
return (arr.join(_separator));
}
public function get revision():uint{
return (_revision);
}
public function set build(value:uint):void{
_build = Math.min(value, _maxBuild);
}
public function set minor(value:uint):void{
_minor = Math.min(value, _maxMinor);
}
public function get build():uint{
return (_build);
}
public function set major(value:uint):void{
_major = Math.min(value, _maxMajor);
}
public function get minor():uint{
return (_minor);
}
public function valueOf():uint{
return (((((major << 28) | (minor << 24)) | (build << 16)) | revision));
}
public function get major():uint{
return (_major);
}
public function set revision(value:uint):void{
_revision = Math.min(value, _maxRevision);
}
private function getFields():int{
var f:int;
f = 4;
if (revision == 0){
f--;
};
if ((((f == 3)) && ((build == 0)))){
f--;
};
if ((((f == 2)) && ((minor == 0)))){
f--;
};
return (f);
}
public function equals(o):Boolean{
if (!(o is Version)){
return (false);
};
if ((((((((o.major == major)) && ((o.minor == minor)))) && ((o.build == build)))) && ((o.revision == revision)))){
return (true);
};
return (false);
}
public static function fromString(value:String="", separator:String="."):Version{
var v:Version;
var values:Array;
v = new (Version);
if ((((value == "")) || ((value == null)))){
return (v);
};
if (value.indexOf(separator) > -1){
values = value.split(separator);
v.major = parseInt(values[0]);
v.minor = parseInt(values[1]);
v.build = parseInt(values[2]);
v.revision = parseInt(values[3]);
} else {
v.major = parseInt(value);
};
return (v);
}
public static function fromNumber(value:Number=0):Version{
var v:Version;
v = new (Version);
if (((((((((((isNaN(value)) || ((value == 0)))) || ((value < 0)))) || ((value == Number.MAX_VALUE)))) || ((value == Number.POSITIVE_INFINITY)))) || ((value == Number.NEGATIVE_INFINITY)))){
return (v);
};
v.major = (value >>> 28);
v.minor = ((value & 251658240) >>> 24);
v.build = ((value & 0xFF0000) >>> 16);
v.revision = (value & 0xFFFF);
return (v);
}
}
}//package com.google.analytics.utils
Section 112
//Bridge (com.google.analytics.v4.Bridge)
package com.google.analytics.v4 {
import com.google.analytics.core.*;
import com.google.analytics.debug.*;
import com.google.analytics.external.*;
public class Bridge implements GoogleAnalyticsAPI {
private var _debug:DebugConfiguration;
private var _proxy:JavascriptProxy;
private var _jsContainer:String;// = "_GATracker"
private var _hasGATracker:Boolean;// = false
private var _account:String;
private static var _linkTrackingObject_js:XML = <script>
<![CDATA[
function( container , target )
{
var targets ;
var name ;
if( target.indexOf(".") > 0 )
{
targets = target.split(".");
name = targets.pop();
}
else
{
targets = [];
name = target;
}
var ref = window;
var depth = targets.length;
for( var j = 0 ; j < depth ; j++ )
{
ref = ref[ targets[j] ] ;
}
window[container][target] = ref[name] ;
}
]]>
</script>
;
private static var _createTrackingObject_js:XML = <script>
<![CDATA[
function( acct )
{
_GATracker[acct] = _gat._getTracker(acct);
}
]]>
</script>
;
private static var _injectTrackingObject_js:XML = <script>
<![CDATA[
function()
{
try
{
_GATracker
}
catch(e)
{
_GATracker = {};
}
}
]]>
</script>
;
private static var _checkGAJS_js:XML = <script>
<![CDATA[
function()
{
if( _gat && _gat._getTracker )
{
return true;
}
return false;
}
]]>
</script>
;
private static var _checkValidTrackingObject_js:XML = <script>
<![CDATA[
function(acct)
{
if( _GATracker[acct] && (_GATracker[acct]._getAccount) )
{
return true ;
}
else
{
return false;
}
}
]]>
</script>
;
public function Bridge(account:String, debug:DebugConfiguration, jsproxy:JavascriptProxy){
var msg0:String;
var msg1:String;
var msg2:String;
_hasGATracker = false;
_jsContainer = "_GATracker";
super();
_account = account;
_debug = debug;
_proxy = jsproxy;
if (!_checkGAJS()){
msg0 = "";
msg0 = (msg0 + "ga.js not found, be sure to check if\n");
msg0 = (msg0 + "<script src=\"http://www.google-analytics.com/ga.js\"></script>\n");
msg0 = (msg0 + "is included in the HTML.");
_debug.warning(msg0);
throw (new Error(msg0));
};
if (!_hasGATracker){
if (((_debug.javascript) && (_debug.verbose))){
msg1 = "";
msg1 = (msg1 + "The Google Analytics tracking code was not found on the container page\n");
msg1 = (msg1 + "we create it");
_debug.info(msg1, VisualDebugMode.advanced);
};
_injectTrackingObject();
};
if (Utils.validateAccount(account)){
_createTrackingObject(account);
} else {
if (_checkTrackingObject(account)){
_linkTrackingObject(account);
} else {
msg2 = "";
msg2 = (msg2 + (("JS Object \"" + account) + "\" doesn't exist in DOM\n"));
msg2 = (msg2 + "Bridge object not created.");
_debug.warning(msg2);
throw (new Error(msg2));
};
};
}
public function link(targetUrl:String, useHash:Boolean=false):void{
_debug.info((((("link( " + targetUrl) + ", ") + useHash) + " )"));
_call("_link", targetUrl, useHash);
}
public function addOrganic(newOrganicEngine:String, newOrganicKeyword:String):void{
_debug.info((("addOrganic( " + [newOrganicEngine, newOrganicKeyword].join(", ")) + " )"));
_call("_addOrganic", newOrganicEngine);
}
public function setAllowLinker(enable:Boolean):void{
_debug.info((("setAllowLinker( " + enable) + " )"));
_call("_setAllowLinker", enable);
}
public function getLinkerUrl(url:String="", useHash:Boolean=false):String{
_debug.info((((("getLinkerUrl(" + url) + ", ") + useHash) + ")"));
return (_call("_getLinkerUrl", url, useHash));
}
private function _linkTrackingObject(path:String):void{
_proxy.call(_linkTrackingObject_js, _jsContainer, path);
}
public function setClientInfo(enable:Boolean):void{
_debug.info((("setClientInfo( " + enable) + " )"));
_call("_setClientInfo", enable);
}
public function trackTrans():void{
_debug.info("trackTrans()");
_call("_trackTrans");
}
public function trackPageview(pageURL:String=""):void{
_debug.info((("trackPageview( " + pageURL) + " )"));
_call("_trackPageview", pageURL);
}
public function setCookieTimeout(newDefaultTimeout:int):void{
_debug.info((("setCookieTimeout( " + newDefaultTimeout) + " )"));
_call("_setCookieTimeout", newDefaultTimeout);
}
public function trackEvent(category:String, action:String, label:String=null, value:Number=NaN):Boolean{
var param:int;
param = 2;
if (((label) && (!((label == ""))))){
param = 3;
};
if ((((param == 3)) && (!(isNaN(value))))){
param = 4;
};
switch (param){
case 4:
_debug.info((("trackEvent( " + [category, action, label, value].join(", ")) + " )"));
return (_call("_trackEvent", category, action, label, value));
case 3:
_debug.info((("trackEvent( " + [category, action, label].join(", ")) + " )"));
return (_call("_trackEvent", category, action, label));
case 2:
default:
_debug.info((("trackEvent( " + [category, action].join(", ")) + " )"));
return (_call("_trackEvent", category, action));
};
}
private function _checkValidTrackingObject(account:String):Boolean{
return (_proxy.call(_checkValidTrackingObject_js, account));
}
private function _checkGAJS():Boolean{
return (_proxy.call(_checkGAJS_js));
}
public function linkByPost(formObject:Object, useHash:Boolean=false):void{
_debug.warning((((("linkByPost( " + formObject) + ", ") + useHash) + " ) not implemented"));
}
private function _call(functionName:String, ... _args){
_args.unshift(((((("window." + _jsContainer) + "[\"") + _account) + "\"].") + functionName));
return (_proxy.call.apply(_proxy, _args));
}
public function hasGAJS():Boolean{
return (_checkGAJS());
}
private function _checkTrackingObject(account:String):Boolean{
var hasObj:Boolean;
var isTracker:Boolean;
hasObj = _proxy.hasProperty(account);
isTracker = _proxy.hasProperty((account + "._getAccount"));
return (((hasObj) && (isTracker)));
}
public function resetSession():void{
_debug.warning("resetSession() not implemented");
}
public function setDetectFlash(enable:Boolean):void{
_debug.info((("setDetectFlash( " + enable) + " )"));
_call("_setDetectFlash", enable);
}
public function getDetectTitle():Boolean{
_debug.info("getDetectTitle()");
return (_call("_getDetectTitle"));
}
public function getClientInfo():Boolean{
_debug.info("getClientInfo()");
return (_call("_getClientInfo"));
}
public function setCampNameKey(newCampNameKey:String):void{
_debug.info((("setCampNameKey( " + newCampNameKey) + " )"));
_call("_setCampNameKey", newCampNameKey);
}
public function createEventTracker(objName:String):EventTracker{
_debug.info((("createEventTracker( " + objName) + " )"));
return (new EventTracker(objName, this));
}
public function addItem(item:String, sku:String, name:String, category:String, price:Number, quantity:int):void{
_debug.info((("addItem( " + [item, sku, name, category, price, quantity].join(", ")) + " )"));
_call("_addItem", item, sku, name, category, price, quantity);
}
public function clearIgnoredOrganic():void{
_debug.info("clearIgnoredOrganic()");
_call("_clearIgnoreOrganic");
}
public function setVar(newVal:String):void{
_debug.info((("setVar( " + newVal) + " )"));
_call("_setVar", newVal);
}
public function setDomainName(newDomainName:String):void{
_debug.info((("setDomainName( " + newDomainName) + " )"));
_call("_setDomainName", newDomainName);
}
public function hasTrackingAccount(account:String):Boolean{
if (Utils.validateAccount(account)){
return (_checkValidTrackingObject(account));
};
return (_checkTrackingObject(account));
}
public function addTrans(orderId:String, affiliation:String, total:Number, tax:Number, shipping:Number, city:String, state:String, country:String):void{
_debug.info((("addTrans( " + [orderId, affiliation, total, tax, shipping, city, state, country].join(", ")) + " )"));
_call("_addTrans", orderId, affiliation, total, tax, shipping, city, state, country);
}
public function setCampSourceKey(newCampSrcKey:String):void{
_debug.info((("setCampSourceKey( " + newCampSrcKey) + " )"));
_call("_setCampSourceKey", newCampSrcKey);
}
public function setCampContentKey(newCampContentKey:String):void{
_debug.info((("setCampContentKey( " + newCampContentKey) + " )"));
_call("_setCampContentKey", newCampContentKey);
}
public function clearIgnoredRef():void{
_debug.info("clearIgnoredRef()");
_call("_clearIgnoreRef");
}
public function setLocalServerMode():void{
_debug.info("setLocalServerMode()");
_call("_setLocalServerMode");
}
public function getLocalGifPath():String{
_debug.info("getLocalGifPath()");
return (_call("_getLocalGifPath"));
}
public function setAllowAnchor(enable:Boolean):void{
_debug.info((("setAllowAnchor( " + enable) + " )"));
_call("_setAllowAnchor", enable);
}
public function setLocalGifPath(newLocalGifPath:String):void{
_debug.info((("setLocalGifPath( " + newLocalGifPath) + " )"));
_call("_setLocalGifPath", newLocalGifPath);
}
public function getVersion():String{
_debug.info("getVersion()");
return (_call("_getVersion"));
}
private function _injectTrackingObject():void{
_proxy.executeBlock(_injectTrackingObject_js);
_hasGATracker = true;
}
public function setCookiePath(newCookiePath:String):void{
_debug.info((("setCookiePath( " + newCookiePath) + " )"));
_call("_setCookiePath", newCookiePath);
}
public function setSampleRate(newRate:Number):void{
_debug.info((("setSampleRate( " + newRate) + " )"));
_call("_setSampleRate", newRate);
}
public function setAllowHash(enable:Boolean):void{
_debug.info((("setAllowHash( " + enable) + " )"));
_call("_setAllowHash", enable);
}
public function addIgnoredOrganic(newIgnoredOrganicKeyword:String):void{
_debug.info((("addIgnoredOrganic( " + newIgnoredOrganicKeyword) + " )"));
_call("_addIgnoredOrganic", newIgnoredOrganicKeyword);
}
public function setCampNOKey(newCampNOKey:String):void{
_debug.info((("setCampNOKey( " + newCampNOKey) + " )"));
_call("_setCampNOKey", newCampNOKey);
}
public function cookiePathCopy(newPath:String):void{
_debug.info((("cookiePathCopy( " + newPath) + " )"));
_call("_cookiePathCopy", newPath);
}
public function setLocalRemoteServerMode():void{
_debug.info("setLocalRemoteServerMode()");
_call("_setLocalRemoteServerMode");
}
public function getServiceMode():ServerOperationMode{
_debug.info("getServiceMode()");
return (_call("_getServiceMode"));
}
public function setDetectTitle(enable:Boolean):void{
_debug.info((("setDetectTitle( " + enable) + " )"));
_call("_setDetectTitle", enable);
}
public function setCampTermKey(newCampTermKey:String):void{
_debug.info((("setCampTermKey( " + newCampTermKey) + " )"));
_call("_setCampTermKey", newCampTermKey);
}
private function _createTrackingObject(account:String):void{
_proxy.call(_createTrackingObject_js, account);
}
public function getDetectFlash():Boolean{
_debug.info("getDetectFlash()");
return (_call("_getDetectFlash"));
}
public function setCampaignTrack(enable:Boolean):void{
_debug.info((("setCampaignTrack( " + enable) + " )"));
_call("_setCampaignTrack", enable);
}
public function clearOrganic():void{
_debug.info("clearOrganic()");
_call("_clearOrganic");
}
public function addIgnoredRef(newIgnoredReferrer:String):void{
_debug.info((("addIgnoredRef( " + newIgnoredReferrer) + " )"));
_call("_addIgnoredRef", newIgnoredReferrer);
}
public function setCampMediumKey(newCampMedKey:String):void{
_debug.info((("setCampMediumKey( " + newCampMedKey) + " )"));
_call("_setCampMediumKey", newCampMedKey);
}
public function setSessionTimeout(newTimeout:int):void{
_debug.info((("setSessionTimeout( " + newTimeout) + " )"));
_call("_setSessionTimeout", newTimeout);
}
public function setRemoteServerMode():void{
_debug.info("setRemoteServerMode()");
_call("_setRemoteServerMode");
}
public function getAccount():String{
_debug.info("getAccount()");
return (_call("_getAccount"));
}
}
}//package com.google.analytics.v4
Section 113
//Configuration (com.google.analytics.v4.Configuration)
package com.google.analytics.v4 {
import com.google.analytics.core.*;
import com.google.analytics.debug.*;
import com.google.analytics.utils.*;
import com.google.analytics.campaign.*;
public class Configuration {
public var serverMode:ServerOperationMode;
public var detectFlash:Boolean;// = true
public var allowLocalTracking:Boolean;// = true
public var secureRemoteGIFpath:String;// = "https://ssl.google-analytics.com/__utm.gif"
public var hasSiteOverlay:Boolean;// = false
private var _version:String;// = "4.3as"
public var allowDomainHash:Boolean;// = true
public var detectClientInfo:Boolean;// = true
public var idleLoop:Number;// = 30
public var isTrackOutboundSubdomains:Boolean;// = false
public var cookiePath:String;// = "/"
public var transactionFieldDelim:String;// = "|"
private var _organic:Organic;
private var _cookieName:String;// = "analytics"
public var campaignKey:CampaignKey;
public var google:String;// = "google"
public var googleCsePath:String;// = "cse"
public var bucketCapacity:Number;// = 10
private var _sampleRate:Number;// = 1
public var remoteGIFpath:String;// = "http://www.google-analytics.com/__utm.gif"
public var googleSearchParam:String;// = "q"
public var allowLinker:Boolean;// = false
public var maxOutboundLinkExamined:Number;// = 1000
private var _debug:DebugConfiguration;
private var _trackingLimitPerSession:int;// = 500
private var _domain:Domain;
public var allowAnchor:Boolean;// = false
public var tokenCliff:int;// = 10
public var sessionTimeout:Number;
public var idleTimeout:Number;// = 60
public var campaignTracking:Boolean;// = true
public var domainName:String;// = ""
public var detectTitle:Boolean;// = true
public var tokenRate:Number;// = 0.2
public var conversionTimeout:Number;
public var localGIFpath:String;// = "/__utm.gif"
public function Configuration(debug:DebugConfiguration=null){
_version = "4.3as";
_sampleRate = 1;
_trackingLimitPerSession = 500;
_organic = new Organic();
googleCsePath = "cse";
googleSearchParam = "q";
google = "google";
_cookieName = "analytics";
allowDomainHash = true;
allowAnchor = false;
allowLinker = false;
hasSiteOverlay = false;
tokenRate = 0.2;
conversionTimeout = Timespan.sixmonths;
sessionTimeout = Timespan.thirtyminutes;
idleLoop = 30;
idleTimeout = 60;
maxOutboundLinkExamined = 1000;
tokenCliff = 10;
bucketCapacity = 10;
detectClientInfo = true;
detectFlash = true;
detectTitle = true;
campaignKey = new CampaignKey();
campaignTracking = true;
isTrackOutboundSubdomains = false;
serverMode = ServerOperationMode.remote;
localGIFpath = "/__utm.gif";
remoteGIFpath = "http://www.google-analytics.com/__utm.gif";
secureRemoteGIFpath = "https://ssl.google-analytics.com/__utm.gif";
cookiePath = "/";
transactionFieldDelim = "|";
domainName = "";
allowLocalTracking = true;
super();
_debug = debug;
_domain = new Domain(DomainNameMode.auto, "", _debug);
serverMode = ServerOperationMode.remote;
_initOrganicSources();
}
public function get organic():Organic{
return (_organic);
}
public function get trackingLimitPerSession():int{
return (_trackingLimitPerSession);
}
private function _initOrganicSources():void{
addOrganicSource(google, googleSearchParam);
addOrganicSource("yahoo", "p");
addOrganicSource("msn", "q");
addOrganicSource("aol", "query");
addOrganicSource("aol", "encquery");
addOrganicSource("lycos", "query");
addOrganicSource("ask", "q");
addOrganicSource("altavista", "q");
addOrganicSource("netscape", "query");
addOrganicSource("cnn", "query");
addOrganicSource("looksmart", "qt");
addOrganicSource("about", "terms");
addOrganicSource("mamma", "query");
addOrganicSource("alltheweb", "q");
addOrganicSource("gigablast", "q");
addOrganicSource("voila", "rdata");
addOrganicSource("virgilio", "qs");
addOrganicSource("live", "q");
addOrganicSource("baidu", "wd");
addOrganicSource("alice", "qs");
addOrganicSource("yandex", "text");
addOrganicSource("najdi", "q");
addOrganicSource("aol", "q");
addOrganicSource("club-internet", "q");
addOrganicSource("mama", "query");
addOrganicSource("seznam", "q");
addOrganicSource("search", "q");
addOrganicSource("wp", "szukaj");
addOrganicSource("onet", "qt");
addOrganicSource("netsprint", "q");
addOrganicSource("google.interia", "q");
addOrganicSource("szukacz", "q");
addOrganicSource("yam", "k");
addOrganicSource("pchome", "q");
addOrganicSource("kvasir", "searchExpr");
addOrganicSource("sesam", "q");
addOrganicSource("ozu", "q");
addOrganicSource("terra", "query");
addOrganicSource("nostrum", "query");
addOrganicSource("mynet", "q");
addOrganicSource("ekolay", "q");
addOrganicSource("search.ilse", "search_for");
}
public function get sampleRate():Number{
return (_sampleRate);
}
public function get cookieName():String{
return (_cookieName);
}
public function addOrganicSource(engine:String, keyword:String):void{
var engine = engine;
var keyword = keyword;
_organic.addSource(engine, keyword);
//unresolved jump
var _slot1 = e;
if (((_debug) && (_debug.active))){
_debug.warning(_slot1.message);
};
}
public function get domain():Domain{
return (_domain);
}
public function set sampleRate(value:Number):void{
if (value <= 0){
value = 0.1;
};
if (value > 1){
value = 1;
};
value = Number(value.toFixed(2));
_sampleRate = value;
}
public function get version():String{
return (_version);
}
}
}//package com.google.analytics.v4
Section 114
//GoogleAnalyticsAPI (com.google.analytics.v4.GoogleAnalyticsAPI)
package com.google.analytics.v4 {
import com.google.analytics.core.*;
public interface GoogleAnalyticsAPI {
function setCampSourceKey(E:\projects\gameZheroNew.com\ourGames\2009\plazmatron\v3;com\google\analytics\v4;GoogleAnalyticsAPI.as:String):void;
function setCampContentKey(E:\projects\gameZheroNew.com\ourGames\2009\plazmatron\v3;com\google\analytics\v4;GoogleAnalyticsAPI.as:String):void;
function addOrganic(_arg1:String, _arg2:String):void;
function setAllowLinker(E:\projects\gameZheroNew.com\ourGames\2009\plazmatron\v3;com\google\analytics\v4;GoogleAnalyticsAPI.as:Boolean):void;
function getLinkerUrl(_arg1:String="", _arg2:Boolean=false):String;
function getLocalGifPath():String;
function clearIgnoredRef():void;
function addTrans(_arg1:String, _arg2:String, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:String, _arg7:String, _arg8:String):void;
function setCookieTimeout(E:\projects\gameZheroNew.com\ourGames\2009\plazmatron\v3;com\google\analytics\v4;GoogleAnalyticsAPI.as:int):void;
function setAllowAnchor(E:\projects\gameZheroNew.com\ourGames\2009\plazmatron\v3;com\google\analytics\v4;GoogleAnalyticsAPI.as:Boolean):void;
function trackTrans():void;
function trackEvent(_arg1:String, _arg2:String, _arg3:String=null, _arg4:Number=NaN):Boolean;
function trackPageview(E:\projects\gameZheroNew.com\ourGames\2009\plazmatron\v3;com\google\analytics\v4;GoogleAnalyticsAPI.as:String=""):void;
function setLocalGifPath(E:\projects\gameZheroNew.com\ourGames\2009\plazmatron\v3;com\google\analytics\v4;GoogleAnalyticsAPI.as:String):void;
function getVersion():String;
function setLocalServerMode():void;
function setClientInfo(E:\projects\gameZheroNew.com\ourGames\2009\plazmatron\v3;com\google\analytics\v4;GoogleAnalyticsAPI.as:Boolean):void;
function setCookiePath(E:\projects\gameZheroNew.com\ourGames\2009\plazmatron\v3;com\google\analytics\v4;GoogleAnalyticsAPI.as:String):void;
function setSampleRate(E:\projects\gameZheroNew.com\ourGames\2009\plazmatron\v3;com\google\analytics\v4;GoogleAnalyticsAPI.as:Number):void;
function linkByPost(_arg1:Object, _arg2:Boolean=false):void;
function setDetectTitle(E:\projects\gameZheroNew.com\ourGames\2009\plazmatron\v3;com\google\analytics\v4;GoogleAnalyticsAPI.as:Boolean):void;
function setLocalRemoteServerMode():void;
function addIgnoredOrganic(E:\projects\gameZheroNew.com\ourGames\2009\plazmatron\v3;com\google\analytics\v4;GoogleAnalyticsAPI.as:String):void;
function setCampNOKey(E:\projects\gameZheroNew.com\ourGames\2009\plazmatron\v3;com\google\analytics\v4;GoogleAnalyticsAPI.as:String):void;
function setAllowHash(E:\projects\gameZheroNew.com\ourGames\2009\plazmatron\v3;com\google\analytics\v4;GoogleAnalyticsAPI.as:Boolean):void;
function cookiePathCopy(E:\projects\gameZheroNew.com\ourGames\2009\plazmatron\v3;com\google\analytics\v4;GoogleAnalyticsAPI.as:String):void;
function getDetectTitle():Boolean;
function getServiceMode():ServerOperationMode;
function resetSession():void;
function getClientInfo():Boolean;
function setDetectFlash(E:\projects\gameZheroNew.com\ourGames\2009\plazmatron\v3;com\google\analytics\v4;GoogleAnalyticsAPI.as:Boolean):void;
function setCampTermKey(E:\projects\gameZheroNew.com\ourGames\2009\plazmatron\v3;com\google\analytics\v4;GoogleAnalyticsAPI.as:String):void;
function setCampNameKey(E:\projects\gameZheroNew.com\ourGames\2009\plazmatron\v3;com\google\analytics\v4;GoogleAnalyticsAPI.as:String):void;
function addItem(_arg1:String, _arg2:String, _arg3:String, _arg4:String, _arg5:Number, _arg6:int):void;
function getDetectFlash():Boolean;
function setCampaignTrack(E:\projects\gameZheroNew.com\ourGames\2009\plazmatron\v3;com\google\analytics\v4;GoogleAnalyticsAPI.as:Boolean):void;
function createEventTracker(void:String):EventTracker;
function clearOrganic():void;
function addIgnoredRef(E:\projects\gameZheroNew.com\ourGames\2009\plazmatron\v3;com\google\analytics\v4;GoogleAnalyticsAPI.as:String):void;
function setVar(E:\projects\gameZheroNew.com\ourGames\2009\plazmatron\v3;com\google\analytics\v4;GoogleAnalyticsAPI.as:String):void;
function clearIgnoredOrganic():void;
function setCampMediumKey(E:\projects\gameZheroNew.com\ourGames\2009\plazmatron\v3;com\google\analytics\v4;GoogleAnalyticsAPI.as:String):void;
function setSessionTimeout(E:\projects\gameZheroNew.com\ourGames\2009\plazmatron\v3;com\google\analytics\v4;GoogleAnalyticsAPI.as:int):void;
function setRemoteServerMode():void;
function setDomainName(E:\projects\gameZheroNew.com\ourGames\2009\plazmatron\v3;com\google\analytics\v4;GoogleAnalyticsAPI.as:String):void;
function getAccount():String;
function link(_arg1:String, _arg2:Boolean=false):void;
}
}//package com.google.analytics.v4
Section 115
//Tracker (com.google.analytics.v4.Tracker)
package com.google.analytics.v4 {
import flash.net.*;
import com.google.analytics.core.*;
import com.google.analytics.debug.*;
import com.google.analytics.utils.*;
import com.google.analytics.data.*;
import com.google.analytics.external.*;
import com.google.analytics.ecommerce.*;
import com.google.analytics.campaign.*;
public class Tracker implements GoogleAnalyticsAPI {
private const EVENT_TRACKER_LABEL_KEY_NUM:int = 3;
private const EVENT_TRACKER_VALUE_VALUE_NUM:int = 1;
private const EVENT_TRACKER_PROJECT_ID:int = 5;
private const EVENT_TRACKER_OBJECT_NAME_KEY_NUM:int = 1;
private const EVENT_TRACKER_TYPE_KEY_NUM:int = 2;
private var _adSense:AdSenseGlobals;
private var _eventTracker:X10;
private var _noSessionInformation:Boolean;// = false
private var _browserInfo:BrowserInfo;
private var _debug:DebugConfiguration;
private var _isNewVisitor:Boolean;// = false
private var _buffer:Buffer;
private var _config:Configuration;
private var _x10Module:X10;
private var _campaign:CampaignManager;
private var _formatedReferrer:String;
private var _timeStamp:Number;
private var _info:Environment;
private var _domainHash:Number;
private var _campaignInfo:CampaignInfo;
private var _gifRequest:GIFRequest;
private var _hasInitData:Boolean;// = false
private var _ecom:Ecommerce;
private var _account:String;
public function Tracker(account:String, config:Configuration, debug:DebugConfiguration, info:Environment, buffer:Buffer, gifRequest:GIFRequest, adSense:AdSenseGlobals, ecom:Ecommerce){
var msg:String;
_hasInitData = false;
_isNewVisitor = false;
_noSessionInformation = false;
super();
_account = account;
_config = config;
_debug = debug;
_info = info;
_buffer = buffer;
_gifRequest = gifRequest;
_adSense = adSense;
_ecom = ecom;
if (!Utils.validateAccount(account)){
msg = (("Account \"" + account) + "\" is not valid.");
_debug.warning(msg);
throw (new Error(msg));
};
}
private function _doTracking():Boolean{
if (((((!((_info.protocol == Protocols.file))) && (!((_info.protocol == Protocols.none))))) && (_isNotGoogleSearch()))){
return (true);
};
if (_config.allowLocalTracking){
return (true);
};
return (false);
}
public function addOrganic(newOrganicEngine:String, newOrganicKeyword:String):void{
_debug.info((("addOrganic( " + [newOrganicEngine, newOrganicKeyword].join(", ")) + " )"));
_config.organic.addSource(newOrganicEngine, newOrganicKeyword);
}
public function setAllowLinker(enable:Boolean):void{
_config.allowLinker = enable;
_debug.info((("setAllowLinker( " + _config.allowLinker) + " )"));
}
public function getLinkerUrl(targetUrl:String="", useHash:Boolean=false):String{
_initData();
_debug.info((((("getLinkerUrl( " + targetUrl) + ", ") + useHash.toString()) + " )"));
return (_buffer.getLinkerUrl(targetUrl, useHash));
}
public function trackPageview(pageURL:String=""):void{
_debug.info((("trackPageview( " + pageURL) + " )"));
if (_doTracking()){
_initData();
_trackMetrics(pageURL);
_noSessionInformation = false;
} else {
_debug.warning((("trackPageview( " + pageURL) + " ) failed"));
};
}
public function setCookieTimeout(newDefaultTimeout:int):void{
_config.conversionTimeout = newDefaultTimeout;
_debug.info((("setCookieTimeout( " + _config.conversionTimeout) + " )"));
}
public function trackTrans():void{
var i:Number;
var j:Number;
var searchStrings:Array;
var curTrans:Transaction;
_initData();
searchStrings = new Array();
if (_takeSample()){
i = 0;
while (i < _ecom.getTransLength()) {
curTrans = _ecom.getTransFromArray(i);
searchStrings.push(curTrans.toGifParams());
j = 0;
while (j < curTrans.getItemsLength()) {
searchStrings.push(curTrans.getItemFromArray(j).toGifParams());
j++;
};
i++;
};
i = 0;
while (i < searchStrings.length) {
_gifRequest.send(_account, searchStrings[i]);
i++;
};
};
}
public function trackEvent(category:String, action:String, label:String=null, value:Number=NaN):Boolean{
var success:Boolean;
var params:int;
_initData();
success = true;
params = 2;
if (((!((category == ""))) && (!((action == ""))))){
_eventTracker.clearKey(EVENT_TRACKER_PROJECT_ID);
_eventTracker.clearValue(EVENT_TRACKER_PROJECT_ID);
success = _eventTracker.setKey(EVENT_TRACKER_PROJECT_ID, EVENT_TRACKER_OBJECT_NAME_KEY_NUM, category);
success = _eventTracker.setKey(EVENT_TRACKER_PROJECT_ID, EVENT_TRACKER_TYPE_KEY_NUM, action);
if (label){
success = _eventTracker.setKey(EVENT_TRACKER_PROJECT_ID, EVENT_TRACKER_LABEL_KEY_NUM, label);
params = 3;
};
if (!isNaN(value)){
success = _eventTracker.setValue(EVENT_TRACKER_PROJECT_ID, EVENT_TRACKER_VALUE_VALUE_NUM, value);
params = 4;
};
if (success){
_debug.info(((("valid event tracking call\ncategory: " + category) + "\naction: ") + action), VisualDebugMode.geek);
_sendXEvent(_eventTracker);
};
} else {
_debug.warning(((("event tracking call is not valid, failed!\ncategory: " + category) + "\naction: ") + action), VisualDebugMode.geek);
success = false;
};
switch (params){
case 4:
_debug.info((("trackEvent( " + [category, action, label, value].join(", ")) + " )"));
break;
case 3:
_debug.info((("trackEvent( " + [category, action, label].join(", ")) + " )"));
break;
case 2:
default:
_debug.info((("trackEvent( " + [category, action].join(", ")) + " )"));
};
return (success);
}
public function setClientInfo(enable:Boolean):void{
_config.detectClientInfo = enable;
_debug.info((("setClientInfo( " + _config.detectClientInfo) + " )"));
}
public function linkByPost(formObject:Object, useHash:Boolean=false):void{
_debug.warning("linkByPost not implemented in AS3 mode");
}
private function _initData():void{
var data0:String;
var data:String;
if (!_hasInitData){
_updateDomainName();
_domainHash = _getDomainHash();
_timeStamp = Math.round((new Date().getTime() / 1000));
if (_debug.verbose){
data0 = "";
data0 = (data0 + "_initData 0");
data0 = (data0 + ("\ndomain name: " + _config.domainName));
data0 = (data0 + ("\ndomain hash: " + _domainHash));
data0 = (data0 + (((("\ntimestamp: " + _timeStamp) + " (") + new Date((_timeStamp * 1000))) + ")"));
_debug.info(data0, VisualDebugMode.geek);
};
};
if (_doTracking()){
_handleCookie();
};
if (!_hasInitData){
if (_doTracking()){
_formatedReferrer = _formatReferrer();
_browserInfo = new BrowserInfo(_config, _info);
_debug.info(("browserInfo: " + _browserInfo.toURLString()), VisualDebugMode.advanced);
if (_config.campaignTracking){
_campaign = new CampaignManager(_config, _debug, _buffer, _domainHash, _formatedReferrer, _timeStamp);
_campaignInfo = _campaign.getCampaignInformation(_info.locationSearch, _noSessionInformation);
_debug.info(("campaignInfo: " + _campaignInfo.toURLString()), VisualDebugMode.advanced);
_debug.info(("Search: " + _info.locationSearch));
_debug.info(("CampaignTrackig: " + _buffer.utmz.campaignTracking));
};
};
_x10Module = new X10();
_eventTracker = new X10();
_hasInitData = true;
};
if (_config.hasSiteOverlay){
_debug.warning("Site Overlay is not supported");
};
if (_debug.verbose){
data = "";
data = (data + "_initData (misc)");
data = (data + ("\nflash version: " + _info.flashVersion.toString(4)));
data = (data + ("\nprotocol: " + _info.protocol));
data = (data + (("\ndefault domain name (auto): \"" + _info.domainName) + "\""));
data = (data + ("\nlanguage: " + _info.language));
data = (data + ("\ndomain hash: " + _getDomainHash()));
data = (data + ("\nuser-agent: " + _info.userAgent));
_debug.info(data, VisualDebugMode.geek);
};
}
public function getDetectTitle():Boolean{
_debug.info("getDetectTitle()");
return (_config.detectTitle);
}
public function resetSession():void{
_debug.info("resetSession()");
_buffer.resetCurrentSession();
}
private function _sendXEvent(opt_xObj:X10=null):void{
var searchVariables:Variables;
var eventInfo:EventInfo;
var eventvars:Variables;
var generalvars:Variables;
if (_takeSample()){
searchVariables = new Variables();
searchVariables.URIencode = true;
eventInfo = new EventInfo(true, _x10Module, opt_xObj);
eventvars = eventInfo.toVariables();
generalvars = _renderMetricsSearchVariables();
searchVariables.join(eventvars, generalvars);
_gifRequest.send(_account, searchVariables, false, true);
};
}
public function setDetectFlash(enable:Boolean):void{
_config.detectFlash = enable;
_debug.info((("setDetectFlash( " + _config.detectFlash) + " )"));
}
public function setCampNameKey(newCampNameKey:String):void{
var msg:String;
_config.campaignKey.UCCN = newCampNameKey;
msg = (("setCampNameKey( " + _config.campaignKey.UCCN) + " )");
if (_debug.mode == VisualDebugMode.geek){
_debug.info((msg + " [UCCN]"));
} else {
_debug.info(msg);
};
}
private function _formatReferrer():String{
var referrer:String;
var domainName:String;
var ref:URL;
var dom:URL;
referrer = _info.referrer;
if ((((referrer == "")) || ((referrer == "localhost")))){
referrer = "-";
} else {
domainName = _info.domainName;
ref = new URL(referrer);
dom = new URL(("http://" + domainName));
if (ref.hostName == domainName){
return ("-");
};
if (dom.domain == ref.domain){
if (dom.subDomain != ref.subDomain){
referrer = "0";
};
};
if ((((referrer.charAt(0) == "[")) && (referrer.charAt((referrer.length - 1))))){
referrer = "-";
};
};
_debug.info(("formated referrer: " + referrer), VisualDebugMode.advanced);
return (referrer);
}
private function _visitCode():Number{
if (_debug.verbose){
_debug.info(("visitCode: " + _buffer.utma.sessionId), VisualDebugMode.geek);
};
return (_buffer.utma.sessionId);
}
public function createEventTracker(objName:String):EventTracker{
_debug.info((("createEventTracker( " + objName) + " )"));
return (new EventTracker(objName, this));
}
public function addItem(id:String, sku:String, name:String, category:String, price:Number, quantity:int):void{
var parentTrans:Transaction;
parentTrans = _ecom.getTransaction(id);
if (parentTrans == null){
parentTrans = _ecom.addTransaction(id, "", "", "", "", "", "", "");
};
parentTrans.addItem(sku, name, category, price.toString(), quantity.toString());
if (_debug.active){
_debug.info((("addItem( " + [id, sku, name, category, price, quantity].join(", ")) + " )"));
};
}
public function clearIgnoredOrganic():void{
_debug.info("clearIgnoredOrganic()");
_config.organic.clearIgnoredKeywords();
}
public function setVar(newVal:String):void{
var variables:Variables;
if (((!((newVal == ""))) && (_isNotGoogleSearch()))){
_initData();
_buffer.utmv.domainHash = _domainHash;
_buffer.utmv.value = encodeURI(newVal);
if (_debug.verbose){
_debug.info(_buffer.utmv.toString(), VisualDebugMode.geek);
};
_debug.info((("setVar( " + newVal) + " )"));
if (_takeSample()){
variables = new Variables();
variables.utmt = "var";
_gifRequest.send(_account, variables);
};
} else {
_debug.warning((("setVar \"" + newVal) + "\" is ignored"));
};
}
public function setDomainName(newDomainName:String):void{
if (newDomainName == "auto"){
_config.domain.mode = DomainNameMode.auto;
} else {
if (newDomainName == "none"){
_config.domain.mode = DomainNameMode.none;
} else {
_config.domain.mode = DomainNameMode.custom;
_config.domain.name = newDomainName;
};
};
_updateDomainName();
_debug.info((("setDomainName( " + _config.domainName) + " )"));
}
public function getClientInfo():Boolean{
_debug.info("getClientInfo()");
return (_config.detectClientInfo);
}
private function _updateDomainName():void{
var domainName:String;
if (_config.domain.mode == DomainNameMode.auto){
domainName = _info.domainName;
if (domainName.substring(0, 4) == "www."){
domainName = domainName.substring(4);
};
_config.domain.name = domainName;
};
_config.domainName = _config.domain.name.toLowerCase();
_debug.info(("domain name: " + _config.domainName), VisualDebugMode.advanced);
}
public function addTrans(orderId:String, affiliation:String, total:Number, tax:Number, shipping:Number, city:String, state:String, country:String):void{
_ecom.addTransaction(orderId, affiliation, total.toString(), tax.toString(), shipping.toString(), city, state, country);
if (_debug.active){
_debug.info((("addTrans( " + [orderId, affiliation, total, tax, shipping, city, state, country].join(", ")) + " );"));
};
}
public function setCampContentKey(newCampContentKey:String):void{
var msg:String;
_config.campaignKey.UCCT = newCampContentKey;
msg = (("setCampContentKey( " + _config.campaignKey.UCCT) + " )");
if (_debug.mode == VisualDebugMode.geek){
_debug.info((msg + " [UCCT]"));
} else {
_debug.info(msg);
};
}
private function _handleCookie():void{
var data0:String;
var data1:String;
var vid:Array;
var data2:String;
if (_config.allowLinker){
};
_buffer.createSO();
if (((_buffer.hasUTMA()) && (!(_buffer.utma.isEmpty())))){
if (((!(_buffer.hasUTMB())) || (!(_buffer.hasUTMC())))){
_buffer.updateUTMA(_timeStamp);
_noSessionInformation = true;
};
if (_debug.verbose){
_debug.info(("from cookie " + _buffer.utma.toString()), VisualDebugMode.geek);
};
} else {
_debug.info("create a new utma", VisualDebugMode.advanced);
_buffer.utma.domainHash = _domainHash;
_buffer.utma.sessionId = _getUniqueSessionId();
_buffer.utma.firstTime = _timeStamp;
_buffer.utma.lastTime = _timeStamp;
_buffer.utma.currentTime = _timeStamp;
_buffer.utma.sessionCount = 1;
if (_debug.verbose){
_debug.info(_buffer.utma.toString(), VisualDebugMode.geek);
};
_noSessionInformation = true;
_isNewVisitor = true;
};
if (((_adSense.gaGlobal) && ((_adSense.dh == String(_domainHash))))){
if (_adSense.sid){
_buffer.utma.currentTime = Number(_adSense.sid);
if (_debug.verbose){
data0 = "";
data0 = (data0 + "AdSense sid found\n");
data0 = (data0 + (((("Override currentTime(" + _buffer.utma.currentTime) + ") from AdSense sid(") + Number(_adSense.sid)) + ")"));
_debug.info(data0, VisualDebugMode.geek);
};
};
if (_isNewVisitor){
if (_adSense.sid){
_buffer.utma.lastTime = Number(_adSense.sid);
if (_debug.verbose){
data1 = "";
data1 = (data1 + "AdSense sid found (new visitor)\n");
data1 = (data1 + (((("Override lastTime(" + _buffer.utma.lastTime) + ") from AdSense sid(") + Number(_adSense.sid)) + ")"));
_debug.info(data1, VisualDebugMode.geek);
};
};
if (_adSense.vid){
vid = _adSense.vid.split(".");
_buffer.utma.sessionId = Number(vid[0]);
_buffer.utma.firstTime = Number(vid[1]);
if (_debug.verbose){
data2 = "";
data2 = (data2 + "AdSense vid found (new visitor)\n");
data2 = (data2 + (((("Override sessionId(" + _buffer.utma.sessionId) + ") from AdSense vid(") + Number(vid[0])) + ")\n"));
data2 = (data2 + (((("Override firstTime(" + _buffer.utma.firstTime) + ") from AdSense vid(") + Number(vid[1])) + ")"));
_debug.info(data2, VisualDebugMode.geek);
};
};
if (_debug.verbose){
_debug.info(("AdSense modified : " + _buffer.utma.toString()), VisualDebugMode.geek);
};
};
};
_buffer.utmb.domainHash = _domainHash;
if (isNaN(_buffer.utmb.trackCount)){
_buffer.utmb.trackCount = 0;
};
if (isNaN(_buffer.utmb.token)){
_buffer.utmb.token = _config.tokenCliff;
};
if (isNaN(_buffer.utmb.lastTime)){
_buffer.utmb.lastTime = _buffer.utma.currentTime;
};
_buffer.utmc.domainHash = _domainHash;
if (_debug.verbose){
_debug.info(_buffer.utmb.toString(), VisualDebugMode.advanced);
_debug.info(_buffer.utmc.toString(), VisualDebugMode.advanced);
};
}
public function setLocalServerMode():void{
_config.serverMode = ServerOperationMode.local;
_debug.info("setLocalServerMode()");
}
private function _renderMetricsSearchVariables(pageURL:String=""):Variables{
var variables:Variables;
var docInfo:DocumentInfo;
var campvars:Variables;
var browservars:Variables;
variables = new Variables();
variables.URIencode = true;
docInfo = new DocumentInfo(_config, _info, _formatedReferrer, pageURL, _adSense);
_debug.info(("docInfo: " + docInfo.toURLString()), VisualDebugMode.geek);
if (_config.campaignTracking){
campvars = _campaignInfo.toVariables();
};
browservars = _browserInfo.toVariables();
variables.join(docInfo.toVariables(), browservars, campvars);
return (variables);
}
public function clearIgnoredRef():void{
_debug.info("clearIgnoredRef()");
_config.organic.clearIgnoredReferrals();
}
public function setCampSourceKey(newCampSrcKey:String):void{
var msg:String;
_config.campaignKey.UCSR = newCampSrcKey;
msg = (("setCampSourceKey( " + _config.campaignKey.UCSR) + " )");
if (_debug.mode == VisualDebugMode.geek){
_debug.info((msg + " [UCSR]"));
} else {
_debug.info(msg);
};
}
public function getLocalGifPath():String{
_debug.info("getLocalGifPath()");
return (_config.localGIFpath);
}
public function setLocalGifPath(newLocalGifPath:String):void{
_config.localGIFpath = newLocalGifPath;
_debug.info((("setLocalGifPath( " + _config.localGIFpath) + " )"));
}
public function getVersion():String{
_debug.info("getVersion()");
return (_config.version);
}
public function setAllowAnchor(enable:Boolean):void{
_config.allowAnchor = enable;
_debug.info((("setAllowAnchor( " + _config.allowAnchor) + " )"));
}
private function _isNotGoogleSearch():Boolean{
var domainName:String;
var g0:Boolean;
var g1:Boolean;
var g2:Boolean;
var g4:Boolean;
domainName = _config.domainName;
g0 = (domainName.indexOf("www.google.") < 0);
g1 = (domainName.indexOf(".google.") < 0);
g2 = (domainName.indexOf("google.") < 0);
g4 = (domainName.indexOf("google.org") > -1);
return (((((((((g0) || (g1))) || (g2))) || (!((_config.cookiePath == "/"))))) || (g4)));
}
public function setSampleRate(newRate:Number):void{
if (newRate < 0){
_debug.warning("sample rate can not be negative, ignoring value.");
} else {
_config.sampleRate = newRate;
};
_debug.info((("setSampleRate( " + _config.sampleRate) + " )"));
}
private function _takeSample():Boolean{
if (_debug.verbose){
_debug.info((((("takeSample: (" + (_visitCode() % 10000)) + ") < (") + (_config.sampleRate * 10000)) + ")"), VisualDebugMode.geek);
};
return (((_visitCode() % 10000) < (_config.sampleRate * 10000)));
}
public function setCookiePath(newCookiePath:String):void{
_config.cookiePath = newCookiePath;
_debug.info((("setCookiePath( " + _config.cookiePath) + " )"));
}
public function setAllowHash(enable:Boolean):void{
_config.allowDomainHash = enable;
_debug.info((("setAllowHash( " + _config.allowDomainHash) + " )"));
}
private function _generateUserDataHash():Number{
var hash:String;
hash = "";
hash = (hash + _info.appName);
hash = (hash + _info.appVersion);
hash = (hash + _info.language);
hash = (hash + _info.platform);
hash = (hash + _info.userAgent.toString());
hash = (hash + (((_info.screenWidth + "x") + _info.screenHeight) + _info.screenColorDepth));
hash = (hash + _info.referrer);
return (Utils.generateHash(hash));
}
public function addIgnoredOrganic(newIgnoredOrganicKeyword:String):void{
_debug.info((("addIgnoredOrganic( " + newIgnoredOrganicKeyword) + " )"));
_config.organic.addIgnoredKeyword(newIgnoredOrganicKeyword);
}
public function setLocalRemoteServerMode():void{
_config.serverMode = ServerOperationMode.both;
_debug.info("setLocalRemoteServerMode()");
}
public function cookiePathCopy(newPath:String):void{
_debug.warning((("cookiePathCopy( " + newPath) + " ) not implemented"));
}
public function setDetectTitle(enable:Boolean):void{
_config.detectTitle = enable;
_debug.info((("setDetectTitle( " + _config.detectTitle) + " )"));
}
public function setCampTermKey(newCampTermKey:String):void{
var msg:String;
_config.campaignKey.UCTR = newCampTermKey;
msg = (("setCampTermKey( " + _config.campaignKey.UCTR) + " )");
if (_debug.mode == VisualDebugMode.geek){
_debug.info((msg + " [UCTR]"));
} else {
_debug.info(msg);
};
}
public function getServiceMode():ServerOperationMode{
_debug.info("getServiceMode()");
return (_config.serverMode);
}
public function setCampNOKey(newCampNOKey:String):void{
var msg:String;
_config.campaignKey.UCNO = newCampNOKey;
msg = (("setCampNOKey( " + _config.campaignKey.UCNO) + " )");
if (_debug.mode == VisualDebugMode.geek){
_debug.info((msg + " [UCNO]"));
} else {
_debug.info(msg);
};
}
private function _trackMetrics(pageURL:String=""):void{
var searchVariables:Variables;
var x10vars:Variables;
var generalvars:Variables;
var eventInfo:EventInfo;
if (_takeSample()){
searchVariables = new Variables();
searchVariables.URIencode = true;
if (((_x10Module) && (_x10Module.hasData()))){
eventInfo = new EventInfo(false, _x10Module);
x10vars = eventInfo.toVariables();
};
generalvars = _renderMetricsSearchVariables(pageURL);
searchVariables.join(x10vars, generalvars);
_gifRequest.send(_account, searchVariables);
};
}
public function setCampaignTrack(enable:Boolean):void{
_config.campaignTracking = enable;
_debug.info((("setCampaignTrack( " + _config.campaignTracking) + " )"));
}
public function addIgnoredRef(newIgnoredReferrer:String):void{
_debug.info((("addIgnoredRef( " + newIgnoredReferrer) + " )"));
_config.organic.addIgnoredReferral(newIgnoredReferrer);
}
public function clearOrganic():void{
_debug.info("clearOrganic()");
_config.organic.clearEngines();
}
public function getDetectFlash():Boolean{
_debug.info("getDetectFlash()");
return (_config.detectFlash);
}
public function setCampMediumKey(newCampMedKey:String):void{
var msg:String;
_config.campaignKey.UCMD = newCampMedKey;
msg = (("setCampMediumKey( " + _config.campaignKey.UCMD) + " )");
if (_debug.mode == VisualDebugMode.geek){
_debug.info((msg + " [UCMD]"));
} else {
_debug.info(msg);
};
}
private function _getUniqueSessionId():Number{
var sessionID:Number;
sessionID = ((Utils.generate32bitRandom() ^ _generateUserDataHash()) * 2147483647);
_debug.info(("Session ID: " + sessionID), VisualDebugMode.geek);
return (sessionID);
}
private function _getDomainHash():Number{
if (((((!(_config.domainName)) || ((_config.domainName == "")))) || ((_config.domain.mode == DomainNameMode.none)))){
_config.domainName = "";
return (1);
};
_updateDomainName();
if (_config.allowDomainHash){
return (Utils.generateHash(_config.domainName));
};
return (1);
}
public function setSessionTimeout(newTimeout:int):void{
_config.sessionTimeout = newTimeout;
_debug.info((("setSessionTimeout( " + _config.sessionTimeout) + " )"));
}
public function getAccount():String{
_debug.info("getAccount()");
return (_account);
}
public function link(targetUrl:String, useHash:Boolean=false):void{
var out:String;
var request:URLRequest;
var targetUrl = targetUrl;
var useHash = useHash;
_initData();
out = _buffer.getLinkerUrl(targetUrl, useHash);
request = new URLRequest(out);
_debug.info((("link( " + [targetUrl, useHash].join(",")) + " )"));
navigateToURL(request, "_top");
//unresolved jump
var _slot1 = e;
_debug.warning(("An error occured in link() msg: " + _slot1.message));
}
public function setRemoteServerMode():void{
_config.serverMode = ServerOperationMode.remote;
_debug.info("setRemoteServerMode()");
}
}
}//package com.google.analytics.v4
Section 116
//AnalyticsTracker (com.google.analytics.AnalyticsTracker)
package com.google.analytics {
import flash.events.*;
import com.google.analytics.v4.*;
import com.google.analytics.debug.*;
public interface AnalyticsTracker extends GoogleAnalyticsAPI, IEventDispatcher {
function set config(E:\projects\gameZheroNew.com\ourGames\2009\plazmatron\v3;com\google\analytics;AnalyticsTracker.as:Configuration):void;
function isReady():Boolean;
function get mode():String;
function get account():String;
function set mode(E:\projects\gameZheroNew.com\ourGames\2009\plazmatron\v3;com\google\analytics;AnalyticsTracker.as:String):void;
function set debug(E:\projects\gameZheroNew.com\ourGames\2009\plazmatron\v3;com\google\analytics;AnalyticsTracker.as:DebugConfiguration):void;
function get config():Configuration;
function get debug():DebugConfiguration;
function set account(E:\projects\gameZheroNew.com\ourGames\2009\plazmatron\v3;com\google\analytics;AnalyticsTracker.as:String):void;
function get visualDebug():Boolean;
function set visualDebug(E:\projects\gameZheroNew.com\ourGames\2009\plazmatron\v3;com\google\analytics;AnalyticsTracker.as:Boolean):void;
}
}//package com.google.analytics
Section 117
//API (com.google.analytics.API)
package com.google.analytics {
import com.google.analytics.utils.*;
public class API {
public static var version:Version = new Version();
public function API(){
super();
}
version.major = 1;
version.minor = 0;
version.build = 1;
version.revision = "$Rev: 319 $ ".split(" ")[1];
}
}//package com.google.analytics
Section 118
//GATracker (com.google.analytics.GATracker)
package com.google.analytics {
import flash.events.*;
import flash.display.*;
import com.google.analytics.core.*;
import com.google.analytics.v4.*;
import com.google.analytics.debug.*;
import com.google.analytics.utils.*;
import com.google.analytics.external.*;
import com.google.analytics.events.*;
public class GATracker implements AnalyticsTracker {
private var _adSense:AdSenseGlobals;
private var _env:Environment;
private var _visualDebug:Boolean;
private var _idleTimer:IdleTimer;
private var _debug:DebugConfiguration;
private var _buffer:Buffer;
private var _config:Configuration;
private var _mode:String;
private var _display:DisplayObject;
private var _jsproxy:JavascriptProxy;
private var _dom:HTMLDOM;
private var _eventDispatcher:EventDispatcher;
private var _ready:Boolean;// = false
private var _gifRequest:GIFRequest;
private var _ecom:Ecommerce;
private var _account:String;
private var _tracker:GoogleAnalyticsAPI;
public static var version:Version = API.version;
public static var autobuild:Boolean = true;
public function GATracker(display:DisplayObject, account:String, mode:String="AS3", visualDebug:Boolean=false, config:Configuration=null, debug:DebugConfiguration=null){
_ready = false;
super();
_display = display;
_eventDispatcher = new EventDispatcher(this);
_tracker = new TrackerCache();
this.account = account;
this.mode = mode;
this.visualDebug = visualDebug;
if (!debug){
this.debug = new DebugConfiguration();
};
if (!config){
this.config = new Configuration(debug);
};
if (autobuild){
_factory();
};
}
public function link(targetUrl:String, useHash:Boolean=false):void{
_tracker.link(targetUrl, useHash);
}
public function addOrganic(newOrganicEngine:String, newOrganicKeyword:String):void{
_tracker.addOrganic(newOrganicEngine, newOrganicKeyword);
}
public function setAllowLinker(enable:Boolean):void{
_tracker.setAllowLinker(enable);
}
public function getLinkerUrl(url:String="", useHash:Boolean=false):String{
return (_tracker.getLinkerUrl(url, useHash));
}
public function trackEvent(category:String, action:String, label:String=null, value:Number=NaN):Boolean{
return (_tracker.trackEvent(category, action, label, value));
}
public function setCookieTimeout(newDefaultTimeout:int):void{
_tracker.setCookieTimeout(newDefaultTimeout);
}
public function trackTrans():void{
_tracker.trackTrans();
}
public function trackPageview(pageURL:String=""):void{
_tracker.trackPageview(pageURL);
}
public function getClientInfo():Boolean{
return (_tracker.getClientInfo());
}
public function setClientInfo(enable:Boolean):void{
_tracker.setClientInfo(enable);
}
public function get account():String{
return (_account);
}
public function linkByPost(formObject:Object, useHash:Boolean=false):void{
_tracker.linkByPost(formObject, useHash);
}
public function getDetectTitle():Boolean{
return (_tracker.getDetectTitle());
}
public function dispatchEvent(event:Event):Boolean{
return (_eventDispatcher.dispatchEvent(event));
}
public function get config():Configuration{
return (_config);
}
public function set mode(value:String):void{
_mode = value;
}
public function removeEventListener(type:String, listener:Function, useCapture:Boolean=false):void{
_eventDispatcher.removeEventListener(type, listener, useCapture);
}
public function setDetectFlash(enable:Boolean):void{
_tracker.setDetectFlash(enable);
}
public function resetSession():void{
_tracker.resetSession();
}
public function setCampNameKey(newCampNameKey:String):void{
_tracker.setCampNameKey(newCampNameKey);
}
public function get debug():DebugConfiguration{
return (_debug);
}
public function addItem(item:String, sku:String, name:String, category:String, price:Number, quantity:int):void{
_tracker.addItem(item, sku, name, category, price, quantity);
}
private function _bridgeFactory():GoogleAnalyticsAPI{
debug.info(((("GATracker (Bridge) v" + version) + "\naccount: ") + account));
return (new Bridge(account, _debug, _jsproxy));
}
public function addEventListener(type:String, listener:Function, useCapture:Boolean=false, priority:int=0, useWeakReference:Boolean=false):void{
_eventDispatcher.addEventListener(type, listener, useCapture, priority, useWeakReference);
}
public function clearIgnoredOrganic():void{
_tracker.clearIgnoredOrganic();
}
public function set account(value:String):void{
_account = value;
}
public function setVar(newVal:String):void{
_tracker.setVar(newVal);
}
public function build():void{
if (!isReady()){
_factory();
};
}
public function setDomainName(newDomainName:String):void{
_tracker.setDomainName(newDomainName);
}
public function createEventTracker(objName:String):EventTracker{
return (_tracker.createEventTracker(objName));
}
public function set config(value:Configuration):void{
_config = value;
}
public function addTrans(orderId:String, affiliation:String, total:Number, tax:Number, shipping:Number, city:String, state:String, country:String):void{
_tracker.addTrans(orderId, affiliation, total, tax, shipping, city, state, country);
}
public function setCampSourceKey(newCampSrcKey:String):void{
_tracker.setCampSourceKey(newCampSrcKey);
}
public function setCampContentKey(newCampContentKey:String):void{
_tracker.setCampContentKey(newCampContentKey);
}
public function willTrigger(type:String):Boolean{
return (_eventDispatcher.willTrigger(type));
}
public function setLocalServerMode():void{
_tracker.setLocalServerMode();
}
public function isReady():Boolean{
return (_ready);
}
public function getLocalGifPath():String{
return (_tracker.getLocalGifPath());
}
public function setAllowAnchor(enable:Boolean):void{
_tracker.setAllowAnchor(enable);
}
public function clearIgnoredRef():void{
_tracker.clearIgnoredRef();
}
public function get mode():String{
return (_mode);
}
public function set debug(value:DebugConfiguration):void{
_debug = value;
}
public function setLocalGifPath(newLocalGifPath:String):void{
_tracker.setLocalGifPath(newLocalGifPath);
}
public function getVersion():String{
return (_tracker.getVersion());
}
public function setSampleRate(newRate:Number):void{
_tracker.setSampleRate(newRate);
}
public function setCookiePath(newCookiePath:String):void{
_tracker.setCookiePath(newCookiePath);
}
public function setAllowHash(enable:Boolean):void{
_tracker.setAllowHash(enable);
}
public function setCampNOKey(newCampNOKey:String):void{
_tracker.setCampNOKey(newCampNOKey);
}
public function addIgnoredOrganic(newIgnoredOrganicKeyword:String):void{
_tracker.addIgnoredOrganic(newIgnoredOrganicKeyword);
}
public function setLocalRemoteServerMode():void{
_tracker.setLocalRemoteServerMode();
}
public function cookiePathCopy(newPath:String):void{
_tracker.cookiePathCopy(newPath);
}
private function _factory():void{
var activeTracker:GoogleAnalyticsAPI;
var cache:TrackerCache;
_jsproxy = new JavascriptProxy(debug);
if (visualDebug){
debug.layout = new Layout(debug, _display);
debug.active = visualDebug;
};
cache = (_tracker as TrackerCache);
switch (mode){
case TrackerMode.BRIDGE:
activeTracker = _bridgeFactory();
break;
case TrackerMode.AS3:
default:
activeTracker = _trackerFactory();
};
if (!cache.isEmpty()){
cache.tracker = activeTracker;
cache.flush();
};
_tracker = activeTracker;
_ready = true;
dispatchEvent(new AnalyticsEvent(AnalyticsEvent.READY, this));
}
public function setCampTermKey(newCampTermKey:String):void{
_tracker.setCampTermKey(newCampTermKey);
}
private function _trackerFactory():GoogleAnalyticsAPI{
debug.info(((("GATracker (AS3) v" + version) + "\naccount: ") + account));
_adSense = new AdSenseGlobals(debug);
_dom = new HTMLDOM(debug);
_dom.cacheProperties();
_env = new Environment("", "", "", debug, _dom);
_buffer = new Buffer(config, debug, false);
_gifRequest = new GIFRequest(config, debug, _buffer, _env);
_idleTimer = new IdleTimer(config, debug, _display, _buffer);
_ecom = new Ecommerce(_debug);
_env.url = _display.stage.loaderInfo.url;
return (new Tracker(account, config, debug, _env, _buffer, _gifRequest, _adSense, _ecom));
}
public function setDetectTitle(enable:Boolean):void{
_tracker.setDetectTitle(enable);
}
public function setCampaignTrack(enable:Boolean):void{
_tracker.setCampaignTrack(enable);
}
public function clearOrganic():void{
_tracker.clearOrganic();
}
public function addIgnoredRef(newIgnoredReferrer:String):void{
_tracker.addIgnoredRef(newIgnoredReferrer);
}
public function getServiceMode():ServerOperationMode{
return (_tracker.getServiceMode());
}
public function set visualDebug(value:Boolean):void{
_visualDebug = value;
}
public function setCampMediumKey(newCampMedKey:String):void{
_tracker.setCampMediumKey(newCampMedKey);
}
public function setSessionTimeout(newTimeout:int):void{
_tracker.setSessionTimeout(newTimeout);
}
public function getDetectFlash():Boolean{
return (_tracker.getDetectFlash());
}
public function get visualDebug():Boolean{
return (_visualDebug);
}
public function getAccount():String{
return (_tracker.getAccount());
}
public function hasEventListener(type:String):Boolean{
return (_eventDispatcher.hasEventListener(type));
}
public function setRemoteServerMode():void{
_tracker.setRemoteServerMode();
}
}
var _local1:* = ServerOperationMode;
return (_local1);
}//package com.google.analytics
Section 119
//KongregateEvent (com.kongregate.as3.client.events.KongregateEvent)
package com.kongregate.as3.client.events {
import flash.events.*;
public class KongregateEvent extends Event {
public static const COMPLETE:String = "component_api_available";
public function KongregateEvent(_arg1:String){
super(_arg1);
}
}
}//package com.kongregate.as3.client.events
Section 120
//AbstractShadowService (com.kongregate.as3.client.services.AbstractShadowService)
package com.kongregate.as3.client.services {
import flash.events.*;
public class AbstractShadowService extends EventDispatcher {
protected function alert(_arg1:String, _arg2:String, _arg3="", _arg4:String=""):void{
trace(((((((("Kongregate API: " + _arg1) + ".") + _arg2) + "(") + _arg3) + ") ") + _arg4));
}
}
}//package com.kongregate.as3.client.services
Section 121
//HighScoreServiceShadow (com.kongregate.as3.client.services.HighScoreServiceShadow)
package com.kongregate.as3.client.services {
public class HighScoreServiceShadow extends AbstractShadowService implements IHighScoreServices {
private var mode:String;
public function HighScoreServiceShadow(){
mode = "";
}
public function submit(_arg1:Number, _arg2:String=null):void{
alert("IHighScoreServices", "submit", arguments);
}
public function connect():Boolean{
alert("IKongregateServices", "connect");
return (true);
}
public function requestList(_arg1:Function):void{
alert("IHighScoreServices", "requestList", "", (("[Mode: " + mode) + "]"));
_arg1({success:false});
}
public function setMode(_arg1:String):void{
alert("IHighScoreServices", "setMode", arguments);
this.mode = _arg1;
}
}
}//package com.kongregate.as3.client.services
Section 122
//IHighScoreServices (com.kongregate.as3.client.services.IHighScoreServices)
package com.kongregate.as3.client.services {
public interface IHighScoreServices {
function setMode(_arg1:String):void;
function submit(_arg1:Number, _arg2:String=null):void;
function requestList(_arg1:Function):void;
}
}//package com.kongregate.as3.client.services
Section 123
//IKongregateServices (com.kongregate.as3.client.services.IKongregateServices)
package com.kongregate.as3.client.services {
import flash.events.*;
public interface IKongregateServices extends IEventDispatcher {
function getPlayerInfo(_arg1:Function):void;
function connect(_arg1:Number=-1):Boolean;
}
}//package com.kongregate.as3.client.services
Section 124
//IStatServices (com.kongregate.as3.client.services.IStatServices)
package com.kongregate.as3.client.services {
public interface IStatServices {
function submitArray(_arg1:Array):void;
function submit(_arg1:String, _arg2:Number):void;
}
}//package com.kongregate.as3.client.services
Section 125
//IUserServices (com.kongregate.as3.client.services.IUserServices)
package com.kongregate.as3.client.services {
public interface IUserServices {
function getName():String;
function getPlayerInfo(_arg1:Function):void;
}
}//package com.kongregate.as3.client.services
Section 126
//KongregateServiceShadow (com.kongregate.as3.client.services.KongregateServiceShadow)
package com.kongregate.as3.client.services {
public class KongregateServiceShadow extends AbstractShadowService implements IKongregateServices {
public function getName():String{
alert("IKongregateServices", "getName");
return ("Guest");
}
public function connect(_arg1:Number=-1):Boolean{
alert("IKongregateServices", "connect", arguments);
return (true);
}
public function getPlayerInfo(_arg1:Function):void{
alert("IKongregateServices", "getPlayerInfo");
_arg1(new Object());
}
}
}//package com.kongregate.as3.client.services
Section 127
//StatServiceShadow (com.kongregate.as3.client.services.StatServiceShadow)
package com.kongregate.as3.client.services {
public class StatServiceShadow extends AbstractShadowService implements IStatServices {
public function submitArray(_arg1:Array):void{
alert("IStatServices", "submitArray", arguments);
}
public function submit(_arg1:String, _arg2:Number):void{
alert("IStatServices", "submitStat", arguments);
}
}
}//package com.kongregate.as3.client.services
Section 128
//UserServiceShadow (com.kongregate.as3.client.services.UserServiceShadow)
package com.kongregate.as3.client.services {
public class UserServiceShadow extends AbstractShadowService implements IUserServices {
public function getName():String{
alert("UserService", "getName");
return ("Guest");
}
public function getPlayerInfo(_arg1:Function):void{
alert("UserService", "getPlayerInfo");
_arg1({isGuest:true, name:"Guest", points:0, level:0, isMode:false, isAdmin:false, isDeveloper:false, avatarPath:"", chatAvatarPath:""});
}
}
}//package com.kongregate.as3.client.services
Section 129
//IAPIBootstrap (com.kongregate.as3.client.IAPIBootstrap)
package com.kongregate.as3.client {
import flash.events.*;
import flash.display.*;
public interface IAPIBootstrap {
function init(_arg1:Event=null, _arg2:Stage=null):void;
function hideLog():void;
function showLog(_arg1:int=0):void;
}
}//package com.kongregate.as3.client
Section 130
//KongregateAPI (com.kongregate.as3.client.KongregateAPI)
package com.kongregate.as3.client {
import flash.events.*;
import flash.display.*;
import flash.net.*;
import flash.utils.*;
import com.kongregate.as3.client.services.*;
import com.kongregate.as3.client.events.*;
import flash.system.*;
import flash.errors.*;
public class KongregateAPI extends Sprite {
private const VERSION:Number = 1;
private var loader:Loader;
private var loadedDomain:ApplicationDomain;
private static const CLASS_USER:String = "com.kongregate.as3.client.services.UserServices";
private static const CLASS_STATS:String = "com.kongregate.as3.client.services.StatServices";
private static const CLASS_SERVICES:String = "com.kongregate.as3.client.services.KongregateServices";
private static const CLASS_SCORES:String = "com.kongregate.as3.client.services.HighScoreServices";
private static const DEBUG_API_URL:String = "//Linuxpc/kongregate/public/flash/API_AS3.swf";
private static var _connected:Boolean;
private static var kUser:IUserServices;
private static var _loaded:Boolean;
private static var kServices:IKongregateServices;
private static var kScores:IHighScoreServices;
private static var mInstance:KongregateAPI;
private static var kStats:IStatServices;
private static var kAPI:IAPIBootstrap;
public function KongregateAPI(){
if (mInstance != null){
throw (new Error("Warning: KongregateAPI has been added to stage more than once or accessed improperly. Use getInstance() or a stage reference to access."));
};
mInstance = this;
this.addEventListener(Event.ADDED_TO_STAGE, init, false, 0, true);
}
public function get loaded():Boolean{
return (_loaded);
}
public function get connected():Boolean{
return (_connected);
}
private function alertConnected(_arg1:TimerEvent=null):void{
var _local2:KongregateEvent;
var _local3:Boolean;
_local2 = new KongregateEvent(KongregateEvent.COMPLETE);
_local3 = this.dispatchEvent(_local2);
}
private function init(_arg1:Event):void{
var _local2:Object;
var _local3:String;
var _local4:URLRequest;
var _local5:LoaderContext;
this.removeEventListener(Event.ADDED_TO_STAGE, init);
_loaded = false;
_connected = false;
_local2 = LoaderInfo(root.loaderInfo).parameters;
_local3 = _local2.api_path;
if (_local3 == null){
trace("Alert: Kongregate API could not be loaded, due to local testing. API will load when the game is uploaded.");
createShadowServices();
return;
};
Security.allowDomain("*.kongregate.com");
Security.allowDomain("kongregatetrunk.com");
_local4 = new URLRequest(_local3);
_local5 = new LoaderContext(false);
_local5.applicationDomain = ApplicationDomain.currentDomain;
_local5.securityDomain = SecurityDomain.currentDomain;
loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete);
loader.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
loader.load(_local4, _local5);
}
public function get api():IAPIBootstrap{
return (kAPI);
}
private function loadComplete(_arg1:Event):void{
getServices();
}
public function get scores():IHighScoreServices{
return (kScores);
}
private function ioErrorHandler(_arg1:IOErrorEvent):void{
throw (new IOError(("API file not found. " + _arg1)));
}
public function get services():IKongregateServices{
return (kServices);
}
public function get stats():IStatServices{
return (kStats);
}
private function createShadowServices():void{
var _local1:Timer;
trace(">>> Kongregate Shadow Services instantiated for local development..");
kServices = new KongregateServiceShadow();
kScores = new HighScoreServiceShadow();
kStats = new StatServiceShadow();
kUser = new UserServiceShadow();
_local1 = new Timer(200, 1);
_local1.addEventListener(TimerEvent.TIMER_COMPLETE, alertConnected);
_local1.start();
_connected = true;
}
public function get user():IUserServices{
return (kUser);
}
private function getServices():void{
var _local1:ApplicationDomain;
var _local2:*;
var _local3:*;
var _local4:*;
var _local5:*;
_local1 = ApplicationDomain.currentDomain;
kAPI = IAPIBootstrap(loader.getChildAt(0));
this.addChild(loader);
_local2 = _local1.getDefinition(CLASS_SERVICES);
trace(_local2);
kServices = _local2.getInstance();
_local3 = _local1.getDefinition(CLASS_SCORES);
kScores = _local3.getInstance();
_local4 = _local1.getDefinition(CLASS_STATS);
kStats = _local4.getInstance();
_local5 = _local1.getDefinition(CLASS_USER);
kUser = _local5.getInstance();
kServices.connect(VERSION);
_loaded = true;
_connected = true;
alertConnected();
}
public static function getInstance():KongregateAPI{
if (!mInstance){
throw (new IllegalOperationError("You must add the Kongregate API component to the stage before attempting to access it."));
};
return (mInstance);
}
}
}//package com.kongregate.as3.client
Section 131
//AutoLayoutEvent (fl.video.AutoLayoutEvent)
package fl.video {
import flash.events.*;
import flash.geom.*;
public class AutoLayoutEvent extends LayoutEvent implements IVPEvent {
private var _vp:uint;
public static const AUTO_LAYOUT:String = "autoLayout";
public function AutoLayoutEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false, _arg4:Rectangle=null, _arg5:Rectangle=null, _arg6:uint=0){
super(_arg1, _arg2, _arg3, _arg4, _arg5);
_vp = _arg6;
}
override public function clone():Event{
return (new AutoLayoutEvent(type, bubbles, cancelable, Rectangle(oldBounds.clone()), Rectangle(oldRegistrationBounds.clone()), vp));
}
public function set vp(_arg1:uint):void{
_vp = _arg1;
}
public function get vp():uint{
return (_vp);
}
}
}//package fl.video
Section 132
//ConnectClient (fl.video.ConnectClient)
package fl.video {
import flash.net.*;
public class ConnectClient {
public var connIndex:uint;
public var nc:NetConnection;
public var pending:Boolean;
public var owner:NCManager;
public function ConnectClient(_arg1:NCManager, _arg2:NetConnection, _arg3:uint=0){
this.owner = _arg1;
this.nc = _arg2;
this.connIndex = _arg3;
this.pending = false;
}
public function onBWCheck(... _args):Number{
return (++owner._payload);
}
public function onBWDone(... _args):void{
var _local2:Number;
if (_args.length > 0){
_local2 = _args[0];
};
owner.onConnected(nc, _local2);
}
public function close():void{
}
}
}//package fl.video
Section 133
//ControlData (fl.video.ControlData)
package fl.video {
import flash.display.*;
public class ControlData {
public var state_mc:Array;
public var origWidth:Number;
public var handle_mc:Sprite;
public var state:uint;
public var leftMargin:Number;
public var fullness_mc:DisplayObject;
public var isDragging:Boolean;
public var currentState_mc:DisplayObject;
public var percentage:Number;
public var owner:DisplayObject;
public var origX:Number;
public var origY:Number;
public var bottomMargin:Number;
public var disabled_mc:DisplayObject;
public var enabled:Boolean;
public var hit_mc:Sprite;
public var origHeight:Number;
public var index:int;
public var mask_mc:DisplayObject;
public var avatar:DisplayObject;
public var fill_mc:DisplayObject;
public var topMargin:Number;
public var uiMgr:UIManager;
public var progress_mc:DisplayObject;
public var rightMargin:Number;
public var ctrl:DisplayObject;
public var origScaleX:Number;
public var origScaleY:Number;
public function ControlData(_arg1:UIManager, _arg2:DisplayObject, _arg3:DisplayObject, _arg4:int){
var uiMgr = _arg1;
var ctrl = _arg2;
var owner = _arg3;
var index = _arg4;
super();
this.uiMgr = uiMgr;
this.index = index;
this.ctrl = ctrl;
this.owner = owner;
try {
ctrl["uiMgr"] = uiMgr;
} catch(re:ReferenceError) {
};
}
}
}//package fl.video
Section 134
//CuePointManager (fl.video.CuePointManager)
package fl.video {
public class CuePointManager {
flvplayback_internal var _disabledCuePointsByNameOnly:Object;
flvplayback_internal var navCuePoints:Array;
flvplayback_internal var allCuePoints:Array;
flvplayback_internal var _disabledCuePoints:Array;
flvplayback_internal var _asCuePointTolerance:Number;
flvplayback_internal var _linearSearchTolerance:Number;
flvplayback_internal var _asCuePointIndex:int;
flvplayback_internal var asCuePoints:Array;
flvplayback_internal var flvCuePoints:Array;
flvplayback_internal var _metadataLoaded:Boolean;
flvplayback_internal var _id:uint;
private var _owner:FLVPlayback;
flvplayback_internal var eventCuePoints:Array;
public static const SHORT_VERSION:String = "2.1";
public static const VERSION:String = "2.1.0.14";
flvplayback_internal static const DEFAULT_LINEAR_SEARCH_TOLERANCE:Number = 50;
flvplayback_internal static var cuePointsReplace:Array = [""", "\"", "'", "'", ",", ",", "&", "&"];
public function CuePointManager(_arg1:FLVPlayback, _arg2:uint){
_owner = _arg1;
_id = _arg2;
reset();
_asCuePointTolerance = (_owner.getVideoPlayer(_id).playheadUpdateInterval / 2000);
_linearSearchTolerance = DEFAULT_LINEAR_SEARCH_TOLERANCE;
}
flvplayback_internal function getCuePoint(_arg1:Array, _arg2:Boolean, _arg3):Object{
var _local4:Object;
var _local5:int;
switch (typeof(_arg3)){
case "string":
_local4 = {name:_arg3};
break;
case "number":
_local4 = {time:_arg3};
break;
case "object":
_local4 = _arg3;
break;
};
_local5 = getCuePointIndex(_arg1, _arg2, _local4.time, _local4.name);
if (_local5 < 0){
return (null);
};
_local4 = deepCopyObject(_arg1[_local5]);
_local4.array = _arg1;
_local4.index = _local5;
return (_local4);
}
public function resetASCuePointIndex(_arg1:Number):void{
var _local2:int;
if ((((_arg1 <= 0)) || ((asCuePoints == null)))){
_asCuePointIndex = 0;
return;
};
_local2 = getCuePointIndex(asCuePoints, true, _arg1);
_asCuePointIndex = ((asCuePoints[_local2].time)<_arg1) ? (_local2 + 1) : _local2;
}
public function set playheadUpdateInterval(_arg1:Number):void{
_asCuePointTolerance = (_arg1 / 2000);
}
flvplayback_internal function addOrDisable(_arg1:Boolean, _arg2:Object):void{
if (_arg1){
if (_arg2.type == CuePointType.ACTIONSCRIPT){
throw (new VideoError(VideoError.ILLEGAL_CUE_POINT, "Cannot disable actionscript cue points"));
};
setFLVCuePointEnabled(false, _arg2);
} else {
if (_arg2.type == CuePointType.ACTIONSCRIPT){
addASCuePoint(_arg2);
};
};
}
public function processFLVCuePoints(_arg1:Array):void{
var _local2:int;
var _local3:Number;
var _local4:Object;
var _local5:Array;
var _local6:Number;
var _local7:int;
_metadataLoaded = true;
if ((((_arg1 == null)) || ((_arg1.length < 1)))){
flvCuePoints = null;
navCuePoints = null;
eventCuePoints = null;
return;
};
flvCuePoints = _arg1;
navCuePoints = new Array();
eventCuePoints = new Array();
_local3 = -1;
_local5 = _disabledCuePoints;
_local6 = 0;
_disabledCuePoints = new Array();
_local7 = 0;
while ((_local4 = flvCuePoints[_local7++]) != undefined) {
if ((((_local3 > 0)) && ((_local3 >= _local4.time)))){
flvCuePoints = null;
navCuePoints = null;
eventCuePoints = null;
_disabledCuePoints = new Array();
_disabledCuePointsByNameOnly = new Object();
throw (new VideoError(VideoError.ILLEGAL_CUE_POINT, ("Unsorted cuePoint found after time: " + _local3)));
};
_local3 = _local4.time;
while ((((_local6 < _local5.length)) && ((cuePointCompare(_local5[_local6].time, null, _local4) < 0)))) {
_local6++;
};
if (((!((_disabledCuePointsByNameOnly[_local4.name] == undefined))) || ((((_local6 < _local5.length)) && ((cuePointCompare(_local5[_local6].time, _local5[_local6].name, _local4) == 0)))))){
_disabledCuePoints.push({time:_local4.time, name:_local4.name});
};
if (_local4.type == CuePointType.NAVIGATION){
navCuePoints.push(_local4);
} else {
if (_local4.type == CuePointType.EVENT){
eventCuePoints.push(_local4);
};
};
if ((((allCuePoints == null)) || ((allCuePoints.length < 1)))){
allCuePoints = new Array();
allCuePoints.push(_local4);
} else {
_local2 = getCuePointIndex(allCuePoints, true, _local4.time);
_local2 = ((allCuePoints[_local2].time)>_local4.time) ? 0 : (_local2 + 1);
allCuePoints.splice(_local2, 0, _local4);
};
};
_disabledCuePointsByNameOnly = new Object();
}
public function addASCuePoint(_arg1, _arg2:String=null, _arg3:Object=null):Object{
var _local4:Object;
var _local5:Boolean;
var _local6:Boolean;
var _local7:int;
var _local8:Number;
var _local9:Object;
var _local10:int;
if (typeof(_arg1) == "object"){
_local4 = deepCopyObject(_arg1);
} else {
_local4 = {time:_arg1, name:_arg2, parameters:deepCopyObject(_arg3)};
};
if (_local4.parameters == null){
delete _local4.parameters;
};
_local5 = ((isNaN(_local4.time)) || ((_local4.time < 0)));
if (_local5){
throw (new VideoError(VideoError.ILLEGAL_CUE_POINT, "time must be number"));
};
_local6 = (_local4.name == null);
if (_local6){
throw (new VideoError(VideoError.ILLEGAL_CUE_POINT, "name cannot be undefined or null"));
};
_local4.type = CuePointType.ACTIONSCRIPT;
if ((((asCuePoints == null)) || ((asCuePoints.length < 1)))){
_local7 = 0;
asCuePoints = new Array();
asCuePoints.push(_local4);
} else {
_local7 = getCuePointIndex(asCuePoints, true, _local4.time);
_local7 = ((asCuePoints[_local7].time)>_local4.time) ? 0 : (_local7 + 1);
asCuePoints.splice(_local7, 0, _local4);
};
if ((((allCuePoints == null)) || ((allCuePoints.length < 1)))){
allCuePoints = new Array();
allCuePoints.push(_local4);
} else {
_local10 = getCuePointIndex(allCuePoints, true, _local4.time);
_local10 = ((allCuePoints[_local10].time)>_local4.time) ? 0 : (_local10 + 1);
allCuePoints.splice(_local10, 0, _local4);
};
_local8 = _owner.getVideoPlayer(_id).playheadTime;
if (_local8 > 0){
if (_asCuePointIndex == _local7){
if (_local8 > asCuePoints[_local7].time){
_asCuePointIndex++;
};
} else {
if (_asCuePointIndex > _local7){
_asCuePointIndex++;
};
};
} else {
_asCuePointIndex = 0;
};
_local9 = deepCopyObject(asCuePoints[_local7]);
_local9.array = asCuePoints;
_local9.index = _local7;
return (_local9);
}
public function get metadataLoaded():Boolean{
return (_metadataLoaded);
}
public function reset():void{
_metadataLoaded = false;
allCuePoints = null;
asCuePoints = null;
_disabledCuePoints = new Array();
_disabledCuePointsByNameOnly = new Object();
flvCuePoints = null;
navCuePoints = null;
eventCuePoints = null;
_asCuePointIndex = 0;
}
public function removeCuePoints(_arg1:Array, _arg2:Object):Number{
var _local3:int;
var _local4:Object;
var _local5:int;
_local5 = 0;
_local3 = getCuePointIndex(_arg1, true, -1, _arg2.name);
while (_local3 >= 0) {
_local4 = _arg1[_local3];
_arg1.splice(_local3, 1);
_local3--;
_local5++;
_local3 = getNextCuePointIndexWithName(_local4.name, _arg1, _local3);
};
return (_local5);
}
flvplayback_internal function unescape(_arg1:String):String{
var _local2:String;
var _local3:int;
_local2 = _arg1;
_local3 = 0;
while (_local3 < cuePointsReplace.length) {
var _temp1 = _local3;
_local3 = (_local3 + 1);
var _temp2 = _local3;
_local3 = (_local3 + 1);
_local2 = _local2.replace(cuePointsReplace[_temp1], cuePointsReplace[_temp2]);
};
return (_local2);
}
public function setFLVCuePointEnabled(_arg1:Boolean, _arg2):int{
var _local3:Object;
var _local4:Boolean;
var _local5:Boolean;
var _local6:uint;
var _local7:int;
var _local8:int;
var _local9:Object;
switch (typeof(_arg2)){
case "string":
_local3 = {name:_arg2};
break;
case "number":
_local3 = {time:_arg2};
break;
case "object":
_local3 = _arg2;
break;
};
_local4 = ((isNaN(_local3.time)) || ((_local3.time < 0)));
_local5 = (_local3.name == null);
if (((_local4) && (_local5))){
throw (new VideoError(VideoError.ILLEGAL_CUE_POINT, "time must be number and/or name must not be undefined or null"));
};
_local6 = 0;
if (_local4){
if (!_metadataLoaded){
if (_disabledCuePointsByNameOnly[_local3.name] == undefined){
if (!_arg1){
_disabledCuePointsByNameOnly[_local3.name] = new Array();
};
} else {
if (_arg1){
delete _disabledCuePointsByNameOnly[_local3.name];
};
return (-1);
};
removeCuePoints(_disabledCuePoints, _local3);
return (-1);
};
if (_arg1){
_local6 = removeCuePoints(_disabledCuePoints, _local3);
} else {
_local7 = getCuePointIndex(flvCuePoints, true, -1, _local3.name);
while (_local7 >= 0) {
_local9 = flvCuePoints[_local7];
_local8 = getCuePointIndex(_disabledCuePoints, true, _local9.time);
if ((((_local8 < 0)) || (!((_disabledCuePoints[_local8].time == _local9.time))))){
_disabledCuePoints = insertCuePoint(_local8, _disabledCuePoints, {name:_local9.name, time:_local9.time});
_local6 = (_local6 + 1);
};
_local7 = getNextCuePointIndexWithName(_local9.name, flvCuePoints, _local7);
};
};
return (_local6);
};
_local7 = getCuePointIndex(_disabledCuePoints, false, _local3.time, _local3.name);
if (_local7 < 0){
if (_arg1){
if (!_metadataLoaded){
_local7 = getCuePointIndex(_disabledCuePoints, false, _local3.time);
if (_local7 < 0){
_local8 = getCuePointIndex(_disabledCuePointsByNameOnly[_local3.name], true, _local3.time);
if (cuePointCompare(_local3.time, null, _disabledCuePointsByNameOnly[_local3.name]) != 0){
_disabledCuePointsByNameOnly[_local3.name] = insertCuePoint(_local8, _disabledCuePointsByNameOnly[_local3.name], _local3);
};
} else {
_disabledCuePoints.splice(_local7, 1);
};
};
return ((_metadataLoaded) ? 0 : -1);
};
} else {
if (_arg1){
_disabledCuePoints.splice(_local7, 1);
_local6 = 1;
} else {
_local6 = 0;
};
return ((_metadataLoaded) ? _local6 : -1);
};
if (_metadataLoaded){
_local7 = getCuePointIndex(flvCuePoints, false, _local3.time, _local3.name);
if (_local7 < 0){
return (0);
};
if (_local5){
_local3.name = flvCuePoints[_local7].name;
};
};
_local8 = getCuePointIndex(_disabledCuePoints, true, _local3.time);
_disabledCuePoints = insertCuePoint(_local8, _disabledCuePoints, _local3);
_local6 = 1;
return ((_metadataLoaded) ? _local6 : -1);
}
public function isFLVCuePointEnabled(_arg1):Boolean{
var _local2:Object;
var _local3:Boolean;
var _local4:Boolean;
var _local5:int;
if (!_metadataLoaded){
return (true);
};
switch (typeof(_arg1)){
case "string":
_local2 = {name:_arg1};
break;
case "number":
_local2 = {time:_arg1};
break;
case "object":
_local2 = _arg1;
break;
};
_local3 = ((isNaN(_local2.time)) || ((_local2.time < 0)));
_local4 = (_local2.name == null);
if (((_local3) && (_local4))){
throw (new VideoError(VideoError.ILLEGAL_CUE_POINT, "time must be number and/or name must not be undefined or null"));
};
if (_local3){
_local5 = getCuePointIndex(flvCuePoints, true, -1, _local2.name);
if (_local5 < 0){
return (true);
};
while (_local5 >= 0) {
if (getCuePointIndex(_disabledCuePoints, false, flvCuePoints[_local5].time, flvCuePoints[_local5].name) < 0){
return (true);
};
_local5 = getNextCuePointIndexWithName(_local2.name, flvCuePoints, _local5);
};
return (false);
};
return ((getCuePointIndex(_disabledCuePoints, false, _local2.time, _local2.name) < 0));
}
public function removeASCuePoint(_arg1):Object{
var _local2:Object;
var _local3:int;
if ((((asCuePoints == null)) || ((asCuePoints.length < 1)))){
return (null);
};
switch (typeof(_arg1)){
case "string":
_local2 = {name:_arg1};
break;
case "number":
_local2 = {time:_arg1};
break;
case "object":
_local2 = _arg1;
break;
};
_local3 = getCuePointIndex(asCuePoints, false, _local2.time, _local2.name);
if (_local3 < 0){
return (null);
};
_local2 = asCuePoints[_local3];
asCuePoints.splice(_local3, 1);
_local3 = getCuePointIndex(allCuePoints, false, _local2.time, _local2.name);
if (_local3 > 0){
allCuePoints.splice(_local3, 1);
};
if (_owner.getVideoPlayer(_id).playheadTime > 0){
if (_asCuePointIndex > _local3){
_asCuePointIndex--;
};
} else {
_asCuePointIndex = 0;
};
return (_local2);
}
public function get id():uint{
return (_id);
}
public function processCuePointsProperty(_arg1:Array):void{
var _local2:uint;
var _local3:uint;
var _local4:String;
var _local5:String;
var _local6:Object;
var _local7:Boolean;
var _local8:int;
if ((((_arg1 == null)) || ((_arg1.length == 0)))){
return;
};
_local2 = 0;
_local8 = 0;
while (_local8 < (_arg1.length - 1)) {
switch (_local2){
case 6:
addOrDisable(_local7, _local6);
_local2 = 0;
case 0:
var _temp1 = _local8;
_local8 = (_local8 + 1);
if (_arg1[_temp1] != "t"){
throw (new VideoError(VideoError.ILLEGAL_CUE_POINT, "unexpected cuePoint parameter format"));
};
if (isNaN(_arg1[_local8])){
throw (new VideoError(VideoError.ILLEGAL_CUE_POINT, "time must be number"));
};
_local6 = new Object();
_local6.time = (_arg1[_local8] / 1000);
_local2++;
break;
case 1:
var _temp2 = _local8;
_local8 = (_local8 + 1);
if (_arg1[_temp2] != "n"){
throw (new VideoError(VideoError.ILLEGAL_CUE_POINT, "unexpected cuePoint parameter format"));
};
if (_arg1[_local8] == undefined){
throw (new VideoError(VideoError.ILLEGAL_CUE_POINT, "name cannot be null or undefined"));
};
_local6.name = unescape(_arg1[_local8]);
_local2++;
break;
case 2:
var _temp3 = _local8;
_local8 = (_local8 + 1);
if (_arg1[_temp3] != "t"){
throw (new VideoError(VideoError.ILLEGAL_CUE_POINT, "unexpected cuePoint parameter format"));
};
if (isNaN(_arg1[_local8])){
throw (new VideoError(VideoError.ILLEGAL_CUE_POINT, "type must be number"));
};
switch (_arg1[_local8]){
case 0:
_local6.type = CuePointType.EVENT;
break;
case 1:
_local6.type = CuePointType.NAVIGATION;
break;
case 2:
_local6.type = CuePointType.ACTIONSCRIPT;
break;
default:
throw (new VideoError(VideoError.ILLEGAL_CUE_POINT, "type must be 0, 1 or 2"));
};
_local2++;
break;
case 3:
var _temp4 = _local8;
_local8 = (_local8 + 1);
if (_arg1[_temp4] != "d"){
throw (new VideoError(VideoError.ILLEGAL_CUE_POINT, "unexpected cuePoint parameter format"));
};
if (isNaN(_arg1[_local8])){
throw (new VideoError(VideoError.ILLEGAL_CUE_POINT, "disabled must be number"));
};
_local7 = !((_arg1[_local8] == 0));
_local2++;
break;
case 4:
var _temp5 = _local8;
_local8 = (_local8 + 1);
if (_arg1[_temp5] != "p"){
throw (new VideoError(VideoError.ILLEGAL_CUE_POINT, "unexpected cuePoint parameter format"));
};
if (isNaN(_arg1[_local8])){
throw (new VideoError(VideoError.ILLEGAL_CUE_POINT, "num params must be number"));
};
_local3 = _arg1[_local8];
_local2++;
if (_local3 == 0){
_local2++;
} else {
_local6.parameters = new Object();
};
break;
case 5:
var _temp6 = _local8;
_local8 = (_local8 + 1);
_local4 = _arg1[_temp6];
_local5 = _arg1[_local8];
if ((_local4 is String)){
_local4 = unescape(_local4);
};
if ((_local5 is String)){
_local5 = unescape(_local5);
};
_local6.parameters[_local4] = _local5;
_local3--;
if (_local3 == 0){
_local2++;
};
break;
};
_local8++;
};
if (_local2 == 6){
addOrDisable(_local7, _local6);
} else {
throw (new VideoError(VideoError.ILLEGAL_CUE_POINT, "unexpected end of cuePoint param string"));
};
}
flvplayback_internal function getNextCuePointIndexWithName(_arg1:String, _arg2:Array, _arg3:int):int{
var _local4:int;
if (_arg1 == null){
throw (new VideoError(VideoError.ILLEGAL_CUE_POINT, "name cannot be undefined or null"));
};
if (_arg2 == null){
throw (new VideoError(VideoError.ILLEGAL_CUE_POINT, "cuePoint.array undefined"));
};
if (((((isNaN(_arg3)) || ((_arg3 < -1)))) || ((_arg3 >= _arg2.length)))){
throw (new VideoError(VideoError.ILLEGAL_CUE_POINT, "cuePoint.index must be number between -1 and cuePoint.array.length"));
};
_local4 = (_arg3 + 1);
while (_local4 < _arg2.length) {
if (_arg2[_local4].name == _arg1){
break;
};
_local4++;
};
if (_local4 < _arg2.length){
return (_local4);
};
return (-1);
}
public function dispatchASCuePoints():void{
var _local1:Number;
_local1 = _owner.getVideoPlayer(_id).playheadTime;
if (((_owner.getVideoPlayer(_id).stateResponsive) && (!((asCuePoints == null))))){
while ((((_asCuePointIndex < asCuePoints.length)) && ((asCuePoints[_asCuePointIndex].time <= (_local1 + _asCuePointTolerance))))) {
_owner.dispatchEvent(new MetadataEvent(MetadataEvent.CUE_POINT, false, false, deepCopyObject(asCuePoints[_asCuePointIndex++]), _id));
};
};
}
flvplayback_internal function getNextCuePointWithName(_arg1:Object):Object{
var _local2:int;
var _local3:Object;
if (_arg1 == null){
throw (new VideoError(VideoError.ILLEGAL_CUE_POINT, "cuePoint parameter undefined"));
};
if (((isNaN(_arg1.time)) || ((_arg1.time < 0)))){
throw (new VideoError(VideoError.ILLEGAL_CUE_POINT, "time must be number"));
};
_local2 = getNextCuePointIndexWithName(_arg1.name, _arg1.array, _arg1.index);
if (_local2 < 0){
return (null);
};
_local3 = deepCopyObject(_arg1.array[_local2]);
_local3.array = _arg1.array;
_local3.index = _local2;
return (_local3);
}
public function insertCuePoint(_arg1:int, _arg2:Array, _arg3:Object):Array{
if (_arg1 < 0){
_arg2 = new Array();
_arg2.push(_arg3);
} else {
if (_arg2[_arg1].time > _arg3.time){
_arg1 = 0;
} else {
_arg1++;
};
_arg2.splice(_arg1, 0, _arg3);
};
return (_arg2);
}
flvplayback_internal function getCuePointIndex(_arg1:Array, _arg2:Boolean, _arg3:Number=NaN, _arg4:String=null, _arg5:int=-1, _arg6:int=-1):int{
var _local7:Boolean;
var _local8:Boolean;
var _local9:int;
var _local10:int;
var _local11:int;
var _local12:int;
var _local13:int;
var _local14:int;
var _local15:int;
if ((((_arg1 == null)) || ((_arg1.length < 1)))){
return (-1);
};
_local7 = ((isNaN(_arg3)) || ((_arg3 < 0)));
_local8 = (_arg4 == null);
if (((_local7) && (_local8))){
throw (new VideoError(VideoError.ILLEGAL_CUE_POINT, "time must be number and/or name must not be undefined or null"));
};
if (_arg5 < 0){
_arg5 = 0;
};
if (_arg6 < 0){
_arg6 = _arg1.length;
};
if (((!(_local8)) && (((_arg2) || (_local7))))){
if (_local7){
_local12 = _arg5;
} else {
_local12 = getCuePointIndex(_arg1, _arg2, _arg3);
};
_local13 = _local12;
while (_local13 >= _arg5) {
if (_arg1[_local13].name == _arg4){
break;
};
_local13--;
};
if (_local13 >= _arg5){
return (_local13);
};
_local13 = (_local12 + 1);
while (_local13 < _arg6) {
if (_arg1[_local13].name == _arg4){
break;
};
_local13++;
};
if (_local13 < _arg6){
return (_local13);
};
return (-1);
};
if (_arg6 <= _linearSearchTolerance){
_local14 = (_arg5 + _arg6);
_local15 = _arg5;
while (_local15 < _local14) {
_local9 = cuePointCompare(_arg3, _arg4, _arg1[_local15]);
if (_local9 == 0){
return (_local15);
};
if (_local9 < 0){
break;
};
_local15++;
};
if (_arg2){
if (_local15 > 0){
return ((_local15 - 1));
};
return (0);
};
return (-1);
};
_local10 = int((_arg6 / 2));
_local11 = (_arg5 + _local10);
_local9 = cuePointCompare(_arg3, _arg4, _arg1[_local11]);
if (_local9 < 0){
return (getCuePointIndex(_arg1, _arg2, _arg3, _arg4, _arg5, _local10));
};
if (_local9 > 0){
return (getCuePointIndex(_arg1, _arg2, _arg3, _arg4, (_local11 + 1), ((_local10 - 1) + (_arg6 % 2))));
};
return (_local11);
}
flvplayback_internal static function deepCopyObject(_arg1:Object, _arg2:uint=0):Object{
var _local3:Object;
var _local4:*;
if (_arg1 == null){
return (_arg1);
};
_local3 = new Object();
for (_local4 in _arg1) {
if ((((_arg2 == 0)) && ((((_local4 == "array")) || ((_local4 == "index")))))){
} else {
if (typeof(_arg1[_local4]) == "object"){
_local3[_local4] = deepCopyObject(_arg1[_local4], (_arg2 + 1));
} else {
_local3[_local4] = _arg1[_local4];
};
};
};
return (_local3);
}
flvplayback_internal static function cuePointCompare(_arg1:Number, _arg2:String, _arg3:Object):int{
var _local4:Number;
var _local5:Number;
_local4 = Math.round((_arg1 * 1000));
_local5 = Math.round((_arg3.time * 1000));
if (_local4 < _local5){
return (-1);
};
if (_local4 > _local5){
return (1);
};
if (_arg2 != null){
if (_arg2 == _arg3.name){
return (0);
};
if (_arg2 < _arg3.name){
return (-1);
};
return (1);
};
return (0);
}
}
}//package fl.video
Section 135
//CuePointType (fl.video.CuePointType)
package fl.video {
public final class CuePointType {
public static const FLV:String = "flv";
public static const ALL:String = "all";
public static const ACTIONSCRIPT:String = "actionscript";
public static const EVENT:String = "event";
public static const NAVIGATION:String = "navigation";
}
}//package fl.video
Section 136
//FLVPlayback (fl.video.FLVPlayback)
package fl.video {
import flash.events.*;
import flash.display.*;
import flash.net.*;
import flash.geom.*;
import flash.media.*;
import flash.utils.*;
public class FLVPlayback extends Sprite {
private var _playheadUpdateInterval:Number;
private var _align:String;
flvplayback_internal var videoPlayerStateDict:Dictionary;
flvplayback_internal var cuePointMgrs:Array;
private var _volume:Number;
private var _origHeight:Number;
flvplayback_internal var videoPlayerStates:Array;
private var _progressInterval:Number;
private var _seekToPrevOffset:Number;
private var _origWidth:Number;
private var _scaleMode:String;
flvplayback_internal var resizingNow:Boolean;
flvplayback_internal var videoPlayers:Array;
private var _bufferTime:Number;
private var _aspectRatio:Boolean;
private var _autoRewind:Boolean;
flvplayback_internal var uiMgr:UIManager;
private var previewImage_mc:Loader;
private var _componentInspectorSetting:Boolean;
flvplayback_internal var _firstStreamShown:Boolean;
private var _visibleVP:uint;
private var _idleTimeout:Number;
private var _soundTransform:SoundTransform;
public var boundingBox_mc:DisplayObject;
flvplayback_internal var skinShowTimer:Timer;
private var preview_mc:MovieClip;
private var livePreviewHeight:Number;
flvplayback_internal var _firstStreamReady:Boolean;
private var _activeVP:uint;
private var isLivePreview:Boolean;
private var _topVP:uint;
private var livePreviewWidth:Number;
private var __forceNCMgr:NCManager;
private var previewImageUrl:String;
public static const SEEK_TO_PREV_OFFSET_DEFAULT:Number = 1;
public static const SHORT_VERSION:String = "2.1";
flvplayback_internal static const skinShowTimerInterval:Number = 2000;
public static const VERSION:String = "2.1.0.14";
flvplayback_internal static const DEFAULT_SKIN_SHOW_TIMER_INTERVAL:Number = 2000;
public function FLVPlayback(){
var _local1:VideoPlayer;
super();
mouseEnabled = false;
isLivePreview = ((!((parent == null))) && ((getQualifiedClassName(parent) == "fl.livepreview::LivePreviewParent")));
_componentInspectorSetting = false;
_origWidth = super.width;
_origHeight = super.height;
super.scaleX = 1;
super.scaleY = 1;
_local1 = new VideoPlayer(0, 0);
_local1.setSize(_origWidth, _origHeight);
videoPlayers = new Array();
videoPlayers[0] = _local1;
_align = _local1.align;
_autoRewind = _local1.autoRewind;
_scaleMode = _local1.scaleMode;
_bufferTime = _local1.bufferTime;
_idleTimeout = _local1.idleTimeout;
_playheadUpdateInterval = _local1.playheadUpdateInterval;
_progressInterval = _local1.progressInterval;
_soundTransform = _local1.soundTransform;
_volume = _local1.volume;
_seekToPrevOffset = SEEK_TO_PREV_OFFSET_DEFAULT;
_firstStreamReady = false;
_firstStreamShown = false;
resizingNow = false;
uiMgr = new UIManager(this);
if (isLivePreview){
uiMgr.visible = true;
};
_activeVP = 0;
_visibleVP = 0;
_topVP = 0;
videoPlayerStates = new Array();
videoPlayerStateDict = new Dictionary(true);
cuePointMgrs = new Array();
createVideoPlayer(0);
boundingBox_mc.visible = false;
removeChild(boundingBox_mc);
boundingBox_mc = null;
if (isLivePreview){
previewImageUrl = "";
createLivePreviewMovieClip();
setSize(_origWidth, _origHeight);
};
}
public function set fullScreenTakeOver(_arg1:Boolean):void{
uiMgr.fullScreenTakeOver = _arg1;
}
public function pause():void{
var _local1:VideoPlayerState;
var _local2:VideoPlayer;
if (!_firstStreamShown){
_local1 = videoPlayerStates[_activeVP];
queueCmd(_local1, QueuedCommand.PAUSE);
} else {
_local2 = videoPlayers[_activeVP];
_local2.pause();
};
}
public function setScale(_arg1:Number, _arg2:Number):void{
var _local3:Rectangle;
var _local4:Rectangle;
var _local5:int;
var _local6:VideoPlayer;
_local3 = new Rectangle(x, y, width, height);
_local4 = new Rectangle(registrationX, registrationY, registrationWidth, registrationHeight);
resizingNow = true;
_local5 = 0;
while (_local5 < videoPlayers.length) {
_local6 = videoPlayers[_local5];
if (_local6 !== null){
_local6.setSize((_origWidth * _arg1), (_origWidth * _arg2));
};
_local5++;
};
resizingNow = false;
dispatchEvent(new LayoutEvent(LayoutEvent.LAYOUT, false, false, _local3, _local4));
}
public function stop():void{
var _local1:VideoPlayerState;
var _local2:VideoPlayer;
if (!_firstStreamShown){
_local1 = videoPlayerStates[_activeVP];
queueCmd(_local1, QueuedCommand.STOP);
} else {
_local2 = videoPlayers[_activeVP];
_local2.stop();
};
}
public function set align(_arg1:String):void{
var _local2:VideoPlayer;
if (_activeVP == 0){
_align = _arg1;
};
_local2 = videoPlayers[_activeVP];
_local2.align = _arg1;
}
public function getVideoPlayer(_arg1:Number):VideoPlayer{
return (videoPlayers[_arg1]);
}
public function get playheadTime():Number{
var _local1:VideoPlayer;
_local1 = videoPlayers[_activeVP];
return (_local1.playheadTime);
}
public function get progressInterval():Number{
var _local1:VideoPlayer;
_local1 = videoPlayers[_activeVP];
return (_local1.progressInterval);
}
public function set skinFadeTime(_arg1:int):void{
uiMgr.skinFadeTime = _arg1;
}
public function get seekToPrevOffset():Number{
return (_seekToPrevOffset);
}
public function set playheadTime(_arg1:Number):void{
seek(_arg1);
}
public function get source():String{
var _local1:VideoPlayerState;
var _local2:VideoPlayer;
_local1 = videoPlayerStates[_activeVP];
if (_local1.isWaiting){
return (_local1.url);
};
_local2 = videoPlayers[_activeVP];
return (_local2.source);
}
public function get activeVideoPlayerIndex():uint{
return (_activeVP);
}
public function get skinFadeTime():int{
return (uiMgr.skinFadeTime);
}
public function set scaleMode(_arg1:String):void{
var _local2:VideoPlayer;
if (_activeVP == 0){
_scaleMode = _arg1;
};
_local2 = videoPlayers[_activeVP];
_local2.scaleMode = _arg1;
}
public function set bufferingBar(_arg1:Sprite):void{
uiMgr.setControl(UIManager.BUFFERING_BAR, _arg1);
}
public function get metadataLoaded():Boolean{
var _local1:CuePointManager;
_local1 = cuePointMgrs[_activeVP];
return (_local1.metadataLoaded);
}
public function closeVideoPlayer(_arg1:uint):void{
var _local2:VideoPlayer;
if (_arg1 == 0){
throw (new VideoError(VideoError.DELETE_DEFAULT_PLAYER));
};
if (videoPlayers[_arg1] == undefined){
return;
};
_local2 = videoPlayers[_arg1];
if (_visibleVP == _arg1){
visibleVideoPlayerIndex = 0;
};
if (_activeVP == _arg1){
activeVideoPlayerIndex = 0;
};
removeChild(_local2);
_local2.close();
delete videoPlayers[_arg1];
delete videoPlayerStates[_arg1];
delete videoPlayerStateDict[_local2];
}
public function get scaleMode():String{
var _local1:VideoPlayer;
_local1 = videoPlayers[_activeVP];
return (_local1.scaleMode);
}
public function set progressInterval(_arg1:Number):void{
var _local2:VideoPlayer;
if (_activeVP == 0){
_progressInterval = _arg1;
};
_local2 = videoPlayers[_activeVP];
_local2.progressInterval = _arg1;
}
public function get playing():Boolean{
return ((state == VideoState.PLAYING));
}
public function get totalTime():Number{
var _local1:VideoPlayerState;
var _local2:VideoPlayer;
if (isLivePreview){
return (1);
};
_local1 = videoPlayerStates[_activeVP];
if (_local1.totalTimeSet){
return (_local1.totalTime);
};
_local2 = videoPlayers[_activeVP];
return (_local2.totalTime);
}
public function get ncMgr():INCManager{
var _local1:VideoPlayer;
_local1 = videoPlayers[_activeVP];
return (_local1.ncMgr);
}
public function set volume(_arg1:Number):void{
var _local2:VideoPlayer;
if (_volume == _arg1){
return;
};
_volume = _arg1;
if (!scrubbing){
_local2 = videoPlayers[_visibleVP];
_local2.volume = _volume;
};
dispatchEvent(new SoundEvent(SoundEvent.SOUND_UPDATE, false, false, _local2.soundTransform));
}
public function get skinAutoHide():Boolean{
return (uiMgr.skinAutoHide);
}
public function set source(_arg1:String):void{
var _local2:VideoPlayerState;
var _local3:CuePointManager;
if (isLivePreview){
return;
};
if (_arg1 == null){
_arg1 = "";
};
if (_componentInspectorSetting){
_local2 = videoPlayerStates[_activeVP];
_local2.url = _arg1;
if (_arg1.length > 0){
_local2.isWaiting = true;
addEventListener(Event.ENTER_FRAME, doContentPathConnect);
};
} else {
if (source == _arg1){
return;
};
_local3 = cuePointMgrs[_activeVP];
_local3.reset();
_local2 = videoPlayerStates[_activeVP];
_local2.url = _arg1;
_local2.isWaiting = true;
doContentPathConnect(_activeVP);
};
}
public function set activeVideoPlayerIndex(_arg1:uint):void{
if (_activeVP == _arg1){
return;
};
_activeVP = _arg1;
if (videoPlayers[_activeVP] == undefined){
createVideoPlayer(_activeVP);
};
}
override public function set soundTransform(_arg1:SoundTransform):void{
var _local2:VideoPlayer;
if (_arg1 == null){
return;
};
_volume = _arg1.volume;
_soundTransform.volume = (scrubbing) ? 0 : _arg1.volume;
_soundTransform.leftToLeft = _arg1.leftToLeft;
_soundTransform.leftToRight = _arg1.leftToRight;
_soundTransform.rightToLeft = _arg1.rightToLeft;
_soundTransform.rightToRight = _arg1.rightToRight;
_local2 = videoPlayers[_activeVP];
_local2.soundTransform = _soundTransform;
dispatchEvent(new SoundEvent(SoundEvent.SOUND_UPDATE, false, false, _local2.soundTransform));
}
public function set seekToPrevOffset(_arg1:Number):void{
_seekToPrevOffset = _arg1;
}
public function set seekBarScrubTolerance(_arg1:Number):void{
uiMgr.seekBarScrubTolerance = _arg1;
}
override public function get scaleX():Number{
var _local1:VideoPlayer;
_local1 = videoPlayers[_visibleVP];
return ((_local1.width / _origWidth));
}
override public function get scaleY():Number{
var _local1:VideoPlayer;
_local1 = videoPlayers[_visibleVP];
return ((_local1.height / _origHeight));
}
public function get bytesLoaded():uint{
var _local1:VideoPlayer;
_local1 = videoPlayers[_activeVP];
return (_local1.bytesLoaded);
}
override public function set height(_arg1:Number):void{
var _local2:Rectangle;
var _local3:Rectangle;
var _local4:int;
var _local5:VideoPlayer;
if (isLivePreview){
setSize(this.width, _arg1);
return;
};
_local2 = new Rectangle(x, y, width, height);
_local3 = new Rectangle(registrationX, registrationY, registrationWidth, registrationHeight);
resizingNow = true;
_local4 = 0;
while (_local4 < videoPlayers.length) {
_local5 = videoPlayers[_local4];
if (_local5 != null){
_local5.height = _arg1;
};
_local4++;
};
resizingNow = false;
dispatchEvent(new LayoutEvent(LayoutEvent.LAYOUT, false, false, _local2, _local3));
}
public function get forwardButton():Sprite{
return (uiMgr.getControl(UIManager.FORWARD_BUTTON));
}
public function get seekBarInterval():Number{
return (uiMgr.seekBarInterval);
}
public function set totalTime(_arg1:Number):void{
var _local2:VideoPlayerState;
_local2 = videoPlayerStates[_activeVP];
_local2.totalTime = _arg1;
_local2.totalTimeSet = true;
}
public function set skinAutoHide(_arg1:Boolean):void{
if (isLivePreview){
return;
};
uiMgr.skinAutoHide = _arg1;
}
public function set bufferTime(_arg1:Number):void{
var _local2:VideoPlayer;
_local2 = videoPlayers[_activeVP];
_local2.bufferTime = _arg1;
}
public function get fullScreenSkinDelay():int{
return (uiMgr.fullScreenSkinDelay);
}
public function seekToNavCuePoint(_arg1):void{
var _local2:Object;
var _local3:Object;
if ((_arg1 is String)){
_local2 = {name:String(_arg1)};
} else {
if ((_arg1 is Number)){
_local2 = {time:Number(_arg1)};
} else {
_local2 = _arg1;
};
};
if (_local2.name == undefined){
seekToNextNavCuePoint(_local2.time);
return;
};
if (isNaN(_local2.time)){
_local2.time = 0;
};
_local3 = findNearestCuePoint(_arg1, CuePointType.NAVIGATION);
while (((!((_local3 == null))) && ((((_local3.time < _local2.time)) || (!(isFLVCuePointEnabled(_local3))))))) {
_local3 = findNextCuePointWithName(_local3);
};
if (_local3 == null){
throw (new VideoError(VideoError.INVALID_SEEK));
};
seek(_local3.time);
}
private function onCompletePreview(_arg1:Event):void{
var e = _arg1;
try {
previewImage_mc.width = livePreviewWidth;
previewImage_mc.height = livePreviewHeight;
} catch(e:Error) {
};
}
public function set isLive(_arg1:Boolean):void{
var _local2:VideoPlayerState;
_local2 = videoPlayerStates[_activeVP];
_local2.isLive = _arg1;
_local2.isLiveSet = true;
}
flvplayback_internal function showSkinNow(_arg1:TimerEvent):void{
skinShowTimer = null;
uiMgr.visible = true;
}
override public function get x():Number{
var _local1:VideoPlayer;
_local1 = videoPlayers[_visibleVP];
return ((super.x + _local1.x));
}
override public function get y():Number{
var _local1:VideoPlayer;
_local1 = videoPlayers[_visibleVP];
return ((super.y + _local1.y));
}
public function get seekBar():Sprite{
return (uiMgr.getControl(UIManager.SEEK_BAR));
}
public function get volumeBarInterval():Number{
return (uiMgr.volumeBarInterval);
}
public function set registrationHeight(_arg1:Number):void{
height = _arg1;
}
public function get bufferingBarHidesAndDisablesOthers():Boolean{
return (uiMgr.bufferingBarHidesAndDisablesOthers);
}
public function seek(_arg1:Number):void{
var _local2:VideoPlayerState;
var _local3:VideoPlayer;
_local2 = videoPlayerStates[_activeVP];
if (!_firstStreamShown){
_local2.preSeekTime = 0;
queueCmd(_local2, QueuedCommand.SEEK, _arg1);
} else {
_local2.preSeekTime = playheadTime;
_local3 = videoPlayers[_activeVP];
_local3.seek(_arg1);
};
}
public function get state():String{
var _local1:VideoPlayer;
var _local2:String;
var _local3:VideoPlayerState;
if (isLivePreview){
return (VideoState.STOPPED);
};
_local1 = videoPlayers[_activeVP];
if ((((_activeVP == _visibleVP)) && (scrubbing))){
return (VideoState.SEEKING);
};
_local2 = _local1.state;
if (_local2 == VideoState.RESIZING){
return (VideoState.LOADING);
};
_local3 = videoPlayerStates[_activeVP];
if ((((((_local3.prevState == VideoState.LOADING)) && (_local3.autoPlay))) && ((_local2 == VideoState.STOPPED)))){
return (VideoState.LOADING);
};
return (_local2);
}
public function set autoRewind(_arg1:Boolean):void{
var _local2:VideoPlayer;
if (_activeVP == 0){
_autoRewind = _arg1;
};
_local2 = videoPlayers[_activeVP];
_local2.autoRewind = _arg1;
}
public function get volumeBar():Sprite{
return (uiMgr.getControl(UIManager.VOLUME_BAR));
}
flvplayback_internal function skinError(_arg1:String):void{
if (isLivePreview){
return;
};
if (((_firstStreamReady) && (!(_firstStreamShown)))){
showFirstStream();
};
dispatchEvent(new SkinErrorEvent(SkinErrorEvent.SKIN_ERROR, false, false, _arg1));
}
override public function set scaleX(_arg1:Number):void{
var _local2:Rectangle;
var _local3:Rectangle;
var _local4:int;
var _local5:VideoPlayer;
_local2 = new Rectangle(x, y, width, height);
_local3 = new Rectangle(registrationX, registrationY, registrationWidth, registrationHeight);
resizingNow = true;
_local4 = 0;
while (_local4 < videoPlayers.length) {
_local5 = videoPlayers[_local4];
if (_local5 !== null){
_local5.width = (_origWidth * _arg1);
};
_local4++;
};
resizingNow = false;
dispatchEvent(new LayoutEvent(LayoutEvent.LAYOUT, false, false, _local2, _local3));
}
override public function set scaleY(_arg1:Number):void{
var _local2:Rectangle;
var _local3:Rectangle;
var _local4:int;
var _local5:VideoPlayer;
_local2 = new Rectangle(x, y, width, height);
_local3 = new Rectangle(registrationX, registrationY, registrationWidth, registrationHeight);
resizingNow = true;
_local4 = 0;
while (_local4 < videoPlayers.length) {
_local5 = videoPlayers[_local4];
if (_local5 !== null){
_local5.height = (_origHeight * _arg1);
};
_local4++;
};
resizingNow = false;
dispatchEvent(new LayoutEvent(LayoutEvent.LAYOUT, false, false, _local2, _local3));
}
flvplayback_internal function createVideoPlayer(_arg1:Number):void{
var vp:VideoPlayer;
var added:Boolean;
var vpState:VideoPlayerState;
var cpMgr:CuePointManager;
var skinDepth:int;
var index = _arg1;
if (isLivePreview){
return;
};
vp = videoPlayers[index];
if (vp == null){
var _local3 = new VideoPlayer(0, 0);
vp = _local3;
videoPlayers[index] = _local3;
vp.setSize(registrationWidth, registrationHeight);
};
vp.visible = false;
vp.volume = 0;
vp.name = String(index);
added = false;
if (uiMgr.skin_mc != null){
try {
skinDepth = getChildIndex(uiMgr.skin_mc);
if (skinDepth > 0){
addChildAt(vp, skinDepth);
added = true;
};
} catch(err:Error) {
};
};
if (!added){
addChild(vp);
};
_topVP = index;
vp.autoRewind = _autoRewind;
vp.scaleMode = _scaleMode;
vp.bufferTime = _bufferTime;
vp.idleTimeout = _idleTimeout;
vp.playheadUpdateInterval = _playheadUpdateInterval;
vp.progressInterval = _progressInterval;
vp.soundTransform = _soundTransform;
vpState = new VideoPlayerState(vp, index);
videoPlayerStates[index] = vpState;
videoPlayerStateDict[vp] = vpState;
vp.addEventListener(AutoLayoutEvent.AUTO_LAYOUT, handleAutoLayoutEvent);
vp.addEventListener(MetadataEvent.CUE_POINT, handleMetadataEvent);
vp.addEventListener(MetadataEvent.METADATA_RECEIVED, handleMetadataEvent);
vp.addEventListener(VideoProgressEvent.PROGRESS, handleVideoProgressEvent);
vp.addEventListener(VideoEvent.AUTO_REWOUND, handleVideoEvent);
vp.addEventListener(VideoEvent.CLOSE, handleVideoEvent);
vp.addEventListener(VideoEvent.COMPLETE, handleVideoEvent);
vp.addEventListener(VideoEvent.PLAYHEAD_UPDATE, handleVideoEvent);
vp.addEventListener(VideoEvent.STATE_CHANGE, handleVideoEvent);
vp.addEventListener(VideoEvent.READY, handleVideoEvent);
cpMgr = new CuePointManager(this, index);
cuePointMgrs[index] = cpMgr;
cpMgr.playheadUpdateInterval = _playheadUpdateInterval;
}
public function findNearestCuePoint(_arg1, _arg2:String="all"):Object{
var _local3:CuePointManager;
_local3 = cuePointMgrs[_activeVP];
switch (_arg2){
case "event":
return (_local3.getCuePoint(_local3.eventCuePoints, true, _arg1));
case "navigation":
return (_local3.getCuePoint(_local3.navCuePoints, true, _arg1));
case "flv":
return (_local3.getCuePoint(_local3.flvCuePoints, true, _arg1));
case "actionscript":
return (_local3.getCuePoint(_local3.asCuePoints, true, _arg1));
case "all":
default:
return (_local3.getCuePoint(_local3.allCuePoints, true, _arg1));
};
}
public function get muteButton():Sprite{
return (uiMgr.getControl(UIManager.MUTE_BUTTON));
}
public function seekPercent(_arg1:Number):void{
var _local2:VideoPlayer;
_local2 = videoPlayers[_activeVP];
if (((((((((isNaN(_arg1)) || ((_arg1 < 0)))) || ((_arg1 > 100)))) || (isNaN(_local2.totalTime)))) || ((_local2.totalTime <= 0)))){
throw (new VideoError(VideoError.INVALID_SEEK));
};
seek(((_local2.totalTime * _arg1) / 100));
}
public function set forwardButton(_arg1:Sprite):void{
uiMgr.setControl(UIManager.FORWARD_BUTTON, _arg1);
}
public function get registrationWidth():Number{
var _local1:VideoPlayer;
_local1 = videoPlayers[_visibleVP];
return (_local1.registrationWidth);
}
flvplayback_internal function queueCmd(_arg1:VideoPlayerState, _arg2:Number, _arg3:Number=NaN):void{
if (_arg1.cmdQueue == null){
_arg1.cmdQueue = new Array();
};
_arg1.cmdQueue.push(new QueuedCommand(_arg2, null, false, _arg3));
}
private function doContentPathConnect(_arg1):void{
var _local2:int;
var _local3:VideoPlayer;
var _local4:VideoPlayerState;
if (isLivePreview){
return;
};
_local2 = 0;
if ((_arg1 is int)){
_local2 = int(_arg1);
} else {
removeEventListener(Event.ENTER_FRAME, doContentPathConnect);
};
_local3 = videoPlayers[_local2];
_local4 = videoPlayerStates[_local2];
if (!_local4.isWaiting){
return;
};
if (((_local4.autoPlay) && (_firstStreamShown))){
_local3.play(_local4.url, _local4.totalTime, _local4.isLive);
} else {
_local3.load(_local4.url, _local4.totalTime, _local4.isLive);
};
_local4.isLiveSet = false;
_local4.totalTimeSet = false;
_local4.isWaiting = false;
}
public function get registrationX():Number{
return (super.x);
}
public function bringVideoPlayerToFront(_arg1:uint):void{
var vp:VideoPlayer;
var moved:Boolean;
var skinDepth:int;
var index = _arg1;
if (index == _topVP){
return;
};
vp = videoPlayers[index];
if (vp == null){
createVideoPlayer(index);
vp = videoPlayers[index];
};
moved = false;
if (uiMgr.skin_mc != null){
try {
skinDepth = getChildIndex(uiMgr.skin_mc);
if (skinDepth > 0){
setChildIndex(vp, (skinDepth - 1));
moved = true;
};
} catch(err:Error) {
};
};
if (!moved){
setChildIndex(vp, (numChildren - 1));
};
_topVP = index;
}
public function get registrationY():Number{
return (super.y);
}
public function get pauseButton():Sprite{
return (uiMgr.getControl(UIManager.PAUSE_BUTTON));
}
public function set seekBarInterval(_arg1:Number):void{
uiMgr.seekBarInterval = _arg1;
}
public function addASCuePoint(_arg1, _arg2:String=null, _arg3:Object=null):Object{
var _local4:CuePointManager;
_local4 = cuePointMgrs[_activeVP];
return (_local4.addASCuePoint(_arg1, _arg2, _arg3));
}
public function get playheadPercentage():Number{
var _local1:VideoPlayer;
_local1 = videoPlayers[_activeVP];
if (isNaN(_local1.totalTime)){
return (NaN);
};
return (((_local1.playheadTime / _local1.totalTime) * 100));
}
public function setFLVCuePointEnabled(_arg1:Boolean, _arg2):Number{
var _local3:CuePointManager;
_local3 = cuePointMgrs[_activeVP];
return (_local3.setFLVCuePointEnabled(_arg1, _arg2));
}
public function set fullScreenSkinDelay(_arg1:int):void{
uiMgr.fullScreenSkinDelay = _arg1;
}
public function seekToNextNavCuePoint(_arg1:Number=NaN):void{
var _local2:VideoPlayer;
var _local3:Object;
var _local4:Number;
_local2 = videoPlayers[_activeVP];
if (((isNaN(_arg1)) || ((_arg1 < 0)))){
_arg1 = (_local2.playheadTime + 0.001);
};
_local3 = findNearestCuePoint(_arg1, CuePointType.NAVIGATION);
if (_local3 == null){
seek(_local2.totalTime);
return;
};
_local4 = _local3.index;
if (_local3.time < _arg1){
_local4++;
};
while ((((_local4 < _local3.array.length)) && (!(isFLVCuePointEnabled(_local3.array[_local4]))))) {
_local4++;
};
if (_local4 >= _local3.array.length){
_arg1 = _local2.totalTime;
if (_local3.array[(_local3.array.length - 1)].time > _arg1){
_arg1 = _local3.array[(_local3.array.length - 1)];
};
seek(_arg1);
} else {
seek(_local3.array[_local4].time);
};
}
public function load(_arg1:String, _arg2:Number=NaN, _arg3:Boolean=false):void{
if ((((_arg1 == null)) || ((_arg1.length == 0)))){
return;
};
if (_arg1 == this.source){
return;
};
this.autoPlay = false;
this.totalTime = _arg2;
this.isLive = _arg3;
this.source = _arg1;
}
public function seekSeconds(_arg1:Number):void{
seek(_arg1);
}
public function get fullScreenButton():Sprite{
return (uiMgr.getControl(UIManager.FULL_SCREEN_BUTTON));
}
public function get scrubbing():Boolean{
var _local1:Sprite;
var _local2:ControlData;
_local1 = seekBar;
if (_local1 != null){
_local2 = uiMgr.ctrlDataDict[_local1];
return (_local2.isDragging);
};
return (false);
}
override public function set y(_arg1:Number):void{
var _local2:VideoPlayer;
_local2 = videoPlayers[_visibleVP];
super.y = (_arg1 - _local2.y);
}
public function removeASCuePoint(_arg1):Object{
var _local2:CuePointManager;
_local2 = cuePointMgrs[_activeVP];
return (_local2.removeASCuePoint(_arg1));
}
public function get fullScreenTakeOver():Boolean{
return (uiMgr.fullScreenTakeOver);
}
override public function set x(_arg1:Number):void{
var _local2:VideoPlayer;
_local2 = videoPlayers[_visibleVP];
super.x = (_arg1 - _local2.x);
}
public function get backButton():Sprite{
return (uiMgr.getControl(UIManager.BACK_BUTTON));
}
public function set seekBar(_arg1:Sprite):void{
uiMgr.setControl(UIManager.SEEK_BAR, _arg1);
}
public function set skin(_arg1:String):void{
uiMgr.skin = _arg1;
}
public function set componentInspectorSetting(_arg1:Boolean):void{
_componentInspectorSetting = _arg1;
}
public function get preferredHeight():int{
var _local1:VideoPlayer;
_local1 = videoPlayers[_activeVP];
return (_local1.videoHeight);
}
public function set volumeBarInterval(_arg1:Number):void{
uiMgr.volumeBarInterval = _arg1;
}
public function set autoPlay(_arg1:Boolean):void{
var _local2:VideoPlayerState;
_local2 = videoPlayerStates[_activeVP];
_local2.autoPlay = _arg1;
}
public function set visibleVideoPlayerIndex(_arg1:uint):void{
var _local2:VideoPlayer;
var _local3:VideoPlayer;
var _local4:uint;
var _local5:Rectangle;
var _local6:Rectangle;
if (_visibleVP == _arg1){
return;
};
if (videoPlayers[_arg1] == undefined){
createVideoPlayer(_arg1);
};
_local2 = videoPlayers[_arg1];
_local3 = videoPlayers[_visibleVP];
_local3.visible = false;
_local3.volume = 0;
_visibleVP = _arg1;
if (_firstStreamShown){
uiMgr.setupSkinAutoHide(false);
_local2.visible = true;
_soundTransform.volume = (scrubbing) ? _volume : 0;
_local2.soundTransform = _soundTransform;
} else {
if (((((((_local2.stateResponsive) || ((_local2.state == VideoState.CONNECTION_ERROR)))) || ((_local2.state == VideoState.DISCONNECTED)))) && (uiMgr.skinReady))){
uiMgr.visible = true;
uiMgr.setupSkinAutoHide(false);
_firstStreamReady = true;
if (uiMgr.skin == ""){
uiMgr.hookUpCustomComponents();
};
showFirstStream();
};
};
if (((!((_local2.height == _local3.height))) || (!((_local2.width == _local3.width))))){
_local5 = new Rectangle((_local3.x + super.x), (_local3.y + super.y), _local3.width, _local3.height);
_local6 = new Rectangle((_local3.registrationX + super.x), (_local3.registrationY + super.y), _local3.registrationWidth, _local3.registrationHeight);
dispatchEvent(new LayoutEvent(LayoutEvent.LAYOUT, false, false, _local5, _local6));
};
_local4 = _activeVP;
_activeVP = _visibleVP;
uiMgr.handleIVPEvent(new VideoEvent(VideoEvent.STATE_CHANGE, false, false, state, playheadTime, _visibleVP));
uiMgr.handleIVPEvent(new VideoEvent(VideoEvent.PLAYHEAD_UPDATE, false, false, state, playheadTime, _visibleVP));
if (_local2.isRTMP){
uiMgr.handleIVPEvent(new VideoEvent(VideoEvent.READY, false, false, state, playheadTime, _visibleVP));
} else {
uiMgr.handleIVPEvent(new VideoProgressEvent(VideoProgressEvent.PROGRESS, false, false, bytesLoaded, bytesTotal, _visibleVP));
};
_activeVP = _local4;
}
public function get bufferingBar():Sprite{
return (uiMgr.getControl(UIManager.BUFFERING_BAR));
}
flvplayback_internal function _scrubStart():void{
var _local1:Number;
var _local2:VideoPlayer;
_local1 = playheadTime;
_local2 = videoPlayers[_visibleVP];
_volume = _local2.volume;
_local2.volume = 0;
dispatchEvent(new VideoEvent(VideoEvent.STATE_CHANGE, false, false, VideoState.SEEKING, _local1, _visibleVP));
dispatchEvent(new VideoEvent(VideoEvent.SCRUB_START, false, false, VideoState.SEEKING, _local1, _visibleVP));
}
public function get align():String{
var _local1:VideoPlayer;
_local1 = videoPlayers[_activeVP];
return (_local1.align);
}
flvplayback_internal function handleAutoLayoutEvent(_arg1:AutoLayoutEvent):void{
var _local2:VideoPlayerState;
var _local3:AutoLayoutEvent;
var _local4:Rectangle;
var _local5:Rectangle;
_local2 = videoPlayerStateDict[_arg1.currentTarget];
_local3 = AutoLayoutEvent(_arg1.clone());
_local3.oldBounds.x = (_local3.oldBounds.x + super.x);
_local3.oldBounds.y = (_local3.oldBounds.y + super.y);
_local3.oldRegistrationBounds.x = (_local3.oldRegistrationBounds.x + super.y);
_local3.oldRegistrationBounds.y = (_local3.oldRegistrationBounds.y + super.y);
_local3.vp = _local2.index;
dispatchEvent(_local3);
if (((!(resizingNow)) && ((_local2.index == _visibleVP)))){
_local4 = Rectangle(_arg1.oldBounds.clone());
_local5 = Rectangle(_arg1.oldRegistrationBounds.clone());
_local4.x = (_local4.x + super.x);
_local4.y = (_local4.y + super.y);
_local5.x = (_local5.x + super.y);
_local5.y = (_local5.y + super.y);
dispatchEvent(new LayoutEvent(LayoutEvent.LAYOUT, false, false, _local4, _local5));
};
}
public function findNextCuePointWithName(_arg1:Object):Object{
var _local2:CuePointManager;
_local2 = cuePointMgrs[_activeVP];
return (_local2.getNextCuePointWithName(_arg1));
}
public function set playButton(_arg1:Sprite):void{
uiMgr.setControl(UIManager.PLAY_BUTTON, _arg1);
}
public function set bitrate(_arg1:Number):void{
ncMgr.bitrate = _arg1;
}
public function set bufferingBarHidesAndDisablesOthers(_arg1:Boolean):void{
uiMgr.bufferingBarHidesAndDisablesOthers = _arg1;
}
override public function get soundTransform():SoundTransform{
var _local1:VideoPlayer;
var _local2:SoundTransform;
_local1 = videoPlayers[_visibleVP];
_local2 = _local1.soundTransform;
if (scrubbing){
_local2.volume = _volume;
};
return (_local2);
}
public function get stateResponsive():Boolean{
var _local1:VideoPlayer;
_local1 = videoPlayers[_activeVP];
return (_local1.stateResponsive);
}
public function get idleTimeout():Number{
var _local1:VideoPlayer;
_local1 = videoPlayers[_activeVP];
return (_local1.idleTimeout);
}
override public function get height():Number{
var _local1:VideoPlayer;
if (isLivePreview){
return (livePreviewHeight);
};
_local1 = videoPlayers[_visibleVP];
return (_local1.height);
}
public function set registrationWidth(_arg1:Number):void{
width = _arg1;
}
public function get metadata():Object{
var _local1:VideoPlayer;
_local1 = videoPlayers[_activeVP];
return (_local1.metadata);
}
public function set skinBackgroundColor(_arg1:uint):void{
uiMgr.skinBackgroundColor = _arg1;
}
public function get volume():Number{
return (_volume);
}
public function play(_arg1:String=null, _arg2:Number=NaN, _arg3:Boolean=false):void{
var _local4:VideoPlayerState;
var _local5:VideoPlayer;
if (_arg1 == null){
if (!_firstStreamShown){
_local4 = videoPlayerStates[_activeVP];
queueCmd(_local4, QueuedCommand.PLAY);
} else {
_local5 = videoPlayers[_activeVP];
_local5.play();
};
} else {
if (_arg1 == this.source){
return;
};
this.autoPlay = true;
this.totalTime = _arg2;
this.isLive = _arg3;
this.source = _arg1;
};
}
public function get paused():Boolean{
return ((state == VideoState.PAUSED));
}
flvplayback_internal function handleVideoEvent(_arg1:VideoEvent):void{
var _local2:VideoPlayerState;
var _local3:CuePointManager;
var _local4:VideoEvent;
var _local5:String;
var _local6:Number;
_local2 = videoPlayerStateDict[_arg1.currentTarget];
_local3 = cuePointMgrs[_local2.index];
_local4 = VideoEvent(_arg1.clone());
_local4.vp = _local2.index;
_local5 = ((((_local2.index == _visibleVP)) && (scrubbing))) ? VideoState.SEEKING : _arg1.state;
switch (_arg1.type){
case VideoEvent.AUTO_REWOUND:
dispatchEvent(_local4);
dispatchEvent(new VideoEvent(VideoEvent.REWIND, false, false, _local5, _arg1.playheadTime, _local2.index));
_local3.resetASCuePointIndex(_arg1.playheadTime);
break;
case VideoEvent.PLAYHEAD_UPDATE:
_local4.state = _local5;
dispatchEvent(_local4);
if (((!(isNaN(_local2.preSeekTime))) && (!((_arg1.state == VideoState.SEEKING))))){
_local6 = _local2.preSeekTime;
_local2.preSeekTime = NaN;
_local3.resetASCuePointIndex(_arg1.playheadTime);
dispatchEvent(new VideoEvent(VideoEvent.SEEKED, false, false, _arg1.state, _arg1.playheadTime, _local2.index));
if (_local6 < _arg1.playheadTime){
dispatchEvent(new VideoEvent(VideoEvent.FAST_FORWARD, false, false, _arg1.state, _arg1.playheadTime, _local2.index));
} else {
if (_local6 > _arg1.playheadTime){
dispatchEvent(new VideoEvent(VideoEvent.REWIND, false, false, _arg1.state, _arg1.playheadTime, _local2.index));
};
};
};
_local3.dispatchASCuePoints();
break;
case VideoEvent.STATE_CHANGE:
if ((((_local2.index == _visibleVP)) && (scrubbing))){
break;
};
if (_arg1.state == VideoState.RESIZING){
break;
};
if ((((((_local2.prevState == VideoState.LOADING)) && (_local2.autoPlay))) && ((_arg1.state == VideoState.STOPPED)))){
return;
};
if ((((((((_arg1.state == VideoState.CONNECTION_ERROR)) && ((_arg1.vp == _visibleVP)))) && (!(_firstStreamShown)))) && (uiMgr.skinReady))){
showFirstStream();
uiMgr.visible = true;
if (uiMgr.skin == ""){
uiMgr.hookUpCustomComponents();
};
if (skinShowTimer != null){
skinShowTimer.reset();
skinShowTimer = null;
};
};
_local2.prevState = _arg1.state;
_local4.state = _local5;
dispatchEvent(_local4);
if (_local2.owner.state != _arg1.state){
return;
};
switch (_arg1.state){
case VideoState.BUFFERING:
dispatchEvent(new VideoEvent(VideoEvent.BUFFERING_STATE_ENTERED, false, false, _local5, _arg1.playheadTime, _local2.index));
break;
case VideoState.PAUSED:
dispatchEvent(new VideoEvent(VideoEvent.PAUSED_STATE_ENTERED, false, false, _local5, _arg1.playheadTime, _local2.index));
break;
case VideoState.PLAYING:
dispatchEvent(new VideoEvent(VideoEvent.PLAYING_STATE_ENTERED, false, false, _local5, _arg1.playheadTime, _local2.index));
break;
case VideoState.STOPPED:
dispatchEvent(new VideoEvent(VideoEvent.STOPPED_STATE_ENTERED, false, false, _local5, _arg1.playheadTime, _local2.index));
break;
};
break;
case VideoEvent.READY:
if (!_firstStreamReady){
if (_local2.index == _visibleVP){
_firstStreamReady = true;
if (((uiMgr.skinReady) && (!(_firstStreamShown)))){
uiMgr.visible = true;
if (uiMgr.skin == ""){
uiMgr.hookUpCustomComponents();
};
showFirstStream();
};
};
} else {
if (((((_firstStreamShown) && ((_arg1.state == VideoState.STOPPED)))) && (_local2.autoPlay))){
if (_local2.owner.isRTMP){
_local2.owner.play();
} else {
_local2.prevState = VideoState.STOPPED;
_local2.owner.playWhenEnoughDownloaded();
};
};
};
_local4.state = _local5;
dispatchEvent(_local4);
break;
case VideoEvent.CLOSE:
case VideoEvent.COMPLETE:
_local4.state = _local5;
dispatchEvent(_local4);
break;
};
}
public function set volumeBar(_arg1:Sprite):void{
uiMgr.setControl(UIManager.VOLUME_BAR, _arg1);
}
public function set fullScreenBackgroundColor(_arg1:uint):void{
uiMgr.fullScreenBackgroundColor = _arg1;
}
public function get isLive():Boolean{
var _local1:VideoPlayerState;
var _local2:VideoPlayer;
_local1 = videoPlayerStates[_activeVP];
if (_local1.isLiveSet){
return (_local1.isLive);
};
_local2 = videoPlayers[_activeVP];
return (_local2.isLive);
}
public function get bufferTime():Number{
var _local1:VideoPlayer;
_local1 = videoPlayers[_activeVP];
return (_local1.bufferTime);
}
public function get registrationHeight():Number{
var _local1:VideoPlayer;
_local1 = videoPlayers[_visibleVP];
return (_local1.registrationHeight);
}
public function get playPauseButton():Sprite{
return (uiMgr.getControl(UIManager.PLAY_PAUSE_BUTTON));
}
flvplayback_internal function showFirstStream():void{
var _local1:VideoPlayer;
var _local2:int;
var _local3:VideoPlayerState;
var _local4:int;
_firstStreamShown = true;
_local1 = videoPlayers[_visibleVP];
_local1.visible = true;
if (!scrubbing){
_soundTransform.volume = _volume;
_local1.soundTransform = _soundTransform;
};
_local2 = 0;
while (_local2 < videoPlayers.length) {
_local1 = videoPlayers[_local2];
if (_local1 != null){
_local3 = videoPlayerStates[_local2];
if ((((_local1.state == VideoState.STOPPED)) && (_local3.autoPlay))){
if (_local1.isRTMP){
_local1.play();
} else {
_local3.prevState = VideoState.STOPPED;
_local1.playWhenEnoughDownloaded();
};
};
if (_local3.cmdQueue != null){
_local4 = 0;
while (_local4 < _local3.cmdQueue.length) {
switch (_local3.cmdQueue[_local4].type){
case QueuedCommand.PLAY:
_local1.play();
break;
case QueuedCommand.PAUSE:
_local1.pause();
break;
case QueuedCommand.STOP:
_local1.stop();
break;
case QueuedCommand.SEEK:
_local1.seek(_local3.cmdQueue[_local4].time);
break;
case QueuedCommand.PLAY_WHEN_ENOUGH:
_local1.playWhenEnoughDownloaded();
break;
};
_local4++;
};
_local3.cmdQueue = null;
};
};
_local2++;
};
}
public function set volumeBarScrubTolerance(_arg1:Number):void{
uiMgr.volumeBarScrubTolerance = _arg1;
}
public function set skinBackgroundAlpha(_arg1:Number):void{
uiMgr.skinBackgroundAlpha = _arg1;
}
public function get playheadUpdateInterval():Number{
var _local1:VideoPlayer;
_local1 = videoPlayers[_activeVP];
return (_local1.playheadUpdateInterval);
}
public function set muteButton(_arg1:Sprite):void{
uiMgr.setControl(UIManager.MUTE_BUTTON, _arg1);
}
public function set skinScaleMaximum(_arg1:Number){
uiMgr.skinScaleMaximum = _arg1;
}
public function enterFullScreenDisplayState():void{
uiMgr.enterFullScreenDisplayState();
}
flvplayback_internal function handleMetadataEvent(_arg1:MetadataEvent):void{
var _local2:VideoPlayerState;
var _local3:CuePointManager;
var _local4:MetadataEvent;
_local2 = videoPlayerStateDict[_arg1.currentTarget];
_local3 = cuePointMgrs[_local2.index];
switch (_arg1.type){
case MetadataEvent.METADATA_RECEIVED:
_local3.processFLVCuePoints(_arg1.info.cuePoints);
break;
case MetadataEvent.CUE_POINT:
if (!_local3.isFLVCuePointEnabled(_arg1.info)){
return;
};
break;
};
_local4 = MetadataEvent(_arg1.clone());
_local4.vp = _local2.index;
dispatchEvent(_local4);
}
public function playWhenEnoughDownloaded():void{
var _local1:VideoPlayerState;
var _local2:VideoPlayer;
if (!_firstStreamShown){
_local1 = videoPlayerStates[_activeVP];
queueCmd(_local1, QueuedCommand.PLAY_WHEN_ENOUGH);
} else {
_local2 = videoPlayers[_activeVP];
_local2.playWhenEnoughDownloaded();
};
}
public function get bitrate():Number{
return (ncMgr.bitrate);
}
public function get autoRewind():Boolean{
var _local1:VideoPlayer;
_local1 = videoPlayers[_activeVP];
return (_local1.autoRewind);
}
public function get fullScreenBackgroundColor():uint{
return (uiMgr.fullScreenBackgroundColor);
}
public function get skin():String{
return (uiMgr.skin);
}
public function set registrationX(_arg1:Number):void{
super.x = _arg1;
}
public function set registrationY(_arg1:Number):void{
super.y = _arg1;
}
public function setSize(_arg1:Number, _arg2:Number):void{
var _local3:Rectangle;
var _local4:Rectangle;
var _local5:int;
var _local6:VideoPlayer;
_local3 = new Rectangle(x, y, this.width, this.height);
_local4 = new Rectangle(registrationX, registrationY, registrationWidth, registrationHeight);
if (isLivePreview){
livePreviewWidth = _arg1;
livePreviewHeight = _arg2;
if (previewImage_mc != null){
previewImage_mc.width = _arg1;
previewImage_mc.height = _arg2;
};
preview_mc.box_mc.width = _arg1;
preview_mc.box_mc.height = _arg2;
if ((((preview_mc.box_mc.width < preview_mc.icon_mc.width)) || ((preview_mc.box_mc.height < preview_mc.icon_mc.height)))){
preview_mc.icon_mc.visible = false;
} else {
preview_mc.icon_mc.visible = true;
preview_mc.icon_mc.x = ((preview_mc.box_mc.width - preview_mc.icon_mc.width) / 2);
preview_mc.icon_mc.y = ((preview_mc.box_mc.height - preview_mc.icon_mc.height) / 2);
};
dispatchEvent(new LayoutEvent(LayoutEvent.LAYOUT, false, false, _local3, _local4));
return;
};
resizingNow = true;
_local5 = 0;
while (_local5 < videoPlayers.length) {
_local6 = videoPlayers[_local5];
if (_local6 != null){
_local6.setSize(_arg1, _arg2);
};
_local5++;
};
resizingNow = false;
dispatchEvent(new LayoutEvent(LayoutEvent.LAYOUT, false, false, _local3, _local4));
}
public function get isRTMP():Boolean{
var _local1:VideoPlayer;
if (isLivePreview){
return (true);
};
_local1 = videoPlayers[_activeVP];
return (_local1.isRTMP);
}
public function set preview(_arg1:String):void{
var filename = _arg1;
if (!isLivePreview){
return;
};
previewImageUrl = filename;
if (previewImage_mc != null){
removeChild(previewImage_mc);
};
previewImage_mc = new Loader();
previewImage_mc.contentLoaderInfo.addEventListener(Event.COMPLETE, onCompletePreview);
previewImage_mc.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, function (_arg1:IOErrorEvent):void{
});
previewImage_mc.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR, function (_arg1:SecurityErrorEvent):void{
});
addChildAt(previewImage_mc, 1);
previewImage_mc.load(new URLRequest(previewImageUrl));
}
override public function set width(_arg1:Number):void{
var _local2:Rectangle;
var _local3:Rectangle;
var _local4:int;
var _local5:VideoPlayer;
if (isLivePreview){
setSize(_arg1, this.height);
return;
};
_local2 = new Rectangle(x, y, width, height);
_local3 = new Rectangle(registrationX, registrationY, registrationWidth, registrationHeight);
resizingNow = true;
_local4 = 0;
while (_local4 < videoPlayers.length) {
_local5 = videoPlayers[_local4];
if (_local5 != null){
_local5.width = _arg1;
};
_local4++;
};
resizingNow = false;
dispatchEvent(new LayoutEvent(LayoutEvent.LAYOUT, false, false, _local2, _local3));
}
public function get playButton():Sprite{
return (uiMgr.getControl(UIManager.PLAY_BUTTON));
}
public function set pauseButton(_arg1:Sprite):void{
uiMgr.setControl(UIManager.PAUSE_BUTTON, _arg1);
}
public function get bytesTotal():uint{
var _local1:VideoPlayer;
_local1 = videoPlayers[_activeVP];
return (_local1.bytesTotal);
}
public function seekToPrevNavCuePoint(_arg1:Number=NaN):void{
var _local2:Object;
var _local3:Number;
var _local4:VideoPlayer;
if (((isNaN(_arg1)) || ((_arg1 < 0)))){
_local4 = videoPlayers[_activeVP];
_arg1 = _local4.playheadTime;
};
_local2 = findNearestCuePoint(_arg1, CuePointType.NAVIGATION);
if (_local2 == null){
seek(0);
return;
};
_local3 = _local2.index;
while ((((_local3 >= 0)) && (((!(isFLVCuePointEnabled(_local2.array[_local3]))) || ((_local2.array[_local3].time >= (_arg1 - _seekToPrevOffset))))))) {
_local3--;
};
if (_local3 < 0){
seek(0);
} else {
seek(_local2.array[_local3].time);
};
}
public function get autoPlay():Boolean{
var _local1:VideoPlayerState;
_local1 = videoPlayerStates[_activeVP];
return (_local1.autoPlay);
}
public function set playheadPercentage(_arg1:Number):void{
seekPercent(_arg1);
}
public function isFLVCuePointEnabled(_arg1):Boolean{
var _local2:CuePointManager;
_local2 = cuePointMgrs[_activeVP];
return (_local2.isFLVCuePointEnabled(_arg1));
}
public function get buffering():Boolean{
return ((state == VideoState.BUFFERING));
}
public function get volumeBarScrubTolerance():Number{
return (uiMgr.volumeBarScrubTolerance);
}
public function get skinBackgroundColor():uint{
return (uiMgr.skinBackgroundColor);
}
public function get visibleVideoPlayerIndex():uint{
return (_visibleVP);
}
public function set stopButton(_arg1:Sprite):void{
uiMgr.setControl(UIManager.STOP_BUTTON, _arg1);
}
public function get skinBackgroundAlpha():Number{
return (uiMgr.skinBackgroundAlpha);
}
public function get skinScaleMaximum():Number{
return (uiMgr.skinScaleMaximum);
}
public function get preferredWidth():int{
var _local1:VideoPlayer;
_local1 = videoPlayers[_activeVP];
return (_local1.videoWidth);
}
override public function get width():Number{
var _local1:VideoPlayer;
if (isLivePreview){
return (livePreviewWidth);
};
_local1 = videoPlayers[_visibleVP];
return (_local1.width);
}
public function get stopped():Boolean{
return ((state == VideoState.STOPPED));
}
public function set fullScreenButton(_arg1:Sprite):void{
uiMgr.setControl(UIManager.FULL_SCREEN_BUTTON, _arg1);
}
public function get stopButton():Sprite{
return (uiMgr.getControl(UIManager.STOP_BUTTON));
}
public function set playheadUpdateInterval(_arg1:Number):void{
var _local2:CuePointManager;
var _local3:VideoPlayer;
if (_activeVP == 0){
_playheadUpdateInterval = _arg1;
};
_local2 = cuePointMgrs[_activeVP];
_local2.playheadUpdateInterval = _arg1;
_local3 = videoPlayers[_activeVP];
_local3.playheadUpdateInterval = _arg1;
}
private function createLivePreviewMovieClip():void{
preview_mc = new MovieClip();
preview_mc.name = "preview_mc";
preview_mc.box_mc = new MovieClip();
preview_mc.box_mc.name = "box_mc";
preview_mc.box_mc.graphics.beginFill(0);
preview_mc.box_mc.graphics.moveTo(0, 0);
preview_mc.box_mc.graphics.lineTo(0, 100);
preview_mc.box_mc.graphics.lineTo(100, 100);
preview_mc.box_mc.graphics.lineTo(100, 0);
preview_mc.box_mc.graphics.lineTo(0, 0);
preview_mc.box_mc.graphics.endFill();
preview_mc.addChild(preview_mc.box_mc);
preview_mc.icon_mc = new Icon();
preview_mc.icon_mc.name = "icon_mc";
preview_mc.addChild(preview_mc.icon_mc);
addChild(preview_mc);
}
public function set idleTimeout(_arg1:Number):void{
var _local2:VideoPlayer;
if (_activeVP == 0){
_idleTimeout = _arg1;
};
_local2 = videoPlayers[_activeVP];
_local2.idleTimeout = _arg1;
}
flvplayback_internal function skinLoaded():void{
var _local1:VideoPlayer;
if (isLivePreview){
return;
};
_local1 = videoPlayers[_visibleVP];
if (((((_firstStreamReady) || ((_local1.state == VideoState.CONNECTION_ERROR)))) || ((_local1.state == VideoState.DISCONNECTED)))){
uiMgr.visible = true;
if (!_firstStreamShown){
showFirstStream();
};
} else {
if (skinShowTimer != null){
skinShowTimer.reset();
skinShowTimer = null;
};
skinShowTimer = new Timer(DEFAULT_SKIN_SHOW_TIMER_INTERVAL, 1);
skinShowTimer.addEventListener(TimerEvent.TIMER, showSkinNow);
skinShowTimer.start();
};
dispatchEvent(new VideoEvent(VideoEvent.SKIN_LOADED, false, false, state, playheadTime, _visibleVP));
}
flvplayback_internal function _scrubFinish():void{
var _local1:Number;
var _local2:String;
var _local3:VideoPlayer;
_local1 = playheadTime;
_local2 = state;
_local3 = videoPlayers[_visibleVP];
_soundTransform.volume = _volume;
_local3.soundTransform = _soundTransform;
if (_local2 != VideoState.SEEKING){
dispatchEvent(new VideoEvent(VideoEvent.STATE_CHANGE, false, false, _local2, _local1, _visibleVP));
};
dispatchEvent(new VideoEvent(VideoEvent.SCRUB_FINISH, false, false, _local2, _local1, _visibleVP));
}
public function set playPauseButton(_arg1:Sprite):void{
uiMgr.setControl(UIManager.PLAY_PAUSE_BUTTON, _arg1);
}
public function set backButton(_arg1:Sprite):void{
uiMgr.setControl(UIManager.BACK_BUTTON, _arg1);
}
public function set cuePoints(_arg1:Array):void{
if (!_componentInspectorSetting){
return;
};
cuePointMgrs[0].processCuePointsProperty(_arg1);
}
public function findCuePoint(_arg1, _arg2:String="all"):Object{
var _local3:CuePointManager;
_local3 = cuePointMgrs[_activeVP];
switch (_arg2){
case "event":
return (_local3.getCuePoint(_local3.eventCuePoints, false, _arg1));
case "navigation":
return (_local3.getCuePoint(_local3.navCuePoints, false, _arg1));
case "flv":
return (_local3.getCuePoint(_local3.flvCuePoints, false, _arg1));
case "actionscript":
return (_local3.getCuePoint(_local3.asCuePoints, false, _arg1));
case "all":
default:
return (_local3.getCuePoint(_local3.allCuePoints, false, _arg1));
};
}
public function get seekBarScrubTolerance():Number{
return (uiMgr.seekBarScrubTolerance);
}
flvplayback_internal function handleVideoProgressEvent(_arg1:VideoProgressEvent):void{
var _local2:VideoPlayerState;
var _local3:VideoProgressEvent;
_local2 = videoPlayerStateDict[_arg1.currentTarget];
_local3 = VideoProgressEvent(_arg1.clone());
_local3.vp = _local2.index;
dispatchEvent(_local3);
}
}
}//package fl.video
Section 137
//flvplayback_internal (fl.video.flvplayback_internal)
package fl.video {
public namespace flvplayback_internal = "http://www.adobe.com/2007/flash/flvplayback/internal";
}//package fl.video
Section 138
//FPADManager (fl.video.FPADManager)
package fl.video {
import flash.events.*;
import flash.net.*;
public class FPADManager {
flvplayback_internal var _parseResults:ParseResults;
flvplayback_internal var rtmpURL:String;
flvplayback_internal var _url:String;
flvplayback_internal var xmlLoader:URLLoader;
flvplayback_internal var xml:XML;
flvplayback_internal var _uriParam:String;
private var _owner:INCManager;
public static const VERSION:String = "2.1.0.14";
public static const SHORT_VERSION:String = "2.1";
public function FPADManager(_arg1:INCManager){
_owner = _arg1;
}
flvplayback_internal function connectXML(_arg1:String, _arg2:String, _arg3:String, _arg4:ParseResults):Boolean{
_uriParam = _arg2;
_parseResults = _arg4;
_url = ((_arg1 + "uri=") + _parseResults.protocol);
if (_parseResults.serverName != null){
_url = (_url + ("/" + _parseResults.serverName));
};
if (_parseResults.portNumber != null){
_url = (_url + (":" + _parseResults.portNumber));
};
if (_parseResults.wrappedURL != null){
_url = (_url + ("/?" + _parseResults.wrappedURL));
};
_url = (_url + ("/" + _parseResults.appName));
_url = (_url + _arg3);
xml = new XML();
xmlLoader = new URLLoader();
xmlLoader.addEventListener(Event.COMPLETE, xmlLoadEventHandler);
xmlLoader.addEventListener(IOErrorEvent.IO_ERROR, xmlLoadEventHandler);
xmlLoader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, xmlLoadEventHandler);
xmlLoader.load(new URLRequest(_url));
return (false);
}
flvplayback_internal function xmlLoadEventHandler(_arg1:Event):void{
var proxy:String;
var e = _arg1;
try {
if (e.type != Event.COMPLETE){
_owner.helperDone(this, false);
} else {
xml = new XML(xmlLoader.data);
if ((((xml == null)) || ((xml.localName() == null)))){
throw (new VideoError(VideoError.INVALID_XML, (("URL: \"" + _url) + "\" No root node found; if url is for an flv it must have .flv extension and take no parameters")));
} else {
if (xml.localName() != "fpad"){
throw (new VideoError(VideoError.INVALID_XML, (("URL: \"" + _url) + "\" Root node not fpad")));
};
};
proxy = null;
if ((((((xml.proxy.length() > 0)) && (xml.proxy.hasSimpleContent()))) && ((xml.proxy.*[0].nodeKind() == "text")))){
proxy = xml.proxy.*[0].toString();
};
if (proxy == null){
throw (new VideoError(VideoError.INVALID_XML, (("URL: \"" + _url) + "\" fpad xml requires proxy tag.")));
};
rtmpURL = ((((_parseResults.protocol + "/") + proxy) + "/?") + _uriParam);
_owner.helperDone(this, true);
};
} catch(err:Error) {
_owner.helperDone(this, false);
throw (err);
};
}
}
}//package fl.video
Section 139
//Icon (fl.video.Icon)
package fl.video {
import flash.display.*;
public dynamic class Icon extends MovieClip {
}
}//package fl.video
Section 140
//INCManager (fl.video.INCManager)
package fl.video {
import flash.net.*;
public interface INCManager {
function set timeout(_arg1:uint):void;
function get streamLength():Number;
function get timeout():uint;
function connectToURL(_arg1:String):Boolean;
function get streamName():String;
function get bitrate():Number;
function get streamHeight():int;
function helperDone(_arg1:Object, _arg2:Boolean):void;
function getProperty(_arg1:String);
function get streamWidth():int;
function connectAgain():Boolean;
function reconnect():void;
function set videoPlayer(_arg1:VideoPlayer):void;
function setProperty(_arg1:String, _arg2):void;
function set bitrate(_arg1:Number):void;
function get netConnection():NetConnection;
function get videoPlayer():VideoPlayer;
function get isRTMP():Boolean;
function close():void;
}
}//package fl.video
Section 141
//IVPEvent (fl.video.IVPEvent)
package fl.video {
public interface IVPEvent {
function set vp(_arg1:uint):void;
function get vp():uint;
function get type():String;
}
}//package fl.video
Section 142
//LayoutEvent (fl.video.LayoutEvent)
package fl.video {
import flash.events.*;
import flash.geom.*;
public class LayoutEvent extends Event {
private var _oldBounds:Rectangle;
private var _oldRegistrationBounds:Rectangle;
public static const LAYOUT:String = "layout";
public function LayoutEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false, _arg4:Rectangle=null, _arg5:Rectangle=null){
super(_arg1, _arg2, _arg3);
_oldBounds = _arg4;
_oldRegistrationBounds = _arg5;
}
public function get oldRegistrationBounds():Rectangle{
return (_oldRegistrationBounds);
}
override public function clone():Event{
return (new LayoutEvent(type, bubbles, cancelable, Rectangle(oldBounds.clone()), Rectangle(oldRegistrationBounds.clone())));
}
public function set oldRegistrationBounds(_arg1:Rectangle):void{
_oldRegistrationBounds = _arg1;
}
public function set oldBounds(_arg1:Rectangle):void{
_oldBounds = _arg1;
}
public function get oldBounds():Rectangle{
return (_oldBounds);
}
}
}//package fl.video
Section 143
//MetadataEvent (fl.video.MetadataEvent)
package fl.video {
import flash.events.*;
public class MetadataEvent extends Event implements IVPEvent {
private var _info:Object;
private var _vp:uint;
public static const METADATA_RECEIVED:String = "metadataReceived";
public static const CUE_POINT:String = "cuePoint";
public function MetadataEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false, _arg4:Object=null, _arg5:uint=0){
super(_arg1, _arg2, _arg3);
_info = _arg4;
_vp = _arg5;
}
public function get vp():uint{
return (_vp);
}
public function set info(_arg1:Object):void{
_info = _arg1;
}
override public function clone():Event{
return (new MetadataEvent(type, bubbles, cancelable, info, vp));
}
public function get info():Object{
return (_info);
}
public function set vp(_arg1:uint):void{
_vp = _arg1;
}
}
}//package fl.video
Section 144
//NCManager (fl.video.NCManager)
package fl.video {
import flash.events.*;
import flash.net.*;
import flash.utils.*;
public class NCManager implements INCManager {
public const DEFAULT_TIMEOUT:uint = 60000;
flvplayback_internal var _serverName:String;
flvplayback_internal var _tryNCTimer:Timer;
flvplayback_internal var _autoSenseBW:Boolean;
flvplayback_internal var _fpadZone:Number;
flvplayback_internal var _appName:String;
flvplayback_internal var _ncConnected:Boolean;
flvplayback_internal var _fpadMgr:FPADManager;
flvplayback_internal var _bitrate:Number;
flvplayback_internal var _timeoutTimer:Timer;
flvplayback_internal var _wrappedURL:String;
flvplayback_internal var _payload:Number;
flvplayback_internal var _proxyType:String;
flvplayback_internal var _nc:NetConnection;
flvplayback_internal var _streamLength:Number;
flvplayback_internal var _connTypeCounter:uint;
flvplayback_internal var _streamWidth:int;
flvplayback_internal var _ncUri:String;
flvplayback_internal var _contentPath:String;
flvplayback_internal var _smilMgr:SMILManager;
flvplayback_internal var _streamHeight:int;
flvplayback_internal var _isRTMP:Boolean;
flvplayback_internal var _tryNC:Array;
flvplayback_internal var _owner:VideoPlayer;
flvplayback_internal var _streams:Array;
flvplayback_internal var _portNumber:String;
flvplayback_internal var _streamName:String;
flvplayback_internal var _objectEncoding:uint;
public var fallbackServerName:String;
flvplayback_internal var _protocol:String;
public static const VERSION:String = "2.1.0.14";
public static const SHORT_VERSION:String = "2.1";
public function NCManager(){
_fpadZone = NaN;
_objectEncoding = ObjectEncoding.AMF0;
_proxyType = "best";
_timeoutTimer = new Timer(DEFAULT_TIMEOUT);
_timeoutTimer.addEventListener(TimerEvent.TIMER, this._onFMSConnectTimeOut);
_tryNCTimer = new Timer(1500, 1);
_tryNCTimer.addEventListener(TimerEvent.TIMER, this.nextConnect);
initNCInfo();
initOtherInfo();
_nc = null;
_ncConnected = false;
}
flvplayback_internal function initNCInfo():void{
_isRTMP = false;
_serverName = null;
_wrappedURL = null;
_portNumber = null;
_appName = null;
}
flvplayback_internal function cleanConns():void{
var _local1:uint;
_tryNCTimer.reset();
if (_tryNC != null){
_local1 = 0;
while (_local1 < _tryNC.length) {
if (_tryNC[_local1] != null){
_tryNC[_local1].removeEventListener(NetStatusEvent.NET_STATUS, connectOnStatus);
if (_tryNC[_local1].client.pending){
_tryNC[_local1].addEventListener(NetStatusEvent.NET_STATUS, disconnectOnStatus);
} else {
_tryNC[_local1].close();
};
};
_tryNC[_local1] = null;
_local1++;
};
_tryNC = null;
};
}
public function get streamWidth():int{
return (_streamWidth);
}
public function connectToURL(_arg1:String):Boolean{
var parseResults:ParseResults;
var canReuse:Boolean;
var name:String;
var url = _arg1;
initOtherInfo();
_contentPath = url;
if ((((_contentPath == null)) || ((_contentPath == "")))){
throw (new VideoError(VideoError.INVALID_SOURCE));
};
parseResults = parseURL(_contentPath);
if ((((parseResults.streamName == null)) || ((parseResults.streamName == "")))){
throw (new VideoError(VideoError.INVALID_SOURCE, url));
};
if (parseResults.isRTMP){
canReuse = canReuseOldConnection(parseResults);
_isRTMP = true;
_protocol = parseResults.protocol;
_streamName = parseResults.streamName;
_serverName = parseResults.serverName;
_wrappedURL = parseResults.wrappedURL;
_portNumber = parseResults.portNumber;
_appName = parseResults.appName;
if ((((((((_appName == null)) || ((_appName == "")))) || ((_streamName == null)))) || ((_streamName == "")))){
throw (new VideoError(VideoError.INVALID_SOURCE, url));
};
_autoSenseBW = (_streamName.indexOf(",") >= 0);
return (((canReuse) || (connectRTMP())));
//unresolved jump
};
name = parseResults.streamName;
if ((((((((name.indexOf("?") < 0)) && ((((name.length < 4)) || (!((name.slice(-4).toLowerCase() == ".txt"))))))) && ((((name.length < 4)) || (!((name.slice(-4).toLowerCase() == ".xml"))))))) && ((((name.length < 5)) || (!((name.slice(-5).toLowerCase() == ".smil"))))))){
canReuse = canReuseOldConnection(parseResults);
_isRTMP = false;
_streamName = name;
return (((canReuse) || (connectHTTP())));
};
if (name.indexOf("/fms/fpad") >= 0){
try {
return (connectFPAD(name));
} catch(err:Error) {
};
};
_smilMgr = new SMILManager(this);
return (_smilMgr.connectXML(name));
}
public function get streamName():String{
return (_streamName);
}
flvplayback_internal function reconnectOnStatus(_arg1:NetStatusEvent):void{
if ((((_arg1.info.code == "NetConnection.Connect.Failed")) || ((_arg1.info.code == "NetConnection.Connect.Rejected")))){
_nc = null;
_ncConnected = false;
_owner.ncReconnected();
};
}
public function get videoPlayer():VideoPlayer{
return (_owner);
}
flvplayback_internal function getStreamLengthResult(_arg1:Number):void{
if (_arg1 > 0){
_streamLength = _arg1;
};
_owner.ncConnected();
}
flvplayback_internal function canReuseOldConnection(_arg1:ParseResults):Boolean{
if ((((_nc == null)) || (!(_ncConnected)))){
return (false);
};
if (!_arg1.isRTMP){
if (!_isRTMP){
return (true);
};
_owner.close();
_nc = null;
_ncConnected = false;
initNCInfo();
return (false);
};
if (_isRTMP){
if ((((((((((_arg1.serverName == _serverName)) && ((_arg1.appName == _appName)))) && ((_arg1.protocol == _protocol)))) && ((_arg1.portNumber == _portNumber)))) && ((_arg1.wrappedURL == _wrappedURL)))){
return (true);
};
_owner.close();
_nc = null;
_ncConnected = false;
};
initNCInfo();
return (false);
}
public function getProperty(_arg1:String){
switch (_arg1){
case "fallbackServerName":
return (fallbackServerName);
case "fpadZone":
return (_fpadZone);
case "objectEncoding":
return (_objectEncoding);
case "proxyType":
return (_proxyType);
default:
throw (new VideoError(VideoError.UNSUPPORTED_PROPERTY, _arg1));
};
}
flvplayback_internal function connectRTMP():Boolean{
var _local1:int;
var _local2:uint;
_timeoutTimer.stop();
_timeoutTimer.start();
_tryNC = new Array();
_local1 = ((((_protocol == "rtmp:/")) || ((_protocol == "rtmpe:/")))) ? 2 : 1;
_local2 = 0;
while (_local2 < _local1) {
_tryNC[_local2] = new NetConnection();
_tryNC[_local2].objectEncoding = _objectEncoding;
_tryNC[_local2].proxyType = _proxyType;
if (!isNaN(_fpadZone)){
_tryNC[_local2].fpadZone = _fpadZone;
};
_tryNC[_local2].client = new ConnectClient(this, _tryNC[_local2], _local2);
_tryNC[_local2].addEventListener(NetStatusEvent.NET_STATUS, connectOnStatus);
_local2++;
};
nextConnect();
return (false);
}
public function reconnect():void{
if (!_isRTMP){
throw (new Error("Cannot call reconnect on an http connection"));
};
_nc.client = new ReconnectClient(this);
_nc.addEventListener(NetStatusEvent.NET_STATUS, reconnectOnStatus);
_nc.connect(_ncUri, false);
}
public function helperDone(_arg1:Object, _arg2:Boolean):void{
var _local3:ParseResults;
var _local4:String;
var _local5:Boolean;
var _local6:uint;
var _local7:Number;
if (!_arg2){
_nc = null;
_ncConnected = false;
_owner.ncConnected();
_smilMgr = null;
_fpadMgr = null;
return;
};
_local5 = false;
if (_arg1 == _fpadMgr){
_local4 = _fpadMgr.rtmpURL;
_fpadMgr = null;
_local3 = parseURL(_local4);
_isRTMP = _local3.isRTMP;
_protocol = _local3.protocol;
_serverName = _local3.serverName;
_portNumber = _local3.portNumber;
_wrappedURL = _local3.wrappedURL;
_appName = _local3.appName;
_streamName = _local3.streamName;
_local7 = _fpadZone;
_fpadZone = NaN;
connectRTMP();
_fpadZone = _local7;
return;
};
if (_arg1 != _smilMgr){
return;
};
_streamWidth = _smilMgr.width;
_streamHeight = _smilMgr.height;
_local4 = _smilMgr.baseURLAttr[0];
if (((!((_local4 == null))) && (!((_local4 == ""))))){
if (_local4.charAt((_local4.length - 1)) != "/"){
_local4 = (_local4 + "/");
};
_local3 = parseURL(_local4);
_isRTMP = _local3.isRTMP;
_local5 = true;
_streamName = _local3.streamName;
if (_isRTMP){
_protocol = _local3.protocol;
_serverName = _local3.serverName;
_portNumber = _local3.portNumber;
_wrappedURL = _local3.wrappedURL;
_appName = _local3.appName;
if ((((_appName == null)) || ((_appName == "")))){
_smilMgr = null;
throw (new VideoError(VideoError.INVALID_XML, ("Base RTMP URL must include application name: " + _local4)));
};
if (_smilMgr.baseURLAttr.length > 1){
_local3 = parseURL(_smilMgr.baseURLAttr[1]);
if (_local3.serverName != null){
fallbackServerName = _local3.serverName;
};
};
};
};
_streams = _smilMgr.videoTags;
_smilMgr = null;
_local6 = 0;
while (_local6 < _streams.length) {
_local4 = _streams[_local6].src;
_local3 = parseURL(_local4);
if (!_local5){
_isRTMP = _local3.isRTMP;
_local5 = true;
if (_isRTMP){
_protocol = _local3.protocol;
if (_streams.length > 1){
throw (new VideoError(VideoError.INVALID_XML, "Cannot switch between multiple absolute RTMP URLs, must use meta tag base attribute."));
};
_serverName = _local3.serverName;
_portNumber = _local3.portNumber;
_wrappedURL = _local3.wrappedURL;
_appName = _local3.appName;
if ((((_appName == null)) || ((_appName == "")))){
throw (new VideoError(VideoError.INVALID_XML, ("Base RTMP URL must include application name: " + _local4)));
};
} else {
if ((((_local3.streamName.indexOf("/fms/fpad") >= 0)) && ((_streams.length > 1)))){
throw (new VideoError(VideoError.INVALID_XML, "Cannot switch between multiple absolute fpad URLs, must use meta tag base attribute."));
};
};
} else {
if (((((((!((_streamName == null))) && (!((_streamName == ""))))) && (!(_local3.isRelative)))) && ((_streams.length > 1)))){
throw (new VideoError(VideoError.INVALID_XML, "When using meta tag base attribute, cannot use absolute URLs for video or ref tag src attributes."));
};
};
_streams[_local6].parseResults = _local3;
_local6++;
};
_autoSenseBW = (_streams.length > 1);
if (!_autoSenseBW){
if (_streamName != null){
_streamName = (_streamName + _streams[0].parseResults.streamName);
} else {
_streamName = _streams[0].parseResults.streamName;
};
if (((_isRTMP) && ((_streamName.substr(-4).toLowerCase() == ".flv")))){
_streamName = _streamName.substr(0, (_streamName.length - 4));
};
_streamLength = _streams[0].dur;
};
if (_isRTMP){
connectRTMP();
} else {
if (((!((_streamName == null))) && ((_streamName.indexOf("/fms/fpad") >= 0)))){
connectFPAD(_streamName);
} else {
if (_autoSenseBW){
bitrateMatch();
};
connectHTTP();
_owner.ncConnected();
};
};
}
public function get netConnection():NetConnection{
return (_nc);
}
public function get bitrate():Number{
return (_bitrate);
}
public function setProperty(_arg1:String, _arg2):void{
switch (_arg1){
case "fallbackServerName":
fallbackServerName = String(_arg2);
break;
case "fpadZone":
_fpadZone = Number(_arg2);
break;
case "objectEncoding":
_objectEncoding = uint(_arg2);
break;
case "proxyType":
_proxyType = String(_arg2);
break;
default:
throw (new VideoError(VideoError.UNSUPPORTED_PROPERTY, _arg1));
};
}
public function get timeout():uint{
return (_timeoutTimer.delay);
}
public function set videoPlayer(_arg1:VideoPlayer):void{
_owner = _arg1;
}
flvplayback_internal function bitrateMatch():void{
var _local1:Number;
var _local2:uint;
var _local3:uint;
_local1 = _bitrate;
if (isNaN(_local1)){
_local1 = 0;
};
_local2 = _streams.length;
_local3 = 0;
while (_local3 < _streams.length) {
if (((isNaN(_streams[_local3].bitrate)) || ((_local1 >= _streams[_local3].bitrate)))){
_local2 = _local3;
break;
};
_local3++;
};
if (_local2 == _streams.length){
throw (new VideoError(VideoError.NO_BITRATE_MATCH));
};
if (_streamName != null){
_streamName = (_streamName + _streams[_local2].src);
} else {
_streamName = _streams[_local2].src;
};
if (((_isRTMP) && ((_streamName.substr(-4).toLowerCase() == ".flv")))){
_streamName = _streamName.substr(0, (_streamName.length - 4));
};
_streamLength = _streams[_local2].dur;
}
flvplayback_internal function disconnectOnStatus(_arg1:NetStatusEvent):void{
if (_arg1.info.code == "NetConnection.Connect.Success"){
_arg1.target.removeEventListener(NetStatusEvent.NET_STATUS, disconnectOnStatus);
_arg1.target.close();
};
}
flvplayback_internal function nextConnect(_arg1:TimerEvent=null):void{
var _local2:String;
var _local3:String;
var _local4:String;
if (_connTypeCounter == 0){
_local2 = _protocol;
_local3 = _portNumber;
} else {
_local3 = null;
if (_protocol == "rtmp:/"){
_local2 = "rtmpt:/";
} else {
if (_protocol == "rtmpe:/"){
_local2 = "rtmpte:/";
} else {
_tryNC.pop();
return;
};
};
};
_local4 = (((_local2 + ((_serverName)==null) ? "" : ((("/" + _serverName) + ((_local3)==null) ? "" : (":" + _local3)) + "/")) + ((_wrappedURL)==null) ? "" : (_wrappedURL + "/")) + _appName);
_tryNC[_connTypeCounter].client.pending = true;
_tryNC[_connTypeCounter].connect(_local4, _autoSenseBW);
if (_connTypeCounter < (_tryNC.length - 1)){
_connTypeCounter++;
_tryNCTimer.reset();
_tryNCTimer.start();
};
}
flvplayback_internal function connectFPAD(_arg1:String):Boolean{
var _local2:Object;
var _local3:String;
var _local4:String;
var _local5:String;
var _local6:ParseResults;
_local2 = /^(.+)(\?|\&)(uri=)([^&]+)(\&.*)?$/.exec(_arg1);
if (_local2 == null){
throw (new VideoError(VideoError.INVALID_SOURCE, ("fpad url must include uri parameter: " + _arg1)));
};
_local3 = (_local2[1] + _local2[2]);
_local4 = _local2[4];
_local5 = ((_local2[5])==undefined) ? "" : _local2[5];
_local6 = parseURL(_local4);
if (!_local6.isRTMP){
throw (new VideoError(VideoError.INVALID_SOURCE, ("fpad url uri parameter must be rtmp url: " + _arg1)));
};
_fpadMgr = new FPADManager(this);
return (_fpadMgr.connectXML(_local3, _local4, _local5, _local6));
}
flvplayback_internal function connectHTTP():Boolean{
_nc = new NetConnection();
_nc.connect(null);
_ncConnected = true;
return (true);
}
public function get isRTMP():Boolean{
return (_isRTMP);
}
public function get streamLength():Number{
return (_streamLength);
}
public function connectAgain():Boolean{
var _local1:int;
var _local2:String;
_local1 = _appName.indexOf("/");
if (_local1 < 0){
_local1 = _streamName.indexOf("/");
if (_local1 >= 0){
_appName = (_appName + "/");
_appName = (_appName + _streamName.slice(0, _local1));
_streamName = _streamName.slice((_local1 + 1));
};
return (false);
};
_local2 = _appName.slice((_local1 + 1));
_local2 = (_local2 + "/");
_local2 = (_local2 + _streamName);
_streamName = _local2;
_appName = _appName.slice(0, _local1);
close();
_payload = 0;
_connTypeCounter = 0;
cleanConns();
connectRTMP();
return (true);
}
flvplayback_internal function parseURL(_arg1:String):ParseResults{
var _local2:ParseResults;
var _local3:int;
var _local4:int;
var _local5:int;
var _local6:int;
var _local7:String;
var _local8:ParseResults;
_local2 = new ParseResults();
_local3 = 0;
_local4 = _arg1.indexOf(":/", _local3);
if (_local4 >= 0){
_local4 = (_local4 + 2);
_local2.protocol = _arg1.slice(_local3, _local4).toLowerCase();
_local2.isRelative = false;
} else {
_local2.isRelative = true;
};
if (((!((_local2.protocol == null))) && ((((((((((_local2.protocol == "rtmp:/")) || ((_local2.protocol == "rtmpt:/")))) || ((_local2.protocol == "rtmps:/")))) || ((_local2.protocol == "rtmpe:/")))) || ((_local2.protocol == "rtmpte:/")))))){
_local2.isRTMP = true;
_local3 = _local4;
if (_arg1.charAt(_local3) == "/"){
_local3++;
_local5 = _arg1.indexOf(":", _local3);
_local6 = _arg1.indexOf("/", _local3);
if (_local6 < 0){
if (_local5 < 0){
_local2.serverName = _arg1.slice(_local3);
} else {
_local4 = _local5;
_local2.portNumber = _arg1.slice(_local3, _local4);
_local3 = (_local4 + 1);
_local2.serverName = _arg1.slice(_local3);
};
return (_local2);
};
if ((((_local5 >= 0)) && ((_local5 < _local6)))){
_local4 = _local5;
_local2.serverName = _arg1.slice(_local3, _local4);
_local3 = (_local4 + 1);
_local4 = _local6;
_local2.portNumber = _arg1.slice(_local3, _local4);
} else {
_local4 = _local6;
_local2.serverName = _arg1.slice(_local3, _local4);
};
_local3 = (_local4 + 1);
};
if (_arg1.charAt(_local3) == "?"){
_local7 = _arg1.slice((_local3 + 1));
_local8 = parseURL(_local7);
if ((((_local8.protocol == null)) || (!(_local8.isRTMP)))){
throw (new VideoError(VideoError.INVALID_SOURCE, _arg1));
};
_local2.wrappedURL = "?";
_local2.wrappedURL = (_local2.wrappedURL + _local8.protocol);
if (_local8.serverName != null){
_local2.wrappedURL = (_local2.wrappedURL + "/");
_local2.wrappedURL = (_local2.wrappedURL + _local8.serverName);
};
if (_local8.portNumber != null){
_local2.wrappedURL = (_local2.wrappedURL + (":" + _local8.portNumber));
};
if (_local8.wrappedURL != null){
_local2.wrappedURL = (_local2.wrappedURL + "/");
_local2.wrappedURL = (_local2.wrappedURL + _local8.wrappedURL);
};
_local2.appName = _local8.appName;
_local2.streamName = _local8.streamName;
return (_local2);
};
_local4 = _arg1.indexOf("/", _local3);
if (_local4 < 0){
_local2.appName = _arg1.slice(_local3);
return (_local2);
};
_local2.appName = _arg1.slice(_local3, _local4);
_local3 = (_local4 + 1);
_local4 = _arg1.indexOf("/", _local3);
if (_local4 < 0){
_local2.streamName = _arg1.slice(_local3);
if (_local2.streamName.slice(-4).toLowerCase() == ".flv"){
_local2.streamName = _local2.streamName.slice(0, -4);
};
return (_local2);
};
_local2.appName = (_local2.appName + "/");
_local2.appName = (_local2.appName + _arg1.slice(_local3, _local4));
_local3 = (_local4 + 1);
_local2.streamName = _arg1.slice(_local3);
if (_local2.streamName.slice(-4).toLowerCase() == ".flv"){
_local2.streamName = _local2.streamName.slice(0, -4);
};
} else {
_local2.isRTMP = false;
_local2.streamName = _arg1;
};
return (_local2);
}
flvplayback_internal function initOtherInfo():void{
_contentPath = null;
_streamName = null;
_streamWidth = -1;
_streamHeight = -1;
_streamLength = NaN;
_streams = null;
_autoSenseBW = false;
_payload = 0;
_connTypeCounter = 0;
cleanConns();
}
public function set timeout(_arg1:uint):void{
_timeoutTimer.delay = _arg1;
}
flvplayback_internal function _onFMSConnectTimeOut(_arg1:TimerEvent=null):void{
cleanConns();
_nc = null;
_ncConnected = false;
if (!connectAgain()){
_owner.ncConnected();
};
}
public function get streamHeight():int{
return (_streamHeight);
}
flvplayback_internal function connectOnStatus(_arg1:NetStatusEvent):void{
var _local2:ParseResults;
_arg1.target.client.pending = false;
if (_arg1.info.code == "NetConnection.Connect.Success"){
_nc = _tryNC[_arg1.target.client.connIndex];
cleanConns();
} else {
if ((((((_arg1.info.code == "NetConnection.Connect.Rejected")) && (!((_arg1.info.ex == null))))) && ((_arg1.info.ex.code == 302)))){
_connTypeCounter = 0;
cleanConns();
_local2 = parseURL(_arg1.info.ex.redirect);
if (_local2.isRTMP){
_protocol = _local2.protocol;
_serverName = _local2.serverName;
_wrappedURL = _local2.wrappedURL;
_portNumber = _local2.portNumber;
_appName = _local2.appName;
if (_local2.streamName != null){
_appName = (_appName + ("/" + _local2.streamName));
};
connectRTMP();
} else {
tryFallBack();
};
} else {
if ((((((_arg1.info.code == "NetConnection.Connect.Failed")) || ((_arg1.info.code == "NetConnection.Connect.Rejected")))) && ((_arg1.target.client.connIndex == (_tryNC.length - 1))))){
if (!connectAgain()){
tryFallBack();
};
};
};
};
}
flvplayback_internal function onReconnected():void{
_ncConnected = true;
_owner.ncReconnected();
}
flvplayback_internal function tryFallBack():void{
if ((((_serverName == fallbackServerName)) || ((fallbackServerName == null)))){
_nc = null;
_ncConnected = false;
_owner.ncConnected();
} else {
_connTypeCounter = 0;
cleanConns();
_serverName = fallbackServerName;
connectRTMP();
};
}
public function set bitrate(_arg1:Number):void{
if (!_isRTMP){
_bitrate = _arg1;
};
}
flvplayback_internal function onConnected(_arg1:NetConnection, _arg2:Number):void{
var _local3:Array;
var _local4:uint;
var _local5:String;
_timeoutTimer.stop();
_arg1.removeEventListener(NetStatusEvent.NET_STATUS, connectOnStatus);
_nc = _arg1;
_ncUri = _nc.uri;
_ncConnected = true;
if (_autoSenseBW){
_bitrate = (_arg2 * 0x0400);
if (_streams != null){
bitrateMatch();
} else {
_local3 = _streamName.split(",");
_local4 = 0;
while (_local4 < _local3.length) {
_local5 = stripFrontAndBackWhiteSpace(_local3[_local4]);
if ((_local4 + 1) < _local3.length){
if (_arg2 <= Number(_local3[(_local4 + 1)])){
_streamName = _local5;
break;
};
} else {
_streamName = _local5;
break;
};
_local4 = (_local4 + 2);
};
if (_streamName.slice(-4).toLowerCase() == ".flv"){
_streamName = _streamName.slice(0, -4);
};
};
};
if (((!(_owner.isLive)) && (isNaN(_streamLength)))){
_nc.call("getStreamLength", new Responder(getStreamLengthResult), _streamName);
} else {
_owner.ncConnected();
};
}
public function close():void{
if (_nc){
_nc.close();
_ncConnected = false;
};
}
flvplayback_internal static function stripFrontAndBackWhiteSpace(_arg1:String):String{
var _local2:uint;
var _local3:uint;
var _local4:int;
var _local5:int;
_local3 = _arg1.length;
_local4 = 0;
_local5 = _local3;
_local2 = 0;
for (;_local2 < _local3;_local2++) {
switch (_arg1.charCodeAt(_local2)){
case 9:
case 10:
case 13:
case 32:
continue;
};
_local4 = _local2;
break;
};
_local2 = _local3;
for (;_local2 >= 0;_local2--) {
switch (_arg1.charCodeAt(_local2)){
case 9:
case 10:
case 13:
case 32:
continue;
};
_local5 = (_local2 + 1);
break;
};
if (_local5 <= _local4){
return ("");
};
return (_arg1.slice(_local4, _local5));
}
}
}//package fl.video
Section 145
//ParseResults (fl.video.ParseResults)
package fl.video {
public class ParseResults {
public var portNumber:String;
public var streamName:String;
public var serverName:String;
public var isRTMP:Boolean;
public var appName:String;
public var isRelative:Boolean;
public var protocol:String;
public var wrappedURL:String;
}
}//package fl.video
Section 146
//QueuedCommand (fl.video.QueuedCommand)
package fl.video {
public class QueuedCommand {
public var type:uint;
public var time:Number;
public var url:String;
public var isLive:Boolean;
public static const LOAD:uint = 1;
public static const STOP:uint = 3;
public static const PLAY_WHEN_ENOUGH:uint = 5;
public static const PLAY:uint = 0;
public static const PAUSE:uint = 2;
public static const SEEK:uint = 4;
public function QueuedCommand(_arg1:uint, _arg2:String, _arg3:Boolean, _arg4:Number){
this.type = _arg1;
this.url = _arg2;
this.isLive = _arg3;
this.time = _arg4;
}
}
}//package fl.video
Section 147
//ReconnectClient (fl.video.ReconnectClient)
package fl.video {
public class ReconnectClient {
public var owner:NCManager;
public function ReconnectClient(_arg1:NCManager){
this.owner = _arg1;
}
public function close():void{
}
public function onBWDone(... _args):void{
owner.onReconnected();
}
}
}//package fl.video
Section 148
//SkinErrorEvent (fl.video.SkinErrorEvent)
package fl.video {
import flash.events.*;
public class SkinErrorEvent extends ErrorEvent {
public static const SKIN_ERROR:String = "skinError";
public function SkinErrorEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false, _arg4:String=""){
super(_arg1, _arg2, _arg3, _arg4);
}
override public function clone():Event{
return (new SkinErrorEvent(type, bubbles, cancelable, text));
}
}
}//package fl.video
Section 149
//SMILManager (fl.video.SMILManager)
package fl.video {
import flash.events.*;
import flash.net.*;
public class SMILManager {
flvplayback_internal var width:int;
flvplayback_internal var xmlLoader:URLLoader;
flvplayback_internal var xml:XML;
flvplayback_internal var height:int;
private var _url:String;
flvplayback_internal var videoTags:Array;
flvplayback_internal var baseURLAttr:Array;
private var _owner:INCManager;
public static const VERSION:String = "2.1.0.14";
public static const SHORT_VERSION:String = "2.1";
public function SMILManager(_arg1:INCManager){
_owner = _arg1;
width = -1;
height = -1;
}
flvplayback_internal function parseVideo(_arg1:XML):Object{
var _local2:Object;
_local2 = new Object();
if (_arg1.@src.length() > 0){
_local2.src = _arg1.@src.toString();
};
if (_arg1.@["system-bitrate"].length() > 0){
_local2.bitrate = int(_arg1.@["system-bitrate"].toString());
};
if (_arg1.@dur.length() > 0){
_local2.dur = parseTime(_arg1.@dur.toString());
};
return (_local2);
}
flvplayback_internal function connectXML(_arg1:String):Boolean{
_url = fixURL(_arg1);
xmlLoader = new URLLoader();
xmlLoader.addEventListener(Event.COMPLETE, xmlLoadEventHandler);
xmlLoader.addEventListener(IOErrorEvent.IO_ERROR, xmlLoadEventHandler);
xmlLoader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, xmlLoadEventHandler);
xmlLoader.load(new URLRequest(_url));
return (false);
}
flvplayback_internal function parseSwitch(_arg1:XML):void{
var _local2:String;
var _local3:XML;
for (_local2 in _arg1.*) {
_local3 = _arg1.*[_local2];
if (_local3.nodeKind() != "element"){
} else {
switch (_local3.localName()){
case "video":
case "ref":
videoTags.push(parseVideo(_local3));
break;
default:
break;
};
};
};
}
flvplayback_internal function fixURL(_arg1:String):String{
var _local2:String;
if (/^(http:|https:)/i.test(_arg1)){
_local2 = ((_arg1.indexOf("?"))>=0) ? "&" : "?";
return ((((_arg1 + _local2) + "FLVPlaybackVersion=") + SHORT_VERSION));
};
return (_arg1);
}
flvplayback_internal function xmlLoadEventHandler(_arg1:Event):void{
var e = _arg1;
try {
if (e.type != Event.COMPLETE){
_owner.helperDone(this, false);
} else {
baseURLAttr = new Array();
videoTags = new Array();
xml = new XML(xmlLoader.data);
if ((((xml == null)) || ((xml.localName() == null)))){
throw (new VideoError(VideoError.INVALID_XML, (("URL: \"" + _url) + "\" No root node found; if url is for an flv it must have .flv extension and take no parameters")));
} else {
if (xml.localName() != "smil"){
throw (new VideoError(VideoError.INVALID_XML, (("URL: \"" + _url) + "\" Root node not smil")));
};
};
checkForIllegalNodes(xml, "element", ["head", "body"]);
if (xml.head.length() > 0){
parseHead(xml.head[0]);
};
if (xml.body.length() < 1){
throw (new VideoError(VideoError.INVALID_XML, (("URL: \"" + _url) + "\" Tag body is required.")));
} else {
parseBody(xml.body[0]);
};
_owner.helperDone(this, true);
};
} catch(err:Error) {
_owner.helperDone(this, false);
throw (err);
} finally {
xmlLoader.removeEventListener(Event.COMPLETE, xmlLoadEventHandler);
xmlLoader.removeEventListener(IOErrorEvent.IO_ERROR, xmlLoadEventHandler);
xmlLoader.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, xmlLoadEventHandler);
xmlLoader = null;
};
}
flvplayback_internal function checkForIllegalNodes(_arg1:XML, _arg2:String, _arg3:Array):void{
var _local4:String;
var _local5:Boolean;
var _local6:XML;
var _local7:String;
var _local8:String;
for (_local4 in _arg1.*) {
_local5 = false;
_local6 = _arg1.*[_local4];
if (_local6.nodeKind() != _arg2){
} else {
_local7 = _local6.localName();
for (_local8 in _arg3) {
if (_arg3[_local8] == _local7){
_local5 = true;
break;
};
};
if (!_local5){
throw (new VideoError(VideoError.INVALID_XML, (((((((("URL: \"" + _url) + "\" ") + _arg2) + " ") + _local7) + " not supported in ") + _arg1.localName()) + " tag.")));
};
};
};
}
flvplayback_internal function parseHead(_arg1:XML):void{
checkForIllegalNodes(_arg1, "element", ["meta", "layout"]);
if (_arg1.meta.length() > 0){
checkForIllegalNodes(_arg1.meta[0], "element", []);
checkForIllegalNodes(_arg1.meta[0], "attribute", ["base"]);
if (_arg1.meta.@base.length() > 0){
baseURLAttr.push(_arg1.meta.@base.toString());
};
};
if (_arg1.layout.length() > 0){
parseLayout(_arg1.layout[0]);
};
}
flvplayback_internal function parseBody(_arg1:XML):void{
var _local2:XML;
var _local3:String;
var _local4:Object;
if (((!((_arg1.*.length() == 1))) || (!((_arg1.*[0].nodeKind() == "element"))))){
throw (new VideoError(VideoError.INVALID_XML, (((("URL: \"" + _url) + "\" Tag ") + _arg1.localName()) + " is required to contain exactly one tag.")));
};
_local2 = _arg1.*[0];
_local3 = _local2.localName();
switch (_local3){
case "switch":
parseSwitch(_local2);
break;
case "video":
case "ref":
_local4 = parseVideo(_local2);
videoTags.push(_local4);
break;
default:
throw (new VideoError(VideoError.INVALID_XML, (((((("URL: \"" + _url) + "\" Tag ") + _local3) + " not supported in ") + _arg1.localName()) + " tag.")));
};
if (videoTags.length < 1){
throw (new VideoError(VideoError.INVALID_XML, (("URL: \"" + _url) + "\" At least one video of ref tag is required.")));
};
}
flvplayback_internal function parseTime(_arg1:String):Number{
var _local2:Object;
var _local3:Number;
var _local4:Number;
_local2 = /^((\d+):)?(\d+):((\d+)(.\d+)?)$/.exec(_arg1);
if (_local2 == null){
_local3 = Number(_arg1);
if (((isNaN(_local3)) || ((_local3 < 0)))){
throw (new VideoError(VideoError.INVALID_XML, ("Invalid dur value: " + _arg1)));
};
return (_local3);
//unresolved jump
};
_local4 = 0;
_local4 = (_local4 + ((uint(_local2[2]) * 60) * 60));
_local4 = (_local4 + (uint(_local2[3]) * 60));
_local4 = (_local4 + Number(_local2[4]));
return (_local4);
}
flvplayback_internal function parseLayout(_arg1:XML):void{
var _local2:XML;
var _local3:Number;
var _local4:Number;
checkForIllegalNodes(_arg1, "element", ["root-layout"]);
if (_arg1["root-layout"].length() > 1){
throw (new VideoError(VideoError.INVALID_XML, (("URL: \"" + _url) + "\" Only one base attribute supported in meta tag.")));
};
if (_arg1["root-layout"].length() > 0){
_local2 = _arg1["root-layout"][0];
if (_local2.@width.length() > 0){
_local3 = Number(_local2.@width[0]);
};
if (_local2.@height.length() > 0){
_local4 = Number(_local2.@height[0]);
};
if (((((((isNaN(_local3)) || ((_local3 < 0)))) || (isNaN(_local4)))) || ((_local4 < 0)))){
throw (new VideoError(VideoError.INVALID_XML, (((("URL: \"" + _url) + "\" Tag ") + _arg1.localName()) + " requires attributes width and height. Width and height must be numbers greater than or equal to 0.")));
};
width = Math.round(_local3);
height = Math.round(_local4);
};
}
}
}//package fl.video
Section 150
//SoundEvent (fl.video.SoundEvent)
package fl.video {
import flash.events.*;
import flash.media.*;
public class SoundEvent extends Event {
private var _soundTransform:SoundTransform;
public static const SOUND_UPDATE:String = "soundUpdate";
public function SoundEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false, _arg4:SoundTransform=null){
super(_arg1, _arg2, _arg3);
_soundTransform = _arg4;
}
public function get soundTransform():SoundTransform{
return (_soundTransform);
}
override public function clone():Event{
return (new SoundEvent(type, bubbles, cancelable, soundTransform));
}
}
}//package fl.video
Section 151
//UIManager (fl.video.UIManager)
package fl.video {
import flash.events.*;
import flash.display.*;
import flash.net.*;
import flash.geom.*;
import flash.utils.*;
public class UIManager {
flvplayback_internal var cacheStageBGColor:uint;
flvplayback_internal var _bufferingDelayTimer:Timer;
public var ctrlDataDict:Dictionary;
flvplayback_internal var _skinAutoHide:Boolean;
flvplayback_internal var placeholderLeft:Number;
flvplayback_internal var _playAfterScrub:Boolean;
public var customClips:Array;
flvplayback_internal var _skinFadeStartTime:int;
flvplayback_internal var delayedControls:Array;
flvplayback_internal var _lastScrubPos:Number;
flvplayback_internal var _skinAutoHideLastMotionTime:int;
flvplayback_internal var _volumeBarTimer:Timer;
flvplayback_internal var cacheFLVPlaybackScaleMode:Array;
flvplayback_internal var borderScale9Rects:Array;
flvplayback_internal var _volumeBarScrubTolerance:Number;
flvplayback_internal var fullScreenSourceRectMinAspectRatio:Number;
flvplayback_internal var _skin:String;
flvplayback_internal var fullScreenSourceRectMinHeight:uint;
flvplayback_internal var videoRight:Number;
flvplayback_internal var _bufferingBarHides:Boolean;
flvplayback_internal var placeholderRight:Number;
flvplayback_internal var cachedSoundLevel:Number;
flvplayback_internal var videoBottom:Number;
flvplayback_internal var border_mc:DisplayObject;
flvplayback_internal var borderAlpha:Number;
flvplayback_internal var borderColorTransform:ColorTransform;
flvplayback_internal var _skinFadingTimer:Timer;
flvplayback_internal var __visible:Boolean;
flvplayback_internal var borderColor:uint;
flvplayback_internal var cacheFLVPlaybackIndex:int;
flvplayback_internal var cacheFLVPlaybackLocation:Rectangle;
flvplayback_internal var _skinReady:Boolean;
flvplayback_internal var controls:Array;
flvplayback_internal var cacheFLVPlaybackAlign:Array;
flvplayback_internal var _skinAutoHideMouseX:Number;
flvplayback_internal var _skinAutoHideMouseY:Number;
flvplayback_internal var layout_mc:Sprite;
flvplayback_internal var cacheSkinAutoHide:Boolean;
flvplayback_internal var cacheStageScaleMode:String;
flvplayback_internal var videoTop:Number;
flvplayback_internal var _skinFadingMaxTime:int;
flvplayback_internal var placeholderTop:Number;
flvplayback_internal var _lastVolumePos:Number;
flvplayback_internal var mouseCaptureCtrl:int;
flvplayback_internal var _seekBarScrubTolerance:Number;
flvplayback_internal var borderPrevRect:Rectangle;
flvplayback_internal var skinTemplate:Sprite;
flvplayback_internal var _progressPercent:Number;
flvplayback_internal var videoLeft:Number;
flvplayback_internal var _fullScreenVideoWidth:Number;
flvplayback_internal var _isMuted:Boolean;
flvplayback_internal var _skinAutoHideTimer:Timer;
flvplayback_internal var _fullScreenBgColor:uint;
flvplayback_internal var _vc:FLVPlayback;
flvplayback_internal var _bufferingOn:Boolean;
flvplayback_internal var _seekBarTimer:Timer;
flvplayback_internal var _controlsEnabled:Boolean;
flvplayback_internal var _fullScreen:Boolean;
flvplayback_internal var placeholderBottom:Number;
flvplayback_internal var fullScreenSourceRectMinWidth:uint;
flvplayback_internal var _fullScreenTakeOver:Boolean;
flvplayback_internal var skin_mc:Sprite;
flvplayback_internal var _fullScreenAccel:Boolean;
flvplayback_internal var _fullScreenVideoHeight:Number;
flvplayback_internal var skinLoadDelayCount:uint;
flvplayback_internal var _skinFadingIn:Boolean;
flvplayback_internal var _skinAutoHideMotionTimeout:int;
flvplayback_internal var borderCopy:Sprite;
flvplayback_internal var cacheStageAlign:String;
flvplayback_internal var cacheFLVPlaybackParent:DisplayObjectContainer;
flvplayback_internal var skinLoader:Loader;
flvplayback_internal var _skinScaleMaximum:Number;
public static const VOLUME_BAR_HIT:int = 12;
public static const MUTE_OFF_BUTTON:int = 10;
public static const BACK_BUTTON:int = 5;
public static const FORWARD_BUTTON:int = 6;
public static const STOP_BUTTON:int = 2;
public static const NUM_BUTTONS:int = 13;
public static const NORMAL_STATE:uint = 0;
public static const SEEK_BAR_HANDLE:int = 3;
public static const PLAY_BUTTON:int = 1;
public static const MUTE_BUTTON:int = 15;
public static const DOWN_STATE:uint = 2;
public static const SEEK_BAR_SCRUB_TOLERANCE_DEFAULT:Number = 5;
public static const FULL_SCREEN_OFF_BUTTON:int = 8;
flvplayback_internal static const SKIN_AUTO_HIDE_MOTION_TIMEOUT_DEFAULT:Number = 3000;
public static const SEEK_BAR:int = 17;
public static const VOLUME_BAR_SCRUB_TOLERANCE_DEFAULT:Number = 0;
public static const FULL_SCREEN_ON_BUTTON:int = 7;
public static const FULL_SCREEN_BUTTON:int = 14;
public static const BUFFERING_BAR:int = 16;
public static const VERSION:String = "2.1.0.14";
public static const VOLUME_BAR_HANDLE:int = 11;
public static const PAUSE_BUTTON:int = 0;
flvplayback_internal static const SKIN_AUTO_HIDE_INTERVAL:Number = 200;
public static const OVER_STATE:uint = 1;
flvplayback_internal static const SKIN_FADING_INTERVAL:Number = 100;
public static const VOLUME_BAR:int = 18;
public static const SHORT_VERSION:String = "2.1";
public static const SEEK_BAR_INTERVAL_DEFAULT:Number = 250;
flvplayback_internal static const SKIN_FADING_MAX_TIME_DEFAULT:Number = 500;
public static const SEEK_BAR_HIT:int = 4;
public static const PLAY_PAUSE_BUTTON:int = 13;
public static const BUFFERING_DELAY_INTERVAL_DEFAULT:Number = 1000;
public static const MUTE_ON_BUTTON:int = 9;
public static const FULL_SCREEN_SOURCE_RECT_MIN_HEIGHT:uint = 240;
public static const NUM_CONTROLS:int = 19;
public static const VOLUME_BAR_INTERVAL_DEFAULT:Number = 250;
public static const FULL_SCREEN_SOURCE_RECT_MIN_WIDTH:uint = 320;
flvplayback_internal static var layoutNameToIndexMappings:Object = null;
flvplayback_internal static var buttonSkinLinkageIDs:Array = ["upLinkageID", "overLinkageID", "downLinkageID"];
flvplayback_internal static var layoutNameArray:Array = ["pause_mc", "play_mc", "stop_mc", null, null, "back_mc", "forward_mc", null, null, null, null, null, null, "playpause_mc", "fullScreenToggle_mc", "volumeMute_mc", "bufferingBar_mc", "seekBar_mc", "volumeBar_mc", "seekBarHandle_mc", "seekBarHit_mc", "seekBarProgress_mc", "seekBarFullness_mc", "volumeBarHandle_mc", "volumeBarHit_mc", "volumeBarProgress_mc", "volumeBarFullness_mc", "progressFill_mc"];
flvplayback_internal static var skinClassPrefixes:Array = ["pauseButton", "playButton", "stopButton", null, null, "backButton", "forwardButton", "fullScreenButtonOn", "fullScreenButtonOff", "muteButtonOn", "muteButtonOff", null, null, null, null, null, "bufferingBar", "seekBar", "volumeBar"];
flvplayback_internal static var customComponentClassNames:Array = ["PauseButton", "PlayButton", "StopButton", null, null, "BackButton", "ForwardButton", null, null, null, null, null, null, "PlayPauseButton", "FullScreenButton", "MuteButton", "BufferingBar", "SeekBar", "VolumeBar"];
public function UIManager(_arg1:FLVPlayback){
var vc = _arg1;
super();
_vc = vc;
_skin = null;
_skinAutoHide = false;
cacheSkinAutoHide = _skinAutoHide;
_skinFadingMaxTime = SKIN_FADING_MAX_TIME_DEFAULT;
_skinAutoHideMotionTimeout = SKIN_AUTO_HIDE_MOTION_TIMEOUT_DEFAULT;
_skinReady = true;
__visible = false;
_bufferingBarHides = false;
_controlsEnabled = true;
_lastScrubPos = 0;
_lastVolumePos = 0;
cachedSoundLevel = _vc.volume;
_isMuted = false;
controls = new Array();
customClips = null;
ctrlDataDict = new Dictionary(true);
skin_mc = null;
skinLoader = null;
skinTemplate = null;
layout_mc = null;
border_mc = null;
borderCopy = null;
borderPrevRect = null;
borderScale9Rects = null;
borderAlpha = 0.85;
borderColor = 4697035;
borderColorTransform = new ColorTransform(0, 0, 0, 0, 71, 171, 203, (0xFF * borderAlpha));
_seekBarScrubTolerance = SEEK_BAR_SCRUB_TOLERANCE_DEFAULT;
_volumeBarScrubTolerance = VOLUME_BAR_SCRUB_TOLERANCE_DEFAULT;
_bufferingOn = false;
mouseCaptureCtrl = -1;
_seekBarTimer = new Timer(SEEK_BAR_INTERVAL_DEFAULT);
_seekBarTimer.addEventListener(TimerEvent.TIMER, seekBarListener);
_volumeBarTimer = new Timer(VOLUME_BAR_INTERVAL_DEFAULT);
_volumeBarTimer.addEventListener(TimerEvent.TIMER, volumeBarListener);
_bufferingDelayTimer = new Timer(BUFFERING_DELAY_INTERVAL_DEFAULT, 1);
_bufferingDelayTimer.addEventListener(TimerEvent.TIMER, doBufferingDelay);
_skinAutoHideTimer = new Timer(SKIN_AUTO_HIDE_INTERVAL);
_skinAutoHideTimer.addEventListener(TimerEvent.TIMER, skinAutoHideHitTest);
_skinFadingTimer = new Timer(SKIN_FADING_INTERVAL);
_skinFadingTimer.addEventListener(TimerEvent.TIMER, skinFadeMore);
_vc.addEventListener(MetadataEvent.METADATA_RECEIVED, handleIVPEvent);
_vc.addEventListener(VideoEvent.PLAYHEAD_UPDATE, handleIVPEvent);
_vc.addEventListener(VideoProgressEvent.PROGRESS, handleIVPEvent);
_vc.addEventListener(VideoEvent.STATE_CHANGE, handleIVPEvent);
_vc.addEventListener(VideoEvent.READY, handleIVPEvent);
_vc.addEventListener(LayoutEvent.LAYOUT, handleLayoutEvent);
_vc.addEventListener(AutoLayoutEvent.AUTO_LAYOUT, handleLayoutEvent);
_vc.addEventListener(SoundEvent.SOUND_UPDATE, handleSoundEvent);
_vc.addEventListener(Event.ADDED_TO_STAGE, handleEvent);
_vc.addEventListener(Event.REMOVED_FROM_STAGE, handleEvent);
fullScreenSourceRectMinWidth = FULL_SCREEN_SOURCE_RECT_MIN_WIDTH;
fullScreenSourceRectMinHeight = FULL_SCREEN_SOURCE_RECT_MIN_HEIGHT;
fullScreenSourceRectMinAspectRatio = (FULL_SCREEN_SOURCE_RECT_MIN_WIDTH / FULL_SCREEN_SOURCE_RECT_MIN_HEIGHT);
_fullScreen = false;
_fullScreenTakeOver = true;
_fullScreenBgColor = 0;
_fullScreenAccel = false;
if (_vc.stage != null){
try {
_fullScreen = (_vc.stage.displayState == StageDisplayState.FULL_SCREEN);
_vc.stage.addEventListener(FullScreenEvent.FULL_SCREEN, handleFullScreenEvent);
} catch(se:SecurityError) {
};
};
if (layoutNameToIndexMappings == null){
initLayoutNameToIndexMappings();
};
}
public function get seekBarScrubTolerance():Number{
return (_seekBarScrubTolerance);
}
flvplayback_internal function removeButtonListeners(_arg1:Sprite):void{
if (_arg1 == null){
return;
};
_arg1.removeEventListener(MouseEvent.ROLL_OVER, handleButtonEvent);
_arg1.removeEventListener(MouseEvent.ROLL_OUT, handleButtonEvent);
_arg1.removeEventListener(MouseEvent.MOUSE_DOWN, handleButtonEvent);
_arg1.removeEventListener(MouseEvent.CLICK, handleButtonEvent);
_arg1.removeEventListener(Event.ENTER_FRAME, skinButtonControl);
}
public function set skinFadeTime(_arg1:int):void{
_skinFadingMaxTime = _arg1;
}
public function get skinFadeTime():int{
return (_skinFadingMaxTime);
}
flvplayback_internal function finishLoad(_arg1:Event):void{
var i:int;
var cachedActivePlayerIndex:int;
var state:String;
var j:int;
var e = _arg1;
try {
skinLoadDelayCount++;
if (skinLoadDelayCount < 2){
return;
} else {
_vc.removeEventListener(Event.ENTER_FRAME, finishLoad);
};
i = 0;
while (i < NUM_CONTROLS) {
if (delayedControls[i] != undefined){
setControl(i, delayedControls[i]);
};
i = (i + 1);
};
if (_fullScreenTakeOver){
enterFullScreenTakeOver();
} else {
exitFullScreenTakeOver();
};
layoutSkin();
setupSkinAutoHide(false);
skin_mc.visible = __visible;
_vc.addChild(skin_mc);
_skinReady = true;
_vc.skinLoaded();
cachedActivePlayerIndex = _vc.activeVideoPlayerIndex;
_vc.activeVideoPlayerIndex = _vc.visibleVideoPlayerIndex;
state = _vc.state;
j = 0;
while (j < NUM_CONTROLS) {
if (controls[j] == undefined){
} else {
setEnabledAndVisibleForState(j, state);
if (j < NUM_BUTTONS){
skinButtonControl(controls[j]);
};
};
j = (j + 1);
};
_vc.activeVideoPlayerIndex = cachedActivePlayerIndex;
} catch(err:Error) {
_vc.skinError(err.message);
removeSkin();
};
}
flvplayback_internal function downloadSkin():void{
if (skinLoader == null){
skinLoader = new Loader();
skinLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, handleLoad);
skinLoader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, handleLoadErrorEvent);
skinLoader.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR, handleLoadErrorEvent);
};
skinLoader.load(new URLRequest(_skin));
}
flvplayback_internal function removeSkin():void{
var i:int;
if (skinLoader != null){
try {
skinLoader.close();
} catch(e1:Error) {
};
skinLoader = null;
};
if (skin_mc != null){
i = 0;
while (i < NUM_CONTROLS) {
if (controls[i] == undefined){
} else {
if (i < NUM_BUTTONS){
removeButtonListeners(controls[i]);
};
delete ctrlDataDict[controls[i]];
delete controls[i];
};
i = (i + 1);
};
try {
skin_mc.parent.removeChild(skin_mc);
} catch(e2:Error) {
};
skin_mc = null;
};
skinTemplate = null;
layout_mc = null;
border_mc = null;
borderCopy = null;
borderPrevRect = null;
borderScale9Rects = null;
}
flvplayback_internal function positionBar(_arg1:Sprite, _arg2:String, _arg3:Number):void{
var ctrlData:ControlData;
var bar:DisplayObject;
var barData:ControlData;
var ctrl = _arg1;
var type = _arg2;
var percent = _arg3;
try {
if ((((ctrl["positionBar"] is Function)) && (ctrl["positionBar"](type, percent)))){
return;
};
} catch(re2:ReferenceError) {
};
ctrlData = ctrlDataDict[ctrl];
bar = ctrlData[(type + "_mc")];
if (bar == null){
return;
};
barData = ctrlDataDict[bar];
if (bar.parent == ctrl){
if (barData.fill_mc == null){
bar.scaleX = ((barData.origScaleX * percent) / 100);
} else {
positionMaskedFill(bar, percent);
};
} else {
bar.x = (ctrl.x + barData.leftMargin);
bar.y = (ctrl.y + barData.origY);
if (barData.fill_mc == null){
bar.width = ((((ctrl.width - barData.leftMargin) - barData.rightMargin) * percent) / 100);
} else {
positionMaskedFill(bar, percent);
};
};
}
flvplayback_internal function setupButtonSkin(_arg1:int):Sprite{
var _local2:String;
var _local3:Sprite;
var _local4:ControlData;
_local2 = skinClassPrefixes[_arg1];
if (_local2 == null){
return (null);
};
_local3 = new Sprite();
_local4 = new ControlData(this, _local3, null, _arg1);
ctrlDataDict[_local3] = _local4;
_local4.state_mc = new Array();
_local4.state_mc[NORMAL_STATE] = setupButtonSkinState(_local3, skinTemplate, (_local2 + "NormalState"));
_local4.state_mc[NORMAL_STATE].visible = true;
_local4.state_mc[OVER_STATE] = setupButtonSkinState(_local3, skinTemplate, (_local2 + "OverState"), _local4.state_mc[NORMAL_STATE]);
_local4.state_mc[DOWN_STATE] = setupButtonSkinState(_local3, skinTemplate, (_local2 + "DownState"), _local4.state_mc[NORMAL_STATE]);
_local4.disabled_mc = setupButtonSkinState(_local3, skinTemplate, (_local2 + "DisabledState"), _local4.state_mc[NORMAL_STATE]);
return (_local3);
}
public function get skinReady():Boolean{
return (_skinReady);
}
public function get skinAutoHide():Boolean{
return (_skinAutoHide);
}
flvplayback_internal function dispatchMessage(_arg1:int):void{
var cachedActivePlayerIndex:int;
var ctrl:Sprite;
var ctrlData:ControlData;
var handle:Sprite;
var index = _arg1;
if ((((index == SEEK_BAR_HANDLE)) || ((index == SEEK_BAR_HIT)))){
_vc._scrubStart();
};
cachedActivePlayerIndex = _vc.activeVideoPlayerIndex;
_vc.activeVideoPlayerIndex = _vc.visibleVideoPlayerIndex;
switch (index){
case PAUSE_BUTTON:
_vc.pause();
break;
case PLAY_BUTTON:
_vc.play();
break;
case STOP_BUTTON:
_vc.stop();
break;
case SEEK_BAR_HIT:
case SEEK_BAR_HANDLE:
ctrl = controls[SEEK_BAR];
ctrlData = ctrlDataDict[ctrl];
calcPercentageFromHandle(ctrl);
_lastScrubPos = ctrlData.percentage;
if (index == SEEK_BAR_HIT){
handle = controls[SEEK_BAR_HANDLE];
handle.x = handle.parent.mouseX;
handle.y = handle.parent.mouseY;
};
_vc.removeEventListener(VideoEvent.PLAYHEAD_UPDATE, handleIVPEvent);
if (((_vc.playing) || (_vc.buffering))){
_playAfterScrub = true;
} else {
if (_vc.state != VideoState.SEEKING){
_playAfterScrub = false;
};
};
_seekBarTimer.start();
startHandleDrag(ctrl);
_vc.pause();
break;
case VOLUME_BAR_HIT:
case VOLUME_BAR_HANDLE:
ctrl = controls[VOLUME_BAR];
ctrlData = ctrlDataDict[ctrl];
calcPercentageFromHandle(ctrl);
_lastVolumePos = ctrlData.percentage;
if (index == VOLUME_BAR_HIT){
handle = controls[VOLUME_BAR_HANDLE];
handle.x = handle.parent.mouseX;
handle.y = handle.parent.mouseY;
};
_vc.removeEventListener(SoundEvent.SOUND_UPDATE, handleSoundEvent);
_volumeBarTimer.start();
startHandleDrag(ctrl);
break;
case BACK_BUTTON:
_vc.seekToPrevNavCuePoint();
break;
case FORWARD_BUTTON:
_vc.seekToNextNavCuePoint();
break;
case MUTE_ON_BUTTON:
if (!_isMuted){
_isMuted = true;
cachedSoundLevel = _vc.volume;
_vc.volume = 0;
setEnabledAndVisibleForState(MUTE_OFF_BUTTON, VideoState.PLAYING);
skinButtonControl(controls[MUTE_OFF_BUTTON]);
setEnabledAndVisibleForState(MUTE_ON_BUTTON, VideoState.PLAYING);
skinButtonControl(controls[MUTE_ON_BUTTON]);
};
break;
case MUTE_OFF_BUTTON:
if (_isMuted){
_isMuted = false;
_vc.volume = cachedSoundLevel;
setEnabledAndVisibleForState(MUTE_OFF_BUTTON, VideoState.PLAYING);
skinButtonControl(controls[MUTE_OFF_BUTTON]);
setEnabledAndVisibleForState(MUTE_ON_BUTTON, VideoState.PLAYING);
skinButtonControl(controls[MUTE_ON_BUTTON]);
};
break;
case FULL_SCREEN_ON_BUTTON:
if (((!(_fullScreen)) && (!((_vc.stage == null))))){
enterFullScreenDisplayState();
setEnabledAndVisibleForState(FULL_SCREEN_OFF_BUTTON, VideoState.PLAYING);
skinButtonControl(controls[FULL_SCREEN_OFF_BUTTON]);
setEnabledAndVisibleForState(FULL_SCREEN_ON_BUTTON, VideoState.PLAYING);
skinButtonControl(controls[FULL_SCREEN_ON_BUTTON]);
};
break;
case FULL_SCREEN_OFF_BUTTON:
if (((_fullScreen) && (!((_vc.stage == null))))){
try {
_vc.stage.displayState = StageDisplayState.NORMAL;
} catch(se:SecurityError) {
};
setEnabledAndVisibleForState(FULL_SCREEN_OFF_BUTTON, VideoState.PLAYING);
skinButtonControl(controls[FULL_SCREEN_OFF_BUTTON]);
setEnabledAndVisibleForState(FULL_SCREEN_ON_BUTTON, VideoState.PLAYING);
skinButtonControl(controls[FULL_SCREEN_ON_BUTTON]);
};
break;
default:
throw (new Error("Unknown ButtonControl"));
};
_vc.activeVideoPlayerIndex = cachedActivePlayerIndex;
}
flvplayback_internal function handleFullScreenEvent(_arg1:FullScreenEvent):void{
_fullScreen = _arg1.fullScreen;
setEnabledAndVisibleForState(FULL_SCREEN_OFF_BUTTON, VideoState.PLAYING);
skinButtonControl(controls[FULL_SCREEN_OFF_BUTTON]);
setEnabledAndVisibleForState(FULL_SCREEN_ON_BUTTON, VideoState.PLAYING);
skinButtonControl(controls[FULL_SCREEN_ON_BUTTON]);
if (((_fullScreen) && (_fullScreenTakeOver))){
enterFullScreenTakeOver();
} else {
if (!_fullScreen){
exitFullScreenTakeOver();
};
};
}
flvplayback_internal function handleLayoutEvent(_arg1:LayoutEvent):void{
var _local2:int;
if (((((((_fullScreen) && (_fullScreenTakeOver))) && (_fullScreenAccel))) && (!((_vc.stage == null))))){
if (((((((((!((_vc.registrationX == 0))) || (!((_vc.registrationY == 0))))) || (!((_vc.parent == _vc.stage))))) || (!((_vc.registrationWidth == _vc.stage.stageWidth))))) || (!((_vc.registrationHeight == _vc.stage.stageHeight))))){
_vc.stage.displayState = StageDisplayState.NORMAL;
return;
};
_local2 = _vc.activeVideoPlayerIndex;
_vc.activeVideoPlayerIndex = _vc.visibleVideoPlayerIndex;
if (_vc.align != VideoAlign.CENTER){
cacheFLVPlaybackAlign[_vc.visibleVideoPlayerIndex] = _vc.align;
_vc.align = VideoAlign.CENTER;
};
if (_vc.scaleMode != VideoScaleMode.MAINTAIN_ASPECT_RATIO){
cacheFLVPlaybackScaleMode[_vc.visibleVideoPlayerIndex] = _vc.scaleMode;
_vc.scaleMode = VideoScaleMode.MAINTAIN_ASPECT_RATIO;
_vc.activeVideoPlayerIndex = _local2;
return;
};
_vc.activeVideoPlayerIndex = _local2;
};
layoutSkin();
setupSkinAutoHide(false);
}
flvplayback_internal function seekBarListener(_arg1:TimerEvent):void{
var _local2:int;
var _local3:Sprite;
var _local4:ControlData;
var _local5:Number;
_local2 = _vc.activeVideoPlayerIndex;
_vc.activeVideoPlayerIndex = _vc.visibleVideoPlayerIndex;
_local3 = controls[SEEK_BAR];
if (_local3 == null){
return;
};
_local4 = ctrlDataDict[_local3];
calcPercentageFromHandle(_local3);
_local5 = _local4.percentage;
if (_arg1 == null){
_seekBarTimer.stop();
if (_local5 != _lastScrubPos){
_vc.seekPercent(_local5);
};
_vc.addEventListener(VideoEvent.PLAYHEAD_UPDATE, handleIVPEvent);
if (_playAfterScrub){
_vc.play();
};
} else {
if (_vc.getVideoPlayer(_vc.visibleVideoPlayerIndex).state == VideoState.SEEKING){
} else {
if ((((((((_seekBarScrubTolerance <= 0)) || ((Math.abs((_local5 - _lastScrubPos)) > _seekBarScrubTolerance)))) || ((_local5 < _seekBarScrubTolerance)))) || ((_local5 > (100 - _seekBarScrubTolerance))))){
if (_local5 != _lastScrubPos){
_lastScrubPos = _local5;
_vc.seekPercent(_local5);
};
};
};
};
_vc.activeVideoPlayerIndex = _local2;
}
public function get seekBarInterval():Number{
return (_seekBarTimer.delay);
}
public function set skinAutoHide(_arg1:Boolean):void{
if (_arg1 == _skinAutoHide){
return;
};
_skinAutoHide = _arg1;
cacheSkinAutoHide = _arg1;
setupSkinAutoHide(true);
}
flvplayback_internal function setCustomClip(_arg1:DisplayObject):void{
var dCopy:DisplayObject;
var ctrlData:ControlData;
var scale9Grid:Rectangle;
var diff:Number;
var numBorderBitmaps:int;
var i:int;
var lastXDim:Number;
var floorLastXDim:Number;
var lastYDim:Number;
var floorLastYDim:Number;
var newRect:Rectangle;
var dispObj = _arg1;
dCopy = new (dispObj["constructor"]);
skin_mc.addChild(dCopy);
ctrlData = new ControlData(this, dCopy, null, -1);
ctrlDataDict[dCopy] = ctrlData;
ctrlData.avatar = dispObj;
customClips.push(dCopy);
if (dispObj.name == "border_mc"){
border_mc = dCopy;
try {
borderCopy = (ctrlData.avatar["colorMe"]) ? new Sprite() : null;
} catch(re:ReferenceError) {
borderCopy = null;
};
if (borderCopy != null){
border_mc.visible = false;
scale9Grid = border_mc.scale9Grid;
scale9Grid.x = Math.round(scale9Grid.x);
scale9Grid.y = Math.round(scale9Grid.y);
scale9Grid.width = Math.round(scale9Grid.width);
diff = ((scale9Grid.x + scale9Grid.width) - border_mc.scale9Grid.right);
if (diff > 0.5){
scale9Grid.width--;
} else {
if (diff < -0.5){
scale9Grid.width++;
};
};
scale9Grid.height = Math.round(scale9Grid.height);
diff = ((scale9Grid.y + scale9Grid.height) - border_mc.scale9Grid.bottom);
if (diff > 0.5){
scale9Grid.height--;
} else {
if (diff < -0.5){
scale9Grid.height++;
};
};
if (scale9Grid != null){
borderScale9Rects = new Array();
lastXDim = (border_mc.width - (scale9Grid.x + scale9Grid.width));
floorLastXDim = Math.floor(lastXDim);
if ((lastXDim - floorLastXDim) < 0.05){
lastXDim = floorLastXDim;
} else {
lastXDim = (floorLastXDim + 1);
};
lastYDim = (border_mc.height - (scale9Grid.y + scale9Grid.height));
floorLastYDim = Math.floor(lastYDim);
if ((lastYDim - floorLastYDim) < 0.05){
lastYDim = floorLastYDim;
} else {
lastYDim = (floorLastYDim + 1);
};
newRect = new Rectangle(0, 0, scale9Grid.x, scale9Grid.y);
borderScale9Rects.push(((((newRect.width < 1)) || ((newRect.height < 1)))) ? null : newRect);
newRect = new Rectangle(scale9Grid.x, 0, scale9Grid.width, scale9Grid.y);
borderScale9Rects.push(((((newRect.width < 1)) || ((newRect.height < 1)))) ? null : newRect);
newRect = new Rectangle((scale9Grid.x + scale9Grid.width), 0, lastXDim, scale9Grid.y);
borderScale9Rects.push(((((newRect.width < 1)) || ((newRect.height < 1)))) ? null : newRect);
newRect = new Rectangle(0, scale9Grid.y, scale9Grid.x, scale9Grid.height);
borderScale9Rects.push(((((newRect.width < 1)) || ((newRect.height < 1)))) ? null : newRect);
newRect = new Rectangle(scale9Grid.x, scale9Grid.y, scale9Grid.width, scale9Grid.height);
borderScale9Rects.push(((((newRect.width < 1)) || ((newRect.height < 1)))) ? null : newRect);
newRect = new Rectangle((scale9Grid.x + scale9Grid.width), scale9Grid.y, lastXDim, scale9Grid.height);
borderScale9Rects.push(((((newRect.width < 1)) || ((newRect.height < 1)))) ? null : newRect);
newRect = new Rectangle(0, (scale9Grid.y + scale9Grid.height), scale9Grid.x, lastYDim);
borderScale9Rects.push(((((newRect.width < 1)) || ((newRect.height < 1)))) ? null : newRect);
newRect = new Rectangle(scale9Grid.x, (scale9Grid.y + scale9Grid.height), scale9Grid.width, lastYDim);
borderScale9Rects.push(((((newRect.width < 1)) || ((newRect.height < 1)))) ? null : newRect);
newRect = new Rectangle((scale9Grid.x + scale9Grid.width), (scale9Grid.y + scale9Grid.height), lastXDim, lastYDim);
borderScale9Rects.push(((((newRect.width < 1)) || ((newRect.height < 1)))) ? null : newRect);
i = 0;
while (i < borderScale9Rects.length) {
if (borderScale9Rects[i] != null){
break;
};
i = (i + 1);
};
if (i >= borderScale9Rects.length){
borderScale9Rects = null;
};
};
numBorderBitmaps = ((borderScale9Rects)==null) ? 1 : 9;
i = 0;
while (i < numBorderBitmaps) {
if ((((borderScale9Rects == null)) || (!((borderScale9Rects[i] == null))))){
borderCopy.addChild(new Bitmap());
};
i = (i + 1);
};
skin_mc.addChild(borderCopy);
borderPrevRect = null;
};
};
}
public function get fullScreenSkinDelay():int{
return (_skinAutoHideMotionTimeout);
}
flvplayback_internal function doBufferingDelay(_arg1:TimerEvent):void{
var _local2:int;
_bufferingDelayTimer.reset();
_local2 = _vc.activeVideoPlayerIndex;
_vc.activeVideoPlayerIndex = _vc.visibleVideoPlayerIndex;
if (_vc.state == VideoState.BUFFERING){
_bufferingOn = true;
handleIVPEvent(new VideoEvent(VideoEvent.STATE_CHANGE, false, false, VideoState.BUFFERING, NaN, _vc.visibleVideoPlayerIndex));
};
_vc.activeVideoPlayerIndex = _local2;
}
flvplayback_internal function volumeBarListener(_arg1:TimerEvent):void{
var _local2:Sprite;
var _local3:ControlData;
var _local4:Number;
var _local5:Boolean;
_local2 = controls[VOLUME_BAR];
if (_local2 == null){
return;
};
_local3 = ctrlDataDict[_local2];
calcPercentageFromHandle(_local2);
_local4 = _local3.percentage;
_local5 = (_arg1 == null);
if (_local5){
_volumeBarTimer.stop();
_vc.addEventListener(SoundEvent.SOUND_UPDATE, handleSoundEvent);
};
if (((((((((_local5) || ((_volumeBarScrubTolerance <= 0)))) || ((Math.abs((_local4 - _lastVolumePos)) > _volumeBarScrubTolerance)))) || ((_local4 < _volumeBarScrubTolerance)))) || ((_local4 > (100 - _volumeBarScrubTolerance))))){
if (_local4 != _lastVolumePos){
if (_isMuted){
cachedSoundLevel = (_local4 / 100);
} else {
_vc.volume = (_local4 / 100);
};
_lastVolumePos = _local4;
};
};
}
public function get visible():Boolean{
return (__visible);
}
flvplayback_internal function fixUpBar(_arg1:DisplayObject, _arg2:String, _arg3:DisplayObject, _arg4:String):void{
var ctrlData:ControlData;
var bar:DisplayObject;
var barData:ControlData;
var definitionHolder = _arg1;
var propPrefix = _arg2;
var ctrl = _arg3;
var name = _arg4;
ctrlData = ctrlDataDict[ctrl];
if (ctrlData[name] != null){
return;
};
try {
bar = ctrl[name];
} catch(re:ReferenceError) {
bar = null;
};
if (bar == null){
try {
bar = createSkin(definitionHolder, (propPrefix + "LinkageID"));
} catch(ve:VideoError) {
bar = null;
};
if (bar == null){
return;
};
if (ctrl.parent != null){
if (getBooleanPropSafe(ctrl, (propPrefix + "Below"))){
ctrl.parent.addChildAt(bar, ctrl.parent.getChildIndex(ctrl));
} else {
ctrl.parent.addChild(bar);
};
};
};
ctrlData[name] = bar;
barData = ctrlDataDict[bar];
if (barData == null){
barData = new ControlData(this, bar, ctrl, -1);
ctrlDataDict[bar] = barData;
};
}
public function get volumeBarInterval():Number{
return (_volumeBarTimer.delay);
}
public function get bufferingBarHidesAndDisablesOthers():Boolean{
return (_bufferingBarHides);
}
flvplayback_internal function calcLayoutControl(_arg1:DisplayObject):Rectangle{
var rect:Rectangle;
var ctrlData:ControlData;
var anchorRight:Boolean;
var anchorLeft:Boolean;
var anchorTop:Boolean;
var anchorBottom:Boolean;
var ctrl = _arg1;
rect = new Rectangle();
if (ctrl == null){
return (rect);
};
ctrlData = ctrlDataDict[ctrl];
if (ctrlData == null){
return (rect);
};
if (ctrlData.avatar == null){
return (rect);
};
anchorRight = false;
anchorLeft = true;
anchorTop = false;
anchorBottom = true;
try {
anchorRight = ctrlData.avatar["anchorRight"];
} catch(re1:ReferenceError) {
anchorRight = false;
};
try {
anchorLeft = ctrlData.avatar["anchorLeft"];
} catch(re1:ReferenceError) {
anchorLeft = true;
};
try {
anchorTop = ctrlData.avatar["anchorTop"];
} catch(re1:ReferenceError) {
anchorTop = false;
};
try {
anchorBottom = ctrlData.avatar["anchorBottom"];
} catch(re1:ReferenceError) {
anchorBottom = true;
};
if (anchorRight){
if (anchorLeft){
rect.x = ((ctrlData.avatar.x - placeholderLeft) + videoLeft);
rect.width = ((((ctrlData.avatar.x + ctrlData.avatar.width) - placeholderRight) + videoRight) - rect.x);
ctrlData.origWidth = NaN;
} else {
rect.x = ((ctrlData.avatar.x - placeholderRight) + videoRight);
rect.width = ctrl.width;
};
} else {
rect.x = ((ctrlData.avatar.x - placeholderLeft) + videoLeft);
rect.width = ctrl.width;
};
if (anchorTop){
if (anchorBottom){
rect.y = ((ctrlData.avatar.y - placeholderTop) + videoTop);
rect.height = ((((ctrlData.avatar.y + ctrlData.avatar.height) - placeholderBottom) + videoBottom) - rect.y);
ctrlData.origHeight = NaN;
} else {
rect.y = ((ctrlData.avatar.y - placeholderTop) + videoTop);
rect.height = ctrl.height;
};
} else {
rect.y = ((ctrlData.avatar.y - placeholderBottom) + videoBottom);
rect.height = ctrl.height;
};
try {
if ((ctrl["layoutSelf"] is Function)){
rect = ctrl["layoutSelf"](rect);
};
} catch(re3:ReferenceError) {
};
return (rect);
}
flvplayback_internal function skinFadeMore(_arg1:TimerEvent):void{
var _local2:Number;
if (((((!(_skinFadingIn)) && ((skin_mc.alpha <= 0.5)))) || (((_skinFadingIn) && ((skin_mc.alpha >= 0.95)))))){
skin_mc.visible = _skinFadingIn;
skin_mc.alpha = 1;
_skinFadingTimer.stop();
} else {
_local2 = ((getTimer() - _skinFadeStartTime) / _skinFadingMaxTime);
if (!_skinFadingIn){
_local2 = (1 - _local2);
};
if (_local2 < 0){
_local2 = 0;
} else {
if (_local2 > 1){
_local2 = 1;
};
};
skin_mc.alpha = _local2;
};
}
flvplayback_internal function bitmapCopyBorder():void{
var _local1:Rectangle;
var _local2:BitmapData;
var _local3:Matrix;
var _local4:Number;
var _local5:Number;
var _local6:Rectangle;
var _local7:int;
var _local8:Number;
var _local9:Number;
var _local10:int;
var _local11:Bitmap;
var _local12:Number;
var _local13:Number;
if ((((border_mc == null)) || ((borderCopy == null)))){
return;
};
_local1 = border_mc.getBounds(skin_mc);
if ((((borderPrevRect == null)) || (!(borderPrevRect.equals(_local1))))){
borderCopy.x = _local1.x;
borderCopy.y = _local1.y;
_local3 = new Matrix(border_mc.scaleX, 0, 0, border_mc.scaleY, 0, 0);
if (borderScale9Rects == null){
_local2 = new BitmapData(_local1.width, _local1.height, true, 0);
_local2.draw(border_mc, _local3, borderColorTransform);
Bitmap(borderCopy.getChildAt(0)).bitmapData = _local2;
} else {
_local4 = 0;
_local5 = 0;
_local6 = new Rectangle(0, 0, 0, 0);
_local7 = 0;
_local8 = 0;
if (borderScale9Rects[3] != null){
_local8 = (_local8 + borderScale9Rects[3].width);
};
if (borderScale9Rects[5] != null){
_local8 = (_local8 + borderScale9Rects[5].width);
};
_local9 = 0;
if (borderScale9Rects[1] != null){
_local9 = (_local9 + borderScale9Rects[1].height);
};
if (borderScale9Rects[7] != null){
_local9 = (_local9 + borderScale9Rects[7].height);
};
_local10 = 0;
while (_local10 < borderScale9Rects.length) {
if ((_local10 % 3) == 0){
_local4 = 0;
_local5 = (_local5 + _local6.height);
};
if (borderScale9Rects[_local10] == null){
} else {
_local6 = Rectangle(borderScale9Rects[_local10]).clone();
_local3.a = 1;
if ((((((_local10 == 1)) || ((_local10 == 4)))) || ((_local10 == 7)))){
_local12 = ((_local1.width - _local8) / _local6.width);
_local6.x = (_local6.x * _local12);
_local6.width = (_local6.width * _local12);
_local6.width = Math.round(_local6.width);
_local3.a = (_local3.a * _local12);
};
_local3.tx = -(_local6.x);
_local6.x = 0;
_local3.d = 1;
if ((((_local10 >= 3)) && ((_local10 <= 5)))){
_local13 = ((_local1.height - _local9) / _local6.height);
_local6.y = (_local6.y * _local13);
_local6.height = (_local6.height * _local13);
_local6.height = Math.round(_local6.height);
_local3.d = (_local3.d * _local13);
};
_local3.ty = -(_local6.y);
_local6.y = 0;
_local2 = new BitmapData(_local6.width, _local6.height, true, 0);
_local2.draw(border_mc, _local3, borderColorTransform, null, _local6, false);
_local11 = Bitmap(borderCopy.getChildAt(_local7));
_local7++;
_local11.bitmapData = _local2;
_local11.x = _local4;
_local11.y = _local5;
_local4 = (_local4 + _local6.width);
};
_local10++;
};
};
borderPrevRect = _local1;
};
}
flvplayback_internal function resetPlayPause():void{
var _local1:int;
if (controls[PLAY_PAUSE_BUTTON] == undefined){
return;
};
_local1 = PAUSE_BUTTON;
while (_local1 <= PLAY_BUTTON) {
removeButtonListeners(controls[_local1]);
delete ctrlDataDict[controls[_local1]];
delete controls[_local1];
_local1++;
};
delete ctrlDataDict[controls[PLAY_PAUSE_BUTTON]];
delete controls[PLAY_PAUSE_BUTTON];
}
public function setControl(_arg1:int, _arg2:Sprite):void{
var ctrlData:ControlData;
var index = _arg1;
var ctrl = _arg2;
if (ctrl == controls[index]){
return;
};
switch (index){
case PAUSE_BUTTON:
case PLAY_BUTTON:
resetPlayPause();
break;
case PLAY_PAUSE_BUTTON:
if ((((ctrl == null)) || (!((ctrl.parent == skin_mc))))){
resetPlayPause();
};
if (ctrl != null){
setControl(PAUSE_BUTTON, Sprite(ctrl.getChildByName("pause_mc")));
setControl(PLAY_BUTTON, Sprite(ctrl.getChildByName("play_mc")));
};
break;
case FULL_SCREEN_BUTTON:
if (ctrl != null){
setControl(FULL_SCREEN_ON_BUTTON, Sprite(ctrl.getChildByName("on_mc")));
setControl(FULL_SCREEN_OFF_BUTTON, Sprite(ctrl.getChildByName("off_mc")));
};
break;
case MUTE_BUTTON:
if (ctrl != null){
setControl(MUTE_ON_BUTTON, Sprite(ctrl.getChildByName("on_mc")));
setControl(MUTE_OFF_BUTTON, Sprite(ctrl.getChildByName("off_mc")));
};
break;
};
if (controls[index] != null){
try {
delete controls[index]["uiMgr"];
} catch(re:ReferenceError) {
};
if (index < NUM_BUTTONS){
removeButtonListeners(controls[index]);
};
delete ctrlDataDict[controls[index]];
delete controls[index];
};
if (ctrl == null){
return;
};
ctrlData = ctrlDataDict[ctrl];
if (ctrlData == null){
ctrlData = new ControlData(this, ctrl, null, index);
ctrlDataDict[ctrl] = ctrlData;
} else {
ctrlData.index = index;
};
if (index >= NUM_BUTTONS){
controls[index] = ctrl;
switch (index){
case SEEK_BAR:
addBarControl(ctrl);
break;
case VOLUME_BAR:
addBarControl(ctrl);
ctrlData.percentage = (_vc.volume * 100);
break;
case BUFFERING_BAR:
if (ctrl.parent == skin_mc){
finishAddBufferingBar();
} else {
ctrl.addEventListener(Event.ENTER_FRAME, finishAddBufferingBar);
};
break;
};
setEnabledAndVisibleForState(index, _vc.state);
} else {
controls[index] = ctrl;
addButtonControl(ctrl);
};
}
flvplayback_internal function createSkin(_arg1:DisplayObject, _arg2:String):DisplayObject{
var stateSkinDesc:*;
var theClass:Class;
var definitionHolder = _arg1;
var skinName = _arg2;
try {
stateSkinDesc = definitionHolder[skinName];
if ((stateSkinDesc is String)){
try {
theClass = Class(definitionHolder.loaderInfo.applicationDomain.getDefinition(stateSkinDesc));
} catch(err1:Error) {
theClass = Class(getDefinitionByName(stateSkinDesc));
};
return (DisplayObject(new (theClass)));
} else {
if ((stateSkinDesc is Class)){
return (new (stateSkinDesc));
} else {
if ((stateSkinDesc is DisplayObject)){
return (stateSkinDesc);
};
};
};
} catch(err2:Error) {
throw (new VideoError(VideoError.MISSING_SKIN_STYLE, skinName));
};
return (null);
}
flvplayback_internal function addButtonControl(_arg1:Sprite):void{
var _local2:ControlData;
var _local3:int;
if (_arg1 == null){
return;
};
_local2 = ctrlDataDict[_arg1];
_arg1.mouseChildren = false;
_local3 = _vc.activeVideoPlayerIndex;
_vc.activeVideoPlayerIndex = _vc.visibleVideoPlayerIndex;
_local2.state = NORMAL_STATE;
setEnabledAndVisibleForState(_local2.index, _vc.state);
_arg1.addEventListener(MouseEvent.ROLL_OVER, handleButtonEvent);
_arg1.addEventListener(MouseEvent.ROLL_OUT, handleButtonEvent);
_arg1.addEventListener(MouseEvent.MOUSE_DOWN, handleButtonEvent);
_arg1.addEventListener(MouseEvent.CLICK, handleButtonEvent);
if (_arg1.parent == skin_mc){
skinButtonControl(_arg1);
} else {
_arg1.addEventListener(Event.ENTER_FRAME, skinButtonControl);
};
_vc.activeVideoPlayerIndex = _local3;
}
flvplayback_internal function hookUpCustomComponents():void{
var searchHash:Object;
var doTheSearch:Boolean;
var i:int;
var dispObj:DisplayObject;
var name:String;
var index:int;
var ctrl:Sprite;
searchHash = new Object();
doTheSearch = false;
i = 0;
while (i < NUM_CONTROLS) {
if (controls[i] == null){
searchHash[customComponentClassNames[i]] = i;
doTheSearch = true;
};
i = (i + 1);
};
if (!doTheSearch){
return;
};
i = 0;
while (i < _vc.parent.numChildren) {
dispObj = _vc.parent.getChildAt(i);
name = getQualifiedClassName(dispObj);
if (searchHash[name] != undefined){
if (typeof(searchHash[name]) == "number"){
index = int(searchHash[name]);
try {
ctrl = Sprite(dispObj);
if ((((((index >= NUM_BUTTONS)) || ((ctrl["placeholder_mc"] is DisplayObject)))) && ((ctrl["uiMgr"] == null)))){
setControl(index, ctrl);
searchHash[name] = ctrl;
};
} catch(err:Error) {
};
};
};
i = (i + 1);
};
}
flvplayback_internal function positionHandle(_arg1:Sprite):void{
var _local2:ControlData;
var _local3:Sprite;
var _local4:ControlData;
var _local5:Number;
var _local6:Number;
if (_arg1 == null){
return;
};
if ((((_arg1["positionHandle"] is Function)) && (_arg1["positionHandle"]()))){
return;
};
_local2 = ctrlDataDict[_arg1];
_local3 = _local2.handle_mc;
if (_local3 == null){
return;
};
_local4 = ctrlDataDict[_local3];
_local5 = (isNaN(_local2.origWidth)) ? _arg1.width : _local2.origWidth;
_local6 = ((_local5 - _local4.rightMargin) - _local4.leftMargin);
_local3.x = ((_arg1.x + _local4.leftMargin) + ((_local6 * _local2.percentage) / 100));
_local3.y = (_arg1.y + _local4.origY);
if (_local2.fullness_mc != null){
positionBar(_arg1, "fullness", _local2.percentage);
};
}
flvplayback_internal function exitFullScreenTakeOver():void{
var fullScreenBG:Sprite;
var cacheActiveIndex:int;
var i:int;
var vp:VideoPlayer;
if (cacheFLVPlaybackParent == null){
return;
};
_vc.removeEventListener(Event.ADDED_TO_STAGE, handleEvent);
_vc.stage.removeEventListener(FullScreenEvent.FULL_SCREEN, handleFullScreenEvent);
try {
if (_fullScreenAccel){
_vc.stage.fullScreenSourceRect = new Rectangle(0, 0, -1, -1);
} else {
_vc.stage.align = cacheStageAlign;
_vc.stage.scaleMode = cacheStageScaleMode;
};
fullScreenBG = Sprite(_vc.getChildByName("fullScreenBG"));
if (fullScreenBG != null){
_vc.removeChild(fullScreenBG);
};
if (_vc.parent != cacheFLVPlaybackParent){
cacheFLVPlaybackParent.addChildAt(_vc, cacheFLVPlaybackIndex);
} else {
cacheFLVPlaybackParent.setChildIndex(_vc, cacheFLVPlaybackIndex);
};
cacheActiveIndex = _vc.activeVideoPlayerIndex;
i = 0;
while (i < _vc.videoPlayers.length) {
vp = (_vc.videoPlayers[i] as VideoPlayer);
if (vp != null){
_vc.activeVideoPlayerIndex = i;
if (cacheFLVPlaybackScaleMode[i] != undefined){
_vc.scaleMode = cacheFLVPlaybackScaleMode[i];
};
if (cacheFLVPlaybackAlign[i]){
_vc.align = cacheFLVPlaybackAlign[i];
};
};
i = (i + 1);
};
_vc.activeVideoPlayerIndex = cacheActiveIndex;
_vc.registrationX = cacheFLVPlaybackLocation.x;
_vc.registrationY = cacheFLVPlaybackLocation.y;
_vc.setSize(cacheFLVPlaybackLocation.width, cacheFLVPlaybackLocation.height);
} catch(err:Error) {
};
_vc.addEventListener(Event.ADDED_TO_STAGE, handleEvent);
_vc.stage.addEventListener(FullScreenEvent.FULL_SCREEN, handleFullScreenEvent);
_fullScreen = false;
_fullScreenAccel = false;
cacheStageAlign = null;
cacheStageScaleMode = null;
cacheFLVPlaybackParent = null;
cacheFLVPlaybackIndex = 0;
cacheFLVPlaybackLocation = null;
cacheFLVPlaybackScaleMode = null;
cacheFLVPlaybackAlign = null;
if (_skinAutoHide != cacheSkinAutoHide){
_skinAutoHide = cacheSkinAutoHide;
setupSkinAutoHide(false);
};
}
flvplayback_internal function positionMaskedFill(_arg1:DisplayObject, _arg2:Number):void{
var ctrlData:ControlData;
var fill:DisplayObject;
var mask:DisplayObject;
var fillData:ControlData;
var maskData:ControlData;
var slideReveal:Boolean;
var maskSprite:Sprite;
var barData:ControlData;
var ctrl = _arg1;
var percent = _arg2;
if (ctrl == null){
return;
};
ctrlData = ctrlDataDict[ctrl];
fill = ctrlData.fill_mc;
if (fill == null){
return;
};
mask = ctrlData.mask_mc;
if (ctrlData.mask_mc == null){
try {
var _local4 = ctrl["mask_mc"];
mask = _local4;
ctrlData.mask_mc = _local4;
} catch(re:ReferenceError) {
ctrlData.mask_mc = null;
};
if (ctrlData.mask_mc == null){
maskSprite = new Sprite();
_local4 = maskSprite;
mask = _local4;
ctrlData.mask_mc = _local4;
maskSprite.graphics.beginFill(0xFFFFFF);
maskSprite.graphics.drawRect(0, 0, 1, 1);
maskSprite.graphics.endFill();
barData = ctrlDataDict[fill];
maskSprite.x = barData.origX;
maskSprite.y = barData.origY;
maskSprite.width = barData.origWidth;
maskSprite.height = barData.origHeight;
maskSprite.visible = false;
fill.parent.addChild(maskSprite);
fill.mask = maskSprite;
};
if (ctrlData.mask_mc != null){
calcBarMargins(ctrl, "mask", true);
};
};
fillData = ctrlDataDict[fill];
maskData = ctrlDataDict[mask];
try {
slideReveal = fill["slideReveal"];
} catch(re:ReferenceError) {
slideReveal = false;
};
if (fill.parent == ctrl){
if (slideReveal){
fill.x = ((maskData.origX - fillData.origWidth) + ((fillData.origWidth * percent) / 100));
} else {
mask.width = ((fillData.origWidth * percent) / 100);
};
} else {
if (fill.parent == ctrl.parent){
if (slideReveal){
mask.x = (ctrl.x + maskData.leftMargin);
mask.y = (ctrl.y + maskData.topMargin);
mask.width = ((ctrl.width - maskData.rightMargin) - maskData.leftMargin);
mask.height = ((ctrl.height - maskData.topMargin) - maskData.bottomMargin);
fill.x = ((mask.x - fillData.origWidth) + ((maskData.origWidth * percent) / 100));
fill.y = (ctrl.y + fillData.topMargin);
} else {
fill.x = (ctrl.x + fillData.leftMargin);
fill.y = (ctrl.y + fillData.topMargin);
mask.x = fill.x;
mask.y = fill.y;
mask.width = ((((ctrl.width - fillData.rightMargin) - fillData.leftMargin) * percent) / 100);
mask.height = ((ctrl.height - fillData.topMargin) - fillData.bottomMargin);
};
};
};
}
flvplayback_internal function calcPercentageFromHandle(_arg1:Sprite):void{
var _local2:ControlData;
var _local3:Sprite;
var _local4:ControlData;
var _local5:Number;
var _local6:Number;
var _local7:Number;
if (_arg1 == null){
return;
};
_local2 = ctrlDataDict[_arg1];
if ((((_arg1["calcPercentageFromHandle"] is Function)) && (_arg1["calcPercentageFromHandle"]()))){
if (_local2.percentage < 0){
_local2.percentage = 0;
};
if (_local2.percentage > 100){
_local2.percentage = 100;
};
return;
};
_local3 = _local2.handle_mc;
if (_local3 == null){
return;
};
_local4 = ctrlDataDict[_local3];
_local5 = (isNaN(_local2.origWidth)) ? _arg1.width : _local2.origWidth;
_local6 = ((_local5 - _local4.rightMargin) - _local4.leftMargin);
_local7 = (_local3.x - (_arg1.x + _local4.leftMargin));
_local2.percentage = ((_local7 / _local6) * 100);
if (_local2.percentage < 0){
_local2.percentage = 0;
};
if (_local2.percentage > 100){
_local2.percentage = 100;
};
if (_local2.fullness_mc != null){
positionBar(_arg1, "fullness", _local2.percentage);
};
}
flvplayback_internal function handleRelease(_arg1:int):void{
var _local2:int;
_local2 = _vc.activeVideoPlayerIndex;
_vc.activeVideoPlayerIndex = _vc.visibleVideoPlayerIndex;
if (_arg1 == SEEK_BAR){
seekBarListener(null);
} else {
if (_arg1 == VOLUME_BAR){
volumeBarListener(null);
};
};
stopHandleDrag(controls[_arg1]);
_vc.activeVideoPlayerIndex = _local2;
if (_arg1 == SEEK_BAR){
_vc._scrubFinish();
};
}
flvplayback_internal function setTwoButtonHolderSkin(_arg1:int, _arg2:int, _arg3:String, _arg4:int, _arg5:String):Sprite{
var _local6:Sprite;
var _local7:Sprite;
var _local8:ControlData;
_local7 = new Sprite();
_local8 = new ControlData(this, _local7, null, _arg1);
ctrlDataDict[_local7] = _local8;
skin_mc.addChild(_local7);
_local6 = setupButtonSkin(_arg2);
_local6.name = _arg3;
_local6.visible = true;
_local7.addChild(_local6);
_local6 = setupButtonSkin(_arg4);
_local6.name = _arg5;
_local6.visible = false;
_local7.addChild(_local6);
return (_local7);
}
flvplayback_internal function skinAutoHideHitTest(_arg1:TimerEvent, _arg2:Boolean=true):void{
var visibleVP:VideoPlayer;
var hit:Boolean;
var e = _arg1;
var doFade = _arg2;
try {
if (!__visible){
skin_mc.visible = false;
} else {
if (_vc.stage != null){
visibleVP = _vc.getVideoPlayer(_vc.visibleVideoPlayerIndex);
hit = visibleVP.hitTestPoint(_vc.stage.mouseX, _vc.stage.mouseY, true);
if (((((_fullScreen) && (_fullScreenTakeOver))) && (!((e == null))))){
if ((((_vc.stage.mouseX == _skinAutoHideMouseX)) && ((_vc.stage.mouseY == _skinAutoHideMouseY)))){
if ((getTimer() - _skinAutoHideLastMotionTime) > _skinAutoHideMotionTimeout){
hit = false;
};
} else {
_skinAutoHideLastMotionTime = getTimer();
_skinAutoHideMouseX = _vc.stage.mouseX;
_skinAutoHideMouseY = _vc.stage.mouseY;
};
};
if (((!(hit)) && (!((border_mc == null))))){
hit = border_mc.hitTestPoint(_vc.stage.mouseX, _vc.stage.mouseY, true);
if (((((hit) && (_fullScreen))) && (_fullScreenTakeOver))){
_skinAutoHideLastMotionTime = getTimer();
};
};
if (((!(doFade)) || ((_skinFadingMaxTime <= 0)))){
_skinFadingTimer.stop();
skin_mc.visible = hit;
skin_mc.alpha = 1;
} else {
if (((((((hit) && (skin_mc.visible))) && (((!(_skinFadingTimer.running)) || (_skinFadingIn))))) || (((!(hit)) && (((!(skin_mc.visible)) || (((_skinFadingTimer.running) && (!(_skinFadingIn)))))))))){
} else {
_skinFadingTimer.stop();
_skinFadingIn = hit;
if (((_skinFadingIn) && ((skin_mc.alpha == 1)))){
skin_mc.alpha = 0;
};
_skinFadeStartTime = getTimer();
_skinFadingTimer.start();
skin_mc.visible = true;
};
};
};
};
} catch(se:SecurityError) {
_skinAutoHideTimer.stop();
_skinFadingTimer.stop();
skin_mc.visible = __visible;
skin_mc.alpha = 1;
};
}
public function set seekBarInterval(_arg1:Number):void{
if (_seekBarTimer.delay == _arg1){
return;
};
_seekBarTimer.delay = _arg1;
}
flvplayback_internal function layoutControl(_arg1:DisplayObject):void{
var _local2:ControlData;
var _local3:Rectangle;
var _local4:Sprite;
var _local5:Rectangle;
if (_arg1 == null){
return;
};
_local2 = ctrlDataDict[_arg1];
if (_local2 == null){
return;
};
if (_local2.avatar == null){
return;
};
_local3 = calcLayoutControl(_arg1);
_arg1.x = _local3.x;
_arg1.y = _local3.y;
_arg1.width = _local3.width;
_arg1.height = _local3.height;
switch (_local2.index){
case SEEK_BAR:
case VOLUME_BAR:
if (((!((_local2.hit_mc == null))) && ((_local2.hit_mc.parent == skin_mc)))){
_local4 = _local2.hit_mc;
_local5 = calcLayoutControl(_local4);
_local4.x = _local5.x;
_local4.y = _local5.y;
_local4.width = _local5.width;
_local4.height = _local5.height;
};
if (_local2.progress_mc != null){
if (isNaN(_progressPercent)){
_progressPercent = (_vc.isRTMP) ? 100 : 0;
};
positionBar(Sprite(_arg1), "progress", _progressPercent);
};
positionHandle(Sprite(_arg1));
break;
case BUFFERING_BAR:
positionMaskedFill(_arg1, 100);
break;
};
}
public function set fullScreenSkinDelay(_arg1:int):void{
_skinAutoHideMotionTimeout = _arg1;
}
flvplayback_internal function captureMouseEvent(_arg1:MouseEvent):void{
_arg1.stopPropagation();
}
flvplayback_internal function handleMouseUp(_arg1:MouseEvent):void{
var _local2:Sprite;
var _local3:ControlData;
_local2 = controls[mouseCaptureCtrl];
if (_local2 != null){
_local3 = ctrlDataDict[_local2];
_local3.state = (_local2.hitTestPoint(_arg1.stageX, _arg1.stageY, true)) ? OVER_STATE : NORMAL_STATE;
skinButtonControl(_local2);
switch (mouseCaptureCtrl){
case SEEK_BAR_HANDLE:
case SEEK_BAR_HIT:
handleRelease(SEEK_BAR);
break;
case VOLUME_BAR_HANDLE:
case VOLUME_BAR_HIT:
handleRelease(VOLUME_BAR);
break;
};
};
_arg1.currentTarget.removeEventListener(MouseEvent.MOUSE_DOWN, captureMouseEvent, true);
_arg1.currentTarget.removeEventListener(MouseEvent.MOUSE_OUT, captureMouseEvent, true);
_arg1.currentTarget.removeEventListener(MouseEvent.MOUSE_OVER, captureMouseEvent, true);
_arg1.currentTarget.removeEventListener(MouseEvent.MOUSE_UP, handleMouseUp);
_arg1.currentTarget.removeEventListener(MouseEvent.ROLL_OUT, captureMouseEvent, true);
_arg1.currentTarget.removeEventListener(MouseEvent.ROLL_OVER, captureMouseEvent, true);
}
public function set visible(_arg1:Boolean):void{
if (__visible == _arg1){
return;
};
__visible = _arg1;
if (!__visible){
skin_mc.visible = false;
} else {
setupSkinAutoHide(false);
};
}
public function get bufferingDelayInterval():Number{
return (_bufferingDelayTimer.delay);
}
public function set fullScreenBackgroundColor(_arg1:uint):void{
if (_fullScreenBgColor != _arg1){
_fullScreenBgColor = _arg1;
if (_vc){
};
};
}
public function get fullScreenTakeOver():Boolean{
return (_fullScreenTakeOver);
}
public function set skin(_arg1:String):void{
var _local2:String;
if (_arg1 == null){
removeSkin();
_skin = null;
_skinReady = true;
} else {
_local2 = String(_arg1);
if (_arg1 == _skin){
return;
};
removeSkin();
_skin = String(_arg1);
_skinReady = (_skin == "");
if (!_skinReady){
downloadSkin();
};
};
}
public function set volumeBarInterval(_arg1:Number):void{
if (_volumeBarTimer.delay == _arg1){
return;
};
_volumeBarTimer.delay = _arg1;
}
flvplayback_internal function setSkin(_arg1:int, _arg2:DisplayObject):void{
var _local3:Sprite;
var _local4:ControlData;
var _local5:String;
if (_arg1 >= NUM_CONTROLS){
return;
};
if (_arg1 < NUM_BUTTONS){
_local3 = setupButtonSkin(_arg1);
skin_mc.addChild(_local3);
_local4 = ctrlDataDict[_local3];
} else {
switch (_arg1){
case PLAY_PAUSE_BUTTON:
_local3 = setTwoButtonHolderSkin(_arg1, PLAY_BUTTON, "play_mc", PAUSE_BUTTON, "pause_mc");
_local4 = ctrlDataDict[_local3];
break;
case FULL_SCREEN_BUTTON:
_local3 = setTwoButtonHolderSkin(_arg1, FULL_SCREEN_ON_BUTTON, "on_mc", FULL_SCREEN_OFF_BUTTON, "off_mc");
_local4 = ctrlDataDict[_local3];
break;
case MUTE_BUTTON:
_local3 = setTwoButtonHolderSkin(_arg1, MUTE_ON_BUTTON, "on_mc", MUTE_OFF_BUTTON, "off_mc");
_local4 = ctrlDataDict[_local3];
break;
case SEEK_BAR:
case VOLUME_BAR:
_local5 = skinClassPrefixes[_arg1];
_local3 = Sprite(createSkin(skinTemplate, _local5));
if (_local3 != null){
skin_mc.addChild(_local3);
_local4 = new ControlData(this, _local3, null, _arg1);
ctrlDataDict[_local3] = _local4;
_local4.progress_mc = setupBarSkinPart(_local3, _arg2, skinTemplate, (_local5 + "Progress"), "progress_mc");
_local4.fullness_mc = setupBarSkinPart(_local3, _arg2, skinTemplate, (_local5 + "Fullness"), "fullness_mc");
_local4.hit_mc = Sprite(setupBarSkinPart(_local3, _arg2, skinTemplate, (_local5 + "Hit"), "hit_mc"));
_local4.handle_mc = Sprite(setupBarSkinPart(_local3, _arg2, skinTemplate, (_local5 + "Handle"), "handle_mc", true));
_local3.width = _arg2.width;
_local3.height = _arg2.height;
};
break;
case BUFFERING_BAR:
_local5 = skinClassPrefixes[_arg1];
_local3 = Sprite(createSkin(skinTemplate, _local5));
if (_local3 != null){
skin_mc.addChild(_local3);
_local4 = new ControlData(this, _local3, null, _arg1);
ctrlDataDict[_local3] = _local4;
_local4.fill_mc = setupBarSkinPart(_local3, _arg2, skinTemplate, (_local5 + "Fill"), "fill_mc");
_local3.width = _arg2.width;
_local3.height = _arg2.height;
};
break;
};
};
_local4.avatar = _arg2;
ctrlDataDict[_local3] = _local4;
delayedControls[_arg1] = _local3;
}
public function set bufferingBarHidesAndDisablesOthers(_arg1:Boolean):void{
_bufferingBarHides = _arg1;
}
flvplayback_internal function handleSoundEvent(_arg1:SoundEvent):void{
var _local2:Sprite;
var _local3:ControlData;
if (((_isMuted) && ((_arg1.soundTransform.volume > 0)))){
_isMuted = false;
setEnabledAndVisibleForState(MUTE_OFF_BUTTON, VideoState.PLAYING);
skinButtonControl(controls[MUTE_OFF_BUTTON]);
setEnabledAndVisibleForState(MUTE_ON_BUTTON, VideoState.PLAYING);
skinButtonControl(controls[MUTE_ON_BUTTON]);
};
_local2 = controls[VOLUME_BAR];
if (_local2 != null){
_local3 = ctrlDataDict[_local2];
_local3.percentage = ((_isMuted) ? cachedSoundLevel : _arg1.soundTransform.volume * 100);
if (_local3.percentage < 0){
_local3.percentage = 0;
} else {
if (_local3.percentage > 100){
_local3.percentage = 100;
};
};
positionHandle(_local2);
};
}
flvplayback_internal function stopHandleDrag(_arg1:Sprite):void{
var ctrlData:ControlData;
var handle:Sprite;
var ctrl = _arg1;
if (ctrl == null){
return;
};
ctrlData = ctrlDataDict[ctrl];
try {
if ((((ctrl["stopHandleDrag"] is Function)) && (ctrl["stopHandleDrag"]()))){
ctrlData.isDragging = false;
return;
};
} catch(re:ReferenceError) {
};
handle = ctrlData.handle_mc;
if (handle == null){
return;
};
handle.stopDrag();
ctrlData.isDragging = false;
}
public function set skinBackgroundAlpha(_arg1:Number):void{
if (borderAlpha != _arg1){
borderAlpha = _arg1;
borderColorTransform.alphaOffset = (0xFF * _arg1);
borderPrevRect = null;
layoutSkin();
};
}
public function getControl(_arg1:int):Sprite{
return (controls[_arg1]);
}
public function set skinScaleMaximum(_arg1:Number):void{
_skinScaleMaximum = _arg1;
}
flvplayback_internal function handleLoad(_arg1:Event):void{
var i:int;
var dispObj:DisplayObject;
var index:Number;
var e = _arg1;
try {
skin_mc = new Sprite();
if (e != null){
skinTemplate = Sprite(skinLoader.content);
};
layout_mc = skinTemplate;
customClips = new Array();
delayedControls = new Array();
i = 0;
while (i < layout_mc.numChildren) {
dispObj = layout_mc.getChildAt(i);
index = layoutNameToIndexMappings[dispObj.name];
if (!isNaN(index)){
setSkin(int(index), dispObj);
} else {
if (dispObj.name != "video_mc"){
setCustomClip(dispObj);
};
};
i = (i + 1);
};
skinLoadDelayCount = 0;
_vc.addEventListener(Event.ENTER_FRAME, finishLoad);
} catch(err:Error) {
_vc.skinError(err.message);
removeSkin();
};
}
flvplayback_internal function calcBarMargins(_arg1:DisplayObject, _arg2:String, _arg3:Boolean):void{
var ctrlData:ControlData;
var bar:DisplayObject;
var barData:ControlData;
var ctrl = _arg1;
var type = _arg2;
var symmetricMargins = _arg3;
if (ctrl == null){
return;
};
ctrlData = ctrlDataDict[ctrl];
bar = ctrlData[(type + "_mc")];
if (bar == null){
try {
bar = ctrl[(type + "_mc")];
} catch(re:ReferenceError) {
bar = null;
};
if (bar == null){
return;
};
ctrlData[(type + "_mc")] = bar;
};
barData = ctrlDataDict[bar];
if (barData == null){
barData = new ControlData(this, bar, ctrl, -1);
ctrlDataDict[bar] = barData;
};
barData.leftMargin = getNumberPropSafe(ctrl, (type + "LeftMargin"));
if (((isNaN(barData.leftMargin)) && ((bar.parent == ctrl.parent)))){
barData.leftMargin = (bar.x - ctrl.x);
};
barData.rightMargin = getNumberPropSafe(ctrl, (type + "RightMargin"));
if (isNaN(barData.rightMargin)){
if (symmetricMargins){
barData.rightMargin = barData.leftMargin;
} else {
if (bar.parent == ctrl.parent){
barData.rightMargin = (((ctrl.width - bar.width) - bar.x) + ctrl.x);
};
};
};
barData.topMargin = getNumberPropSafe(ctrl, (type + "TopMargin"));
if (((isNaN(barData.topMargin)) && ((bar.parent == ctrl.parent)))){
barData.topMargin = (bar.y - ctrl.y);
};
barData.bottomMargin = getNumberPropSafe(ctrl, (type + "BottomMargin"));
if (isNaN(barData.bottomMargin)){
if (symmetricMargins){
barData.bottomMargin = barData.topMargin;
} else {
if (bar.parent == ctrl.parent){
barData.bottomMargin = (((ctrl.height - bar.height) - bar.y) + ctrl.y);
};
};
};
barData.origX = getNumberPropSafe(ctrl, (type + "X"));
if (isNaN(barData.origX)){
if (bar.parent == ctrl.parent){
barData.origX = (bar.x - ctrl.x);
} else {
if (bar.parent == ctrl){
barData.origX = bar.x;
};
};
};
barData.origY = getNumberPropSafe(ctrl, (type + "Y"));
if (isNaN(barData.origY)){
if (bar.parent == ctrl.parent){
barData.origY = (bar.y - ctrl.y);
} else {
if (bar.parent == ctrl){
barData.origY = bar.y;
};
};
};
barData.origWidth = bar.width;
barData.origHeight = bar.height;
barData.origScaleX = bar.scaleX;
barData.origScaleY = bar.scaleY;
}
public function set skinBackgroundColor(_arg1:uint):void{
if (borderColor != _arg1){
borderColor = _arg1;
borderColorTransform.redOffset = ((borderColor >> 16) & 0xFF);
borderColorTransform.greenOffset = ((borderColor >> 8) & 0xFF);
borderColorTransform.blueOffset = (borderColor & 0xFF);
borderPrevRect = null;
layoutSkin();
};
}
public function set volumeBarScrubTolerance(_arg1:Number):void{
_volumeBarScrubTolerance = _arg1;
}
flvplayback_internal function finishAddBufferingBar(_arg1:Event=null):void{
var _local2:Sprite;
if (_arg1 != null){
_arg1.currentTarget.removeEventListener(Event.ENTER_FRAME, finishAddBufferingBar);
};
_local2 = controls[BUFFERING_BAR];
calcBarMargins(_local2, "fill", true);
fixUpBar(_local2, "fill", _local2, "fill_mc");
positionMaskedFill(_local2, 100);
}
flvplayback_internal function handleButtonEvent(_arg1:MouseEvent):void{
var ctrlData:ControlData;
var topLevel:DisplayObject;
var e = _arg1;
ctrlData = ctrlDataDict[e.currentTarget];
switch (e.type){
case MouseEvent.ROLL_OVER:
ctrlData.state = OVER_STATE;
break;
case MouseEvent.ROLL_OUT:
ctrlData.state = NORMAL_STATE;
break;
case MouseEvent.MOUSE_DOWN:
ctrlData.state = DOWN_STATE;
mouseCaptureCtrl = ctrlData.index;
switch (mouseCaptureCtrl){
case SEEK_BAR_HANDLE:
case SEEK_BAR_HIT:
case VOLUME_BAR_HANDLE:
case VOLUME_BAR_HIT:
dispatchMessage(ctrlData.index);
break;
};
topLevel = _vc.stage;
try {
topLevel.addEventListener(MouseEvent.MOUSE_DOWN, captureMouseEvent, true);
} catch(se:SecurityError) {
topLevel = _vc.root;
topLevel.addEventListener(MouseEvent.MOUSE_DOWN, captureMouseEvent, true);
};
topLevel.addEventListener(MouseEvent.MOUSE_OUT, captureMouseEvent, true);
topLevel.addEventListener(MouseEvent.MOUSE_OVER, captureMouseEvent, true);
topLevel.addEventListener(MouseEvent.MOUSE_UP, handleMouseUp);
topLevel.addEventListener(MouseEvent.ROLL_OUT, captureMouseEvent, true);
topLevel.addEventListener(MouseEvent.ROLL_OVER, captureMouseEvent, true);
break;
case MouseEvent.CLICK:
switch (mouseCaptureCtrl){
case SEEK_BAR_HANDLE:
case SEEK_BAR_HIT:
case VOLUME_BAR_HANDLE:
case VOLUME_BAR_HIT:
break;
default:
dispatchMessage(ctrlData.index);
break;
};
return;
};
skinButtonControl(e.currentTarget);
}
flvplayback_internal function applySkinState(_arg1:ControlData, _arg2:DisplayObject):void{
if (_arg2 != _arg1.currentState_mc){
if (_arg1.currentState_mc != null){
_arg1.currentState_mc.visible = false;
};
_arg1.currentState_mc = _arg2;
_arg1.currentState_mc.visible = true;
};
}
flvplayback_internal function handleLoadErrorEvent(_arg1:ErrorEvent):void{
_skinReady = true;
_vc.skinError(_arg1.toString());
}
flvplayback_internal function addBarControl(_arg1:Sprite):void{
var _local2:ControlData;
_local2 = ctrlDataDict[_arg1];
_local2.isDragging = false;
_local2.percentage = 0;
if ((((_arg1.parent == skin_mc)) && (!((skin_mc == null))))){
finishAddBarControl(_arg1);
} else {
_arg1.addEventListener(Event.REMOVED_FROM_STAGE, cleanupHandle);
_arg1.addEventListener(Event.ENTER_FRAME, finishAddBarControl);
};
}
flvplayback_internal function handleEvent(_arg1:Event):void{
var e = _arg1;
switch (e.type){
case Event.ADDED_TO_STAGE:
_fullScreen = false;
if (_vc.stage != null){
try {
_fullScreen = (_vc.stage.displayState == StageDisplayState.FULL_SCREEN);
_vc.stage.addEventListener(FullScreenEvent.FULL_SCREEN, handleFullScreenEvent);
} catch(se:SecurityError) {
};
};
if (!_fullScreen){
_fullScreenAccel = false;
};
setEnabledAndVisibleForState(FULL_SCREEN_OFF_BUTTON, VideoState.PLAYING);
skinButtonControl(controls[FULL_SCREEN_OFF_BUTTON]);
setEnabledAndVisibleForState(FULL_SCREEN_ON_BUTTON, VideoState.PLAYING);
skinButtonControl(controls[FULL_SCREEN_ON_BUTTON]);
if (((_fullScreen) && (_fullScreenTakeOver))){
enterFullScreenTakeOver();
} else {
if (!_fullScreen){
exitFullScreenTakeOver();
};
};
layoutSkin();
setupSkinAutoHide(false);
break;
case Event.REMOVED_FROM_STAGE:
_vc.stage.removeEventListener(FullScreenEvent.FULL_SCREEN, handleFullScreenEvent);
break;
};
}
flvplayback_internal function skinButtonControl(_arg1:Object):void{
var ctrl:Sprite;
var ctrlData:ControlData;
var e:Event;
var ctrlOrEvent = _arg1;
if (ctrlOrEvent == null){
return;
};
if ((ctrlOrEvent is Event)){
e = Event(ctrlOrEvent);
ctrl = Sprite(e.currentTarget);
ctrl.removeEventListener(Event.ENTER_FRAME, skinButtonControl);
} else {
ctrl = Sprite(ctrlOrEvent);
};
ctrlData = ctrlDataDict[ctrl];
if (ctrlData == null){
return;
};
try {
if (ctrl["placeholder_mc"] != undefined){
ctrl.removeChild(ctrl["placeholder_mc"]);
ctrl["placeholder_mc"] = null;
};
} catch(re:ReferenceError) {
};
if (ctrlData.state_mc == null){
ctrlData.state_mc = new Array();
};
if (ctrlData.state_mc[NORMAL_STATE] == undefined){
ctrlData.state_mc[NORMAL_STATE] = setupButtonSkinState(ctrl, ctrl, buttonSkinLinkageIDs[NORMAL_STATE], null);
};
if (((ctrlData.enabled) && (_controlsEnabled))){
if (ctrlData.state_mc[ctrlData.state] == undefined){
ctrlData.state_mc[ctrlData.state] = setupButtonSkinState(ctrl, ctrl, buttonSkinLinkageIDs[ctrlData.state], ctrlData.state_mc[NORMAL_STATE]);
};
if (ctrlData.state_mc[ctrlData.state] != ctrlData.currentState_mc){
if (ctrlData.currentState_mc != null){
ctrlData.currentState_mc.visible = false;
};
ctrlData.currentState_mc = ctrlData.state_mc[ctrlData.state];
ctrlData.currentState_mc.visible = true;
};
applySkinState(ctrlData, ctrlData.state_mc[ctrlData.state]);
} else {
ctrlData.state = NORMAL_STATE;
if (ctrlData.disabled_mc == null){
ctrlData.disabled_mc = setupButtonSkinState(ctrl, ctrl, "disabledLinkageID", ctrlData.state_mc[NORMAL_STATE]);
};
applySkinState(ctrlData, ctrlData.disabled_mc);
};
}
public function set controlsEnabled(_arg1:Boolean):void{
var _local2:int;
if (_controlsEnabled == _arg1){
return;
};
_controlsEnabled = _arg1;
_local2 = 0;
while (_local2 < NUM_BUTTONS) {
skinButtonControl(controls[_local2]);
_local2++;
};
}
flvplayback_internal function setupSkinAutoHide(_arg1:Boolean):void{
if (((_skinAutoHide) && (!((skin_mc == null))))){
skinAutoHideHitTest(null, _arg1);
_skinAutoHideTimer.start();
} else {
if (skin_mc != null){
if (((((((_arg1) && ((_skinFadingMaxTime > 0)))) && (((!(skin_mc.visible)) || ((skin_mc.alpha < 1)))))) && (__visible))){
_skinFadingTimer.stop();
_skinFadeStartTime = getTimer();
_skinFadingIn = true;
if (skin_mc.alpha == 1){
skin_mc.alpha = 0;
};
_skinFadingTimer.start();
} else {
if (_skinFadingMaxTime <= 0){
_skinFadingTimer.stop();
skin_mc.alpha = 1;
};
};
skin_mc.visible = __visible;
};
_skinAutoHideTimer.stop();
};
}
public function enterFullScreenDisplayState():void{
var theRect:Rectangle;
var vp:VideoPlayer;
var effectiveWidth:int;
var effectiveHeight:int;
var videoAspectRatio:Number;
var screenAspectRatio:Number;
var effectiveMinWidth:int;
var effectiveMinHeight:int;
var skinScaleMinWidth:int;
var skinScaleMinHeight:int;
if (((!(_fullScreen)) && (!((_vc.stage == null))))){
if (_fullScreenTakeOver){
try {
theRect = _vc.stage.fullScreenSourceRect;
_fullScreenAccel = true;
vp = _vc.getVideoPlayer(_vc.visibleVideoPlayerIndex);
effectiveWidth = vp.videoWidth;
effectiveHeight = vp.videoHeight;
videoAspectRatio = (effectiveWidth / effectiveHeight);
screenAspectRatio = (_vc.stage.fullScreenWidth / _vc.stage.fullScreenHeight);
if (videoAspectRatio > screenAspectRatio){
effectiveHeight = (effectiveWidth / screenAspectRatio);
} else {
if (videoAspectRatio < screenAspectRatio){
effectiveWidth = (effectiveHeight * screenAspectRatio);
};
};
effectiveMinWidth = fullScreenSourceRectMinWidth;
effectiveMinHeight = fullScreenSourceRectMinHeight;
if (fullScreenSourceRectMinAspectRatio > screenAspectRatio){
effectiveMinHeight = (effectiveMinWidth / screenAspectRatio);
} else {
if (fullScreenSourceRectMinAspectRatio < screenAspectRatio){
effectiveMinWidth = (effectiveMinHeight * screenAspectRatio);
};
};
skinScaleMinWidth = (_vc.stage.fullScreenWidth / _skinScaleMaximum);
skinScaleMinHeight = (_vc.stage.fullScreenHeight / _skinScaleMaximum);
if ((((effectiveMinWidth < skinScaleMinWidth)) || ((effectiveMinHeight < skinScaleMinHeight)))){
effectiveMinWidth = skinScaleMinWidth;
effectiveMinHeight = skinScaleMinHeight;
};
if ((((effectiveWidth < effectiveMinWidth)) || ((effectiveHeight < effectiveMinHeight)))){
effectiveWidth = effectiveMinWidth;
effectiveHeight = effectiveMinHeight;
};
_vc.stage.fullScreenSourceRect = new Rectangle(0, 0, effectiveWidth, effectiveHeight);
_vc.stage.displayState = StageDisplayState.FULL_SCREEN;
} catch(re:ReferenceError) {
_fullScreenAccel = false;
} catch(re:SecurityError) {
_fullScreenAccel = false;
};
};
try {
_vc.stage.displayState = StageDisplayState.FULL_SCREEN;
} catch(se:SecurityError) {
};
};
}
public function get skin():String{
return (_skin);
}
flvplayback_internal function finishAddBarControl(_arg1:Object):void{
var ctrl:Sprite;
var ctrlData:ControlData;
var e:Event;
var ctrlOrEvent = _arg1;
if (ctrlOrEvent == null){
return;
};
if ((ctrlOrEvent is Event)){
e = Event(ctrlOrEvent);
ctrl = Sprite(e.currentTarget);
ctrl.removeEventListener(Event.ENTER_FRAME, finishAddBarControl);
} else {
ctrl = Sprite(ctrlOrEvent);
};
ctrlData = ctrlDataDict[ctrl];
try {
if ((ctrl["addBarControl"] is Function)){
var _local3 = ctrl;
_local3["addBarControl"]();
};
} catch(re:ReferenceError) {
};
ctrlData.origWidth = ctrl.width;
ctrlData.origHeight = ctrl.height;
fixUpBar(ctrl, "progress", ctrl, "progress_mc");
calcBarMargins(ctrl, "progress", false);
if (ctrlData.progress_mc != null){
fixUpBar(ctrl, "progressBarFill", ctrlData.progress_mc, "fill_mc");
calcBarMargins(ctrlData.progress_mc, "fill", false);
calcBarMargins(ctrlData.progress_mc, "mask", false);
if (isNaN(_progressPercent)){
_progressPercent = (_vc.isRTMP) ? 100 : 0;
};
positionBar(ctrl, "progress", _progressPercent);
};
fixUpBar(ctrl, "fullness", ctrl, "fullness_mc");
calcBarMargins(ctrl, "fullness", false);
if (ctrlData.fullness_mc != null){
fixUpBar(ctrl, "fullnessBarFill", ctrlData.fullness_mc, "fill_mc");
calcBarMargins(ctrlData.fullness_mc, "fill", false);
calcBarMargins(ctrlData.fullness_mc, "mask", false);
};
fixUpBar(ctrl, "hit", ctrl, "hit_mc");
fixUpBar(ctrl, "handle", ctrl, "handle_mc");
calcBarMargins(ctrl, "handle", true);
switch (ctrlData.index){
case SEEK_BAR:
setControl(SEEK_BAR_HANDLE, ctrlData.handle_mc);
if (ctrlData.hit_mc != null){
setControl(SEEK_BAR_HIT, ctrlData.hit_mc);
};
break;
case VOLUME_BAR:
setControl(VOLUME_BAR_HANDLE, ctrlData.handle_mc);
if (ctrlData.hit_mc != null){
setControl(VOLUME_BAR_HIT, ctrlData.hit_mc);
};
break;
};
positionHandle(ctrl);
}
public function get fullScreenBackgroundColor():uint{
return (_fullScreenBgColor);
}
flvplayback_internal function startHandleDrag(_arg1:Sprite):void{
var ctrlData:ControlData;
var handle:Sprite;
var handleData:ControlData;
var theY:Number;
var theWidth:Number;
var bounds:Rectangle;
var ctrl = _arg1;
if (ctrl == null){
return;
};
ctrlData = ctrlDataDict[ctrl];
try {
if ((((ctrl["startHandleDrag"] is Function)) && (ctrl["startHandleDrag"]()))){
ctrlData.isDragging = true;
return;
};
} catch(re:ReferenceError) {
};
handle = ctrlData.handle_mc;
if (handle == null){
return;
};
handleData = ctrlDataDict[handle];
theY = (ctrl.y + handleData.origY);
theWidth = (isNaN(ctrlData.origWidth)) ? ctrl.width : ctrlData.origWidth;
bounds = new Rectangle((ctrl.x + handleData.leftMargin), theY, (theWidth - handleData.rightMargin), 0);
handle.startDrag(false, bounds);
ctrlData.isDragging = true;
}
flvplayback_internal function setupBarSkinPart(_arg1:Sprite, _arg2:DisplayObject, _arg3:Sprite, _arg4:String, _arg5:String, _arg6:Boolean=false):DisplayObject{
var part:DisplayObject;
var partAvatar:DisplayObject;
var ctrlData:ControlData;
var partData:ControlData;
var ctrl = _arg1;
var avatar = _arg2;
var definitionHolder = _arg3;
var skinName = _arg4;
var partName = _arg5;
var required = _arg6;
try {
part = ctrl[partName];
} catch(re:ReferenceError) {
part = null;
};
if (part == null){
try {
part = createSkin(definitionHolder, skinName);
} catch(ve:VideoError) {
if (required){
throw (ve);
};
};
if (part != null){
skin_mc.addChild(part);
part.x = ctrl.x;
part.y = ctrl.y;
partAvatar = layout_mc.getChildByName((skinName + "_mc"));
if (partAvatar != null){
if (partName == "hit_mc"){
ctrlData = ctrlDataDict[ctrl];
partData = new ControlData(this, part, controls[ctrlData.index], -1);
partData.avatar = partAvatar;
ctrlDataDict[part] = partData;
} else {
part.x = (part.x + (partAvatar.x - avatar.x));
part.y = (part.y + (partAvatar.y - avatar.y));
part.width = partAvatar.width;
part.height = partAvatar.height;
};
};
};
};
if (((required) && ((part == null)))){
throw (new VideoError(VideoError.MISSING_SKIN_STYLE, skinName));
};
return (part);
}
public function get skinBackgroundAlpha():Number{
return (borderAlpha);
}
public function get volumeBarScrubTolerance():Number{
return (_volumeBarScrubTolerance);
}
public function get skinScaleMaximum():Number{
return (_skinScaleMaximum);
}
public function get skinBackgroundColor():uint{
return (borderColor);
}
public function get controlsEnabled():Boolean{
return (_controlsEnabled);
}
flvplayback_internal function handleIVPEvent(_arg1:IVPEvent):void{
var _local2:uint;
var _local3:int;
var _local4:VideoEvent;
var _local5:Sprite;
var _local6:ControlData;
var _local7:VideoProgressEvent;
var _local8:VideoPlayerState;
var _local9:Number;
var _local10:Number;
var _local11:Number;
if (_arg1.vp != _vc.visibleVideoPlayerIndex){
return;
};
_local2 = _vc.activeVideoPlayerIndex;
_vc.activeVideoPlayerIndex = _vc.visibleVideoPlayerIndex;
switch (_arg1.type){
case VideoEvent.STATE_CHANGE:
_local4 = VideoEvent(_arg1);
if (_local4.state == VideoState.BUFFERING){
if (!_bufferingOn){
_bufferingDelayTimer.reset();
_bufferingDelayTimer.start();
};
} else {
_bufferingDelayTimer.reset();
_bufferingOn = false;
};
if (_local4.state == VideoState.LOADING){
_progressPercent = (_vc.getVideoPlayer(_arg1.vp).isRTMP) ? 100 : 0;
_local3 = SEEK_BAR;
while (_local3 <= VOLUME_BAR) {
_local5 = controls[_local3];
if (controls[_local3] == null){
} else {
_local6 = ctrlDataDict[_local5];
if (_local6.progress_mc != null){
positionBar(_local5, "progress", _progressPercent);
};
};
_local3++;
};
};
_local3 = 0;
while (_local3 < NUM_CONTROLS) {
if (controls[_local3] == undefined){
} else {
setEnabledAndVisibleForState(_local3, _local4.state);
if (_local3 < NUM_BUTTONS){
skinButtonControl(controls[_local3]);
};
};
_local3++;
};
break;
case VideoEvent.READY:
case MetadataEvent.METADATA_RECEIVED:
_local3 = 0;
while (_local3 < NUM_CONTROLS) {
if (controls[_local3] == undefined){
} else {
setEnabledAndVisibleForState(_local3, _vc.state);
if (_local3 < NUM_BUTTONS){
skinButtonControl(controls[_local3]);
};
};
_local3++;
};
if (_vc.getVideoPlayer(_arg1.vp).isRTMP){
_progressPercent = 100;
_local3 = SEEK_BAR;
while (_local3 <= VOLUME_BAR) {
_local5 = controls[_local3];
if (_local5 == null){
} else {
_local6 = ctrlDataDict[_local5];
if (_local6.progress_mc != null){
positionBar(_local5, "progress", _progressPercent);
};
};
_local3++;
};
};
break;
case VideoEvent.PLAYHEAD_UPDATE:
if (((((((!((controls[SEEK_BAR] == undefined))) && (!(_vc.isLive)))) && (!(isNaN(_vc.totalTime))))) && (!((_vc.getVideoPlayer(_vc.visibleVideoPlayerIndex).state == VideoState.SEEKING))))){
_local4 = VideoEvent(_arg1);
_local10 = ((_local4.playheadTime / _vc.totalTime) * 100);
if (_local10 < 0){
_local10 = 0;
} else {
if (_local10 > 100){
_local10 = 100;
};
};
_local5 = controls[SEEK_BAR];
_local6 = ctrlDataDict[_local5];
_local6.percentage = _local10;
positionHandle(_local5);
};
break;
case VideoProgressEvent.PROGRESS:
_local7 = VideoProgressEvent(_arg1);
_progressPercent = ((_local7.bytesTotal)<=0) ? 100 : ((_local7.bytesLoaded / _local7.bytesTotal) * 100);
_local8 = _vc.videoPlayerStates[_arg1.vp];
_local9 = _local8.minProgressPercent;
if (((!(isNaN(_local9))) && ((_local9 > _progressPercent)))){
_progressPercent = _local9;
};
if (!isNaN(_vc.totalTime)){
_local11 = ((_vc.playheadTime / _vc.totalTime) * 100);
if (_local11 > _progressPercent){
_progressPercent = _local11;
_local8.minProgressPercent = _progressPercent;
};
};
_local3 = SEEK_BAR;
while (_local3 <= VOLUME_BAR) {
_local5 = controls[_local3];
if (_local5 == null){
} else {
_local6 = ctrlDataDict[_local5];
if (_local6.progress_mc != null){
positionBar(_local5, "progress", _progressPercent);
};
};
_local3++;
};
break;
};
_vc.activeVideoPlayerIndex = _local2;
}
flvplayback_internal function setupButtonSkinState(_arg1:Sprite, _arg2:Sprite, _arg3:String, _arg4:DisplayObject=null):DisplayObject{
var stateSkin:DisplayObject;
var ctrl = _arg1;
var definitionHolder = _arg2;
var skinName = _arg3;
var defaultSkin = _arg4;
try {
stateSkin = createSkin(definitionHolder, skinName);
} catch(ve:VideoError) {
if (defaultSkin != null){
stateSkin = null;
} else {
throw (ve);
};
};
if (stateSkin != null){
stateSkin.visible = false;
ctrl.addChild(stateSkin);
} else {
if (defaultSkin != null){
stateSkin = defaultSkin;
};
};
return (stateSkin);
}
flvplayback_internal function layoutSkin():void{
var video_mc:DisplayObject;
var i:int;
var borderRect:Rectangle;
var forceSkinAutoHide:Boolean;
var minWidth:Number;
var vidWidth:Number;
var minHeight:Number;
var vidHeight:Number;
if (layout_mc == null){
return;
};
if (skinLoadDelayCount < 2){
return;
};
video_mc = layout_mc["video_mc"];
if (video_mc == null){
throw (new Error("No layout_mc.video_mc"));
};
placeholderLeft = video_mc.x;
placeholderRight = (video_mc.x + video_mc.width);
placeholderTop = video_mc.y;
placeholderBottom = (video_mc.y + video_mc.height);
videoLeft = (_vc.x - _vc.registrationX);
videoRight = (videoLeft + _vc.width);
videoTop = (_vc.y - _vc.registrationY);
videoBottom = (videoTop + _vc.height);
if (((((_fullScreen) && (_fullScreenTakeOver))) && (!((border_mc == null))))){
borderRect = calcLayoutControl(border_mc);
forceSkinAutoHide = false;
if ((((borderRect.width > 0)) && ((borderRect.height > 0)))){
if (borderRect.x < 0){
placeholderLeft = (placeholderLeft + (videoLeft - borderRect.x));
forceSkinAutoHide = true;
};
if ((borderRect.x + borderRect.width) > _vc.registrationWidth){
placeholderRight = (placeholderRight + ((borderRect.x + borderRect.width) - videoRight));
forceSkinAutoHide = true;
};
if (borderRect.y < 0){
placeholderTop = (placeholderTop + (videoTop - borderRect.y));
forceSkinAutoHide = true;
};
if ((borderRect.y + borderRect.height) > _vc.registrationHeight){
placeholderBottom = (placeholderBottom + ((borderRect.y + borderRect.height) - videoBottom));
forceSkinAutoHide = true;
};
if (forceSkinAutoHide){
_skinAutoHide = true;
setupSkinAutoHide(true);
};
};
};
try {
if (!isNaN(layout_mc["minWidth"])){
minWidth = layout_mc["minWidth"];
vidWidth = (videoRight - videoLeft);
if ((((minWidth > 0)) && ((minWidth > vidWidth)))){
videoLeft = (videoLeft - ((minWidth - vidWidth) / 2));
videoRight = (minWidth + videoLeft);
};
};
} catch(re1:ReferenceError) {
};
try {
if (!isNaN(layout_mc["minHeight"])){
minHeight = layout_mc["minHeight"];
vidHeight = (videoBottom - videoTop);
if ((((minHeight > 0)) && ((minHeight > vidHeight)))){
videoTop = (videoTop - ((minHeight - vidHeight) / 2));
videoBottom = (minHeight + videoTop);
};
};
} catch(re2:ReferenceError) {
};
i = 0;
while (i < customClips.length) {
layoutControl(customClips[i]);
if (customClips[i] == border_mc){
bitmapCopyBorder();
};
i = (i + 1);
};
i = 0;
while (i < NUM_CONTROLS) {
layoutControl(controls[i]);
i = (i + 1);
};
}
public function set bufferingDelayInterval(_arg1:Number):void{
if (_bufferingDelayTimer.delay == _arg1){
return;
};
_bufferingDelayTimer.delay = _arg1;
}
flvplayback_internal function setEnabledAndVisibleForState(_arg1:int, _arg2:String):void{
var _local3:int;
var _local4:String;
var _local5:Sprite;
var _local6:ControlData;
var _local7:Boolean;
var _local8:ControlData;
var _local9:ControlData;
var _local10:ControlData;
var _local11:ControlData;
_local3 = _vc.activeVideoPlayerIndex;
_vc.activeVideoPlayerIndex = _vc.visibleVideoPlayerIndex;
_local4 = _arg2;
if ((((_local4 == VideoState.BUFFERING)) && (!(_bufferingOn)))){
_local4 = VideoState.PLAYING;
};
_local5 = controls[_arg1];
if (_local5 == null){
return;
};
_local6 = ctrlDataDict[_local5];
if (_local6 == null){
return;
};
switch (_arg1){
case VOLUME_BAR:
case VOLUME_BAR_HANDLE:
case VOLUME_BAR_HIT:
_local6.enabled = true;
break;
case FULL_SCREEN_ON_BUTTON:
_local6.enabled = !(_fullScreen);
if (controls[FULL_SCREEN_BUTTON] != undefined){
_local5.visible = _local6.enabled;
};
break;
case FULL_SCREEN_OFF_BUTTON:
_local6.enabled = _fullScreen;
if (controls[FULL_SCREEN_BUTTON] != undefined){
_local5.visible = _local6.enabled;
};
break;
case MUTE_ON_BUTTON:
_local6.enabled = !(_isMuted);
if (controls[MUTE_BUTTON] != undefined){
_local5.visible = _local6.enabled;
};
break;
case MUTE_OFF_BUTTON:
_local6.enabled = _isMuted;
if (controls[MUTE_BUTTON] != undefined){
_local5.visible = _local6.enabled;
};
break;
default:
switch (_local4){
case VideoState.LOADING:
case VideoState.CONNECTION_ERROR:
_local6.enabled = false;
break;
case VideoState.DISCONNECTED:
_local6.enabled = ((!((_vc.source == null))) && (!((_vc.source == ""))));
break;
case VideoState.SEEKING:
break;
default:
_local6.enabled = true;
break;
};
break;
};
switch (_arg1){
case SEEK_BAR:
switch (_local4){
case VideoState.STOPPED:
case VideoState.PLAYING:
case VideoState.PAUSED:
case VideoState.REWINDING:
case VideoState.SEEKING:
_local6.enabled = true;
break;
case VideoState.BUFFERING:
_local6.enabled = ((!(_bufferingBarHides)) || ((controls[BUFFERING_BAR] == undefined)));
break;
default:
_local6.enabled = false;
break;
};
if (_local6.enabled){
_local6.enabled = !(isNaN(_vc.totalTime));
};
if (_local6.handle_mc != null){
_local8 = ctrlDataDict[_local6.handle_mc];
_local8.enabled = _local6.enabled;
_local6.handle_mc.visible = _local8.enabled;
};
if (_local6.hit_mc != null){
_local9 = ctrlDataDict[_local6.hit_mc];
_local9.enabled = _local6.enabled;
_local6.hit_mc.visible = _local9.enabled;
};
_local7 = ((((((!(_bufferingBarHides)) || (_local6.enabled))) || ((controls[BUFFERING_BAR] == undefined)))) || (!(controls[BUFFERING_BAR].visible)));
_local5.visible = _local7;
if (_local6.progress_mc != null){
_local6.progress_mc.visible = _local7;
_local10 = ctrlDataDict[_local6.progress_mc];
if (_local10.fill_mc != null){
_local10.fill_mc.visible = _local7;
};
};
if (_local6.fullness_mc != null){
_local6.fullness_mc.visible = _local7;
_local11 = ctrlDataDict[_local6.fullness_mc];
if (_local11.fill_mc != null){
_local11.fill_mc.visible = _local7;
};
};
break;
case BUFFERING_BAR:
switch (_local4){
case VideoState.STOPPED:
case VideoState.PLAYING:
case VideoState.PAUSED:
case VideoState.REWINDING:
case VideoState.SEEKING:
_local6.enabled = false;
break;
default:
_local6.enabled = true;
break;
};
_local5.visible = _local6.enabled;
if (_local6.fill_mc != null){
_local6.fill_mc.visible = _local6.enabled;
};
break;
case PAUSE_BUTTON:
switch (_local4){
case VideoState.DISCONNECTED:
case VideoState.STOPPED:
case VideoState.PAUSED:
case VideoState.REWINDING:
_local6.enabled = false;
break;
case VideoState.PLAYING:
_local6.enabled = true;
break;
case VideoState.BUFFERING:
_local6.enabled = ((!(_bufferingBarHides)) || ((controls[BUFFERING_BAR] == undefined)));
break;
};
if (controls[PLAY_PAUSE_BUTTON] != undefined){
_local5.visible = _local6.enabled;
};
break;
case PLAY_BUTTON:
switch (_local4){
case VideoState.PLAYING:
_local6.enabled = false;
break;
case VideoState.STOPPED:
case VideoState.PAUSED:
_local6.enabled = true;
break;
case VideoState.BUFFERING:
_local6.enabled = ((!(_bufferingBarHides)) || ((controls[BUFFERING_BAR] == undefined)));
break;
};
if (controls[PLAY_PAUSE_BUTTON] != undefined){
_local5.visible = !(controls[PAUSE_BUTTON].visible);
};
break;
case STOP_BUTTON:
switch (_local4){
case VideoState.DISCONNECTED:
case VideoState.STOPPED:
_local6.enabled = false;
break;
case VideoState.PAUSED:
case VideoState.PLAYING:
case VideoState.BUFFERING:
_local6.enabled = true;
break;
};
break;
case BACK_BUTTON:
case FORWARD_BUTTON:
switch (_local4){
case VideoState.BUFFERING:
_local6.enabled = ((!(_bufferingBarHides)) || ((controls[BUFFERING_BAR] == undefined)));
break;
};
};
_local5.mouseEnabled = _local6.enabled;
_vc.activeVideoPlayerIndex = _local3;
}
public function set fullScreenTakeOver(_arg1:Boolean):void{
var v = _arg1;
if (_fullScreenTakeOver != v){
_fullScreenTakeOver = v;
if (_fullScreenTakeOver){
enterFullScreenTakeOver();
} else {
if (((((!((_vc.stage == null))) && (_fullScreen))) && (_fullScreenAccel))){
try {
_vc.stage.displayState = StageDisplayState.NORMAL;
} catch(se:SecurityError) {
};
};
exitFullScreenTakeOver();
};
};
}
flvplayback_internal function enterFullScreenTakeOver():void{
var i:int;
var fullScreenBG:Sprite;
var vp:VideoPlayer;
if (((!(_fullScreen)) || (!((cacheFLVPlaybackParent == null))))){
return;
};
_vc.removeEventListener(LayoutEvent.LAYOUT, handleLayoutEvent);
_vc.removeEventListener(AutoLayoutEvent.AUTO_LAYOUT, handleLayoutEvent);
_vc.removeEventListener(Event.ADDED_TO_STAGE, handleEvent);
_vc.stage.removeEventListener(FullScreenEvent.FULL_SCREEN, handleFullScreenEvent);
try {
cacheFLVPlaybackScaleMode = new Array();
cacheFLVPlaybackAlign = new Array();
i = 0;
while (i < _vc.videoPlayers.length) {
vp = (_vc.videoPlayers[i] as VideoPlayer);
if (vp != null){
cacheFLVPlaybackScaleMode[i] = vp.scaleMode;
cacheFLVPlaybackAlign[i] = vp.align;
};
i = (i + 1);
};
cacheFLVPlaybackParent = _vc.parent;
cacheFLVPlaybackIndex = _vc.parent.getChildIndex(_vc);
cacheFLVPlaybackLocation = new Rectangle(_vc.registrationX, _vc.registrationY, _vc.registrationWidth, _vc.registrationHeight);
if (!_fullScreenAccel){
cacheStageAlign = _vc.stage.align;
cacheStageScaleMode = _vc.stage.scaleMode;
_vc.stage.align = StageAlign.TOP_LEFT;
_vc.stage.scaleMode = StageScaleMode.NO_SCALE;
};
_vc.align = VideoAlign.CENTER;
_vc.scaleMode = VideoScaleMode.MAINTAIN_ASPECT_RATIO;
_vc.registrationX = 0;
_vc.registrationY = 0;
_vc.setSize(_vc.stage.stageWidth, _vc.stage.stageHeight);
if (_vc.stage != _vc.parent){
_vc.stage.addChild(_vc);
} else {
_vc.stage.setChildIndex(_vc, (_vc.stage.numChildren - 1));
};
fullScreenBG = Sprite(_vc.getChildByName("fullScreenBG"));
if (fullScreenBG == null){
fullScreenBG = new Sprite();
fullScreenBG.name = "fullScreenBG";
_vc.addChildAt(fullScreenBG, 0);
} else {
_vc.setChildIndex(fullScreenBG, 0);
};
fullScreenBG.graphics.beginFill(_fullScreenBgColor);
fullScreenBG.graphics.drawRect(0, 0, _vc.stage.stageWidth, _vc.stage.stageHeight);
layoutSkin();
setupSkinAutoHide(false);
} catch(err:Error) {
cacheFLVPlaybackParent = null;
};
_vc.addEventListener(LayoutEvent.LAYOUT, handleLayoutEvent);
_vc.addEventListener(AutoLayoutEvent.AUTO_LAYOUT, handleLayoutEvent);
_vc.addEventListener(Event.ADDED_TO_STAGE, handleEvent);
_vc.stage.addEventListener(FullScreenEvent.FULL_SCREEN, handleFullScreenEvent);
}
public function set seekBarScrubTolerance(_arg1:Number):void{
_seekBarScrubTolerance = _arg1;
}
flvplayback_internal function cleanupHandle(_arg1:Object):void{
var e:Event;
var ctrl:Sprite;
var ctrlData:ControlData;
var ctrlOrEvent = _arg1;
try {
if ((ctrlOrEvent is Event)){
e = Event(ctrlOrEvent);
};
ctrl = ((e == null)) ? Sprite(ctrlOrEvent) : Sprite(e.currentTarget);
ctrlData = ctrlDataDict[ctrl];
if ((((ctrlData == null)) || ((e == null)))){
ctrl.removeEventListener(Event.REMOVED_FROM_STAGE, cleanupHandle, false);
if (ctrlData == null){
return;
};
};
ctrl.removeEventListener(Event.ENTER_FRAME, finishAddBarControl);
if (ctrlData.handle_mc != null){
if (ctrlData.handle_mc.parent != null){
ctrlData.handle_mc.parent.removeChild(ctrlData.handle_mc);
};
delete ctrlDataDict[ctrlData.handle_mc];
ctrlData.handle_mc = null;
};
if (ctrlData.hit_mc != null){
if (ctrlData.hit_mc.parent != null){
ctrlData.hit_mc.parent.removeChild(ctrlData.hit_mc);
};
delete ctrlDataDict[ctrlData.hit_mc];
ctrlData.hit_mc = null;
};
} catch(err:Error) {
};
}
flvplayback_internal static function getNumberPropSafe(_arg1:Object, _arg2:String):Number{
var numProp:*;
var obj = _arg1;
var propName = _arg2;
try {
numProp = obj[propName];
return (Number(numProp));
} catch(re:ReferenceError) {
};
return (NaN);
}
flvplayback_internal static function getBooleanPropSafe(_arg1:Object, _arg2:String):Boolean{
var boolProp:*;
var obj = _arg1;
var propName = _arg2;
try {
boolProp = obj[propName];
return (Boolean(boolProp));
} catch(re:ReferenceError) {
};
return (false);
}
flvplayback_internal static function initLayoutNameToIndexMappings():void{
var _local1:int;
layoutNameToIndexMappings = new Object();
_local1 = 0;
while (_local1 < layoutNameArray.length) {
if (layoutNameArray[_local1] != null){
layoutNameToIndexMappings[layoutNameArray[_local1]] = _local1;
};
_local1++;
};
}
}
}//package fl.video
Section 152
//VideoAlign (fl.video.VideoAlign)
package fl.video {
public final class VideoAlign {
public static const CENTER:String = "center";
public static const LEFT:String = "left";
public static const BOTTOM_RIGHT:String = "bottomRight";
public static const BOTTOM:String = "bottom";
public static const TOP_LEFT:String = "topLeft";
public static const TOP_RIGHT:String = "topRight";
public static const TOP:String = "top";
public static const BOTTOM_LEFT:String = "bottomLeft";
public static const RIGHT:String = "right";
}
}//package fl.video
Section 153
//VideoError (fl.video.VideoError)
package fl.video {
public class VideoError extends Error {
private var _code:uint;
public static const INVALID_SOURCE:uint = 1004;
flvplayback_internal static const ERROR_MSG:Array = ["Unable to make connection to server or to find FLV on server", "No matching cue point found", "Illegal cue point", "Invalid seek", "Invalid source", "Invalid xml", "No bitrate match, must be no default flv", "Cannot delete default VideoPlayer", "VideoPlayer.iNCManagerClass has not been set or its value is invalid", "Null url parameter sent to load()", "Skin is missing a required style definition or its value is invalid", "Unsupported property", "VideoPlayer.netStreamClientClass has not been set or its value is invalid"];
public static const NULL_URL_LOAD:uint = 1009;
public static const INVALID_XML:uint = 1005;
flvplayback_internal static const BASE_ERROR_CODE:uint = 1000;
public static const DELETE_DEFAULT_PLAYER:uint = 1007;
public static const SHORT_VERSION:String = "2.1";
public static const UNSUPPORTED_PROPERTY:uint = 1011;
public static const ILLEGAL_CUE_POINT:uint = 1002;
public static const INVALID_SEEK:uint = 1003;
public static const NO_CONNECTION:uint = 1000;
public static const MISSING_SKIN_STYLE:uint = 1010;
public static const INCMANAGER_CLASS_UNSET:uint = 1008;
public static const NO_BITRATE_MATCH:uint = 1006;
public static const NETSTREAM_CLIENT_CLASS_UNSET:uint = 1012;
public static const VERSION:String = "2.1.0.14";
public function VideoError(_arg1:uint, _arg2:String=null){
super((((("" + _arg1) + ": ") + ERROR_MSG[(_arg1 - BASE_ERROR_CODE)]) + ((_arg2)==null) ? "" : (": " + _arg2)));
name = "VideoError";
_code = _arg1;
}
public function get code():uint{
return (_code);
}
}
}//package fl.video
Section 154
//VideoEvent (fl.video.VideoEvent)
package fl.video {
import flash.events.*;
public class VideoEvent extends Event implements IVPEvent {
private var _vp:uint;
private var _playheadTime:Number;
private var _state:String;
public static const FAST_FORWARD:String = "fastForward";
public static const READY:String = "ready";
public static const SKIN_LOADED:String = "skinLoaded";
public static const SCRUB_FINISH:String = "scrubFinish";
public static const BUFFERING_STATE_ENTERED:String = "bufferingStateEntered";
public static const STOPPED_STATE_ENTERED:String = "stoppedStateEntered";
public static const AUTO_REWOUND:String = "autoRewound";
public static const SCRUB_START:String = "scrubStart";
public static const PLAYHEAD_UPDATE:String = "playheadUpdate";
public static const SEEKED:String = "seeked";
public static const PLAYING_STATE_ENTERED:String = "playingStateEntered";
public static const CLOSE:String = "close";
public static const PAUSED_STATE_ENTERED:String = "pausedStateEntered";
public static const COMPLETE:String = "complete";
public static const REWIND:String = "rewind";
public static const STATE_CHANGE:String = "stateChange";
public function VideoEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false, _arg4:String=null, _arg5:Number=NaN, _arg6:uint=0){
super(_arg1, _arg2, _arg3);
_state = _arg4;
_playheadTime = _arg5;
_vp = _arg6;
}
public function set playheadTime(_arg1:Number):void{
_playheadTime = _arg1;
}
public function get playheadTime():Number{
return (_playheadTime);
}
public function get state():String{
return (_state);
}
public function get vp():uint{
return (_vp);
}
override public function clone():Event{
return (new VideoEvent(type, bubbles, cancelable, state, playheadTime, vp));
}
public function set state(_arg1:String):void{
_state = _arg1;
}
public function set vp(_arg1:uint):void{
_vp = _arg1;
}
}
}//package fl.video
Section 155
//VideoPlayer (fl.video.VideoPlayer)
package fl.video {
import flash.events.*;
import flash.net.*;
import flash.geom.*;
import flash.media.*;
import flash.utils.*;
public class VideoPlayer extends Video {
protected var _align:String;
protected var _registrationWidth:Number;
flvplayback_internal var _updateProgressTimer:Timer;
flvplayback_internal var _atEndCheckPlayhead:Number;
flvplayback_internal var _hiddenForResize:Boolean;
flvplayback_internal var startProgressTime:Number;
protected var _volume:Number;
flvplayback_internal var _invalidSeekTime:Boolean;
flvplayback_internal var _readyDispatched:Boolean;
flvplayback_internal var lastUpdateTimeStuckCount:Number;
protected var _ns:NetStream;
protected var _isLive:Boolean;
flvplayback_internal var _bufferState:String;
protected var _streamLength:Number;
flvplayback_internal var _rtmpDoSeekTimer:Timer;
protected var _contentPath:String;
flvplayback_internal var lastUpdateTimeStuckCountMax:int;// = 10
protected var _metadata:Object;
protected var __visible:Boolean;
flvplayback_internal var autoResizeMetadataDelayMax:Number;// = 5
protected var _scaleMode:String;
flvplayback_internal var _lastUpdateTime:Number;
flvplayback_internal var _sawPlayStop:Boolean;
flvplayback_internal var _atEnd:Boolean;
flvplayback_internal var _sawSeekNotify:Boolean;
flvplayback_internal var _idleTimeoutTimer:Timer;
flvplayback_internal var _prevVideoWidth:int;
protected var _registrationX:Number;
protected var _registrationY:Number;
protected var _bufferTime:Number;
flvplayback_internal var _cachedState:String;
flvplayback_internal var totalDownloadTime:Number;
flvplayback_internal var _cachedPlayheadTime:Number;
protected var _autoPlay:Boolean;
protected var _autoRewind:Boolean;
flvplayback_internal var _invalidSeekRecovery:Boolean;
flvplayback_internal var _hiddenRewindPlayheadTime:Number;
flvplayback_internal var _prevVideoHeight:int;
protected var _ncMgr:INCManager;
protected var _soundTransform:SoundTransform;
flvplayback_internal var _httpDoSeekCount:Number;
flvplayback_internal var oldRegistrationBounds:Rectangle;
flvplayback_internal var _cmdQueue:Array;
flvplayback_internal var _updateTimeTimer:Timer;
flvplayback_internal var httpDoSeekMaxCount:Number;// = 4
flvplayback_internal var _startingPlay:Boolean;
flvplayback_internal var baselineProgressTime:Number;
flvplayback_internal var _autoResizeTimer:Timer;
flvplayback_internal var _autoResizeDone:Boolean;
flvplayback_internal var _httpDoSeekTimer:Timer;
protected var _state:String;
protected var _videoWidth:int;
flvplayback_internal var _finishAutoResizeTimer:Timer;
flvplayback_internal var _resizeImmediatelyOnMetadata:Boolean;
flvplayback_internal var _currentPos:Number;
flvplayback_internal var oldBounds:Rectangle;
protected var _videoHeight:int;
flvplayback_internal var waitingForEnough:Boolean;
flvplayback_internal var _delayedBufferingTimer:Timer;
protected var _registrationHeight:Number;
flvplayback_internal var _hiddenForResizeMetadataDelay:Number;
flvplayback_internal var autoResizePlayheadTimeout:Number;// = 0.5
flvplayback_internal var _rtmpDoStopAtEndTimer:Timer;
flvplayback_internal var _lastSeekTime:Number;
flvplayback_internal var totalProgressTime:Number;
flvplayback_internal static const FINISH_AUTO_RESIZE_INTERVAL:Number = 250;
flvplayback_internal static const DEFAULT_AUTO_RESIZE_PLAYHEAD_TIMEOUT:Number = 0.5;
flvplayback_internal static const DEFAULT_AUTO_RESIZE_METADATA_DELAY_MAX:Number = 5;
public static const SHORT_VERSION:String = "2.1";
flvplayback_internal static const HTTP_DO_SEEK_INTERVAL:Number = 250;
flvplayback_internal static const DEFAULT_HTTP_DO_SEEK_MAX_COUNT:Number = 4;
flvplayback_internal static const RTMP_DO_SEEK_INTERVAL:Number = 100;
flvplayback_internal static const HTTP_DELAYED_BUFFERING_INTERVAL:Number = 100;
public static const DEFAULT_UPDATE_TIME_INTERVAL:Number = 250;
flvplayback_internal static const AUTO_RESIZE_INTERVAL:Number = 100;
public static const DEFAULT_IDLE_TIMEOUT_INTERVAL:Number = 300000;
flvplayback_internal static const DEFAULT_LAST_UPDATE_TIME_STUCK_COUNT_MAX:int = 10;
flvplayback_internal static const RTMP_DO_STOP_AT_END_INTERVAL:Number = 500;
public static const VERSION:String = "2.1.0.14";
public static const DEFAULT_UPDATE_PROGRESS_INTERVAL:Number = 250;
public static var netStreamClientClass:Object = VideoPlayerClient;
public static var iNCManagerClass:Object = "fl.video.NCManager";
flvplayback_internal static var BUFFER_FLUSH:String = "bufferFlush";
flvplayback_internal static var BUFFER_FULL:String = "bufferFull";
flvplayback_internal static var BUFFER_EMPTY:String = "bufferEmpty";
public function VideoPlayer(_arg1:int=320, _arg2:int=240){
autoResizePlayheadTimeout = DEFAULT_AUTO_RESIZE_PLAYHEAD_TIMEOUT;
autoResizeMetadataDelayMax = DEFAULT_AUTO_RESIZE_METADATA_DELAY_MAX;
httpDoSeekMaxCount = DEFAULT_HTTP_DO_SEEK_MAX_COUNT;
lastUpdateTimeStuckCountMax = DEFAULT_LAST_UPDATE_TIME_STUCK_COUNT_MAX;
super(_arg1, _arg2);
_registrationX = x;
_registrationY = y;
_registrationWidth = _arg1;
_registrationHeight = _arg2;
_state = VideoState.DISCONNECTED;
_cachedState = _state;
_bufferState = BUFFER_EMPTY;
_sawPlayStop = false;
_cachedPlayheadTime = 0;
_metadata = null;
_startingPlay = false;
_invalidSeekTime = false;
_invalidSeekRecovery = false;
_currentPos = 0;
_atEnd = false;
_streamLength = 0;
_cmdQueue = new Array();
_readyDispatched = false;
_autoResizeDone = false;
_lastUpdateTime = NaN;
lastUpdateTimeStuckCount = 0;
_sawSeekNotify = false;
_hiddenForResize = false;
_hiddenForResizeMetadataDelay = 0;
_resizeImmediatelyOnMetadata = false;
_videoWidth = -1;
_videoHeight = -1;
_prevVideoWidth = 0;
_prevVideoHeight = 0;
_updateTimeTimer = new Timer(DEFAULT_UPDATE_TIME_INTERVAL);
_updateTimeTimer.addEventListener(TimerEvent.TIMER, doUpdateTime);
_updateProgressTimer = new Timer(DEFAULT_UPDATE_PROGRESS_INTERVAL);
_updateProgressTimer.addEventListener(TimerEvent.TIMER, doUpdateProgress);
_idleTimeoutTimer = new Timer(DEFAULT_IDLE_TIMEOUT_INTERVAL, 1);
_idleTimeoutTimer.addEventListener(TimerEvent.TIMER, doIdleTimeout);
_autoResizeTimer = new Timer(AUTO_RESIZE_INTERVAL);
_autoResizeTimer.addEventListener(TimerEvent.TIMER, doAutoResize);
_rtmpDoStopAtEndTimer = new Timer(RTMP_DO_STOP_AT_END_INTERVAL);
_rtmpDoStopAtEndTimer.addEventListener(TimerEvent.TIMER, rtmpDoStopAtEnd);
_rtmpDoSeekTimer = new Timer(RTMP_DO_SEEK_INTERVAL);
_rtmpDoSeekTimer.addEventListener(TimerEvent.TIMER, rtmpDoSeek);
_httpDoSeekTimer = new Timer(HTTP_DO_SEEK_INTERVAL);
_httpDoSeekTimer.addEventListener(TimerEvent.TIMER, httpDoSeek);
_httpDoSeekCount = 0;
_finishAutoResizeTimer = new Timer(FINISH_AUTO_RESIZE_INTERVAL, 1);
_finishAutoResizeTimer.addEventListener(TimerEvent.TIMER, finishAutoResize);
_delayedBufferingTimer = new Timer(HTTP_DELAYED_BUFFERING_INTERVAL);
_delayedBufferingTimer.addEventListener(TimerEvent.TIMER, doDelayedBuffering);
_isLive = false;
_align = VideoAlign.CENTER;
_scaleMode = VideoScaleMode.MAINTAIN_ASPECT_RATIO;
_autoPlay = true;
_autoRewind = false;
_bufferTime = 0.1;
_soundTransform = new SoundTransform();
_volume = _soundTransform.volume;
__visible = true;
_contentPath = "";
waitingForEnough = false;
baselineProgressTime = NaN;
startProgressTime = NaN;
totalDownloadTime = NaN;
totalProgressTime = NaN;
}
public function get playheadTime():Number{
var _local1:Number;
_local1 = ((_ns)==null) ? _currentPos : _ns.time;
if (((!((_metadata == null))) && (!((_metadata.audiodelay == undefined))))){
_local1 = (_local1 - _metadata.audiodelay);
if (_local1 < 0){
_local1 = 0;
};
};
return (_local1);
}
public function stop():void{
if (!isXnOK()){
if ((((((_state == VideoState.CONNECTION_ERROR)) || ((_ncMgr == null)))) || ((_ncMgr.netConnection == null)))){
throw (new VideoError(VideoError.NO_CONNECTION));
};
return;
} else {
if (_state == VideoState.EXEC_QUEUED_CMD){
_state = _cachedState;
} else {
if (!stateResponsive){
queueCmd(QueuedCommand.STOP);
return;
};
execQueuedCmds();
};
};
if ((((_state == VideoState.STOPPED)) || ((_ns == null)))){
return;
};
if (_ncMgr.isRTMP){
if (((_autoRewind) && (!(_isLive)))){
_currentPos = 0;
_play(0, 0);
_state = VideoState.STOPPED;
setState(VideoState.REWINDING);
} else {
closeNS(true);
setState(VideoState.STOPPED);
};
} else {
_pause(true);
if (_autoRewind){
_seek(0);
_state = VideoState.STOPPED;
setState(VideoState.REWINDING);
} else {
setState(VideoState.STOPPED);
};
};
}
flvplayback_internal function execQueuedCmds():void{
var nextCmd:Object;
while ((((((_cmdQueue.length > 0)) && (((((stateResponsive) || ((_state == VideoState.DISCONNECTED)))) || ((_state == VideoState.CONNECTION_ERROR)))))) && (((!((_cmdQueue[0].url == null))) || (((!((_state == VideoState.DISCONNECTED))) && (!((_state == VideoState.CONNECTION_ERROR))))))))) {
try {
nextCmd = _cmdQueue.shift();
_cachedState = _state;
_state = VideoState.EXEC_QUEUED_CMD;
switch (nextCmd.type){
case QueuedCommand.PLAY:
play(nextCmd.url, nextCmd.time, nextCmd.isLive);
break;
case QueuedCommand.LOAD:
load(nextCmd.url, nextCmd.time, nextCmd.isLive);
break;
case QueuedCommand.PAUSE:
pause();
break;
case QueuedCommand.STOP:
stop();
break;
case QueuedCommand.SEEK:
seek(nextCmd.time);
break;
case QueuedCommand.PLAY_WHEN_ENOUGH:
playWhenEnoughDownloaded();
break;
};
} finally {
if (_state == VideoState.EXEC_QUEUED_CMD){
_state = _cachedState;
};
};
};
}
public function setScale(_arg1:Number, _arg2:Number):void{
super.scaleX = _arg1;
super.scaleY = _arg2;
_registrationWidth = width;
_registrationHeight = height;
switch (_scaleMode){
case VideoScaleMode.MAINTAIN_ASPECT_RATIO:
case VideoScaleMode.NO_SCALE:
startAutoResize();
break;
default:
super.x = _registrationX;
super.y = _registrationY;
break;
};
}
public function set playheadTime(_arg1:Number):void{
seek(_arg1);
}
override public function get videoWidth():int{
if (_videoWidth > 0){
return (_videoWidth);
};
if (((((!((_metadata == null))) && (!(isNaN(_metadata.width))))) && (!(isNaN(_metadata.height))))){
if ((((_metadata.width == _metadata.height)) && (_readyDispatched))){
return (super.videoWidth);
};
return (int(_metadata.width));
};
if (_readyDispatched){
return (super.videoWidth);
};
return (-1);
}
public function get scaleMode():String{
return (_scaleMode);
}
public function get progressInterval():Number{
return (_updateProgressTimer.delay);
}
public function set align(_arg1:String):void{
if (_align != _arg1){
switch (_arg1){
case VideoAlign.CENTER:
case VideoAlign.TOP:
case VideoAlign.LEFT:
case VideoAlign.BOTTOM:
case VideoAlign.RIGHT:
case VideoAlign.TOP_LEFT:
case VideoAlign.TOP_RIGHT:
case VideoAlign.BOTTOM_LEFT:
case VideoAlign.BOTTOM_RIGHT:
break;
default:
return;
};
_align = _arg1;
switch (_scaleMode){
case VideoScaleMode.MAINTAIN_ASPECT_RATIO:
case VideoScaleMode.NO_SCALE:
startAutoResize();
break;
};
};
}
public function set scaleMode(_arg1:String):void{
if (_scaleMode != _arg1){
switch (_arg1){
case VideoScaleMode.MAINTAIN_ASPECT_RATIO:
case VideoScaleMode.NO_SCALE:
case VideoScaleMode.EXACT_FIT:
break;
default:
return;
};
if ((((((_scaleMode == VideoScaleMode.EXACT_FIT)) && (_resizeImmediatelyOnMetadata))) && ((((_videoWidth < 0)) || ((_videoHeight < 0)))))){
_resizeImmediatelyOnMetadata = false;
};
_scaleMode = _arg1;
startAutoResize();
};
}
public function get source():String{
return (_contentPath);
}
flvplayback_internal function doUpdateTime(_arg1:TimerEvent=null):void{
var _local2:Number;
_local2 = playheadTime;
if (_local2 != _atEndCheckPlayhead){
_atEndCheckPlayhead = NaN;
};
switch (_state){
case VideoState.STOPPED:
case VideoState.PAUSED:
case VideoState.DISCONNECTED:
case VideoState.CONNECTION_ERROR:
_updateTimeTimer.stop();
break;
case VideoState.PLAYING:
case VideoState.BUFFERING:
if (((((((((!((_ncMgr == null))) && (!(_ncMgr.isRTMP)))) && ((_lastUpdateTime == _local2)))) && (!((_ns == null))))) && ((_ns.bytesLoaded == _ns.bytesTotal)))){
if (lastUpdateTimeStuckCount > lastUpdateTimeStuckCountMax){
lastUpdateTimeStuckCount = 0;
httpDoStopAtEnd();
} else {
lastUpdateTimeStuckCount++;
};
};
};
if (_lastUpdateTime != _local2){
dispatchEvent(new VideoEvent(VideoEvent.PLAYHEAD_UPDATE, false, false, _state, _local2));
_lastUpdateTime = _local2;
lastUpdateTimeStuckCount = 0;
};
}
flvplayback_internal function rtmpNetStatus(_arg1:NetStatusEvent):void{
if (_state == VideoState.CONNECTION_ERROR){
return;
};
switch (_arg1.info.code){
case "NetStream.Play.Stop":
if (_startingPlay){
return;
};
switch (_state){
case VideoState.RESIZING:
if (_hiddenForResize){
finishAutoResize();
};
break;
case VideoState.LOADING:
case VideoState.STOPPED:
case VideoState.PAUSED:
break;
default:
_sawPlayStop = true;
if (((!(_rtmpDoStopAtEndTimer.running)) && ((((_bufferState == BUFFER_FLUSH)) || ((((_ns.bufferTime <= 0.1)) && ((_ns.bufferLength <= 0.1)))))))){
_cachedPlayheadTime = playheadTime;
_rtmpDoStopAtEndTimer.reset();
_rtmpDoStopAtEndTimer.start();
};
break;
};
break;
case "NetStream.Buffer.Empty":
switch (_bufferState){
case BUFFER_FULL:
if (_sawPlayStop){
rtmpDoStopAtEnd();
} else {
if (_state == VideoState.PLAYING){
setState(VideoState.BUFFERING);
};
};
break;
};
_bufferState = BUFFER_EMPTY;
_sawPlayStop = false;
break;
case "NetStream.Buffer.Flush":
if (((_sawSeekNotify) && ((_state == VideoState.SEEKING)))){
_bufferState = BUFFER_EMPTY;
_sawPlayStop = false;
setStateFromCachedState(false);
doUpdateTime();
execQueuedCmds();
};
if (((((!(_rtmpDoStopAtEndTimer.running)) && (_sawPlayStop))) && ((((_bufferState == BUFFER_EMPTY)) || ((((_ns.bufferTime <= 0.1)) && ((_ns.bufferLength <= 0.1)))))))){
_cachedPlayheadTime = playheadTime;
_rtmpDoStopAtEndTimer.reset();
_rtmpDoStopAtEndTimer.start();
};
switch (_bufferState){
case BUFFER_EMPTY:
if (!_hiddenForResize){
if ((((((_state == VideoState.LOADING)) && ((_cachedState == VideoState.PLAYING)))) || ((_state == VideoState.BUFFERING)))){
setState(VideoState.PLAYING);
} else {
if (_cachedState == VideoState.BUFFERING){
_cachedState = VideoState.PLAYING;
};
};
};
_bufferState = BUFFER_FLUSH;
break;
default:
if (_state == VideoState.BUFFERING){
setStateFromCachedState();
};
break;
};
break;
case "NetStream.Buffer.Full":
if (((_sawSeekNotify) && ((_state == VideoState.SEEKING)))){
_bufferState = BUFFER_EMPTY;
_sawPlayStop = false;
setStateFromCachedState(false);
doUpdateTime();
execQueuedCmds();
};
switch (_bufferState){
case BUFFER_EMPTY:
_bufferState = BUFFER_FULL;
if (!_hiddenForResize){
if ((((((_state == VideoState.LOADING)) && ((_cachedState == VideoState.PLAYING)))) || ((_state == VideoState.BUFFERING)))){
setState(VideoState.PLAYING);
} else {
if (_cachedState == VideoState.BUFFERING){
_cachedState = VideoState.PLAYING;
};
};
if (_rtmpDoStopAtEndTimer.running){
_sawPlayStop = true;
_rtmpDoStopAtEndTimer.reset();
};
};
break;
case BUFFER_FLUSH:
_bufferState = BUFFER_FULL;
if (_rtmpDoStopAtEndTimer.running){
_sawPlayStop = true;
_rtmpDoStopAtEndTimer.reset();
};
break;
};
if (_state == VideoState.BUFFERING){
setStateFromCachedState();
};
break;
case "NetStream.Pause.Notify":
if ((((_state == VideoState.RESIZING)) && (_hiddenForResize))){
finishAutoResize();
};
break;
case "NetStream.Unpause.Notify":
if (_state == VideoState.PAUSED){
_state = VideoState.PLAYING;
setState(VideoState.BUFFERING);
} else {
_cachedState = VideoState.PLAYING;
};
break;
case "NetStream.Play.Start":
_rtmpDoStopAtEndTimer.reset();
_bufferState = BUFFER_EMPTY;
_sawPlayStop = false;
if (_startingPlay){
_startingPlay = false;
_cachedPlayheadTime = playheadTime;
} else {
if (_state == VideoState.PLAYING){
setState(VideoState.BUFFERING);
};
};
break;
case "NetStream.Play.Reset":
_rtmpDoStopAtEndTimer.reset();
if (_state == VideoState.REWINDING){
_rtmpDoSeekTimer.reset();
if ((((playheadTime == 0)) || ((playheadTime < _cachedPlayheadTime)))){
setStateFromCachedState();
} else {
_cachedPlayheadTime = playheadTime;
_rtmpDoSeekTimer.start();
};
};
break;
case "NetStream.Seek.Notify":
if (playheadTime != _cachedPlayheadTime){
setStateFromCachedState(false);
doUpdateTime();
execQueuedCmds();
} else {
_sawSeekNotify = true;
_rtmpDoSeekTimer.start();
};
break;
case "Netstream.Play.UnpublishNotify":
break;
case "Netstream.Play.PublishNotify":
break;
case "NetStream.Play.StreamNotFound":
if (!_ncMgr.connectAgain()){
setState(VideoState.CONNECTION_ERROR);
};
break;
case "NetStream.Play.Failed":
case "NetStream.Failed":
case "NetStream.Play.FileStructureInvalid":
case "NetStream.Play.NoSupportedTrackFound":
setState(VideoState.CONNECTION_ERROR);
break;
};
}
public function set progressInterval(_arg1:Number):void{
_updateProgressTimer.delay = _arg1;
}
flvplayback_internal function onCuePoint(_arg1:Object):void{
if (((!(_hiddenForResize)) || (((!(isNaN(_hiddenRewindPlayheadTime))) && ((playheadTime < _hiddenRewindPlayheadTime)))))){
dispatchEvent(new MetadataEvent(MetadataEvent.CUE_POINT, false, false, _arg1));
};
}
flvplayback_internal function createINCManager():void{
var theClass:Class;
theClass = null;
try {
if ((iNCManagerClass is String)){
theClass = Class(getDefinitionByName(String(iNCManagerClass)));
} else {
if ((iNCManagerClass is Class)){
theClass = Class(iNCManagerClass);
};
};
} catch(e:Error) {
theClass = null;
};
if (theClass == null){
throw (new VideoError(VideoError.INCMANAGER_CLASS_UNSET, ((iNCManagerClass)==null) ? "null" : iNCManagerClass.toString()));
};
_ncMgr = new (theClass);
_ncMgr.videoPlayer = this;
}
flvplayback_internal function doAutoResize(_arg1:TimerEvent=null):void{
var _local2:Boolean;
var _local3:int;
var _local4:int;
var _local5:Number;
var _local6:Number;
if (_autoResizeTimer.running){
switch (_state){
case VideoState.RESIZING:
case VideoState.LOADING:
break;
case VideoState.DISCONNECTED:
case VideoState.CONNECTION_ERROR:
_autoResizeTimer.reset();
return;
default:
if (!stateResponsive){
return;
};
};
if (((((((((!((super.videoWidth == _prevVideoWidth))) || (!((super.videoHeight == _prevVideoHeight))))) || ((_bufferState == BUFFER_FULL)))) || ((_bufferState == BUFFER_FLUSH)))) || ((_ns.time > autoResizePlayheadTimeout)))){
if (((((_hiddenForResize) && (!(_ns.client.ready)))) && ((_hiddenForResizeMetadataDelay < autoResizeMetadataDelayMax)))){
_hiddenForResizeMetadataDelay++;
return;
};
_autoResizeTimer.reset();
} else {
return;
};
};
if (_autoResizeDone){
setState(_cachedState);
return;
};
oldBounds = new Rectangle(x, y, width, height);
oldRegistrationBounds = new Rectangle(registrationX, registrationY, registrationWidth, registrationHeight);
_autoResizeDone = true;
_local2 = _readyDispatched;
_readyDispatched = true;
_local3 = videoWidth;
_local4 = videoHeight;
_readyDispatched = _local2;
switch (_scaleMode){
case VideoScaleMode.NO_SCALE:
super.width = _local3;
super.height = _local4;
break;
case VideoScaleMode.EXACT_FIT:
super.width = registrationWidth;
super.height = registrationHeight;
break;
case VideoScaleMode.MAINTAIN_ASPECT_RATIO:
default:
_local5 = ((_local3 * _registrationHeight) / _local4);
_local6 = ((_local4 * _registrationWidth) / _local3);
if (_local6 < _registrationHeight){
super.width = _registrationWidth;
super.height = _local6;
} else {
if (_local5 < _registrationWidth){
super.width = _local5;
super.height = _registrationHeight;
} else {
super.width = _registrationWidth;
super.height = _registrationHeight;
};
};
};
switch (_align){
case VideoAlign.CENTER:
case VideoAlign.TOP:
case VideoAlign.BOTTOM:
default:
super.x = (_registrationX + ((_registrationWidth - width) / 2));
break;
case VideoAlign.LEFT:
case VideoAlign.TOP_LEFT:
case VideoAlign.BOTTOM_LEFT:
super.x = _registrationX;
break;
case VideoAlign.RIGHT:
case VideoAlign.TOP_RIGHT:
case VideoAlign.BOTTOM_RIGHT:
super.x = (_registrationX + (_registrationWidth - width));
break;
};
switch (_align){
case VideoAlign.CENTER:
case VideoAlign.LEFT:
case VideoAlign.RIGHT:
default:
super.y = (_registrationY + ((_registrationHeight - height) / 2));
break;
case VideoAlign.TOP:
case VideoAlign.TOP_LEFT:
case VideoAlign.TOP_RIGHT:
super.y = _registrationY;
break;
case VideoAlign.BOTTOM:
case VideoAlign.BOTTOM_LEFT:
case VideoAlign.BOTTOM_RIGHT:
super.y = (_registrationY + (_registrationHeight - height));
break;
};
if (_hiddenForResize){
_hiddenRewindPlayheadTime = playheadTime;
if (_state == VideoState.LOADING){
_cachedState = VideoState.PLAYING;
};
if (!_ncMgr.isRTMP){
_pause(true);
_seek(0);
_finishAutoResizeTimer.reset();
_finishAutoResizeTimer.start();
} else {
if (!_isLive){
_currentPos = 0;
_play(0, 0);
setState(VideoState.RESIZING);
} else {
if (_autoPlay){
_finishAutoResizeTimer.reset();
_finishAutoResizeTimer.start();
} else {
finishAutoResize();
};
};
};
} else {
dispatchEvent(new AutoLayoutEvent(AutoLayoutEvent.AUTO_LAYOUT, false, false, oldBounds, oldRegistrationBounds));
};
}
public function get totalTime():Number{
return (_streamLength);
}
public function get ncMgr():INCManager{
if (_ncMgr == null){
createINCManager();
};
return (_ncMgr);
}
public function set volume(_arg1:Number):void{
var _local2:SoundTransform;
_local2 = soundTransform;
_local2.volume = _arg1;
soundTransform = _local2;
}
flvplayback_internal function _play(_arg1:int=0, _arg2:int=-1):void{
waitingForEnough = false;
_rtmpDoStopAtEndTimer.reset();
_startingPlay = true;
_ns.play(_ncMgr.streamName, (_isLive) ? -1 : _arg1, _arg2);
}
flvplayback_internal function finishAutoResize(_arg1:TimerEvent=null):void{
if (stateResponsive){
return;
};
_hiddenForResize = false;
super.visible = __visible;
volume = _volume;
dispatchEvent(new AutoLayoutEvent(AutoLayoutEvent.AUTO_LAYOUT, false, false, oldBounds, oldRegistrationBounds));
if (_autoPlay){
if (_ncMgr.isRTMP){
if (!_isLive){
_currentPos = 0;
_play(0);
};
if (_state == VideoState.RESIZING){
setState(VideoState.LOADING);
_cachedState = VideoState.PLAYING;
};
} else {
waitingForEnough = true;
_cachedState = _state;
_state = VideoState.PAUSED;
checkReadyForPlay(bytesLoaded, bytesTotal);
if (waitingForEnough){
_state = _cachedState;
setState(VideoState.PAUSED);
} else {
_cachedState = VideoState.PLAYING;
};
};
} else {
setState(VideoState.STOPPED);
};
}
public function set soundTransform(_arg1:SoundTransform):void{
if (_arg1 == null){
return;
};
if (_hiddenForResize){
_volume = _arg1.volume;
};
_soundTransform = new SoundTransform();
_soundTransform.volume = (_hiddenForResize) ? 0 : _arg1.volume;
_soundTransform.leftToLeft = _arg1.leftToLeft;
_soundTransform.leftToRight = _arg1.leftToRight;
_soundTransform.rightToLeft = _arg1.rightToLeft;
_soundTransform.rightToRight = _arg1.rightToRight;
if (_ns != null){
_ns.soundTransform = _soundTransform;
};
}
flvplayback_internal function httpDoSeek(_arg1:TimerEvent):void{
var _local2:Boolean;
_local2 = (((_state == VideoState.REWINDING)) || ((_state == VideoState.SEEKING)));
if (((((_local2) && ((_httpDoSeekCount < httpDoSeekMaxCount)))) && ((((_cachedPlayheadTime == playheadTime)) || (_invalidSeekTime))))){
_httpDoSeekCount++;
return;
};
_httpDoSeekCount = 0;
_httpDoSeekTimer.reset();
if (!_local2){
return;
};
setStateFromCachedState(false);
if (_invalidSeekTime){
_invalidSeekTime = false;
_invalidSeekRecovery = true;
seek(playheadTime);
} else {
doUpdateTime();
_lastSeekTime = playheadTime;
execQueuedCmds();
};
}
public function get bytesLoaded():uint{
if ((((_ns == null)) || (_ncMgr.isRTMP))){
return (uint.MIN_VALUE);
};
return (_ns.bytesLoaded);
}
override public function set height(_arg1:Number):void{
super.height = (_registrationHeight = _arg1);
switch (_scaleMode){
case VideoScaleMode.MAINTAIN_ASPECT_RATIO:
case VideoScaleMode.NO_SCALE:
startAutoResize();
break;
default:
super.height = _arg1;
break;
};
}
flvplayback_internal function httpNetStatus(_arg1:NetStatusEvent):void{
switch (_arg1.info.code){
case "NetStream.Play.Stop":
_delayedBufferingTimer.reset();
if (_invalidSeekTime){
_invalidSeekTime = false;
_invalidSeekRecovery = true;
setState(_cachedState);
seek(playheadTime);
} else {
switch (_state){
case VideoState.SEEKING:
httpDoSeek(null);
case VideoState.PLAYING:
case VideoState.BUFFERING:
httpDoStopAtEnd();
break;
};
};
break;
case "NetStream.Seek.InvalidTime":
if (_invalidSeekRecovery){
_invalidSeekTime = false;
_invalidSeekRecovery = false;
setState(_cachedState);
seek(0);
} else {
_invalidSeekTime = true;
_httpDoSeekCount = 0;
_httpDoSeekTimer.start();
};
break;
case "NetStream.Buffer.Empty":
_bufferState = BUFFER_EMPTY;
if (_state == VideoState.PLAYING){
_delayedBufferingTimer.reset();
_delayedBufferingTimer.start();
};
break;
case "NetStream.Buffer.Full":
case "NetStream.Buffer.Flush":
_delayedBufferingTimer.reset();
_bufferState = BUFFER_FULL;
if (!_hiddenForResize){
if ((((((_state == VideoState.LOADING)) && ((_cachedState == VideoState.PLAYING)))) || ((_state == VideoState.BUFFERING)))){
setState(VideoState.PLAYING);
} else {
if (_cachedState == VideoState.BUFFERING){
_cachedState = VideoState.PLAYING;
};
};
};
break;
case "NetStream.Seek.Notify":
_invalidSeekRecovery = false;
switch (_state){
case VideoState.SEEKING:
case VideoState.REWINDING:
_httpDoSeekCount = 0;
_httpDoSeekTimer.start();
break;
};
break;
case "NetStream.Play.StreamNotFound":
case "NetStream.Play.FileStructureInvalid":
case "NetStream.Play.NoSupportedTrackFound":
setState(VideoState.CONNECTION_ERROR);
break;
};
}
public function get netConnection():NetConnection{
if (_ncMgr != null){
return (_ncMgr.netConnection);
};
return (null);
}
public function set bufferTime(_arg1:Number):void{
_bufferTime = _arg1;
if (_ns != null){
_ns.bufferTime = _bufferTime;
};
}
flvplayback_internal function onMetaData(_arg1:Object):void{
if (_metadata != null){
return;
};
_metadata = _arg1;
if (isNaN(_streamLength)){
_streamLength = _arg1.duration;
};
if (((_resizeImmediatelyOnMetadata) && (_ns.client.ready))){
_resizeImmediatelyOnMetadata = false;
_autoResizeTimer.reset();
_autoResizeDone = false;
doAutoResize();
};
dispatchEvent(new MetadataEvent(MetadataEvent.METADATA_RECEIVED, false, false, _arg1));
}
flvplayback_internal function queueCmd(_arg1:Number, _arg2:String=null, _arg3:Boolean=false, _arg4:Number=NaN):void{
_cmdQueue.push(new QueuedCommand(_arg1, _arg2, _arg3, _arg4));
}
public function set registrationHeight(_arg1:Number):void{
height = _arg1;
}
override public function get visible():Boolean{
if (!_hiddenForResize){
__visible = super.visible;
};
return (__visible);
}
public function seek(_arg1:Number):void{
if (_invalidSeekTime){
return;
};
if (((isNaN(_arg1)) || ((_arg1 < 0)))){
throw (new VideoError(VideoError.INVALID_SEEK));
};
if (!isXnOK()){
if ((((((_state == VideoState.CONNECTION_ERROR)) || ((_ncMgr == null)))) || ((_ncMgr.netConnection == null)))){
throw (new VideoError(VideoError.NO_CONNECTION));
};
flushQueuedCmds();
queueCmd(QueuedCommand.SEEK, null, false, _arg1);
setState(VideoState.LOADING);
_cachedState = VideoState.LOADING;
_ncMgr.reconnect();
return;
} else {
if (_state == VideoState.EXEC_QUEUED_CMD){
_state = _cachedState;
} else {
if (!stateResponsive){
queueCmd(QueuedCommand.SEEK, null, false, _arg1);
return;
};
execQueuedCmds();
};
};
if (_ns == null){
_createStream();
};
if (((_atEnd) && ((_arg1 < playheadTime)))){
_atEnd = false;
};
switch (_state){
case VideoState.PLAYING:
_state = VideoState.BUFFERING;
case VideoState.BUFFERING:
case VideoState.PAUSED:
_seek(_arg1);
setState(VideoState.SEEKING);
break;
case VideoState.STOPPED:
if (_ncMgr.isRTMP){
_play(0);
_pause(true);
};
_seek(_arg1);
_state = VideoState.PAUSED;
setState(VideoState.SEEKING);
break;
};
}
public function get state():String{
return (_state);
}
public function set autoRewind(_arg1:Boolean):void{
_autoRewind = _arg1;
}
override public function set scaleX(_arg1:Number):void{
super.scaleX = _arg1;
_registrationWidth = width;
switch (_scaleMode){
case VideoScaleMode.MAINTAIN_ASPECT_RATIO:
case VideoScaleMode.NO_SCALE:
startAutoResize();
break;
};
}
override public function set scaleY(_arg1:Number):void{
super.scaleY = _arg1;
_registrationHeight = height;
switch (_scaleMode){
case VideoScaleMode.MAINTAIN_ASPECT_RATIO:
case VideoScaleMode.NO_SCALE:
startAutoResize();
break;
};
}
public function get registrationWidth():Number{
return (_registrationWidth);
}
flvplayback_internal function flushQueuedCmds():void{
while (_cmdQueue.length > 0) {
_cmdQueue.pop();
};
}
public function get registrationX():Number{
return (_registrationX);
}
flvplayback_internal function _setUpStream():void{
if (((!(isNaN(_ncMgr.streamLength))) && ((_ncMgr.streamLength >= 0)))){
_streamLength = _ncMgr.streamLength;
};
_videoWidth = ((_ncMgr.streamWidth)>=0) ? _ncMgr.streamWidth : -1;
_videoHeight = ((_ncMgr.streamHeight)>=0) ? _ncMgr.streamHeight : -1;
_resizeImmediatelyOnMetadata = (((((_videoWidth >= 0)) && ((_videoHeight >= 0)))) || ((_scaleMode == VideoScaleMode.EXACT_FIT)));
if (!_hiddenForResize){
__visible = super.visible;
super.visible = false;
_volume = volume;
volume = 0;
_hiddenForResize = true;
};
_hiddenForResizeMetadataDelay = 0;
_play(0);
if (_currentPos > 0){
_seek(_currentPos);
_currentPos = 0;
};
_autoResizeTimer.reset();
_autoResizeTimer.start();
}
public function get registrationY():Number{
return (_registrationY);
}
flvplayback_internal function httpDoStopAtEnd():void{
if ((((((_atEndCheckPlayhead == playheadTime)) && (!((_atEndCheckPlayhead == _lastUpdateTime))))) && (!((playheadTime == 0))))){
_atEnd = false;
_seek(0);
return;
};
_atEndCheckPlayhead = NaN;
_atEnd = true;
if (isNaN(_streamLength)){
_streamLength = _ns.time;
};
_pause(true);
setState(VideoState.STOPPED);
if (_state != VideoState.STOPPED){
return;
};
doUpdateTime();
if (_state != VideoState.STOPPED){
return;
};
dispatchEvent(new VideoEvent(VideoEvent.COMPLETE, false, false, _state, playheadTime));
if (_state != VideoState.STOPPED){
return;
};
if (_autoRewind){
_atEnd = false;
_pause(true);
_seek(0);
setState(VideoState.REWINDING);
};
}
public function ncConnected():void{
if ((((_ncMgr == null)) || ((_ncMgr.netConnection == null)))){
setState(VideoState.CONNECTION_ERROR);
} else {
if (_ns == null){
_createStream();
_setUpStream();
};
};
}
override public function set visible(_arg1:Boolean):void{
__visible = _arg1;
if (!_hiddenForResize){
super.visible = __visible;
};
}
public function load(_arg1:String, _arg2:Number=NaN, _arg3:Boolean=false):void{
if (_arg1 == null){
throw (new VideoError(VideoError.NULL_URL_LOAD));
};
if (_state == VideoState.EXEC_QUEUED_CMD){
_state = _cachedState;
} else {
if (((((!(stateResponsive)) && (!((_state == VideoState.DISCONNECTED))))) && (!((_state == VideoState.CONNECTION_ERROR))))){
queueCmd(QueuedCommand.LOAD, _arg1, _arg3, _arg2);
return;
};
execQueuedCmds();
};
_autoPlay = false;
_load(_arg1, _arg2, _arg3);
}
override public function set x(_arg1:Number):void{
var _local2:Number;
if (this.x != _arg1){
_local2 = (_arg1 - this.x);
super.x = _arg1;
_registrationX = (_registrationX + _local2);
};
}
override public function set y(_arg1:Number):void{
var _local2:Number;
if (this.y != _arg1){
_local2 = (_arg1 - this.y);
super.y = _arg1;
_registrationY = (_registrationY + _local2);
};
}
flvplayback_internal function _pause(_arg1:Boolean):void{
_atEndCheckPlayhead = playheadTime;
_rtmpDoStopAtEndTimer.reset();
if (_arg1){
_ns.pause();
} else {
_ns.resume();
};
}
public function get playheadUpdateInterval():Number{
return (_updateTimeTimer.delay);
}
flvplayback_internal function doDelayedBuffering(_arg1:TimerEvent):void{
switch (_state){
case VideoState.LOADING:
case VideoState.RESIZING:
break;
case VideoState.PLAYING:
_delayedBufferingTimer.reset();
if (((((((((!(isNaN(totalTime))) && ((totalTime > 0)))) && ((bytesLoaded > 0)))) && ((bytesLoaded < uint.MAX_VALUE)))) && ((bytesLoaded < bytesTotal)))){
pause();
if (_state == VideoState.PAUSED){
waitingForEnough = true;
playWhenEnoughDownloaded();
};
} else {
setState(VideoState.BUFFERING);
};
break;
default:
_delayedBufferingTimer.reset();
break;
};
}
flvplayback_internal function createNetStreamClient():Object{
var theClass:Class;
var theInst:Object;
theClass = null;
theInst = null;
try {
if ((netStreamClientClass is String)){
theClass = Class(getDefinitionByName(String(netStreamClientClass)));
} else {
if ((netStreamClientClass is Class)){
theClass = Class(netStreamClientClass);
};
};
if (theClass != null){
theInst = new theClass(this);
};
} catch(e:Error) {
theClass = null;
theInst = null;
};
if (theInst == null){
throw (new VideoError(VideoError.NETSTREAM_CLIENT_CLASS_UNSET, ((netStreamClientClass)==null) ? "null" : netStreamClientClass.toString()));
};
return (theInst);
}
public function get align():String{
return (_align);
}
public function set registrationWidth(_arg1:Number):void{
width = _arg1;
}
public function get stateResponsive():Boolean{
switch (_state){
case VideoState.STOPPED:
case VideoState.PLAYING:
case VideoState.PAUSED:
case VideoState.BUFFERING:
return (true);
default:
return (false);
};
}
public function get volume():Number{
return (soundTransform.volume);
}
public function get soundTransform():SoundTransform{
var _local1:SoundTransform;
if (_ns != null){
_soundTransform = _ns.soundTransform;
};
_local1 = new SoundTransform();
_local1.volume = (_hiddenForResize) ? _volume : _soundTransform.volume;
_local1.leftToLeft = _soundTransform.leftToLeft;
_local1.leftToRight = _soundTransform.leftToRight;
_local1.rightToLeft = _soundTransform.rightToLeft;
_local1.rightToRight = _soundTransform.rightToRight;
return (_local1);
}
public function get bufferTime():Number{
if (_ns != null){
_bufferTime = _ns.bufferTime;
};
return (_bufferTime);
}
public function get metadata():Object{
return (_metadata);
}
public function play(_arg1:String=null, _arg2:Number=NaN, _arg3:Boolean=false):void{
if (_arg1 != null){
if (_state == VideoState.EXEC_QUEUED_CMD){
_state = _cachedState;
} else {
if (((((!(stateResponsive)) && (!((_state == VideoState.DISCONNECTED))))) && (!((_state == VideoState.CONNECTION_ERROR))))){
queueCmd(QueuedCommand.PLAY, _arg1, _arg3, _arg2);
return;
};
execQueuedCmds();
};
_autoPlay = true;
_load(_arg1, _arg2, _arg3);
return;
};
if (!isXnOK()){
if ((((((_state == VideoState.CONNECTION_ERROR)) || ((_ncMgr == null)))) || ((_ncMgr.netConnection == null)))){
throw (new VideoError(VideoError.NO_CONNECTION));
};
flushQueuedCmds();
queueCmd(QueuedCommand.PLAY);
setState(VideoState.LOADING);
_cachedState = VideoState.LOADING;
_ncMgr.reconnect();
return;
} else {
if (_state == VideoState.EXEC_QUEUED_CMD){
_state = _cachedState;
} else {
if (!stateResponsive){
queueCmd(QueuedCommand.PLAY);
return;
};
execQueuedCmds();
};
};
if (_ns == null){
_createStream();
};
switch (_state){
case VideoState.BUFFERING:
if (_ncMgr.isRTMP){
_play(0);
if (_atEnd){
_atEnd = false;
_currentPos = 0;
setState(VideoState.REWINDING);
} else {
if (_currentPos > 0){
_seek(_currentPos);
_currentPos = 0;
};
};
};
case VideoState.PLAYING:
return;
case VideoState.STOPPED:
if (_ncMgr.isRTMP){
if (_isLive){
_play(-1);
setState(VideoState.BUFFERING);
} else {
_play(0);
if (_atEnd){
_atEnd = false;
_currentPos = 0;
_state = VideoState.BUFFERING;
setState(VideoState.REWINDING);
} else {
if (_currentPos > 0){
_seek(_currentPos);
_currentPos = 0;
setState(VideoState.BUFFERING);
} else {
setState(VideoState.BUFFERING);
};
};
};
} else {
_pause(false);
if (_atEnd){
_atEnd = false;
_seek(0);
_state = VideoState.BUFFERING;
setState(VideoState.REWINDING);
} else {
if (_bufferState == BUFFER_EMPTY){
setState(VideoState.BUFFERING);
} else {
setState(VideoState.PLAYING);
};
};
};
break;
case VideoState.PAUSED:
_pause(false);
if (!_ncMgr.isRTMP){
if (_bufferState == BUFFER_EMPTY){
setState(VideoState.BUFFERING);
} else {
setState(VideoState.PLAYING);
};
} else {
setState(VideoState.BUFFERING);
};
break;
};
}
public function get isLive():Boolean{
return (_isLive);
}
flvplayback_internal function setStateFromCachedState(_arg1:Boolean=true):void{
switch (_cachedState){
case VideoState.PLAYING:
case VideoState.PAUSED:
case VideoState.BUFFERING:
setState(_cachedState, _arg1);
break;
default:
setState(VideoState.STOPPED, _arg1);
break;
};
}
public function get idleTimeout():Number{
return (_idleTimeoutTimer.delay);
}
public function get registrationHeight():Number{
return (_registrationHeight);
}
public function ncReconnected():void{
if ((((_ncMgr == null)) || ((_ncMgr.netConnection == null)))){
setState(VideoState.CONNECTION_ERROR);
} else {
_ns = null;
_state = VideoState.STOPPED;
execQueuedCmds();
};
}
flvplayback_internal function startAutoResize():void{
switch (_state){
case VideoState.DISCONNECTED:
case VideoState.CONNECTION_ERROR:
return;
default:
if (_ns == null){
return;
};
_autoResizeDone = false;
if (((stateResponsive) && (((((((((!((super.videoWidth == 0))) || (!((super.videoHeight == 0))))) || ((_bufferState == BUFFER_FULL)))) || ((_bufferState == BUFFER_FLUSH)))) || ((_ns.time > autoResizePlayheadTimeout)))))){
doAutoResize();
} else {
_autoResizeTimer.reset();
_autoResizeTimer.start();
};
break;
};
}
flvplayback_internal function setState(_arg1:String, _arg2:Boolean=true):void{
var _local3:String;
if (_arg1 == _state){
return;
};
_hiddenRewindPlayheadTime = NaN;
_cachedState = _state;
_cachedPlayheadTime = playheadTime;
_state = _arg1;
_local3 = _state;
dispatchEvent(new VideoEvent(VideoEvent.STATE_CHANGE, false, false, _local3, playheadTime));
if (!_readyDispatched){
switch (_local3){
case VideoState.STOPPED:
case VideoState.PLAYING:
case VideoState.PAUSED:
case VideoState.BUFFERING:
_readyDispatched = true;
dispatchEvent(new VideoEvent(VideoEvent.READY, false, false, _local3, playheadTime));
break;
};
};
switch (_cachedState){
case VideoState.REWINDING:
dispatchEvent(new VideoEvent(VideoEvent.AUTO_REWOUND, false, false, _local3, playheadTime));
if (((_ncMgr.isRTMP) && ((_local3 == VideoState.STOPPED)))){
closeNS();
};
break;
};
switch (_local3){
case VideoState.STOPPED:
case VideoState.PAUSED:
if (_ncMgr.isRTMP){
_idleTimeoutTimer.reset();
_idleTimeoutTimer.start();
};
break;
case VideoState.SEEKING:
case VideoState.REWINDING:
_bufferState = BUFFER_EMPTY;
_sawPlayStop = false;
_idleTimeoutTimer.reset();
break;
case VideoState.PLAYING:
case VideoState.BUFFERING:
_updateTimeTimer.start();
_idleTimeoutTimer.reset();
break;
case VideoState.LOADING:
case VideoState.RESIZING:
_idleTimeoutTimer.reset();
break;
};
if (_arg2){
execQueuedCmds();
};
}
flvplayback_internal function _seek(_arg1:Number):void{
_rtmpDoStopAtEndTimer.reset();
if (((((!((_metadata == null))) && (!((_metadata.audiodelay == undefined))))) && (((isNaN(_streamLength)) || (((_arg1 + _metadata.audiodelay) < _streamLength)))))){
_arg1 = (_arg1 + _metadata.audiodelay);
};
_ns.seek(_arg1);
_lastSeekTime = _arg1;
_invalidSeekTime = false;
_bufferState = BUFFER_EMPTY;
_sawPlayStop = false;
_sawSeekNotify = false;
}
public function get autoRewind():Boolean{
return (_autoRewind);
}
flvplayback_internal function doIdleTimeout(_arg1:TimerEvent):void{
close();
}
public function playWhenEnoughDownloaded():void{
if (((!((_ncMgr == null))) && (_ncMgr.isRTMP))){
play();
return;
};
if (!isXnOK()){
throw (new VideoError(VideoError.NO_CONNECTION));
};
if (_state == VideoState.EXEC_QUEUED_CMD){
_state = _cachedState;
} else {
if (!stateResponsive){
queueCmd(QueuedCommand.PLAY_WHEN_ENOUGH);
return;
};
execQueuedCmds();
};
waitingForEnough = true;
checkReadyForPlay(bytesLoaded, bytesTotal);
}
flvplayback_internal function rtmpDoSeek(_arg1:TimerEvent):void{
if (((!((_state == VideoState.REWINDING))) && (!((_state == VideoState.SEEKING))))){
_rtmpDoSeekTimer.reset();
_sawSeekNotify = false;
} else {
if (playheadTime != _cachedPlayheadTime){
_rtmpDoSeekTimer.reset();
_sawSeekNotify = false;
setStateFromCachedState(false);
doUpdateTime();
_lastSeekTime = playheadTime;
execQueuedCmds();
};
};
}
public function get netStream():NetStream{
return (_ns);
}
override public function get videoHeight():int{
if (_videoHeight > 0){
return (_videoHeight);
};
if (((((!((_metadata == null))) && (!(isNaN(_metadata.width))))) && (!(isNaN(_metadata.height))))){
if ((((_metadata.width == _metadata.height)) && (_readyDispatched))){
return (super.videoHeight);
};
return (int(_metadata.height));
};
if (_readyDispatched){
return (super.videoHeight);
};
return (-1);
}
public function set registrationX(_arg1:Number):void{
var _local2:Number;
if (_registrationX != _arg1){
_local2 = (_arg1 - _registrationX);
_registrationX = _arg1;
this.x = (this.x + _local2);
};
}
public function set registrationY(_arg1:Number):void{
var _local2:Number;
if (_registrationY != _arg1){
_local2 = (_arg1 - _registrationY);
_registrationY = _arg1;
this.y = (this.y + _local2);
};
}
flvplayback_internal function doUpdateProgress(_arg1:TimerEvent):void{
var _local2:uint;
var _local3:uint;
if (_ns == null){
return;
};
_local2 = _ns.bytesLoaded;
_local3 = _ns.bytesTotal;
if (_local3 < uint.MAX_VALUE){
dispatchEvent(new VideoProgressEvent(VideoProgressEvent.PROGRESS, false, false, _local2, _local3));
};
if ((((((_state == VideoState.DISCONNECTED)) || ((_state == VideoState.CONNECTION_ERROR)))) || ((_local2 >= _local3)))){
_updateProgressTimer.stop();
};
checkEnoughDownloaded(_local2, _local3);
}
override public function set width(_arg1:Number):void{
super.width = (_registrationWidth = _arg1);
switch (_scaleMode){
case VideoScaleMode.MAINTAIN_ASPECT_RATIO:
case VideoScaleMode.NO_SCALE:
startAutoResize();
break;
default:
super.width = _arg1;
break;
};
}
public function get isRTMP():Boolean{
if (_ncMgr == null){
return (false);
};
return (_ncMgr.isRTMP);
}
public function get bytesTotal():uint{
if ((((_ns == null)) || (_ncMgr.isRTMP))){
return (uint.MAX_VALUE);
};
return (_ns.bytesTotal);
}
public function setSize(_arg1:Number, _arg2:Number):void{
super.width = (_registrationWidth = _arg1);
super.height = (_registrationHeight = _arg2);
switch (_scaleMode){
case VideoScaleMode.MAINTAIN_ASPECT_RATIO:
case VideoScaleMode.NO_SCALE:
startAutoResize();
break;
default:
super.x = _registrationX;
super.y = _registrationY;
break;
};
}
flvplayback_internal function isXnOK():Boolean{
if (_state == VideoState.LOADING){
return (true);
};
if (_state == VideoState.CONNECTION_ERROR){
return (false);
};
if (_state != VideoState.DISCONNECTED){
if ((((((_ncMgr == null)) || ((_ncMgr.netConnection == null)))) || (((_ncMgr.isRTMP) && (!(_ncMgr.netConnection.connected)))))){
setState(VideoState.DISCONNECTED);
return (false);
};
return (true);
};
return (false);
}
flvplayback_internal function _createStream():void{
var _local1:NetStream;
_ns = null;
_local1 = new NetStream(_ncMgr.netConnection);
if (_ncMgr.isRTMP){
_local1.addEventListener(NetStatusEvent.NET_STATUS, rtmpNetStatus);
} else {
_local1.addEventListener(NetStatusEvent.NET_STATUS, httpNetStatus);
};
_local1.client = createNetStreamClient();
_local1.bufferTime = _bufferTime;
_local1.soundTransform = soundTransform;
_ns = _local1;
attachNetStream(_ns);
}
flvplayback_internal function checkReadyForPlay(_arg1:uint, _arg2:uint):void{
var _local3:Number;
if (_arg1 >= _arg2){
waitingForEnough = false;
_cachedState = _state;
_state = VideoState.EXEC_QUEUED_CMD;
play();
execQueuedCmds();
return;
};
if (isNaN(baselineProgressTime)){
return;
};
if (((isNaN(totalTime)) || ((totalTime < 0)))){
waitingForEnough = false;
_cachedState = _state;
_state = VideoState.EXEC_QUEUED_CMD;
play();
execQueuedCmds();
} else {
if (totalDownloadTime > 1.5){
_local3 = ((totalProgressTime - baselineProgressTime) / totalDownloadTime);
if ((totalTime - playheadTime) > ((totalTime - totalProgressTime) / _local3)){
waitingForEnough = false;
_cachedState = _state;
_state = VideoState.EXEC_QUEUED_CMD;
play();
execQueuedCmds();
};
};
};
}
flvplayback_internal function closeNS(_arg1:Boolean=false):void{
if (_ns != null){
if (_arg1){
doUpdateTime();
_currentPos = _ns.time;
};
_updateTimeTimer.reset();
_updateProgressTimer.reset();
_idleTimeoutTimer.reset();
_autoResizeTimer.reset();
_rtmpDoStopAtEndTimer.reset();
_rtmpDoSeekTimer.reset();
_httpDoSeekTimer.reset();
_finishAutoResizeTimer.reset();
_delayedBufferingTimer.reset();
_ns.removeEventListener(NetStatusEvent.NET_STATUS, rtmpNetStatus);
_ns.removeEventListener(NetStatusEvent.NET_STATUS, httpNetStatus);
_ns.close();
_ns = null;
};
}
flvplayback_internal function _load(_arg1:String, _arg2:Number, _arg3:Boolean):void{
var _local4:Boolean;
_prevVideoWidth = super.videoWidth;
_prevVideoHeight = super.videoHeight;
_autoResizeDone = false;
_cachedPlayheadTime = 0;
_bufferState = BUFFER_EMPTY;
_sawPlayStop = false;
_metadata = null;
_startingPlay = false;
_invalidSeekTime = false;
_invalidSeekRecovery = false;
_isLive = _arg3;
_contentPath = _arg1;
_currentPos = 0;
_streamLength = (((isNaN(_arg2)) || ((_arg2 <= 0)))) ? NaN : _arg2;
_atEnd = false;
_readyDispatched = false;
_lastUpdateTime = NaN;
lastUpdateTimeStuckCount = 0;
_sawSeekNotify = false;
waitingForEnough = false;
baselineProgressTime = NaN;
startProgressTime = NaN;
totalDownloadTime = NaN;
totalProgressTime = NaN;
_httpDoSeekCount = 0;
_updateTimeTimer.reset();
_updateProgressTimer.reset();
_idleTimeoutTimer.reset();
_autoResizeTimer.reset();
_rtmpDoStopAtEndTimer.reset();
_rtmpDoSeekTimer.reset();
_httpDoSeekTimer.reset();
_finishAutoResizeTimer.reset();
_delayedBufferingTimer.reset();
closeNS(false);
if (_ncMgr == null){
createINCManager();
};
_local4 = _ncMgr.connectToURL(_contentPath);
setState(VideoState.LOADING);
_cachedState = VideoState.LOADING;
if (_local4){
_createStream();
_setUpStream();
};
if (!_ncMgr.isRTMP){
_updateProgressTimer.start();
};
}
flvplayback_internal function rtmpDoStopAtEnd(_arg1:TimerEvent=null):void{
if (_rtmpDoStopAtEndTimer.running){
switch (_state){
case VideoState.DISCONNECTED:
case VideoState.CONNECTION_ERROR:
_rtmpDoStopAtEndTimer.reset();
return;
};
if ((((_arg1 == null)) || ((_cachedPlayheadTime == playheadTime)))){
_rtmpDoStopAtEndTimer.reset();
} else {
_cachedPlayheadTime = playheadTime;
return;
};
};
if ((((((((_atEndCheckPlayhead == playheadTime)) && (!((_atEndCheckPlayhead == _lastSeekTime))))) && (!(_isLive)))) && (!((playheadTime == 0))))){
_atEnd = false;
_currentPos = 0;
_play(0);
return;
};
_atEndCheckPlayhead = NaN;
_bufferState = BUFFER_EMPTY;
_sawPlayStop = false;
_atEnd = true;
setState(VideoState.STOPPED);
if (_state != VideoState.STOPPED){
return;
};
doUpdateTime();
if (_state != VideoState.STOPPED){
return;
};
dispatchEvent(new VideoEvent(VideoEvent.COMPLETE, false, false, _state, playheadTime));
if (_state != VideoState.STOPPED){
return;
};
if (((((_autoRewind) && (!(_isLive)))) && (!((playheadTime == 0))))){
_atEnd = false;
_currentPos = 0;
_play(0, 0);
setState(VideoState.REWINDING);
} else {
closeNS();
};
}
public function set idleTimeout(_arg1:Number):void{
_idleTimeoutTimer.delay = _arg1;
}
public function set playheadUpdateInterval(_arg1:Number):void{
_updateTimeTimer.delay = _arg1;
}
flvplayback_internal function checkEnoughDownloaded(_arg1:uint, _arg2:uint):void{
if ((((_arg1 == 0)) || ((_arg2 == uint.MAX_VALUE)))){
return;
};
if (((isNaN(totalTime)) || ((totalTime <= 0)))){
if (((waitingForEnough) && (stateResponsive))){
waitingForEnough = false;
_cachedState = _state;
_state = VideoState.EXEC_QUEUED_CMD;
play();
execQueuedCmds();
};
return;
};
if (_arg1 >= _arg2){
if (waitingForEnough){
waitingForEnough = false;
_cachedState = _state;
_state = VideoState.EXEC_QUEUED_CMD;
play();
execQueuedCmds();
};
return;
};
if (isNaN(baselineProgressTime)){
baselineProgressTime = ((_arg1 / _arg2) * totalTime);
};
if (isNaN(startProgressTime)){
startProgressTime = getTimer();
} else {
totalDownloadTime = ((getTimer() - startProgressTime) / 1000);
totalProgressTime = ((_arg1 / _arg2) * totalTime);
if (waitingForEnough){
checkReadyForPlay(_arg1, _arg2);
};
};
}
public function close():void{
closeNS(true);
if (((!((_ncMgr == null))) && (_ncMgr.isRTMP))){
_ncMgr.close();
};
setState(VideoState.DISCONNECTED);
dispatchEvent(new VideoEvent(VideoEvent.CLOSE, false, false, _state, playheadTime));
}
public function pause():void{
if (!isXnOK()){
if ((((((_state == VideoState.CONNECTION_ERROR)) || ((_ncMgr == null)))) || ((_ncMgr.netConnection == null)))){
throw (new VideoError(VideoError.NO_CONNECTION));
};
return;
} else {
if (_state == VideoState.EXEC_QUEUED_CMD){
_state = _cachedState;
} else {
if (!stateResponsive){
queueCmd(QueuedCommand.PAUSE);
return;
};
execQueuedCmds();
};
};
if ((((((_state == VideoState.PAUSED)) || ((_state == VideoState.STOPPED)))) || ((_ns == null)))){
return;
};
_pause(true);
setState(VideoState.PAUSED);
}
}
}//package fl.video
Section 156
//VideoPlayerClient (fl.video.VideoPlayerClient)
package fl.video {
public dynamic class VideoPlayerClient {
protected var _owner:VideoPlayer;
protected var gotMetadata:Boolean;
public function VideoPlayerClient(_arg1:VideoPlayer){
_owner = _arg1;
gotMetadata = false;
}
public function get ready():Boolean{
return (gotMetadata);
}
public function onMetaData(_arg1:Object, ... _args):void{
_arg1.duration;
_arg1.width;
_arg1.height;
_owner.onMetaData(_arg1);
gotMetadata = true;
}
public function get owner():VideoPlayer{
return (_owner);
}
public function onCuePoint(_arg1:Object, ... _args):void{
_arg1.name;
_arg1.time;
_arg1.type;
_owner.onCuePoint(_arg1);
}
}
}//package fl.video
Section 157
//VideoPlayerState (fl.video.VideoPlayerState)
package fl.video {
public class VideoPlayerState {
public var autoPlay:Boolean;
public var isWaiting:Boolean;
public var isLiveSet:Boolean;
public var index:int;
public var prevState:String;
public var preSeekTime:Number;
public var minProgressPercent:Number;
public var url:String;
public var totalTime:Number;
public var owner:VideoPlayer;
public var isLive:Boolean;
public var cmdQueue:Array;
public var totalTimeSet:Boolean;
public function VideoPlayerState(_arg1:VideoPlayer, _arg2:int){
this.owner = _arg1;
this.index = _arg2;
this.url = "";
this.isLive = false;
this.isLiveSet = true;
this.totalTime = NaN;
this.totalTimeSet = true;
this.autoPlay = (_arg2 == 0);
this.isWaiting = false;
this.preSeekTime = NaN;
this.cmdQueue = null;
}
}
}//package fl.video
Section 158
//VideoProgressEvent (fl.video.VideoProgressEvent)
package fl.video {
import flash.events.*;
public class VideoProgressEvent extends ProgressEvent implements IVPEvent {
private var _vp:uint;
public static const PROGRESS:String = "progress";
public function VideoProgressEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false, _arg4:uint=0, _arg5:uint=0, _arg6:uint=0){
super(_arg1, _arg2, _arg3, _arg4, _arg5);
_vp = _arg6;
}
override public function clone():Event{
return (new VideoProgressEvent(type, bubbles, cancelable, bytesLoaded, bytesTotal, vp));
}
public function set vp(_arg1:uint):void{
_vp = _arg1;
}
public function get vp():uint{
return (_vp);
}
}
}//package fl.video
Section 159
//VideoScaleMode (fl.video.VideoScaleMode)
package fl.video {
public final class VideoScaleMode {
public static const EXACT_FIT:String = "exactFit";
public static const MAINTAIN_ASPECT_RATIO:String = "maintainAspectRatio";
public static const NO_SCALE:String = "noScale";
}
}//package fl.video
Section 160
//VideoState (fl.video.VideoState)
package fl.video {
public final class VideoState {
public static const CONNECTION_ERROR:String = "connectionError";
public static const BUFFERING:String = "buffering";
public static const SEEKING:String = "seeking";
public static const STOPPED:String = "stopped";
public static const PAUSED:String = "paused";
public static const RESIZING:String = "resizing";
public static const PLAYING:String = "playing";
public static const DISCONNECTED:String = "disconnected";
public static const LOADING:String = "loading";
public static const REWINDING:String = "rewinding";
flvplayback_internal static var EXEC_QUEUED_CMD:String = "execQueuedCmd";
}
}//package fl.video
Section 161
//UI_Gate (main.view.components.UI_Gate)
package main.view.components {
import flash.display.*;
public dynamic class UI_Gate extends MovieClip {
public function UI_Gate(){
super();
}
}
}//package main.view.components
Section 162
//ChooseLevelBtn (sources.Buttons.ChooseLevelBtn)
package sources.Buttons {
import flash.events.*;
import flash.display.*;
import sources.*;
import com.gamezhero.media.*;
public class ChooseLevelBtn extends MovieClip {
public function ChooseLevelBtn(){
super();
addEventListener(Event.ADDED_TO_STAGE, _add);
}
private function removed(evt:Event):void{
removeEventListener(Event.ADDED_TO_STAGE, _add);
removeEventListener(MouseEvent.CLICK, clickHandler);
removeEventListener(MouseEvent.MOUSE_OVER, overHandler);
removeEventListener(Event.REMOVED_FROM_STAGE, removed);
}
private function clickHandler(evt:MouseEvent){
SoundFX.play(null, "s_click", null, GameParams.soundVolume, 1);
dispatchEvent(new Event("CHOOSE_LEVEL", true));
}
private function overHandler(evt:MouseEvent):void{
SoundFX.play(null, "s_over", null, GameParams.soundVolume, 1);
}
private function _add(evt:Event):void{
addEventListener(MouseEvent.CLICK, clickHandler);
addEventListener(MouseEvent.MOUSE_OVER, overHandler);
addEventListener(Event.REMOVED_FROM_STAGE, removed);
}
}
}//package sources.Buttons
Section 163
//CL_Level_btn (sources.Buttons.CL_Level_btn)
package sources.Buttons {
import flash.events.*;
import flash.display.*;
import sources.*;
public class CL_Level_btn extends MovieClip {
private var SP:SaveParams;
private var btnNdx:uint;
public function CL_Level_btn(){
SP = new SaveParams();
super();
addFrameScript(0, frame1, 1, frame2);
}
public function set ndx(n:uint):void{
btnNdx = n;
}
public function init():void{
if (SP.loadLevel() != null){
addEventListener(MouseEvent.CLICK, pushLevel);
} else {
gotoAndStop(2);
};
}
function frame1(){
stop();
}
function frame2(){
stop();
}
public function pushLevel(evt:MouseEvent):void{
GameParams.setLevel(SP.loadLevel());
dispatchEvent(new Event("PLAY_GAME", true));
}
public function get ndx():uint{
return (btnNdx);
}
}
}//package sources.Buttons
Section 164
//DL_Linux_btn (sources.Buttons.DL_Linux_btn)
package sources.Buttons {
import flash.events.*;
import flash.display.*;
import sources.*;
import com.gamezhero.media.*;
import com.gamezhero.api.as3.*;
public class DL_Linux_btn extends SimpleButton {
public function DL_Linux_btn(){
super();
if (GameParams.downLoadLinks["linux"] != null){
addEventListener(Event.ADDED_TO_STAGE, _add);
} else {
this.visible = false;
};
}
private function clickHandler(evt:MouseEvent){
SoundFX.play(null, "s_click", null, GameParams.soundVolume, 1);
GamezheroGlobal.getURL(GameParams.downLoadLinks["linux"], "_blank");
}
private function overHandler(evt:MouseEvent):void{
SoundFX.play(null, "s_over", null, GameParams.soundVolume, 1);
}
private function removed(evt:Event):void{
removeEventListener(Event.ADDED_TO_STAGE, _add);
removeEventListener(MouseEvent.CLICK, clickHandler);
removeEventListener(MouseEvent.MOUSE_OVER, overHandler);
removeEventListener(Event.REMOVED_FROM_STAGE, removed);
}
private function _add(evt:Event):void{
addEventListener(MouseEvent.CLICK, clickHandler);
addEventListener(MouseEvent.MOUSE_OVER, overHandler);
addEventListener(Event.REMOVED_FROM_STAGE, removed);
}
}
}//package sources.Buttons
Section 165
//DL_Mac_btn (sources.Buttons.DL_Mac_btn)
package sources.Buttons {
import flash.events.*;
import flash.display.*;
import sources.*;
import com.gamezhero.media.*;
import com.gamezhero.api.as3.*;
public class DL_Mac_btn extends SimpleButton {
public function DL_Mac_btn(){
super();
if (GameParams.downLoadLinks["mac"] != null){
addEventListener(Event.ADDED_TO_STAGE, _add);
} else {
this.visible = false;
};
}
private function clickHandler(evt:MouseEvent){
SoundFX.play(null, "s_click", null, GameParams.soundVolume, 1);
GamezheroGlobal.getURL(GameParams.downLoadLinks["mac"], "_blank");
}
private function overHandler(evt:MouseEvent):void{
SoundFX.play(null, "s_over", null, GameParams.soundVolume, 1);
}
private function removed(evt:Event):void{
removeEventListener(Event.ADDED_TO_STAGE, _add);
removeEventListener(MouseEvent.CLICK, clickHandler);
removeEventListener(MouseEvent.MOUSE_OVER, overHandler);
removeEventListener(Event.REMOVED_FROM_STAGE, removed);
}
private function _add(evt:Event):void{
addEventListener(MouseEvent.CLICK, clickHandler);
addEventListener(MouseEvent.MOUSE_OVER, overHandler);
addEventListener(Event.REMOVED_FROM_STAGE, removed);
}
}
}//package sources.Buttons
Section 166
//DL_Win_btn (sources.Buttons.DL_Win_btn)
package sources.Buttons {
import flash.events.*;
import flash.display.*;
import sources.*;
import com.gamezhero.media.*;
import com.gamezhero.api.as3.*;
public class DL_Win_btn extends SimpleButton {
public function DL_Win_btn(){
super();
if (GameParams.downLoadLinks["win"] != null){
addEventListener(Event.ADDED_TO_STAGE, _add);
} else {
this.visible = false;
};
}
private function clickHandler(evt:MouseEvent){
SoundFX.play(null, "s_click", null, GameParams.soundVolume, 1);
GamezheroGlobal.getURL(GameParams.downLoadLinks["win"], "_blank");
}
private function overHandler(evt:MouseEvent):void{
SoundFX.play(null, "s_over", null, GameParams.soundVolume, 1);
}
private function removed(evt:Event):void{
removeEventListener(Event.ADDED_TO_STAGE, _add);
removeEventListener(MouseEvent.CLICK, clickHandler);
removeEventListener(MouseEvent.MOUSE_OVER, overHandler);
removeEventListener(Event.REMOVED_FROM_STAGE, removed);
}
private function _add(evt:Event):void{
addEventListener(MouseEvent.CLICK, clickHandler);
addEventListener(MouseEvent.MOUSE_OVER, overHandler);
addEventListener(Event.REMOVED_FROM_STAGE, removed);
}
}
}//package sources.Buttons
Section 167
//GO_PlayAgain_btn (sources.Buttons.GO_PlayAgain_btn)
package sources.Buttons {
import flash.events.*;
import flash.display.*;
import sources.*;
import com.gamezhero.media.*;
public class GO_PlayAgain_btn extends MovieClip {
public function GO_PlayAgain_btn(){
super();
addEventListener(Event.ADDED_TO_STAGE, _add);
}
private function removed(evt:Event):void{
removeEventListener(Event.ADDED_TO_STAGE, _add);
removeEventListener(MouseEvent.CLICK, clickHandler);
removeEventListener(MouseEvent.MOUSE_OVER, overHandler);
removeEventListener(Event.REMOVED_FROM_STAGE, removed);
}
private function clickHandler(evt:MouseEvent){
SoundFX.play(null, "s_click", null, GameParams.soundVolume, 1);
dispatchEvent(new Event("PLAY_AGAIN", true));
}
private function overHandler(evt:MouseEvent):void{
SoundFX.play(null, "s_over", null, GameParams.soundVolume, 1);
}
private function _add(evt:Event):void{
addEventListener(MouseEvent.CLICK, clickHandler);
addEventListener(MouseEvent.MOUSE_OVER, overHandler);
addEventListener(Event.REMOVED_FROM_STAGE, removed);
}
}
}//package sources.Buttons
Section 168
//goBackButton (sources.Buttons.goBackButton)
package sources.Buttons {
import flash.events.*;
import flash.display.*;
import sources.*;
import com.gamezhero.media.*;
public class goBackButton extends MovieClip {
public function goBackButton(){
super();
this.buttonMode = true;
addEventListener(Event.ADDED_TO_STAGE, _add);
}
private function removed(evt:Event):void{
removeEventListener(Event.ADDED_TO_STAGE, _add);
removeEventListener(MouseEvent.CLICK, clickHandler);
removeEventListener(MouseEvent.MOUSE_OVER, overHandler);
removeEventListener(Event.REMOVED_FROM_STAGE, removed);
}
private function clickHandler(evt:MouseEvent){
SoundFX.play(null, "s_click", null, GameParams.soundVolume, 1);
dispatchEvent(new Event("GO_MENU", true));
}
private function overHandler(evt:MouseEvent):void{
SoundFX.play(null, "s_over", null, GameParams.soundVolume, 1);
}
private function _add(evt:Event):void{
addEventListener(MouseEvent.CLICK, clickHandler);
addEventListener(MouseEvent.MOUSE_OVER, overHandler);
addEventListener(Event.REMOVED_FROM_STAGE, removed);
}
}
}//package sources.Buttons
Section 169
//HelpButton (sources.Buttons.HelpButton)
package sources.Buttons {
import flash.events.*;
import flash.display.*;
import sources.*;
import com.gamezhero.media.*;
public class HelpButton extends MovieClip {
public function HelpButton(){
super();
addEventListener(Event.ADDED_TO_STAGE, _add);
}
private function removed(evt:Event):void{
removeEventListener(Event.ADDED_TO_STAGE, _add);
removeEventListener(MouseEvent.CLICK, clickHandler);
removeEventListener(MouseEvent.MOUSE_OVER, overHandler);
removeEventListener(Event.REMOVED_FROM_STAGE, removed);
}
private function clickHandler(evt:MouseEvent){
SoundFX.play(null, "s_click", null, GameParams.soundVolume, 1);
dispatchEvent(new Event("HOW_TO_PLAY", true));
}
private function overHandler(evt:MouseEvent):void{
SoundFX.play(null, "s_over", null, GameParams.soundVolume, 1);
}
private function _add(evt:Event):void{
addEventListener(MouseEvent.CLICK, clickHandler);
addEventListener(MouseEvent.MOUSE_OVER, overHandler);
addEventListener(Event.REMOVED_FROM_STAGE, removed);
}
}
}//package sources.Buttons
Section 170
//MM_Continue_btn (sources.Buttons.MM_Continue_btn)
package sources.Buttons {
import flash.events.*;
import flash.display.*;
import sources.*;
import com.gamezhero.media.*;
public class MM_Continue_btn extends MovieClip {
public function MM_Continue_btn(){
super();
addEventListener(Event.ADDED_TO_STAGE, _add);
}
private function removed(evt:Event):void{
removeEventListener(Event.ADDED_TO_STAGE, _add);
removeEventListener(MouseEvent.CLICK, clickHandler);
removeEventListener(MouseEvent.MOUSE_OVER, overHandler);
removeEventListener(Event.REMOVED_FROM_STAGE, removed);
}
private function clickHandler(evt:MouseEvent){
SoundFX.play(null, "s_click", null, GameParams.soundVolume, 1);
dispatchEvent(new Event("PLAY_CONTINUE", true));
}
private function overHandler(evt:MouseEvent):void{
SoundFX.play(null, "s_over", null, GameParams.soundVolume, 1);
}
private function _add(evt:Event):void{
addEventListener(MouseEvent.CLICK, clickHandler);
addEventListener(MouseEvent.MOUSE_OVER, overHandler);
addEventListener(Event.REMOVED_FROM_STAGE, removed);
}
}
}//package sources.Buttons
Section 171
//MM_Embed_btn (sources.Buttons.MM_Embed_btn)
package sources.Buttons {
import flash.events.*;
import flash.display.*;
import sources.*;
import com.gamezhero.media.*;
public class MM_Embed_btn extends MovieClip {
public function MM_Embed_btn(){
super();
addEventListener(Event.ADDED_TO_STAGE, _add);
}
private function removed(evt:Event):void{
removeEventListener(Event.ADDED_TO_STAGE, _add);
removeEventListener(MouseEvent.CLICK, clickHandler);
removeEventListener(MouseEvent.MOUSE_OVER, overHandler);
removeEventListener(Event.REMOVED_FROM_STAGE, removed);
}
private function clickHandler(evt:MouseEvent){
SoundFX.play(null, "s_click", null, GameParams.soundVolume, 1);
dispatchEvent(new Event("PUBLISH_GAME", true));
}
private function overHandler(evt:MouseEvent):void{
SoundFX.play(null, "s_over", null, GameParams.soundVolume, 1);
}
private function _add(evt:Event):void{
addEventListener(MouseEvent.CLICK, clickHandler);
addEventListener(MouseEvent.MOUSE_OVER, overHandler);
addEventListener(Event.REMOVED_FROM_STAGE, removed);
}
}
}//package sources.Buttons
Section 172
//MM_MoreGames_btn (sources.Buttons.MM_MoreGames_btn)
package sources.Buttons {
import flash.events.*;
import flash.display.*;
import sources.*;
import com.gamezhero.media.*;
public class MM_MoreGames_btn extends MovieClip {
public function MM_MoreGames_btn(){
super();
addEventListener(Event.ADDED_TO_STAGE, _add);
}
private function removed(evt:Event):void{
removeEventListener(Event.ADDED_TO_STAGE, _add);
removeEventListener(MouseEvent.CLICK, clickHandler);
removeEventListener(MouseEvent.MOUSE_OVER, overHandler);
removeEventListener(Event.REMOVED_FROM_STAGE, removed);
}
private function clickHandler(evt:MouseEvent){
SoundFX.play(null, "s_click", null, GameParams.soundVolume, 1);
dispatchEvent(new Event("MORE_GAMES", true));
}
private function overHandler(evt:MouseEvent):void{
SoundFX.play(null, "s_over", null, GameParams.soundVolume, 1);
}
private function _add(evt:Event):void{
addEventListener(MouseEvent.CLICK, clickHandler);
addEventListener(MouseEvent.MOUSE_OVER, overHandler);
addEventListener(Event.REMOVED_FROM_STAGE, removed);
}
}
}//package sources.Buttons
Section 173
//MM_Send_btn (sources.Buttons.MM_Send_btn)
package sources.Buttons {
import flash.events.*;
import flash.display.*;
import sources.*;
import com.gamezhero.media.*;
public class MM_Send_btn extends MovieClip {
public function MM_Send_btn(){
super();
addEventListener(Event.ADDED_TO_STAGE, _add);
}
private function removed(evt:Event):void{
removeEventListener(Event.ADDED_TO_STAGE, _add);
removeEventListener(MouseEvent.CLICK, clickHandler);
removeEventListener(MouseEvent.MOUSE_OVER, overHandler);
removeEventListener(Event.REMOVED_FROM_STAGE, removed);
}
private function clickHandler(evt:MouseEvent){
SoundFX.play(null, "s_click", null, GameParams.soundVolume, 1);
dispatchEvent(new Event("SEND_TO_FRIENDS", true));
}
private function overHandler(evt:MouseEvent):void{
SoundFX.play(null, "s_over", null, GameParams.soundVolume, 1);
}
private function _add(evt:Event):void{
addEventListener(MouseEvent.CLICK, clickHandler);
addEventListener(MouseEvent.MOUSE_OVER, overHandler);
addEventListener(Event.REMOVED_FROM_STAGE, removed);
}
}
}//package sources.Buttons
Section 174
//MM_Shop_btn (sources.Buttons.MM_Shop_btn)
package sources.Buttons {
import flash.events.*;
import flash.display.*;
import sources.*;
import com.gamezhero.media.*;
public class MM_Shop_btn extends MovieClip {
public function MM_Shop_btn(){
super();
addEventListener(Event.ADDED_TO_STAGE, _add);
}
private function removed(evt:Event):void{
removeEventListener(Event.ADDED_TO_STAGE, _add);
removeEventListener(MouseEvent.CLICK, clickHandler);
removeEventListener(MouseEvent.MOUSE_OVER, overHandler);
removeEventListener(Event.REMOVED_FROM_STAGE, removed);
}
private function clickHandler(evt:MouseEvent){
SoundFX.play(null, "s_click", null, GameParams.soundVolume, 1);
dispatchEvent(new Event("GO_SHOP", true));
}
private function overHandler(evt:MouseEvent):void{
SoundFX.play(null, "s_over", null, GameParams.soundVolume, 1);
}
private function _add(evt:Event):void{
addEventListener(MouseEvent.CLICK, clickHandler);
addEventListener(MouseEvent.MOUSE_OVER, overHandler);
addEventListener(Event.REMOVED_FROM_STAGE, removed);
}
}
}//package sources.Buttons
Section 175
//MM_TopScoreBtn (sources.Buttons.MM_TopScoreBtn)
package sources.Buttons {
import flash.events.*;
import flash.display.*;
import sources.*;
import com.gamezhero.media.*;
public class MM_TopScoreBtn extends MovieClip {
public function MM_TopScoreBtn(){
super();
addEventListener(Event.ADDED_TO_STAGE, _add);
}
private function removed(evt:Event):void{
removeEventListener(Event.ADDED_TO_STAGE, _add);
removeEventListener(MouseEvent.CLICK, clickHandler);
removeEventListener(MouseEvent.MOUSE_OVER, overHandler);
removeEventListener(Event.REMOVED_FROM_STAGE, removed);
}
private function clickHandler(evt:MouseEvent){
SoundFX.play(null, "s_click", null, GameParams.soundVolume, 1);
dispatchEvent(new Event("TOP_SCORE", true));
}
private function overHandler(evt:MouseEvent):void{
SoundFX.play(null, "s_over", null, GameParams.soundVolume, 1);
}
private function _add(evt:Event):void{
addEventListener(MouseEvent.CLICK, clickHandler);
addEventListener(MouseEvent.MOUSE_OVER, overHandler);
addEventListener(Event.REMOVED_FROM_STAGE, removed);
}
}
}//package sources.Buttons
Section 176
//MM_Z_btn (sources.Buttons.MM_Z_btn)
package sources.Buttons {
import flash.events.*;
import flash.display.*;
import sources.*;
import com.gamezhero.media.*;
public class MM_Z_btn extends MovieClip {
public function MM_Z_btn(){
super();
this.buttonMode = true;
addEventListener(Event.ADDED_TO_STAGE, _add);
}
private function removed(evt:Event):void{
removeEventListener(Event.ADDED_TO_STAGE, _add);
removeEventListener(MouseEvent.CLICK, clickHandler);
removeEventListener(MouseEvent.MOUSE_OVER, overHandler);
removeEventListener(Event.REMOVED_FROM_STAGE, removed);
}
private function clickHandler(evt:MouseEvent){
SoundFX.play(null, "s_click", null, GameParams.soundVolume, 1);
dispatchEvent(new Event("LOGO_PRESS", true));
}
private function overHandler(evt:MouseEvent):void{
SoundFX.play(null, "s_over", null, GameParams.soundVolume, 1);
}
private function _add(evt:Event):void{
addEventListener(MouseEvent.CLICK, clickHandler);
addEventListener(MouseEvent.MOUSE_OVER, overHandler);
addEventListener(Event.REMOVED_FROM_STAGE, removed);
}
}
}//package sources.Buttons
Section 177
//PlayButton (sources.Buttons.PlayButton)
package sources.Buttons {
import flash.events.*;
import flash.display.*;
import sources.*;
import com.gamezhero.media.*;
public class PlayButton extends MovieClip {
public function PlayButton(){
super();
addEventListener(Event.ADDED_TO_STAGE, _add);
}
private function removed(evt:Event):void{
removeEventListener(Event.ADDED_TO_STAGE, _add);
removeEventListener(MouseEvent.CLICK, clickHandler);
removeEventListener(MouseEvent.MOUSE_OVER, overHandler);
removeEventListener(Event.REMOVED_FROM_STAGE, removed);
}
private function clickHandler(evt:MouseEvent){
SoundFX.play(null, "s_click", null, GameParams.soundVolume, 1);
GameParams.resetToStart();
dispatchEvent(new Event("PLAY_GAME", true));
}
private function overHandler(evt:MouseEvent):void{
SoundFX.play(null, "s_over", null, GameParams.soundVolume, 1);
}
private function _add(evt:Event):void{
addEventListener(MouseEvent.CLICK, clickHandler);
addEventListener(MouseEvent.MOUSE_OVER, overHandler);
addEventListener(Event.REMOVED_FROM_STAGE, removed);
}
}
}//package sources.Buttons
Section 178
//SDFast_btn (sources.Buttons.SDFast_btn)
package sources.Buttons {
import flash.events.*;
import flash.display.*;
import sources.*;
import com.gamezhero.media.*;
public class SDFast_btn extends MovieClip {
public var btnHitArea:MovieClip;
public function SDFast_btn(){
super();
this.buttonMode = true;
addEventListener(Event.ADDED_TO_STAGE, _add);
}
private function removed(evt:Event):void{
removeEventListener(Event.ADDED_TO_STAGE, _add);
this["btnHitArea"].removeEventListener(MouseEvent.CLICK, clickHandler);
this["btnHitArea"].removeEventListener(MouseEvent.MOUSE_OVER, overHandler);
removeEventListener(Event.REMOVED_FROM_STAGE, removed);
}
private function clickHandler(evt:MouseEvent){
SoundFX.play(null, "s_click", null, GameParams.soundVolume, 1);
GameParams.trackScale = GameParams.TRACK_SCALE_HIGH;
GameParams.gameFPS = GameParams.GAME_FPS_FAST;
GameParams.interfaceFPS = GameParams.INTERFACE_FPS;
GameParams.gameQuality = GameParams.QUALITY_HIGH;
GameParams.containerGameSpeed = GameParams.GAME_FAST;
GameParams.containerGameSpeed2 = GameParams.TRACK_FAST;
dispatchEvent(new Event("GO_MENU", true));
}
private function overHandler(evt:MouseEvent):void{
SoundFX.play(null, "s_over", null, GameParams.soundVolume, 1);
}
private function _add(evt:Event):void{
this["btnHitArea"].addEventListener(MouseEvent.CLICK, clickHandler);
this["btnHitArea"].addEventListener(MouseEvent.MOUSE_OVER, overHandler);
addEventListener(Event.REMOVED_FROM_STAGE, removed);
}
}
}//package sources.Buttons
Section 179
//SDMedium_btn (sources.Buttons.SDMedium_btn)
package sources.Buttons {
import flash.events.*;
import flash.display.*;
import sources.*;
import com.gamezhero.media.*;
public class SDMedium_btn extends MovieClip {
public var btnHitArea:MovieClip;
public function SDMedium_btn(){
super();
this.buttonMode = true;
addEventListener(Event.ADDED_TO_STAGE, _add);
}
private function removed(evt:Event):void{
removeEventListener(Event.ADDED_TO_STAGE, _add);
this["btnHitArea"].removeEventListener(MouseEvent.CLICK, clickHandler);
this["btnHitArea"].removeEventListener(MouseEvent.MOUSE_OVER, overHandler);
removeEventListener(Event.REMOVED_FROM_STAGE, removed);
}
private function clickHandler(evt:MouseEvent){
SoundFX.play(null, "s_click", null, GameParams.soundVolume, 1);
GameParams.trackScale = GameParams.TRACK_SCALE_MEDIUM;
GameParams.gameFPS = GameParams.GAME_FPS_MEDIUM;
GameParams.interfaceFPS = GameParams.INTERFACE_FPS;
GameParams.gameQuality = GameParams.QUALITY_MEDIUM;
GameParams.containerGameSpeed = GameParams.GAME_MEDIUM;
GameParams.containerGameSpeed2 = GameParams.TRACK_MEDIUM;
dispatchEvent(new Event("GO_MENU", true));
}
private function overHandler(evt:MouseEvent):void{
SoundFX.play(null, "s_over", null, GameParams.soundVolume, 1);
}
private function _add(evt:Event):void{
this["btnHitArea"].addEventListener(MouseEvent.CLICK, clickHandler);
this["btnHitArea"].addEventListener(MouseEvent.MOUSE_OVER, overHandler);
addEventListener(Event.REMOVED_FROM_STAGE, removed);
}
}
}//package sources.Buttons
Section 180
//SDSlow_btn (sources.Buttons.SDSlow_btn)
package sources.Buttons {
import flash.events.*;
import flash.display.*;
import sources.*;
import com.gamezhero.media.*;
public class SDSlow_btn extends MovieClip {
public var btnHitArea:MovieClip;
public function SDSlow_btn(){
super();
this.buttonMode = true;
addEventListener(Event.ADDED_TO_STAGE, _add);
}
private function removed(evt:Event):void{
removeEventListener(Event.ADDED_TO_STAGE, _add);
this["btnHitArea"].removeEventListener(MouseEvent.CLICK, clickHandler);
this["btnHitArea"].removeEventListener(MouseEvent.MOUSE_OVER, overHandler);
removeEventListener(Event.REMOVED_FROM_STAGE, removed);
}
private function clickHandler(evt:MouseEvent){
SoundFX.play(null, "s_click", null, GameParams.soundVolume, 1);
GameParams.trackScale = GameParams.TRACK_SCALE_LOW;
GameParams.gameFPS = GameParams.GAME_FPS_SLOW;
GameParams.interfaceFPS = GameParams.INTERFACE_FPS;
GameParams.gameQuality = GameParams.QUALITY_LOW;
GameParams.containerGameSpeed = GameParams.GAME_SLOW;
GameParams.containerGameSpeed2 = GameParams.TRACK_SLOW;
dispatchEvent(new Event("GO_MENU", true));
}
private function overHandler(evt:MouseEvent):void{
SoundFX.play(null, "s_over", null, GameParams.soundVolume, 1);
}
private function _add(evt:Event):void{
this["btnHitArea"].addEventListener(MouseEvent.CLICK, clickHandler);
this["btnHitArea"].addEventListener(MouseEvent.MOUSE_OVER, overHandler);
addEventListener(Event.REMOVED_FROM_STAGE, removed);
}
}
}//package sources.Buttons
Section 181
//UI_SimpleBtn_Continue (sources.Buttons.UI_SimpleBtn_Continue)
package sources.Buttons {
import flash.events.*;
import flash.display.*;
import sources.*;
import sources.EventExtend.*;
import com.gamezhero.media.*;
public class UI_SimpleBtn_Continue extends MovieClip {
public var blick2:MovieClip;
public var btnHitArea:MovieClip;
public function UI_SimpleBtn_Continue(){
super();
this.buttonMode = true;
this["blick2"].mouseEnabled = false;
this.addEventListener(Event.ADDED_TO_STAGE, added, false, 0, true);
}
private function added(evt:Event):void{
this.addEventListener(Event.REMOVED_FROM_STAGE, removed, false, 0, true);
this["btnHitArea"].addEventListener(MouseEvent.CLICK, clickHandler, false, 0, true);
this["btnHitArea"].addEventListener(MouseEvent.MOUSE_OVER, overHandler, false, 0, true);
this["btnHitArea"].addEventListener(MouseEvent.MOUSE_OUT, outHandler, false, 0, true);
}
private function outHandler(evt:MouseEvent){
dispatchEvent(new EventX("SET_PAUSE_TEXT", -1, true));
}
private function removed(evt:Event):void{
this.removeEventListener(Event.ADDED_TO_STAGE, added);
this.removeEventListener(Event.REMOVED_FROM_STAGE, removed);
this["btnHitArea"].removeEventListener(MouseEvent.CLICK, clickHandler);
this["btnHitArea"].removeEventListener(MouseEvent.MOUSE_OVER, overHandler);
this["btnHitArea"].removeEventListener(MouseEvent.MOUSE_OUT, outHandler);
}
private function clickHandler(evt:MouseEvent){
SoundFX.play(null, "s_click", null, GameParams.soundVolume, 1);
dispatchEvent(new Event("RELEASE", true));
}
private function overHandler(evt:MouseEvent){
this["blick2"].play();
SoundFX.play(null, "s_over", null, GameParams.soundVolume, 1);
dispatchEvent(new EventX("SET_PAUSE_TEXT", 1, true));
}
}
}//package sources.Buttons
Section 182
//UI_SimpleBtn_Logo (sources.Buttons.UI_SimpleBtn_Logo)
package sources.Buttons {
import flash.events.*;
import flash.display.*;
import sources.*;
import sources.EventExtend.*;
import com.gamezhero.media.*;
public class UI_SimpleBtn_Logo extends MovieClip {
public var blick2:MovieClip;
public var blick:MovieClip;
public var btnHitArea:MovieClip;
public function UI_SimpleBtn_Logo(){
super();
this.buttonMode = true;
this["blick2"].mouseEnabled = false;
this.addEventListener(Event.ADDED_TO_STAGE, added, false, 0, true);
}
private function added(evt:Event):void{
this.addEventListener(Event.REMOVED_FROM_STAGE, removed, false, 0, true);
this["btnHitArea"].addEventListener(MouseEvent.CLICK, clickHandler, false, 0, true);
this["btnHitArea"].addEventListener(MouseEvent.MOUSE_OVER, overHandler, false, 0, true);
this["btnHitArea"].addEventListener(MouseEvent.MOUSE_OUT, outHandler, false, 0, true);
}
private function outHandler(evt:MouseEvent){
dispatchEvent(new EventX("SET_PAUSE_TEXT", -1, true));
}
private function removed(evt:Event):void{
this.removeEventListener(Event.ADDED_TO_STAGE, added);
this.removeEventListener(Event.REMOVED_FROM_STAGE, removed);
this["btnHitArea"].removeEventListener(MouseEvent.CLICK, clickHandler);
this["btnHitArea"].removeEventListener(MouseEvent.MOUSE_OVER, overHandler);
this["btnHitArea"].removeEventListener(MouseEvent.MOUSE_OUT, outHandler);
}
private function clickHandler(evt:MouseEvent):void{
SoundFX.play(null, "s_click", null, GameParams.soundVolume, 1);
dispatchEvent(new Event("LOGO_PRESS", true));
}
private function overHandler(evt:MouseEvent){
this["blick2"].play();
SoundFX.play(null, "s_over", null, GameParams.soundVolume, 1);
dispatchEvent(new EventX("SET_PAUSE_TEXT", 0, true));
}
}
}//package sources.Buttons
Section 183
//UI_SimpleBtn_Menu (sources.Buttons.UI_SimpleBtn_Menu)
package sources.Buttons {
import flash.events.*;
import flash.display.*;
import sources.*;
import sources.EventExtend.*;
import com.gamezhero.media.*;
public class UI_SimpleBtn_Menu extends MovieClip {
public var blick2:MovieClip;
public var btnHitArea:MovieClip;
public function UI_SimpleBtn_Menu(){
super();
this.buttonMode = true;
this["blick2"].mouseEnabled = false;
this.addEventListener(Event.ADDED_TO_STAGE, added, false, 0, true);
}
private function added(evt:Event):void{
this.addEventListener(Event.REMOVED_FROM_STAGE, removed, false, 0, true);
this["btnHitArea"].addEventListener(MouseEvent.CLICK, clickHandler, false, 0, true);
this["btnHitArea"].addEventListener(MouseEvent.MOUSE_OVER, overHandler, false, 0, true);
this["btnHitArea"].addEventListener(MouseEvent.MOUSE_OUT, outHandler, false, 0, true);
}
private function outHandler(evt:MouseEvent){
dispatchEvent(new EventX("SET_PAUSE_TEXT", -1, true));
}
private function removed(evt:Event):void{
this.removeEventListener(Event.ADDED_TO_STAGE, added);
this.removeEventListener(Event.REMOVED_FROM_STAGE, removed);
this["btnHitArea"].removeEventListener(MouseEvent.CLICK, clickHandler);
this["btnHitArea"].removeEventListener(MouseEvent.MOUSE_OVER, overHandler);
this["btnHitArea"].removeEventListener(MouseEvent.MOUSE_OUT, outHandler);
}
private function clickHandler(evt:MouseEvent){
SoundFX.play(null, "s_click", null, GameParams.soundVolume, 1);
dispatchEvent(new Event("GAME_OUT", true));
}
private function overHandler(evt:MouseEvent){
this["blick2"].play();
SoundFX.play(null, "s_over", null, GameParams.soundVolume, 1);
dispatchEvent(new EventX("SET_PAUSE_TEXT", 2, true));
}
}
}//package sources.Buttons
Section 184
//UI_SimpleBtn_Music (sources.Buttons.UI_SimpleBtn_Music)
package sources.Buttons {
import flash.events.*;
import flash.display.*;
import sources.*;
import sources.EventExtend.*;
import com.gamezhero.media.*;
public class UI_SimpleBtn_Music extends MovieClip {
public var blick2:MovieClip;
public var btnHitArea:MovieClip;
public function UI_SimpleBtn_Music(){
super();
addFrameScript(0, frame1);
stop();
this.buttonMode = true;
this["blick2"].mouseEnabled = false;
this.addEventListener(Event.ADDED_TO_STAGE, stageAdd);
}
private function outHandler(evt:MouseEvent){
dispatchEvent(new EventX("SET_PAUSE_TEXT", -1, true));
}
private function musicStateHandler(evt:EventX):void{
if (evt.ndx == 0){
gotoAndStop("off");
} else {
if (evt.ndx == 1){
gotoAndStop("on");
};
};
}
function frame1(){
stop();
}
private function removed(evt:Event):void{
this.removeEventListener(Event.ADDED_TO_STAGE, stageAdd);
this.removeEventListener(Event.REMOVED_FROM_STAGE, removed);
stage.removeEventListener("MUSIC_STATE", musicStateHandler);
this["btnHitArea"].removeEventListener(MouseEvent.MOUSE_OVER, overHandler);
this["btnHitArea"].removeEventListener(MouseEvent.MOUSE_OUT, outHandler);
this["btnHitArea"].addEventListener(MouseEvent.CLICK, clickHandler);
}
private function clickHandler(evt:MouseEvent){
if (this.currentLabel == "off"){
dispatchEvent(new Event("MUSIC_ON", true));
gotoAndStop("on");
} else {
dispatchEvent(new Event("MUSIC_OFF", true));
gotoAndStop("off");
};
SoundFX.play(null, "s_click", null, GameParams.soundVolume, 1);
overHandler();
}
private function stageAdd(evt:Event):void{
this.addEventListener(Event.REMOVED_FROM_STAGE, removed, false, 0, true);
stage.addEventListener("MUSIC_STATE", musicStateHandler, false, 0, true);
this["btnHitArea"].addEventListener(MouseEvent.MOUSE_OVER, overHandler, false, 0, true);
this["btnHitArea"].addEventListener(MouseEvent.MOUSE_OUT, outHandler, false, 0, true);
dispatchEvent(new Event("IS_MUSIC_PLAY", true));
this["btnHitArea"].addEventListener(MouseEvent.CLICK, clickHandler, false, 0, true);
}
private function overHandler(evt:MouseEvent=null){
if (evt != null){
SoundFX.play(null, "s_over", null, GameParams.soundVolume, 1);
};
this["blick2"].play();
dispatchEvent(new EventX("SET_PAUSE_TEXT", 4, true));
}
}
}//package sources.Buttons
Section 185
//UI_SimpleBtn_Sound (sources.Buttons.UI_SimpleBtn_Sound)
package sources.Buttons {
import flash.events.*;
import flash.display.*;
import sources.*;
import sources.EventExtend.*;
import com.gamezhero.media.*;
public class UI_SimpleBtn_Sound extends MovieClip {
public var blick2:MovieClip;
public var btnHitArea:MovieClip;
public function UI_SimpleBtn_Sound(){
super();
addFrameScript(0, frame1);
stop();
this.buttonMode = true;
this["blick2"].mouseEnabled = false;
this.addEventListener(Event.ADDED_TO_STAGE, stageAdd);
}
private function outHandler(evt:MouseEvent){
dispatchEvent(new EventX("SET_PAUSE_TEXT", -1, true));
}
function frame1(){
stop();
}
private function soundStateHandler(evt:EventX):void{
if (evt.ndx == 0){
gotoAndStop(2);
} else {
if (evt.ndx == 1){
gotoAndStop(1);
};
};
}
private function removeAll(evt:Event):void{
this["btnHitArea"].removeEventListener(MouseEvent.CLICK, clickHandler);
this["btnHitArea"].removeEventListener(MouseEvent.MOUSE_OVER, overHandler);
this["btnHitArea"].removeEventListener(MouseEvent.MOUSE_OUT, outHandler);
stage.removeEventListener("SOUND_STATE", soundStateHandler);
removeEventListener(Event.REMOVED_FROM_STAGE, removeAll);
this.removeEventListener(Event.ADDED_TO_STAGE, stageAdd);
}
private function clickHandler(evt:MouseEvent){
if (this.currentLabel == "off"){
dispatchEvent(new Event("SOUND_ON", true));
gotoAndStop("on");
} else {
dispatchEvent(new Event("SOUND_OFF", true));
gotoAndStop("off");
};
overHandler();
SoundFX.play(null, "s_click", null, GameParams.soundVolume, 1);
}
private function stageAdd(evt:Event):void{
this["btnHitArea"].addEventListener(MouseEvent.CLICK, clickHandler);
this["btnHitArea"].addEventListener(MouseEvent.MOUSE_OVER, overHandler);
this["btnHitArea"].addEventListener(MouseEvent.MOUSE_OUT, outHandler);
stage.addEventListener("SOUND_STATE", soundStateHandler);
dispatchEvent(new Event("IS_SOUND_ON", true));
addEventListener(Event.REMOVED_FROM_STAGE, removeAll);
}
private function overHandler(evt:MouseEvent=null){
if (evt != null){
SoundFX.play(null, "s_over", null, GameParams.soundVolume, 1);
};
this["blick2"].play();
dispatchEvent(new EventX("SET_PAUSE_TEXT", 3, true));
}
}
}//package sources.Buttons
Section 186
//WD_Continue_btn (sources.Buttons.WD_Continue_btn)
package sources.Buttons {
import flash.events.*;
import flash.display.*;
import sources.*;
import com.gamezhero.media.*;
public class WD_Continue_btn extends MovieClip {
public function WD_Continue_btn(){
super();
addEventListener(Event.ADDED_TO_STAGE, _add);
}
private function removed(evt:Event):void{
removeEventListener(Event.ADDED_TO_STAGE, _add);
removeEventListener(MouseEvent.CLICK, clickHandler);
removeEventListener(MouseEvent.MOUSE_OVER, overHandler);
removeEventListener(Event.REMOVED_FROM_STAGE, removed);
}
private function clickHandler(evt:MouseEvent){
SoundFX.play(null, "s_click", null, GameParams.soundVolume, 1);
dispatchEvent(new Event("PLAY_GAME", true));
}
private function overHandler(evt:MouseEvent):void{
SoundFX.play(null, "s_over", null, GameParams.soundVolume, 1);
}
private function _add(evt:Event):void{
addEventListener(MouseEvent.CLICK, clickHandler);
addEventListener(MouseEvent.MOUSE_OVER, overHandler);
addEventListener(Event.REMOVED_FROM_STAGE, removed);
}
}
}//package sources.Buttons
Section 187
//EventX (sources.EventExtend.EventX)
package sources.EventExtend {
import flash.events.*;
public class EventX extends Event {
private var evtNumber:Number;
public function EventX(type:String, scr:Number, bubbles:Boolean=false, cancelable:Boolean=false){
evtNumber = scr;
super(type, bubbles, cancelable);
}
public function get ndx():Number{
return (evtNumber);
}
}
}//package sources.EventExtend
Section 188
//HeroCurrentStateClass (sources.HelpClasses.HeroCurrentStateClass)
package sources.HelpClasses {
public class HeroCurrentStateClass {
private var currWeapon:Object;
private var automate:Boolean;
public function HeroCurrentStateClass(){
super();
}
public function get automatic():Boolean{
return (automate);
}
public function set automatic(aut:Boolean):void{
automate = aut;
}
public function set currentWeapons(cw:Object):void{
currWeapon = cw;
}
public function get currentWeapons():Object{
return (currWeapon);
}
}
}//package sources.HelpClasses
Section 189
//Degree (sources.math.Degree)
package sources.math {
public class Degree {
public function Degree(){
super();
}
public static function tanD(angle:Number):Number{
return (Math.tan((angle * (Math.PI / 180))));
}
public static function asinD(ratio:Number):Number{
return ((Math.asin(ratio) * (180 / Math.PI)));
}
public static function atan2D(y:Number, x:Number):Number{
return ((Math.atan2(y, x) * (180 / Math.PI)));
}
public static function atanD(ratio:Number):Number{
return ((Math.atan(ratio) * (180 / Math.PI)));
}
public static function sinD(angle:Number):Number{
return (Math.sin((angle * (Math.PI / 180))));
}
public static function cosD(angle:Number):Number{
return (Math.cos((angle * (Math.PI / 180))));
}
public static function acosD(ratio:Number):Number{
return ((Math.acos(ratio) * (180 / Math.PI)));
}
}
}//package sources.math
Section 190
//MyVector (sources.math.MyVector)
package sources.math {
public class MyVector {
private var $x:Number;
private var $y:Number;
public function MyVector(x:Number, y:Number){
super();
this.initialize(x, y);
}
public function negate():void{
this.x = -(this.x);
this.y = -(this.y);
}
public function rotateNew(ang:Number):MyVector{
var v:MyVector;
v = new MyVector(this.x, this.y);
v.rotate(ang);
return (v);
}
public function set angle(ang:Number):void{
this.setAngle(ang);
}
public function dot(v:MyVector):Number{
return (((this.x * v.x) + (this.y * v.y)));
}
public function scale(s:Number):void{
this.x = (this.x * s);
this.y = (this.y * s);
}
public function isNormalTo(v:MyVector):Boolean{
return (this.isPerpTo(v));
}
public function reset(x:Number, y:Number):void{
this.initialize(x, y);
}
private function initialize(x:Number, y:Number):void{
this.x = x;
this.y = y;
}
public function setAngle(ang:Number):void{
var r:Number;
r = this.getLength();
this.x = (r * Degree.cosD(ang));
this.y = (r * Degree.sinD(ang));
}
public function set length(len:Number):void{
this.setLength(len);
}
public function minusNew(v:MyVector):MyVector{
return (new MyVector((this.x - v.x), (this.y - v.y)));
}
public function isPerpTo(v:MyVector):Boolean{
return ((this.dot(v) == 0));
}
public function plus(v:MyVector):void{
this.x = (this.x + v.x);
this.y = (this.y + v.y);
}
public function rotate(ang:Number):void{
var ca:Number;
var sa:Number;
var rx:Number;
var ry:Number;
ca = Degree.cosD(ang);
sa = Degree.sinD(ang);
rx = ((this.x * ca) - (this.y * sa));
ry = ((this.x * sa) + (this.y * ca));
this.x = rx;
this.y = ry;
}
public function getLength():Number{
return (Math.sqrt(((this.x * this.x) + (this.y * this.y))));
}
public function getAngle():Number{
return (Degree.atan2D(this.y, this.x));
}
public function get angle():Number{
return (this.getAngle());
}
public function getNormal():MyVector{
return (new MyVector(-(this.y), this.x));
}
public function plusNew(v:MyVector):MyVector{
return (new MyVector((this.x + v.x), (this.y + v.y)));
}
public function getClone():MyVector{
return (new MyVector(this.x, this.y));
}
public function setLength(len:Number):void{
var r:Number;
r = this.getLength();
if (r){
this.scale((len / r));
} else {
this.x = len;
};
}
public function toString():String{
var rx:Number;
var ry:Number;
rx = (Math.round((this.x * 1000)) / 1000);
ry = (Math.round((this.y * 1000)) / 1000);
return ((((("[" + rx) + ", ") + ry) + "]"));
}
public function get length():Number{
return (this.getLength());
}
public function minus(v:MyVector):void{
this.x = (this.x - v.x);
this.y = (this.y - v.y);
}
public function set y(y:Number):void{
this.$y = y;
}
public function angleBetween(v:MyVector):Number{
var dp:Number;
var cosAngle:Number;
dp = this.dot(v);
cosAngle = (dp / (this.getLength() * v.getLength()));
return (Degree.acosD(cosAngle));
}
public function scaleNew(s:Number):MyVector{
return (new MyVector((this.x * s), (this.y * s)));
}
public function set x(x:Number):void{
this.$x = x;
}
public function get x():Number{
return (this.$x);
}
public function get y():Number{
return (this.$y);
}
public function negateNew():MyVector{
return (new MyVector(-(this.x), -(this.y)));
}
public function equals(v:MyVector):Boolean{
return ((((this.x == v.x)) && ((this.y == v.y))));
}
}
}//package sources.math
Section 191
//MainMenu (sources.Menu.MainMenu)
package sources.Menu {
import flash.display.*;
import sources.Buttons.*;
public class MainMenu extends MovieClip {
public var mac_btn:DL_Mac_btn;
public var linux_btn:DL_Linux_btn;
public var win_btn:DL_Win_btn;
public function MainMenu(){
super();
}
}
}//package sources.Menu
Section 192
//PauseMenu (sources.Menu.PauseMenu)
package sources.Menu {
import flash.display.*;
import flash.text.*;
import sources.*;
import sources.EventExtend.*;
import sources.Buttons.*;
public class PauseMenu extends MovieClip {
public var ZLogo:UI_SimpleBtn_Logo;
public var txt:TextField;
public var ResumeBtn:UI_SimpleBtn_Continue;
public var GoMain:UI_SimpleBtn_Menu;
public function PauseMenu(){
super();
addFrameScript(0, frame1);
x = (GameParams.gameDimensions.width / 2);
y = (GameParams.gameDimensions.height / 2);
addEventListener("SET_PAUSE_TEXT", setText);
}
function frame1(){
stop();
}
private function setText(evt:EventX):void{
if (evt.ndx >= 0){
this["txt"].text = GameParams.pauseMenuTexts[evt.ndx];
} else {
this["txt"].text = "";
};
}
}
}//package sources.Menu
Section 193
//Animals (sources.Animals)
package sources {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
public class Animals extends MovieClip {
private var trac:GameTrack;
private var tm:Timer;
private var mc:MovieClip;
public var fon:MovieClip;
public function Animals(){
super();
ini();
iniEvents();
}
private function ini():void{
mc = new MovieClip();
this.addChildAt(mc, 0);
trac = new GameTrack(mc, (this["fon"] as MovieClip), this);
stage.frameRate = GameParams.interfaceFPS;
}
private function iniEvents():void{
this.addEventListener(Event.ENTER_FRAME, update);
this.addEventListener(Event.REMOVED_FROM_STAGE, clearEvents);
}
private function update(event:Event):void{
this.dispatchEvent(new Event("TIME_PROGRESS_2"));
}
private function clearEvents(event:Event):void{
stage.frameRate = GameParams.gameFPS;
this.removeChild(mc);
this.removeEventListener(Event.ENTER_FRAME, update);
this.removeEventListener(Event.REMOVED_FROM_STAGE, clearEvents);
}
}
}//package sources
Section 194
//BLIndicator (sources.BLIndicator)
package sources {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import flash.utils.*;
import flash.text.*;
import sources.EventExtend.*;
public class BLIndicator extends MovieClip {
private var HeroObject:Hero;
private var wIndicators:Array;
private var pLine2:MovieClip;
private var partBody:MovieClip;
private var OHIndicator:MovieClip;
private var hLine:MovieClip;
private var tm:Timer;
private var pLine:MovieClip;
private var prevPlace:uint;// = 0
private var selfContainer:MovieClip;
private var score:Number;
private var tiksCounter:uint;
private var IndicatorModel:Object;
private var gameContainer:MovieClip;
private var weaponsArray:Array;
private var tm1:Timer;
private var bonusNdx:Number;
private var overHeat:Boolean;// = false
private var fps:Number;
private var currWeapon:MovieClip;
private var SIndicator:MovieClip;
private var currBonus:Object;
private var CIndicator:MovieClip;
private var bonusIcon:MovieClip;
private var ClassPart:Class;
private var boss:MovieClip;// = null
private var currentLevel:Number;
private var levelsNumber:Number;
private var bonusScore:Number;// = 0
private var currBonusStr:String;
private var aLine:MovieClip;
private var manualWeaponArray:Array;
private var currPlace:uint;// = 0
public function BLIndicator(){
wIndicators = new Array();
bonusScore = 0;
overHeat = false;
currPlace = 0;
prevPlace = 0;
boss = null;
super();
}
private function listenCurrWeapon(evt:Event=null):void{
var mw:uint;
currWeapon = evt.target.getWeapon();
currPlace = evt.target._place();
mw = 0;
while (mw < manualWeaponArray.length) {
if (manualWeaponArray[mw] == currPlace){
wIndicators[mw].ndActive.gotoAndPlay(2);
wIndicators[prevPlace].ndActive.gotoAndPlay(6);
prevPlace = mw;
};
mw++;
};
}
private function setColor(mc:MovieClip, clr:uint, alphaM:Number=0):void{
var myColor:ColorTransform;
myColor = new ColorTransform();
myColor.color = clr;
myColor.alphaMultiplier = alphaM;
mc.transform.colorTransform = myColor;
}
private function removeListeners():void{
stage.removeEventListener(Event.ENTER_FRAME, frameHandler);
stage.removeEventListener("REMOVE_ALL", clearContainer);
gameContainer.removeEventListener("SET_WEAPON", listenCurrWeapon);
gameContainer.removeEventListener("TIME_PROGRESS", updateIndicators);
gameContainer.removeEventListener("CONDITION_EXECUTED", updateScore);
gameContainer.removeEventListener("HEALTH_HERO", setHealthIndicator);
gameContainer.removeEventListener("ARMOUR_HERO", setArmourIndicator);
}
private function addPart(part:Class):MovieClip{
ClassPart = part;
partBody = new ClassPart();
addChild(partBody);
return (partBody);
}
public function getCurrBonus():Object{
return (currBonus);
}
private function setHealthIndicator(evt:EventX):void{
if (evt.ndx > 0){
hLine.line.scaleX = evt.ndx;
} else {
hLine.line.scaleX = 0;
};
}
public function getCurrBonusStr():String{
return (currBonusStr);
}
private function setBossLife(evt:Event):void{
boss = (evt.target as MovieClip);
boss.addEventListener("SEND_ARMOUR", bossHit);
SIndicator.bossLine.visible = true;
}
private function addListeners():void{
stage.addEventListener(Event.ENTER_FRAME, frameHandler);
stage.addEventListener("REMOVE_ALL", clearContainer);
gameContainer.addEventListener("SHOW_ENEMY_HEALTH", setBossLife);
gameContainer.addEventListener("TIME_PROGRESS", updateIndicators);
gameContainer.addEventListener("CONDITION_EXECUTED", updateScore);
gameContainer.addEventListener("HEALTH_HERO", setHealthIndicator);
gameContainer.addEventListener("ARMOUR_HERO", setArmourIndicator);
gameContainer.addEventListener("SET_WEAPON", listenCurrWeapon);
}
private function clearContainer(evt:Event):void{
var evt = evt;
removeChild(hLine);
//unresolved jump
var _slot1 = e;
removeChild(aLine);
//unresolved jump
var _slot1 = e;
removeChild(OHIndicator);
//unresolved jump
var _slot1 = e;
removeListeners();
//unresolved jump
var _slot1 = e;
selfContainer.removeChild(this);
//unresolved jump
var _slot1 = e;
}
private function changeScore(evt:EventX=null):void{
if (evt != null){
score = (score + evt.ndx);
};
currentLevel = GameParams.containerCurrentLevel;
SIndicator.indicator_tx.text = ((("LEVEL : " + currentLevel) + "/") + GameParams.levelsNumber);
}
private function bossHit(evt:EventX):void{
SIndicator.bossLine.line.scaleX = evt.ndx;
}
private function frameHandler(evt:Event):void{
}
private function updateScore(evt:Event=null):void{
score = (score + bonusScore);
changeScore();
}
public function initIndicators(container:MovieClip, sContainer:MovieClip, hero:Hero){
var wa:uint;
gameContainer = container;
selfContainer = sContainer;
HeroObject = hero;
currWeapon = HeroObject.getWeapon();
weaponsArray = HeroObject.getWeapons();
manualWeaponArray = HeroObject.getManualWeapons();
wa = 0;
while (wa < manualWeaponArray.length) {
wIndicators[wa] = addPart(warnIndicator);
wIndicators[wa].x = (GameParams.gameDimensions.width - 115);
wIndicators[wa].y = (18 + (wa * 6));
wIndicators[wa]["numberW"].wNumber_tx.text = (manualWeaponArray[wa] + 1);
wIndicators[wa].wLine1.scaleX = 0;
wa++;
};
wIndicators[currPlace].ndActive.gotoAndPlay(2);
IndicatorModel = GameParams.IndicatorModel;
hLine = addPart(IndicatorModel.hline.body);
hLine.x = (GameParams.gameDimensions.width - 115);
hLine.y = 2;
aLine = addPart(IndicatorModel.aline.body);
aLine.x = (GameParams.gameDimensions.width - 115);
aLine.y = 8;
SIndicator = addPart(IndicatorModel.sind.body);
SIndicator.x = IndicatorModel.sind.x;
SIndicator.y = IndicatorModel.sind.y;
SIndicator.indicator_tx.autoSize = TextFieldAutoSize.LEFT;
SIndicator.bossLine.visible = false;
CIndicator = addPart(IndicatorModel.cind.body);
CIndicator.x = IndicatorModel.cind.x;
CIndicator.y = IndicatorModel.cind.y;
CIndicator.visible = false;
levelsNum();
addListeners();
HeroObject.getArmourState();
bonusScore = GameParams.LevelModel.bonusScore;
changeScore();
}
private function changeBonusScore(evt:EventX=null):void{
if (bonusScore > 0){
bonusScore = (bonusScore + evt.ndx);
};
if (bonusScore < 0){
bonusScore = 0;
};
}
private function levelsNum():void{
levelsNumber = GameParams.levelsNumber;
trace((levelsNumber + " levelsNumber"));
}
private function setArmourIndicator(evt:EventX):void{
if (evt.ndx > 0){
aLine.line.scaleX = evt.ndx;
} else {
aLine.line.scaleX = 0;
};
}
private function updateIndicators(evt:Event):void{
var wa:uint;
if (GameParams.showLevelInfo()){
SIndicator.goal_tx.text = gameContainer.getCondition();
};
if (currWeapon.warnStatus > 0.8){
if (!overHeat){
overHeat = true;
};
} else {
if (overHeat){
overHeat = false;
};
};
wa = 0;
while (wa < manualWeaponArray.length) {
wIndicators[wa].wLine1.scaleX = (1 - weaponsArray[manualWeaponArray[wa]].warnStatus);
wa++;
};
fps = Math.round((1000 / (getTimer() - tiksCounter)));
tiksCounter = getTimer();
SIndicator.indicator_tx.text = ((("LEVEL : " + currentLevel) + "/") + GameParams.levelsNumber);
}
}
}//package sources
Section 195
//BmpMovie (sources.BmpMovie)
package sources {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
public class BmpMovie {
private var _x:Number;
private var _class_name:String;
private var _skin_class:Class;
private var _skin:MovieClip;
private var _rotation:Number;
private var _target:MovieClip;
private var _mc:MovieClip;
private var _i:uint;// = 0
private var _y:Number;
private var _sp:MovieClip;
private static var _bmp:Array = new Array();
public function BmpMovie(class_name:Class, target:MovieClip, x:Number=0, y:Number=0, rotation:Number=0){
_i = 0;
super();
_target = target;
_rotation = rotation;
_x = x;
_y = y;
_class_name = String(class_name);
_skin_class = class_name;
_skin = new _skin_class();
ini();
iniEvents();
}
private function putNextFrame(event:Event=null):void{
var event = event;
_mc.removeChildAt(0);
//unresolved jump
var _slot1 = e;
if (_i < (_bmp[_class_name].length - 1)){
_mc.addChildAt((_bmp[_class_name][_i] as DisplayObject), 0);
_i++;
} else {
clearEvents();
};
}
private function clearEvents():void{
_target.removeEventListener(Event.ENTER_FRAME, putNextFrame);
_target.removeChild(_mc);
}
private function iniBmp():void{
var i:*;
var rec:Rectangle;
var bmp_data:BitmapData;
var matrix:Matrix;
i = 1;
while (i <= _skin.totalFrames) {
_skin.gotoAndStop(i);
Math.ceil(_skin.width);
Math.ceil(_skin.height);
rec = _skin.getBounds(_target);
Math.ceil(rec.width);
Math.ceil(rec.height);
Math.ceil(rec.y);
bmp_data = new BitmapData(Math.ceil(rec.width), Math.ceil(rec.height), true, 0);
matrix = new Matrix();
matrix.tx = -(Math.ceil(rec.x));
matrix.ty = -(Math.ceil(rec.y));
bmp_data.draw(_skin, matrix);
_bmp[_class_name][(i - 1)] = new Bitmap(bmp_data);
(_bmp[_class_name][(i - 1)] as Bitmap).x = -(matrix.tx);
(_bmp[_class_name][(i - 1)] as Bitmap).y = -(matrix.ty);
i++;
};
}
private function iniEvents():void{
_target.addEventListener(Event.ENTER_FRAME, putNextFrame);
}
private function ini():void{
if (!_bmp[_class_name]){
_bmp[_class_name] = new Array();
iniBmp();
};
_mc = new MovieClip();
_target.addChild(_mc);
_mc.x = _x;
_mc.y = _y;
_mc.rotation = _rotation;
}
}
}//package sources
Section 196
//Bullet (sources.Bullet)
package sources {
import flash.events.*;
import flash.display.*;
import sources.math.*;
import flash.utils.*;
import com.gamezhero.media.*;
public class Bullet extends BulletObject {
private var partsCount:uint;// = 0
private var freezPower:Number;// = 0
private var resVect:MyVector;
private var targetNum:Number;
private var targetVector:MyVector;
private var partsNumber:Number;
private var autoNavigate:Boolean;// = false
private var exploseBullet:Event;
private var moveVector:MyVector;
private var compareVector:MyVector;
public var Indx:Number;
private var exploseVector:MyVector;
private var bulletObj:Bullet;
private var gameContainer:MovieClip;
private var bType:String;
private var rotate_ndx:Number;
private var damageRadius:Number;
private var searchVector:MyVector;
private var explosion:Explosion;
private var totalAutoNavigates:uint;// = 5
private var damage:Number;
private var toEnemyVector:MyVector;
private var searchTarget:MovieClip;// = null
private var bound:Number;
private var autoNavTargetsArray:Array;
private var targetObj:MovieClip;// = null
private var sobj:Object;
private var splVector:MyVector;
private var freeze_bound:Number;// = 0
private var lifeTime:Number;
private var splBody:String;
public function Bullet():void{
targetVector = new MyVector(0.1, 0.1);
compareVector = new MyVector(0.1, 0.1);
resVect = new MyVector(0.1, 0.1);
exploseVector = new MyVector(0.1, 0.1);
splVector = new MyVector(0.1, 0.1);
toEnemyVector = new MyVector(0.1, 0.1);
searchTarget = null;
targetObj = null;
autoNavigate = false;
partsCount = 0;
freezPower = 0;
freeze_bound = 0;
totalAutoNavigates = 5;
exploseBullet = new Event("BULLET_EXPLOSE", true);
super();
}
private function removeListeners():void{
gameContainer.removeEventListener("TIME_PROGRESS", updateBullet);
gameContainer.removeEventListener("KILL_ENEMY", killEnemy);
}
public function getVector():MyVector{
return (splVector);
}
private function getDamage():Number{
return (damage);
}
private function removeAllBullets(evt:Event):void{
}
private function removeBullet():void{
if (this.parent != null){
gameContainer.removeChild(this);
removeListeners();
};
}
private function clearContainer(evt:Event):void{
removeListeners();
gameContainer.removeChild(this);
}
private function killEnemy(evt:Event):void{
if (evt.target == targetObj){
totalAutoNavigates--;
if (totalAutoNavigates < 0){
addDamage();
};
};
targetObj = null;
}
private function initListeners():void{
gameContainer.addEventListener("TIME_PROGRESS", updateBullet);
gameContainer.addEventListener("KILL_ENEMY", killEnemy);
}
private function updateBullet(evt:Event):void{
var en:uint;
var vsat:uint;
move();
if (bType == "freeze"){
bound = freeze_bound;
} else {
bound = 150;
};
if ((((((((position.x > (GameParams.gameDimensions.width + bound))) || ((position.x < -(bound))))) || ((position.y > (GameParams.gameDimensions.height + bound))))) || ((position.y < -(bound))))){
removeBullet();
};
searchTarget = null;
en = 0;
while (en < GameContainer.enemysArray.length) {
toEnemyVector.reset((GameContainer.enemysArray[en].position.x - position.x), (GameContainer.enemysArray[en].position.y - position.y));
if ((((((searchTarget == null)) && (GameContainer.enemysArray[en].navigate()))) && (sobj.autoNavigate))){
searchTarget = GameContainer.enemysArray[en];
searchVector = toEnemyVector.getClone();
} else {
if (((((!((searchTarget == null))) && (GameContainer.enemysArray[en].navigate()))) && (sobj.autoNavigate))){
if (searchVector.length > toEnemyVector.length){
if (bType == "freeze"){
if (!GameContainer.enemysArray[en].freez){
searchTarget = GameContainer.enemysArray[en];
searchVector = toEnemyVector.getClone();
};
} else {
searchTarget = GameContainer.enemysArray[en];
searchVector = toEnemyVector.getClone();
};
};
};
};
if (toEnemyVector.length < (GameContainer.enemysArray[en].width * 2)){
if (GameContainer.enemysArray[en].enHitArea.hitTestPoint(position.x, position.y, true)){
GameContainer.enemysArray[en].HitMe(getDamage());
if (bType == "freeze"){
GameContainer.enemysArray[en].freeze(freezPower);
};
addDamage(en);
};
};
en++;
};
vsat = 0;
while (vsat < GameContainer.vulnerableSatellites.length) {
if (GameContainer.vulnerableSatellites[vsat].hitTestPoint(position.x, position.y, true)){
GameContainer.vulnerableSatellites[vsat].getDamage(getDamage());
addDamage();
};
vsat++;
};
visible = true;
if ((((targetObj == null)) && (!((searchTarget == null))))){
targetObj = searchTarget;
autoNavigate = true;
} else {
if ((((targetObj == null)) && ((searchTarget == null)))){
autoNavigate = false;
};
};
if (autoNavigate){
if (angleTransform((resetVectorToTarget(targetObj).angle - direction)) > (rotate_ndx / 2)){
direction = (direction + rotate_ndx);
} else {
if (angleTransform((resetVectorToTarget(targetObj).angle - direction)) < (-(rotate_ndx) / 2)){
direction = (direction - rotate_ndx);
} else {
if ((((angleTransform((resetVectorToTarget(targetObj).angle - direction)) >= (-(rotate_ndx) / 2))) && ((angleTransform((resetVectorToTarget(targetObj).angle - direction)) <= (rotate_ndx / 2))))){
direction = resetVectorToTarget(targetObj).angle;
};
};
};
if (lifeTime > 0){
lifeTime--;
} else {
addDamage();
};
};
}
public function BulletInit(obj:Object, weapon:MovieClip, container:MovieClip):void{
sobj = obj;
gameContainer = container;
moveVector = weapon.getVector().getClone();
init(obj, moveVector, gameContainer, weapon);
damage = obj.damage;
damageRadius = obj.damageRadius;
bType = sobj.type;
if (bType == "splinter"){
partsNumber = sobj.partsNumber;
splBody = sobj.splinterBody;
};
if (bType == "freeze"){
freezPower = sobj.freezPower;
};
move();
rotate_ndx = 7;
visible = false;
if (sobj.autoNavigate){
lifeTime = sobj.lifeTime;
};
initListeners();
}
private function addDamage(en:Number=undefined):void{
var en1:uint;
var spl:uint;
if (damageRadius > 0){
en1 = 0;
while (en1 < GameContainer.enemysArray.length) {
exploseVector.reset((GameContainer.enemysArray[en1].x - position.x), (GameContainer.enemysArray[en1].y - position.y));
if ((((exploseVector.length < damageRadius)) && (!((en == en1))))){
GameContainer.enemysArray[en1].HitMe(((getDamage() * (damageRadius - exploseVector.length)) / damageRadius));
if (bType == "freeze"){
GameContainer.enemysArray[en1].freeze(freezPower);
};
};
en1++;
};
};
if (bType == "splinter"){
spl = 0;
while (spl < partsNumber) {
splVector.angle = (direction + (spl * (360 / partsNumber)));
bulletObj = new Bullet();
gameContainer.addChild(bulletObj);
gameContainer.setChildIndex(bulletObj, 0);
bulletObj.BulletInit(GameParams.Bullets[splBody], this, gameContainer);
spl++;
};
};
dispatchEvent(exploseBullet);
addExplosion();
removeBullet();
}
private function addExplosion():void{
new BmpMovie((getDefinitionByName(sobj.exploseSkin) as Class), gameContainer, position.x, position.y, (Math.random() * 360));
SoundFX.play(null, "s_b", null, GameParams.getPin(this.position.x), 1);
}
private function resetVectorToTarget(targObj:MovieClip):MyVector{
resVect.reset((targObj.position.x - position.x), (targObj.position.y - position.y));
return (resVect);
}
private function angleTransform(foo:Number):Number{
if (foo > 180){
foo = (foo - 360);
} else {
if (foo < -180){
foo = (foo + 360);
};
};
return (foo);
}
}
}//package sources
Section 197
//BulletObject (sources.BulletObject)
package sources {
import flash.display.*;
import flash.geom.*;
import sources.math.*;
import flash.utils.*;
public class BulletObject extends MovieClip {
private var startSpeed:Number;
private var speedDifference:Number;
private var wSpeed:Number;
private var scaleNdx:Number;
private var endSpeed:Number;
private var partBody:MovieClip;
private var ricochet:Number;
private var exploseRadius:Number;
private var ClassPart:Class;
private var moveVector:MyVector;
private var damage:Number;
private var speedStepsNumber:Number;
public var body:MovieClip;
private var gameContainer:MovieClip;
private var sobj:Object;
private var speedNdx:Number;
private var posPoint:Point;
private var removable:Boolean;
private var damageRadius:Number;
public function BulletObject(){
moveVector = new MyVector(0.1, 0.1);
super();
}
public function set direction(dir:Number):void{
moveVector.angle = dir;
}
public function init(obj:Object, mVector:MyVector, container:MovieClip, weapon:MovieClip):void{
sobj = obj;
gameContainer = container;
speedDifference = obj.speedDifference;
startSpeed = (obj.startSpeed + Math.floor((Math.random() * speedDifference)));
endSpeed = obj.endSpeed;
speedStepsNumber = obj.speedStepsNumber;
speedNdx = ((Math.abs((endSpeed - startSpeed)) / speedStepsNumber) * ((endSpeed - startSpeed) / Math.abs((endSpeed - startSpeed))));
damageRadius = obj.damageRadius;
damage = obj.damage;
scaleNdx = obj.scaleNdx;
body = addPart((getDefinitionByName(obj.skin) as Class));
moveVector = mVector.getClone();
position = new Point(weapon.position.x, weapon.position.y);
moveVector.length = (wSpeed = startSpeed);
position = new Point((weapon.position.x - moveVector.x), (weapon.position.y - moveVector.y));
}
public function get position():Point{
return (posPoint);
}
public function addPart(part:Class):MovieClip{
ClassPart = part;
partBody = new ClassPart();
addChild(partBody);
return (partBody);
}
public function get spdNdx():Number{
return ((speed / startSpeed));
}
public function get speed():Number{
return (wSpeed);
}
public function set position(pos:Point):void{
posPoint = pos.clone();
x = gameContainer.globalToLocal(posPoint).x;
y = gameContainer.globalToLocal(posPoint).y;
posPoint = pos.clone();
}
public function set speed(spd:Number):void{
wSpeed = spd;
}
public function get direction():Number{
return (moveVector.angle);
}
public function move():void{
if (Math.abs((wSpeed - endSpeed)) > Math.abs(speedNdx)){
wSpeed = (wSpeed + speedNdx);
} else {
wSpeed = endSpeed;
};
moveVector.length = wSpeed;
body.rotation = moveVector.angle;
position = new Point((position.x + moveVector.x), (position.y + moveVector.y));
}
}
}//package sources
Section 198
//ChooseLevel (sources.ChooseLevel)
package sources {
import flash.display.*;
import sources.Buttons.*;
public class ChooseLevel extends MovieClip {
private var clBtn:CL_Level_btn;
private var SP:SaveParams;
public function ChooseLevel(){
var cl:uint;
super();
cl = 0;
while (cl < 25) {
clBtn = new CL_Level_btn();
addChild(clBtn);
clBtn.x = (130 + (50 * (cl % 6)));
clBtn.y = (150 + (50 * Math.floor((cl / 6))));
clBtn.ndx = cl;
clBtn.init();
cl++;
};
}
}
}//package sources
Section 199
//ChoosePanel (sources.ChoosePanel)
package sources {
import flash.events.*;
import flash.display.*;
public class ChoosePanel extends MovieClip {
public var msModeBtn:msModeBut;
private var SP:SaveParams;
public var kbModeBtn:kbModeBut;
private var saver:Boolean;// = false
public function ChoosePanel(){
SP = new SaveParams();
saver = false;
super();
addListeners();
}
private function setMouse(evt:MouseEvent):void{
SP.setPlayMode("KB");
dispatchEvent(new Event("PLAY_GAME", true));
}
private function setKeyboard(evt:MouseEvent):void{
SP.setPlayMode("MS");
dispatchEvent(new Event("PLAY_GAME", true));
}
private function addListeners():void{
kbModeBtn.addEventListener(MouseEvent.CLICK, setKeyboard);
msModeBtn.addEventListener(MouseEvent.CLICK, setMouse);
}
}
}//package sources
Section 200
//Enemy (sources.Enemy)
package sources {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import sources.math.*;
import flash.utils.*;
import sources.EventExtend.*;
import com.gamezhero.media.*;
public dynamic class Enemy extends MovieClip {
private var freezTimeCounter:Number;// = 0
private var partObj:Enemy;
private var pushChildVector:MyVector;
private var shootBraking:Number;// = 0
private var childsAmount:Array;
private var appPoint1:Point;
private var shootPower:Number;// = 0
private var enemyAcceleration:Number;
private var partBody:MovieClip;
private var moveEnemy:Function;
private var isChild:Boolean;
private var childGenerationTime:Array;
private var sumDecreaseAngle;// = 0
private var weaponPlace:Number;
private var showHealthEvent:Event;
private var toSatelliteVector:MyVector;
private var vectorAdd:Boolean;// = false
private var targetHit:MovieClip;
private var moveVector:MyVector;
private var childType:Array;
public var currTarget:Boolean;// = false
private var hLine:MovieClip;
private var movementType:Object;
private var angleDecrease:Number;
private var enemyModel:Object;
private var gameContainer:MovieClip;
public var Indx:Number;
private var hitVector:MyVector;
private var Parent:MovieClip;
private var childVectors:Array;
private var eNdx:Number;
private var disappearNdx:Number;
private var partObjs:Array;
private var accel:Boolean;// = true
private var prevLength:Number;
private var shootAngles:Array;
private var shootPowers:Array;
private var hitFriendEvent:Event;
private var sectorAngle:Number;
private var enemyDamage:Number;
private var partsContainers:Array;
private var EnemyBody:MovieClip;
private var enemyArmour:Number;
private var removeTarget:Boolean;// = false
private var oldDirection:Boolean;// = true
private var setDirection:Boolean;// = true
private var exploseSkin:Class;
private var weaponAppearValues:Array;
private var enemyCounter:Number;// = 0
private var isTarget:Boolean;// = false
private var killTargetEvent:Event;
private var ClassPart:Class;
private var shootSpeed:Number;// = 0
private var kilEnemyEvent:Event;
private var endRotation:Number;
private var addEnemyEvent:Event;
private var freezTime:Number;
private var pushChildAtDeath:Boolean;// = false
private var enemyMode:String;
private var backRotation:Number;
private var direction:Number;
private var startAngle:Number;
private var target:MovieClip;
private var enemySpeed:Number;
private var forAutoNavigate:Boolean;// = true
private var disappear:Boolean;// = false
private var appearNdx:Number;
private var angleNdx:Number;
private var changeDirection:Boolean;// = false
private var freezState:Boolean;// = false
private var addChVector:MyVector;
private var partType:Array;
private var partContainer:MovieClip;
private var vectorFix:Boolean;
private var enemyContainer:MovieClip;
private var compareVect:MyVector;
public var enHitArea:MovieClip;
private var weaponAppearCounters:Array;
private var appPoint:Point;
private var enemyScore:Number;
private var updateMovevector:MyVector;
private static var HeroObject:MovieClip;
public function Enemy():void{
childsAmount = new Array();
childGenerationTime = new Array();
weaponAppearCounters = new Array();
weaponAppearValues = new Array();
partObjs = new Array();
partsContainers = new Array();
partType = new Array();
childType = new Array();
childVectors = new Array();
shootPowers = new Array();
shootAngles = new Array();
shootPower = 0;
shootBraking = 0;
shootSpeed = 0;
hitVector = new MyVector(0.1, 0.1);
updateMovevector = new MyVector(0.1, 0.1);
vectorAdd = false;
changeDirection = false;
oldDirection = true;
enemyCounter = 0;
pushChildAtDeath = false;
isTarget = false;
forAutoNavigate = true;
accel = true;
removeTarget = false;
disappear = false;
currTarget = false;
kilEnemyEvent = new Event("KILL_ENEMY", true);
addEnemyEvent = new Event("ENEMY_HERE", true);
hitFriendEvent = new Event("HIT_FRIEND", true);
killTargetEvent = new Event("KILL_TARGET", true);
showHealthEvent = new Event("SHOW_ENEMY_HEALTH", true);
setDirection = true;
sumDecreaseAngle = 0;
freezTimeCounter = 0;
freezState = false;
super();
}
public function removeListeners():void{
stage.removeEventListener("REMOVE_ALL", clearContainer);
gameContainer.removeEventListener("TIME_PROGRESS", updateEnemy);
gameContainer.removeEventListener("KILL_HERO", killHeroHandler);
gameContainer.removeEventListener("TIME_PROGRESS", updateFreezEnemy);
gameContainer.removeEventListener("KILL_ENEMY", killEnemyHandler);
}
public function InitEnemy(type:String, X:Number, Y:Number, container:MovieClip, heroObj:MovieClip, isChld:Boolean, prnt:MovieClip, isTrg:Boolean, pl:Number, partCont:MovieClip=null):void{
var ClassEnemy:Class;
var v1:MyVector;
var sat:uint;
Indx = (GameContainer.enemysArray.length - 1);
HeroObject = heroObj;
partContainer = partCont;
gameContainer = container;
enemyModel = GameParams.EnemyLevels[type];
if (enemyModel.showHealth){
dispatchEvent(showHealthEvent);
};
ClassEnemy = (getDefinitionByName(enemyModel.skin) as Class);
EnemyBody = new (ClassEnemy);
addChild(EnemyBody);
exploseSkin = (getDefinitionByName(enemyModel.exploseSkin) as Class);
enHitArea = EnemyBody.enemyHitArea;
getParam();
dispatchEvent(addEnemyEvent);
Parent = prnt;
isChild = isChld;
isTarget = isTrg;
appPoint = new Point(X, Y);
x = gameContainer.globalToLocal(appPoint).x;
y = gameContainer.globalToLocal(appPoint).y;
alpha = 0;
if (partContainer != null){
enemyContainer = partContainer;
} else {
enemyContainer = gameContainer;
};
if (GameContainer.satellitesArray.length != 0){
sat = 0;
while (sat < GameContainer.satellitesArray.length) {
toSatelliteVector = new MyVector((GameContainer.satellitesArray[sat].x - position.x), (GameContainer.satellitesArray[sat].y - position.y));
if (sat == 0){
compareVect = toSatelliteVector.getClone();
target = GameContainer.satellitesArray[sat];
} else {
if (compareVect.length > toSatelliteVector.length){
compareVect = toSatelliteVector.getClone();
target = GameContainer.satellitesArray[sat];
};
};
if (sat == (GameContainer.satellitesArray.length - 1)){
toSatelliteVector = new MyVector((HeroObject.x - position.x), (HeroObject.y - position.y));
if (compareVect.length > toSatelliteVector.length){
compareVect = toSatelliteVector.getClone();
target = HeroObject;
};
};
sat++;
};
};
toSatelliteVector = compareVect.getClone();
moveVector = toSatelliteVector.getClone();
moveVector.setLength(0.01);
if (isChild){
moveVector = Parent.getChildVector(pl).getClone();
moveVector.angle = (moveVector.angle + Parent.getVector().angle);
x = (Parent.position.x + moveVector.x);
y = (Parent.position.y + moveVector.y);
moveVector.setLength(Parent.getShootPowers(pl));
moveVector.setAngle((Parent.getShootAngles(pl) + Parent.getVector().angle));
setDirection = false;
vectorAdd = true;
shootPower = Parent.enemyModel.childShootPower;
shootBraking = Parent.enemyModel.childShootBraking;
};
switch (movementType.types){
case "TO_HERO":
moveEnemy = toHeroMove;
break;
case "SPIRAL":
angleDecrease = movementType.angleDecrease;
startAngle = toSatelliteVector.angle;
direction = movementType.direction;
moveEnemy = moveBySpiral;
break;
case "SECTOR":
direction = movementType.direction;
sectorAngle = (movementType.sectorAngle / 2);
if (angleNdx < ((enemySpeed * 90) / (target.radius * Math.PI))){
endRotation = ((enemySpeed * 90) / (target.radius * Math.PI));
} else {
endRotation = angleNdx;
};
startAngle = toSatelliteVector.angle;
moveEnemy = moveBySector;
backRotation = -(direction);
break;
};
stage.addEventListener("REMOVE_ALL", clearContainer);
gameContainer.addEventListener("SET_NEW_PARAMS", deleteMe);
gameContainer.addEventListener("TIME_PROGRESS", updateEnemy);
gameContainer.addEventListener("KILL", killHeroHandler);
if (((!((partContainer == null))) || ((enemyModel.parts.length > 0)))){
gameContainer.addEventListener("KILL_ENEMY", killEnemyHandler);
};
v1 = new MyVector((this.position.x - HeroObject.x), (this.position.y - HeroObject.y));
SoundFX.play(null, ("s_show" + Math.round(((Math.random() * 3) + 1))), null, GameParams.getPin(this.position.x), GameParams.getVol(v1.length));
}
private function addPart(part:Class):MovieClip{
ClassPart = part;
partBody = new ClassPart();
addChild(partBody);
return (partBody);
}
public function setVector(chVector:MyVector):void{
moveVector = chVector.getClone();
}
private function updateEnemy(evt:Event):void{
var ch:*;
var wac:uint;
if (!removeTarget){
enemyCounter++;
ch = 0;
while (ch < childsAmount.length) {
if (((((((((enemyCounter % childGenerationTime[ch]) == 0)) && ((childsAmount[ch] > 0)))) && (!(pushChildAtDeath)))) && ((GameContainer.enemysArray.length <= GameParams.maxEnemiesOnStage)))){
var _local4 = childsAmount;
var _local5 = ch;
var _local6 = (_local4[_local5] - 1);
_local4[_local5] = _local6;
dispatchEvent(new EventX("PUSH_CHILD", ch, true));
};
ch++;
};
wac = 0;
while (wac < weaponAppearCounters.length) {
if (weaponAppearCounters[wac] < enemyModel.parts[wac].regenerationTime){
_local4 = weaponAppearCounters;
_local5 = wac;
_local6 = (_local4[_local5] + 1);
_local4[_local5] = _local6;
} else {
if (weaponAppearCounters[wac] == enemyModel.parts[wac].regenerationTime){
partObj = new Enemy();
partsContainers[wac].addChild(partObj);
partObjs[wac] = partObj;
GameContainer.enemysArray.push(partObj);
partObj.InitEnemy(partType[wac].type, partType[wac].x, partType[wac].y, gameContainer, HeroObject, false, null, false, 0, partsContainers[wac]);
if (partObj.mode == "enemy"){
GameContainer.enemysArrayE.push(partObj);
partObj.EnemyNdx = (GameContainer.enemysArrayE.length - 1);
};
partObj.place = wac;
_local4 = weaponAppearCounters;
_local5 = wac;
_local6 = (_local4[_local5] + 1);
_local4[_local5] = _local6;
};
};
wac++;
};
if (alpha < 1){
alpha = (alpha + appearNdx);
};
checkCollision();
if (moveVector.length < (enemySpeed - enemyAcceleration)){
if (vectorAdd){
startAngle = toSatelliteVector.angle;
};
moveVector.length = (moveVector.length + enemyAcceleration);
};
if (moveVector.length > (enemySpeed + enemyAcceleration)){
if (vectorAdd){
startAngle = toSatelliteVector.angle;
};
moveVector.length = (moveVector.length - enemyAcceleration);
};
if ((((moveVector.length < (enemySpeed + enemyAcceleration))) && ((moveVector.length > (enemySpeed - enemyAcceleration))))){
if (vectorAdd){
startAngle = toSatelliteVector.angle;
vectorAdd = false;
};
moveVector.length = enemySpeed;
};
if (enemySpeed > 0){
if (partContainer == null){
x = (x + moveEnemy().x);
y = (y + moveEnemy().y);
EnemyBody.rotation = moveEnemy().angle;
};
} else {
if (partContainer == null){
if (moveVector.length > enemyAcceleration){
updateMovevector = moveEnemy().getClone();
x = (x + updateMovevector.x);
y = (y + updateMovevector.y);
EnemyBody.rotation = updateMovevector.angle;
} else {
if (angleTransform((EnemyBody.rotation - toSatelliteVector.angle)) > angleNdx){
EnemyBody.rotation = (EnemyBody.rotation - angleNdx);
} else {
if (angleTransform((EnemyBody.rotation - toSatelliteVector.angle)) < -(angleNdx)){
EnemyBody.rotation = (EnemyBody.rotation + angleNdx);
} else {
if ((((angleTransform((EnemyBody.rotation - toSatelliteVector.angle)) < angleNdx)) && ((angleTransform((EnemyBody.rotation - toSatelliteVector.angle)) > -(angleNdx))))){
EnemyBody.rotation = toSatelliteVector.angle;
};
};
};
moveVector.angle = toSatelliteVector.angle;
};
} else {
moveVector.angle = 0;
};
};
};
}
public function getVector():MyVector{
if (partContainer != null){
toSatelliteVector.reset(0.1, 0.1);
toSatelliteVector.angle = partContainer.rotation;
return (toSatelliteVector);
};
if (enemySpeed > 0){
return (moveVector);
};
toSatelliteVector.reset((target.x - position.x), (target.y - position.y));
return (toSatelliteVector);
}
public function getChildVector(ndx:Number):MyVector{
return (childVectors[ndx]);
}
public function HitMe(gettingDamage:Number):void{
var chEn:uint;
enemyArmour = (enemyArmour - (Math.round((100 * gettingDamage)) / 100));
if (enemyModel.showHealth){
dispatchEvent(new EventX("SEND_ARMOUR", (enemyArmour / enemyModel.armour), true));
};
if (enemyArmour <= 0){
if (pushChildAtDeath){
chEn = 0;
while (chEn < childType.length) {
dispatchEvent(new EventX("PUSH_CHILD", chEn, true));
chEn++;
};
};
addExplosion("kill");
GameParams.levelEnemyScore = (GameParams.levelEnemyScore + enemyScore);
deleteMe();
};
}
private function updateFreezEnemy(evt:Event):void{
freezTime--;
if (moveVector.length > 0.1){
moveVector.length = (moveVector.length - enemyAcceleration);
} else {
moveVector.length = 0.1;
};
updateMovevector = moveEnemy().getClone();
x = (x + updateMovevector.x);
y = (y + updateMovevector.y);
EnemyBody.rotation = updateMovevector.angle;
checkCollision();
if (freezTime <= 0){
freezState = false;
gameContainer.addEventListener("TIME_PROGRESS", updateEnemy);
gameContainer.removeEventListener("TIME_PROGRESS", updateFreezEnemy);
};
}
private function toHeroMove():MyVector{
if (angleTransform((moveVector.angle - toSatelliteVector.angle)) > 2){
moveVector.angle = (moveVector.angle - angleNdx);
};
if (angleTransform((moveVector.angle - toSatelliteVector.angle)) < -2){
moveVector.angle = (moveVector.angle + angleNdx);
};
if (Math.abs(angleTransform((moveVector.angle - toSatelliteVector.angle))) < 2){
moveVector.angle = toSatelliteVector.angle;
};
return (moveVector);
}
public function getTarget():Boolean{
return (isTarget);
}
public function freeze(freezPower:Number):void{
freezTime = (freezPower / enemyArmour);
freezState = true;
gameContainer.removeEventListener("TIME_PROGRESS", updateEnemy);
gameContainer.addEventListener("TIME_PROGRESS", updateFreezEnemy);
}
public function deleteMe(evt:Event=null):void{
var sd:*;
var esd:*;
if (currTarget){
GameParams.enemyHere = null;
GameParams.enemyDistance = 0;
};
if (mode == "enemy"){
GameContainer.enemysArrayE.splice(eNdx, 1);
esd = eNdx;
while (esd < GameContainer.enemysArrayE.length) {
GameContainer.enemysArrayE[esd].EnemyNdx = esd;
esd++;
};
};
dispatchEvent(kilEnemyEvent);
GameContainer.enemysArray.splice(Indx, 1);
sd = Indx;
while (sd < GameContainer.enemysArray.length) {
GameContainer.enemysArray[sd].Indx = sd;
sd++;
};
if (this.parent != null){
removeListeners();
};
dispatchEvent(new Event("REMOVE_ENEMY", true));
enemyContainer.removeChild(this);
}
public function getDamage():Number{
return (enemyDamage);
}
private function clearContainer(evt:Event):void{
deleteMe();
}
private function getParam():void{
var pr:uint;
var ch:*;
if (enemyModel.forAutoNavigate == false){
forAutoNavigate = false;
} else {
forAutoNavigate = true;
};
enemyMode = enemyModel.enemyMode;
if (enemyModel.pushChildAtDeath){
pushChildAtDeath = true;
ch = 0;
while (ch < enemyModel.child.length) {
childType[ch] = enemyModel.child[ch];
childsAmount[ch] = childType[ch].amount;
childGenerationTime[ch] = childType[ch].dt;
childVectors[ch] = new MyVector(childType[ch].x, childType[ch].y);
shootAngles[ch] = childType[ch].shootAngle;
shootPowers[ch] = childType[ch].shoopPower;
ch++;
};
} else {
ch = 0;
while (ch < enemyModel.child.length) {
childType[ch] = enemyModel.child[ch];
childsAmount[ch] = childType[ch].amount;
childGenerationTime[ch] = childType[ch].dt;
childVectors[ch] = new MyVector(childType[ch].x, childType[ch].y);
shootPowers[ch] = childType[ch].shoopPower;
shootAngles[ch] = childType[ch].shootAngle;
ch++;
};
};
pr = 0;
while (pr < enemyModel.parts.length) {
partType[pr] = enemyModel.parts[pr];
partsContainers[pr] = EnemyBody[("cont" + partType[pr].contNumber)];
partObj = new Enemy();
partsContainers[pr].addChild(partObj);
partObjs[pr] = partObj;
GameContainer.enemysArray.push(partObj);
partObj.InitEnemy(partType[pr].type, partType[pr].x, partType[pr].y, gameContainer, HeroObject, false, null, false, 0, partsContainers[pr]);
if (partObj.mode == "enemy"){
GameContainer.enemysArrayE.push(partObj);
partObj.EnemyNdx = (GameContainer.enemysArrayE.length - 1);
};
weaponAppearCounters[pr] = (partType[pr].regenerationTime + 1);
partObj.place = pr;
pr++;
};
movementType = enemyModel.movementType;
angleNdx = enemyModel.angleNdx;
appearNdx = enemyModel.appearNdx;
disappearNdx = enemyModel.disAppearNdx;
enemyScore = enemyModel.score;
enemyArmour = enemyModel.armour;
enemySpeed = enemyModel.speed;
enemyAcceleration = enemyModel.acceleration;
enemyDamage = enemyModel.damage;
}
private function checkMeForTarget(evt:Event=null):void{
if (forAutoNavigate){
if ((((toSatelliteVector.length < GameParams.enemyDistance)) || ((GameParams.enemyDistance == 0)))){
if (GameParams.enemyHere != null){
GameParams.enemyHere.currTarget = false;
};
GameParams.enemyHere = this;
currTarget = true;
GameParams.enemyDistance = toSatelliteVector.length;
};
};
}
public function getEnemyPart(ndx:Number):Object{
return (partType[ndx]);
}
public function getScore():Number{
return (enemyScore);
}
public function changeVector(chVector:MyVector):void{
addChVector = chVector.getClone();
vectorAdd = true;
}
public function get EnemyNdx():Number{
return (eNdx);
}
private function killEnemyHandler(evt:Event):void{
var po:uint;
checkMeForTarget();
if (partObjs.length > 0){
po = 0;
while (po < partObjs.length) {
if (evt.target == partObjs[po]){
weaponAppearCounters[evt.target.place] = 0;
};
po++;
};
};
if (evt.target == enemyContainer.parent.parent){
deleteMe();
};
}
public function get position():Point{
var posPoint:*;
var posPoint2:*;
posPoint = new Point(x, y);
posPoint2 = new Point(enemyContainer.localToGlobal(posPoint).x, enemyContainer.localToGlobal(posPoint).y);
return (posPoint2);
}
private function moveBySpiral():MyVector{
if ((((angleTransform(((moveVector.angle - 90) - toSatelliteVector.angle)) > 2)) && (!(setDirection)))){
moveVector.angle = (moveVector.angle - angleNdx);
};
if ((((angleTransform(((moveVector.angle - 90) - toSatelliteVector.angle)) < -2)) && (!(setDirection)))){
moveVector.angle = (moveVector.angle + angleNdx);
};
if ((((Math.abs(angleTransform(((moveVector.angle - 90) - toSatelliteVector.angle))) < 2)) && (!(setDirection)))){
setDirection = true;
};
if (setDirection){
moveVector.angle = (toSatelliteVector.angle + ((90 - sumDecreaseAngle) * direction));
if (sumDecreaseAngle < 90){
sumDecreaseAngle = (sumDecreaseAngle + angleDecrease);
};
};
return (moveVector);
}
private function checkCollision():void{
var sat:uint;
toSatelliteVector.reset((target.x - position.x), (target.y - position.y));
checkMeForTarget();
sat = 0;
while (sat < GameContainer.satellitesArray.length) {
hitVector.reset((GameContainer.satellitesArray[sat].x - x), (GameContainer.satellitesArray[sat].y - y));
if (hitVector.length < GameContainer.satellitesArray[sat].radius){
if (isTarget){
dispatchEvent(killTargetEvent);
};
dispatchEvent(hitFriendEvent);
GameContainer.satellitesArray[sat].getDamage(enemyDamage);
target = GameContainer.satellitesArray[sat];
toSatelliteVector.reset((target.x - position.x), (target.y - position.y));
if (GameContainer.satellitesArray[sat].armour > 0){
dispatchEvent(kilEnemyEvent);
addExplosion("hit", GameContainer.satellitesArray[sat]);
} else {
dispatchEvent(kilEnemyEvent);
addExplosion("kill", GameContainer.satellitesArray[sat]);
};
deleteMe();
};
sat++;
};
}
public function getChild(ndx:Number):Object{
return (childType[ndx]);
}
public function navigate():Boolean{
return (forAutoNavigate);
}
private function addExplosion(type:String, hitObj:MovieClip=null):void{
var v1:MyVector;
if ((((type == "kill")) || ((hitObj == null)))){
new BmpMovie((getDefinitionByName(enemyModel.exploseSkin) as Class), gameContainer, position.x, position.y, (Math.random() * 360));
v1 = new MyVector((this.position.x - HeroObject.x), (this.position.y - HeroObject.y));
if (enemyModel.type != "boss"){
SoundFX.play(null, ("s_b" + Math.round(((Math.random() * 6) + 1))), null, GameParams.getPin(this.position.x), GameParams.getVol(v1.length));
} else {
SoundFX.play(null, "s_b_boss", null, GameParams.getPin(this.position.x), 1);
};
} else {
if (type == "hit"){
};
};
}
public function get freez():Boolean{
return (freezState);
}
private function moveBySector():MyVector{
if (((((startAngle - toSatelliteVector.angle) > -(sectorAngle))) && (((startAngle - toSatelliteVector.angle) < sectorAngle)))){
if (backRotation == direction){
backRotation = -(direction);
};
moveVector.angle = (toSatelliteVector.angle + (90 * direction));
} else {
if (backRotation != direction){
direction = backRotation;
};
moveVector.angle = (moveVector.angle + (backRotation * endRotation));
};
return (moveVector);
}
private function initParts(evt:Event):void{
}
private function killHeroHandler(evt:Event):void{
removeTarget = true;
}
public function get mode():String{
return (enemyMode);
}
public function getEnemy():MovieClip{
return (this);
}
public function getShootAngles(ndx:Number):Number{
return (shootAngles[ndx]);
}
public function set EnemyNdx(ex:Number):void{
eNdx = ex;
}
public function getShootPowers(ndx:Number):Number{
return (shootPowers[ndx]);
}
private static function angleTransform(foo:Number):Number{
if (foo > 180){
foo = (foo - 360);
} else {
if (foo < -180){
foo = (foo + 360);
};
};
return (foo);
}
}
}//package sources
Section 201
//Explosion (sources.Explosion)
package sources {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import sources.math.*;
public class Explosion extends MovieClip {
private var partBody:MovieClip;
private var ClassPart:Class;
private var exploseBody:MovieClip;
private var gameContainer:MovieClip;
private var posPoint:Point;
public static const timeLineEventStr:String = "END_EXPLOSION";
public function Explosion(){
super();
}
public function get position():Point{
return (posPoint);
}
private function addPart(part:Class):MovieClip{
ClassPart = part;
partBody = new ClassPart();
addChild(partBody);
return (partBody);
}
public function set position(pos:Point):void{
posPoint = pos.clone();
x = gameContainer.globalToLocal(posPoint).x;
y = gameContainer.globalToLocal(posPoint).y;
posPoint = pos.clone();
}
public function initExplosion(obj:Object, container:MovieClip, targetVector:MyVector=null):void{
gameContainer = container;
exploseBody = addPart(obj.skin);
exploseBody.width = (exploseBody.height = (obj.rad * 2));
if (targetVector != null){
exploseBody.width = (exploseBody.height = (((targetVector.length * 2) * Math.PI) / (360 / 30)));
exploseBody.rotation = (targetVector.angle + 180);
targetVector.length = 15;
exploseBody.x = (exploseBody.x - targetVector.x);
exploseBody.y = (exploseBody.y - targetVector.y);
} else {
exploseBody.width = (exploseBody.height = (obj.rad * 2));
};
exploseBody.addEventListener(timeLineEventStr, removeExplosion);
position = obj.pos;
}
private function removeExplosion(evt:Event):void{
exploseBody.removeEventListener(timeLineEventStr, removeExplosion);
exploseBody.stop();
removeChild(exploseBody);
gameContainer.removeChild(this);
}
}
}//package sources
Section 202
//FriendlyObject (sources.FriendlyObject)
package sources {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import flash.utils.*;
public class FriendlyObject extends MovieClip {
public var killEvent:Event;
private var maxArmour:Number;
private var objHealth:Number;
private var partBody:MovieClip;
private var objArmour:Number;// = 0
private var kill:Boolean;// = false
private var ClassPart:Class;
private var gameContainer:MovieClip;
private var Radius:Number;
private var posPoint:Point;
private var clrTarnsform:ColorTransform;
public var skinBody:MovieClip;
private var maxHealth:Number;
private static var weaponRotation:Number;
public function FriendlyObject(){
objArmour = 0;
kill = false;
killEvent = new Event("KILL_FRIEND", true);
super();
}
public function init(obj:Object, container:MovieClip){
gameContainer = container;
skinBody = addPart((getDefinitionByName(obj.skinBody) as Class));
position = obj.position;
radius = obj.radius;
health = obj.maxHealth;
maxHealth = obj.maxHealth;
if (obj.armour != null){
armour = obj.armour;
} else {
armour = obj.maxArmour;
};
maxArmour = obj.maxArmour;
}
public function get position():Point{
return (posPoint);
}
public function set radius(ObjRadius:Number):void{
Radius = ObjRadius;
skinBody.width = (skinBody.height = (Radius * 2));
}
public function setColor(mc:MovieClip, clr:uint):void{
clrTarnsform = new ColorTransform();
clrTarnsform.color = clr;
mc.transform.colorTransform = clrTarnsform;
}
public function addPart(part:Class):MovieClip{
ClassPart = part;
partBody = new ClassPart();
addChildAt(partBody, 0);
return (partBody);
}
public function set killFriend(kl:Boolean){
kill = kl;
}
public function get health():Number{
return (objHealth);
}
public function get armour():Number{
return (objArmour);
}
public function set position(pos:Point):void{
posPoint = pos.clone();
x = gameContainer.globalToLocal(posPoint).x;
y = gameContainer.globalToLocal(posPoint).y;
posPoint = pos.clone();
}
public function get radius():Number{
return (Radius);
}
public function set angle(rt:Number):void{
weaponRotation = rt;
}
public function get body():MovieClip{
return (skinBody);
}
public function delPart(part:MovieClip):void{
this.removeChild(part);
}
public function get killFriend():Boolean{
return (kill);
}
public function get angle():Number{
return (weaponRotation);
}
public function set health(hl:Number):void{
objHealth = hl;
if (objHealth < 0){
objHealth = 0;
};
}
public function get armProp():Number{
return ((armour / maxArmour));
}
public function get healthProp():Number{
return ((health / maxHealth));
}
public function set armour(arm:Number):void{
if (objArmour >= 0){
objArmour = arm;
};
if (objArmour < 0){
health = (health + objArmour);
objArmour = 0;
};
}
}
}//package sources
Section 203
//GameContainer (sources.GameContainer)
package sources {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import sources.math.*;
import flash.utils.*;
import sources.EventExtend.*;
import com.gamezhero.api.as3.*;
public class GameContainer extends MovieClip {
private var shootInterval:Number;
private var levelMinTime:Number;
private var hitFriend:Boolean;// = false
private var hitFriendDistortionCount:Number;// = 5
private var levelMaxTime:Number;
private var GameModel:Object;
private var GameTimer2:Timer;
private var updateGame:TimerEvent;
private var reposition:Boolean;// = false
private var SP:SaveParams;
private var GameTimer:Timer;
private var healthArmourEnd:Number;
private var conditionCounter:Number;
private var planetDistortion:Number;
private var enemyObj:Enemy;
private var killHero:Boolean;// = false
private var hitFriendDistortionVector:MyVector;
private var HeroObj:Hero;
private var topContainer:MovieClip;
private var SatellitesObjArray:Array;
private var gameLevel:Number;
private var step:Number;// = 0
private var timeArrayCounter:Number;// = 0
private var healthArmourStart:Number;
private var shootCounter:Number;// = 0
private var gameBackGround:MovieClip;
private var enemyTimeArray:Array;
private var ConditionModel:Object;
private var BExplosion:BulletExplosion;
private var conditionType:String;
private var wave:TextWave;
private var levelMinScore:Number;
private var stepY:Number;
private var conditionString:String;// = ""
private var SatellitesObj:MovieClip;
private var stepX:Number;
private var pauseRelease:Boolean;// = true
private var levelMaxScore:Number;
private var BLInd:BLIndicator;
private var GTrack:GameTrack;
private var addEnemyInterval:Number;
private var stepsNumber:Number;
private var conditionAmount:Number;
private var enemyCounter:Number;// = 0
private var gameSprite:MovieClip;
private var updateBitmap:Event;
private var gameSpeed:Number;
private var pushCounter:Boolean;
private var currentLevel:Number;
private var TViewer:TaskViewer;
private var endLevelTimeWaiting:Number;
public var bulletContainer:MovieClip;
private var levelsNumber:Number;// = 0
private var stepScale:Number;
private var enemyStartPoint:Point;
public static var vulnerableSatellites:Array = new Array();
public static var satellitesArray:Array = new Array();
public static var enemysArrayE:Array = new Array();
public static var enemysArray:Array = new Array();
public function GameContainer(){
updateBitmap = new Event("TIME_PROGRESS_2", false);
updateGame = new TimerEvent("TIME_PROGRESS", false);
conditionString = "";
timeArrayCounter = 0;
reposition = false;
killHero = false;
step = 0;
enemyCounter = 0;
levelsNumber = 0;
shootCounter = 0;
pauseRelease = true;
hitFriend = false;
hitFriendDistortionVector = new MyVector(0.1, 0.1);
hitFriendDistortionCount = 5;
super();
}
private function hitFriendHandler(evt:Event=null):void{
hitFriendDistortionCount = 0;
planetDistortion = evt.target.getDamage();
}
private function addEnemys(groupEnemys:Array):void{
var z:*;
z = 0;
while (z < groupEnemys.length) {
if (groupEnemys[z].isTarget){
addEnemy(groupEnemys[z].type, groupEnemys[z].x, groupEnemys[z].y, false, null, groupEnemys[z].isTarget);
} else {
addEnemy(groupEnemys[z].type, groupEnemys[z].x, groupEnemys[z].y, false, null, false);
};
z++;
};
}
private function showPos(evt:MouseEvent):void{
}
private function addSatellites():void{
var sat:uint;
satellitesArray = new Array();
vulnerableSatellites = new Array();
SatellitesObjArray = GameParams.getSatellitesArray();
satellitesArray.push(HeroObj);
sat = 0;
while (sat < SatellitesObjArray.length) {
SatellitesObj = new Satellite();
satellitesArray.push(addChild(SatellitesObj));
SatellitesObj.initSatellite(SatellitesObjArray[sat], this, sat);
if (SatellitesObjArray[sat].vulnerable){
vulnerableSatellites.push(SatellitesObj);
};
sat++;
};
}
public function pushGame(container:MovieClip, gamesprt:MovieClip, bg:MovieClip):void{
var satL:uint;
pushCounter = false;
topContainer = container;
gameSprite = gamesprt;
gameBackGround = bg;
SP = new SaveParams();
GameParams.gameMode = SP.getPlayMode();
GameParams.levelEnemyScore = 0;
setGameLevel();
InitContainer();
initListeners();
setConditions();
addTasker();
healthArmourStart = 0;
satL = 0;
while (satL < satellitesArray.length) {
healthArmourStart = (healthArmourStart + (satellitesArray[satL].armour + satellitesArray[satL].health));
satL++;
};
}
private function addHero():void{
bulletContainer = new MovieClip();
HeroObj = new Hero();
addChild(bulletContainer);
this.setChildIndex(bulletContainer, 0);
addChild(HeroObj);
this.setChildIndex(HeroObj, 1);
HeroObj.initHero(GameParams.getHeroCurrentState(), this);
}
private function deactivateHandler(evt:Event){
if (GameTimer.running){
dispatchEvent(new Event("GAME_PAUSE", true));
pauseRelease = true;
};
}
public function gamePlay(evt:Event=null):void{
trace("gamePlay");
GameParams.pauseMenuIsActive = false;
GameTimer.start();
pauseRelease = false;
}
private function removeListeners():void{
stage.removeEventListener(Event.DEACTIVATE, deactivateHandler);
stage.removeEventListener(KeyboardEvent.KEY_DOWN, KeyPress);
stage.removeEventListener(KeyboardEvent.KEY_UP, KeyRelease);
stage.removeEventListener("GAME_PAUSE", gamePause);
stage.removeEventListener("GAME_RESUME", gamePlay);
stage.removeEventListener("REMOVE_ALL", clearContainer);
removeEventListener("KILL", killHeroHandler);
removeEventListener("KILL_SATELLITE", killHeroHandler);
removeEventListener("PUSH_CHILD", addEnemyChild);
removeEventListener("KILL_ENEMY", checkCondition);
removeEventListener("HIT_FRIEND", hitFriendHandler);
GameTimer2.removeEventListener(TimerEvent.TIMER, MoveGame1);
GameTimer2.stop();
GameTimer.removeEventListener(TimerEvent.TIMER, MoveGame);
GameTimer.stop();
}
private function setGameLevel():void{
GameParams.containerCurrentLevel++;
GameParams.setCurrentLevel();
GameModel = GameParams.LevelModel;
}
public function getCondition():String{
return (conditionString);
}
private function resumeHandler(evt:Event):void{
currentLevel = GameParams.containerCurrentLevel;
timeArrayCounter = 0;
getEnemyTimes();
TViewer.removeEventListener("RESUME_GAME", resumeHandler);
stage.addEventListener(KeyboardEvent.KEY_DOWN, KeyPress);
stage.addEventListener(KeyboardEvent.KEY_UP, KeyRelease);
GameTimer.start();
}
private function getEnemyTimes():void{
var i:*;
enemysArray = new Array();
enemyTimeArray = new Array();
for (i in GameParams.LevelModel.GetEnemy) {
enemyTimeArray.push(GameParams.LevelModel.GetEnemy[i].pos);
};
}
private function clearContainer(evt:Event):void{
removeListeners();
}
private function setConditions():void{
conditionCounter = 0;
conditionType = GameParams.getLevelCondition().type;
conditionAmount = GameParams.getLevelCondition().amount;
switch (conditionType){
case "Hits":
conditionString = ("HITS : " + (conditionAmount - conditionCounter));
break;
case "KillTarget":
conditionString = ("TARGETS : " + (conditionAmount - conditionCounter));
break;
case "TimeOut":
conditionString = ("TIME : " + (conditionAmount - conditionCounter));
break;
};
}
private function KeyRelease(evt:KeyboardEvent):void{
pauseRelease = true;
}
private function MoveGame1(evt:TimerEvent):void{
dispatchEvent(updateBitmap);
evt.updateAfterEvent();
}
private function checkCondition(evt:Event=null):void{
if (HeroObj.health > 0){
if (!pushCounter){
switch (conditionType){
case "Hits":
if (evt != null){
conditionCounter++;
conditionString = ("HITS : " + (conditionAmount - conditionCounter));
if (conditionCounter >= conditionAmount){
pushEndCounter();
};
};
break;
case "KillTarget":
if (evt != null){
if (evt.target.getTarget()){
conditionCounter++;
conditionString = ("TARGETS : " + (conditionAmount - conditionCounter));
};
if (conditionCounter >= conditionAmount){
pushEndCounter();
};
};
break;
case "KillAll":
conditionString = " ";
if ((((timeArrayCounter == enemyTimeArray.length)) && ((GameContainer.enemysArrayE.length == 0)))){
pushEndCounter();
};
break;
case "TimeOut":
if ((shootCounter % Math.round((1000 / GameParams.containerGameSpeed))) == 0){
conditionCounter++;
conditionString = ("TIME : " + (conditionAmount - conditionCounter));
};
if (conditionCounter == conditionAmount){
pushEndCounter();
};
break;
};
};
};
}
private function initListeners():void{
stage.addEventListener(Event.DEACTIVATE, deactivateHandler);
stage.addEventListener("GAME_PAUSE", gamePause);
stage.addEventListener("GAME_RESUME", gamePlay);
stage.addEventListener("REMOVE_ALL", clearContainer);
addEventListener("KILL", killHeroHandler);
addEventListener("KILL_SATELLITE", killHeroHandler);
addEventListener("PUSH_CHILD", addEnemyChild);
addEventListener("KILL_ENEMY", checkCondition);
addEventListener("HIT_FRIEND", hitFriendHandler);
GameTimer2.addEventListener(TimerEvent.TIMER, MoveGame1);
GameTimer2.start();
GameTimer.addEventListener(TimerEvent.TIMER, MoveGame);
GameTimer.start();
}
private function addTasker():void{
GameTimer.stop();
TViewer = new TaskViewer();
topContainer.addChild(TViewer);
TViewer.initViewer(topContainer);
TViewer.addEventListener("RESUME_GAME", resumeHandler);
}
private function addTrack():void{
var GTrack:GameTrack;
GTrack = new GameTrack(topContainer, gameSprite, this);
}
public function gamePause(evt:Event):void{
trace("gamePause");
GameParams.pauseMenuIsActive = true;
GameTimer.stop();
pauseRelease = false;
}
private function InitContainer():void{
GameTimer2 = new Timer(GameParams.containerGameSpeed2, 0);
GameTimer = new Timer(GameParams.containerGameSpeed, 0);
timeArrayCounter = 0;
levelMaxTime = GameModel.levelMaxTime;
levelMinTime = GameModel.levelMinTime;
levelMaxScore = GameModel.levelMaxScore;
levelMinScore = GameModel.levelMinScore;
currentLevel = GameParams.containerCurrentLevel;
GameParams.maxEnemiesOnStage = GameModel.maxLevelEnemy;
addWave(("LEVEL " + GameParams.containerCurrentLevel));
addHero();
addSatellites();
initIndicators();
addTrack();
getEnemyTimes();
}
private function addWave(waveText:String):void{
wave = new TextWave();
topContainer.addChild(wave);
wave.showWave(waveText, this, topContainer);
}
private function setGameControl():void{
if (stage != null){
};
}
private function pushEndCounter():void{
var val:Number;
levelMaxTime = GameModel.levelMaxTime;
levelMinTime = GameModel.levelMinTime;
levelMaxScore = GameModel.levelMaxScore;
levelMinScore = GameModel.levelMinScore;
val = (levelMinScore + (((levelMaxScore - levelMinScore) * (levelMaxTime - shootCounter)) / (levelMaxTime - levelMinTime)));
if (shootCounter < levelMinTime){
GameParams.score = (GameParams.score + levelMaxScore);
} else {
if (shootCounter > levelMaxTime){
GameParams.score = (GameParams.score + levelMinScore);
} else {
if ((((shootCounter < levelMaxTime)) && ((shootCounter > levelMinTime)))){
GameParams.score = (GameParams.score + val);
};
};
};
GameParams.score = (Math.round(GameParams.score) + GameParams.levelEnemyScore);
trace(("!!!!!!!!!!!!!!!!!!!!!!!!!!!!! " + shootCounter), val);
endLevelTimeWaiting = GameParams.endLevelTime();
pushCounter = true;
}
private function KeyPress(evt:KeyboardEvent):void{
if ((((((evt.charCode == 27)) && (GameTimer.running))) && (pauseRelease))){
dispatchEvent(new Event("GAME_PAUSE", true));
} else {
if ((((((evt.charCode == 27)) && (!(GameTimer.running)))) && (pauseRelease))){
dispatchEvent(new Event("GAME_RESUME", true));
};
};
}
private function addEnemy(type:String, X:Number, Y:Number, isChild:Boolean, Parent:MovieClip, isTrg:Boolean, ndx:Number=0):void{
enemyObj = new Enemy();
enemysArray.push(addChild(enemyObj));
enemyObj.InitEnemy(type, X, Y, this, HeroObj, isChild, Parent, isTrg, ndx);
if (enemyObj.mode == "enemy"){
enemysArrayE.push(enemyObj);
enemyObj.EnemyNdx = (enemysArrayE.length - 1);
};
}
private function initIndicators():void{
BLInd = new BLIndicator();
topContainer.addChild(BLInd);
BLInd.initIndicators(this, topContainer, HeroObj);
}
private function MoveGame(evt:TimerEvent):void{
var tac:uint;
if (pushCounter){
if (endLevelTimeWaiting <= 0){
EndLevel();
};
endLevelTimeWaiting--;
};
if (hitFriendDistortionCount < 5){
hitFriendDistortionCount++;
hitFriendDistortionVector.length = (Math.random() * planetDistortion);
hitFriendDistortionVector.angle = Math.round((Math.random() * 360));
gameBackGround.x = (topContainer.x = (x = hitFriendDistortionVector.x));
gameBackGround.y = (topContainer.y = (y = hitFriendDistortionVector.y));
} else {
gameBackGround.x = (topContainer.x = (x = 0));
gameBackGround.y = (topContainer.y = (y = 0));
};
if (enemysArrayE.length >= GameParams.maxEnemiesOnStage){
tac = timeArrayCounter;
while (tac < enemyTimeArray.length) {
var _local3 = enemyTimeArray;
var _local4 = tac;
var _local5 = (_local3[_local4] + 1);
_local3[_local4] = _local5;
tac++;
};
};
shootCounter++;
if ((((((enemyTimeArray[timeArrayCounter] == shootCounter)) && ((timeArrayCounter < enemyTimeArray.length)))) && (!(killHero)))){
addEnemys(GameParams.LevelModel.GetEnemy[timeArrayCounter].enemys);
timeArrayCounter++;
};
checkCondition();
dispatchEvent(updateGame);
evt.updateAfterEvent();
}
private function EndLevel():void{
var satL:uint;
var arr:Array;
healthArmourEnd = 0;
satL = 0;
while (satL < satellitesArray.length) {
healthArmourEnd = (healthArmourEnd + (satellitesArray[satL].armour + satellitesArray[satL].health));
satL = (satL + 1);
};
GameParams.levelHealthNdx = Math.round(((5 * healthArmourEnd) / healthArmourStart));
arr = (GameParams.uncryptObj("eNrjZGVkYWJhBgAAigAd") as Array);
GameParams.Money = (GameParams.Money + Math.round((((arr[0] * GameModel.levelFee) / arr[1]) + ((GameModel.levelFee / arr[1]) * (healthArmourEnd / healthArmourStart)))));
dispatchEvent(new Event("CONDITION_EXECUTED", true));
if (GameParams.containerCurrentLevel < GameParams.levelsNumber){
GameParams.saveGame();
};
goShop();
step = 0;
if (GamezheroGlobal.getDomain() == "kongregate.com"){
GameParams.kongregate.scores.submit(GameParams.score);
//unresolved jump
var _slot1 = e;
};
}
private function killHeroHandler(evt:Event=null):void{
if (evt != null){
trace((evt.target + " gameOver"));
} else {
trace("null gameOver");
};
killHero = true;
GameParams.score = Math.round((GameParams.score - 100));
dispatchEvent(new Event("GAME_OVER", true));
}
private function gameOver(evt:Event):void{
GameParams.pauseMenuIsActive = true;
GameTimer.stop();
alpha = 0.2;
}
public function resetContainer():void{
stepScale = ((GameModel.gameScale - scaleX) / stepsNumber);
}
private function addEnemyChild(evt:EventX):void{
addEnemy(evt.target.getChild(evt.ndx).type, (evt.target.position.x + evt.target.getChild(evt.ndx).x), (evt.target.position.y + evt.target.getChild(evt.ndx).y), true, evt.target.getEnemy(), false, evt.ndx);
}
private function goShop():void{
dispatchEvent(new Event("NEXT_LEVEL", true));
}
}
}//package sources
Section 204
//GameHelp (sources.GameHelp)
package sources {
import flash.events.*;
import flash.display.*;
import sources.Buttons.*;
public class GameHelp extends MovieClip {
public var setDontShow:MovieClip;
public var playAgain:PlayButton;
private static var SP:SaveParams = new SaveParams();
public function GameHelp(){
super();
addEventListener(Event.ADDED_TO_STAGE, listenAddedToStage);
}
private function saveHandler(evt:MouseEvent):void{
trace((setDontShow.chSaver.currentLabel + " setDontShow.chSaver.currentLabel"));
if (setDontShow.chSaver.currentLabel == "NOT_SAVE"){
setDontShow.chSaver.gotoAndStop("SAVE");
SP.setSect("GH");
trace("save");
} else {
setDontShow.chSaver.gotoAndStop("NOT_SAVE");
SP.setSect(null);
trace("don't_save");
};
}
private function initListeners():void{
if (GameParams.currSect == "GH"){
setDontShow.chSaver.addEventListener(MouseEvent.CLICK, saveHandler);
} else {
setDontShow.visible = false;
GameParams.currSect = "CM";
};
}
private function listenAddedToStage(evt:Event):void{
initListeners();
}
}
}//package sources
Section 205
//GameOver (sources.GameOver)
package sources {
import flash.events.*;
import flash.display.*;
import com.gamezhero.api.as3.*;
public class GameOver extends MovieClip {
public function GameOver(){
var skin:Object;
super();
skin = {border:{width:4, color:0xCCCC00, alpha:100}, background:{topColor:0xCCCC00, bottomColor:0xCCCC00, topAlpha:50, bottomAlpha:20, cornerRadius:20}, language:"ENG"};
GamezheroApi.score(this, "160198209155170203151168161129146152161174168151169158158149169153159154212164154196211149170206139164159089146", GameParams.score, 146, 155, submitAction, continueAction, errorAction, skin);
}
private function playAgainHandler(evt:MouseEvent):void{
dispatchEvent(new Event("PLAY_AGAIN", true));
}
private function errorAction():void{
trace("errorAction");
dispatchEvent(new Event("GO_MENU", true));
}
private function submitAction():void{
trace("submitAction");
dispatchEvent(new Event("GO_MENU", true));
}
private function continueAction():void{
trace("continueAction");
dispatchEvent(new Event("GO_MENU", true));
}
}
}//package sources
Section 206
//GameParams (sources.GameParams)
package sources {
import flash.display.*;
import flash.geom.*;
import flash.utils.*;
import sources.HelpClasses.*;
import com.kongregate.as3.client.*;
import com.base64.*;
public class GameParams {
public static const SWAP_WEAPON_7 = 55;
public static const QUALITY_HIGH = StageQuality.MEDIUM;
public static const SWAP_WEAPON_3 = 51;
public static const SHOOT_KEY = 90;
public static const SWAP_WEAPON_8 = 56;
public static const TRACK_MEDIUM:Number = 28.5714285714286;
public static const SWAP_WEAPON_5 = 53;
public static const SWAP_WEAPON_2 = 50;
public static const GAME_FPS_MEDIUM:Number = 24;
public static const TRACK_SCALE_HIGH:Number = 0.5;
public static const GAME_SLOW:Number = 28.5714285714286;
public static const PAUSE_KEY = 27;
public static const GAME_FPS_SLOW:Number = 24;
public static const GAME_MEDIUM:Number = 22.2222222222222;
public static const pauseMenuTexts:Array = ["Play More Games", "Continue Game", "Exit Games", "Sound Control", "Music Control"];
public static const GAME_FAST:Number = 22.2222222222222;
public static const TRACK_SCALE_LOW:Number = -1;
public static const SWAP_WEAPON_NEXT = 81;
public static const TRACK_SLOW:Number = 28.5714285714286;
public static const INTERFACE_FPS:Number = 35;
public static const TRACK_SCALE_MEDIUM:Number = 0.25;
public static const GAME_FPS_FAST:Number = 24;
public static const MOVE_WEAPON_RIGHT = 68;
public static const SWAP_WEAPON_PREV = 69;
public static const QUALITY_LOW = StageQuality.LOW;
public static const QUALITY_MEDIUM = StageQuality.MEDIUM;
public static const MOVE_WEAPON_LEFT = 65;
public static const TRACK_FAST:Number = 28.5714285714286;
public static const SWAP_WEAPON_1 = 49;
public static const SWAP_WEAPON_4 = 52;
public static const SWAP_WEAPON_6 = 54;
public static var maxSoundVolume:Number = 0.15;
public static var EnemyLevels:Object = GameParams.uncryptObj("eNrNW11oW9cd15WOrq1rRbYTJa6bxFGqznNjK4uvbTUtxklcW5WHk5jEGM+UqbJ1E7uTJSPJqZOVwHU7OuhDR7qXjT4X8jIGe1n3Mtj6MljDIDA6RmHpOkKhbG3Zur1t50Pn6H/uuVe6ctwyPaTJ+Z1zz//7694aXVr/bMnavDlv3bCKuVFDO5CvbJa3K0jrqm5ZViF87q9j9HegkN/MX7fw+ma5ZN1E8T5rZ6tYrlpXv7dR0k9Y5CGzdGWjXBrtWlvfKBYMTTuU39qy8pVLhZ3wubs/Ib+fHqJ7L5YLlt5F/9oPnmTq0d586XrRoic+/j35vd+/Wb5hbVql2uLNLcvQumr4P1W9e/FyLjt75TKmdK1csVC8v7BRvdC47nfsuv782ppVtCr5GiZMEHG4ul5+OWvli7X1YKRKWOhryGGuaytfqVUx+dq3oHRyVWutVq7kxs6kDC2INIQ0HWmdKG7o0Rje3SMef1CPH9GjjwkOHje0Pnb4AmEODRwqbFTwvzFJ6L/4d0w/cHX2ucXLV7QEij8haH9SPHAwOKSfGnFSNN6gaJhQhChFqBMdNpwqGY9FwpqhhQs1lCLMl7cWyi9bFRSKEGnqpw/ksdpLNWSEdghF/6R7aoxa/O+boZt0GT/iWZSaRKEp3UM0w+eRMU33ziC7I4OiTrGclcRyBg2YSDumj2POhyTO321wDmx0bolKAVrtOGM9fO4vAfrjEjjLWOb0ngaEEY4yToay7VF+TB9oRvO3KZ3HJW2ZPihFlJCwN6WIshJum9KB5pR62FXKaVdfsVSpPTCXGG8t3mz7fggNroWrpdwsfCK1lzvDkKk9XTu8x2v9sfqUrP2tjUq+CFQf7ERDRPXqjbL2jtLYPWOtVax81Qqf+/GtB8//LP59UwS5hbkrF+YVY7zr1OtTsgga5LQngGWFgpW9iWK4fVHAuzV2cQumYUybIBeGcaT4E9ulozC91xHVJ2KRDuprdpQ6G3yESR0vMINSGdQLNxU4gCVyn/rrPxg8ToOLgAMZFHDyuOoSWEwvtkBKXapHw0uzF7+TW5i/cGl2kUVD++0EQjgQxjvRvR6i03p0yVBaYPhME44K02iIUoap/gBsfIlCZLGBOkh3iM5scNK3TguBhXwlv2lo08ikD7h3nC3Pb5QsWiGcoMRkxWLHyxsFZEbWrY0aCmE5vL7eEERdOE+iwGBoyOjSNEXDaUMbDFLW9U70g8mTW9vV9edI1XShNmPla+shbOxcu4FJFJ7S588jjfL4rxm0k0HdHhD+84eUgc+VDd0uSu0uWds1bOKKgNJYQJ+wXSUglS29UkPmDcyxod9OoEmVZxGnT1zD9c52rXwpf2Pjer5myZl8aY7KJHJx7tKskIXZiQK3MOuv1mKRk5z+4JT+IqW/v06/c72PrkeU9V663qusM+Pu81jvV9Yx3//2OEK8x+MWDH3iQRiGHnrwIk6RS72vE17rSid5iAd35GoFinif6vW+rq9Bp8PXig3n8rKdaALZWTeHsQPYTpiv5Taxm+WI83lmheFHywqar5RQIJfgeHzuAY/GOAsMGHrR5a5iy9Lrrnthy9zhG4uzVxdzz12+uDA/u5yj8RI6x72eW0HmHS4Xo8CehG3Y0ZEIsdGTFes6jgGsVVrc2LTwRYdIK8TaAH1KP1wP4BeuLLIsgS348Fq5VLu0vbmKuwkNP8WO4WN2D9luHxS77DgKNgNDzUAkF9Lp3BiVSfjXd7k+aAwlornXw4PmziQypnRYTJm56vaWVbmWr9bOo/g0MmiwfId7oR2cRB346sc4KPyTPaoO4CNfzqAVKuQvJSW8ckS//chBk5r/cRgmc6tKK5EmTU8TCbAcagqyBziz9zlLBYF1c+yeMzXsHz/245SFb8rKqFXKpevEtRKqayUd2TpnuvianWjH2Y5DZ8tVlZDCKaJ1SVwlyU48Mgn2E/TWl+Tcf4vl+gMgXycBXavbxaJVoxEXK8qeAlkD77QHBXLKFWH2iv+8UzdZ7x23m++wgxlkeIElgjmEs7/WM+qiqxxxZqKvCK7OddS5z4pKSlfyu4K8EdiPFGAbSvttOtrv9u5zdNCtLrYfq1+B9pulJEsW05evXs1N5EgegZnszQWeyTp4HR+WG5inaQp4HMRhtsc+w0cKn9BCuN8LE5XwQ5mdCKEl1CxdYoablicnKZnT5Wq1zlkzHQ7vUYeaPwXKeWGiaV4IOfKC0chzX2ngh6aQlk3h9XVuCwVOH85NpAQYoj1dgCdp/Od7Tqk9JWcJqpDRJoq1J6f0yCre5Ve76YZ2U27andiTg4bbcdCkpN9qLV+RZCfSh9AtbvHtGZrzQRP/Gqt4qW4dUmMPba1vO8MUXn+Uu8KTUuVCHlzvfBsGMEpE9toyEmU4Y+RH14h+YpF+bgO4zwhQEx1olCcukCnqtyyYX8TkZseJCZN66HW03xVY4cDuCKXCTtMCCj/oC+WhZAs7C3csOXaQh4yALdINjuMkwzPw1R6mZ3HyIx7uAhKeBviOyzzHnlQCOz41JQ8z2BSjPs5hPtbEI4b36BE+w92Y4g5wPlgA99oZR0A5dR6Z1CkMF0kUfUwOC560ZRUrp1XkGy8g4R4NK3eLWmYscpw7cFgefJ1NsVHeCMiEBT7VUddD8rro3FWolzc3iK+LEcF9DygFHkWMC575JcRGAJbd+yH7CCWhjsRl8ggYVsF70sk0AFPSMYiYimMs+nEMEQwd/mG6NRcNK23PO9xtcc9+MuzfT0hl35araO37CX179+aCXz8Zj0WSwAOOwpHQOE16TypuQhgaoNNDxpCYjTphg09VGVCg60dnUDc988ANIs/KoBMKdHIGDYEptQoNKetJ+rT36Kn33dDJDBpT1hP01M/pqd+4oQsZNAXWF4As3qan3gVomqOFDHoe2gQbIsRAUf0LVxgnmYsc6BBAkJ6ryeck2I6Sg04nfNHDCd94wYcTjrP+ZpCVS7i9CdEBoTJZGCPlk0vDeM2l53EdFNqBkHO6wEY29hli3B3Ytv94jf501MHKcd7tC13hSNRDDS3gts6sDDZBV8BLnA+oXL/gqHgrGwBS/wKcXeQoNsMYOJXl60QZMSAP5b3T01g8L7WqGBMo06Q9IOHgKCwW55TQMFEPDbzUJTEhGot0gSrQXuU0r3BeGLBD15PgJdefFRQvfgjeWsMNTPJ9FP0VSDkQFU3mnfqGlj2zn9JqYoRO7+As9DSchWrNwKAc90XSgaOL4FedeWAPf5Zc2okd4D77jIiOaJgD9ILMDw39vlzLCCjl5ht4/2dchV4o+eoAYqflCuQzcFkW+M07CgoP9oAHZoEN9rR47XjWR591I4EWWniONCAWrsONiI+HpQmjneVpPjCJAmTUAnpyPkN0e+ebdLaLqz54uO3eYcvNYtcq7q9HPWul4UerlTR/5movsfkhsNGIEqT/z23Umbpu7I+V2TtMQq8QCb01IwVi3Ko7ldG7UV3MV65btVCr13+k8SSBkAREj5fmMCamR2i0wGFvdwSHPWy89rNsOCTFRHcw2AwMNQNRMzDcDNSbgR3NwE5Nk2paOiyJISEjHcW4cXYAe1mSjQKa0ndBdIJG+2Kz7zxOOj7oHG1tULtGApVaGBRIDctzSrJ4hvBqYF7/wD+PMzivhynhC6ylOyU7x8de2DEKrABngx+9fOaB3vRGUzzuO9aJ9/Yo3ntQaUSyfF3VkviO7u+tTzXPMM/4UFVPAq34V9XcspJfxlrkF1Ka3WqWVOzb+5pETKXnFUlkH2ofn5lEclxa+keh40a5MXdxg9WEwcZlrRu0TxOjSmawfwNomqPYJI/yuVEnHKGI7PARhNMgGAy0cvozPizpmNTtu1oS+AxMNSSztSHtxr9GQxpTNUnbkCQcUCTl+oC9T5k/j4K0dV7hwcCxLjTyOe+5OjjaQ5v7Abd1MRL4VB78BXkHN+S2LrrCT1specyHkgex+I60EdqXFDWP+lBz4mtU8zigMDdNX7DXx2Kd9FNLg3aariHiPyw5efW8htv99TOD4gVJ/aV+49smyeLo7Lgbxo5uOXYwbcsZvDGNEQPbSRAAHBAzqwE4w1FDx4cQhqEj2cqqTB9WNZ5AO/4HBMtzasEwRuQUgt/Th9z+34exxnxTqIK/QGKfzNnjLia3+2w7X9EfhfOfOaDTunmN1u0rSlOQp32h4F4Na/cMK9ZXyUX9WCi/5e1MvxyuDDF6E7HiDjAUF/htEIBMASPZWL50hVf4JyONgR+zokIGxV2Bkktm2h30GaWi7RjUEpw4sY+SwcQpLgZOEf7aQDwKR6vTbh8ju+6Rv0om2yZpAS49YkgFxLmhtj+vbPYxsh1VAw51pIMw4BxUAg4SX1fAwtYUI3QBQFNxYnF5Ei1KXjFV/kAeRosNOy5i8G0VQf/TlGXuvNr/ABUXMIE=");
public static var soundVolume:Number = 0.15;
public static var LevelModel:Object;
public static var ArmourHealth:Object = GameParams.uncryptObj("eNpdzr0LgmAQx3EvfkWeORW4NTeWvVjgIkEELS4uLvGQQlJq6BP056fZA/Js3/vAcccW2edUPOXddIhpmotPN8I1b2Ut4TY6gId/+CoCFScVFxWhikhFrOKqIgGRHVR5+a5+h836kRVkiwYKCcN5pVVUZPLYvmB0S+ORKap8xeAJhn1yGTON1oy5RhvGQqMtw9Vox/A18hgnjfaMUKMDI+6R1b66ZCStEdEXsEEv6Q==");
private static var lInfo:Boolean;
public static var enemysArray:Array = new Array();
public static var weaponSpeedMultyplierMS:Number = 1;
public static var repositionTime:Number = 50;
public static var Satelittes:Object = GameParams.uncryptObj("eNrj4maUdsopTQ1OLEnNycksSeViFEzMKchI9EupYLVfORMEZnEWZ2fmsUknIavjLUpMySwtZpHjzUhNzCnJYNFglEUxyIiLkQluAgsbGweLHBdQkbx7UWpqHi5V8umoshwsIlwscmgmG2KYDFGEajKqIllUg6FaGAFPK0/+");
public static var minSoundVolume:Number = 0;
private static var gameModel:Object;
public static var gameDimensions:Object = {width:600, height:600};
public static var levelHealthNdx:Number;
public static var pauseMenuIsActive:Boolean = false;
public static var IndicatorModel:Object = {hline:{body:healthLine, x:(gameDimensions.width - 170), y:20, wid:150, heit:5}, aline:{body:armourLine, x:(gameDimensions.width - 170), y:30, wid:150, heit:5}, pline:{body:powerLine, x:(gameDimensions.width - 170), y:40, wid:150, heit:5}, sind:{body:ScoreIndicator, x:0, y:0}, bind:{x:(gameDimensions.width - 95), y:45}, cind:{body:ConditionPanel, x:100, y:20}};
public static var standardSpeed:Number = 10;
public static var levelEnemyScore:Number;
public static var gameFPS:Number;
public static var levelsNumber:uint = 25;
public static var score:Number = 0;
public static var currSect:String = null;
public static var enemyDistance:Number = 0;
public static var musicVolume:Number = 0.7;
public static var Bullets:Object = GameParams.uncryptObj("eNqdmO1vGkcQhzlYlrszEEMSXKcRxrVaWU0UcXe8VlbVWgG5kYUQOF+qqpSYdYqCAXGQOvl2qlr1z+6yx7I7twcm/obgZuY3z7zcLuae9vh8MRqRud1zTO3YnRIy6M7J1G0tbt+RGTIPB/3b/nvS6Q+GCxdFnrrz/mzeXT6GYhkyHvgfE0fM8vXw5obMyPiaoIgx/zQlOOWbf03upqOJy93E0yhquB+GY3zwjkU/nww+2Qerh7rLH459WQ321XAytjPudX9EWoM7pK2MuteTGUGJw/5iPmn1Pw7f9+ckuudOFuMBzrg998/JZG5rx81Oo/Fr7/zt5WXjqlcqF00Nocg+0p8hLYlTNzNCPpMoMnP4JBDSKmKUSKOIiSLPaebsyfbkL0rl7/MsPhTKrWIBP14FtIo6SuRjmdHwhlwNbwnykgIxjU0j0fAYxXREP0WSOL3PcGTxkxz+imp6Ts2jBfyNdgKEW8WA8u+Y5lOMzLXE79F/z7L4ZQG/0pGZjxWRd8FjO4HYcR6bJhjLymVwcgp7h8mKL2Vxrk6Aa22TOkNS92+HqzOYupIgY4WrCyfz4mda8fGq4j3fRc8WHrCOsOQhDotlhVTaYu4jS1V3Ui0tgQ8KxBBfLYd/EIzOuFVlOVPcytTRniQKA+gVFXpFhV4RvOxwOV/AqyQ86DrSIa/XOdwUSLxCAUudBGMndkJRlfuPojCkeAmAoqqiqKooquFJVUAQc2tSF1JS1UClklDebzn8u9Dwh7CyNsYLsQpVLHmIw8ZXFA8kwZZfhTgz1KQqUEMN8KTtfhTgqeJcN3pNrlMKpqQDvzW1TjXVcU0ILgLBcSh4lMOSrGk4K6lGCZiyWt0kgOWA2Pr22CurklwbOR5duAigKKkoSiqKkpggB0yQvuME2RuXyeYWtfw5X6dufAn2zuT6g7RZT5mH9a45ZR0hb1Y7ZLPa4ZvVFpRtQFmHlL1oDntISPSwMCwCQ3yvYWhyvMZ52JV5lpy3T51kwQR6TwTaMkBrPgAtX8JN2JdnodGXa5iGDx2NsmBhwCqro1GSRqMUGCpjV/w1eTpSsB2p9nkOfxRmd+HZ89A2XGF2ePZJCL8C4O89AD5/WQxg+drh4S/k8GW/+fJ8bwd2kbQbyupuKKu7oSyw2gBr8gFYeS+8hRPfDM+rBLFWAdbkTpuyHuiFlGRlABp1lUZdpVEXNJyNjkNonHTbl7+0rhodfiqlJA6m9L7CbzNxdkLVDt3paDiek9lSEs5wK3ZwzfDfwq8EDmax/RMt3H4OJUI3CNsTgmcN8EztyBM2QRry9M5oCX+UhvInYVjc2D1bDa1eHehM76gTlufRruHKfsOsxydw+vReUcOiZGhr3huhL3DSogfeE6kMvWUBaWd4LVnxU56nBY8hj7YnqnQUHQ+viRJ+H3kX2HvDusa7ZO3itdiNcd0eXpv1RMLfX+JaAM/COrwWtHK4LTR0BDMbMDPuZbaurQVSxttThvc6e9O9Dkv3Ou8zv9dh9p5XsdUZNmMLNkPFFrgkVgKnbWNHbA7AZt6LTRFfY+L1LeJ1Vbzuv7EDOCubcOoSzn9MjpM7USRVmCS8RRJWJa2Ks8Zpb7y8hOA8AnlsSiMupWHzLFYr8dtgEstRpFmYW7Iw1Sz4Hxva/9IqDWw=");
public static var enemyHere:Enemy = null;
private static var continues:Number = 2;
public static var gameQuality:String;
public static var Weapons:Array = (GameParams.uncryptObj("eNp9mM9TE2cYx7PhZU1CIDCuCMFGHCqNts5kfyTZdKwVR1CUYShYp+MwjSsuwhCSTBLAUi8bCNg6HS+9tFc99NRzz/0nvPTi2V577/vu++677z67kQvM6Oeb5/08z/sDklNSakg6a+11GrtWZ3sjntlstNasmh2f2ms+a1lP7SV73661k+ellDTW2LdbW7bVQbFke2e7Lp/dsluNFdvaUYcP1pq2/RTFk20MS8ntjUZdPn9gW81GfRH/rE61txqNzmK9Y7f2rRoazmw0GrXt+jMctdFod5A2/GSvVrM78tlb7ne1WkgeWK1dFMMfLKNYQk6lB2/GX6/n//v79Yg0Kk8J4VVVQelxFJtAWtYPUHNBeNBl10OwpqChcSQFYQ3AicP3d/5UfgzBuoJSIVgH8NCHXu6vb/4NwYaCkiHYAHDmN/L1ewguKigRgosAHiNVH74PwSUFnQnBJQArrq8rIbisIDkElwE8/uZd6qvm2xBsKgiFYBPAk5vuVwiuKGggBFcAfMGHPwkMSUFBcUJLWfkcH5ICoSdQLNPe2921Wj/I0tDBsrVry0N39urXVBwci8cHUDLpfoSS8IdeS6P4CGqOinOOZ2nYLXCOF6hV8UdILj2TkJdxgRIbB+TkAuvTyBzDadLIHFNcozhS3FnE+BzANa+rOQHXPHyO4jKbZOQ8BDie5UHmh9M6oSeQM31Xlu7JS0DHuKBDT6MBHHop4EN3NyYOeMQzdd/H1YT8GFeUYkOKnMeBinTfx4KAcx83KD7i+eiOAZz7uCbg3McqxUfJnL55h3EV4GEfOvex6fpwZ0QDUiYEKUYaIbyu1YAUw5PynAcbvhQ1IXfIzvWGpDsbKMvwpTwScC7lHsUVLsUGOJdyXcC5lA2Kj3tDcpQBeFiK4UnpfuFL0YGUrCClmEaDuLBUQErRk+JM8eSib8VMyE6CFMY2N+oeBAor+lraAs+1PGT8pOfl6A7guZf7As+9dBh/gfMvAB8WU+RiXvhiDCAmJ4gppZGMV7YYEMOPaucGTy75Yr7GhV3AhWW9TXS0HCisRMTQ49pJCwHczBMWkMPj9qF3cQQdF0CAxlaGqgLPzTiDLGD6H3q/ouM2CNDZmS8JPFNz9NBXUwRq8oKachqdodMoqOEXkbPJk8u+mvu4sAIu7OK6V1hwZWWihq7MuSoEcDV1FnCJPTtQ7zMQoHm3WVvgfTXjLGDmD3qTot5zEKCzG00SeKbm+EtfTekjasw0SmA16wE1pqemO8KTTV/NCi7sNlmZd8r0JgOFmYKau0IAV/OcBXzq7YeTyyCAqxHGzhTcXGYJs95Rc3oGJITdmJ6bXt53U/6Im0oaJWnfBTcVr7LuTZ5cCbr5jiyNPX/QyWigsApxQ58hTlMI4G6cOEuY/ZXJOTVBgsaeIvhiFRJ8OQZLuOJu6rsj6GUeJGA5UlBOxZNzMu3LMYmcASJnmL6R0ihGL6RJ4W2EX0b5rHxxYXV+/lH11rdLS/MPqsUCvmES8jn+xi/wd5abQW5b8X1VIFpmsvKlQIrGYpwmoFcgjZXkIG30ock5EKSxjklIl/rRy5DGN7ICabMPfTwMaXx1ZbLyTIBWCxiXPJrfjecXWrZ9aNev4d5EdoZcS2JnsNOVrPz5HP4FrW7tbz+zOnaVtruqkr0pNkgFha4FC3V/TVroE6bRsG46mNGrwgzcput9MvTojJMdmIGbpfXJMKIzTg9ghuGObGRGMTrjpwGYUXRHLjKjRJpHE/Bpk3KbN0b+Y9/OEd1i57SIzq02NnZY5w7FzmnAWDxYqRbZORam0bBuHhhTYUZU51iGHp3x8jHMiOocyzCiM37OwIyozrGMYnTGqxswI6pzLIN2Lk87d7Lqdu4c/be+vetdD/ZOd3s3s7aytLj8YH6VH4l4H38v9k3/uHOd9S0UVKJB3dtgQmchT3sW4svR/KspyNN+hXgzmv9lFPK0VyG+Es2/HoQ87dNlyKvu2UjxCXS65TZpcq1Z2yZ/IHLb9D+fHR3T") as Array);
public static var containerCurrentLevel:Number = 9;
public static var gameMode:String = null;
public static var trackScale:Number;
private static var money:Number = 0;
private static var timeWaiting:Number;
public static var containerGameSpeed2:Number;
public static var totalContinues:Number = 5;
public static var HeroCurrentState:Object = GameParams.uncryptObj("eNrj4maUzU2sCE9NLMjPCy5ITU1hMRJPLMrNLy3ySS1LzWFh4IXwgIxysCJOQUYuRu4ciCRnSWVBKgsDIxSIZ6Qm5pRkQHUKFmdn5jnlp1SyCWakFuWDWPJFqQX5xZklmUDLSlILilmMRItLEotKHPPSc1JZ/v//v4wRABjOLcg=");
public static var kongregate:KongregateAPI;
public static var maxEnemiesOnStage:uint;
public static var containerBulletsCounter:Number = 0;
public static var downLoadLinks:Array = new Array();
public static var weaponSpeedMultyplierKB:Number = 1;
public static var containerGameSpeed:Number;
public static var interfaceFPS:Number;
public static var bonusIndicatorPosition:Object = {x:400, y:50};
public static var containerShootCounter:Number = 0;
public function GameParams(){
super();
}
public static function loadGame():void{
var SP:SaveParams;
var lModel:Object;
SP = new SaveParams();
lModel = SP.loadLevel();
if (lModel != null){
gameModel = lModel;
};
if (gameModel != null){
HeroCurrentState.healthLevel = gameModel.healthLevel;
HeroCurrentState.armourLevel = gameModel.armourLevel;
HeroCurrentState.armour = gameModel.armour;
HeroCurrentState.weapon[0] = GameParams.clone(gameModel.weapon.w0);
HeroCurrentState.weapon[1] = GameParams.clone(gameModel.weapon.w1);
HeroCurrentState.weapon[2] = GameParams.clone(gameModel.weapon.w2);
HeroCurrentState.weapon[3] = GameParams.clone(gameModel.weapon.w3);
HeroCurrentState.weapon[4] = GameParams.clone(gameModel.weapon.w4);
HeroCurrentState.weapon[5] = GameParams.clone(gameModel.weapon.w5);
HeroCurrentState.weapon[6] = GameParams.clone(gameModel.weapon.w6);
HeroCurrentState.weapon[7] = GameParams.clone(gameModel.weapon.w7);
containerCurrentLevel = gameModel.currLevel;
money = gameModel.money;
score = gameModel.score;
};
if ((((gameModel == null)) || ((gameContinues == 0)))){
resetToStart();
saveGame();
};
}
public static function saveGame():void{
var SP:SaveParams;
SP = new SaveParams();
gameModel = {healthLevel:HeroCurrentState.healthLevel, armourLevel:HeroCurrentState.armourLevel, armour:HeroCurrentState.armour, weapon:{w0:null, w1:null, w2:null, w3:null, w4:null, w5:null, w6:null, w7:null}, currLevel:containerCurrentLevel, money:money, score:score};
gameModel.weapon.w0 = GameParams.clone(HeroCurrentState.weapon[0]);
gameModel.weapon.w1 = GameParams.clone(HeroCurrentState.weapon[1]);
gameModel.weapon.w2 = GameParams.clone(HeroCurrentState.weapon[2]);
gameModel.weapon.w3 = GameParams.clone(HeroCurrentState.weapon[3]);
gameModel.weapon.w4 = GameParams.clone(HeroCurrentState.weapon[4]);
gameModel.weapon.w5 = GameParams.clone(HeroCurrentState.weapon[5]);
gameModel.weapon.w6 = GameParams.clone(HeroCurrentState.weapon[6]);
gameModel.weapon.w7 = GameParams.clone(HeroCurrentState.weapon[7]);
SP.saveLevel(gameModel, containerCurrentLevel);
}
public static function getSatelliteWeapon(ndx:Number):HeroCurrentStateClass{
var HCStateClass:HeroCurrentStateClass;
HCStateClass = new HeroCurrentStateClass();
if (LevelModel.GetSatellite[ndx].weapon != null){
HCStateClass.automatic = Weapons[LevelModel.GetSatellite[ndx].weapon.type].automatic;
HCStateClass.currentWeapons = Weapons[LevelModel.GetSatellite[ndx].weapon.type].upgradeLevels[LevelModel.GetSatellite[ndx].weapon.level];
return (HCStateClass);
};
return (null);
}
public static function getHeroCurrentState():Object{
var HCState:*;
var weap:Array;
var myObj:Object;
var w:Number;
var HCStateClass:HeroCurrentStateClass;
HCState = new Object();
weap = new Array();
myObj = {};
if (LevelModel == null){
setCurrentLevel();
};
lInfo = LevelModel.heroChangeParams.showLevelInfo;
timeWaiting = LevelModel.heroChangeParams.timeWaiting;
w = 0;
while (w < HeroCurrentState.weapon.length) {
HCStateClass = new HeroCurrentStateClass();
if (HeroCurrentState.weapon[w] != null){
HCStateClass.automatic = Weapons[HeroCurrentState.weapon[w].type].automatic;
HCStateClass.currentWeapons = Weapons[HeroCurrentState.weapon[w].type].upgradeLevels[HeroCurrentState.weapon[w].level];
weap[w] = HCStateClass;
} else {
weap[w] = null;
};
w++;
};
HCState = {position:new Point(LevelModel.heroChangeParams.HeroPosition.x, LevelModel.heroChangeParams.HeroPosition.y), radius:LevelModel.heroChangeParams.radius, skinBody:HeroCurrentState.skinBody, startAngle:LevelModel.heroChangeParams.startAngle, maxHealth:ArmourHealth.Health[HeroCurrentState.healthLevel].maxHealth, maxArmour:ArmourHealth.Armour[HeroCurrentState.armourLevel].amount, armour:HeroCurrentState.armour, armourSkin:ArmourHealth.Armour[HeroCurrentState.armourLevel].skin, maxWeaponSpeed:HeroCurrentState.maxWeaponSpeed, weapon:weap};
return (HCState);
}
public static function setCurrentLevel(val:uint=0):void{
var _local2:String;
if (val == 0){
val = containerCurrentLevel;
};
switch (val){
case 1:
_local2 = "eNpl1X9sE1UcAPDedu1oB9iSbVobpCzjh3FEtyyuUxZu1P1ydBZWZ9eVjtv61t56vWvvrltbKHVtEUmMLmAciZn6jwW3f9So0TCEmJCYEBTZQAUzB/74Q7cQjYug6Hz3o8cbXtLk7n0/733ffe/1PUMpZqHBMKAdFNM1wHIAzwpmuYGMu6gwwE+sKu9nmRgvRzM+S5iM7xJBMwPCCbzW3AqELlIANE0JQI9hJvgshfQ7MAO2Boi3vL4Y3hfHtUTwlfVnz1VeL05oCW9w1+j2yXm9kIgAnVnqIo3bV4OVRFge98Muq6WOa7VEaGAilp6LG7VEr/G6w2KfX6crwypwCjUM8X3by24XNJ61Ha3FIadsGNREjtaVLGGD0PSQQ+G6ab9seNRw2mvHP3/za9EYZtN3tuCyiaOGT1YF6vdtvtekUCMsnr9l+Hf83lyjRSga7hvr/XjmgjrpNgWVoGjki5pmwviZ+vbfKWg1ihK26IYJ5phRrayCTChKz2vghUFErnrD82XlEzLK+FCU2nTiN/arS+JIr/XM2fbEFTSAomTr7u6ejdMQuanGxU/n3AoKrph45y/Mtz2PQvTscd+Dt3ovKii8ok4tpz562vE8RK5tST35p01BHIqiDU+1f/h+VkV1ChpBEd3/SKXDMaGmm1XQARQNRvd2OaZz6sS9MspiKNr3wbvrrV6HWoKcgnQo6k4vw+t3tZjbFVSKoLObm/CiyYW3IAq8fvPM5d1KxXNudKTWi9Uz77wwK47EdV+5sZxR0F4UebOmaw9wleJ66uwb6g+9qqB+FAXsM4tv530Q7Tlz2LN0c6uCAiv+BR6a3WKpgqjzivPI1cKiy9Eoim06NvbNj1f/h6IrFt1chX5b9WU1XbWChlF0sO/JIw0/xNSJv6Sg/Sga3flP7bnAUbUEB2V0SIOirBk3GqbeU4v5uIK0EioXEa6B0TQhLXMxKn2Exo4Nj42HxmAk9fPUT0uXMoUIgb/Y8sdpj7j4DlxIDDVGTqp96k+eHsv/Og8j+xsWnPa/1NGIquj5EhqzwkgSTG1tX6xQIvCjirl3iKtiWdXZSfft3CmvmjulRjJTI5+U7syrufN3+6SaFw7V+wq5b9+524exzdx45m81d5lcgcNBzCRt2y0A4KPJjUHAsfYgyQSAk+TIMG/AynmB5IQmJkADHE4vv4Yj/VSMx2stfJAdkXbedmaQLbpfgLv+cyQlUEwAf8jcBgdysjx8ZBnxFTPVRnhEYFiNnWX8UquLlTrb2XCEBgKAez4ZZmOMgGtMAsmHXCAu6OoFLmEVWGuIomkrCX8c8FvFo4EC/DrdfR2wuYmmC0cRGZcPm3GbuXA2SUeR5mFebLeLowMOnVWZES/DsP8A+O3FxQ==";
LevelModel = GameParams.uncryptObj(_local2);
break;
case 2:
_local2 = "eNp11H1sU1UUAPC97vaNFoZdMj5KQ1MDgWzM7qsuZFFSmNtkzGRxVRCw3WO923vw+t5873Zru42tG2Ezgtmc00VH/IY/EIOOSJRAFELULUv4MCogE6OoyYgfmf+oiXrf69u5mMz+19zfOfec09vjXMy5azFpFAiWZYlgB8d5YkKiHrdjuVrBsSQqW7ZHVeJ6Y7OqYdQXvlfEmlolCkorbhA0IaY7OY8uqh1mxFalRbXlakJUiuuowf0wpQ2qLhFJVZxcdgL1FWUnkZNbphNBI5uVVhmjnSuIFMPbBYqUVuTlSqtUJWpGhFQzZ5Uaa5MxwU4ujwj6vhBOEL6UaEkfUX2iRHx6jObyYVqrhPVcIabGFYKyHCTZhvl7tkmyvFmWuTzZSFWDaQdLC3SjlSrDYY2VtxTlu1A+5zHlI5KSabif5NHxmJNw1HJOLqdN1VE017guqTuyOSOuf5fLHtSHz6HPd4tevtjEZumR0oiOm4mqRcpLNnDUFiKpKBNkD3buXTx303+dhpL3bePhn694eX/GKGCSvHt1Xc0n1MSfP3thevgdMDqY9kNKjpP8Q0174R28ZEsATAIMsY/HHpwNGqb94EjTnR4w3WCeSjU/dz7/owVM2gYo9uOa32aXZy9wWToHkDg3fXGfpi9QdXoJoOiGn1ZWv14H7V9mKA9QJJhFPzyMVwLUv8VC6MA6etx5MsD/UDnz3+mXsenfZ0XVQ+quKXuKD6VobM/g5LbhlkYvX2Khx9lsUWXd3Oq3DXSq6MvU6HaGmgApp95KjJ64RFFvssJxdO0EQ3sB7Sn+MOqpKKRo/w793KUzNoYIoIeMbrNcFHVdDF3948QMoAER2i2B45v/26712AY0SN2T/8z3/t4ho0h75HbLtXovX2ahLvbc/op89sbIUQOtn6g8vW4Q0CAPKF593Db+xA6K0mtmXxk9+xJDLkBtj2761vlqt5HpQHj97YEihlYBakl9MbZ1eqeBLpysufzdcobWAtqV1oXj7/5pDO7WzJEnP5UZ8gPaZA7OR1H39fhrub6vAR0KwuAq4fiGl3ffPTiL1kG+7qHJK/7yMaOy38+893S408sHLBRij6PW90BH4KAxiJWPHXv27w8YCrPH4b82erjXY6DT8eqOrz5mSATU9GbxxFTHr8Z1u4fkgkVXGWK/YAB63P/LC4pv5Aagw/PTQv0F9FhusP4Ld/dYatECVv5UzcR5vIoGqKq44ojzZS9fYaH5wdJ97UJ9iB2Us0UgaWOd908uFL0REL5llGyDmr4xkTuzYYVEiC5+dGyRZ/57ZuO+uNE9v4JNkMX9C5motHw=";
LevelModel = GameParams.uncryptObj(_local2);
break;
case 3:
_local2 = "eNqNlu9LU1EYx3f0dNqWlsKkxqRuJGQgYtqLEQXKLIsWCA4ykPLqjtuts3vGvWdtgqJuQv7Y5hshoTe+yd4UBPW+ehkkBEF/Qb3tTaAvEuzcH7vevDrOfXV2v5/znOd57vPlLHgKtA5hdkvFmemAAoKgGRtLPdDI140FuDjYOA2LXQE2ncUobGJx/AyTx33gZJbqMMmxBhOGHEOc96MgaIILYy4hhE70a598/AGWWkwcqFz6uG88CIYstRR37V0cRDyw/7+zezn0PO0OsfD9zcLsz35+Tn6oOPG776sfnTagGTc0/+fXy6WOXQRLUUteanHLcxd+bDavf0DOyoY6XNmUoqgWZ8eWo+4Y9unIyciG4ke0yRTG3btJ9u/1Sxtpz27mhpJGH30NTh67FrTsd0MP51/NfXnbe7iW5XY3FP+8NTT7bv2gH8s9bvnmCv0WK7Q4Pd22ocHjvqypjnpD+FCttIwNEW8aGxyaNOdg34JWfN6CupFTmg2F3JC1fw/VYm7aUKe3yU+QU6AN3ThuJE112PuVtz0hkocnxS7NlgveaXvvFNRtQatN3ondcVqzZ0PS0bNvl2ZD145wkSmMCThnNVvXOWUo4JzyubrOKXcJOKfcf4xzygkB55TTAs4pzwg4p9JS1zmVDgHnVKL1nFOJCzinMi7gnAoTcE7VL+CcaruAc6o99ZxTHRRwTnW0rnOqRMA5az4B56yFBJyz1gnCxLho7suFhJLB8LU/Yv1W1JFJqmFYYuHaCxPwXUxjjcbSsprCw7ImZ/QgOMu48kBWmKKm4PmInqZ58/a6q07RhmZNTio5HXa26UzW2ICaIhjyNLfCd3igYarzbVStzXyxC4Awv6VHZIYJURgOABDJyAUznnkvwt62CarmdCu94qMrurGI0ZzKsOYOF+IfBlyNUTVpvkpQM0aMZrIEM8yvfzljbIK+VibrTxO4wFAuSdXLTJqiWgoziVFJxwRPMmkCMx5cymM5S1VDlrI0j7WpHCGS8SdCwbofnbmnEDJACGg1G3Yb8+xOR2rdtdJ9EQX/AHQ+Fu0=";
LevelModel = GameParams.uncryptObj(_local2);
break;
case 4:
_local2 = "eNqNlUtME0EYxx06rLSGShsQShHXcFBPIC+J0QgUBaJGEhrxorDSoV3dnam7Uyg+YngIhjS1jSbqQaIeNCZKPKk3iYao4cbVm144GIwxIVxMnX3pcmIOu/l25vef+e3l+3w7wAF9mGgoQlKYIq2P6DKVCfYBTxqWe8ZhOTgYIThmLkbJKTSKlAhRkwqiyAcCVNIvR1GaCvEYwfuoqCcIoSLB4lhCpkjUqaTpooRjRsXeI0QTWxtEHQ2zI/VSSTUuhUe8dDyJhJ1RWUVnUhQEFOOWEwjBSX/IrE/L2NiE2wLdiB7HSB33ngQ+UIqMUvd6WF1U3N51tXPP2uprWNw+MjCwhuYyfqHOhE3rwdZBQwdsTxIdNrJElZOLPg1+LRxeZbmh4Lf64MJjv1ANamCTm7F2HkCH3rCYZjdj3ToDHZNFi2lxM/rK9LEfD7uhU/X6hZDLsZnxsS343W5+sJElJnrckRt38ULwzXkWoRPv/izVLfsFkUFTZW7I2voCHXzIhgJuKH30e/0vbR3+q/xCLYOmz21haJw0I3I4zSY4nGZlN3S942xq8abCoCsvX+0ve/HBgubKN4n/3lip8y4ZTvfeP6nuuW1DFW5otKTp7U+hFjqVaEO7Nv2dmb8FnTM/21ClG7JMFqFjl7ShKjc0sbz+8VrDIwaRS/N3PgUVC8q0c/xdpoNDPNPJ4ZSJuCHbBDp28zbUxSGeVTjEsyqHeBZziGcJh3g2ySGea+YQz7VwiOdaOcRzhzjEc20c4vkqDvF8iEM8X80hng9ziOdrQNhq0VK635gj8H5bxUWCU7r1NXkh7HRwa2GK7k0gjUQSEo6jPkmTVN0HQj1s6f/oKWIUZA+oMDo27cBxBcFCofCsVJNicoq17zAbNGNmC+zFI8RTSdl0GJBYHMdhLQixKdEvUaQobAh5AQirUtqEzc4JG0OOsTlUnpeAv4vk2dQ=";
LevelModel = GameParams.uncryptObj(_local2);
break;
case 5:
_local2 = "eNpFkM1OwkAQxxm7otRAbISYpomRo0duHtUGP6IoSZsYL5LFjmXjdpd0B4WLB3kBb/oE+hz6Qh58AOxHiMeZ/P4z8xt7A9wTpIATSikIawBewqcX+IiyqzCZsag11GpigjudInu5bY8w1f6Iqxj7POWJscEzI/1UJM7UvV6ppzwSE8Mi9zRD+9oIElrZYE1ZxZqxCrQM8ZQOVSyRLRaLj20SCV7zDFMx60PH1yoqMqEupvo6GUsktMEhbh5CnFJ1KxFK7A61MXWe6IkiBjWajbHaOhdShjyNkcCRefwYkc1pz+QCfo5i+n9UgzU3WRO8guwJVWrOycmeUvjXLLBhbawznzrmDVN0GqsHzz/vr+3f752q273s9m4GR1dBMOg4wpTbrc0l8gXglvP5NMxU2ee6t6zLfW/77vKAAqjAH7Obh1g=";
LevelModel = GameParams.uncryptObj(_local2);
break;
case 6:
_local2 = "eNqNl09M01Acx1dXBpuCQyFmmeA0gvxTGQpRxASYgqDiEOJ/xcIeW13XYvsGmzEisI02YjRG48l400SPno3ERI1ePGnixXjQo1ePYlfW1oMu3yU7rO/7e/28z6976fOsZXz9hI5wlAgCT4mbYfwJLnWMTBPhsEgSabarelwSk8rIhCQTdv7S1hiRpVCME6MkzMlcQvEwfiUmzRgVA+KktKZc5iJ8UmHbfEf0aFhSeMpLoodxptj5FmeaXaBMtUI5mfaIUYGwKysrTzZRPkFOc3pQjLK1TDAkiRGjalQy5g1JiSmBUOJhKimnxEdJiroOcjQwycsKDcR5QQhw+jfGyZEA0al5opRzCSkpUtbhpukp4lp/VA/1CAJTKeQn7CP6WioalfyiQvkckW3QCrbKy1YxfiN5nBdXl75AK3VRhhP33H7Gw5ROSQobKc/fL624nfqVipLu+Y6X39wvLnhLuuN1ZbNf2u7VunxGjbGOsXZGjzWxpMXMXx9u0TZ3Nuv5y0Onl3qcvbWuXauZyUJGl+ZlI9blqFU6fvHJz3e3nv+jNGZlgg2h3+/v37Vw7lqZBdpShHnnX8zBMYVMUEkea99ZKE1apel9V7c8EvPzX4gdm+t69u1/pc2F0mmrNHanZvnNtq9/l7YWQjPF+AuhzIZi/GZoYzFSM1QFMGWqEabWYkxthVCwGJMZakOY9iBMQ4inE4incDEmE3y4GJMZEhBPCcSTiHiSAE9ZD+ApuxZgyq4DPGXLEaYGwFO2EehdtglhagZ6l+1DPPUjTEeA3mUHEKYIwkSQ3k0inqIAU24N0LucE/CUYwGmXAnwPC3GAE+LPOBp8QrAtBgHmFQX4EktBTypZQCT6gZ6p25HmOoAT2o9wrQD8dSLMIUQT4eA/516GPF0GWHiEKZxhGkCYboBPOPqLNA7zQH0TmOA3mmbAU9aDcJUC3jStgCetE6E6QDQO60L8XQQYTqDMJ1FPJ1DmM4jvZsGnidtBvGUQnqXBjwtdVuhjJA4sy6wRw+NDw0+/jjbYb3gL/WYB4hMvT4cfrX7e7RKtYft/eTa59vRzIe9eijovpHbfSpsh+z9RF526B/GyzrsUXsjISd/tP6KP/jXFPZGMpCfweG1YDJ2yHqpWB58++nma2eDtaC9Rsi3ehbjUqP6QZF9WuY3f6+ezR7u85mHNSPgYP4A4yiVmg==";
LevelModel = GameParams.uncryptObj(_local2);
break;
case 7:
_local2 = "eNp11V1IU2EYAOB9eVxupc3IagjzlFGms2yVdBFhaPkbWJqJ5vTovm1Hz88655tulaXLgrAigqiLqIuyKIh+BW9SCwqiCPq7qC4CL6Iku+iPCGJ9Z2f7Pl2nc3Fge5/3/d733c+xzgH2cojqOAQFgUfQAkC2yIVqYDcUtkhQDDMbs9plKajWdcgKZCLuJX6oyKV+TvLBWk7hRNUKslW/3BPLqJS88qx0hfPwQZVx2SswrZVVHvGyZAUpISbiTAnjG8hSEaegzZJPgEw0Gr28CPEi3MVhKPkYB1hTKkueWFa9HKtbKosBASJoBZmIU7vqYQiZ69qFIGQ5BbJehYeSR3Wy7UHE8l42LAdZP49Y5IfiKnylc6IclBBjsqBwAJrnVfOCsFkQQKag1d4K8VgZK1VtvlLNQYX2nMEssDELQHZMbuMlfQuHUCbeWWw9lu3ACmYHZJXxpEPtDdWSArS8gTIbntRhtsdYbIrWYoBD+Qx06ia1pA+57g4e+2BLLem1lC8PFAoO8yrdeIkJ5UF+kf0pNv23W96U3dhEjI+YzhvrC58/7TQwfmJ2uDubL559YXAWHzd41tQSZdyEL0CCnUkFnmHTNrXnTs5QPjFdSY34sCl5u7RreG4eMULSQE+IYYkRDRajn7WCmP4KgiJVR3OGGA2FBiuyCixNM7e9Pp5QmRgv4rQxA40Oc1E8UEUqFbaMLBx91EYqNVNUTZB78vDUse8ujGqGxhquDBdRVENQ70P3wLkHXwnKI+gIm4S+YdT345L19MB1ipYkHVdshJYaNM5/kl9fnaqgKJcgZSyqXTbGRKPLDLaol6giaHA3RRN3valNJ7UFfcm/v+nXJ4d59bRVu1pV2IFkpXVtUWE8t4XkHugPTjxu3Kd9OXuy2i7sRw6zK47cMz4agQZaSXbz7zz09vxio+y2BBrPbFo763r5+PT2EogzQHzutd5IRgFF7UnHzceo7MTVn2kbxinq+Heh+PaZAk/SyHtJlZsUQYOd6v04KQoQdPDlyNzy3Ucw6o7e87yrZv+7+IJ47h6Su/c1mDMpvNJ+8e/jueviSJmx+DQaUEk23PnnY8HyRqNsRFDDrZxnE8cnp7eXQEEDJJoOF1fyoxR1Jx3XgJG73yqcetlHUc+/i6+l0ZDBvHqJAxSFDRY6vRm7/gfPherxg4i5kpadeK3/4Z/ZYE88AWLABP4C+KDnMg==";
LevelModel = GameParams.uncryptObj(_local2);
break;
case 8:
_local2 = "eNp9019IU1EcB/Cd7ezmrm65ubnGSqal9I+gYCUx8s/6458iUUMrMs/c0V29u3feeza30CRXE3oooYegxLeK6sV6CIkCiyAIeikMMh/CsB6KIqmXoOzcO3evT3u79/D5/e75/s65bCHwHMGkDRHM8xzBFjNggXUIo5gosKCQxwnMQ5OFpGIYGoAVSVExLoESJPTx+CDX2wvL3Nm1o6o0MIy3no9jrZ8rEecFLKEQj42mJAybUnBsJ/2EkQUQmhjaswCwcGVlZbFIKbYVGx0UOGGaAG8UJdWuhwQcTcGAKyQKcbmtR5QwHOsqj2BJDEboRnALklBUZoFXjohDakWj0CsarRIKc3EZlnkaKG0RZY5wSigHDKv9XTJBEqlTkigbuO0mXBR3IKqEPlgGdgdFIayWtItq06AYjfGYYBbYCZIH2nGSMI0xSSS4h/hIBPtCNLi8S3lM+aJxmfjkuJTgEtiK6IAEouRb38zxfB3PA7s62cOYRrFtk5VMQcVgae0+nU7oBF5VHuOEbPI0sdPzUkdiqaSDXBcTZRi2YmVBtpjoisNcm0CzpThwzWmu7eb9XyJb9zKMRy1Rg5zdByirhnh/zo80LhU1f12iXgiMvvVnFhgmkDXpYg1JFe//fPoeo6iDPbE89W5GR3YNDT14aJuZnqMo1N3vfhF+rCOHhoaPv/q16fUtigYmby5emTqloxINjT7tT3c2tVIkn6kyb7RPaCjj0xBaHvnmHT7vNNf8G6z3nfto0FG5hgaln1fH/1bRTrU35pve7OnUUYWGUrZL2z88qaHo5I67n+fafDrarO/J78o03a+mKLL4+17D+EUdbdHQhUetp1sX5ikiVlssadSHmanU0Nj0y64fzycoGs48syzXzWrosjNfurXH6F8tcOVLemAVleZLmkPufElzaEO+pDnkyZeUIk/2VqNkO/3p4J0Cb+49e8uvV3ty114FBvAfh4hOLg==";
LevelModel = GameParams.uncryptObj(_local2);
break;
case 9:
_local2 = "eNqN019IU1EYAHCPO17dQpvgiLUhM5WsLEokTCc6VkvL0cCBLkO95nG7ee89696zuUkG6hyjYAlF+hIFRfYshD760j9f+kNQFhFB1kOvEZIP69y77YzAoPt2z/f7vvN9555r2gWspxHp5QkSRYEgIwA2iY/1oCgST8lIikOnZQTLEbX3IlYQnBmsCSEFu0O8HEQ+XuEl1QRsaghP6Bnd8hguLlf4USGiQqe1i1IfVgUiYNkEDDE402iIw0Q/sKiEV4hLDooIZjKZh3uIIKE+nkI5CKvBMTeWR/UsP9brurEUFhFBJlBJeHXcj2KEA+W8hCMygSYjiYcRt/usIIouUQSVopbiQbTbigOq1rZbc0gptFIBq8ywCth06RXk7HCzpJIehT61cT8wgdIwVuFoOdIWVKOBrlSUdAaKtIczl3Ti5c8/f5U12zmrnqI3OtQMKGuA6GDeB7eL456OBPXhZcvw2+5NO9eYNWPMhGvh/DvbBDWCp3qp7dMHZoLMRIwXgPvZlrbv1Pk3/hEHMyFmJuOPL6dXaqkZVybBZlsTM0LOwNkBGlXSru1D9xdZdNbMSihr2njADJv+nqslJwmTwo31Jz0bCi3nPZxauxa9Z+eO5FCEodjq3juBm107oEQ/QwNbXy13L/ko8q+//sh9ayigAENXp5/+XqyXGDrK0JyToRP6x3FQNPjj+5cHt+cLqD1/AokOFr7FwknHf9RI1jA07PKWrqR4inpbX84dH1kroH0Myb6e9LnrKYrOTD9aeHGy0HKylqFo38bq+9b2nVAdQ1NDgSt1ba/Yds8LqP6fc1mzt5uP+enPBZfKbPn37G1faLHmr78OisAfs8QQKg==";
LevelModel = GameParams.uncryptObj(_local2);
break;
case 10:
_local2 = "eNpFkM1Kw0AUhb1mWm2kpYEWDQFpl24EXYjLamj9bS00oG4sU3ObDE1mSmaqKQiCfQiX7nTrm7j3ZWp+KC7v5Tvn3HP1LTDPUA2owiBgCksAVkjja3zCoM0xnBO3PhJ8JgePIkLy9tD0MRK2T7mHfRrRUOpgSV88Z4oLPhbr5Yi6bCZJxzxP0L6QTDHBddBi4mpzslBQl4pG6oR7AZLlcvm5rViItzThuEc6cGAL7mYiR2S2tginASrUwVBUThyMVbE5ElLuNxSdYMPHxK5MQzHjikBJzadYrF+xIHBo5KECI0hdOohJ+J5Mi9gpitH/cRVSq5IaWBnZZTyvu1BG8pzsDyUNdNiYCkncMqYLmW0qhdbL3e/3Tmu8WzTbvXb3fnh6MxgMDw0m83StWmiNepcfP69HAGbuT2MnaUy+Nq3VnOe9H5urAzJgDf4AYsCIWA==";
LevelModel = GameParams.uncryptObj(_local2);
break;
case 11:
_local2 = "eNqNV89v22QYjlMvbYLaOev6IwSyDqGhQjvW0pVuGrA2YxS2wUQzVrZ1kbt8TcwcO7O/tOmggzStPSrEhcOO4wRXxAU4DSFx4r4DQi3iTygIDmME//h+xK7zyTlEiZ/nfd/nfb7X8uvEE1zqDQDnRAhkWYIgznHpslg7D5aB/LoCyqv8qb5FVanqczdUDfDr1w+XgKZmS6JSBBdFTSzrCS6tl9QVJ+JNZUmNdmtiQarqfCY1a1EvqroEJVVJcB01fn2kY9X64vp0KGpwWinKgG82m18NQKkMLosWUSnyGW4sqyoFJyqnOnmzarkiAwgSXBKK+s0cqMHYWEFVnoNDS6pWBHBIXFSrcGhRrgK9WyyrVQXykThcrYDY/nOSLE/LMpeU7VRngdXFM8O63U7W5gGNSuyxxAm2wLTDvSApbtsNmLRMcvyI1xe4BNdZUXW+0A3sK3q8g7NDN+bt0Ews5fAc3fkTnAU9z4MRxLHTb8xnYkfd60v4ekTYd1r7MWJ9OAIWEWghD5r2R+AjBGwIBP2E6yl1nt0UyC+vhCkUkCQBl/757MHPv/zaGnAMkQ74SA8FQqekXl/pDUJ6SEgb85T0bDf3w+ffC3xj2KtsElHf97hzJBMbR8AVkiO3c2/3pa0ZNweGr/rgM5YOsONYRUnX9ro4TtEFn8rvSIp/CWnz1IjvhEdbmhjL6+AGVLX88VFEfwXTGzNWtvqd5Whye7ld0Aso6FUiZNEZg2hrKDJq87XAcZlA6Gmawun0kUU6M3h/+4/Bb2iKaY84F/6Swlf8rWLganBTuPa1MPIXAuVj9HoY+flg+VhGzS8fA6ts+bdZ8jHpQ6b7H7HkY9Ia032jv437xkCwfAwPhpBvpFjuG0+GcN9IM903JtrJP85035gMMTzGy0z5UyHcN06w3X+3zfAYc2z5uTDuX2INj/FeGPmX2fIr7eTfYg+PFsZ9nek+DDM8VebwmD1t5Jv7mfJNIYR8M8ly3zwQQr7Zy3TfHGkz++Yoc3jMoyGGx3yR5b55LIz8Mbb7b7Vz/xzb/fNh5F9guv92iNk332HLLxH5R1z5wy0P2/G8XpE0UUaPWlMK3kzQnmR+QEoNC4RC4Zv+ZQUDMkkLfsdW7IkuB280GFZw8vFWpzCqsvYdTKpQGe4eI2D6LCXdClyKMKp5HEC1KKyzdiZEunuH5IDtTwRtTHc/JhnXvpiN/rT2p+WKkImddOFPIySXIGDKLoW51hNpQApESVopgk8EFaCkDkLKf7vz199dE97aPE5ecNvA1/f5wiat3KUmOgtMihGSCz0WMP0kJXXuPYsCRbs8vaNaFI77nNslMh4T0tbBlpvHaQId0lYfib697dyzFrxCYbKOrK8IhELhAY/vMxSg64g85IxwUHSKzmm299Fv2YPe2ngf4ev9Xs3pvXF1kcJP0dqHbBv+EzCxn5KeblVebwEyno5RAQof8vlVFUgZh5Ry3xrFWs56neW/7krj/+5b5L2pFH6tdAgR7n+oxmxz";
LevelModel = GameParams.uncryptObj(_local2);
break;
case 12:
_local2 = "eNqNl9tvFFUYwDvtcNwutLSllS7FsiD2QmsiBQlGJNJ7KdViCbRFukzbs+3C7MwyM9tu5eZuh5G26oMxEU0MmhggPlRM/wCNvgnKk8Y0gMYXg5j4YmK4GD1z9pvhLGdv+zSd7/fdv++cqXelUN6FjQ4Fh2eK4z2CVyjB9rNeXESei2KiOVg0Iyaai42ZCEaNlNuHp7Ac2B7QIyFNkp8VnoiouhjvJnwh1RJXvBw/M1VYfnsKibOtHuQVVonUNIjJS+QiIN7LiBPNiLgFQS9rdvTrAvIr5LT3sVB79cXbv1V/wvjuY4wXEGWNmhFA+ko6ZeLrq//sH0CvpoRBRQ+Qg18FqJ+FtKQ+EgtAuv/xCoAvEL/G1y/qhvEAoAHGhjmISKk8aZvSRODZsowdKbXF5Rk7QsUVaTpCBWtydIRClRk7QsVVmTpCpU/m6AiF1uboCIWqM3WESn0ZO0LF63J0hEI1aTpit8oczLoP5lDWfTCHM+yDeTiPfTBfz7oP5pFs+2CO5LEPZiCPfTCPZtsHU8q6D+ZoHvtgjqWpvt0Wy5919q2NWWff2pRh9q2n85h9a3PW2beeyTb7Vl0es2/V5zH7VkO22bcas86+tSWP2beaWOjM4tL5kuo55DydT7borUkWmq71Ncy3v2iXzAoO9i6OAhRiIfnb7xfvTs9x0DEWOtyx9ZdrH9923c0BdJyF2j786GSH71fkON4FkMxDPyPH8bsAhXl3y8h1DJDCB76AXMcAqXwJXuKgCF/M8667ZYBOpLQlWR038HmAtPRQ0vFOgPQcvfMxt8oLRGHuuRzVLyPQfGWOmlEoliNTG1pIOcJOXw8PrvJvQ85TiwdtY+JrcT5FAkFJN4j22yklmLrWufQNXke037y7vOL31sseVGFDKSUIh7QLJ5//joMMFhr5Ye/FG2d3uHFsAyjKQn2tgU8XfryAHMfrAZriofeR4/gGQNO8uxbkOgYoxgd+Hbk2AZrhS7DehS4A9AZf5UfuWgA6yUJQHTfw6wCdSg8lHVcDdJqFTv1R37Cy/hZynm6mb2qT09R3DrJH1gaid7bl3o7A5xEPqrTFh1ISjhm775+7Z7dzf99S4qe7AA0+frJXgGCI1VZWr014/17FaQ+z0ITfOf6TcZwAKOWGlpq+/OLO1S43yVsApYz30PaauvjBXeSO2ADiI6x4IPre2J3uK8jJ6j5AzEUtdibvPvo+wCt/hpykygA6ygewm0ATG+CeoZDEp9KB3KQASrmok/oPkWOzFaAxvrylyInuEkDjaW+sTpBivr8PXBNXAAo+PiOQGogn+AG86SbUAVDKjQUz5pbmIUApNxZMiVvkUoCOsZ8nFchNCsTHeRt/ul3+ByCZj0Yj0MxftqF/AQoLPtnemj4pdiAUxuJlD/wdUujfBTWOeGBM1bD4wU4f+a9vQDKwLIcMXFxMzK+VtLAa1ej2kQ8TMk8lyTfk0+SpLg1jxeXXSMqEjNtDwaBYUDKNpYiqeIWV1IUoeESBpBvvrpqKygrWpFEZFxLztbbNeLefWNu0WRyu8woNDpto3uISiWYg4ttZZLbsETJbBkiilLNSNaoqUT2ZZGKkJizFaD70XBE7a5yiJIFZY+Mk1tS2SZIO7pc0KayTMhikYIekkBFSJsTaEk0aD0V1sbZKNyTN2GPnLZLCX/J1E81+VSecnXzyNEk0CzX6pDpNffYoQbVQ2NqmKuMUOqDS121qOCJjA3uFckPSjx/AMQP1jKtKveEPqtoENvyG6o9oqoHHDP8MKb8/qIWwMq6XSKQZimF/wa3uDcnyHlkWymlCnZgku6lRt5NqsxmspYlM+B9Ed6aC";
LevelModel = GameParams.uncryptObj(_local2);
break;
case 13:
_local2 = "eNqNmttTE3cUx7NhXUPkFuSSFLXRekNRwVu94JWrrRcQVLzSFRYIJLuYbDBR0QGSbMJrZ9rH9ql97XSmz+30H+hM/wDt9E+onb50etn9JbQL5nxzeALO2fP7nA/n99vfAP4tUmBAM/t0LZauztRKfqlWcz5PVFfZn1el5MxYVVpe7qg20/Oa0ibyrmoLWnS8q1PaPG8k5KUWO9Er0mU7UbGf8Cl+qUZeanUFPMqmi/EfPPaHVIoG/4/aoe//cT4U2VOKhlzPZsYUu7BPCblWP2EnrVx2Ja1ctldYerngDbxe8Cl1TrjHvcJjsbj3naReClJE+9aVEJB/2km9wS9e/xr8ppTUvxGjGP6yFB4o08oRVytHxxPahGnEx491HnLyTbKrBiecrNAVUfqg8+wC1ayo/LRCsyIpRTbb6ITTZZp1Ahkf7CpTXaErUcOP8DNbKuCLEjUQX2yAsvjbSHwR3l4BXwDugPjvc/DDJL6osbMMvgh0YvtdHPyjFL4gO8bBP47tn6Dwe7H9Ps7w9EP7Axz8QYx/hRqeMYx/l2P/HsS/z9i6mQd4eB5S9qN4eGIc+zrENzj25zH+E8J+1gPtZyUGftaL8LNVDPtZGQ5PdhNhP9uE8ZsZw5NtgfitDPvZIMYPUfb3Y/x2Dv4BdPJkD3LwOzD+IXe4wQ4vfjro/XHxt+IrPNvtXiLiWaMsJr0tJZ1z1ZgsGhDfP+9+eEbcc/6yHx7/9s3vf/jOlJIubAQohk+WwhfdYVP578JUCl+i7A/BrZsd5ti/Ce2PcGZ/FNu/ReFPYnyNs3Wn4OxPc/BnMH6Ewk/h2U9z7D+D+M85s/8C4y8S+LkaiJ+rZdjP1SH8XD3Dfq4Bnvu5AHFw5sIYfycHfxea/dwHDPu53Rh/D2X/OMY/wcE/CfE/5Ng/hfFPU/iDGP8KB/8jODwfc/CvYvxrFP4DjP+Qg/8I2h/n4H+C8VVq9ufhwZl7wsGPQ/sJDr4JT55cksC3ZGjf2sTAtxRk39rMwLd8EN+qhpcGq45xabDqy18arAbGpcEKwEuD1QgvDdZWYvatIBweK8R4bVnvoeGx2hgHp7UN299O4Xfg4TnEwT8M8Y9w8Dvh1rW6qNm/iO1f4sz+ZYjfw5n9XozfR9kfxfZvcfBvQ/w7HPwxjH+Xsj+D7Uc4+LMQf44zPFGMH6PwX2D8Rc7sv4QH5yuG/bwHbt28RAxPvgEOTz7AsJ9vRPj5rQz7+SaM30zh74b283s4+Hsh/j4O/n6M307hn8L2T3Pwz0D8sxz8box/jpj9/FWMf42Dfx1t3fwNzuwPwa2bH3aHb7/714Dj639ln3efhSuSXe75289+2jNs+pQmJ7zuMJz9Za2rYlKSLO38oSHvPiOXvEUUUXTdLyRn3zh9/m0XnQj+rH73MOhTWpykexvBiuHWUo37ZfoUgVmyIVF2rkJDIilKkcc45DpJLsIGRf4S/yheVSB3kgqeMuTOqgWpArl42gudF6oI8kIjdF7YynBeaCKcF5oZzgst0HmhtQy5COzF5Ps45Psp5+0c8gOY/CDl/AwmP8uZlm6K/ByH/DyelguU8+uY/AbH+RA1LcMc8puYfIRy/hju0MIEx/kk5Vzj7NApPC3TlPMF7Pwpx3mKIk9znD/Dzp8T5Kt+6Hx1C8P5ag1BvlrLIF+tg+Sr9VIo6rz/rqmp0UhMk7/2lb6O6OJrT9taeGTCiGvy56dCA5o5oppaNBoxtWpJan5s6MlEMbr8qC2mpsQLVbxa5aG2tWrFhBVz54wWN3pmVH1aG1Ljaizhl1pNe6U7asSM6NPyjtq4OhlJJuQdzQlTjZuX9OmoJtutfRUatJ8cMhJ2nqGv/T/FcofUlpgxnoo1r+hTRpXU1WPokyJp1BDf7jFi81HN1PxSwFQTc6NaylT6JuLqs3RYNU11Yu5w2F5KnwxPGfHwyc6wfRGwKyRq1ZiR1E2526fUOy5uJE0pINrp1+xWd7UnnJZ6nBwtXoZL+hfHfFYg";
LevelModel = GameParams.uncryptObj(_local2);
break;
case 14:
_local2 = "eNqN1nlIFFEcB3DHnZ098lqPxLbEDjotsouwCLetXLsw3BC6ZNTnOjjHNvNWdz0KdesRBEUJkR0QRUJEVP6RIR0InURQFEH9kVEZFJWdEEU2b7axZxq9/2bmfd7vvTfzvrxxjmJchQAul4EUcVQwTiYR4EvNYdGvLWFrQcuCS72Ozk0OGAkCzm241aAWiGV5c1yC5ufVAIAWS8RaUPe24Wpa1QXGFlQ0tnm63j3eKMKyLbkcZ3daEthWyCSxzTP+NFkL8qZ6f95q2xsDZpEuzHJJ1rTfF9/T9InjphAzmFOmQVWRA7h0s0/vo9cn+jTeV68XVdk5LsUoXbN27eI3m9IwC5Gs4eM6W6p/ickkuT1ne18HZrUkq/9yaGnqw0cmUzb4ln3Pf4VZHckiT8t7LifUmCy442x57wQZszDJwp32MV3l8022dUnxy2M2gFmEZHVw9vG5Mw8Psgc3+tvvvcGsnmS1k7un7v5xx2RqoefjxK09mDWQDN7tfF4jnR5kbRtnWd7dxayRZFqw8MWZ/I5B1j0p6fXyJMyaSKYmd7nXXdswAttGsuC51WPb9q0fYdDtJJPP7zrTxwnDlxCNI5mYefTiwRM3h7+QKEMy4eD723sWHRj6eqswiydZwJNf3/pq+vCPFbWQDKTfanjsLxn+6aMsySrcmz88Kd05dCOdwsxKMn7jGE2a2z90W6ZjxpGs7PzTz1/t82Istr2jNhI0u/sm2Rv7zeSELtzxpXzrxWzsiNlbipvGkRVWeo5cCc/+MbTCM8yyR8zen5kglipoyEoVNMRRBQ3ZqIKG7FRBQw6qoCEnVdDQKKqgoQSqoKFEqqChJKqgoWSqoKEUqqAhF1XQUCpV0FAaVdBQOlXQUAZV0NDo/wQNZVIFDeX+M2hoJlXQ0CwmS8Rn2Ro+7BckwHbYf98LsnEf5zabSyoUFbAHFmbpp3UJD4EoChA4GCajXJFDWqy1ZYtb4sPG4Wgck2yx26wWA61wfDVQFW81LwdAMa/ykuZkMqE+UikvQEEOsNmJKl8phDQ2O0ODvAo9ckAE7MDAwMksn96zWNF0p8ixFSewlYxbq1bqjCGL5CrFwuR5FbnSMH7FeOxVpKAIIHAyLshrNX4Qhtw0XhRz8I+GALQcKaTBnEoBJPKSEpIhG8dxyasEUfSIIuMy5r8C6GubME3Da/BiA9S/J6If/cwvNcsQdA==";
LevelModel = GameParams.uncryptObj(_local2);
break;
case 15:
_local2 = "eNp9001oE0EUAOBMMl2b2CihRA3RkoIUIlFokCJ4aQnWtE1sSgMKBcu0mSRrdmfSnUmaVLEmLXoTFMGD3vw7eRAERajWi57staDVmwdPvSoIOrPbxY0JWVjY2ffNe29md3z7QeA85ucI1uveKPABP5aPzOsRz54aXB/y8noZK8dMkcJVrM2PzMcDKssio4C521OHzRjYV6YMNpJijtucCXtGV3OB/K94VVF6fe6+ntGru8dDJ9MRcAA2Jpxs+V4Lu7F1dPflqU3JJp2stP017n8Q7MCmnOwSfZMLj5zoUDT1j8G4HTc2XeICMp5uTzNks8XBV5+e4PeSXWhvqt9m0wPDcKP/t2TT7UustLKfkmW6bJhV9K1kM052/RFavfnitM2qDz+//jh3R7BbRSdbOfLj+cZ22mbXdiS7K5nq2IlmzAJwjcvQFWeG/Fbs8fpMsUOGkpPNGSvg+9l4az8m07ow/cPk7aXkF8n09qJ5m6Fxyb5JRpzMePdHXnvN52Sctq8+1ZpmR7Jyl720mjLZEghp8mdPo1pW1TF81rs3Vok5doXt8OwiNTC8fyYkjtEs4ljTVI69AAQXKKkwK9q8HNZRzTw95jmCmbCdzQJrfLCIDZooIlLAGWQgnfnAYS4qXUQqV0kBNg75DZRTKwwOBBlHBh8jBQ1DsQlPQ0kxNUOZgJRYX7VPHsowK9Jls+gEyVMPGE5QkjNRlpqvE1Qva5hjHwhwxEpZXONKtKRqWgSJW1eJGlmgjGHmRzqtEA5dinJwSsTHNA0EzBWMY9l8lMlVJKTBxv+diF8L/AVofxwU";
LevelModel = GameParams.uncryptObj(_local2);
break;
case 16:
_local2 = "eNp913FsE1UcwPE9d5S1OmjHymyqONCMDbqNbqAkwNzoQIyYlGyEhCjjpG/ryfWu7b1ubTcYvbtBgkSdITGaECMaNJgYIn+QYDBKQsTwB+EfCGpQzP4l8R8To4Z597bd/S659/5r+3nX3v32vdcu9CSKvILJLgXnKsHaNhRCjdh+rAXrrcf15WX9+ovXfg9efqO+ImSCpJLHgRhdvBePY3lkC1qeVzWhtsFa/AQ9RFjWf+Kdwp3wmcsBIdMQCKGnhNpGqMfSP1yfvXLC1QTUytbCc+eU913thEoe3fo79PgjV7ug5j/YvPwvNOpqN9Tse89+f2PdA1c3QT18aKr66yxyNQl13+eFicmP8672QE22px7/dBaccy/UxfkFBD2xwPoK32E5vNJ3Wg6HfcflcMR3Xg43+Q7M4VW+E3O42XdkDkd9Z+bwat+hOdziO7XFmeoJXmF6J68wvYtXmN7NK0zfxCtMT/IK03t4hem9vML0zbzC9C3Mwp4Hd2fPyKioEWu9EWYmt8LmCDM5yk3M5CivYiZHuZmZHOUoMznKq5nJUW5hJkf5aWZylGO85AzCS84o8ZIzxnnJGRO85IwyLzmjwkvOqPKSMyZ5yRlTvOSMY8zk7FGabdzCzPXcwsx2bmFmB7cwcwO3MHMjtzAzwS3M7OQWZnZxCzO7WYXBb9GXrJUz21m1hW3dwaqNah+rNqovs2qj2s+qjeoAqzaqO1m1UU2xaqM6yKqN6i5ubTMK5Bpp3//o1Bxg1TPLz4qt7146DjgPefpMeHzux08AFzyzvvrLpT8P/gO4CHnyrlaaTnwNWPP8Lf5oe/DV/VuAPZvKxMPDd8LJQcCeXaV07zy6rcmAPduKdrN6t3rxZ8CefaVwZaZjZn87YM/Goqa//U+MtQH27CxHd/S9+du5CmDP1jK27ZudX+4tAPbsLUeGYlF04SJgz+Yy0jy7ve/sOsCe3eXA7e9ekB+eBnwccnpO+ff01DOApyEPXqt+ur520+WTddx79CRi3aNxcI8me62lp7LuUut4uqjJfl1ixUz1bRST7Td5XSwPSzksfNGw+FxS6PO6+BIPHVGLWPhwa8z6TT4kEizLEsFBhKJvqUpJW1D9UDwnlulZ0fMTDsaX3m1hgUHWZnFRTWVFZQynxaKY00KohVifdECUiKSMCWsai2JGKmnCmqhGxCIZUMZkLMzPz1+I7bGOTKuatU5Vlq7S+iaMa1l1gn7mq8qoWo+SKVXJ0EXDKn05pebyMiY4hCJE1I4O4zIJdIiy3Gr/OyFhrTVX0khrRsKNYk4tKUSoawisfE2S5QFZRhF6AbuxdXH9HZp9ESl7DS76nAn6H4hPiSI=";
LevelModel = GameParams.uncryptObj(_local2);
break;
case 17:
_local2 = "eNpt1GtIU1EcAHCPu023MjGpHAvXQ7JMZ7MstazZfFQayZxWRuptO87l3b1z92jTnpsSFghBQU8qKrMQapQVFJHWp15+iIKy8kMlVBYGQUHvc25ndGreT/fe/+/+z//+z0M7FsQVQVQgQnezxgK0IAaSW1mjwvcqH9eWr2rmAqka1OyB6mSFlcAmKFRnVMvIK4lOEOWRZM6fgnmk8hE3xhzIXSUUdySpx5ib2i4/PA110WotGMf557DIX7XG//T5K4yaB42GqO5yilJZtLNnuHpv+12Mtjmtj3f50ilKY9H2xp5A67EWjHb0rRj5XmKlyPgXca25OOzPTut/AK7QcDqbwzcLuibr7hN0ccPT/AtLKJrLItSpmvSjM4hRwL6yIbjOQZGJRZ7hK9BeE0VQ/LWT19/XUJTBok0lVv+N58/IcD/lrWhgAkXzWOSIIFckRjs/DR1pT/pC0XwWVW4dOZz8IoWgKQn7pnftoiiTRdaqTetPHXxI2qgpmulJEyhawKK83abV2oI3GLUYlsUM5ByiaCGLchL5QtuWE2Rq7Q23OiakUJTF9FqLo95eUjug0ezRU4jZU1qGngUpygkv5glGtX1bXhfveUTRovDf6seo5kPDJUNnqJjF4Q2aiVG5YVHtu9uhTLkssv8i13eMSvrOFG0LnqBoSfikkZqyTHsbHDd6KVo6+vRntnefDcgfKTKHL6TzGCWn2fe97YqgKC98Sd7DyDwwvf7yuKkULft/WS93z4hPf32Uhi3hW8OHUcXXJ+bx/Rcpyg/fZHdIG02Vtk+xxykqGH27Oi2n+j6eq6CocPSN7/68v/Jq5h2KipiS29aq8YESrdYzh4lpPlFWNtXG3tDi929viowbbIpWjyeo7B90k0zbN4zyE44PvkwIUmQDOoEkXsX7bC435Lqi6bNLVJ4j9KFwmV3yQu5Alg4fgmU8goLgQlADwMSNktgo/4kGqvRu3qdUqtTMVepD2f6AVjStDnolSx0vOmEp7+XdshZMRnikNbwLuUQnlxjj5R2uRplLnCgj3ovyRKcAOVz7Gd1y/GWpJGMniaQ/gVTSH6CX66TNypgrxFpJBUwWSXQoyCYpry2S2yNABLUgDvFyvQ36kNpQK/By3VQeId5ebzQaY3i31CgiDq+v2GKXIOQJAohTai+E+L/Ms2VSv4UY6P2/iFYEwG9e6oGF";
LevelModel = GameParams.uncryptObj(_local2);
break;
case 18:
_local2 = "eNplkEFLG0EUxzPNZJuspiUHkRBc1mPFFkqjlJ4iwVpBaSShBRFlmrxkl+zOhJmXmoAXs/Uz+A3qF/DkxXwbT54qXuPsbIJtOjDw3vx/8977P3uBFHYAtzmEw1ye2CQPcahyaR2nB/TCSQ/paD2Hwx5YKwbbg58QnGyefCAve0LR8zVNvjA8pRFYmUrUFN6fu+usZZNFOnr1LGcqR+OUPtZ/kPyrxmQyudGANChJgOjbP1VuNTN5sDLjcnjvnD3WEujXp7lJpnIvkS8cUgzi2ffZoOGHQK+y09znJk+VZnK9KSTQy49FvZo6QwgCHyFHyNIPwfsqUUfHpZANzDLMWuhhaVYtASJc9UCKqsd4B2pMslDZZBl1p+/MR593qJOXrOX3FXWWFDKJW7wTQOz/d/GL/lkTSnOCx3ZG65a+pKQ8cWp67vK2SJP3VcFbBmoI81wVYS8ABJsUkKluAwZoHbQDpjyXIbJm12Ud5vN3rm7IW25bSLe84Spo6joqz0LR50jfZq3X8Ua+9pEUjKnPoA1X3qjYWDVmQM5PFyEhTwysr3I=";
LevelModel = GameParams.uncryptObj(_local2);
break;
case 19:
_local2 = "eNqFll1sFFUUxzvt5XZ32y39YFvrxqZ+EVvLWpqCSExku1QENTS2fhWlne3e7U6ZnVlnZrfbFjXbLjQhIcYqijFGHkyNiWAMwY9EgYgP6otKQF948QlJfID4kfBg8N47Z8c7nUl2nu7O+Z3zP+d/7+xMqEFq2UWsYY1k54KloBSSwoStzWAdXdcV1+0wr36wtePmobo5utyez8aVvUFrLkdwJ895ghSIOjEg1ed0E5V6aU4tz0QOjZ0SARySGlHpfhEyho+snH3rUw/UJ0IvHd/3/e94ATs1AdrkD0FNgGL+coAD9IB/426o3wXZ7XrkNvtDTuOibYM0YbGpimdNDFpfxTMONVfxjEMtVTzjUGsVzzjUVsUzDm2o4hmHIv9DqLwRo8U+t09bGGQI0GIfpmAAN7OAKQQGWO3zNfSSIGq5Rjl3i10YDUA0L+QuWbYyCyw1r1FbsiAg+IdSQkKrr04Kom2izpB3wgcZFFurORTArSwgnE5UarezeaB/TUapHQKuU5j/9ut3/7n9I3YUXmu6+8+TFwFyWWP9/UmxVv0VOyuA8q4NtPOxUxOggutQXb9xpfGpmAeaFaHckZHlf9/o8cgVRUgvlL9r++GUp/E5fwiEAZr3l4MVQAv+jUNNgA76W+CGXvY30y33iv+2uBt/VYQONsx+2TC0yiy4mdjz266TAdwj/vFOmJaha9MDNLH8nJi4oOw9dvrHFE0sPJM7PXPspwDewKDnRWi+v3HPxeXPKVTM16878fEvAI2LEISwgwO0T4RABDvCAL3g8s4eATtjAfSiaxcOf3Wm64sxD7RfhLTRrnd6L0165CZEaCZy46+zq097Gp8UofT7V2fGr684FlwGSBah1KbJS8flhzxmJkUoea356LX5M+JWcWjKH4I5AUp55bbhypxTABH/xmFOgNJeC5iZNv4mQNNeM5PYEQYo492WUeyMAJDi3eBTHmjGe1R+duS2A3TAe+guO42vAKR6j+9njgUVM7P+D4I9pwyQ5v+YwZwA6SJUvlD/x85VBhUu3No9/PqJAL5DeBa38vf5oYfFlGxRylpXvsFOcgC3U+hwtwCdH7ntkeS9WwZxBT9nQ8vI5RqXfA87OEAZqVNl8k/KxTElS9CHAfitaPx3TbQSHp3SDYLe3tZJv/dGZYuoqmKRYD0t3yEbWT1v8DFQDUbxsH2DvkOjQ2qeOHSbrE2rZKeSTqPx8CyRc7oWkhq4AJICqJa+huKRQl7ViCEnVVJLa3fzgnfRUvdsRKXB+0JSbwUtd/Q5RLkDEPraXPVAkaSu5U17gMX90axc5L1y89F4tDKwDSxZd2aIoScytFkyIhty1qQjWtSMZ2XFUrRplAobckrJm6grYlqyYcXZVFy58zGaOaKblGOj0XFYa1LUzOizXHK3ltbrpM0JXUtxZkzntxN6NqcSi4SkFks2D4yRooWjU4Zumt1pxSCxWCwsU0c1C9UE8PrHFVWNq6rUwht/lNChdvSYrPkEY4ghdpBiHx+S9B/RptA7";
LevelModel = GameParams.uncryptObj(_local2);
break;
case 20:
_local2 = "eNpFkE1Lw0AQhh2zVhtpaaBFQkDaoxdBKOLBgxpa60drIQHxYtnaMVm62S3ZraYn0f4Ij9705/iTaj4oXgZmeOZ95x1zF+xL1B7VyDnTWAZwIprc4gvyjsBoQbqNsRRz5T3JGMnHYyvEWLohFQEOaUwjZYKjQvmab1yJZ7lZiemEzRU5tXspOpSKaSaFCUZCltpYpAUaStNYn4uAI1mtVt97mkV4T1NQBOS9B0euFJN8zZe5sCujGUeNJliaqqmPiS61xlKpw6amU2yGmOpVaCTnQhMo68UMS40bxrlP4wA1WDxT6SKm7gcqi+JmKMb/51VJvUbq4ORkn4ki8FJb6XvyT5QNMGF7JhWZVDAbqHxS3TobD66/ft+O90t2Z9DpP4wu7jxv1LaYKtyN2hppA9iFPk38NDL52XHWfeH3eWKvD8iBDfgDugWJRw==";
LevelModel = GameParams.uncryptObj(_local2);
break;
case 21:
_local2 = "eNptmnk4Vdv/x4koIcrQIFQUikRJkjQgSmROyjk4xjM555iO6ZjKUIZSKnXTqHmkWyppjqJuiUqjZkqlQSR+e7l999t9nt8/PU+e1/6stdf+rM96ffY+CkOkRzqwRO5MEYvNDhOxBktLj+YwYxezollsOy6LEydroB7A40YJ3QN5ApZs6sqxoSwBb34okxvCcmUKmByhgvRoYSgvpu8KR24wT0ZJwAwKixLKGoxcSKGuPGGYKIzHVZCWiZVNnSwTR/0jrS4UMQWiudwQNku2t7d3r6YojMPyZlIgN0Q2SHrqfB43qO8qD15f3Pk8Dp/NErEUpFVFTGGEBytWJKcjYHKDeBzdwFAmT2hiYqLE5PCiuCLZoMGiOD5LbuiiMDZ7LpstrcomEexZ1ORtDYXkLuYTjiXAzJRlg1Rk00TSo/tQ5zDuvzebJlKllqZvFQanj5VWkJbn84SyqcpKLPIn4WAZ6k/KA235g9QutBr4qwy09T5fVja27rm23Mi+i/qm7m8mTWFGsqlDJ//vgmCZLtWTdx5RFwhnH3AwUZDVljP5A6nQ0FKva47uB3QpKKzxsJlyuhYgVRryXKq+31p7HwWxXl5s/3J8HKBhNGS3c8JDS7sRFMS5c0zQUaoLaDgNiUO6XFhyqRSUYmM/4sSwG4DUaCimwTxqovV2Ckp1KXH/qmQESJ2GAkbtyOBM9qOgWOPAXM3kfnPSoKGUoXnu5TseU1C8XVtRxrVrgDRpiP/t0S+e4S8KCuydWeXEcwM0goZi7W3k32g5U1DCbse9epsyAI2kIdHcgpK5hWcpaN5igfy6kAeARtHQirtWerJ1Eygo8sJHzocMEaDRNCTRqWTMNraiINEdNxmhwXdAWrg7naFLijNbKCjKw6f+tdN1QGMQyT626HlUAgUJlGqLhvj0eyzaSJUGeZ8pp6ZSEG/C94urCxUA6dBQqLhe6kWbLUnAoVdOpLGqAOnSkKDRaubG9xEUxGhNyHhjNgjQWES6F+3VPt2MPBZD+7Fnb4YCGoeJZ1wwNbRhkBX/urFqoec3QONpiDtsXE7GzSqSTzfsjyxfkQVID0nXpXZvprCdgvitrpyBJVaA9JF0/xxs5gQoUlDcg4urVlQ8AjSBhuI9jJLm3gqgIMn8u4fn66kDmkhDzAO3th8oaSUPWPlDafnXZYAMcHcde250ZN2kILZxlZTd8yWADDHxp2s1qr5+JnMKHxWzaZ8HICMa8qjqfXLi2HOyzZ8cmjhC3AtoEg35pAWqFZXOI1kw+FHqJ8v1gCZjS3180pg01ItkQdwHh2OHJwMypqFZJ62m1bpJUVB08KXhWQdLAJlgnYxCTHSvvqGgREf1gFbpx4CmYJ2yswd/fLifRLpiZMk6Ig/IlIbCPql8asm5QUHBlmF6exj7AE3Fvrs16f3XvZtIfZrza2/r8ZOAzGgokdmhb5tLyqEkWqX859F+62ROQ/4VzqXD/LTInM6abNo4q18WTKMhRnJn8aTkOxS04p+g0fKZaoCm01DCr82P3ZdOIlkQbxr3Rm8dDaV50ZBvd9nqh049ZLjXPKPs45f+W9On/bnAG7Vq7YZvU2K51AUeq/kBGdk92nKmfyAfGlpgftzzrW4mBYXkM+pu5W0EtIyGOL0aNS2CyRSUtFjJrLhqBCBfbIpTFwXiYjGJdNG1Xc1hPKDlyFKlF0/GpA6kIKbYNHlQgRogPxqKyJv4VnfRdHLONL9x3JL9CNAKFFljTXdulYCCYjq0Iy3fzAG0Egu7f0prU+YYMqeoiILHH7YD8sfCbuY/XzicPCJGZ5xdmJEjIAbuzrGUkyKeSXJrkM0urS1PATFpKHx7vtOWILK9mDPMWp6GcQAFoBILLH84LLegoKDRVpbxnH6PJRCbQqFtfWujPLk7Ldv8KS8rAAUhUpvL6YJ/XlFQeNxvDfXkSkAsGopeNHTr0BulFJRsuC5qWXMNDa0agOG6dVTsEypIaWQGb4y/J/hvbk3/c4EMfUHqGM8CNxNSbaLvjcvUlzbVlvsjFatk8bBT89xqi3IpyHpl9c7xl/IBDUQhyV54WfX2cgpyebpeIHviAyA5GkpWnZRQNyuWLMexv7rllISA5JER8cLmkw/3kE37RSyJ+7gY0CAaCtHdX3H2LDniEtKuTWsoLgY0GDVibbTysMTxJN+/5q08IAkHpEBDkQc0Rx+5QR42S63wwdumOYCGILfs/GZOFJGHHTXs2dbQMhEgRZyD+zyHDD6tQEF63Org+98YgJSwmB5OOpXtgRQUukNbL+2mNiBlTPxm971W2cVET7bbzh20ew0guJ7455qvpU+Gk4J7yHu89/NKQHA9328qn9WSyW6OT8/cyx3lAQiux58QZazwQo+CvArv1B/qHUdDq0Mxp/MdjY/m1pPhdjUaGpdJtOXM+7uov5AfJmCyJ/kHM4WiP1eHY5UXz5tu/OoleV63M4fJ25n8/1cb97+ajTruHPE5TdqHHGUjwsPc05215Sz+QFwaiprjp7R0LSk34pe/fmUYRAPi4wyuObXatuQwKdFjY454TbgMSEBDcU2VFtYBS8mG3DPRivv3AUAipGltUmLT3zYU5K/nF3Y0qEVb7k/tXh0N6NZmFztZewoKmGTvXDzBEZFiMfFZdUvHzSBeIJY+WyAbJQQkRu0+c23yfh+itcnmJvpBiUoYLgHr9Mq6ziWykYIixJKLahJtREpCmpre0l5nPYAULlXDV2/0dWkoUwqV5ECvjGP9ehLpk7KgZvY0erhMlJvI2ld6n0+TSB7+2gyNxQxEQvUIG8NesvnDIZLLSvndOUl2iITCwK2ueNHYStJUsqo2SV5yFpEG9TuDT91yruWT2t1r9YOTLItI2M7sOpaOSqEl2fOHrcNqHBIQCTs19tMJ3dV1+cTEtnTxL6+tRyRswtCfucq5leQBJ/jUO6q/TEck7K8EWxmteRbhpDDkvneovKIECG2SxHlda2BLMVnMLd5Nx9t9AKED8vIf/XX2UVmi/19O/RjsdhAQmhsBT7xOXoWc4Axpyc6xhjKA0LdEGbZFbzB8T0GuMXuvO23YAggtSeKAicf8anaT4UYsf8g+FAEI3UZcvPOmsc3TSMPl1PbbaQ0f64RGInZCitrN7aSRCK/fvGGHkykioUfgKYT1LhlEjoeg1JWsF7tDEQn6z7B+dqfzO9nBCemB15UW5wOC2TOUdSNzQ3aSw9k/Vj7FZAkgSHvM4YPW0y3IkRrXtOMRV5aDOcHH4+LiN7wNOEWyQDGxpWP6N0SCantPP81RmUTWKbxq0S+fbbsBwaKDloV6aW55TRbznINl86Z9GK6/INfUxiyaQw4/cXV3VdxKRIL7su5nN/udkZB8qn86RXdDvy0FrRVXv78/cUcNBfl6h9oWTrBEJBhrcPXho4uGLyG75dS0dxrzggFZIFXYFzyTP6dTkM+F8ZGbT/S7O0usk/xcQVYK0dqkg7uOuVmgqmRaIZ/0enjmdd5km+9R+/zdPAqQNYarOl3+3SCHVDrHk1Zd6xIB2cDHS8vEDZpryG6ZmhKUM/EuIFvMiSs3Li/rGQV57m6/3eKSC2gelqCQ/yPiS1XfY7ndWOC0H3e3gIYCR099+Kh5NukUAwd3Kna/RiR7iMvGd95v2e9IPsUkrQ1YyESkhagFR8dzf5wlxV5YYOHrUFqNSE6odLMNm77evkae3d6oehcbA0CLsU43H/wdL7+Q7ODnJTb3VMow3BLM6Zqq7p5v2qR1a5WvEob8AOSKNw8xZomZFqREC3ac0zulWYbh3HD+W1QoubYTbUwUfzlXO9kXkAfS1zB7uf590ibFVV5uZrGvYTg0N0mmSqVHssndcb/4rbbXb0Yk9CrJDzpOXRhP+jt+rZybr+AsIqEN4XXdmfNSQl4t+Z/orT68xhKR0GH4ThjT5lpjTSLVfHvC+HYUEJoHT++zjv7ud0kWfG68n6yojOHQF/gxs8/PYF8hE9f/5r3ZtBEQlF/8bkQ8b3kH2QjzHzBK74sxHGyeb9BwR6x7kBhX5lsNsxg2oGDcXeLppr9uR5MidsI0NW9pNyAYF//dZRMPkx1kS9m0VVxqdMGcIFbxX9a1RBkPIknXuebnRMutiNTPnwbGZLXrkuNVtDBxapNbvwMI/hS7fduuBW4bSbHnhrFlQ8wBwZ8CvWYf5z1xI31wup3Uu64GQPCnmPj1UqEdGmTibPXB1VKbMHH409LOoG7W60piYrmxZ8e86Dcc/Il79KHTymFtxAt4hZtnJmgBgj/FvR39rH5BXydmdOD7aM3rgOBPcddzf8aeFJGzZeWvkhBWOyD4U3zuDF3O4m0kC2LO3+x4EQAI/hRZpzq55DhpIcU7ZzxhGynQUBb8yfX0L5czOzzIile+GhOvsI9egiz4U9xMv5xlJ436nO5Ug723LSD4k89Vx7vp8aQ/ieB5/nPfvQcQ/Mn35V9Ba8JLyHDWydrK0pWYE/wpOur0LdnOdWTiFXoJHQ0o0Vnwp4A5Jc6O/sqkFgQFcAeIoCFZ8KfEDcLTc7gG5OS8N513Un82IPhTbF1ekPzuePLsBt6zXWueionDn4KOlR9/M0ajr49LPrC5rASR4E8Jd+PmDakdS/LJ9TxfM5yNSPAnD59nLUkDDpAlCKgMn/jmL0SCP3Eua+9dPoy8E0tytL54XANekAV/CogtmGGwg2xO9peV1qzKQEDwJ/4lw9THsaSqeCZtTO2Z0405wZ/8x/zYtmckuTt2pcNF79ObEAn+lFjCtHotJMdrcK65ykul94gEf4qJFB/f5XSp79ldaGnKfg0I/hTJ2d0hqCsj67Q6bb31nk5A8KfYU+9+te98QebkPv1YywecLVnwJ8bM3syNXSR9xTV7i9L3ZgGCP0XsXGqkkkMa0CAfe0b3qhxA8KeIR/nMgLQFFLSsZPjiYamQ0Sz4U+wUl5XSMWFk4h9Ny+LzWwDBn/wf6++udiBmz75vxH4Qz6ShbNQClvqQOUHdpEcQf7Z2n/iByoKp/+0zRQIeN6Rfm5mD/egak/PWwa2nz/Uqj64oVNSWM/7vxVF8lqDfpdgRKdFSir5qK0kZfuEx6YAp1UJb/YGQfQFTYxRfKpHXWLbbVd19b90ARD/pC9WGwuorUuRlayR7lPr5ce7acpZ/IKyq88+QR417zpFDxuzS+t0FXEAwwJQ4VvmKgE/kdFxfHrXJNwfDwbYi/2o7Yraujnx4KQq9uGVHHSCYTep51VjbDBXymuh7/OXDC4YBgkUkpu7L+vBcnTzEHa3Xu9kvAOHETrh+aG1jBsnj8KWqMod+rgKE05Eh/zHdtIIc624j1veoM6oA4STy8ZXs2HydvPGUeG7XXraEjyVA1fcKk7x+f4ycH8zfO6cx3KfRkdagwiZOSx4+fewQspVDNDX+rhgACNVMnMU8amdIHMmjSMFsplUlIFQOsduUroIeUoPcz2fGPnj3BlC/jxxtqXk69kQQIjoD5qS/GUVPfA12RNiXlcyLarPI3Y1XtBRoXQAEexeYnfGdrHKEVLMHKTMu6GkBgilLsn2SDuUQnfa9UqW6dHcX5gQr9chpPZFt1kW28q3lRUk3tyESDHDJ+50/b4eZkgbGwSZ6d14TINjWAulog6nu5IuRuPz9KqtJwRgOZhOl83XR5ASiGqlyOdVyW3QAwSJ8fX0bK46TZ+dfOE7m9vErgHBiJ7gqR6Q/IIofcvCKtAJTiobW4nQMmLmv6Oc28sFTLDO3oCKNAQgnkajp0+BWpSAKGseyzeP/3Q9C1U8oT9Nz7ySpwtm4MNkrwhQQKmzKwL2DvfRJU5Wk+HPW0VcLAaGauY+3YC8SkUMmdntPw8fV9YDQeQUcEyQZOcaQFa9dMe/uU296xdeiy/Hs5MybfH8LgRrOldee+gkIHQUv9W6Vrx7JzJSrqtxrnIMYDvYumGRTqldfSHxE+bCR6NxCRIIppy5+uGx2BVGN6E91Je+qxiMSrNQvzPTa52PDyBIUbP0y9hYHEAzQz4SpGX6RKH7c74tmDmdqAMG2XA3vJXu9IK8gOM/3D7VZJ6HnlAuzSXhUFZZoSuw9wkN/Qs35d3SkXFgEo83MZ9d68iEv3uPGuWKPmYC0+rWx5+q4bSQzucVXk+oZGzEcTkfBgUwD+72uFGTDMv/0eftnREInn2RbbNTZcYKYTWFPqUvPI0DomsPP+U46M+ULeZ8z/pj+yHJrQOhQ3SR2n84t9SV3l+j1xk2z38TRDSaO3dnTlEcOvujNF8x/JXwHhM5L7CXD2XSOQx6w6Reb33cUAfXrcryDG3SMEinIfpOOaEvPHUDoKDyEpkOdGaTX5bpvs1PdlgcI9p6q6ze71JnsO/5pY597KhY0lAdTjvjWzj/cTD5BSBzMF58dvgUQrDQxibEsnEs+QUhSJy/YFnwXEAzQ+7jazpvbSKULOZkRVNujBQi2JbiuMyXzOY9Eei7TG5ZxGxDMZoXh5w2jni/oO80Lsx1+tAHCWxivLxHRMgHku5xww6UF76OqAdFvPKq0lszY2dxMTnNOU+dx562BgPB2QdIcLJchIge14GrHmiSLpYDQyS8ZUt3pwCJdM2+7neLUKUMBoWuOjp5ZEalJusFEmSG/e1mP6PTNQ4caVzT11vzvtSQLBo6w+H0mBpHQDSZ8va58g0c2AsM63p9bi/qUB9uK2TrE0vAGSTqJ8cXJytsa6eHyYVVJWi8tszvI7z/iS3p6NPetpCPlw5/EESll76vIEqT0Sjk0xBoBgj/FTufFe3gZk7uTmjm1fZcBIJhyZJPe6g99H6J0d7VPyUuEPOQb9fvok96QnEb1AVX6RSb3j13EsZEPf2KPP3x3lhPpl1I8rYceZjwBRPtTlbGs3S/3avKThUgvjavp+zoAwZ/4kv1Z6g2k0UuSjvguuQMvyIc/xWWf6PY8Q17YpUTte+8pRlXJhz9F3T057VIX+eFKYv6qrrLWEYDgT/GTTMzl9ceR8y717Kek3seA4E/uulcXOYd+Ix+inFxeXc6owbODP7lUOKg9v01eSodMLf52p+g9HakA/hSX1sorPkpMzKdWtUbvQjMg+FN015z9Xs4OFDRLS2G2vH8JIPhTdEmq7RGbvoZ4i1SuzruvgOBPYpenof8IyNeqxGCzG/bjfAH1+13DRB+Fr76DiWEM7b4rl/eKvrsC+BMjt3BfWS6B4j8+eBKzRw+R4E8xobZrl3eT+pR0KV9jmPRdRII/eUk1yj77SDaCz9bm+LnsnYgEfwrIm7/59qFdZLiBU2acj7MHBH9in6xxUa2/RV79DUhatEgXJboA/iSpyBr5OGMtKfYx7V8L7l0FBH9KcbHSCPUjv7WIdXizc4ZrISD4U9xTw11DGiPJB6p7wlghH/tunVw/oVHUs2n5QeqT6lqP9pQV9BKsgz/FZ3fuVtpPfjBme7TQMtlZgkjwJ9G2t1mpquR3MikZLr0Wq9EBrYM/eXkYaWc9Iy3JcjXTusCCvYBM+qXKoetWDzOI1o5oNDw5/hIg+JPkpsGi6wPSyNv0f9oH8iPjAMGfQt5K/dZcTX56xqwq73Lx2gQI/iRZX77rWzL58BK5QLG7uPwXIPiT3Sh5/XdG5LzjRjP+VmTY9EEj//3pHzPWI4zDki0dNPp////3p4BFliP/99vAPkBK+v8AopVe8w==";
LevelModel = GameParams.uncryptObj(_local2);
break;
case 22:
_local2 = "eNqFk81vEkEYxhkZUTC0ixYrISE2MVUUSQGltV5a1w/UakhK4k0ydkfYdHaH7AwKN0N7UROvPRk96c2revDjP8GL/4BnEpwddmcETdzDJrvP73ned943kzgGMrcw30YcE2JzHAcg66DeFn6CyQ0XO31opR9Rt8u2d6iH4eDhUht71Gwjt4XryEMOS4Asa9On0nHbfUyjSQ9ZdpfBc5maQOuU2dymbgJEe3BQiPbFC6QZRx7fdFsEw/F4/G6R2w5+gATotqAFSiZ1LelqUJlrUqdDMMcJkOKI7TZwj8eW/Ax29jTiHO3sFovFJHJo1+UwEuf9Do7N37UJ2SQEpIgfcROL7jfyzD+G6XPY063NQcuAexxkJXrPdien3eMpMRs5hngJJMCRDmVwMJfE/h8WjwLfub9uiCPlYhXJyXab1abfXJN1bA+Ri0Bw5+FgvjBxHN549uF126ytipKVXKwYyEYgi5+GQrScCuVBwRA1tXBcxVpvI+I59C/3CQXVXy58+fm1Nl17IQzPCbP33Y8BWk3PmO8IyHoz9h8NndRtSGlkhPh9DS0qyPsm/QbMafXU1ASCWlrOzMyvqtoYKej5Spixv/yftVwIHCUdeyYJPr/6JEaTz8VWArmsmsobCtFyZWoty1q4pGLxD7WWWfdlBTWGB78qL65N166G4eU/1xKqqzPm6wLCw2AtIbSm2xiGa5ngNQ1d+XstZa2uT00gqKXlqzPz+6jaGEkoM7lTqNcQdxy+P5oNvyd37GAtE146CUTAb52GL/s=";
LevelModel = GameParams.uncryptObj(_local2);
break;
case 23:
_local2 = "eNqNmH1QVOUawPfAusIKiHx/WKIoFYLKQkYkDJ8KiF6DRRRF9sieZRd29yznnP0AFnR3FTcwYxpKJ82crgNew4/qjpN9mKNlRlJaF0ev3rk6ZllZptOYfSid/TzP+1bM/sn+fs/zPu9znvc9y0qnEIlLKK6G5CitVsNRoaGElAg3U6SB1hPhJKOjjQwRTeqbtVSpRqUS18d7PquiTJRWLArl2g2UZMYShqL0/hyyWJNRq6cYcr2WCgq2iO0Zwe1iJZ83iBATErEtJ0QskkrCIoIieRQltpX70fj4+CAKHZF/G+fgiGQdaXFXUqandPwasetpvZGtaaIZSmxfN1NNMXSJmi+eWkEypI6VEsmsmja7Iyr0Kjo4nCGVGiMrfjSxnFdX0KyG09B6KeFZwJ5BxLIcyXBFru27i4vnNDqqjuQ1fTO/pawSWq90x8hpd9YSWmfQUhwlJaZxJNsqpyyc5AklrX+ES+E/TuHUVEqzq1dsCkenKDVUOMk3U8+59jV1qUarLdJqiWlaV6bFFL+FwsdY115KXA7FwPqUnv271WUavWfLDm4a/yzdvQi1Z/KNm2ygWbEtPZxyfcSGBhPeUHuGVJLo9txVN8oIniwU2+bm+p1JhZ2yfhnb/kAqyfPSDEg3dpYMXJ9zUqCZkNqS9w5MfrdOoPMg7d423t9KnRfofEjNaT+kkm0vC3QBpNo3Uo/mTz8t0CxI13xAHKtW7xOoDNLKsiPvb8rbKtBsSKvnXFt1/txXAs2BVPnS/3cmThn3U3uEjzo4T0N9YCoAf+6iPRLBeBvt0xCM99EehWC8kfZoBOOdtMcgGG+lPRbBeC/tcQjGm2mPRzDeTXsCgv/UTsaHN6V52jkfzmcjSzVxNNOYvWCu12e9Pt/Ck6/qbFHLXfv9/EzR0NtvSiWLvBLnlzbEPHf19V/Secm66uK5+rtlf7tApjfW6I/tXDryzd2uKXzshv/sb18SkyssYPJLphdup/baGNcjvXPm1r6CIkEy+6U248HjU60PXA/2sbnF+y+cEiSLX1LfoT/Mjq12ZdrSd9vyL5lUUuCV2v2Sovb9OsWM110zUHC9/Pw3ywWpwy/JQ1od/70Uwksd80dmqjpOCFKnX6r8tyH7wmv3eMlYrbi8uCJeqMmKST/xkiHzldSjR24Kmbqw5YJ4SbWn9b1sqU2QurHCh3mpQdxyeW/9WUHagLWgipeePrmHyzti8tfkEGHN/I2XKnRLx6rZHf5MDgJ7LAZeqvoia5I1+UchUxD2gEN5aeWBlUnXDiUJmYKxCXqEl9Yvr2qojNYJkvgvZrG1vtl6uBfUtBIfcB+oC2CSHasmmmRfptUBjKyjfqKR9WVaE8DIOtZONLI+qWGikfVJ6wIYWUdjACPrUAQwsg5yopH1ZVofwMg6mgIZWWUgI0tNNLI+SRXIyDZPNLK+mtQTjaxX2uS7AsWbpa5x29Z2/4yI/6aSilycKpLlPP5m/7uL/6r0KR9B1sZ8vcMVUegVMpCELQODpTkQL0Ywm18TJIO4EUuv+rk2WAsFMxpfdfF6JcA9EVi8KXPoXhQUZmNCW+TunhgoPIkJugvluy1QWIYJzHBZWAQUFJjQYrH+tAsKDLKH7vjDeSaAtwRj8bTKNHYBCtFIPJVwL0wE8SwE0x8/PVYI8QK8A3eO/vgBFPKReMsTo+Y4iCsQbModqEuHWI6lZ38xbzwGhXVIvOET23MMxM1YPJVX3IeUR+Mj8rs6KRcKJlzoGbq0DwpWvMF1O86GAcFJYIJh9kMNN6EwCdlDx8yRFriAMwTB5u/2XymFWIpP0Lzai3CKnWF4D4dlIwYoRKCnQNH3XRLEkej6S7bY4fw4oxDM1Y62vQpxDLZ6F5G2DB4RZxw6v2+Sl/shTsDiO0TfS5DuJSHxXQ/NPlgA8XT0SlqWJDoB8cMI1pwcNa2FOAXB9aPfn0WKm4UVZ/kypmwvFPALwjh9/PJKKKThQv+LL6dB4VF0OMrjEiIhTkfwms9W1MLpdaL3Jzd0y5AC8Tx09xWmjUhy/HA3P5WH3L9OGRKvZeXH4eFy5uCXw9VRAweFhejmFh3/YhDiXASv7uoKvgFxHnr2t3fTz0O8CMHG/AN7kLkrwIprTfnnsAIKhUg8mTEoWwVxMVpc/N07CRCXYunNH+fX7YYC+u4ynq+ZcxricvRQMofkpyCuxC+2gcFnM6CgQVt7O25sowtnof/DcAytbwZv5GfQu4j539mGra6wYi9Gz0PTrtgHIojzsKrWcuWXEKEGTX9j4eobELeiRed3zi8FuDcIPeo936qvQJyAzkN9dOU8iDPRi+bacF8BxEXoRXG/5gosrRd/E5l3RTNfQkGFxOvHbjUoIUa/algtJ5zpAPdNRrAic9EhOcRx2Orqq+8ctEABv2g64+/v7oFCFv4e277iH7C5ffmYoP21d/LvUMAmslGz+Q2Iq9F5Ll699xjEa/Cr8obp9E0oNOHCO5sfvweFFkywts3qHYGCAc/w0c7XJFAw4m/CKzmOt6DQju5hDzFjB8T4q547MHPnCSh0Y4JiW3sEzLBVhAn1ynO6w1AIwt8Hp+Q1/V4h0fPjHWmRa3SUeCgk2fe358e87bmJvl/33IKI+AMBGOzs";
LevelModel = GameParams.uncryptObj(_local2);
break;
case 24:
_local2 = "eNqNmWtMFFcUxx0ZV0FBEBERu/LSisLC7uKjPioPRURBBKpWLXRkB1jd3Vl3Z+VhlQqIr4So1UiyzTabgk1MTG1jo21ia7+0X1r9YmPSau2XPpPWxqS2TWzoLHvPjIzDP8sHAnt+9865vzt7zjwSpnMZG0W5QZBFl8spi/Ecl+kWOreIB0XXBo/o7uIdaXslT8Df0CL5RL63Kbtd9EkV7YKnTawTfILbn8Bl+tuljrERmzytUlyiT3A4A35+cUaVgtZJfqfslDwJXFwn31sQ16X84tL8suCTyzxtLpEfHR29lC473eIOQQE9bbyDs1ZIHsfYqEZpbN4Kye11ibKYwKXIgn9/o9gpm1Ja2gXJb7FYEgW3FPDI/KR4ucsrmmZudrpcZS4Xl+KKDK0URb5PzvdH0q+IcKJPSymJdyQrUS5zDK1xeqKr7JNTFCdjy4/vq+ASuKleyc8fXZIoRj7yx8dxkaH9i5KVtZhNGWPgWJ7NVk4JLeGPLi2IQlNKexwprf/aDiZPKT30KC+jsCbLbLIwqECFOs4T9Obt+Y+uWW5pUKEK7b/3wJYYTDOCLCq0U/rEkbl8idHhihjE25So79Yk5YfTosW6KRYpUEv29a9HxM81yKpLJlWBtpqt/M3Upxpk0y0roEL/aJDdQFD0cJ+qUG9SgU510bOqm/1iiyz5mu3FhYyfiawXMygZWScoBVknaBayTlCqoXWKzkbWCUpD1gmag6wTlI6sE+SL0fpSxvuRdRuDZGSdoACyTtBBZJ2gDkPrFO1E1gnqQtYJ6kbWCTqErDOobztl3CdHreePt+51+gQXO9H7dqgzvnH/2xtf7j6nzNg999crN+/VmE0lDNqpQgffJujIu0LPwAclGvSqCrm/qB48UPW9EbRLhYRKgp473G5agCOaP32+Rzf4vjK49XbBcP+2dg16TZdGBNrt6+Z+XG3ToCbdgs6qULEGNevUnFUPJ6pQ/ypVdvnEstn53b9anbH7leGEC/1XlBk7y98vrxW6zablDFqjQoERgg5dPrlghP9Jg9aqkHTt+m93n1xSoZ816GUVam0k6LnDraMFHJ0TXQAFSnWjR5TR+7rDh1rWJmlQmS6PCNRy+fdbHz2xa1C5wYqikE2DKgzcRA83Q4WOmQtAx2Tn/7EFqIqsZFAWqiIEZaMqQlAOqiIE5RpWEYrmoSpC0EJURQhahKoIQS+iKsKggcmodtue65gDccj6KgbxyDpBU5B1gkzIOkFTDa1TdBqyTlA8sk5QArJO0HRknaDWGK2zijLQhqyvYVA7sk6QE1knaB+yTtB+Q+sUdSHrBLmRdYI8yDpBErLOoOPVqGPaxnfM45tRx3yZQVtQxySoBnVMgmpRxyRoq65j0ud1qGMStA11TILqUcckqAF1TAadsKCOaRvfMU8UoY5ZyqBi1DEJsqKOSZANdUyC7PqOSYES1DEJWoY6JkHLUcckaAXqmAw6OQt1TDuDUlEVKWfQbFRFCEpDVYSgOaiKEJRuWEUoOhdVEYIyUBUhaB6qIgRloirCoFOLkWp2vXgqH6lez6AlSDVBS5FqggqQaoIKDVVT1IJUE1SEVBNUjFQTZEWqGXTai1QvY9ABdabDX7l3zsiyJ9NfypeokkHqLWpvQbIymxbQ7kWbble/c6dnuTrarkGyoTmKBnRTRCA2mQZpN6G+z0YjP8n8M+l16NagTaFBg/ORjRUMekGrzYf/Ggw1ZEWazd8N3twHp8ymKgaZVchz+pustx5Pi5xT/32XXlvyVIO06+v6qz39TXciO9R1/MTjX0olDcrSQbICtf35x7yinjwNytYdLkmBtuTUnp5/daUG5egSNyvQrpwP13lP3lWhM3P0CgrHN5WAV/S1Cn6Z4elIRjWD5iIZBGUgGQTNQzIIykQyCJqPZBBUhc4Hdn1/ZpPahvMj68pL5D4evGE2bWHhavVA4g+R03qyEbTZ8PSnqHYNJD6MnNhPFajx4cXH9lNVGlQzLo1oeL0aPleuXwpb47kK4/QpvB6lT9AGw/QpWonSJ2ijcfoUltFOvMSgAKr2tQyCz6oI6kClmqBOVIUZdN6jT9w6/vsk+yRPW7P2jTovGe9HHQt70X4QdMBwPyjqQ/tBkN94P1j4QpZ+WZnPPq1hjy0vZKMNqWcQvO0nKBdtCEF5aEMYdPGIPnO2pIs9UPzQpBjED3FI/NDkGMQPxUHxQ8VQPHvXMWRF4hsZZEPiCbIj8QSVIPEMCiZNID44E4oPJscgPpiCxAdnxSA+mArFB0uhePbILFiGxG9nUDkST1AFEk/QeiSeQSHzBOJDC6D4UFYM4kPZSHwoJwbxoVwoPlQHxbM7r9A2JH4ng+qReIIakHiCGpF4BoUtE4gPF0Hx4eIYxIetSHzYFoP4sB2KD78OxbP7sLCAxO9i0F4knqAWJJ4gBxLPoGHvBOKHD0Dxw74YxA/7kfhhOQbxwwEofiQHimd3ZSO5SPweBuUh8QQtROIJgg/EFSgj+r5e6Gx0ukX+vWmZ9H/0/f3FlRn0Qn8MmMT9D9NmdI4=";
LevelModel = GameParams.uncryptObj(_local2);
break;
case 25:
_local2 = "eNpFkE9Lw0AQxTtmqTYStYciIV68qfRSD+K1Bv+hQqEFb8pqxmZxsxOyU02Pth/Cb6AfsyYbised/b03742/DeE18lgyaq0YOwBRJst7/EB9aTCbi6T3QmZmx69UoFg8HaZYUJxKM8WRLGRmfYhsSp9OcWveaCMoZKJmVhyFNxU6IqtYkfHBK8Wi783FkqFnWRY8NFONYrVa/eyzyvBRVqCZigQGMZnEqSbkfGPKco2MPnRZ2vcJltyGQGY0MyxaHZ7n2N69U1oPtYauriVXWKXtH9s6dlxzWPxH2am+9uogkWMflGnqLblbHcP17njgw2ZOVnydBFhPrBs10tODduiwC7L27HkAEDZOspxUVcTvVrR+N87f5+F6lQNa8AfwQHpM";
LevelModel = GameParams.uncryptObj(_local2);
break;
};
}
public static function set Money(cost:Number):void{
money = cost;
}
public static function setHeroArmour(arm:Number):void{
HeroCurrentState.armour = arm;
}
public static function continueGame():void{
loadGame();
}
public static function getWeaponModel(type:String):Object{
var BulletModel:Object;
BulletModel = new Object();
if (type == "Bullet"){
BulletModel = {};
};
return (BulletModel);
}
public static function getPin(x:Number):Number{
var res:Number;
if ((((x >= 0)) && ((x <= 600)))){
res = ((x - 300) / 300);
} else {
if (x < 0){
res = -1;
} else {
if (x > 600){
res = 1;
};
};
};
return (res);
}
public static function getSatellitesArray():Array{
var currentSatelliteArray:Array;
var sat:*;
currentSatelliteArray = new Array();
sat = 0;
while (sat < LevelModel.GetSatellite.length) {
currentSatelliteArray[sat] = {position:new Point(LevelModel.GetSatellite[sat].x, LevelModel.GetSatellite[sat].y), skinBody:Satelittes[LevelModel.GetSatellite[sat].type].skin, maxArmour:ArmourHealth.Armour[LevelModel.GetSatellite[sat].armourLevel].amount, armourSkin:ArmourHealth.Armour[LevelModel.GetSatellite[sat].armourLevel].skin, armour:LevelModel.GetSatellite[sat].armour, angleDiff:LevelModel.GetSatellite[sat].angleDiff, priority:Satelittes[LevelModel.GetSatellite[sat].type].priority, radius:Satelittes[LevelModel.GetSatellite[sat].type].radius, alphaNdx:Satelittes[LevelModel.GetSatellite[sat].type].alphaNdx, maxHealth:Satelittes[LevelModel.GetSatellite[sat].type].health, vulnerable:LevelModel.GetSatellite[sat].vulnerable};
sat++;
};
return (currentSatelliteArray);
}
public static function clone(source:Object):Object{
var copier:ByteArray;
copier = new ByteArray();
copier.writeObject(source);
copier.position = 0;
return (copier.readObject());
}
public static function uncryptObj(str:String):Object{
var ba:ByteArray;
var str = str;
ba = Base64.decodeToByteArray(str);
ba.uncompress();
ba.position = 0;
return (ba.readObject());
//unresolved jump
var _slot1 = e;
trace("ERROR UNCRIPT STRING");
return ({});
}
public static function resetToStart():void{
containerCurrentLevel = Number(GameParams.uncryptObj("eNrj4mZkNmBhYDZk4WIEAAOyAJE=")[0]);
HeroCurrentState.healthLevel = Number(GameParams.uncryptObj("eNrj4mZkNmBhYDZk4WIEAAOyAJE=")[0]);
HeroCurrentState.armourLevel = Number(GameParams.uncryptObj("eNrj4mZkNmBhYDZk4WIEAAOyAJE=")[0]);
HeroCurrentState.armour = Number(GameParams.uncryptObj("eNrj4mZkNmBhYDZk4WIEAAOyAJE=")[0]);
HeroCurrentState.weapon = [{type:Number(GameParams.uncryptObj("eNrj4mZkNmBhYDZk4WIEAAOyAJE=")[0]), level:Number(GameParams.uncryptObj("eNrj4mZkNmBhYDZk4WIEAAOyAJE=")[0])}, null, null, null, null, null, null, null];
money = Number(GameParams.uncryptObj("eNrj4mZkNmBhYDZk4WIEAAOyAJE=")[0]);
score = Number(GameParams.uncryptObj("eNrj4mZkNmBhYDZk4WIEAAOyAJE=")[0]);
gameContinues = Number(GameParams.uncryptObj("eNrj4mZkNmBhYDZk4WIEAAOyAJE=")[1]);
}
public static function crypt(ba:ByteArray):String{
ba.compress();
return (Base64.encodeByteArray(ba));
}
public static function setLevel(gm:Object):void{
gameModel = gm;
}
public static function getBulletScore():Number{
return (LevelModel.bulletScore);
}
public static function uncrypt(str:String):ByteArray{
var ba:ByteArray;
var str = str;
ba = Base64.decodeToByteArray(str);
ba.uncompress();
ba.position = 0;
return (ba);
//unresolved jump
var _slot1 = e;
trace("ERROR UNCRIPT STRING");
return (new ByteArray());
}
public static function getWeaponLevel(ndx:uint):uint{
return (HeroCurrentState.weapon[ndx].level);
}
public static function cryptObj(obj:Object):String{
var ba:ByteArray;
ba = new ByteArray();
ba.writeObject(obj);
ba.compress();
return (Base64.encodeByteArray(ba));
}
public static function get Money():Number{
return (money);
}
public static function set gameContinues(cn:Number):void{
var SP:SaveParams;
SP = new SaveParams();
SP.saveContinues(cn);
continues = cn;
}
public static function getAllWeaponsNames():Array{
var weaponForSale:Array;
var c:*;
weaponForSale = new Array();
for (c in Weapons) {
weaponForSale.push(c);
};
return (weaponForSale);
}
public static function getVol(x:Number):Number{
var val:Number;
var res:Number;
val = 1100;
if ((((x >= 0)) && ((x <= val)))){
res = ((val - x) / val);
};
if (res > 1){
res = 1;
};
if (res <= 0.2){
res = 0.2;
};
return (res);
}
public static function get gameContinues():Number{
var SP:SaveParams;
SP = new SaveParams();
if (SP.getContinues() != -1){
continues = SP.getContinues();
};
return (continues);
}
public static function wmdl():Object{
return (gameModel.weapon);
}
public static function showLevelInfo():Boolean{
return (lInfo);
}
public static function endLevelTime():Number{
return (timeWaiting);
}
public static function getLevelCondition():Object{
var conditionObject:Object;
conditionObject = new Object();
conditionObject = {type:LevelModel.ConditionToLevelComplete.type, amount:LevelModel.ConditionToLevelComplete.amount, taskText:LevelModel.ConditionToLevelComplete.taskText};
return (conditionObject);
}
}
}//package sources
Section 207
//gameSection (sources.gameSection)
package sources {
import flash.events.*;
import flash.display.*;
import sources.Menu.*;
public class gameSection extends MovieClip {
public var gameSprite:gameSprite;
public var topContainer:MovieClip;
private var GOver:GameOver;
private var PMenu:PauseMenu;
public var gameBackGround:GameBackGround;
public function gameSection(){
super();
addEventListener(Event.ADDED_TO_STAGE, listenAddedToStage);
addEventListener(Event.REMOVED_FROM_STAGE, listenRemovedFromStage);
}
private function releaseHandler(evt:Event):void{
dispatchEvent(new Event("GAME_RESUME", true));
dispatchEvent(new KeyboardEvent(KeyboardEvent.KEY_UP, true));
}
private function pauseHandler(evt:Event):void{
if (evt.type == "GAME_PAUSE"){
PMenu = new PauseMenu();
addChild(PMenu);
gameSprite.alpha = 0.2;
topContainer.alpha = 0.2;
} else {
if (evt.type == "GAME_RESUME"){
removeChild(PMenu);
gameSprite.alpha = 1;
topContainer.alpha = 1;
};
};
}
private function listenAddedToStage(evt:Event):void{
stage.addEventListener("GAME_PAUSE", pauseHandler);
stage.addEventListener("GAME_RESUME", pauseHandler);
addEventListener("RELEASE", releaseHandler);
addEventListener("KILL", gameOver);
gameSprite.initSprite(topContainer, gameBackGround);
}
private function listenRemovedFromStage(evt:Event):void{
stage.removeEventListener("GAME_PAUSE", pauseHandler);
stage.removeEventListener("GAME_RESUME", pauseHandler);
removeEventListener("RELEASE", releaseHandler);
removeEventListener("KILL", gameOver);
}
private function gameOver(evt:Event):void{
gameSprite.alpha = 0.2;
topContainer.alpha = 0.2;
}
}
}//package sources
Section 208
//gameSprite (sources.gameSprite)
package sources {
import flash.display.*;
public class gameSprite extends MovieClip {
public var GMContainer:GameContainer;
public function gameSprite(){
super();
}
public function initSprite(topContainer:MovieClip, bg:MovieClip):void{
GMContainer.pushGame(topContainer, this, bg);
}
}
}//package sources
Section 209
//GameTrack (sources.GameTrack)
package sources {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import flash.filters.*;
public class GameTrack extends MovieClip {
private var pt:Point;
private var scaleKof:Number;// = 0.5
private var __height:Number;// = 600
private var cmatrix:ColorMatrixFilter;
private var how:uint;// = 0
private var rect:Rectangle;
private var filter:BlurFilter;
private var track_bmp:Bitmap;
private var track_bmp_data:BitmapData;
private var _game_container:MovieClip;
private var _target:MovieClip;
private var __width:Number;// = 600
private var _goal:MovieClip;
public function GameTrack(g:MovieClip, t:MovieClip, gc:MovieClip){
how = 0;
scaleKof = 0.5;
__width = 600;
__height = 600;
super();
scaleKof = GameParams.trackScale;
_goal = g;
_target = t;
_game_container = gc;
_goal.parent.addChildAt(this, 0);
this.alpha = 1;
this.mouseEnabled = false;
this.mouseChildren = false;
ini();
}
public function removeTrack(event:Event=null):void{
var event = event;
clearEvents();
_goal.parent.removeChild(this);
//unresolved jump
var _slot1 = e;
}
public function actionGameOver():void{
removeTrack();
}
public function ini():void{
if (scaleKof > -1){
_game_container.addEventListener("TIME_PROGRESS_2", update);
this.addEventListener(Event.REMOVED_FROM_STAGE, removeTrack);
iniContruction();
};
}
public function iniContruction():void{
var matrix:Array;
rect = new Rectangle(0, 0, Math.round((scaleKof * __width)), Math.round((scaleKof * __height)));
pt = new Point(0, 0);
filter = new BlurFilter(1.5, 1.5, BitmapFilterQuality.LOW);
cmatrix = new ColorMatrixFilter();
matrix = new Array();
matrix = matrix.concat([1, 0, 0, 0, 0]);
matrix = matrix.concat([0, 1, 0, 0, 0]);
matrix = matrix.concat([0, 0, 1, 0, 0]);
matrix = matrix.concat([0, 0, 0, 0.995, 0]);
cmatrix.matrix = matrix;
track_bmp_data = new BitmapData(Math.round((scaleKof * __width)), Math.round((scaleKof * __height)), true, 0xFFFFFF);
track_bmp = new Bitmap(track_bmp_data, "auto", false);
this.addChild((track_bmp as DisplayObject));
this.width = __width;
this.height = __height;
}
public function update(event:Event=null):void{
var matrix:Matrix;
matrix = new Matrix();
matrix.scale(scaleKof, scaleKof);
track_bmp_data.draw(_target, matrix);
track_bmp_data.applyFilter(track_bmp_data, rect, pt, filter);
track_bmp_data.applyFilter(track_bmp_data, rect, pt, cmatrix);
}
public function clearEvents(event:Event=null):void{
var event = event;
trace("REMOVE !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
_game_container.removeEventListener("TIME_PROGRESS_2", update);
this.removeEventListener(Event.REMOVED_FROM_STAGE, removeTrack);
track_bmp_data.dispose();
//unresolved jump
var _slot1 = e;
trace("FFFF");
}
}
}//package sources
Section 210
//GateAnimation (sources.GateAnimation)
package sources {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
public class GateAnimation extends MovieClip {
var middleState:String;// = "AnimMiddle"
var midState:Boolean;// = false
var endState:String;// = "AnimStop"
var startState:String;// = "AnimStart"
public var g3:MovieClip;
public var g4:MovieClip;
public var g6:MovieClip;
public var g7:MovieClip;
public var g1:MovieClip;
public var g5:MovieClip;
public var g9:MovieClip;
public var g2:MovieClip;
public var g8:MovieClip;
public var g10:MovieClip;
public function GateAnimation(){
startState = "AnimStart";
middleState = "AnimMiddle";
endState = "AnimStop";
midState = false;
super();
gotoAndStop(endState);
stage.addEventListener("PLAY_ANIMATION", playHandler);
}
private function iniBmp():void{
var bmp_data:BitmapData;
var bmp:Bitmap;
var i:*;
var bmp_d:BitmapData;
var matrix:Matrix;
var bmp_t:Bitmap;
bmp_data = new BitmapData(600, 600, false);
bmp_data.draw(this.parent, null, null, null, null, true);
bmp = new Bitmap(bmp_data);
i = 1;
for (;i <= 10;this[("g" + i)].addChildAt(bmp_t, 1), (i = (i + 1))) {
bmp_d = new BitmapData(600, 60, false);
matrix = new Matrix();
matrix.ty = (-((i - 1)) * 60);
bmp_d.draw(bmp, matrix, null, null, null, true);
bmp_t = new Bitmap(bmp_d, "auto", true);
this[("g" + i)].removeChildAt(1);
continue;
var _slot1 = e;
};
}
private function playHandler(evt:Event):void{
addEventListener(Event.ENTER_FRAME, animationProgress);
iniBmp();
this.gotoAndPlay(2);
}
private function animationProgress(evt:Event):void{
if ((((this.currentLabel == middleState)) && (!(midState)))){
removeEventListener(Event.ENTER_FRAME, animationProgress);
stop();
dispatchEvent(new Event("ANIMATION_MIDDLE", true));
midState = true;
};
if ((((this.currentLabel == endState)) && (midState))){
removeEventListener(Event.ENTER_FRAME, animationProgress);
dispatchEvent(new Event("ANIMATION_END", true));
midState = false;
this.stop();
};
}
}
}//package sources
Section 211
//Hero (sources.Hero)
package sources {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import sources.math.*;
import flash.utils.*;
import sources.EventExtend.*;
public class Hero extends FriendlyObject {
private var inertNdx:Number;// = 0.2
private var swapWeaponFix:Boolean;// = false
private var startDirectVector:MyVector;
private var weaponMoveRight:Boolean;// = false
private var wSpeed:Number;
private var callWeapon:Number;// = 0
private var repositionSteps:Number;
private var prevWeapon:Number;// = 0
private var centerPoint:Point;
private var mouseVector:MyVector;
private var stepRadius:Number;
private var weaponVector:MyVector;
private var heroWeaponSpeed_curr:Number;
private var swapWeaponF:Boolean;// = false
private var swapWeaponB:Boolean;// = false
private var SWWheelCounter:Number;// = 0
private var gameContainer:MovieClip;
private var heroWeapon:Weapon;
private var weaponsArray:Array;
private var blockWheel:Boolean;// = false
private var newPosition:Point;
private var currWeapon:Number;// = 0
private var swapWeaponTime:Number;// = 5
private var HeroModel:Object;
private var heroWeaponSpeed:Number;
private var inertSpeed:Number;
private var manualWeapons:Array;
private var swapWeaponCounter:Number;// = 0
private var swapWeaponInterval:Number;// = 10
private var bodyArmour:MovieClip;
private var weaponMoveLeft:Boolean;// = false
private var mWeapNum:Number;// = 0
public function Hero(){
weaponsArray = new Array();
weaponMoveRight = false;
weaponMoveLeft = false;
mouseVector = new MyVector(x, y);
startDirectVector = new MyVector(0.1, 0.1);
weaponVector = new MyVector(0.1, 0.1);
blockWheel = false;
swapWeaponFix = false;
swapWeaponF = false;
swapWeaponB = false;
SWWheelCounter = 0;
mWeapNum = 0;
swapWeaponCounter = 0;
swapWeaponInterval = 10;
swapWeaponTime = 5;
manualWeapons = new Array();
currWeapon = 0;
callWeapon = 0;
prevWeapon = 0;
inertNdx = 0.2;
super();
}
private function removeListeners():void{
trace("hero remove listeners");
stage.removeEventListener(KeyboardEvent.KEY_DOWN, MovePeak);
stage.removeEventListener(KeyboardEvent.KEY_UP, StopPeak);
stage.removeEventListener(MouseEvent.MOUSE_WHEEL, SWWheel);
removeEventListener("OVERHEAT_SWITCH_WEAPON", overheatSwitchWeapon);
gameContainer.removeEventListener("TIME_PROGRESS", updateHero);
stage.removeEventListener("REMOVE_ALL", clearContainer);
}
private function addWeapon(ndx:uint):void{
var wnum:uint;
if (HeroModel.weapon[ndx] != null){
heroWeapon = new Weapon();
weaponsArray[ndx] = addChild(heroWeapon);
wnum = 0;
switch (ndx){
case 0:
wnum = 0;
break;
case 1:
wnum = 7;
break;
case 2:
wnum = 1;
break;
case 3:
wnum = 6;
break;
case 4:
wnum = 2;
break;
case 5:
wnum = 5;
break;
case 6:
wnum = 3;
break;
case 7:
wnum = 4;
break;
};
weaponsArray[ndx] = addChild(heroWeapon);
heroWeapon.initWeapon(HeroModel.weapon[ndx], gameContainer, wnum, ndx, this);
} else {
weaponsArray[ndx] = null;
};
}
private function StopPeak(evt:KeyboardEvent):void{
if ((((((((((((((((evt.keyCode == GameParams.SWAP_WEAPON_1)) || ((evt.keyCode == GameParams.SWAP_WEAPON_2)))) || ((evt.keyCode == GameParams.SWAP_WEAPON_3)))) || ((evt.keyCode == GameParams.SWAP_WEAPON_4)))) || ((evt.keyCode == GameParams.SWAP_WEAPON_5)))) || ((evt.keyCode == GameParams.SWAP_WEAPON_6)))) || ((evt.keyCode == GameParams.SWAP_WEAPON_7)))) || ((evt.keyCode == GameParams.SWAP_WEAPON_8)))){
blockWheel = false;
swapWeaponFix = false;
};
if (GameParams.gameMode == "KB"){
if (evt.keyCode == GameParams.SWAP_WEAPON_NEXT){
swapWeaponF = false;
swapWeaponCounter = 0;
};
if (evt.keyCode == GameParams.SWAP_WEAPON_PREV){
swapWeaponB = false;
swapWeaponCounter = 0;
};
if (evt.keyCode == GameParams.MOVE_WEAPON_RIGHT){
weaponMoveRight = false;
};
if (evt.keyCode == GameParams.MOVE_WEAPON_LEFT){
weaponMoveLeft = false;
};
};
}
public function getVector():MyVector{
return (weaponVector);
}
private function updateHero(evt:Event):void{
var step:Number;
var mv:*;
if (swapWeaponFix){
swapWeaponFix = false;
mv = 0;
while (mv < manualWeapons.length) {
if (callWeapon == manualWeapons[mv]){
currWeapon = mv;
if (currWeapon != prevWeapon){
weaponsArray[manualWeapons[currWeapon]].weaponActive = true;
weaponsArray[manualWeapons[prevWeapon]].weaponActive = false;
heroWeaponSpeed = ((weaponsArray[manualWeapons[currWeapon]].getSpeed() * 180) / (Math.PI * radius));
inertSpeed = (heroWeaponSpeed * inertNdx);
dispatchEvent(new EventX("SWAP_WEAPON", 0, true));
prevWeapon = currWeapon;
};
};
mv++;
};
};
if (swapWeaponF){
if (swapWeaponCounter == 0){
swapWeaponF = false;
swapWeaponCounter = swapWeaponInterval;
currWeapon++;
if (currWeapon > (manualWeapons.length - 1)){
currWeapon = 0;
};
weaponsArray[manualWeapons[currWeapon]].weaponActive = true;
weaponsArray[manualWeapons[prevWeapon]].weaponActive = false;
heroWeaponSpeed = ((weaponsArray[manualWeapons[currWeapon]].getSpeed() * 180) / (Math.PI * radius));
inertSpeed = (heroWeaponSpeed * inertNdx);
dispatchEvent(new EventX("SWAP_WEAPON", 1, true));
prevWeapon = currWeapon;
} else {
swapWeaponCounter--;
};
};
if (swapWeaponB){
if (swapWeaponCounter == 0){
swapWeaponB = false;
swapWeaponCounter = swapWeaponInterval;
currWeapon--;
if (currWeapon < 0){
currWeapon = (manualWeapons.length - 1);
};
weaponsArray[manualWeapons[currWeapon]].weaponActive = true;
weaponsArray[manualWeapons[prevWeapon]].weaponActive = false;
heroWeaponSpeed = ((weaponsArray[manualWeapons[currWeapon]].getSpeed() * 180) / (Math.PI * radius));
inertSpeed = (heroWeaponSpeed * inertNdx);
dispatchEvent(new EventX("SWAP_WEAPON", -1, true));
prevWeapon = currWeapon;
} else {
swapWeaponCounter--;
};
};
if (GameParams.gameMode == "MS"){
mouseVector.reset((stage.mouseX - position.x), (stage.mouseY - position.y));
};
step = (angleTransform((weaponVector.angle - mouseVector.angle)) / 3);
if ((((step >= heroWeaponSpeed)) && ((step > 0)))){
step = heroWeaponSpeed;
};
if ((((step <= -(heroWeaponSpeed))) && ((step < 0)))){
step = -(heroWeaponSpeed);
};
weaponVector.angle = (weaponVector.angle - step);
angle = weaponVector.angle;
}
private function MovePeak(evt:KeyboardEvent):void{
if ((((evt.keyCode == GameParams.SWAP_WEAPON_NEXT)) && ((mWeapNum > 1)))){
blockWheel = true;
swapWeaponF = true;
swapWeaponB = false;
};
if ((((evt.keyCode == GameParams.SWAP_WEAPON_PREV)) && ((mWeapNum > 1)))){
blockWheel = true;
swapWeaponB = true;
swapWeaponF = false;
};
if ((((evt.keyCode == GameParams.SWAP_WEAPON_1)) && ((mWeapNum > 1)))){
blockWheel = true;
swapWeaponFix = true;
callWeapon = 0;
};
if ((((evt.keyCode == GameParams.SWAP_WEAPON_2)) && ((mWeapNum > 1)))){
blockWheel = true;
swapWeaponFix = true;
callWeapon = 1;
};
if ((((evt.keyCode == GameParams.SWAP_WEAPON_3)) && ((mWeapNum > 1)))){
blockWheel = true;
swapWeaponFix = true;
callWeapon = 2;
};
if ((((evt.keyCode == GameParams.SWAP_WEAPON_4)) && ((mWeapNum > 1)))){
blockWheel = true;
swapWeaponFix = true;
callWeapon = 3;
};
if ((((evt.keyCode == GameParams.SWAP_WEAPON_5)) && ((mWeapNum > 1)))){
blockWheel = true;
swapWeaponFix = true;
callWeapon = 4;
};
if ((((evt.keyCode == GameParams.SWAP_WEAPON_6)) && ((mWeapNum > 1)))){
blockWheel = true;
swapWeaponFix = true;
callWeapon = 5;
};
if ((((evt.keyCode == GameParams.SWAP_WEAPON_7)) && ((mWeapNum > 1)))){
blockWheel = true;
swapWeaponFix = true;
callWeapon = 6;
};
if ((((evt.keyCode == GameParams.SWAP_WEAPON_8)) && ((mWeapNum > 1)))){
blockWheel = true;
swapWeaponFix = true;
callWeapon = 7;
};
if (GameParams.gameMode == "KB"){
if (evt.keyCode == GameParams.MOVE_WEAPON_RIGHT){
weaponMoveRight = true;
weaponMoveLeft = false;
};
if (evt.keyCode == GameParams.MOVE_WEAPON_LEFT){
weaponMoveRight = false;
weaponMoveLeft = true;
};
};
}
public function getDamage(damage:Number):void{
if (armour > 0){
armour = (armour - damage);
dispatchEvent(new EventX("ARMOUR_HERO", (armour / HeroModel.maxArmour), true));
} else {
health = (health - damage);
};
if (HeroModel.armourSkin != null){
bodyArmour.alpha = (armour / HeroModel.maxArmour);
};
if ((((health == 0)) && (!(killFriend)))){
trace("KILL____________________HERO");
killFriend = true;
dispatchEvent(new Event("KILL", true));
};
dispatchEvent(new EventX("HEALTH_HERO", (health / HeroModel.maxHealth), true));
}
private function clearContainer(evt:Event):void{
dispatchEvent(new Event("REMOVE_WAPONS", false));
GameParams.setHeroArmour(armour);
removeListeners();
gameContainer.removeChild(this);
}
private function addListeners():void{
stage.addEventListener(KeyboardEvent.KEY_DOWN, MovePeak);
stage.addEventListener(KeyboardEvent.KEY_UP, StopPeak);
stage.addEventListener(MouseEvent.MOUSE_WHEEL, SWWheel);
addEventListener("OVERHEAT_SWITCH_WEAPON", overheatSwitchWeapon);
gameContainer.addEventListener("TIME_PROGRESS", updateHero);
stage.addEventListener("REMOVE_ALL", clearContainer);
}
public function getWeapon():MovieClip{
return (weaponsArray[manualWeapons[0]]);
}
public function initHero(modHero:Object, container:MovieClip):void{
gameContainer = container;
HeroModel = modHero;
centerPoint = new Point((GameParams.gameDimensions.width / 2), (GameParams.gameDimensions.height / 2));
this.init(HeroModel, container);
addListeners();
addArmour();
setNewParam();
addWeapons();
}
private function setNewParam(evt:Event=null):void{
startDirectVector.reset((centerPoint.x - position.x), (centerPoint.y - position.y));
angle = startDirectVector.angle;
weaponVector.angle = angle;
weaponVector.length = radius;
heroWeaponSpeed_curr = 0;
heroWeaponSpeed = ((HeroModel.maxWeaponSpeed * 180) / (Math.PI * radius));
inertSpeed = (heroWeaponSpeed * inertNdx);
}
private function overheatSwitchWeapon(evt:Event):void{
swapWeaponFix = true;
callWeapon = 0;
}
private function SWWheel(evt:MouseEvent):void{
SWWheelCounter++;
if (SWWheelCounter == 4){
SWWheelCounter = 0;
if ((((GameParams.gameMode == "MS")) && (!(blockWheel)))){
if ((((evt.delta > 0)) && ((mWeapNum > 1)))){
swapWeaponF = true;
};
if ((((evt.delta < 0)) && ((mWeapNum > 1)))){
swapWeaponB = true;
};
};
};
}
private function addArmour():void{
if (HeroModel.armourSkin != null){
bodyArmour = addPart((getDefinitionByName(HeroModel.armourSkin) as Class));
bodyArmour.width = ((this.radius * 2) + 10);
bodyArmour.height = ((this.radius * 2) + 10);
getDamage(0);
};
}
public function getManualWeapons():Array{
return (manualWeapons);
}
public function getWeapons():Array{
return (weaponsArray);
}
private function angleTransform(foo:Number):Number{
if (foo > 180){
foo = (foo - 360);
} else {
if (foo < -180){
foo = (foo + 360);
};
};
return (foo);
}
public function getArmourState():void{
dispatchEvent(new EventX("ARMOUR_HERO", (armour / HeroModel.maxArmour), true));
}
private function addWeapons():void{
var w:uint;
w = 0;
while (w < HeroModel.weapon.length) {
addWeapon(w);
if (HeroModel.weapon[w] != null){
if (!HeroModel.weapon[w].automatic){
manualWeapons.push(w);
mWeapNum++;
};
};
w++;
};
heroWeaponSpeed = ((HeroModel.weapon[manualWeapons[0]].currentWeapons.wSpeed * 180) / (Math.PI * radius));
inertSpeed = (heroWeaponSpeed * inertNdx);
}
}
}//package sources
Section 212
//HSPanelContainer (sources.HSPanelContainer)
package sources {
import flash.events.*;
import flash.display.*;
import sources.EventExtend.*;
import com.gamezhero.media.*;
public class HSPanelContainer extends MovieClip {
private var placeWeapon:Number;
private var armourNextLevelCost:Number;// = 0
private var wspeed:Number;
private var partBody:MovieClip;
private var fireRate:Number;
private var woverheat:Number;
private var CWArray:Array;
private var iconNdx:Number;
private var wType:String;
public var currentHeroSettings:MovieClip;
private var health:Number;
private var curMoney:Number;// = 0
private var swapObj:Object;
private var holdWFSIcon:MovieClip;
private var weaponNames:Array;
private var armLevel:Number;// = 0
private var CWndx:uint;
private var healthLevel:Number;
private var wspeedEnd:Number;
private var woverheatEnd:Number;
private var gameContainer:MovieClip;
private var weaponIcon:MovieClip;
public var armourCont:MovieClip;
private var fireRateEnd:Number;
private var healthNextLevelCost:Number;
private var wPlace:HSweaponPlace;
private var wpower:Number;
public var weaponForSale:MovieClip;
private var placeWFS:Number;
private var sThumb:HSWFSThumb;
private var numPlace:Number;
private var totalUpgrades:Number;
private var ClassPart:Class;
private var wAutomatic:String;
private var WFSNdx:Number;
public var heroB:heroBody;
public var HSPanelHeader:MovieClip;
private var perUnitCost:Number;// = 0
private var curArmour:Number;// = 0
private var holdIcon:MovieClip;
public var CWInfoPanel:MovieClip;
private var maxArmour:Number;// = 0
public var infoPanel:MovieClip;
public function HSPanelContainer(){
curMoney = 0;
curArmour = 0;
maxArmour = 0;
armLevel = 0;
armourNextLevelCost = 0;
perUnitCost = 0;
CWArray = new Array();
super();
addEventListener(Event.ADDED_TO_STAGE, listenAddedToStage);
addEventListener(Event.REMOVED_FROM_STAGE, listenRemovedFromStage);
}
private function infoPanelActivateHandler(evt:Event):void{
fireRate = Math.round((1000 / (GameParams.containerGameSpeed * GameParams.Weapons[evt.target.getNdx()].upgradeLevels[0].shootInterval)));
fireRateEnd = Math.round((1000 / (GameParams.containerGameSpeed * GameParams.Weapons[evt.target.getNdx()].upgradeLevels[(GameParams.Weapons[evt.target.getNdx()].upgradeLevels.length - 1)].shootInterval)));
wspeed = GameParams.Weapons[evt.target.getNdx()].upgradeLevels[0].wSpeed;
wspeedEnd = GameParams.Weapons[evt.target.getNdx()].upgradeLevels[(GameParams.Weapons[evt.target.getNdx()].upgradeLevels.length - 1)].wSpeed;
woverheat = GameParams.Weapons[evt.target.getNdx()].upgradeLevels[0].overheat;
woverheatEnd = GameParams.Weapons[evt.target.getNdx()].upgradeLevels[(GameParams.Weapons[evt.target.getNdx()].upgradeLevels.length - 1)].overheat;
wpower = GameParams.Bullets[GameParams.Weapons[evt.target.getNdx()].upgradeLevels[0].bullet].damage;
totalUpgrades = (GameParams.Weapons[evt.target.getNdx()].upgradeLevels.length - 1);
if (GameParams.Weapons[evt.target.getNdx()].automatic){
wAutomatic = "automatic";
infoPanel.summary_tx.text = ((((((((((("type : " + wAutomatic) + "\nrate of fire : ") + fireRate) + " >> ") + fireRateEnd) + "\npower : ") + wpower) + "\ntotal upgrades : ") + totalUpgrades) + "\n\n ") + GameParams.Weapons[evt.target.getNdx()].summary);
} else {
wAutomatic = "manual";
infoPanel.summary_tx.text = ((((((((((((((((((("type : " + wAutomatic) + "\nrate of fire : ") + fireRate) + " >> ") + fireRateEnd) + "\nweapon speed : ") + wspeed) + " >> ") + wspeedEnd) + "\noverheat : ") + woverheat) + " >> ") + woverheatEnd) + "\npower : ") + wpower) + "\ntotal upgrades : ") + totalUpgrades) + "\n\n ") + GameParams.Weapons[evt.target.getNdx()].summary);
};
infoPanel.weapon_name_tx.text = GameParams.Weapons[evt.target.getNdx()].wName;
infoPanel.weapon_cost_tx.text = GameParams.Weapons[evt.target.getNdx()].cost;
}
private function playClickHandler(EVENT:MouseEvent):void{
SoundFX.play(null, "s_click", null, GameParams.soundVolume, 1);
(GameParams.currSect == "CM");
dispatchEvent(new Event("PLAY_GAME", true));
}
private function playOverHandler(evt:Event):void{
SoundFX.play(null, "s_over", null, GameParams.soundVolume, 1);
}
private function removeListeners():void{
}
private function weaponForSaleInit():void{
var wsl:uint;
wsl = 1;
while (wsl < GameParams.Weapons.length) {
sThumb = new HSWFSThumb();
weaponForSale.addChild(sThumb);
sThumb.thumbInit(wsl, GameParams.Weapons[wsl], this);
wsl++;
};
}
public function addPart(part:Class, cont:MovieClip):MovieClip{
ClassPart = part;
partBody = new ClassPart();
cont.addChild(partBody);
return (partBody);
}
private function sellCurrentWeaponOver(evt:MouseEvent):void{
SoundFX.play(null, "s_over", null, GameParams.soundVolume, 1);
}
private function HAParamInit():void{
armour = GameParams.HeroCurrentState.armour;
armLevel = GameParams.HeroCurrentState.armourLevel;
maxArmour = GameParams.ArmourHealth.Armour[armLevel].amount;
if (GameParams.ArmourHealth.Armour[armLevel] != null){
armourNextLevelCost = GameParams.ArmourHealth.Armour[armLevel].cost;
} else {
armourNextLevelCost = 0;
};
perUnitCost = GameParams.ArmourHealth.Armour[armLevel].perUnitCost;
healthLevel = GameParams.HeroCurrentState.healthLevel;
health = GameParams.ArmourHealth.Health[healthLevel].maxHealth;
if (GameParams.ArmourHealth.Health[(healthLevel + 1)] != undefined){
healthNextLevelCost = GameParams.ArmourHealth.Health[healthLevel].cost;
} else {
healthNextLevelCost = 0;
};
}
private function upgradeCurrentWeapon(EVENT:MouseEvent):void{
SoundFX.play(null, "s_click", null, GameParams.soundVolume, 1);
if (money >= GameParams.getHeroCurrentState().weapon[CWndx].currentWeapons.cost){
GameParams.HeroCurrentState.weapon[CWndx].level++;
if (GameParams.getHeroCurrentState().weapon[CWndx].currentWeapons != null){
GameParams.HeroCurrentState.weapon[CWndx].level--;
money = (money - GameParams.getHeroCurrentState().weapon[CWndx].currentWeapons.cost);
GameParams.HeroCurrentState.weapon[CWndx].level++;
dispatchEvent(new EventX("RESET_WEAPONS", CWndx));
} else {
GameParams.HeroCurrentState.weapon[CWndx].level--;
};
};
}
private function dragWFSIcon(evt:MouseEvent):void{
var cw:Number;
holdWFSIcon.x = mouseX;
holdWFSIcon.y = mouseY;
cw = 1;
while (cw < CWArray.length) {
if (holdWFSIcon.hitTestObject(CWArray[cw])){
if (GameParams.HeroCurrentState.weapon[cw] == null){
holdWFSIcon.x = CWArray[cw].x;
holdWFSIcon.y = CWArray[cw].y;
};
};
cw++;
};
}
private function currentWeaponsInit():void{
var cw:uint;
cw = 0;
while (cw < GameParams.getHeroCurrentState().weapon.length) {
wPlace = new HSweaponPlace();
CWArray.push(addChild(wPlace));
wPlace.initWeaponPlace(cw, heroB, this);
cw++;
};
}
private function upgradeHealthOver(evt:MouseEvent):void{
SoundFX.play(null, "s_over", null, GameParams.soundVolume, 1);
}
public function delPart(part:MovieClip, cont:MovieClip):void{
cont.removeChild(part);
}
private function upgradeCurrentWeaponOver(evt:Event):void{
SoundFX.play(null, "s_over", null, GameParams.soundVolume, 1);
}
private function upgradeArmour(EVENT:MouseEvent):void{
SoundFX.play(null, "s_click", null, GameParams.soundVolume, 1);
if (GameParams.HeroCurrentState.armourLevel < (GameParams.ArmourHealth.Armour.length - 1)){
if (money >= armourNextLevelCost){
GameParams.HeroCurrentState.armourLevel++;
money = (money - armourNextLevelCost);
HAParamInit();
armour = maxArmour;
HAIndicatorInit();
};
};
}
private function sellCurrentWeapon(EVENT:MouseEvent):void{
SoundFX.play(null, "s_click", null, GameParams.soundVolume, 1);
money = (money + GameParams.getHeroCurrentState().weapon[CWndx].currentWeapons.sale);
GameParams.HeroCurrentState.weapon[CWndx] = null;
dispatchEvent(new EventX("RESET_WEAPONS", CWndx));
currentWeaponShowInfo();
}
public function initPanel(container:MovieClip):void{
}
public function listenRemovedFromStage(evt:Event):void{
trace("Remove shop listeners");
HSPanelHeader.play_btn.removeEventListener(MouseEvent.CLICK, playClickHandler);
HSPanelHeader.play_btn.removeEventListener(MouseEvent.MOUSE_OVER, playOverHandler);
currentHeroSettings.buy10.removeEventListener(MouseEvent.CLICK, buyTenUnitsArm);
currentHeroSettings.buy10.removeEventListener(MouseEvent.MOUSE_OVER, buyTenOver);
currentHeroSettings.upgradeArmourBtn.removeEventListener(MouseEvent.CLICK, upgradeArmour);
currentHeroSettings.upgradeArmourBtn.removeEventListener(MouseEvent.MOUSE_OVER, upgradeArmourOver);
currentHeroSettings.upgradeHealthBtn.removeEventListener(MouseEvent, upgradeHealth);
currentHeroSettings.upgradeHealthBtn.removeEventListener(MouseEvent.MOUSE_OVER, upgradeHealthOver);
CWInfoPanel.sale_btn.removeEventListener(MouseEvent.CLICK, sellCurrentWeapon);
CWInfoPanel.sale_btn.removeEventListener(MouseEvent.MOUSE_OVER, sellCurrentWeaponOver);
CWInfoPanel.weapon_upgrade_btn.removeEventListener(MouseEvent.CLICK, upgradeCurrentWeapon);
CWInfoPanel.weapon_upgrade_btn.removeEventListener(MouseEvent.MOUSE_OVER, upgradeCurrentWeaponOver);
removeEventListener("CURRENT_WEAPON_ACTIVATED", currentWeaponShowInfo);
removeEventListener("DRAG_ICON", holdWeaponHandler);
removeEventListener("DRAG_WFS_ICON", holdWFSHandler);
removeEventListener("FOR_SALE_WEAPON_ACTIVATED", infoPanelActivateHandler);
removeEventListener(Event.ADDED_TO_STAGE, listenAddedToStage);
removeEventListener(Event.REMOVED_FROM_STAGE, listenRemovedFromStage);
}
private function set armour(arm:Number):void{
curArmour = arm;
GameParams.HeroCurrentState.armour = arm;
}
private function stopDragWFSIcon(evt:MouseEvent):void{
var cw:Number;
placeWFS = -1;
cw = 1;
while (cw < CWArray.length) {
if (holdWFSIcon.hitTestObject(CWArray[cw])){
if (GameParams.HeroCurrentState.weapon[cw] == null){
holdWFSIcon.x = CWArray[cw].x;
holdWFSIcon.y = CWArray[cw].y;
placeWFS = cw;
};
};
cw++;
};
removeChild(holdWFSIcon);
if (placeWFS != -1){
GameParams.HeroCurrentState.weapon[placeWFS] = {type:WFSNdx, level:0};
money = (money - GameParams.Weapons[WFSNdx].cost);
dispatchEvent(new EventX("RESET_WEAPONS", numPlace));
};
stage.removeEventListener(MouseEvent.MOUSE_MOVE, dragWFSIcon);
stage.removeEventListener(MouseEvent.MOUSE_UP, stopDragWFSIcon);
}
public function get money():Number{
return (curMoney);
}
private function initListeners():void{
HSPanelHeader.play_btn.addEventListener(MouseEvent.CLICK, playClickHandler);
HSPanelHeader.play_btn.addEventListener(MouseEvent.MOUSE_OVER, playOverHandler);
currentHeroSettings.buy10.addEventListener(MouseEvent.CLICK, buyTenUnitsArm);
currentHeroSettings.buy10.addEventListener(MouseEvent.MOUSE_OVER, buyTenOver);
currentHeroSettings.upgradeArmourBtn.addEventListener(MouseEvent.CLICK, upgradeArmour);
currentHeroSettings.upgradeArmourBtn.addEventListener(MouseEvent.MOUSE_OVER, upgradeArmourOver);
currentHeroSettings.upgradeHealthBtn.addEventListener(MouseEvent.CLICK, upgradeHealth);
currentHeroSettings.upgradeHealthBtn.addEventListener(MouseEvent.MOUSE_OVER, upgradeHealthOver);
CWInfoPanel.sale_btn.addEventListener(MouseEvent.CLICK, sellCurrentWeapon);
CWInfoPanel.sale_btn.addEventListener(MouseEvent.MOUSE_OVER, sellCurrentWeaponOver);
CWInfoPanel.weapon_upgrade_btn.addEventListener(MouseEvent.CLICK, upgradeCurrentWeapon);
CWInfoPanel.weapon_upgrade_btn.addEventListener(MouseEvent.MOUSE_OVER, upgradeCurrentWeaponOver);
addEventListener("CURRENT_WEAPON_ACTIVATED", currentWeaponShowInfo);
addEventListener("DRAG_ICON", holdWeaponHandler);
addEventListener("DRAG_WFS_ICON", holdWFSHandler);
addEventListener("FOR_SALE_WEAPON_ACTIVATED", infoPanelActivateHandler);
}
private function buyTenOver(evt:Event):void{
SoundFX.play(null, "s_over", null, GameParams.soundVolume, 1);
}
private function holdWeaponHandler(EVENT:Event):void{
holdIcon = EVENT.target.getIcon();
iconNdx = EVENT.target.getNdx();
addChild(holdIcon);
holdIcon.x = CWArray[iconNdx].x;
holdIcon.y = CWArray[iconNdx].y;
holdIcon.scaleX = 1.1;
holdIcon.scaleY = 1.1;
stage.addEventListener(MouseEvent.MOUSE_MOVE, dragIcon);
stage.addEventListener(MouseEvent.MOUSE_UP, stopDragIcon);
}
private function buyTenUnitsArm(EVENT:MouseEvent):void{
SoundFX.play(null, "s_click", null, GameParams.soundVolume, 1);
if (((((armour + 10) <= maxArmour)) && ((money >= perUnitCost)))){
armour = (armour + 10);
money = (money - perUnitCost);
} else {
if ((((((armour < maxArmour)) && (((armour + 10) > maxArmour)))) && ((money >= perUnitCost)))){
armour = maxArmour;
money = (money - perUnitCost);
};
};
HAIndicatorInit();
}
private function holdWFSHandler(EVENT:Event):void{
holdWFSIcon = EVENT.target.getIcon();
WFSNdx = EVENT.target.getNdx();
addChild(holdWFSIcon);
holdWFSIcon.x = mouseX;
holdWFSIcon.y = mouseY;
holdWFSIcon.scaleX = 1.1;
holdWFSIcon.scaleY = 1.1;
stage.addEventListener(MouseEvent.MOUSE_MOVE, dragWFSIcon);
stage.addEventListener(MouseEvent.MOUSE_UP, stopDragWFSIcon);
}
private function HAIndicatorInit():void{
if (GameParams.HeroCurrentState.armourLevel < (GameParams.ArmourHealth.Armour.length - 1)){
currentHeroSettings.armourIndicator.currentArmour.scaleY = (armour / maxArmour);
currentHeroSettings.cost1_txt.text = perUnitCost;
currentHeroSettings.Acost2_txt.text = armourNextLevelCost;
currentHeroSettings.armor_txt.text = ((armour + " / ") + maxArmour);
currentHeroSettings.armorLevel.level_txt.text = armLevel;
currentHeroSettings.armorLevel.totallevel_tx.text = ((armLevel + " / ") + (GameParams.ArmourHealth.Armour.length - 1));
} else {
currentHeroSettings.armourIndicator.currentArmour.scaleY = (armour / maxArmour);
currentHeroSettings.cost1_txt.text = perUnitCost;
currentHeroSettings.Acost2_txt.text = "";
currentHeroSettings.armor_txt.text = ((armour + " / ") + maxArmour);
currentHeroSettings.armorLevel.level_txt.text = armLevel;
currentHeroSettings.armorLevel.totallevel_tx.text = ((armLevel + " / ") + (GameParams.ArmourHealth.Armour.length - 1));
currentHeroSettings.upgradeArmourBtn.visible = false;
};
if (GameParams.HeroCurrentState.healthLevel < (GameParams.ArmourHealth.Health.length - 1)){
currentHeroSettings.health_txt.text = health;
currentHeroSettings.healthInfo.level_txt.text = healthLevel;
currentHeroSettings.healthInfo.totallevel_tx.text = ((healthLevel + " / ") + (GameParams.ArmourHealth.Health.length - 1));
currentHeroSettings.Hcost2_txt.text = healthNextLevelCost;
} else {
currentHeroSettings.health_txt.text = health;
currentHeroSettings.healthInfo.level_txt.text = healthLevel;
currentHeroSettings.healthInfo.totallevel_tx.text = ((healthLevel + " / ") + (GameParams.ArmourHealth.Health.length - 1));
currentHeroSettings.Hcost2_txt.text = "";
currentHeroSettings.upgradeHealthBtn.visible = false;
};
if (GameParams.ArmourHealth.Armour[armLevel].skin != null){
};
}
private function currentWeaponShowInfo(EVENT:Event=null):void{
if (EVENT != null){
CWndx = EVENT.target.getNdx();
if (GameParams.HeroCurrentState.weapon[EVENT.target.getNdx()] != null){
if (GameParams.getHeroCurrentState().weapon[EVENT.target.getNdx()].automatic){
wType = "automatic";
} else {
wType = "manual";
};
CWInfoPanel.weapon_name_tx.text = GameParams.Weapons[GameParams.HeroCurrentState.weapon[EVENT.target.getNdx()].type].wName;
CWInfoPanel.weapon_power_tx.text = GameParams.Bullets[GameParams.Weapons[GameParams.HeroCurrentState.weapon[EVENT.target.getNdx()].type].upgradeLevels[GameParams.HeroCurrentState.weapon[EVENT.target.getNdx()].level].bullet].damage;
CWInfoPanel.weapon_type_tx.text = wType;
CWInfoPanel.weapon_rate_tx.text = Math.round((1000 / (GameParams.containerGameSpeed * GameParams.getHeroCurrentState().weapon[EVENT.target.getNdx()].currentWeapons.shootInterval)));
CWInfoPanel.weapon_rate_tx_2.text = Math.round((1000 / (GameParams.containerGameSpeed * GameParams.Weapons[GameParams.HeroCurrentState.weapon[CWndx].type].upgradeLevels[(GameParams.Weapons[GameParams.HeroCurrentState.weapon[CWndx].type].upgradeLevels.length - 1)].shootInterval)));
CWInfoPanel.weapon_speed_tx.text = GameParams.getHeroCurrentState().weapon[EVENT.target.getNdx()].currentWeapons.wSpeed;
CWInfoPanel.weapon_speed_tx_2.text = GameParams.Weapons[GameParams.HeroCurrentState.weapon[CWndx].type].upgradeLevels[(GameParams.Weapons[GameParams.HeroCurrentState.weapon[CWndx].type].upgradeLevels.length - 1)].wSpeed;
if (GameParams.getHeroCurrentState().weapon[EVENT.target.getNdx()].currentWeapons.overheat != 0){
CWInfoPanel.weapon_overheat_tx.text = GameParams.getHeroCurrentState().weapon[EVENT.target.getNdx()].currentWeapons.overheat;
CWInfoPanel.weapon_overheat_tx_2.text = GameParams.Weapons[GameParams.HeroCurrentState.weapon[CWndx].type].upgradeLevels[(GameParams.Weapons[GameParams.HeroCurrentState.weapon[CWndx].type].upgradeLevels.length - 1)].overheat;
} else {
CWInfoPanel.weapon_overheat_tx.text = "unlimited";
CWInfoPanel.weapon_overheat_tx_2.text = "unlimited";
};
CWInfoPanel.weaponLevelInfo.level_txt.text = GameParams.HeroCurrentState.weapon[EVENT.target.getNdx()].level;
CWInfoPanel.weaponLevelInfo.totallevel_tx.text = ((GameParams.HeroCurrentState.weapon[EVENT.target.getNdx()].level + " / ") + (GameParams.Weapons[GameParams.HeroCurrentState.weapon[EVENT.target.getNdx()].type].upgradeLevels.length - 1));
if (GameParams.getHeroCurrentState().weapon[EVENT.target.getNdx()].currentWeapons.sale != null){
CWInfoPanel.sale_btn.visible = true;
CWInfoPanel.sale_cost_tx.text = GameParams.getHeroCurrentState().weapon[EVENT.target.getNdx()].currentWeapons.sale;
} else {
CWInfoPanel.sale_btn.visible = false;
CWInfoPanel.sale_cost_tx.text = "";
};
if (GameParams.getHeroCurrentState().weapon[EVENT.target.getNdx()].currentWeapons.cost != null){
CWInfoPanel.weapon_upgrade_btn.visible = true;
CWInfoPanel.upgrade_cost_tx.text = GameParams.getHeroCurrentState().weapon[EVENT.target.getNdx()].currentWeapons.cost;
} else {
CWInfoPanel.weapon_upgrade_btn.visible = false;
CWInfoPanel.upgrade_cost_tx.text = "IT'S MAX LEVEL";
};
} else {
CWInfoPanel.weapon_name_tx.text = "PLACE IS EMPTY.";
CWInfoPanel.weapon_power_tx.text = "";
CWInfoPanel.weapon_type_tx.text = "";
CWInfoPanel.weapon_rate_tx.text = "";
CWInfoPanel.weapon_rate_tx_2.text = "";
CWInfoPanel.weapon_speed_tx.text = "";
CWInfoPanel.weapon_speed_tx_2.text = "";
CWInfoPanel.weapon_overheat_tx.text = "";
CWInfoPanel.weapon_overheat_tx_2.text = "";
CWInfoPanel.weaponLevelInfo.level_txt.text = "";
CWInfoPanel.weaponLevelInfo.totallevel_tx.text = "";
CWInfoPanel.upgrade_cost_tx.text = "";
CWInfoPanel.sale_cost_tx.text = "";
CWInfoPanel.weapon_upgrade_btn.visible = false;
CWInfoPanel.sale_btn.visible = false;
};
} else {
CWInfoPanel.weapon_name_tx.text = "PLACE IS EMPTY.";
CWInfoPanel.weapon_power_tx.text = "";
CWInfoPanel.weapon_type_tx.text = "";
CWInfoPanel.weapon_rate_tx.text = "";
CWInfoPanel.weapon_rate_tx_2.text = "";
CWInfoPanel.weapon_speed_tx.text = "";
CWInfoPanel.weapon_speed_tx_2.text = "";
CWInfoPanel.weapon_overheat_tx.text = "";
CWInfoPanel.weapon_overheat_tx_2.text = "";
CWInfoPanel.weaponLevelInfo.level_txt.text = "";
CWInfoPanel.upgrade_cost_tx.text = "";
CWInfoPanel.sale_cost_tx.text = "";
CWInfoPanel.weaponLevelInfo.totallevel_tx.text = "";
CWInfoPanel.weapon_upgrade_btn.visible = false;
CWInfoPanel.sale_btn.visible = false;
};
}
private function get armour():Number{
return (curArmour);
}
public function set money(mn:Number):void{
HSPanelHeader.money_tx.text = mn;
GameParams.Money = (curMoney = mn);
dispatchEvent(new Event("MONEY_CHANGED", true));
}
public function listenAddedToStage(evt:Event):void{
money = GameParams.Money;
HAParamInit();
initListeners();
HAIndicatorInit();
currentWeaponsInit();
weaponForSaleInit();
dispatchEvent(new Event("MONEY_CHANGED", true));
}
private function upgradeHealth(EVENT:MouseEvent):void{
SoundFX.play(null, "s_click", null, GameParams.soundVolume, 1);
if ((((GameParams.HeroCurrentState.healthLevel < (GameParams.ArmourHealth.Health.length - 1))) && (((money - healthNextLevelCost) >= 0)))){
money = (money - healthNextLevelCost);
GameParams.HeroCurrentState.healthLevel++;
};
HAParamInit();
HAIndicatorInit();
}
private function upgradeArmourOver(evt:MouseEvent):void{
SoundFX.play(null, "s_over", null, GameParams.soundVolume, 1);
}
private function dragIcon(EVENT:MouseEvent):void{
var cw:Number;
holdIcon.x = mouseX;
holdIcon.y = mouseY;
cw = 1;
while (cw < CWArray.length) {
if (holdIcon.hitTestObject(CWArray[cw])){
holdIcon.x = CWArray[cw].x;
holdIcon.y = CWArray[cw].y;
};
cw++;
};
}
private function stopDragIcon(EVENT:MouseEvent):void{
var cw:Number;
numPlace = iconNdx;
cw = 1;
while (cw < CWArray.length) {
if (holdIcon.hitTestObject(CWArray[cw])){
numPlace = CWArray[cw].getNdx();
};
cw++;
};
CWArray[iconNdx].addChild(holdIcon);
swapObj = GameParams.HeroCurrentState.weapon[numPlace];
GameParams.HeroCurrentState.weapon[numPlace] = GameParams.HeroCurrentState.weapon[iconNdx];
GameParams.HeroCurrentState.weapon[iconNdx] = swapObj;
dispatchEvent(new EventX("RESET_WEAPONS", numPlace));
stage.removeEventListener(MouseEvent.MOUSE_MOVE, dragIcon);
stage.removeEventListener(MouseEvent.MOUSE_UP, stopDragIcon);
}
}
}//package sources
Section 213
//HSweaponPlace (sources.HSweaponPlace)
package sources {
import flash.events.*;
import flash.display.*;
import sources.math.*;
import flash.utils.*;
import sources.EventExtend.*;
public class HSweaponPlace extends MovieClip {
private var partBody:MovieClip;
private var placeVector:MyVector;
private var ClassPart:Class;
private var weaponObject:Object;
public var actPlace:MovieClip;
private var planet:MovieClip;
private var weaponIcon:MovieClip;
private var wndx:uint;
private var holdWeapon:Boolean;// = false
private var activeWeapon:Boolean;// = false
private var Parent:MovieClip;
private var dragIcon:MovieClip;
public function HSweaponPlace(){
placeVector = new MyVector(0.1, 0.1);
activeWeapon = false;
holdWeapon = false;
super();
}
private function releaseWepon(EVENT:MouseEvent):void{
if (holdWeapon){
stopDrag();
holdWeapon = false;
addChild(weaponIcon);
weaponIcon.x = 0;
weaponIcon.y = 0;
};
}
public function initWeaponPlace(ndx:uint, plnt:MovieClip, prnt:MovieClip, cndx:uint=0):void{
wndx = ndx;
Parent = prnt;
planet = plnt;
setPosition();
initListeners();
if (ndx == cndx){
activeWeapon = true;
actPlace.alpha = 1;
dispatchEvent(new Event("CURRENT_WEAPON_ACTIVATED", true));
} else {
actPlace.alpha = 0;
};
if (GameParams.getHeroCurrentState().weapon[wndx] != null){
weaponObject = GameParams.getHeroCurrentState().weapon[wndx];
} else {
weaponObject = null;
};
addWeaponIcon();
}
private function initListeners():void{
addEventListener(MouseEvent.CLICK, initCurrPlace);
addEventListener(MouseEvent.MOUSE_DOWN, takeWeapon);
addEventListener(MouseEvent.ROLL_OVER, tumbOver);
Parent.addEventListener("CURRENT_WEAPON_ACTIVATED", activateHandler);
Parent.addEventListener("SELL_WEAPON", sellHandler);
Parent.addEventListener("RESET_WEAPONS", resetPlace);
}
private function removeListeners():void{
removeEventListener(MouseEvent.CLICK, initCurrPlace);
removeEventListener(MouseEvent.MOUSE_DOWN, takeWeapon);
removeEventListener(MouseEvent.ROLL_OVER, tumbOver);
Parent.removeEventListener("CURRENT_WEAPON_ACTIVATED", activateHandler);
Parent.removeEventListener("SELL_WEAPON", sellHandler);
Parent.removeEventListener("RESET_WEAPONS", resetPlace);
}
public function addWeaponIcon():void{
if (weaponObject != null){
weaponIcon = addPart((getDefinitionByName(weaponObject.currentWeapons.icon) as Class), this);
};
}
public function addPart(part:Class, cont:MovieClip):MovieClip{
ClassPart = part;
partBody = new ClassPart();
cont.addChild(partBody);
return (partBody);
}
public function delPart(part:MovieClip, cont:MovieClip):void{
cont.removeChild(part);
}
private function takeWeapon(EVENT:MouseEvent=null):void{
if (((!((weaponObject == null))) && (!((wndx == 0))))){
holdWeapon = true;
dispatchEvent(new Event("DRAG_ICON", true));
};
}
private function sellHandler(EVENT:EventX):void{
if (EVENT.ndx == wndx){
delPart(weaponIcon, this);
};
}
public function removeWeaponIcon():void{
if (weaponObject != null){
removeChild(weaponIcon);
};
}
public function getNdx():Number{
return (wndx);
}
private function setPosition():void{
var wnum:uint;
wnum = 0;
switch (wndx){
case 0:
wnum = 0;
break;
case 1:
wnum = 7;
break;
case 2:
wnum = 1;
break;
case 3:
wnum = 6;
break;
case 4:
wnum = 2;
break;
case 5:
wnum = 5;
break;
case 6:
wnum = 3;
break;
case 7:
wnum = 4;
break;
};
placeVector.angle = ((wnum * 45) - 90);
placeVector.length = 85;
x = (planet.x + placeVector.x);
y = (planet.y + placeVector.y);
}
private function initCurrPlace(EVENT:MouseEvent=null):void{
dispatchEvent(new Event("CURRENT_WEAPON_ACTIVATED", true));
}
private function tumbOver(EVENT:MouseEvent=null):void{
}
private function activateHandler(EVENT:Event):void{
if (EVENT.target == this){
activeWeapon = true;
actPlace.alpha = 1;
} else {
activeWeapon = false;
actPlace.alpha = 0;
};
}
public function getIcon():MovieClip{
return (weaponIcon);
}
private function resetPlace(EVENT:EventX):void{
removeListeners();
removeWeaponIcon();
initWeaponPlace(wndx, planet, Parent, EVENT.ndx);
}
}
}//package sources
Section 214
//HSWFSThumb (sources.HSWFSThumb)
package sources {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
import flash.text.*;
public class HSWFSThumb extends MovieClip {
private var partBody:MovieClip;
private var drag:Boolean;// = false
private var dragWFSIcon:MovieClip;
public var wActive:MovieClip;
private var ClassPart:Class;
private var weaponModel:Object;
public var weaponPrice_tx:TextField;
private var tndx:uint;
private var forSale:Boolean;
private var helpTx:TextField;
private var activeWeapon:Boolean;// = false
private var available:Boolean;// = false
private var Parent:MovieClip;
private var icoBody:MovieClip;
public function HSWFSThumb(){
activeWeapon = false;
available = false;
drag = false;
super();
}
public function thumbInit(ndx:uint, wModel:Object, prnt:MovieClip):void{
tndx = ndx;
ndx--;
weaponModel = wModel;
forSale = weaponModel.forSale;
Parent = prnt;
wActive.visible = false;
x = Math.round((27 + ((ndx % 2) * (width + 10))));
y = Math.round((55 + (Math.floor((ndx / 2)) * (height + 1))));
addWeaponIcon();
weaponPrice_tx.text = weaponModel.cost;
initListeners();
}
private function checkCost(evt:Event=null):void{
if (((((Parent.money - weaponModel.cost) >= 0)) && (forSale))){
available = true;
icoBody.alpha = 1;
} else {
available = false;
icoBody.alpha = 0.3;
};
}
private function removeListeners(evt:Event):void{
removeEventListener(MouseEvent.MOUSE_DOWN, takeWFS);
removeEventListener(MouseEvent.MOUSE_UP, releaseWFS);
Parent.removeEventListener("FOR_SALE_WEAPON_ACTIVATED", activateHandler);
Parent.removeEventListener("MONEY_CHANGED", checkCost);
removeEventListener(Event.REMOVED_FROM_STAGE, removeListeners);
}
private function initListeners():void{
addEventListener(MouseEvent.MOUSE_DOWN, takeWFS);
addEventListener(MouseEvent.MOUSE_UP, releaseWFS);
addEventListener(Event.REMOVED_FROM_STAGE, removeListeners);
Parent.addEventListener("FOR_SALE_WEAPON_ACTIVATED", activateHandler);
Parent.addEventListener("MONEY_CHANGED", checkCost);
}
private function tumbDrag(evt:MouseEvent):void{
if (drag){
drag = false;
dispatchEvent(new Event("DRAG_WFS_ICON", true));
};
}
public function addWeaponIcon():void{
icoBody = addPart((getDefinitionByName(weaponModel.upgradeLevels[0].icon) as Class), this);
icoBody.x = 20;
icoBody.y = 20;
}
public function addPart(part:Class, cont:MovieClip):MovieClip{
ClassPart = part;
partBody = new ClassPart();
cont.addChild(partBody);
return (partBody);
}
public function getNdx():Number{
return (tndx);
}
private function takeWeapon(EVENT:MouseEvent=null):void{
dispatchEvent(new Event("DRAG_WFS_ICON", true));
}
private function takeWFS(evt:MouseEvent):void{
dispatchEvent(new Event("FOR_SALE_WEAPON_ACTIVATED", true));
if (available){
addEventListener(MouseEvent.MOUSE_MOVE, tumbDrag);
drag = true;
};
}
public function delPart(part:MovieClip, cont:MovieClip):void{
cont.removeChild(part);
}
private function tumbOver(EVENT:MouseEvent=null):void{
}
private function activateHandler(EVENT:Event):void{
if (EVENT.target == this){
activeWeapon = true;
wActive.visible = true;
} else {
activeWeapon = false;
wActive.visible = false;
};
}
public function getIcon():MovieClip{
dragWFSIcon = addPart((getDefinitionByName(weaponModel.upgradeLevels[0].icon) as Class), this);
return (dragWFSIcon);
}
private function releaseWFS(evt:MouseEvent):void{
removeEventListener(MouseEvent.MOUSE_MOVE, tumbDrag);
drag = false;
}
}
}//package sources
Section 215
//LevelComplete (sources.LevelComplete)
package sources {
import flash.events.*;
import flash.display.*;
public class LevelComplete extends MovieClip {
public var stars:MovieClip;
public function LevelComplete(){
super();
addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(evt:Event):void{
trace((GameParams.wmdl() + " : GameParams.wmdl()"));
stars.gotoAndStop(GameParams.levelHealthNdx);
}
}
}//package sources
Section 216
//LostLevel (sources.LostLevel)
package sources {
import flash.events.*;
import flash.display.*;
import sources.Buttons.*;
public class LostLevel extends MovieClip {
public var stars:MovieClip;
public var playAgain:GO_PlayAgain_btn;
public function LostLevel(){
super();
addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(evt:Event):void{
stars.gotoAndStop(GameParams.gameContinues);
}
}
}//package sources
Section 217
//MainContainer (sources.MainContainer)
package sources {
import flash.events.*;
import flash.display.*;
import sources.EventExtend.*;
import com.gamezhero.media.*;
import com.gamezhero.api.as3.*;
import sources.Menu.*;
public class MainContainer extends MovieClip {
private var viewModeChooser:Boolean;
var GMContainer:GameContainer;
var MainMenuBg:MovieClip;
var MMenu:MainMenu;
var gameSprite:MovieClip;
private var SP:SaveParams;
private var PauseStatus:Boolean;// = false
var GBGround:MovieClip;
public var mus_switch:MovieClip;
var IndicatorsContainer:MovieClip;
private var curQuality:String;
var Lables:Array;
public var snd_switch:MovieClip;
var ClassBackGround:Class;
var PMenu:PauseMenu;
var nextHandler:Function;
public var stop_play_switch:MovieClip;
var MMBackground:MovieClip;
private static var soundState:Boolean = true;
private static var nextMusic:String = "main_menu";
private static var nextLable:String;
private static var musicState:Boolean = true;
private static var playState:Boolean = true;
public function MainContainer(){
Lables = new Array("GameLable", "TopScoreLable", "GameHelp");
SP = new SaveParams();
PauseStatus = false;
super();
addFrameScript(0, frame1, 22, frame23, 30, frame31, 38, frame39, 47, frame48, 56, frame57);
addEventListener(Event.ADDED_TO_STAGE, listenAddedToStage);
}
private function pauseOverHandler(evt:MouseEvent):void{
SoundFX.play(null, "s_over", null, GameParams.soundVolume, 1);
}
private function initListeners():void{
addEventListener("TOP_SCORE", goTopScore);
addEventListener("MORE_GAMES", showMoreGames);
addEventListener("PUBLISH_GAME", publishGame);
addEventListener("SEND_TO_FRIENDS", sendToFriends);
addEventListener("LOGO_PRESS", linkZLogo);
stage.addEventListener("GAME_PAUSE", pauseHandler);
stage.addEventListener("GAME_RESUME", resumeHandler);
addEventListener("MUSIC_OFF", switchMusicFromPauseMenu);
addEventListener("MUSIC_ON", switchMusicFromPauseMenu);
addEventListener("SOUND_ON", switchSoundFromPauseMenu);
addEventListener("SOUND_OFF", switchSoundFromPauseMenu);
addEventListener("IS_MUSIC_PLAY", checkMusicState);
addEventListener("IS_SOUND_ON", checkSoundStatus);
addEventListener("GAME_OVER", pushAnimation);
addEventListener("GAME_OUT", pushAnimation);
addEventListener("GO_MENU", pushAnimation);
addEventListener("PLAY_GAME", pushAnimation);
addEventListener("HOW_TO_PLAY", pushAnimation);
addEventListener("GO_SHOP", pushAnimation);
addEventListener("NEXT_LEVEL", pushAnimation);
addEventListener("PLAY_AGAIN", pushAnimation);
addEventListener("CHOOSE_LEVEL", pushAnimation);
addEventListener("PLAY_CONTINUE", pushAnimation);
stage.addEventListener("ANIMATION_MIDDLE", goNextSection);
stop_play_switch.addEventListener(MouseEvent.MOUSE_DOWN, pauseGameHandler);
stop_play_switch.addEventListener(MouseEvent.MOUSE_OVER, pauseOverHandler);
snd_switch.addEventListener(MouseEvent.CLICK, soundSwitchHandler);
snd_switch.addEventListener(MouseEvent.MOUSE_OVER, soundOverHandler);
mus_switch.addEventListener(MouseEvent.CLICK, musicSwitchHandler);
mus_switch.addEventListener(MouseEvent.MOUSE_OVER, musicOverHandler);
}
private function pauseGameHandler(evt:MouseEvent):void{
SoundFX.play(null, "s_click", null, GameParams.soundVolume, 1);
dispatchEvent(new Event("GAME_PAUSE", true));
stage.addEventListener(MouseEvent.MOUSE_UP, releaseStopPlaySwitch);
}
private function releaseStopPlaySwitch(evt:MouseEvent):void{
dispatchEvent(new KeyboardEvent(KeyboardEvent.KEY_UP, true));
stage.removeEventListener(MouseEvent.MOUSE_UP, releaseStopPlaySwitch);
}
private function switchMusicFromPauseMenu(evt:Event){
musicSwitchHandler();
}
private function goTopScore(evt:Event):void{
GamezheroApi.linkTopScore();
}
private function soundOverHandler(evt:MouseEvent):void{
SoundFX.play(null, "s_over", null, GameParams.soundVolume, 1);
}
private function musicSwitchHandler(evt:MouseEvent=null):void{
if (evt != null){
SoundFX.play(null, "s_click", null, GameParams.soundVolume, 1);
};
if (musicState){
musicState = false;
SP.setMusicStatus(musicState);
Music.setVolume(0);
mus_switch.gotoAndStop(2);
} else {
musicState = true;
SP.setMusicStatus(musicState);
if (!PauseStatus){
Music.setVolume(GameParams.musicVolume);
};
mus_switch.gotoAndStop(1);
};
}
private function goNextSection(evt:Event):void{
dispatchEvent(new Event("REMOVE_ALL", true));
if (nextLable == "ShopLable"){
stop_play_switch.visible = false;
snd_switch.visible = false;
mus_switch.visible = false;
} else {
snd_switch.visible = true;
mus_switch.visible = true;
};
if (nextLable == "GameLable"){
stage.quality = SP.getQuality();
stop_play_switch.visible = true;
} else {
stage.quality = StageQuality.HIGH;
stop_play_switch.visible = false;
};
Music.play(nextMusic);
this.gotoAndStop(nextLable);
dispatchEvent(new Event("PLAY_ANIMATION", true));
}
private function linkZLogo(evt:Event):void{
GamezheroApi.linkZorroLogo();
}
private function switchSoundFromPauseMenu(evt:Event){
soundSwitchHandler();
}
private function musicOverHandler(evt:MouseEvent):void{
SoundFX.play(null, "s_over", null, GameParams.soundVolume, 1);
}
private function resumeHandler(evt:Event=null):void{
if (evt != null){
stage.quality = curQuality;
};
PauseStatus = false;
if (musicState){
Music.setVolume(GameParams.musicVolume);
};
stop_play_switch.alpha = 1;
snd_switch.alpha = 1;
mus_switch.alpha = 1;
(stop_play_switch as MovieClip).mouseEnabled = true;
(snd_switch as MovieClip).mouseEnabled = true;
(mus_switch as MovieClip).mouseEnabled = true;
(stop_play_switch as MovieClip).mouseChildren = true;
(snd_switch as MovieClip).mouseChildren = true;
(mus_switch as MovieClip).mouseChildren = true;
}
private function pauseHandler(evt:Event=null):void{
curQuality = stage.quality;
SP.saveQuality(stage.quality);
stage.quality = StageQuality.BEST;
PauseStatus = true;
Music.setVolume(0);
stop_play_switch.alpha = 0.4;
snd_switch.alpha = 0.4;
mus_switch.alpha = 0.4;
(stop_play_switch as MovieClip).mouseEnabled = false;
(snd_switch as MovieClip).mouseEnabled = false;
(mus_switch as MovieClip).mouseEnabled = false;
(stop_play_switch as MovieClip).mouseChildren = false;
(snd_switch as MovieClip).mouseChildren = false;
(mus_switch as MovieClip).mouseChildren = false;
}
private function listenAddedToStage(evt:Event):void{
this.parent.mask = (this.parent["mmask"] as MovieClip);
initListeners();
loadSndMusStatus();
Music.play(nextMusic);
SoundFX.setVolume(GameParams.soundVolume);
stop_play_switch.visible = false;
}
function frame23(){
stop();
}
private function pushAnimation(evt:Event):void{
dispatchEvent(new Event("PLAY_ANIMATION", true));
if (evt.type == "PLAY_GAME"){
if (GameParams.currSect == null){
GameParams.currSect = "CM";
nextLable = "GameHelp";
} else {
if (GameParams.currSect == "CM"){
nextLable = "GameLable";
nextMusic = "m_game";
};
};
};
if (evt.type == "CHOOSE_LEVEL"){
nextLable = "ChooseLevel";
};
if (evt.type == "PLAY_CONTINUE"){
GameParams.loadGame();
GameParams.currSect = "CM";
if (((!((SP.loadLevel() == null))) && ((GameParams.containerCurrentLevel > 0)))){
GameParams.gameContinues--;
nextLable = "ShopLable";
nextMusic = "m_shop";
} else {
nextLable = "GameLable";
nextMusic = "m_game";
};
};
if (evt.type == "PLAY_AGAIN"){
GameParams.loadGame();
nextLable = "ShopLable";
nextMusic = "m_shop";
};
if (evt.type == "GAME_OUT"){
nextLable = "GameOver";
nextMusic = "m_lost";
};
if (evt.type == "GAME_OVER"){
GameParams.gameContinues--;
if (GameParams.gameContinues >= 1){
nextLable = "LevelLost";
nextMusic = "m_lost";
} else {
nextLable = "GameOver";
nextMusic = "m_lost";
};
};
if (evt.type == "GO_MENU"){
nextLable = "MenuLable";
nextMusic = "main_menu";
resumeHandler();
GameParams.currSect = null;
};
if (evt.type == "TOP_SCORE"){
nextLable = "TopScoreLable";
};
if (evt.type == "HOW_TO_PLAY"){
nextLable = "GameHelp";
};
if (evt.type == "NEXT_LEVEL"){
nextMusic = "m_win";
if (GameParams.containerCurrentLevel < GameParams.levelsNumber){
nextLable = "LevelComplete";
} else {
nextLable = "Victory";
};
};
if (evt.type == "GO_SHOP"){
nextMusic = "m_shop";
nextLable = "ShopLable";
};
}
function frame31(){
stop();
}
private function loadSndMusStatus():void{
if (SP.getMusicStatus()){
musicState = false;
musicSwitchHandler();
} else {
musicState = true;
musicSwitchHandler();
};
if (SP.getSoundStatus()){
soundState = false;
soundSwitchHandler();
} else {
soundState = true;
soundSwitchHandler();
};
}
private function publishGame(evt:Event):void{
GamezheroApi.linkPublish();
}
function frame48(){
stop();
}
private function checkMusicState(evt:Event):void{
if (musicState){
dispatchEvent(new EventX("MUSIC_STATE", 1, true));
} else {
dispatchEvent(new EventX("MUSIC_STATE", 0, true));
};
}
private function soundSwitchHandler(evt:MouseEvent=null):void{
if (evt != null){
SoundFX.play(null, "s_click", null, GameParams.soundVolume, 1);
};
if (soundState){
soundState = false;
SP.setSoundStatus(soundState);
GameParams.soundVolume = GameParams.minSoundVolume;
snd_switch.gotoAndStop(2);
} else {
soundState = true;
SP.setSoundStatus(soundState);
GameParams.soundVolume = GameParams.maxSoundVolume;
snd_switch.gotoAndStop(1);
};
SoundFX.setVolume(GameParams.soundVolume);
}
function frame39(){
stop();
}
private function checkSoundStatus(evt:Event):void{
if (soundState){
dispatchEvent(new EventX("SOUND_STATE", 1, true));
} else {
dispatchEvent(new EventX("SOUND_STATE", 0, true));
};
}
function frame57(){
stop();
}
function frame1(){
stop();
}
private function showMoreGames(evt:Event):void{
GamezheroApi.linkMoreGames();
}
private function sendToFriends(evt:Event):void{
GamezheroApi.linkSendToFrined();
}
}
}//package sources
Section 218
//Satellite (sources.Satellite)
package sources {
import flash.events.*;
import flash.display.*;
import sources.math.*;
import sources.HelpClasses.*;
public class Satellite extends FriendlyObject {
private var fightMode:Boolean;// = false
private var satWeaponObj:HeroCurrentStateClass;
private var weaponMoveRight:Boolean;// = false
private var Color:uint;
private var weaponVector:MyVector;
private var weaponSpeed:Number;
private var gameContainer:MovieClip;
private var satWeapon:Weapon;
private var satteliteObject:Object;
private var bodyArmour:MovieClip;
private var weaponMoveLeft:Boolean;// = false
public function Satellite(){
weaponMoveRight = false;
weaponMoveLeft = false;
fightMode = false;
weaponVector = new MyVector(0.1, 0.1);
super();
}
public function initSatellite(satObj:Object, container:MovieClip, ndx:Number):void{
gameContainer = container;
satteliteObject = satObj;
init(satObj, container);
addArmour();
weaponVector.length = radius;
weaponVector.angle = (this.angle + satteliteObject.angleDiff);
addListeners();
if (GameParams.getSatelliteWeapon(ndx) != null){
satWeaponObj = GameParams.getSatelliteWeapon(ndx);
addWeapon();
};
}
private function removeListeners():void{
stage.removeEventListener("REMOVE_ALL", clearContainer);
gameContainer.removeEventListener("TIME_PROGRESS", updateSat);
}
private function addWeapon():void{
satWeapon = new Weapon();
addChild(satWeapon);
satWeapon.initWeapon(satWeaponObj, gameContainer, 0, 0, this, false);
}
private function updateSat(evt:Event):void{
weaponVector.angle = (this.angle + satteliteObject.angleDiff);
}
public function getVector():MyVector{
return (weaponVector);
}
private function addArmour():void{
if (satteliteObject.armourSkin != null){
bodyArmour = addPart(satteliteObject.armourSkin);
bodyArmour.width = ((radius * 2) + 10);
bodyArmour.height = ((radius * 2) + 10);
};
}
public function getDamage(damage:Number):void{
if (armour > 0){
armour = (armour - damage);
};
if (armour < 0){
health = (health + armour);
armour = 0;
};
if (armour == 0){
health = (health - damage);
};
if (health < 0){
health = 0;
};
if (health == 0){
deleteMe();
};
if (bodyArmour != null){
bodyArmour.alpha = armProp;
};
body.alpha = (Math.round((healthProp * 100)) / 100);
}
public function get fColor():uint{
return (Color);
}
private function clearContainer(evt:Event):void{
trace("CLEAR_SATELLITES");
removeListeners();
gameContainer.removeChild(this);
}
private function deleteMe():void{
dispatchEvent(new Event("KILL", true));
removeListeners();
gameContainer.removeChild(this);
}
public function get priority():Number{
return (satteliteObject.priority);
}
private function addListeners():void{
stage.addEventListener("REMOVE_ALL", clearContainer);
gameContainer.addEventListener("TIME_PROGRESS", updateSat);
}
}
}//package sources
Section 219
//SaveParams (sources.SaveParams)
package sources {
import flash.events.*;
import flash.net.*;
public class SaveParams extends EventDispatcher {
private var levelN:String;
private var SO:SharedObject;
private var musStatus:Boolean;// = true
private var SOFS:SharedObjectFlushStatus;
private var sndStatus:Boolean;// = true
private static var pMode:String = "MS";
private static var qGame:String;
private static var continues:Number = -1;
private static var lastLevel:Object = null;
public function SaveParams(target:IEventDispatcher=null){
sndStatus = true;
musStatus = true;
super(target);
}
public function saveQuality(ql:String):void{
SO = SharedObject.getLocal("GameQuality");
SO.clear();
SO.data.GameQuality = ql;
GameParams.gameQuality = ql;
}
public function setSect(md:String):void{
SO = SharedObject.getLocal("sect");
SO.clear();
SO.data.sect = md;
}
public function setPlayMode(pm:String):void{
pMode = pm;
SO = SharedObject.getLocal("PlayMode");
SO.clear();
SO.data.PlayMode = pm;
}
public function getQuality():String{
SO = SharedObject.getLocal("GameQuality");
if (SO.data.GameQuality != null){
GameParams.gameQuality = (qGame = SO.data.GameQuality);
} else {
qGame = GameParams.gameQuality;
};
return (qGame);
}
public function saveLevel(levelModel:Object, levelNum:Number):void{
levelN = ("Level" + levelNum.toString());
SO = SharedObject.getLocal("lastLevel");
SO.data["lastLevel"] = levelNum;
SO = SharedObject.getLocal(levelN);
SO.clear();
SO.data[levelN] = levelModel;
lastLevel = levelModel;
}
public function getMusicStatus():Boolean{
SO = SharedObject.getLocal("MusicStatus");
if (SO.data.MusicStatus != null){
musStatus = SO.data.MusicStatus;
};
return (musStatus);
}
public function setSoundStatus(sndStat:Boolean):void{
SO = SharedObject.getLocal("SoundStatus");
SO.clear();
SO.data.SoundStatus = sndStat;
}
public function getSoundStatus():Boolean{
SO = SharedObject.getLocal("SoundStatus");
if (SO.data.SoundStatus != null){
sndStatus = SO.data.SoundStatus;
};
return (sndStatus);
}
public function getPlayMode():String{
SO = SharedObject.getLocal("PlayMode");
if (SO.data.playMode != null){
pMode = SO.data.playMode;
};
return (pMode);
}
public function saveContinues(cnt:Number):void{
continues = cnt;
SO = SharedObject.getLocal("continues");
SO.clear();
SO.data.continues = cnt;
}
public function setMusicStatus(musStat:Boolean):void{
SO = SharedObject.getLocal("MusicStatus");
SO.clear();
SO.data.MusicStatus = musStat;
}
public function getSect():String{
SO = SharedObject.getLocal("sect");
return (SO.data.sect);
}
public function getContinues():Number{
SO = SharedObject.getLocal("continues");
if (SO.data.continues != undefined){
continues = SO.data.continues;
};
return (continues);
}
public function loadLevel():Object{
var levelModel:Object;
SO = SharedObject.getLocal("lastLevel");
levelModel = null;
if (SO.data["lastLevel"] != undefined){
levelN = ("Level" + SO.data["lastLevel"].toString());
SO = SharedObject.getLocal(levelN);
levelModel = SO.data[levelN];
} else {
if ((((SO.data["lastLevel"] == undefined)) && (!((lastLevel == null))))){
levelModel = lastLevel;
} else {
if ((((SO.data["lastLevel"] == undefined)) && ((lastLevel == null)))){
levelModel = null;
};
};
};
return (levelModel);
}
}
}//package sources
Section 220
//TaskViewer (sources.TaskViewer)
package sources {
import flash.events.*;
import flash.display.*;
public class TaskViewer extends MovieClip {
public var taskMc_tx:MovieClip;
private var gameContainer:MovieClip;
public var timeLineEventStr:String;// = "ANIMATION_END"
public function TaskViewer(){
timeLineEventStr = "ANIMATION_END";
addFrameScript(90, frame91);
super();
}
private function initListeners():void{
addEventListener(timeLineEventStr, stopHandler);
}
function frame91(){
dispatchEvent(new Event(timeLineEventStr, true));
}
private function resumeHandler(evt:MouseEvent):void{
}
public function initViewer(container:MovieClip):void{
gameContainer = container;
x = 0;
y = 0;
taskMc_tx.task_tx.text = GameParams.getLevelCondition().taskText;
initListeners();
}
private function removeViewer():void{
gameContainer.removeChild(this);
}
private function stopHandler(evt:Event):void{
dispatchEvent(new Event("RESUME_GAME", true));
stop();
removeViewer();
}
}
}//package sources
Section 221
//TextWave (sources.TextWave)
package sources {
import flash.events.*;
import flash.display.*;
import flash.text.*;
public class TextWave extends MovieClip {
private var startScale:Number;// = 1
private var scaleStep;// = 0.01
private var finishScale:Number;// = 2
public var wave_tx:TextField;
private var selfContainer:MovieClip;
private var levelsNumber:Number;
private var gameContainer:MovieClip;
public function TextWave(){
startScale = 1;
finishScale = 2;
scaleStep = 0.01;
super();
}
public function updateWave(evt:Event):void{
if (scaleX >= finishScale){
gameContainer.removeEventListener("TIME_PROGRESS", updateWave);
selfContainer.removeChild(this);
};
alpha = ((4 * (finishScale - scaleX)) * (scaleX - startScale));
scaleX = (scaleX + scaleStep);
scaleY = (scaleY + scaleStep);
}
public function showWave(tx:String, container:MovieClip, sContainer:MovieClip):void{
selfContainer = sContainer;
x = (GameParams.gameDimensions.width / 2);
y = (GameParams.gameDimensions.height / 2);
gameContainer = container;
gameContainer.addEventListener("TIME_PROGRESS", updateWave);
wave_tx.autoSize = TextFieldAutoSize.CENTER;
wave_tx.text = tx;
scaleX = (scaleY = startScale);
}
}
}//package sources
Section 222
//topScore (sources.topScore)
package sources {
import flash.display.*;
public dynamic class topScore extends MovieClip {
public function topScore(){
super();
}
}
}//package sources
Section 223
//Weapon (sources.Weapon)
package sources {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import sources.math.*;
import flash.utils.*;
import sources.HelpClasses.*;
import sources.EventExtend.*;
import com.gamezhero.media.*;
public class Weapon extends MovieClip {
private var shootInterval:Number;
private var shootActive:Boolean;// = false
private var wSpeed:Number;
private var placeDegDiff:Number;// = 45
private var automatic:Boolean;// = false
private var placeInArr:uint;
private var isHero:Boolean;
private var weaponModel:HeroCurrentStateClass;
private var overHeatCounter:Number;
private var weaponVector:MyVector;
private var warnS:Number;
private var bulletObj:Bullet;
private var z:Boolean;// = true
private var warn:Number;
private var gameContainer:MovieClip;
private var bulletScore:Number;
private var partM:MovieClip;
private var SwitchWeaponValue;// = 15
private var chPlaceDiff:Number;// = 0
private var shootCounter:Number;// = 0
private var overHeat:Number;
private var currentWeapon:Boolean;// = false
private var shootCounter1:Number;// = 0
private var shootIntervalOver:Number;// = 0
private var notActiveAlpha;// = 0.2
private var placeNdx:uint;
private var alphaNdx;// = 0.05
private var ClassPart:Class;
private var swapWeapon:Boolean;// = false
private var posPoint:Point;
private var body:MovieClip;
private var currWarn:Number;// = 0
private var activeAlpha;// = 1
private var cooling:Number;
private var hero:MovieClip;
private static var currPlace:Number = 0;
private static var swapPlaces:Number;
public function Weapon(){
weaponModel = new HeroCurrentStateClass();
shootCounter = 0;
shootCounter1 = 0;
shootActive = false;
weaponVector = new MyVector(0.1, 0.1);
placeDegDiff = 45;
chPlaceDiff = 0;
swapWeapon = false;
currentWeapon = false;
automatic = false;
z = true;
currWarn = 0;
shootIntervalOver = 0;
SwitchWeaponValue = 15;
alphaNdx = 0.05;
activeAlpha = 1;
notActiveAlpha = 0.2;
super();
}
public function _place():uint{
return (placeInArr);
}
public function get warnStatus():Number{
if (overHeat > 0){
warnS = (currWarn / overHeat);
} else {
warnS = 0;
};
return (warnS);
}
private function removeListeners():void{
gameContainer.removeEventListener("TIME_PROGRESS", updateWeapon);
gameContainer.removeEventListener("SWAP_WEAPON", MoveNewPlace);
z = false;
hero.removeEventListener("REMOVE_WAPONS", clearContainer);
stage.removeEventListener(MouseEvent.MOUSE_DOWN, mouseShoot);
stage.removeEventListener(MouseEvent.MOUSE_UP, mouseStay);
stage.removeEventListener(KeyboardEvent.KEY_DOWN, KeyPress);
stage.removeEventListener(KeyboardEvent.KEY_UP, KeyRelease);
}
public function addPart(part:Class):MovieClip{
ClassPart = part;
partM = new ClassPart();
addChild(partM);
return (partM);
}
private function updateWeapon(evt:Event=null):void{
var shoot:Boolean;
if (currentWeapon){
if (alpha < activeAlpha){
alpha = (alpha + alphaNdx);
} else {
alpha = activeAlpha;
};
} else {
if (((!(currentWeapon)) && (!(automatic)))){
if (alpha > (notActiveAlpha + alphaNdx)){
alpha = (alpha - alphaNdx);
} else {
if (alpha < (notActiveAlpha - alphaNdx)){
alpha = (alpha + alphaNdx);
} else {
alpha = notActiveAlpha;
};
};
} else {
if (automatic){
if (alpha < activeAlpha){
alpha = (alpha + alphaNdx);
} else {
alpha = activeAlpha;
};
};
};
};
shoot = false;
if (swapWeapon){
if (Math.abs(angleTransform(((placeNdx * placeDegDiff) - swapPlaces))) > 0.5){
swapPlaces = (swapPlaces + (angleTransform(((placeNdx * placeDegDiff) - swapPlaces)) / 5));
} else {
swapPlaces = (placeNdx * placeDegDiff);
swapWeapon = false;
};
if (swapPlaces > 360){
swapPlaces = (swapPlaces - 360);
};
if (swapPlaces < 0){
swapPlaces = (swapPlaces + 360);
};
};
weaponVector = hero.getVector().getClone();
if (isHero){
weaponVector.angle = (weaponVector.angle + ((placeNdx * placeDegDiff) - swapPlaces));
};
position = new Point((hero.position.x + weaponVector.x), (hero.position.y + weaponVector.y));
rotation = weaponVector.angle;
if (automatic){
shootCounter++;
if ((((shootCounter > weaponModel.currentWeapons.shootInterval)) && (!((GameContainer.enemysArrayE.length == 0))))){
shootCounter = 0;
bulletObj = new Bullet();
shoot = true;
gameContainer.addChild(bulletObj);
gameContainer.setChildIndex(bulletObj, 0);
bulletObj.BulletInit(GameParams.Bullets[weaponModel.currentWeapons.bullet], this, gameContainer);
};
};
if (((shootActive) && (currentWeapon))){
shootCounter++;
if (shootCounter > shootInterval){
if (overHeat != 0){
if (currWarn < overHeat){
currWarn = (currWarn + warn);
};
if (currWarn >= overHeat){
currWarn = overHeat;
};
};
shootCounter = 0;
if ((((currWarn < overHeat)) || ((overHeat == 0)))){
overHeatCounter = 0;
bulletObj = new Bullet();
shoot = true;
gameContainer.addChild(bulletObj);
gameContainer.setChildIndex(bulletObj, 0);
bulletObj.BulletInit(GameParams.Bullets[weaponModel.currentWeapons.bullet], this, gameContainer);
dispatchEvent(new EventX("CHANGE_SCORE_BONUS", -(GameParams.Bullets[weaponModel.currentWeapons.bullet].bulletScore), true));
} else {
if ((((currWarn >= overHeat)) && ((overHeat > 0)))){
overHeatCounter++;
if (overHeatCounter >= SwitchWeaponValue){
dispatchEvent(new Event("OVERHEAT_SWITCH_WEAPON", true));
};
};
};
};
} else {
if (((!(shootActive)) || (!(currentWeapon)))){
if (shootCounter < shootInterval){
shootCounter++;
};
if (shootCounter1 > shootInterval){
shootCounter1 = 0;
if (currWarn > 0){
currWarn = (currWarn - cooling);
} else {
currWarn = 0;
};
if (currWarn >= overHeat){
currWarn = overHeat;
};
} else {
shootCounter1++;
};
};
};
if (shoot){
SoundFX.play("shoot", "s_shoot1", null, GameParams.getPin(position.x), 1);
};
}
public function get weaponActive():Boolean{
return (currentWeapon);
}
public function set position(pos:Point):void{
posPoint = pos.clone();
x = hero.globalToLocal(posPoint).x;
y = hero.globalToLocal(posPoint).y;
posPoint = pos.clone();
}
private function MoveNewPlace(evt:EventX):void{
swapWeapon = false;
if (isHero){
if (!automatic){
};
if (currentWeapon){
dispatchEvent(new Event("SET_WEAPON", true));
swapWeapon = true;
currPlace = angleTransform(((placeNdx * placeDegDiff) - swapPlaces));
};
};
}
public function getVector():MyVector{
return (weaponVector);
}
public function set weaponActive(act:Boolean):void{
currentWeapon = act;
}
public function getSpeed():Number{
return (wSpeed);
}
private function mouseStay(EVENT:MouseEvent=null):void{
shootActive = false;
shootCounter1 = 0;
}
private function mouseShoot(EVENT:MouseEvent=null):void{
shootActive = true;
}
private function clearContainer(EVENT:Event):void{
removeListeners();
hero.removeChild(this);
}
private function KeyRelease(EVENT:KeyboardEvent):void{
if (EVENT.keyCode == 90){
};
}
public function getWeapon():MovieClip{
return (this);
}
public function get position():Point{
return (posPoint);
}
private function initListeners():void{
gameContainer.addEventListener("TIME_PROGRESS", updateWeapon);
gameContainer.addEventListener("SWAP_WEAPON", MoveNewPlace);
hero.addEventListener("REMOVE_WAPONS", clearContainer);
stage.addEventListener(MouseEvent.MOUSE_DOWN, mouseShoot);
stage.addEventListener(MouseEvent.MOUSE_UP, mouseStay);
stage.addEventListener(KeyboardEvent.KEY_DOWN, KeyPress);
stage.addEventListener(KeyboardEvent.KEY_UP, KeyRelease);
}
public function initWeapon(WModel:HeroCurrentStateClass, container:MovieClip, PNdx:uint, PIArr:uint, Parent:MovieClip, isHr:Boolean=true):void{
alpha = 0;
swapPlaces = 0;
weaponModel = WModel;
isHero = isHr;
automatic = weaponModel.automatic;
overHeat = weaponModel.currentWeapons.overheat;
if (isHero){
warn = weaponModel.currentWeapons.warm;
cooling = weaponModel.currentWeapons.cooling;
} else {
warn = 0;
};
wSpeed = weaponModel.currentWeapons.wSpeed;
shootInterval = weaponModel.currentWeapons.shootInterval;
gameContainer = container;
placeNdx = PNdx;
placeInArr = PIArr;
if (placeNdx == 0){
currentWeapon = true;
dispatchEvent(new Event("SET_WEAPON", true));
} else {
currentWeapon = false;
};
if (automatic){
};
hero = Parent;
body = addPart((getDefinitionByName(weaponModel.currentWeapons.skin) as Class));
initListeners();
updateWeapon();
}
private function KeyPress(EVENT:KeyboardEvent):void{
if (EVENT.keyCode == 90){
};
}
public static function angleTransform(foo:Number):Number{
if (foo > 180){
foo = (foo - 360);
} else {
if (foo < -180){
foo = (foo + 360);
};
};
return (foo);
}
}
}//package sources
Section 224
//Victory (sources.Victory)
package sources {
import flash.events.*;
import flash.display.*;
import com.gamezhero.api.as3.*;
public class Victory extends MovieClip {
public function Victory(){
var skin:Object;
super();
skin = {border:{width:4, color:0xCCCC00, alpha:100}, background:{topColor:0xCCCC00, bottomColor:0xCCCC00, topAlpha:50, bottomAlpha:20, cornerRadius:20}, language:"ENG"};
GamezheroApi.score(this, "160198209155170203151168161129146152161174168151169158158149169153159154212164154196211149170206139164159089146", GameParams.score, 146, 155, custAction, custAction, custAction, skin);
GameParams.resetToStart();
GameParams.saveGame();
}
private function custAction():void{
dispatchEvent(new Event("GO_MENU", true));
}
}
}//package sources
Section 225
//AnimalsGood (AnimalsGood)
package {
import sources.*;
public dynamic class AnimalsGood extends Animals {
public function AnimalsGood(){
super();
}
}
}//package
Section 226
//arm1 (arm1)
package {
import flash.display.*;
public dynamic class arm1 extends MovieClip {
public function arm1(){
super();
}
}
}//package
Section 227
//arm10 (arm10)
package {
import flash.display.*;
public dynamic class arm10 extends MovieClip {
public function arm10(){
super();
}
}
}//package
Section 228
//arm2 (arm2)
package {
import flash.display.*;
public dynamic class arm2 extends MovieClip {
public function arm2(){
super();
}
}
}//package
Section 229
//arm3 (arm3)
package {
import flash.display.*;
public dynamic class arm3 extends MovieClip {
public function arm3(){
super();
}
}
}//package
Section 230
//arm4 (arm4)
package {
import flash.display.*;
public dynamic class arm4 extends MovieClip {
public function arm4(){
super();
}
}
}//package
Section 231
//arm5 (arm5)
package {
import flash.display.*;
public dynamic class arm5 extends MovieClip {
public function arm5(){
super();
}
}
}//package
Section 232
//arm6 (arm6)
package {
import flash.display.*;
public dynamic class arm6 extends MovieClip {
public function arm6(){
super();
}
}
}//package
Section 233
//arm7 (arm7)
package {
import flash.display.*;
public dynamic class arm7 extends MovieClip {
public function arm7(){
super();
}
}
}//package
Section 234
//arm8 (arm8)
package {
import flash.display.*;
public dynamic class arm8 extends MovieClip {
public function arm8(){
super();
}
}
}//package
Section 235
//arm9 (arm9)
package {
import flash.display.*;
public dynamic class arm9 extends MovieClip {
public function arm9(){
super();
}
}
}//package
Section 236
//armourLine (armourLine)
package {
import flash.display.*;
public dynamic class armourLine extends MovieClip {
public var line:MovieClip;
public function armourLine(){
super();
}
}
}//package
Section 237
//b6_p1 (b6_p1)
package {
import flash.display.*;
public dynamic class b6_p1 extends MovieClip {
public var enemyHitArea:MovieClip;
public function b6_p1(){
super();
}
}
}//package
Section 238
//b6_p2 (b6_p2)
package {
import flash.display.*;
public dynamic class b6_p2 extends MovieClip {
public var enemyHitArea:MovieClip;
public function b6_p2(){
super();
}
}
}//package
Section 239
//b6_p3 (b6_p3)
package {
import flash.display.*;
public dynamic class b6_p3 extends MovieClip {
public var enemyHitArea:MovieClip;
public function b6_p3(){
super();
}
}
}//package
Section 240
//b6_p4 (b6_p4)
package {
import flash.display.*;
public dynamic class b6_p4 extends MovieClip {
public var enemyHitArea:MovieClip;
public function b6_p4(){
super();
}
}
}//package
Section 241
//blueSatellite (blueSatellite)
package {
import flash.display.*;
public dynamic class blueSatellite extends MovieClip {
public function blueSatellite(){
super();
}
}
}//package
Section 242
//bombardier_skin (bombardier_skin)
package {
import flash.display.*;
public dynamic class bombardier_skin extends MovieClip {
public var enemyHitArea:MovieClip;
public function bombardier_skin(){
super();
}
}
}//package
Section 243
//boss_skin (boss_skin)
package {
import flash.display.*;
public dynamic class boss_skin extends MovieClip {
public var enemyHitArea:MovieClip;
public function boss_skin(){
super();
}
}
}//package
Section 244
//bulletBody (bulletBody)
package {
import flash.display.*;
public dynamic class bulletBody extends MovieClip {
public function bulletBody(){
super();
addFrameScript(0, frame1, 42, frame43);
}
function frame1(){
this.gotoAndStop(Math.round((Math.random() * 44)));
}
function frame43(){
this.gotoAndPlay(2);
}
}
}//package
Section 245
//bulletBody_auto_nav1 (bulletBody_auto_nav1)
package {
import flash.display.*;
public dynamic class bulletBody_auto_nav1 extends MovieClip {
public function bulletBody_auto_nav1(){
super();
addFrameScript(0, frame1, 34, frame35);
}
function frame1(){
}
function frame35(){
this.gotoAndPlay(17);
}
}
}//package
Section 246
//bulletBody1 (bulletBody1)
package {
import flash.display.*;
public dynamic class bulletBody1 extends MovieClip {
public function bulletBody1(){
super();
addFrameScript(0, frame1, 42, frame43);
}
function frame1(){
this.gotoAndStop(Math.round((Math.random() * 44)));
}
function frame43(){
this.gotoAndPlay(2);
}
}
}//package
Section 247
//bulletBody1_split (bulletBody1_split)
package {
import flash.display.*;
public dynamic class bulletBody1_split extends MovieClip {
public function bulletBody1_split(){
super();
addFrameScript(0, frame1, 42, frame43);
}
function frame1(){
this.gotoAndStop(Math.round((Math.random() * 44)));
}
function frame43(){
this.gotoAndPlay(2);
}
}
}//package
Section 248
//bulletBody10 (bulletBody10)
package {
import flash.display.*;
public dynamic class bulletBody10 extends MovieClip {
public function bulletBody10(){
super();
addFrameScript(0, frame1, 42, frame43);
}
function frame1(){
this.gotoAndStop(Math.round((Math.random() * 44)));
}
function frame43(){
this.gotoAndPlay(2);
}
}
}//package
Section 249
//bulletBody11 (bulletBody11)
package {
import flash.display.*;
public dynamic class bulletBody11 extends MovieClip {
public function bulletBody11(){
super();
addFrameScript(0, frame1, 42, frame43);
}
function frame1(){
this.gotoAndStop(Math.round((Math.random() * 44)));
}
function frame43(){
this.gotoAndPlay(2);
}
}
}//package
Section 250
//bulletBody12 (bulletBody12)
package {
import flash.display.*;
public dynamic class bulletBody12 extends MovieClip {
public function bulletBody12(){
super();
addFrameScript(0, frame1, 42, frame43);
}
function frame1(){
this.gotoAndStop(Math.round((Math.random() * 44)));
}
function frame43(){
this.gotoAndPlay(2);
}
}
}//package
Section 251
//bulletBody13 (bulletBody13)
package {
import flash.display.*;
public dynamic class bulletBody13 extends MovieClip {
public function bulletBody13(){
super();
addFrameScript(0, frame1, 42, frame43);
}
function frame1(){
this.gotoAndStop(Math.round((Math.random() * 44)));
}
function frame43(){
this.gotoAndPlay(2);
}
}
}//package
Section 252
//bulletBody2 (bulletBody2)
package {
import flash.display.*;
public dynamic class bulletBody2 extends MovieClip {
public function bulletBody2(){
super();
addFrameScript(0, frame1, 42, frame43);
}
function frame1(){
this.gotoAndStop(Math.round((Math.random() * 44)));
}
function frame43(){
this.gotoAndPlay(2);
}
}
}//package
Section 253
//bulletBody3 (bulletBody3)
package {
import flash.display.*;
public dynamic class bulletBody3 extends MovieClip {
public function bulletBody3(){
super();
addFrameScript(0, frame1, 42, frame43);
}
function frame1(){
this.gotoAndStop(Math.round((Math.random() * 44)));
}
function frame43(){
this.gotoAndPlay(2);
}
}
}//package
Section 254
//bulletBody4 (bulletBody4)
package {
import flash.display.*;
public dynamic class bulletBody4 extends MovieClip {
public function bulletBody4(){
super();
addFrameScript(0, frame1, 42, frame43);
}
function frame1(){
this.gotoAndStop(Math.round((Math.random() * 44)));
}
function frame43(){
this.gotoAndPlay(2);
}
}
}//package
Section 255
//bulletBody5 (bulletBody5)
package {
import flash.display.*;
public dynamic class bulletBody5 extends MovieClip {
public function bulletBody5(){
super();
addFrameScript(0, frame1, 42, frame43);
}
function frame1(){
this.gotoAndStop(Math.round((Math.random() * 44)));
}
function frame43(){
this.gotoAndPlay(2);
}
}
}//package
Section 256
//bulletBody6 (bulletBody6)
package {
import flash.display.*;
public dynamic class bulletBody6 extends MovieClip {
public function bulletBody6(){
super();
addFrameScript(0, frame1, 42, frame43);
}
function frame1(){
this.gotoAndStop(Math.round((Math.random() * 44)));
}
function frame43(){
this.gotoAndPlay(2);
}
}
}//package
Section 257
//bulletBody7 (bulletBody7)
package {
import flash.display.*;
public dynamic class bulletBody7 extends MovieClip {
public function bulletBody7(){
super();
addFrameScript(0, frame1, 42, frame43);
}
function frame1(){
this.gotoAndStop(Math.round((Math.random() * 44)));
}
function frame43(){
this.gotoAndPlay(2);
}
}
}//package
Section 258
//bulletBody8 (bulletBody8)
package {
import flash.display.*;
public dynamic class bulletBody8 extends MovieClip {
public function bulletBody8(){
super();
addFrameScript(0, frame1, 42, frame43);
}
function frame1(){
this.gotoAndStop(Math.round((Math.random() * 44)));
}
function frame43(){
this.gotoAndPlay(2);
}
}
}//package
Section 259
//bulletBody9 (bulletBody9)
package {
import flash.display.*;
public dynamic class bulletBody9 extends MovieClip {
public function bulletBody9(){
super();
addFrameScript(0, frame1, 42, frame43);
}
function frame1(){
this.gotoAndStop(Math.round((Math.random() * 44)));
}
function frame43(){
this.gotoAndPlay(2);
}
}
}//package
Section 260
//BulletExplosion (BulletExplosion)
package {
import flash.display.*;
public dynamic class BulletExplosion extends MovieClip {
public function BulletExplosion(){
super();
}
}
}//package
Section 261
//BulletExplosion1 (BulletExplosion1)
package {
import flash.display.*;
public dynamic class BulletExplosion1 extends MovieClip {
public function BulletExplosion1(){
super();
}
}
}//package
Section 262
//BulletExplosion10 (BulletExplosion10)
package {
import flash.display.*;
public dynamic class BulletExplosion10 extends MovieClip {
public function BulletExplosion10(){
super();
}
}
}//package
Section 263
//BulletExplosion11 (BulletExplosion11)
package {
import flash.display.*;
public dynamic class BulletExplosion11 extends MovieClip {
public function BulletExplosion11(){
super();
}
}
}//package
Section 264
//BulletExplosion12 (BulletExplosion12)
package {
import flash.display.*;
public dynamic class BulletExplosion12 extends MovieClip {
public function BulletExplosion12(){
super();
}
}
}//package
Section 265
//BulletExplosion13 (BulletExplosion13)
package {
import flash.display.*;
public dynamic class BulletExplosion13 extends MovieClip {
public function BulletExplosion13(){
super();
}
}
}//package
Section 266
//BulletExplosion2 (BulletExplosion2)
package {
import flash.display.*;
public dynamic class BulletExplosion2 extends MovieClip {
public function BulletExplosion2(){
super();
}
}
}//package
Section 267
//BulletExplosion3 (BulletExplosion3)
package {
import flash.display.*;
public dynamic class BulletExplosion3 extends MovieClip {
public function BulletExplosion3(){
super();
}
}
}//package
Section 268
//BulletExplosion4 (BulletExplosion4)
package {
import flash.display.*;
public dynamic class BulletExplosion4 extends MovieClip {
public function BulletExplosion4(){
super();
}
}
}//package
Section 269
//BulletExplosion5 (BulletExplosion5)
package {
import flash.display.*;
public dynamic class BulletExplosion5 extends MovieClip {
public function BulletExplosion5(){
super();
}
}
}//package
Section 270
//BulletExplosion6 (BulletExplosion6)
package {
import flash.display.*;
public dynamic class BulletExplosion6 extends MovieClip {
public function BulletExplosion6(){
super();
}
}
}//package
Section 271
//BulletExplosion7 (BulletExplosion7)
package {
import flash.display.*;
public dynamic class BulletExplosion7 extends MovieClip {
public function BulletExplosion7(){
super();
}
}
}//package
Section 272
//BulletExplosion8 (BulletExplosion8)
package {
import flash.display.*;
public dynamic class BulletExplosion8 extends MovieClip {
public function BulletExplosion8(){
super();
}
}
}//package
Section 273
//BulletExplosion9 (BulletExplosion9)
package {
import flash.display.*;
public dynamic class BulletExplosion9 extends MovieClip {
public function BulletExplosion9(){
super();
}
}
}//package
Section 274
//ConditionPanel (ConditionPanel)
package {
import flash.display.*;
public dynamic class ConditionPanel extends MovieClip {
public function ConditionPanel(){
super();
}
}
}//package
Section 275
//enemy_bullet_skin (enemy_bullet_skin)
package {
import flash.display.*;
public dynamic class enemy_bullet_skin extends MovieClip {
public var enemyHitArea:MovieClip;
public function enemy_bullet_skin(){
super();
}
}
}//package
Section 276
//enemy_mine_skin (enemy_mine_skin)
package {
import flash.display.*;
public dynamic class enemy_mine_skin extends MovieClip {
public var enemyHitArea:MovieClip;
public function enemy_mine_skin(){
super();
}
}
}//package
Section 277
//EnemyBoss_1 (EnemyBoss_1)
package {
import flash.display.*;
public dynamic class EnemyBoss_1 extends MovieClip {
public var enemyHitArea:MovieClip;
public function EnemyBoss_1(){
super();
}
}
}//package
Section 278
//EnemyBoss_2 (EnemyBoss_2)
package {
import flash.display.*;
public dynamic class EnemyBoss_2 extends MovieClip {
public var enemyHitArea:MovieClip;
public function EnemyBoss_2(){
super();
}
}
}//package
Section 279
//EnemyBoss_4 (EnemyBoss_4)
package {
import flash.display.*;
public dynamic class EnemyBoss_4 extends MovieClip {
public var enemyHitArea:MovieClip;
public function EnemyBoss_4(){
super();
}
}
}//package
Section 280
//EnemyBoss_5 (EnemyBoss_5)
package {
import flash.display.*;
public dynamic class EnemyBoss_5 extends MovieClip {
public var enemyHitArea:MovieClip;
public var cont1:MovieClip;
public var cont2:MovieClip;
public function EnemyBoss_5(){
super();
}
}
}//package
Section 281
//EnemyBoss_5_part (EnemyBoss_5_part)
package {
import flash.display.*;
public dynamic class EnemyBoss_5_part extends MovieClip {
public var enemyHitArea:MovieClip;
public function EnemyBoss_5_part(){
super();
addFrameScript(24, frame25);
}
function frame25(){
stop();
}
}
}//package
Section 282
//EnemyBoss_6 (EnemyBoss_6)
package {
import flash.display.*;
public dynamic class EnemyBoss_6 extends MovieClip {
public var enemyHitArea:MovieClip;
public var cont5:MovieClip;
public var cont6:MovieClip;
public var cont7:MovieClip;
public var cont3:MovieClip;
public var cont1:MovieClip;
public var cont2:MovieClip;
public var cont4:MovieClip;
public var cont8:MovieClip;
public function EnemyBoss_6(){
super();
addFrameScript(359, frame360);
}
function frame360(){
gotoAndPlay(1);
}
}
}//package
Section 283
//EnemyBoss_6_part (EnemyBoss_6_part)
package {
import flash.display.*;
public dynamic class EnemyBoss_6_part extends MovieClip {
public var enemyHitArea:MovieClip;
public function EnemyBoss_6_part(){
super();
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 284
//EnemyBoss6_body (EnemyBoss6_body)
package {
import flash.display.*;
public dynamic class EnemyBoss6_body extends MovieClip {
public function EnemyBoss6_body(){
super();
}
}
}//package
Section 285
//enemyExplosion1 (enemyExplosion1)
package {
import flash.display.*;
public dynamic class enemyExplosion1 extends MovieClip {
public function enemyExplosion1(){
super();
}
}
}//package
Section 286
//enemyExplosion1_2 (enemyExplosion1_2)
package {
import flash.events.*;
import flash.display.*;
import sources.*;
public dynamic class enemyExplosion1_2 extends MovieClip {
public function enemyExplosion1_2(){
super();
addFrameScript(14, frame15);
}
function frame15(){
dispatchEvent(new Event(Explosion.timeLineEventStr, true));
}
}
}//package
Section 287
//enemyExplosion10 (enemyExplosion10)
package {
import flash.display.*;
public dynamic class enemyExplosion10 extends MovieClip {
public function enemyExplosion10(){
super();
}
}
}//package
Section 288
//enemyExplosion11 (enemyExplosion11)
package {
import flash.display.*;
public dynamic class enemyExplosion11 extends MovieClip {
public function enemyExplosion11(){
super();
}
}
}//package
Section 289
//enemyExplosion12 (enemyExplosion12)
package {
import flash.display.*;
public dynamic class enemyExplosion12 extends MovieClip {
public function enemyExplosion12(){
super();
}
}
}//package
Section 290
//enemyExplosion13 (enemyExplosion13)
package {
import flash.display.*;
public dynamic class enemyExplosion13 extends MovieClip {
public function enemyExplosion13(){
super();
}
}
}//package
Section 291
//enemyExplosion14 (enemyExplosion14)
package {
import flash.display.*;
public dynamic class enemyExplosion14 extends MovieClip {
public function enemyExplosion14(){
super();
}
}
}//package
Section 292
//enemyExplosion15 (enemyExplosion15)
package {
import flash.display.*;
public dynamic class enemyExplosion15 extends MovieClip {
public function enemyExplosion15(){
super();
}
}
}//package
Section 293
//enemyExplosion2 (enemyExplosion2)
package {
import flash.display.*;
public dynamic class enemyExplosion2 extends MovieClip {
public function enemyExplosion2(){
super();
}
}
}//package
Section 294
//enemyExplosion2_2 (enemyExplosion2_2)
package {
import flash.display.*;
public dynamic class enemyExplosion2_2 extends MovieClip {
public function enemyExplosion2_2(){
super();
}
}
}//package
Section 295
//enemyExplosion2_3 (enemyExplosion2_3)
package {
import flash.display.*;
public dynamic class enemyExplosion2_3 extends MovieClip {
public function enemyExplosion2_3(){
super();
}
}
}//package
Section 296
//enemyExplosion3 (enemyExplosion3)
package {
import flash.display.*;
public dynamic class enemyExplosion3 extends MovieClip {
public function enemyExplosion3(){
super();
}
}
}//package
Section 297
//enemyExplosion4 (enemyExplosion4)
package {
import flash.display.*;
public dynamic class enemyExplosion4 extends MovieClip {
public function enemyExplosion4(){
super();
}
}
}//package
Section 298
//enemyExplosion5 (enemyExplosion5)
package {
import flash.display.*;
public dynamic class enemyExplosion5 extends MovieClip {
public function enemyExplosion5(){
super();
}
}
}//package
Section 299
//enemyExplosion6 (enemyExplosion6)
package {
import flash.display.*;
public dynamic class enemyExplosion6 extends MovieClip {
public function enemyExplosion6(){
super();
}
}
}//package
Section 300
//enemyExplosion6_b (enemyExplosion6_b)
package {
import flash.display.*;
public dynamic class enemyExplosion6_b extends MovieClip {
public function enemyExplosion6_b(){
super();
}
}
}//package
Section 301
//enemyExplosion6_star (enemyExplosion6_star)
package {
import flash.display.*;
public dynamic class enemyExplosion6_star extends MovieClip {
public function enemyExplosion6_star(){
super();
}
}
}//package
Section 302
//enemyExplosion7 (enemyExplosion7)
package {
import flash.display.*;
public dynamic class enemyExplosion7 extends MovieClip {
public function enemyExplosion7(){
super();
}
}
}//package
Section 303
//enemyExplosion8 (enemyExplosion8)
package {
import flash.display.*;
public dynamic class enemyExplosion8 extends MovieClip {
public function enemyExplosion8(){
super();
}
}
}//package
Section 304
//enemyExplosion9 (enemyExplosion9)
package {
import flash.display.*;
public dynamic class enemyExplosion9 extends MovieClip {
public function enemyExplosion9(){
super();
}
}
}//package
Section 305
//enemyExplosionBoss_1 (enemyExplosionBoss_1)
package {
import flash.display.*;
public dynamic class enemyExplosionBoss_1 extends MovieClip {
public function enemyExplosionBoss_1(){
super();
}
}
}//package
Section 306
//enemyExplosionBoss_2 (enemyExplosionBoss_2)
package {
import flash.display.*;
public dynamic class enemyExplosionBoss_2 extends MovieClip {
public function enemyExplosionBoss_2(){
super();
}
}
}//package
Section 307
//enemyExplosionBoss_4 (enemyExplosionBoss_4)
package {
import flash.display.*;
public dynamic class enemyExplosionBoss_4 extends MovieClip {
public function enemyExplosionBoss_4(){
super();
}
}
}//package
Section 308
//enemyHealthLine (enemyHealthLine)
package {
import flash.display.*;
public dynamic class enemyHealthLine extends MovieClip {
public function enemyHealthLine(){
super();
}
}
}//package
Section 309
//EnemyLevelI (EnemyLevelI)
package {
import flash.display.*;
public dynamic class EnemyLevelI extends MovieClip {
public var enemyHitArea:MovieClip;
public function EnemyLevelI(){
super();
}
}
}//package
Section 310
//EnemyLevelII (EnemyLevelII)
package {
import flash.display.*;
public dynamic class EnemyLevelII extends MovieClip {
public var enemyHitArea:MovieClip;
public function EnemyLevelII(){
super();
}
}
}//package
Section 311
//EnemyLevelII_b (EnemyLevelII_b)
package {
import flash.display.*;
public dynamic class EnemyLevelII_b extends MovieClip {
public var enemyHitArea:MovieClip;
public function EnemyLevelII_b(){
super();
}
}
}//package
Section 312
//EnemyLevelII_s (EnemyLevelII_s)
package {
import flash.display.*;
public dynamic class EnemyLevelII_s extends MovieClip {
public var enemyHitArea:MovieClip;
public function EnemyLevelII_s(){
super();
}
}
}//package
Section 313
//EnemyLevelIII (EnemyLevelIII)
package {
import flash.display.*;
public dynamic class EnemyLevelIII extends MovieClip {
public var enemyHitArea:MovieClip;
public function EnemyLevelIII(){
super();
}
}
}//package
Section 314
//EnemyLevelIV (EnemyLevelIV)
package {
import flash.display.*;
public dynamic class EnemyLevelIV extends MovieClip {
public var enemyHitArea:MovieClip;
public function EnemyLevelIV(){
super();
}
}
}//package
Section 315
//EnemyLevelIX (EnemyLevelIX)
package {
import flash.display.*;
public dynamic class EnemyLevelIX extends MovieClip {
public var enemyHitArea:MovieClip;
public function EnemyLevelIX(){
super();
}
}
}//package
Section 316
//EnemyLevelV (EnemyLevelV)
package {
import flash.display.*;
public dynamic class EnemyLevelV extends MovieClip {
public var enemyHitArea:MovieClip;
public function EnemyLevelV(){
super();
}
}
}//package
Section 317
//EnemyLevelVI (EnemyLevelVI)
package {
import flash.display.*;
public dynamic class EnemyLevelVI extends MovieClip {
public var enemyHitArea:MovieClip;
public function EnemyLevelVI(){
super();
}
}
}//package
Section 318
//EnemyLevelVI_b (EnemyLevelVI_b)
package {
import flash.display.*;
public dynamic class EnemyLevelVI_b extends MovieClip {
public var enemyHitArea:MovieClip;
public function EnemyLevelVI_b(){
super();
}
}
}//package
Section 319
//EnemyLevelVI_star (EnemyLevelVI_star)
package {
import flash.display.*;
public dynamic class EnemyLevelVI_star extends MovieClip {
public var enemyHitArea:MovieClip;
public function EnemyLevelVI_star(){
super();
}
}
}//package
Section 320
//EnemyLevelVII (EnemyLevelVII)
package {
import flash.display.*;
public dynamic class EnemyLevelVII extends MovieClip {
public var enemyHitArea:MovieClip;
public function EnemyLevelVII(){
super();
}
}
}//package
Section 321
//EnemyLevelVIII (EnemyLevelVIII)
package {
import flash.display.*;
public dynamic class EnemyLevelVIII extends MovieClip {
public var enemyHitArea:MovieClip;
public function EnemyLevelVIII(){
super();
}
}
}//package
Section 322
//EnemyLevelX (EnemyLevelX)
package {
import flash.display.*;
public dynamic class EnemyLevelX extends MovieClip {
public var enemyHitArea:MovieClip;
public function EnemyLevelX(){
super();
}
}
}//package
Section 323
//EnemyLevelXI (EnemyLevelXI)
package {
import flash.display.*;
public dynamic class EnemyLevelXI extends MovieClip {
public var enemyHitArea:MovieClip;
public function EnemyLevelXI(){
super();
}
}
}//package
Section 324
//EnemyLevelXII (EnemyLevelXII)
package {
import flash.display.*;
public dynamic class EnemyLevelXII extends MovieClip {
public var enemyHitArea:MovieClip;
public function EnemyLevelXII(){
super();
}
}
}//package
Section 325
//EnemyLevelXIII (EnemyLevelXIII)
package {
import flash.display.*;
public dynamic class EnemyLevelXIII extends MovieClip {
public var enemyHitArea:MovieClip;
public function EnemyLevelXIII(){
super();
}
}
}//package
Section 326
//EnemyLevelXIV (EnemyLevelXIV)
package {
import flash.display.*;
public dynamic class EnemyLevelXIV extends MovieClip {
public var enemyHitArea:MovieClip;
public function EnemyLevelXIV(){
super();
}
}
}//package
Section 327
//EnemyLevelXV (EnemyLevelXV)
package {
import flash.display.*;
public dynamic class EnemyLevelXV extends MovieClip {
public var enemyHitArea:MovieClip;
public function EnemyLevelXV(){
super();
}
}
}//package
Section 328
//freez_bullet_body (freez_bullet_body)
package {
import flash.display.*;
public dynamic class freez_bullet_body extends MovieClip {
public function freez_bullet_body(){
super();
}
}
}//package
Section 329
//GameBackGround (GameBackGround)
package {
import flash.display.*;
public dynamic class GameBackGround extends MovieClip {
public function GameBackGround(){
super();
}
}
}//package
Section 330
//greenSatellite (greenSatellite)
package {
import flash.display.*;
public dynamic class greenSatellite extends MovieClip {
public function greenSatellite(){
super();
}
}
}//package
Section 331
//greenSatellite2 (greenSatellite2)
package {
import flash.display.*;
public dynamic class greenSatellite2 extends MovieClip {
public function greenSatellite2(){
super();
}
}
}//package
Section 332
//healthLine (healthLine)
package {
import flash.display.*;
public dynamic class healthLine extends MovieClip {
public var line:MovieClip;
public function healthLine(){
super();
}
}
}//package
Section 333
//heroBody (heroBody)
package {
import flash.display.*;
public dynamic class heroBody extends MovieClip {
public function heroBody(){
super();
}
}
}//package
Section 334
//heroPeak1 (heroPeak1)
package {
import flash.display.*;
public dynamic class heroPeak1 extends MovieClip {
public function heroPeak1(){
super();
}
}
}//package
Section 335
//heroPeak10 (heroPeak10)
package {
import flash.display.*;
public dynamic class heroPeak10 extends MovieClip {
public function heroPeak10(){
super();
}
}
}//package
Section 336
//heroPeak11 (heroPeak11)
package {
import flash.display.*;
public dynamic class heroPeak11 extends MovieClip {
public function heroPeak11(){
super();
}
}
}//package
Section 337
//heroPeak12 (heroPeak12)
package {
import flash.display.*;
public dynamic class heroPeak12 extends MovieClip {
public function heroPeak12(){
super();
}
}
}//package
Section 338
//heroPeak13 (heroPeak13)
package {
import flash.display.*;
public dynamic class heroPeak13 extends MovieClip {
public function heroPeak13(){
super();
}
}
}//package
Section 339
//heroPeak2 (heroPeak2)
package {
import flash.display.*;
public dynamic class heroPeak2 extends MovieClip {
public function heroPeak2(){
super();
}
}
}//package
Section 340
//heroPeak3 (heroPeak3)
package {
import flash.display.*;
public dynamic class heroPeak3 extends MovieClip {
public function heroPeak3(){
super();
}
}
}//package
Section 341
//heroPeak4 (heroPeak4)
package {
import flash.display.*;
public dynamic class heroPeak4 extends MovieClip {
public function heroPeak4(){
super();
}
}
}//package
Section 342
//heroPeak5 (heroPeak5)
package {
import flash.display.*;
public dynamic class heroPeak5 extends MovieClip {
public function heroPeak5(){
super();
}
}
}//package
Section 343
//heroPeak6 (heroPeak6)
package {
import flash.display.*;
public dynamic class heroPeak6 extends MovieClip {
public function heroPeak6(){
super();
}
}
}//package
Section 344
//heroPeak7 (heroPeak7)
package {
import flash.display.*;
public dynamic class heroPeak7 extends MovieClip {
public function heroPeak7(){
super();
}
}
}//package
Section 345
//heroPeak8 (heroPeak8)
package {
import flash.display.*;
public dynamic class heroPeak8 extends MovieClip {
public function heroPeak8(){
super();
}
}
}//package
Section 346
//heroPeak9 (heroPeak9)
package {
import flash.display.*;
public dynamic class heroPeak9 extends MovieClip {
public function heroPeak9(){
super();
}
}
}//package
Section 347
//jet (jet)
package {
import flash.display.*;
public dynamic class jet extends MovieClip {
public function jet(){
super();
addFrameScript(0, frame1, 34, frame35);
}
function frame1(){
}
function frame35(){
this.gotoAndPlay(17);
}
}
}//package
Section 348
//kbModeBut (kbModeBut)
package {
import flash.display.*;
public dynamic class kbModeBut extends MovieClip {
public function kbModeBut(){
super();
}
}
}//package
Section 349
//m_game (m_game)
package {
import flash.media.*;
public dynamic class m_game extends Sound {
public function m_game(){
super();
}
}
}//package
Section 350
//m_lost (m_lost)
package {
import flash.media.*;
public dynamic class m_lost extends Sound {
public function m_lost(){
super();
}
}
}//package
Section 351
//m_shop (m_shop)
package {
import flash.media.*;
public dynamic class m_shop extends Sound {
public function m_shop(){
super();
}
}
}//package
Section 352
//m_win (m_win)
package {
import flash.media.*;
public dynamic class m_win extends Sound {
public function m_win(){
super();
}
}
}//package
Section 353
//main_menu (main_menu)
package {
import flash.media.*;
public dynamic class main_menu extends Sound {
public function main_menu(){
super();
}
}
}//package
Section 354
//MainMenuBackGround (MainMenuBackGround)
package {
import flash.display.*;
public dynamic class MainMenuBackGround extends MovieClip {
public function MainMenuBackGround(){
super();
}
}
}//package
Section 355
//msModeBut (msModeBut)
package {
import flash.display.*;
public dynamic class msModeBut extends MovieClip {
public function msModeBut(){
super();
}
}
}//package
Section 356
//overHeatIndicator (overHeatIndicator)
package {
import flash.display.*;
public dynamic class overHeatIndicator extends MovieClip {
public function overHeatIndicator(){
super();
addFrameScript(0, frame1, 29, frame30);
}
function frame1(){
stop();
}
function frame30(){
gotoAndPlay(2);
}
}
}//package
Section 357
//planet_skin (planet_skin)
package {
import flash.display.*;
public dynamic class planet_skin extends MovieClip {
public var enemyHitArea:MovieClip;
public var cont3:MovieClip;
public var cont1:MovieClip;
public var cont2:MovieClip;
public var cont4:MovieClip;
public function planet_skin(){
super();
}
}
}//package
Section 358
//Plazmatron (Plazmatron)
package {
import flash.events.*;
import flash.display.*;
import flash.net.*;
import com.kongregate.as3.client.*;
import sources.*;
import com.gamezhero.api.as3.*;
import flash.system.*;
public class Plazmatron extends MovieClip {
public var GTAnimation:GateAnimation;
private var xml_loader:URLLoader;
private var step_value:uint;// = 0
private var XML_URL_req:URLRequest;
private var xml_data:XML;
public var mmask:MovieClip;
public function Plazmatron(){
step_value = 0;
super();
addFrameScript(0, frame1, 1, frame2);
GameParams.downLoadLinks["win"] = null;
GameParams.downLoadLinks["mac"] = null;
GameParams.downLoadLinks["linux"] = null;
Security.allowDomain("www.gamezhero.com", "gamezhero.com", "files.gamezhero.com", "data.gamezhero.com", "*.gamezhero.com");
Security.allowInsecureDomain("www.gamezhero.com", "gamezhero.com", "files.gamezhero.com", "data.gamezhero.com", "*.gamezhero.com");
stop();
stage.stageFocusRect = false;
stage.scaleMode = StageScaleMode.NO_SCALE;
if (GamezheroGlobal.getDomain(this.stage) == "kongregate.com"){
GameParams.kongregate = new KongregateAPI();
this.addChild(GameParams.kongregate);
//unresolved jump
var _slot1 = e;
};
GamezheroApi.ini("bulletchaos");
GamezheroApi.preloader(this, step);
loadXML();
}
public function xmlLoaded(evt:Event):void{
var xd:uint;
var evt = evt;
xml_data = new XML(xml_loader.data);
xd = 0;
for (;xd < xml_data.children().length();(xd = (xd + 1))) {
GameParams.downLoadLinks[xml_data.children().@id[xd]] = xml_data.children()[xd];
continue;
var _slot1 = e;
};
step_value++;
endLoad();
}
private function XMLFailed(evt:IOErrorEvent):void{
step_value++;
endLoad();
}
public function checkUpload(event:Event=null):void{
var proc:Number;
proc = (this.loaderInfo.bytesLoaded / this.loaderInfo.bytesTotal);
if (proc == 1){
this.removeEventListener(Event.ENTER_FRAME, checkUpload);
this.loaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, checkUpload);
this.gotoAndStop(2);
};
}
public function loadXML():void{
trace("LOAD_XML");
xml_loader = new URLLoader();
XML_URL_req = new URLRequest(String(GameParams.uncryptObj("eNrj4mZkLy3KYWvkzigpKbDS10/LzEkt1ktPzE2tykgtytdLzs/Vz8/LycxL1U8qzclJLUnOSMwv1k/JL8/LyU9MQWLpVeTmMAIAR0McuA==")["url"]));
xml_loader.load(XML_URL_req);
xml_loader.addEventListener("complete", xmlLoaded);
xml_loader.addEventListener(IOErrorEvent.IO_ERROR, XMLFailed);
}
function frame1(){
stop();
}
private function endLoad():void{
if (step_value >= 2){
gotoAndPlay(2);
};
}
function frame2(){
stop();
}
public function step():void{
step_value++;
endLoad();
}
}
}//package
Section 359
//powerLine (powerLine)
package {
import flash.display.*;
public dynamic class powerLine extends MovieClip {
public function powerLine(){
super();
}
}
}//package
Section 360
//s_b (s_b)
package {
import flash.media.*;
public dynamic class s_b extends Sound {
public function s_b(){
super();
}
}
}//package
Section 361
//s_b_boss (s_b_boss)
package {
import flash.media.*;
public dynamic class s_b_boss extends Sound {
public function s_b_boss(){
super();
}
}
}//package
Section 362
//s_b1 (s_b1)
package {
import flash.media.*;
public dynamic class s_b1 extends Sound {
public function s_b1(){
super();
}
}
}//package
Section 363
//s_b2 (s_b2)
package {
import flash.media.*;
public dynamic class s_b2 extends Sound {
public function s_b2(){
super();
}
}
}//package
Section 364
//s_b3 (s_b3)
package {
import flash.media.*;
public dynamic class s_b3 extends Sound {
public function s_b3(){
super();
}
}
}//package
Section 365
//s_b4 (s_b4)
package {
import flash.media.*;
public dynamic class s_b4 extends Sound {
public function s_b4(){
super();
}
}
}//package
Section 366
//s_b5 (s_b5)
package {
import flash.media.*;
public dynamic class s_b5 extends Sound {
public function s_b5(){
super();
}
}
}//package
Section 367
//s_b6 (s_b6)
package {
import flash.media.*;
public dynamic class s_b6 extends Sound {
public function s_b6(){
super();
}
}
}//package
Section 368
//s_b7 (s_b7)
package {
import flash.media.*;
public dynamic class s_b7 extends Sound {
public function s_b7(){
super();
}
}
}//package
Section 369
//s_click (s_click)
package {
import flash.media.*;
public dynamic class s_click extends Sound {
public function s_click(){
super();
}
}
}//package
Section 370
//s_over (s_over)
package {
import flash.media.*;
public dynamic class s_over extends Sound {
public function s_over(){
super();
}
}
}//package
Section 371
//s_shoot1 (s_shoot1)
package {
import flash.media.*;
public dynamic class s_shoot1 extends Sound {
public function s_shoot1(){
super();
}
}
}//package
Section 372
//s_shoot10 (s_shoot10)
package {
import flash.media.*;
public dynamic class s_shoot10 extends Sound {
public function s_shoot10(){
super();
}
}
}//package
Section 373
//s_shoot11 (s_shoot11)
package {
import flash.media.*;
public dynamic class s_shoot11 extends Sound {
public function s_shoot11(){
super();
}
}
}//package
Section 374
//s_shoot12 (s_shoot12)
package {
import flash.media.*;
public dynamic class s_shoot12 extends Sound {
public function s_shoot12(){
super();
}
}
}//package
Section 375
//s_shoot2 (s_shoot2)
package {
import flash.media.*;
public dynamic class s_shoot2 extends Sound {
public function s_shoot2(){
super();
}
}
}//package
Section 376
//s_shoot3 (s_shoot3)
package {
import flash.media.*;
public dynamic class s_shoot3 extends Sound {
public function s_shoot3(){
super();
}
}
}//package
Section 377
//s_shoot4 (s_shoot4)
package {
import flash.media.*;
public dynamic class s_shoot4 extends Sound {
public function s_shoot4(){
super();
}
}
}//package
Section 378
//s_shoot5 (s_shoot5)
package {
import flash.media.*;
public dynamic class s_shoot5 extends Sound {
public function s_shoot5(){
super();
}
}
}//package
Section 379
//s_shoot6 (s_shoot6)
package {
import flash.media.*;
public dynamic class s_shoot6 extends Sound {
public function s_shoot6(){
super();
}
}
}//package
Section 380
//s_shoot7 (s_shoot7)
package {
import flash.media.*;
public dynamic class s_shoot7 extends Sound {
public function s_shoot7(){
super();
}
}
}//package
Section 381
//s_shoot8 (s_shoot8)
package {
import flash.media.*;
public dynamic class s_shoot8 extends Sound {
public function s_shoot8(){
super();
}
}
}//package
Section 382
//s_shoot9 (s_shoot9)
package {
import flash.media.*;
public dynamic class s_shoot9 extends Sound {
public function s_shoot9(){
super();
}
}
}//package
Section 383
//s_show1 (s_show1)
package {
import flash.media.*;
public dynamic class s_show1 extends Sound {
public function s_show1(){
super();
}
}
}//package
Section 384
//s_show2 (s_show2)
package {
import flash.media.*;
public dynamic class s_show2 extends Sound {
public function s_show2(){
super();
}
}
}//package
Section 385
//s_show3 (s_show3)
package {
import flash.media.*;
public dynamic class s_show3 extends Sound {
public function s_show3(){
super();
}
}
}//package
Section 386
//ScoreIndicator (ScoreIndicator)
package {
import flash.display.*;
import flash.text.*;
public dynamic class ScoreIndicator extends MovieClip {
public var bossLine:MovieClip;
public var goal_tx:TextField;
public var indicator_tx:TextField;
public function ScoreIndicator(){
super();
}
}
}//package
Section 387
//warnIndicator (warnIndicator)
package {
import flash.display.*;
public dynamic class warnIndicator extends MovieClip {
public var numberW:MovieClip;
public var ndActive:MovieClip;
public var wLine1:MovieClip;
public function warnIndicator(){
super();
}
}
}//package
Section 388
//weaponIcon1 (weaponIcon1)
package {
import flash.display.*;
public dynamic class weaponIcon1 extends MovieClip {
public function weaponIcon1(){
super();
}
}
}//package
Section 389
//weaponIcon1_1 (weaponIcon1_1)
package {
import flash.display.*;
public dynamic class weaponIcon1_1 extends MovieClip {
public function weaponIcon1_1(){
super();
}
}
}//package
Section 390
//weaponIcon1_10 (weaponIcon1_10)
package {
import flash.display.*;
public dynamic class weaponIcon1_10 extends MovieClip {
public function weaponIcon1_10(){
super();
}
}
}//package
Section 391
//weaponIcon1_2 (weaponIcon1_2)
package {
import flash.display.*;
public dynamic class weaponIcon1_2 extends MovieClip {
public function weaponIcon1_2(){
super();
}
}
}//package
Section 392
//weaponIcon1_3 (weaponIcon1_3)
package {
import flash.display.*;
public dynamic class weaponIcon1_3 extends MovieClip {
public function weaponIcon1_3(){
super();
}
}
}//package
Section 393
//weaponIcon1_4 (weaponIcon1_4)
package {
import flash.display.*;
public dynamic class weaponIcon1_4 extends MovieClip {
public function weaponIcon1_4(){
super();
}
}
}//package
Section 394
//weaponIcon1_5 (weaponIcon1_5)
package {
import flash.display.*;
public dynamic class weaponIcon1_5 extends MovieClip {
public function weaponIcon1_5(){
super();
}
}
}//package
Section 395
//weaponIcon1_6 (weaponIcon1_6)
package {
import flash.display.*;
public dynamic class weaponIcon1_6 extends MovieClip {
public function weaponIcon1_6(){
super();
}
}
}//package
Section 396
//weaponIcon1_7 (weaponIcon1_7)
package {
import flash.display.*;
public dynamic class weaponIcon1_7 extends MovieClip {
public function weaponIcon1_7(){
super();
}
}
}//package
Section 397
//weaponIcon1_8 (weaponIcon1_8)
package {
import flash.display.*;
public dynamic class weaponIcon1_8 extends MovieClip {
public function weaponIcon1_8(){
super();
}
}
}//package
Section 398
//weaponIcon1_9 (weaponIcon1_9)
package {
import flash.display.*;
public dynamic class weaponIcon1_9 extends MovieClip {
public function weaponIcon1_9(){
super();
}
}
}//package
Section 399
//weaponIcon10 (weaponIcon10)
package {
import flash.display.*;
public dynamic class weaponIcon10 extends MovieClip {
public function weaponIcon10(){
super();
}
}
}//package
Section 400
//weaponIcon10_1 (weaponIcon10_1)
package {
import flash.display.*;
public dynamic class weaponIcon10_1 extends MovieClip {
public function weaponIcon10_1(){
super();
}
}
}//package
Section 401
//weaponIcon10_2 (weaponIcon10_2)
package {
import flash.display.*;
public dynamic class weaponIcon10_2 extends MovieClip {
public function weaponIcon10_2(){
super();
}
}
}//package
Section 402
//weaponIcon10_3 (weaponIcon10_3)
package {
import flash.display.*;
public dynamic class weaponIcon10_3 extends MovieClip {
public function weaponIcon10_3(){
super();
}
}
}//package
Section 403
//weaponIcon10_4 (weaponIcon10_4)
package {
import flash.display.*;
public dynamic class weaponIcon10_4 extends MovieClip {
public function weaponIcon10_4(){
super();
}
}
}//package
Section 404
//weaponIcon10_5 (weaponIcon10_5)
package {
import flash.display.*;
public dynamic class weaponIcon10_5 extends MovieClip {
public function weaponIcon10_5(){
super();
}
}
}//package
Section 405
//weaponIcon11 (weaponIcon11)
package {
import flash.display.*;
public dynamic class weaponIcon11 extends MovieClip {
public function weaponIcon11(){
super();
}
}
}//package
Section 406
//weaponIcon11_1 (weaponIcon11_1)
package {
import flash.display.*;
public dynamic class weaponIcon11_1 extends MovieClip {
public function weaponIcon11_1(){
super();
}
}
}//package
Section 407
//weaponIcon11_2 (weaponIcon11_2)
package {
import flash.display.*;
public dynamic class weaponIcon11_2 extends MovieClip {
public function weaponIcon11_2(){
super();
}
}
}//package
Section 408
//weaponIcon11_3 (weaponIcon11_3)
package {
import flash.display.*;
public dynamic class weaponIcon11_3 extends MovieClip {
public function weaponIcon11_3(){
super();
}
}
}//package
Section 409
//weaponIcon11_4 (weaponIcon11_4)
package {
import flash.display.*;
public dynamic class weaponIcon11_4 extends MovieClip {
public function weaponIcon11_4(){
super();
}
}
}//package
Section 410
//weaponIcon11_5 (weaponIcon11_5)
package {
import flash.display.*;
public dynamic class weaponIcon11_5 extends MovieClip {
public function weaponIcon11_5(){
super();
}
}
}//package
Section 411
//weaponIcon12 (weaponIcon12)
package {
import flash.display.*;
public dynamic class weaponIcon12 extends MovieClip {
public function weaponIcon12(){
super();
}
}
}//package
Section 412
//weaponIcon12_1 (weaponIcon12_1)
package {
import flash.display.*;
public dynamic class weaponIcon12_1 extends MovieClip {
public function weaponIcon12_1(){
super();
}
}
}//package
Section 413
//weaponIcon12_2 (weaponIcon12_2)
package {
import flash.display.*;
public dynamic class weaponIcon12_2 extends MovieClip {
public function weaponIcon12_2(){
super();
}
}
}//package
Section 414
//weaponIcon12_3 (weaponIcon12_3)
package {
import flash.display.*;
public dynamic class weaponIcon12_3 extends MovieClip {
public function weaponIcon12_3(){
super();
}
}
}//package
Section 415
//weaponIcon12_4 (weaponIcon12_4)
package {
import flash.display.*;
public dynamic class weaponIcon12_4 extends MovieClip {
public function weaponIcon12_4(){
super();
}
}
}//package
Section 416
//weaponIcon12_5 (weaponIcon12_5)
package {
import flash.display.*;
public dynamic class weaponIcon12_5 extends MovieClip {
public function weaponIcon12_5(){
super();
}
}
}//package
Section 417
//weaponIcon13 (weaponIcon13)
package {
import flash.display.*;
public dynamic class weaponIcon13 extends MovieClip {
public function weaponIcon13(){
super();
}
}
}//package
Section 418
//weaponIcon13_1 (weaponIcon13_1)
package {
import flash.display.*;
public dynamic class weaponIcon13_1 extends MovieClip {
public function weaponIcon13_1(){
super();
}
}
}//package
Section 419
//weaponIcon13_2 (weaponIcon13_2)
package {
import flash.display.*;
public dynamic class weaponIcon13_2 extends MovieClip {
public function weaponIcon13_2(){
super();
}
}
}//package
Section 420
//weaponIcon13_3 (weaponIcon13_3)
package {
import flash.display.*;
public dynamic class weaponIcon13_3 extends MovieClip {
public function weaponIcon13_3(){
super();
}
}
}//package
Section 421
//weaponIcon13_4 (weaponIcon13_4)
package {
import flash.display.*;
public dynamic class weaponIcon13_4 extends MovieClip {
public function weaponIcon13_4(){
super();
}
}
}//package
Section 422
//weaponIcon13_5 (weaponIcon13_5)
package {
import flash.display.*;
public dynamic class weaponIcon13_5 extends MovieClip {
public function weaponIcon13_5(){
super();
}
}
}//package
Section 423
//weaponIcon2 (weaponIcon2)
package {
import flash.display.*;
public dynamic class weaponIcon2 extends MovieClip {
public function weaponIcon2(){
super();
}
}
}//package
Section 424
//weaponIcon2_1 (weaponIcon2_1)
package {
import flash.display.*;
public dynamic class weaponIcon2_1 extends MovieClip {
public function weaponIcon2_1(){
super();
}
}
}//package
Section 425
//weaponIcon2_2 (weaponIcon2_2)
package {
import flash.display.*;
public dynamic class weaponIcon2_2 extends MovieClip {
public function weaponIcon2_2(){
super();
}
}
}//package
Section 426
//weaponIcon2_3 (weaponIcon2_3)
package {
import flash.display.*;
public dynamic class weaponIcon2_3 extends MovieClip {
public function weaponIcon2_3(){
super();
}
}
}//package
Section 427
//weaponIcon3 (weaponIcon3)
package {
import flash.display.*;
public dynamic class weaponIcon3 extends MovieClip {
public function weaponIcon3(){
super();
}
}
}//package
Section 428
//weaponIcon3_1 (weaponIcon3_1)
package {
import flash.display.*;
public dynamic class weaponIcon3_1 extends MovieClip {
public function weaponIcon3_1(){
super();
}
}
}//package
Section 429
//weaponIcon3_2 (weaponIcon3_2)
package {
import flash.display.*;
public dynamic class weaponIcon3_2 extends MovieClip {
public function weaponIcon3_2(){
super();
}
}
}//package
Section 430
//weaponIcon3_3 (weaponIcon3_3)
package {
import flash.display.*;
public dynamic class weaponIcon3_3 extends MovieClip {
public function weaponIcon3_3(){
super();
}
}
}//package
Section 431
//weaponIcon4 (weaponIcon4)
package {
import flash.display.*;
public dynamic class weaponIcon4 extends MovieClip {
public function weaponIcon4(){
super();
}
}
}//package
Section 432
//weaponIcon4_1 (weaponIcon4_1)
package {
import flash.display.*;
public dynamic class weaponIcon4_1 extends MovieClip {
public function weaponIcon4_1(){
super();
}
}
}//package
Section 433
//weaponIcon4_2 (weaponIcon4_2)
package {
import flash.display.*;
public dynamic class weaponIcon4_2 extends MovieClip {
public function weaponIcon4_2(){
super();
}
}
}//package
Section 434
//weaponIcon4_3 (weaponIcon4_3)
package {
import flash.display.*;
public dynamic class weaponIcon4_3 extends MovieClip {
public function weaponIcon4_3(){
super();
}
}
}//package
Section 435
//weaponIcon5 (weaponIcon5)
package {
import flash.display.*;
public dynamic class weaponIcon5 extends MovieClip {
public function weaponIcon5(){
super();
}
}
}//package
Section 436
//weaponIcon5_1 (weaponIcon5_1)
package {
import flash.display.*;
public dynamic class weaponIcon5_1 extends MovieClip {
public function weaponIcon5_1(){
super();
}
}
}//package
Section 437
//weaponIcon5_2 (weaponIcon5_2)
package {
import flash.display.*;
public dynamic class weaponIcon5_2 extends MovieClip {
public function weaponIcon5_2(){
super();
}
}
}//package
Section 438
//weaponIcon5_3 (weaponIcon5_3)
package {
import flash.display.*;
public dynamic class weaponIcon5_3 extends MovieClip {
public function weaponIcon5_3(){
super();
}
}
}//package
Section 439
//weaponIcon6 (weaponIcon6)
package {
import flash.display.*;
public dynamic class weaponIcon6 extends MovieClip {
public function weaponIcon6(){
super();
}
}
}//package
Section 440
//weaponIcon6_1 (weaponIcon6_1)
package {
import flash.display.*;
public dynamic class weaponIcon6_1 extends MovieClip {
public function weaponIcon6_1(){
super();
}
}
}//package
Section 441
//weaponIcon6_2 (weaponIcon6_2)
package {
import flash.display.*;
public dynamic class weaponIcon6_2 extends MovieClip {
public function weaponIcon6_2(){
super();
}
}
}//package
Section 442
//weaponIcon6_3 (weaponIcon6_3)
package {
import flash.display.*;
public dynamic class weaponIcon6_3 extends MovieClip {
public function weaponIcon6_3(){
super();
}
}
}//package
Section 443
//weaponIcon7 (weaponIcon7)
package {
import flash.display.*;
public dynamic class weaponIcon7 extends MovieClip {
public function weaponIcon7(){
super();
}
}
}//package
Section 444
//weaponIcon7_1 (weaponIcon7_1)
package {
import flash.display.*;
public dynamic class weaponIcon7_1 extends MovieClip {
public function weaponIcon7_1(){
super();
}
}
}//package
Section 445
//weaponIcon7_2 (weaponIcon7_2)
package {
import flash.display.*;
public dynamic class weaponIcon7_2 extends MovieClip {
public function weaponIcon7_2(){
super();
}
}
}//package
Section 446
//weaponIcon7_3 (weaponIcon7_3)
package {
import flash.display.*;
public dynamic class weaponIcon7_3 extends MovieClip {
public function weaponIcon7_3(){
super();
}
}
}//package
Section 447
//weaponIcon8 (weaponIcon8)
package {
import flash.display.*;
public dynamic class weaponIcon8 extends MovieClip {
public function weaponIcon8(){
super();
}
}
}//package
Section 448
//weaponIcon8_1 (weaponIcon8_1)
package {
import flash.display.*;
public dynamic class weaponIcon8_1 extends MovieClip {
public function weaponIcon8_1(){
super();
}
}
}//package
Section 449
//weaponIcon8_2 (weaponIcon8_2)
package {
import flash.display.*;
public dynamic class weaponIcon8_2 extends MovieClip {
public function weaponIcon8_2(){
super();
}
}
}//package
Section 450
//weaponIcon8_3 (weaponIcon8_3)
package {
import flash.display.*;
public dynamic class weaponIcon8_3 extends MovieClip {
public function weaponIcon8_3(){
super();
}
}
}//package
Section 451
//weaponIcon9 (weaponIcon9)
package {
import flash.display.*;
public dynamic class weaponIcon9 extends MovieClip {
public function weaponIcon9(){
super();
}
}
}//package
Section 452
//weaponIcon9_1 (weaponIcon9_1)
package {
import flash.display.*;
public dynamic class weaponIcon9_1 extends MovieClip {
public function weaponIcon9_1(){
super();
}
}
}//package
Section 453
//weaponIcon9_2 (weaponIcon9_2)
package {
import flash.display.*;
public dynamic class weaponIcon9_2 extends MovieClip {
public function weaponIcon9_2(){
super();
}
}
}//package
Section 454
//weaponIcon9_3 (weaponIcon9_3)
package {
import flash.display.*;
public dynamic class weaponIcon9_3 extends MovieClip {
public function weaponIcon9_3(){
super();
}
}
}//package