STORY   LOOP   FURRY   PORN   GAMES
• C •   SERVICES [?] [R] RND   POPULAR
Archived flashes:
228095
/disc/ · /res/     /show/ · /fap/ · /gg/ · /swf/P0001 · P2561 · P5121

<div style="position:absolute;top:-99px;left:-99px;"><img src="http://swfchan.com:57475/39257519?noj=FRM39257519-5DC" width="1" height="1"></div>

Bullet Chaos - Somewhere in far world the great war is on.swf

This is the info page for
Flash #90623

(Click the ID number above for more basic data on this flash file.)


Text
GAME

HERO

PRESENTS

TOP SCORE

MAIN MENU

<p align="center"></p>

CHOOSE LEVEL

<p align="left"></p>

Name

<p align="left"></p>

COST

WEAPONS

ARMS SHOP

drag'n'drop gun to

my guns to buy

GUN INFO

LEVEL

9/20

9

<p align="left"></p>

SELL

upgraDe

<p align="left"><font face="FFF Galaxy Extra Bold" size="8" color="#ffff00" letterSpacing="0.000000" kerning="1">123</font></p>

<p align="left"></p>

<p align="left"></p>

<p align="left"></p>

<p align="left"></p>

<p align="left"><font face="FFF Galaxy Extra Bold" size="8" color="#ffff00" letterSpacing="0.000000" kerning="1">123</font></p>

<p align="left"></p>

<p align="left"></p>

<p align="left"></p>

<p align="left"></p>

<p align="left"></p>

Name

rate of fire

speed

overheat

type

power

MY GUNS

armor

HEALTH

<p align="left"></p>

buy unit

<p align="left"></p>

55

55

10/85

10/85

55

MONEY:

<p align="left"><font face="FFF Galaxy Extra Bold" size="16" color="#000000" letterSpacing="0.000000" kerning="1">999</font></p>

PLAY

SELECT your gun for info and upgraDes

1

3

5

7

8

6

4

2

NEXT LEVEL

MORE GAMES

game over

KEYBOARD MODE

MOUSE MODE

HOW TO PLAY

don't show help again

SELECT GUN:

next GUN:

prev GUN:

CONTROL GUN:

FIRE:

1

2

3

4

5

6

7

8

e

q

CHOOSE LEVEL

HOW TO PLAY

TOP SCORE

How fast your computer?

SLOW

medium

FAST

GAME

HERO

BULLET CHAOS

Continue

SEND TO FRIENDS

< EMBED GAME >

<p align="left"><font face="FFF Galaxy" size="8" color="#ffffff" letterSpacing="0.000000" kerning="0"><a href="http://www.gamezhero.com/?utm_campaign=bulletchaos&utm_source=bulletchaos&utm_medium=copyright" target = "_blank">copyright © gamezhero.com</a></font></p><p align="left"><font face="FFF Galaxy" size="8" color="#ffffff" letterSpacing="0.000000" kerning="0"><a href="http://www.gamezhero.com/?utm_campaign=bulletchaos&utm_source=bulletchaos&utm_medium=copyright" target = "_blank"> </a></font></p>

v1.4

Download
MAC OS version

Download
windows version

Download
LINUX version

GO TO SHOP

IT'S HORRIBLE

COULD BE BETTER

NOT BAD

WELL DONE

EXCELLENT

play again

LEVEL failed

VICTORY

<p align="left"><font face="Segoe UI" size="16" color="#ffffff" letterSpacing="0.000000" kerning="1">sadsad</font></p>

WARNING OVERHEAT!!!

1/100

6

999

PAUSE

try to kill

ActionScript [AS3]

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 = ["&quot;", "\"", "&#39;", "'", "&#44;", ",", "&amp;", "&"]; 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

Library Items

Symbol 1 GraphicUsed by:2 396 462 534 1020  Timeline
Symbol 2 MovieClipUses:1Used by:29
Symbol 3 GraphicUsed by:9
Symbol 4 GraphicUsed by:8 9
Symbol 5 GraphicUsed by:6
Symbol 6 MovieClipUses:5Used by:8
Symbol 7 GraphicUsed by:8
Symbol 8 MovieClipUses:4 6 7Used by:9
Symbol 9 MovieClip {bulletchaos_final_fla.preloaderLine_600}Uses:3 4 8Used by:28
Symbol 10 ShapeTweeningUsed by:28
Symbol 11 ShapeTweeningUsed by:28
Symbol 12 ShapeTweeningUsed by:28
Symbol 13 GraphicUsed by:28 1008 1021
Symbol 14 GraphicUsed by:15
Symbol 15 MovieClipUses:14Used by:28
Symbol 16 GraphicUsed by:17 1009
Symbol 17 MovieClipUses:16Used by:28
Symbol 18 GraphicUsed by:22
Symbol 19 FontUsed by:20 21
Symbol 20 TextUses:19Used by:22
Symbol 21 TextUses:19Used by:22
Symbol 22 ButtonUses:18 20 21Used by:28
Symbol 23 ShapeTweeningUsed by:28
Symbol 24 FontUsed by:25
Symbol 25 TextUses:24Used by:26
Symbol 26 ButtonUses:25Used by:28
Symbol 27 GraphicUsed by:28 135 197 447 486 499 519 523 529 530
Symbol 28 MovieClip {bulletchaos_final_fla.gameZheroPreloader_599}Uses:9 10 11 12 13 15 17 22 23 26 27Used by:29
Symbol 29 MovieClip {com.gamezhero.as3.GamePreloader}Uses:2 28
Symbol 30 GraphicUsed by:31
Symbol 31 ButtonUses:30Used by:34
Symbol 32 GraphicUsed by:34
Symbol 33 GraphicUsed by:34
Symbol 34 MovieClip {classes.gamezhero.FlashChecker}Uses:31 32 33
Symbol 35 BitmapUsed by:36
Symbol 36 GraphicUses:35Used by:37
Symbol 37 MovieClipUses:36Used by:84
Symbol 38 GraphicUsed by:39
Symbol 39 MovieClipUses:38Used by:63
Symbol 40 BitmapUsed by:41
Symbol 41 GraphicUses:40Used by:42
Symbol 42 MovieClipUses:41Used by:63
Symbol 43 GraphicUsed by:44
Symbol 44 MovieClipUses:43Used by:63
Symbol 45 GraphicUsed by:46
Symbol 46 MovieClipUses:45Used by:63
Symbol 47 GraphicUsed by:48
Symbol 48 MovieClipUses:47Used by:63
Symbol 49 GraphicUsed by:62
Symbol 50 GraphicUsed by:51
Symbol 51 MovieClipUses:50Used by:62
Symbol 52 GraphicUsed by:62
Symbol 53 GraphicUsed by:54
Symbol 54 MovieClipUses:53Used by:59
Symbol 55 GraphicUsed by:59
Symbol 56 BitmapUsed by:57
Symbol 57 GraphicUses:56Used by:58
Symbol 58 MovieClipUses:57Used by:59
Symbol 59 MovieClipUses:54 55 58Used by:62
Symbol 60 GraphicUsed by:61
Symbol 61 MovieClipUses:60Used by:62
Symbol 62 MovieClipUses:49 51 52 59 61Used by:63
Symbol 63 MovieClipUses:39 42 44 46 48 62Used by:84
Symbol 64 BitmapUsed by:65 71
Symbol 65 GraphicUses:64Used by:66
Symbol 66 MovieClipUses:65Used by:69
Symbol 67 GraphicUsed by:68 73
Symbol 68 MovieClipUses:67Used by:69
Symbol 69 MovieClipUses:66 68Used by:70
Symbol 70 MovieClipUses:69Used by:84
Symbol 71 GraphicUses:64Used by:72
Symbol 72 MovieClipUses:71Used by:78
Symbol 73 MovieClipUses:67Used by:78
Symbol 74 GraphicUsed by:75
Symbol 75 MovieClipUses:74Used by:78
Symbol 76 BitmapUsed by:77
Symbol 77 GraphicUses:76Used by:78
Symbol 78 MovieClipUses:72 73 75 77Used by:79
Symbol 79 MovieClipUses:78Used by:84
Symbol 80 BitmapUsed by:81
Symbol 81 GraphicUses:80Used by:82
Symbol 82 MovieClipUses:81Used by:83
Symbol 83 MovieClipUses:82Used by:84
Symbol 84 MovieClip {main.view.components.UI_Gate}Uses:37 63 70 79 83
Symbol 85 GraphicUsed by:86
Symbol 86 MovieClipUses:85Used by:87 621 622 623 624 627 628 629 630 632 658 677 919 945 956 1036 1084 1107 1130 1156 1186 1187 1188 1189 1190
Symbol 87 MovieClip {BulletExplosion1}Uses:86
Symbol 88 MovieClip {sources.Bullet}
Symbol 89 MovieClip {sources.Enemy}
Symbol 90 ShapeTweeningUsed by:108
Symbol 91 GraphicUsed by:108
Symbol 92 ShapeTweeningUsed by:108
Symbol 93 ShapeTweeningUsed by:108
Symbol 94 ShapeTweeningUsed by:108
Symbol 95 ShapeTweeningUsed by:108
Symbol 96 ShapeTweeningUsed by:108
Symbol 97 ShapeTweeningUsed by:108
Symbol 98 ShapeTweeningUsed by:108
Symbol 99 GraphicUsed by:108 159
Symbol 100 ShapeTweeningUsed by:108
Symbol 101 ShapeTweeningUsed by:108
Symbol 102 ShapeTweeningUsed by:108
Symbol 103 ShapeTweeningUsed by:108
Symbol 104 ShapeTweeningUsed by:108
Symbol 105 ShapeTweeningUsed by:108
Symbol 106 ShapeTweeningUsed by:108
Symbol 107 ShapeTweeningUsed by:108
Symbol 108 MovieClip {bulletBody_auto_nav1}Uses:90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107
Symbol 109 BitmapUsed by:110
Symbol 110 GraphicUses:109Used by:111
Symbol 111 MovieClipUses:110Used by:112
Symbol 112 MovieClip {bulletBody}Uses:111
Symbol 113 BitmapUsed by:114
Symbol 114 GraphicUses:113Used by:115
Symbol 115 MovieClipUses:114Used by:128
Symbol 116 BitmapUsed by:117
Symbol 117 GraphicUses:116Used by:118
Symbol 118 MovieClipUses:117Used by:128
Symbol 119 BitmapUsed by:120
Symbol 120 GraphicUses:119Used by:121
Symbol 121 MovieClipUses:120Used by:128
Symbol 122 BitmapUsed by:123
Symbol 123 GraphicUses:122Used by:124
Symbol 124 MovieClipUses:123Used by:128
Symbol 125 BitmapUsed by:126
Symbol 126 GraphicUses:125Used by:127
Symbol 127 MovieClipUses:126Used by:128
Symbol 128 MovieClip {bulletchaos_final_fla.BG_BODY_3}Uses:115 118 121 124 127Used by:129 1349
Symbol 129 MovieClip {MainMenuBackGround}Uses:128
Symbol 130 FontUsed by:131 221 449
Symbol 131 EditableTextUses:130Used by:140
Symbol 132 GraphicUsed by:136 255 290 448
Symbol 133 GraphicUsed by:135 136 255 290 448 489 495 782
Symbol 134 GraphicUsed by:136 448
Symbol 135 MovieClipUses:133 27Used by:136 290 448
Symbol 136 ButtonUses:132 133 134 135Used by:139 316 335 400 415 452 454 502 504 506 537 552
Symbol 137 FontUsed by:138 238 245 260 265 281 288 289 302 303 304 305 306 311 312 315 325 326 327 328 329 330 331 332 334 399 421 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 451 453 501 503 505 536 551
Symbol 138 TextUses:137Used by:139
Symbol 139 MovieClip {sources.Buttons.goBackButton}Uses:136 138Used by:140 403 447 559 562
Symbol 140 MovieClip {sources.topScore}Uses:131 139
Symbol 141 MovieClip {sources.BLIndicator}
Symbol 142 GraphicUsed by:162
Symbol 143 ShapeTweeningUsed by:159
Symbol 144 ShapeTweeningUsed by:159
Symbol 145 ShapeTweeningUsed by:159
Symbol 146 ShapeTweeningUsed by:159
Symbol 147 ShapeTweeningUsed by:159
Symbol 148 ShapeTweeningUsed by:159
Symbol 149 ShapeTweeningUsed by:159
Symbol 150 ShapeTweeningUsed by:159
Symbol 151 ShapeTweeningUsed by:159
Symbol 152 ShapeTweeningUsed by:159
Symbol 153 ShapeTweeningUsed by:159
Symbol 154 ShapeTweeningUsed by:159
Symbol 155 ShapeTweeningUsed by:159
Symbol 156 ShapeTweeningUsed by:159
Symbol 157 ShapeTweeningUsed by:159
Symbol 158 ShapeTweeningUsed by:159
Symbol 159 MovieClip {jet}Uses:143 144 145 146 147 148 149 150 99 151 152 153 154 155 156 157 158Used by:162 166 168
Symbol 160 GraphicUsed by:161
Symbol 161 MovieClipUses:160Used by:162 168 175 204 208 340 343 346 349 357 369 566 568 836 1232 1235 1238 1303 1306 1309 1311
Symbol 162 MovieClip {boss_skin}Uses:142 159 161
Symbol 163 GraphicUsed by:166
Symbol 164 GraphicUsed by:165
Symbol 165 MovieClipUses:164Used by:166
Symbol 166 MovieClip {bombardier_skin}Uses:163 159 165
Symbol 167 GraphicUsed by:168
Symbol 168 MovieClip {enemy_bullet_skin}Uses:167 159 161
Symbol 169 GraphicUsed by:173
Symbol 170 GraphicUsed by:173
Symbol 171 GraphicUsed by:173
Symbol 172 GraphicUsed by:173
Symbol 173 MovieClip {freez_bullet_body}Uses:169 170 171 172
Symbol 174 GraphicUsed by:175
Symbol 175 MovieClip {enemy_mine_skin}Uses:174 161
Symbol 176 GraphicUsed by:181
Symbol 177 GraphicUsed by:181
Symbol 178 GraphicUsed by:181
Symbol 179 GraphicUsed by:181
Symbol 180 GraphicUsed by:181
Symbol 181 MovieClip {sources.Buttons.CL_Level_btn}Uses:176 177 178 179 180
Symbol 182 BitmapUsed by:183
Symbol 183 GraphicUses:182Used by:184
Symbol 184 MovieClipUses:183Used by:187
Symbol 185 GraphicUsed by:186
Symbol 186 MovieClipUses:185Used by:187
Symbol 187 MovieClip {EnemyBoss_5_part}Uses:184 186
Symbol 188 BitmapUsed by:189
Symbol 189 GraphicUses:188Used by:194
Symbol 190 GraphicUsed by:191
Symbol 191 MovieClipUses:190Used by:194
Symbol 192 GraphicUsed by:193
Symbol 193 MovieClipUses:192Used by:194 204 568
Symbol 194 MovieClip {EnemyBoss_5}Uses:189 191 193
Symbol 195 GraphicUsed by:196
Symbol 196 MovieClipUses:195Used by:197
Symbol 197 MovieClip {sources.GateAnimation}Uses:27 196Used by:Timeline
Symbol 198 FontUsed by:199 226 228 229 230 231 241 242 248 249 253 256 258 262 263 264 266 267 268 269 270 273 274 275 276 277 278 293 321 771 772 788
Symbol 199 EditableTextUses:198Used by:200
Symbol 200 MovieClip {sources.TextWave}Uses:199Used by:1349
Symbol 201 BitmapUsed by:202
Symbol 202 GraphicUses:201Used by:203
Symbol 203 MovieClip {EnemyBoss6_body}Uses:202Used by:204
Symbol 204 MovieClip {EnemyBoss_6}Uses:203 161 193Used by:1349
Symbol 205 BitmapUsed by:206
Symbol 206 GraphicUses:205Used by:207
Symbol 207 MovieClipUses:206Used by:208
Symbol 208 MovieClip {EnemyBoss_6_part}Uses:207 161Used by:1349
Symbol 209 GraphicUsed by:210 243 301 777 787
Symbol 210 MovieClipUses:209Used by:215 766 775
Symbol 211 GraphicUsed by:212
Symbol 212 MovieClipUses:211Used by:215 766 775 778
Symbol 213 GraphicUsed by:214
Symbol 214 MovieClipUses:213Used by:215 309
Symbol 215 MovieClip {armourLine}Uses:210 212 214Used by:1349
Symbol 216 BitmapUsed by:217
Symbol 217 GraphicUses:216Used by:220
Symbol 218 GraphicUsed by:219
Symbol 219 MovieClipUses:218Used by:220
Symbol 220 MovieClip {EnemyLevelXIV}Uses:217 219Used by:1349
Symbol 221 TextUses:130Used by:223
Symbol 222 GraphicUsed by:223
Symbol 223 MovieClip {sources.ChooseLevel}Uses:221 222Used by:1349
Symbol 224 GraphicUsed by:333
Symbol 225 GraphicUsed by:232 243 763
Symbol 226 EditableTextUses:198Used by:232
Symbol 227 GraphicUsed by:232
Symbol 228 EditableTextUses:198Used by:232
Symbol 229 TextUses:198Used by:232
Symbol 230 EditableTextUses:198Used by:232
Symbol 231 TextUses:198Used by:232
Symbol 232 MovieClip {bulletchaos_final_fla.HSWeaponInfo_107}Uses:225 226 227 228 229 230 231Used by:333
Symbol 233 FontUsed by:234 261 292 300 410 412
Symbol 234 TextUses:233Used by:243
Symbol 235 MovieClipUsed by:243
Symbol 236 GraphicUsed by:237
Symbol 237 MovieClipUses:236Used by:243 279 282 317
Symbol 238 TextUses:137Used by:243
Symbol 239 GraphicUsed by:240
Symbol 240 MovieClipUses:239Used by:243 282
Symbol 241 TextUses:198Used by:243
Symbol 242 TextUses:198Used by:243
Symbol 243 MovieClip {bulletchaos_final_fla.HSWeaponForSale_108}Uses:225 234 235 209 237 238 240 241 242Used by:333
Symbol 244 GraphicUsed by:279
Symbol 245 TextUses:137Used by:279
Symbol 246 GraphicUsed by:279
Symbol 247 GraphicUsed by:252
Symbol 248 TextUses:198Used by:252
Symbol 249 EditableTextUses:198Used by:252
Symbol 250 FontUsed by:251
Symbol 251 EditableTextUses:250Used by:252
Symbol 252 MovieClip {bulletchaos_final_fla.level_info_113}Uses:247 248 249 251Used by:279 309
Symbol 253 EditableTextUses:198Used by:279
Symbol 254 GraphicUsed by:255 290
Symbol 255 ButtonUses:132 133 254Used by:257 259
Symbol 256 TextUses:198Used by:257
Symbol 257 MovieClipUses:255 256Used by:279
Symbol 258 TextUses:198Used by:259 291
Symbol 259 MovieClipUses:255 258Used by:279
Symbol 260 EditableTextUses:137Used by:279
Symbol 261 EditableTextUses:233Used by:279
Symbol 262 EditableTextUses:198Used by:279
Symbol 263 EditableTextUses:198Used by:279
Symbol 264 EditableTextUses:198Used by:279
Symbol 265 EditableTextUses:137Used by:279
Symbol 266 EditableTextUses:198Used by:279
Symbol 267 EditableTextUses:198Used by:279
Symbol 268 EditableTextUses:198Used by:279
Symbol 269 EditableTextUses:198Used by:279
Symbol 270 EditableTextUses:198Used by:279
Symbol 271 GraphicUsed by:272
Symbol 272 MovieClipUses:271Used by:279
Symbol 273 TextUses:198Used by:279
Symbol 274 TextUses:198Used by:279
Symbol 275 TextUses:198Used by:279
Symbol 276 TextUses:198Used by:279
Symbol 277 TextUses:198Used by:279
Symbol 278 TextUses:198Used by:279
Symbol 279 MovieClip {bulletchaos_final_fla.HSinfoPanel_112}Uses:244 237 245 246 252 253 257 259 260 261 262 263 264 265 266 267 268 269 270 272 273 274 275 276 277 278Used by:333
Symbol 280 GraphicUsed by:282
Symbol 281 TextUses:137Used by:282
Symbol 282 MovieClipUses:280 237 281 240Used by:333
Symbol 283 GraphicUsed by:309
Symbol 284 GraphicUsed by:285
Symbol 285 MovieClipUses:284Used by:309
Symbol 286 GraphicUsed by:287
Symbol 287 MovieClipUses:286Used by:309
Symbol 288 TextUses:137Used by:309
Symbol 289 TextUses:137Used by:309
Symbol 290 ButtonUses:132 133 254 135Used by:291 294
Symbol 291 MovieClipUses:290 258Used by:309
Symbol 292 EditableTextUses:233Used by:309
Symbol 293 TextUses:198Used by:294
Symbol 294 MovieClipUses:290 293Used by:309
Symbol 295 GraphicUsed by:299
Symbol 296 GraphicUsed by:299
Symbol 297 GraphicUsed by:298
Symbol 298 MovieClipUses:297Used by:299
Symbol 299 MovieClip {bulletchaos_final_fla.HSArmourIndicator_125}Uses:295 296 298Used by:309
Symbol 300 EditableTextUses:233Used by:309
Symbol 301 MovieClipUses:209Used by:309
Symbol 302 EditableTextUses:137Used by:309
Symbol 303 EditableTextUses:137Used by:309
Symbol 304 EditableTextUses:137Used by:309
Symbol 305 EditableTextUses:137Used by:309
Symbol 306 EditableTextUses:137Used by:309
Symbol 307 GraphicUsed by:308
Symbol 308 MovieClipUses:307Used by:309 766
Symbol 309 MovieClip {bulletchaos_final_fla.HScurrentHeroSettings_119}Uses:283 285 287 288 289 291 292 294 299 300 301 302 303 304 305 306 252 308 214Used by:333
Symbol 310 GraphicUsed by:317
Symbol 311 TextUses:137Used by:317
Symbol 312 EditableTextUses:137Used by:317
Symbol 313 GraphicUsed by:314
Symbol 314 MovieClipUses:313Used by:317 789
Symbol 315 TextUses:137Used by:316 415
Symbol 316 MovieClipUses:136 315Used by:317
Symbol 317 MovieClip {bulletchaos_final_fla.HSPanelHeader_130}Uses:310 237 311 312 314 316Used by:333
Symbol 318 BitmapUsed by:319 556
Symbol 319 GraphicUses:318Used by:320 535 946
Symbol 320 MovieClip {heroBody}Uses:319Used by:333 1349
Symbol 321 TextUses:198Used by:333
Symbol 322 MovieClipUsed by:333
Symbol 323 GraphicUsed by:324
Symbol 324 MovieClipUses:323Used by:333
Symbol 325 TextUses:137Used by:333
Symbol 326 TextUses:137Used by:333
Symbol 327 TextUses:137Used by:333
Symbol 328 TextUses:137Used by:333
Symbol 329 TextUses:137Used by:333
Symbol 330 TextUses:137Used by:333
Symbol 331 TextUses:137Used by:333
Symbol 332 TextUses:137Used by:333
Symbol 333 MovieClip {sources.HSPanelContainer}Uses:224 232 243 279 282 309 317 320 321 322 324 325 326 327 328 329 330 331 332Used by:1349
Symbol 334 TextUses:137Used by:335
Symbol 335 MovieClip {sources.Buttons.WD_Continue_btn}Uses:136 334Used by:549
Symbol 336 GraphicUsed by:337
Symbol 337 MovieClipUses:336Used by:391 392 393 394 395 533
Symbol 338 BitmapUsed by:339
Symbol 339 GraphicUses:338Used by:340
Symbol 340 MovieClip {EnemyLevelII}Uses:339 161Used by:390 1349
Symbol 341 BitmapUsed by:342
Symbol 342 GraphicUses:341Used by:343
Symbol 343 MovieClip {EnemyLevelI}Uses:342 161Used by:390 1349
Symbol 344 BitmapUsed by:345 582
Symbol 345 GraphicUses:344Used by:346
Symbol 346 MovieClip {EnemyLevelIII}Uses:345 161Used by:390 1349
Symbol 347 BitmapUsed by:348
Symbol 348 GraphicUses:347Used by:349
Symbol 349 MovieClip {EnemyLevelIV}Uses:348 161Used by:390 1349
Symbol 350 BitmapUsed by:351
Symbol 351 GraphicUses:350Used by:354
Symbol 352 GraphicUsed by:353 365
Symbol 353 MovieClipUses:352Used by:354
Symbol 354 MovieClip {EnemyLevelIX}Uses:351 353Used by:390 1349
Symbol 355 BitmapUsed by:356
Symbol 356 GraphicUses:355Used by:357
Symbol 357 MovieClip {EnemyLevelV}Uses:356 161Used by:390 1349
Symbol 358 BitmapUsed by:359
Symbol 359 GraphicUses:358Used by:362
Symbol 360 GraphicUsed by:361
Symbol 361 MovieClipUses:360Used by:362
Symbol 362 MovieClip {EnemyLevelVII}Uses:359 361Used by:390 1349
Symbol 363 BitmapUsed by:364
Symbol 364 GraphicUses:363Used by:366
Symbol 365 MovieClipUses:352Used by:366
Symbol 366 MovieClip {EnemyLevelVIII}Uses:364 365Used by:390 1349
Symbol 367 BitmapUsed by:368
Symbol 368 GraphicUses:367Used by:369
Symbol 369 MovieClip {EnemyLevelX}Uses:368 161Used by:390 1349
Symbol 370 BitmapUsed by:371
Symbol 371 GraphicUses:370Used by:374
Symbol 372 GraphicUsed by:373
Symbol 373 MovieClipUses:372Used by:374
Symbol 374 MovieClip {EnemyLevelXI}Uses:371 373Used by:390 1349
Symbol 375 BitmapUsed by:376
Symbol 376 GraphicUses:375Used by:379
Symbol 377 GraphicUsed by:378
Symbol 378 MovieClipUses:377Used by:379
Symbol 379 MovieClip {EnemyLevelXII}Uses:376 378Used by:390 1349
Symbol 380 BitmapUsed by:381
Symbol 381 GraphicUses:380Used by:384
Symbol 382 GraphicUsed by:383
Symbol 383 MovieClipUses:382Used by:384
Symbol 384 MovieClip {EnemyLevelXIII}Uses:381 383Used by:390 1349
Symbol 385 BitmapUsed by:386
Symbol 386 GraphicUses:385Used by:389
Symbol 387 GraphicUsed by:388
Symbol 388 MovieClipUses:387Used by:389
Symbol 389 MovieClip {EnemyLevelXV}Uses:386 388Used by:390 1349
Symbol 390 MovieClipUses:340 343 346 349 354 357 362 366 369 374 379 384 389Used by:391 392 393 394 395
Symbol 391 MovieClip {bulletchaos_final_fla.demo1_30}Uses:337 390Used by:396
Symbol 392 MovieClip {bulletchaos_final_fla.demo2_54}Uses:337 390Used by:396
Symbol 393 MovieClip {bulletchaos_final_fla.demo3_55}Uses:337 390Used by:396
Symbol 394 MovieClip {bulletchaos_final_fla.demo4_56}Uses:337 390Used by:396
Symbol 395 MovieClip {bulletchaos_final_fla.demo5_57}Uses:337 390Used by:396
Symbol 396 MovieClipUses:1 391 392 393 394 395Used by:397
Symbol 397 MovieClip {sources.Animals}Uses:396Used by:403 414 447 530 559
Symbol 398 GraphicUsed by:403
Symbol 399 TextUses:137Used by:400
Symbol 400 MovieClip {sources.Buttons.MM_MoreGames_btn}Uses:136 399Used by:403 447 486 530 549 559 562
Symbol 401 FontUsed by:402 416 463 468 472 475 483 553 561 1028
Symbol 402 TextUses:401Used by:403
Symbol 403 MovieClip {sources.GameOver}Uses:397 398 400 402 139Used by:1349
Symbol 404 MovieClip {sources.GameContainer}Used by:405
Symbol 405 MovieClip {sources.gameSprite}Uses:404Used by:408
Symbol 406 MovieClip {GameBackGround}Used by:408
Symbol 407 MovieClipUsed by:408
Symbol 408 MovieClip {sources.gameSection}Uses:406 405 407Used by:1349
Symbol 409 GraphicUsed by:411 413
Symbol 410 TextUses:233Used by:411
Symbol 411 MovieClip {msModeBut}Uses:409 410Used by:414
Symbol 412 TextUses:233Used by:413
Symbol 413 MovieClip {kbModeBut}Uses:409 412Used by:414
Symbol 414 MovieClip {sources.ChoosePanel}Uses:397 413 411Used by:1349
Symbol 415 MovieClip {sources.Buttons.PlayButton}Uses:136 315Used by:447 530
Symbol 416 TextUses:401Used by:447
Symbol 417 GraphicUsed by:420 469 485 549
Symbol 418 GraphicUsed by:420
Symbol 419 GraphicUsed by:420
Symbol 420 MovieClip {bulletchaos_final_fla.chooseSaver_76}Uses:417 418 419Used by:422
Symbol 421 TextUses:137Used by:422
Symbol 422 MovieClip {bulletchaos_final_fla.setDontShow_75}Uses:420 421Used by:447
Symbol 423 GraphicUsed by:446
Symbol 424 GraphicUsed by:446
Symbol 425 GraphicUsed by:426
Symbol 426 MovieClipUses:425Used by:446
Symbol 427 GraphicUsed by:428
Symbol 428 MovieClipUses:427Used by:429
Symbol 429 MovieClipUses:428Used by:446
Symbol 430 GraphicUsed by:446
Symbol 431 TextUses:137Used by:446
Symbol 432 TextUses:137Used by:446
Symbol 433 TextUses:137Used by:446
Symbol 434 TextUses:137Used by:446
Symbol 435 TextUses:137Used by:446
Symbol 436 TextUses:137Used by:446
Symbol 437 TextUses:137Used by:446
Symbol 438 TextUses:137Used by:446
Symbol 439 TextUses:137Used by:446
Symbol 440 TextUses:137Used by:446
Symbol 441 TextUses:137Used by:446
Symbol 442 TextUses:137Used by:446
Symbol 443 TextUses:137Used by:446
Symbol 444 TextUses:137Used by:446
Symbol 445 TextUses:137Used by:446
Symbol 446 MovieClip {bulletchaos_final_fla.help_77}Uses:423 424 426 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445Used by:447
Symbol 447 MovieClip {sources.GameHelp}Uses:397 27 415 400 139 416 422 446Used by:1349
Symbol 448 MovieClip {bulletchaos_final_fla.menuBtn3_63}Uses:132 133 134 135Used by:450
Symbol 449 TextUses:130Used by:450
Symbol 450 MovieClip {sources.Buttons.ChooseLevelBtn}Uses:448 449Used by:530
Symbol 451 TextUses:137Used by:452
Symbol 452 MovieClip {sources.Buttons.HelpButton}Uses:136 451Used by:530
Symbol 453 TextUses:137Used by:454
Symbol 454 MovieClip {sources.Buttons.MM_TopScoreBtn}Uses:136 453Used by:530
Symbol 455 MovieClip {com.kongregate.as3.client.KongregateAPI}
Symbol 456 GraphicUsed by:457
Symbol 457 MovieClipUses:456Used by:461
Symbol 458 BitmapUsed by:459
Symbol 459 GraphicUses:458Used by:460
Symbol 460 MovieClip {fl.video.Icon}Uses:459Used by:461
Symbol 461 MovieClip {fl.video.FLVPlayback}Uses:457 460
Symbol 462 MovieClipUses:1Used by:Timeline
Symbol 463 TextUses:401Used by:486
Symbol 464 GraphicUsed by:470
Symbol 465 BitmapUsed by:466
Symbol 466 GraphicUses:465Used by:467
Symbol 467 MovieClipUses:466Used by:470 473 476
Symbol 468 TextUses:401Used by:470
Symbol 469 MovieClipUses:417Used by:470 473 476 1015 1019 1020 1024 1027
Symbol 470 MovieClip {sources.Buttons.SDSlow_btn}Uses:464 467 468 469Used by:486
Symbol 471 GraphicUsed by:473
Symbol 472 TextUses:401Used by:473
Symbol 473 MovieClip {sources.Buttons.SDMedium_btn}Uses:471 467 472 469Used by:486
Symbol 474 GraphicUsed by:476
Symbol 475 TextUses:401Used by:476
Symbol 476 MovieClip {sources.Buttons.SDFast_btn}Uses:474 475 467 469Used by:486
Symbol 477 GraphicUsed by:482
Symbol 478 GraphicUsed by:482
Symbol 479 FontUsed by:480 481
Symbol 480 TextUses:479Used by:482
Symbol 481 TextUses:479Used by:482
Symbol 482 MovieClip {sources.Buttons.MM_Z_btn}Uses:477 478 480 481Used by:486 530
Symbol 483 TextUses:401Used by:486 530
Symbol 484 ShapeTweeningUsed by:485
Symbol 485 MovieClip {bulletchaos_final_fla.intro_19}Uses:484 417Used by:486
Symbol 486 MovieClipUses:463 470 473 476 482 27 483 400 485Used by:1349
Symbol 487 GraphicUsed by:489
Symbol 488 GraphicUsed by:489
Symbol 489 ButtonUses:487 488 133Used by:492
Symbol 490 GraphicUsed by:491
Symbol 491 MovieClipUses:490Used by:492 496
Symbol 492 MovieClip {bulletchaos_final_fla.btn_music_20}Uses:489 491Used by:1349
Symbol 493 GraphicUsed by:495
Symbol 494 GraphicUsed by:495
Symbol 495 ButtonUses:493 494 133Used by:496
Symbol 496 MovieClip {bulletchaos_final_fla.btn_sound_23}Uses:495 491Used by:1349
Symbol 497 GraphicUsed by:499
Symbol 498 GraphicUsed by:499
Symbol 499 ButtonUses:497 498 27Used by:500
Symbol 500 MovieClip {bulletchaos_final_fla.btn_stop_play_25}Uses:499Used by:1349
Symbol 501 TextUses:137Used by:502
Symbol 502 MovieClip {sources.Buttons.MM_Continue_btn}Uses:136 501Used by:530
Symbol 503 TextUses:137Used by:504
Symbol 504 MovieClip {sources.Buttons.MM_Send_btn}Uses:136 503Used by:530
Symbol 505 TextUses:137Used by:506
Symbol 506 MovieClip {sources.Buttons.MM_Embed_btn}Uses:136 505Used by:530
Symbol 507 GraphicUsed by:511
Symbol 508 BitmapUsed by:509
Symbol 509 GraphicUses:508Used by:510
Symbol 510 MovieClipUses:509Used by:511
Symbol 511 MovieClip {bulletchaos_final_fla.video_66}Uses:507 510Used by:530
Symbol 512 FontUsed by:513 514 518 522 525
Symbol 513 EditableTextUses:512Used by:515
Symbol 514 TextUses:512Used by:515
Symbol 515 MovieClipUses:513 514Used by:530
Symbol 516 BitmapUsed by:517
Symbol 517 GraphicUses:516Used by:519
Symbol 518 TextUses:512Used by:519
Symbol 519 Button {sources.Buttons.DL_Mac_btn}Uses:517 518 27Used by:530
Symbol 520 BitmapUsed by:521
Symbol 521 GraphicUses:520Used by:523
Symbol 522 TextUses:512Used by:523
Symbol 523 Button {sources.Buttons.DL_Win_btn}Uses:521 522 27Used by:530
Symbol 524 GraphicUsed by:529
Symbol 525 TextUses:512Used by:529
Symbol 526 BitmapUsed by:527
Symbol 527 GraphicUses:526Used by:528 529
Symbol 528 MovieClipUses:527Used by:529
Symbol 529 Button {sources.Buttons.DL_Linux_btn}Uses:524 525 528 27 527Used by:530
Symbol 530 MovieClip {sources.Menu.MainMenu}Uses:397 502 400 504 454 452 450 415 506 27 483 511 515 482 519 523 529Used by:1349
Symbol 531 GraphicUsed by:532
Symbol 532 MovieClipUses:531Used by:533
Symbol 533 MovieClip {bulletchaos_final_fla.demo_good1_93}Uses:337 532Used by:534
Symbol 534 MovieClipUses:1 533Used by:535
Symbol 535 MovieClip {AnimalsGood}Uses:534 319Used by:549 562
Symbol 536 TextUses:137Used by:537
Symbol 537 MovieClip {sources.Buttons.MM_Shop_btn}Uses:136 536Used by:549
Symbol 538 GraphicUsed by:539
Symbol 539 MovieClipUses:538Used by:548
Symbol 540 GraphicUsed by:541
Symbol 541 MovieClipUses:540Used by:548
Symbol 542 FontUsed by:543 544 545 546 547
Symbol 543 TextUses:542Used by:548
Symbol 544 TextUses:542Used by:548
Symbol 545 TextUses:542Used by:548
Symbol 546 TextUses:542Used by:548
Symbol 547 TextUses:542Used by:548
Symbol 548 MovieClip {bulletchaos_final_fla.stars_97}Uses:539 541 543 544 545 546 547Used by:549
Symbol 549 MovieClip {sources.LevelComplete}Uses:535 417 537 335 400 548Used by:1349
Symbol 550 GraphicUsed by:559
Symbol 551 TextUses:137Used by:552
Symbol 552 MovieClip {sources.Buttons.GO_PlayAgain_btn}Uses:136 551Used by:559
Symbol 553 TextUses:401Used by:559
Symbol 554 GraphicUsed by:555
Symbol 555 MovieClipUses:554Used by:558
Symbol 556 GraphicUses:318Used by:557
Symbol 557 MovieClipUses:556Used by:558
Symbol 558 MovieClipUses:555 557Used by:559
Symbol 559 MovieClip {sources.LostLevel}Uses:397 550 552 139 553 558 400Used by:1349
Symbol 560 GraphicUsed by:562
Symbol 561 TextUses:401Used by:562
Symbol 562 MovieClip {sources.Victory}Uses:535 560 561 400 139Used by:1349
Symbol 563 GraphicUsed by:1349
Symbol 564 BitmapUsed by:565
Symbol 565 GraphicUses:564Used by:566
Symbol 566 MovieClip {EnemyLevelVI}Uses:565 161Used by:1349
Symbol 567 GraphicUsed by:568
Symbol 568 MovieClip {planet_skin}Uses:567 161 193Used by:1349
Symbol 569 BitmapUsed by:570
Symbol 570 GraphicUses:569Used by:571
Symbol 571 MovieClipUses:570Used by:572 573 574 575 576 577 625 626 631 1220 1224 1241
Symbol 572 MovieClip {bulletBody1}Uses:571Used by:1349
Symbol 573 MovieClip {bulletBody2}Uses:571Used by:1349
Symbol 574 MovieClip {bulletBody3}Uses:571Used by:1349
Symbol 575 MovieClip {bulletBody4}Uses:571Used by:1349
Symbol 576 MovieClip {bulletBody5}Uses:571Used by:1349
Symbol 577 MovieClip {bulletBody6}Uses:571Used by:1349
Symbol 578 GraphicUsed by:579
Symbol 579 MovieClipUses:578Used by:1349
Symbol 580 GraphicUsed by:581
Symbol 581 MovieClipUses:580Used by:1349
Symbol 582 GraphicUses:344Used by:583
Symbol 583 MovieClipUses:582Used by:1349
Symbol 584 GraphicUsed by:585
Symbol 585 MovieClipUses:584Used by:1349
Symbol 586 GraphicUsed by:587
Symbol 587 MovieClipUses:586Used by:1349
Symbol 588 GraphicUsed by:589
Symbol 589 MovieClipUses:588Used by:1349
Symbol 590 GraphicUsed by:591
Symbol 591 MovieClipUses:590Used by:1349
Symbol 592 GraphicUsed by:593
Symbol 593 MovieClipUses:592Used by:1349
Symbol 594 GraphicUsed by:595
Symbol 595 MovieClipUses:594Used by:1349
Symbol 596 GraphicUsed by:597
Symbol 597 MovieClipUses:596Used by:1349
Symbol 598 GraphicUsed by:599
Symbol 599 MovieClipUses:598Used by:1349
Symbol 600 GraphicUsed by:601
Symbol 601 MovieClipUses:600Used by:1349
Symbol 602 GraphicUsed by:603
Symbol 603 MovieClipUses:602Used by:1349
Symbol 604 GraphicUsed by:605
Symbol 605 MovieClipUses:604Used by:1349
Symbol 606 GraphicUsed by:607
Symbol 607 MovieClipUses:606Used by:1349
Symbol 608 GraphicUsed by:609
Symbol 609 MovieClipUses:608Used by:616
Symbol 610 GraphicUsed by:611
Symbol 611 MovieClipUses:610Used by:616
Symbol 612 GraphicUsed by:613
Symbol 613 MovieClipUses:612Used by:616
Symbol 614 GraphicUsed by:615
Symbol 615 MovieClipUses:614Used by:616
Symbol 616 MovieClip {enemyExplosion1}Uses:609 611 613 615Used by:1349
Symbol 617 ShapeTweeningUsed by:620
Symbol 618 ShapeTweeningUsed by:620
Symbol 619 GraphicUsed by:620
Symbol 620 MovieClip {enemyExplosion1_2}Uses:617 618 619Used by:1349
Symbol 621 MovieClip {BulletExplosion}Uses:86Used by:1349
Symbol 622 MovieClip {BulletExplosion2}Uses:86Used by:1349
Symbol 623 MovieClip {BulletExplosion3}Uses:86Used by:1349
Symbol 624 MovieClip {BulletExplosion4}Uses:86Used by:1349
Symbol 625 MovieClip {bulletBody7}Uses:571Used by:1349
Symbol 626 MovieClip {bulletBody8}Uses:571Used by:1349
Symbol 627 MovieClip {BulletExplosion5}Uses:86Used by:1349
Symbol 628 MovieClip {BulletExplosion6}Uses:86Used by:1349
Symbol 629 MovieClip {BulletExplosion7}Uses:86Used by:1349
Symbol 630 MovieClip {BulletExplosion8}Uses:86Used by:1349
Symbol 631 MovieClip {bulletBody9}Uses:571Used by:1349
Symbol 632 MovieClip {BulletExplosion9}Uses:86Used by:1349
Symbol 633 GraphicUsed by:634
Symbol 634 MovieClipUses:633Used by:645 1312 1313
Symbol 635 GraphicUsed by:636
Symbol 636 MovieClipUses:635Used by:645 1312 1313
Symbol 637 GraphicUsed by:638
Symbol 638 MovieClipUses:637Used by:645 1312 1313
Symbol 639 GraphicUsed by:640
Symbol 640 MovieClipUses:639Used by:645 1312 1313
Symbol 641 GraphicUsed by:642
Symbol 642 MovieClipUses:641Used by:645 1312 1313
Symbol 643 GraphicUsed by:644
Symbol 644 MovieClipUses:643Used by:645 1312 1313
Symbol 645 MovieClip {enemyExplosion2}Uses:634 636 638 640 642 644Used by:1349
Symbol 646 GraphicUsed by:647
Symbol 647 MovieClipUses:646Used by:658
Symbol 648 GraphicUsed by:649
Symbol 649 MovieClipUses:648Used by:658
Symbol 650 GraphicUsed by:651
Symbol 651 MovieClipUses:650Used by:658
Symbol 652 GraphicUsed by:653
Symbol 653 MovieClipUses:652Used by:658
Symbol 654 GraphicUsed by:655
Symbol 655 MovieClipUses:654Used by:658
Symbol 656 GraphicUsed by:657
Symbol 657 MovieClipUses:656Used by:658
Symbol 658 MovieClip {enemyExplosion3}Uses:647 649 651 653 655 657 86Used by:1349
Symbol 659 GraphicUsed by:660
Symbol 660 MovieClipUses:659Used by:677
Symbol 661 GraphicUsed by:662
Symbol 662 MovieClipUses:661Used by:677
Symbol 663 GraphicUsed by:664
Symbol 664 MovieClipUses:663Used by:677
Symbol 665 GraphicUsed by:666
Symbol 666 MovieClipUses:665Used by:677
Symbol 667 GraphicUsed by:668
Symbol 668 MovieClipUses:667Used by:677
Symbol 669 GraphicUsed by:670
Symbol 670 MovieClipUses:669Used by:677
Symbol 671 GraphicUsed by:672
Symbol 672 MovieClipUses:671Used by:677
Symbol 673 GraphicUsed by:674
Symbol 674 MovieClipUses:673Used by:677
Symbol 675 GraphicUsed by:676
Symbol 676 MovieClipUses:675Used by:677 906 919 930 945 956 1007 1036 1061 1084 1107 1130 1156 1186 1288 1314
Symbol 677 MovieClip {enemyExplosion4}Uses:660 662 664 666 668 670 672 674 676 86Used by:1349
Symbol 678 BitmapUsed by:679
Symbol 679 GraphicUses:678Used by:680
Symbol 680 MovieClip {heroPeak1}Uses:679Used by:1349
Symbol 681 BitmapUsed by:682
Symbol 682 GraphicUses:681Used by:683
Symbol 683 MovieClip {heroPeak2}Uses:682Used by:1349
Symbol 684 BitmapUsed by:685
Symbol 685 GraphicUses:684Used by:686
Symbol 686 MovieClip {heroPeak3}Uses:685Used by:1349
Symbol 687 BitmapUsed by:688
Symbol 688 GraphicUses:687Used by:689
Symbol 689 MovieClip {heroPeak4}Uses:688Used by:1349
Symbol 690 BitmapUsed by:691
Symbol 691 GraphicUses:690Used by:692
Symbol 692 MovieClip {heroPeak5}Uses:691Used by:1349
Symbol 693 BitmapUsed by:694
Symbol 694 GraphicUses:693Used by:695
Symbol 695 MovieClip {heroPeak6}Uses:694Used by:1349
Symbol 696 BitmapUsed by:697
Symbol 697 GraphicUses:696Used by:698
Symbol 698 MovieClip {heroPeak7}Uses:697Used by:1349
Symbol 699 BitmapUsed by:700
Symbol 700 GraphicUses:699Used by:701
Symbol 701 MovieClip {heroPeak8}Uses:700Used by:1349
Symbol 702 BitmapUsed by:703
Symbol 703 GraphicUses:702Used by:704
Symbol 704 MovieClip {heroPeak9}Uses:703Used by:1349
Symbol 705 BitmapUsed by:706
Symbol 706 GraphicUses:705Used by:707
Symbol 707 MovieClip {heroPeak10}Uses:706Used by:1349
Symbol 708 BitmapUsed by:709
Symbol 709 GraphicUses:708Used by:710
Symbol 710 MovieClip {heroPeak11}Uses:709Used by:1349
Symbol 711 BitmapUsed by:712
Symbol 712 GraphicUses:711Used by:713
Symbol 713 MovieClip {heroPeak12}Uses:712Used by:1349
Symbol 714 BitmapUsed by:715
Symbol 715 GraphicUses:714Used by:716
Symbol 716 MovieClip {heroPeak13}Uses:715Used by:1349
Symbol 717 GraphicUsed by:718
Symbol 718 MovieClipUses:717Used by:719 797 806 815 824 825 826 827 828 829 830
Symbol 719 MovieClip {weaponIcon1}Uses:718Used by:1349
Symbol 720 GraphicUsed by:721
Symbol 721 MovieClipUses:720Used by:722 798 807 816
Symbol 722 MovieClip {weaponIcon2}Uses:721Used by:1349
Symbol 723 GraphicUsed by:724
Symbol 724 MovieClipUses:723Used by:725 799 808 817
Symbol 725 MovieClip {weaponIcon3}Uses:724Used by:1349
Symbol 726 GraphicUsed by:727
Symbol 727 MovieClipUses:726Used by:728 800 809 818
Symbol 728 MovieClip {weaponIcon4}Uses:727Used by:1349
Symbol 729 GraphicUsed by:730
Symbol 730 MovieClipUses:729Used by:731 801 810 819
Symbol 731 MovieClip {weaponIcon5}Uses:730Used by:1349
Symbol 732 GraphicUsed by:733
Symbol 733 MovieClipUses:732Used by:734 802 811 820
Symbol 734 MovieClip {weaponIcon6}Uses:733Used by:1349
Symbol 735 GraphicUsed by:736
Symbol 736 MovieClipUses:735Used by:737 803 812 821
Symbol 737 MovieClip {weaponIcon7}Uses:736Used by:1349
Symbol 738 GraphicUsed by:739
Symbol 739 MovieClipUses:738Used by:740 804 813 822
Symbol 740 MovieClip {weaponIcon8}Uses:739Used by:1349
Symbol 741 GraphicUsed by:744 805 814 823
Symbol 742 GraphicUsed by:743
Symbol 743 MovieClipUses:742Used by:744 805 814 823
Symbol 744 MovieClip {weaponIcon9}Uses:741 743Used by:1349
Symbol 745 GraphicUsed by:746
Symbol 746 MovieClipUses:745Used by:747 1191 1192 1193 1194 1195
Symbol 747 MovieClip {weaponIcon10}Uses:746Used by:1349
Symbol 748 MovieClip {sources.Hero}Used by:1349
Symbol 749 GraphicUsed by:750
Symbol 750 MovieClipUses:749Used by:751 752 753 754 755 756 757 758 759 760
Symbol 751 MovieClip {arm1}Uses:750Used by:1349
Symbol 752 MovieClip {arm2}Uses:750Used by:1349
Symbol 753 MovieClip {arm3}Uses:750Used by:1349
Symbol 754 MovieClip {arm4}Uses:750Used by:1349
Symbol 755 MovieClip {arm5}Uses:750Used by:1349
Symbol 756 MovieClip {arm6}Uses:750Used by:1349
Symbol 757 MovieClip {arm7}Uses:750Used by:1349
Symbol 758 MovieClip {arm8}Uses:750Used by:1349
Symbol 759 MovieClip {arm9}Uses:750Used by:1349
Symbol 760 MovieClip {arm10}Uses:750Used by:1349
Symbol 761 FontUsed by:762
Symbol 762 EditableTextUses:761Used by:763
Symbol 763 MovieClip {ConditionPanel}Uses:225 762Used by:1349
Symbol 764 GraphicUsed by:765
Symbol 765 MovieClip {enemyHealthLine}Uses:764Used by:1349
Symbol 766 MovieClip {healthLine}Uses:210 212 308Used by:1349
Symbol 767 FontUsed by:768
Symbol 768 TextUses:767Used by:769
Symbol 769 MovieClipUses:768Used by:770
Symbol 770 MovieClip {overHeatIndicator}Uses:769Used by:1349
Symbol 771 EditableTextUses:198Used by:776
Symbol 772 EditableTextUses:198Used by:776
Symbol 773 GraphicUsed by:774
Symbol 774 MovieClipUses:773Used by:775
Symbol 775 MovieClip {bulletchaos_final_fla.bossLine_261}Uses:210 212 774Used by:776
Symbol 776 MovieClip {ScoreIndicator}Uses:771 772 775Used by:1349
Symbol 777 MovieClipUses:209Used by:782
Symbol 778 MovieClip {bulletchaos_final_fla.wIndicatorActive_265}Uses:212Used by:782 1349
Symbol 779 FontUsed by:780
Symbol 780 EditableTextUses:779Used by:781
Symbol 781 MovieClip {bulletchaos_final_fla.indicatorText_266}Uses:780Used by:782
Symbol 782 MovieClip {warnIndicator}Uses:777 778 133 781Used by:1349
Symbol 783 GraphicUsed by:784
Symbol 784 MovieClip {powerLine}Uses:783Used by:1349
Symbol 785 GraphicUsed by:786
Symbol 786 MovieClipUses:785Used by:789 1349
Symbol 787 MovieClipUses:209Used by:789 1349
Symbol 788 EditableTextUses:198Used by:789
Symbol 789 MovieClip {sources.HSWFSThumb}Uses:787 786 788 314Used by:1349
Symbol 790 GraphicUsed by:791
Symbol 791 MovieClipUses:790Used by:794 1349
Symbol 792 GraphicUsed by:793
Symbol 793 MovieClipUses:792Used by:794
Symbol 794 MovieClip {sources.HSweaponPlace}Uses:791 793Used by:1349
Symbol 795 GraphicUsed by:796
Symbol 796 MovieClipUses:795Used by:797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 1191 1192 1193 1194 1195 1199 1200 1201 1202 1203 1207 1208 1209 1210 1211 1215 1216 1217 1218 1219
Symbol 797 MovieClip {weaponIcon1_1}Uses:718 796Used by:1349
Symbol 798 MovieClip {weaponIcon2_1}Uses:721 796Used by:1349
Symbol 799 MovieClip {weaponIcon3_1}Uses:724 796Used by:1349
Symbol 800 MovieClip {weaponIcon4_1}Uses:727 796Used by:1349
Symbol 801 MovieClip {weaponIcon5_1}Uses:730 796Used by:1349
Symbol 802 MovieClip {weaponIcon6_1}Uses:733 796Used by:1349
Symbol 803 MovieClip {weaponIcon7_1}Uses:736 796Used by:1349
Symbol 804 MovieClip {weaponIcon8_1}Uses:739 796Used by:1349
Symbol 805 MovieClip {weaponIcon9_1}Uses:741 743 796Used by:1349
Symbol 806 MovieClip {weaponIcon1_2}Uses:718 796Used by:1349
Symbol 807 MovieClip {weaponIcon2_2}Uses:721 796Used by:1349
Symbol 808 MovieClip {weaponIcon3_2}Uses:724 796Used by:1349
Symbol 809 MovieClip {weaponIcon4_2}Uses:727 796Used by:1349
Symbol 810 MovieClip {weaponIcon5_2}Uses:730 796Used by:1349
Symbol 811 MovieClip {weaponIcon6_2}Uses:733 796Used by:1349
Symbol 812 MovieClip {weaponIcon7_2}Uses:736 796Used by:1349
Symbol 813 MovieClip {weaponIcon8_2}Uses:739 796Used by:1349
Symbol 814 MovieClip {weaponIcon9_2}Uses:741 743 796Used by:1349
Symbol 815 MovieClip {weaponIcon1_3}Uses:718 796Used by:1349
Symbol 816 MovieClip {weaponIcon2_3}Uses:721 796Used by:1349
Symbol 817 MovieClip {weaponIcon3_3}Uses:724 796Used by:1349
Symbol 818 MovieClip {weaponIcon4_3}Uses:727 796Used by:1349
Symbol 819 MovieClip {weaponIcon5_3}Uses:730 796Used by:1349
Symbol 820 MovieClip {weaponIcon6_3}Uses:733 796Used by:1349
Symbol 821 MovieClip {weaponIcon7_3}Uses:736 796Used by:1349
Symbol 822 MovieClip {weaponIcon8_3}Uses:739 796Used by:1349
Symbol 823 MovieClip {weaponIcon9_3}Uses:741 743 796Used by:1349
Symbol 824 MovieClip {weaponIcon1_4}Uses:718 796Used by:1349
Symbol 825 MovieClip {weaponIcon1_5}Uses:718 796Used by:1349
Symbol 826 MovieClip {weaponIcon1_6}Uses:718 796Used by:1349
Symbol 827 MovieClip {weaponIcon1_7}Uses:718 796Used by:1349
Symbol 828 MovieClip {weaponIcon1_8}Uses:718 796Used by:1349
Symbol 829 MovieClip {weaponIcon1_9}Uses:718 796Used by:1349
Symbol 830 MovieClip {weaponIcon1_10}Uses:718 796Used by:1349
Symbol 831 BitmapUsed by:832
Symbol 832 GraphicUses:831Used by:833
Symbol 833 MovieClip {bulletBody10}Uses:832Used by:1349
Symbol 834 BitmapUsed by:835
Symbol 835 GraphicUses:834Used by:836
Symbol 836 MovieClip {EnemyBoss_1}Uses:835 161Used by:1349
Symbol 837 BitmapUsed by:838
Symbol 838 GraphicUses:837Used by:841
Symbol 839 GraphicUsed by:840
Symbol 840 MovieClipUses:839Used by:841
Symbol 841 MovieClip {EnemyBoss_2}Uses:838 840Used by:1349
Symbol 842 BitmapUsed by:843
Symbol 843 GraphicUses:842Used by:846
Symbol 844 GraphicUsed by:845
Symbol 845 MovieClipUses:844Used by:846
Symbol 846 MovieClip {EnemyBoss_4}Uses:843 845Used by:1349
Symbol 847 GraphicUsed by:906
Symbol 848 GraphicUsed by:849
Symbol 849 MovieClipUses:848Used by:906
Symbol 850 GraphicUsed by:851
Symbol 851 MovieClipUses:850Used by:906
Symbol 852 GraphicUsed by:853 958
Symbol 853 MovieClipUses:852Used by:906
Symbol 854 GraphicUsed by:855
Symbol 855 MovieClipUses:854Used by:906
Symbol 856 GraphicUsed by:857
Symbol 857 MovieClipUses:856Used by:906
Symbol 858 GraphicUsed by:859 963 967
Symbol 859 MovieClipUses:858Used by:906
Symbol 860 GraphicUsed by:861
Symbol 861 MovieClipUses:860Used by:906
Symbol 862 GraphicUsed by:863
Symbol 863 MovieClipUses:862Used by:906
Symbol 864 GraphicUsed by:865
Symbol 865 MovieClipUses:864Used by:906
Symbol 866 GraphicUsed by:867
Symbol 867 MovieClipUses:866Used by:906
Symbol 868 GraphicUsed by:869
Symbol 869 MovieClipUses:868Used by:906
Symbol 870 GraphicUsed by:871
Symbol 871 MovieClipUses:870Used by:906
Symbol 872 GraphicUsed by:906
Symbol 873 GraphicUsed by:906
Symbol 874 GraphicUsed by:906
Symbol 875 GraphicUsed by:906
Symbol 876 GraphicUsed by:906
Symbol 877 GraphicUsed by:906
Symbol 878 GraphicUsed by:906
Symbol 879 GraphicUsed by:906
Symbol 880 GraphicUsed by:906
Symbol 881 GraphicUsed by:906
Symbol 882 GraphicUsed by:906
Symbol 883 GraphicUsed by:906
Symbol 884 GraphicUsed by:906
Symbol 885 GraphicUsed by:906
Symbol 886 GraphicUsed by:906
Symbol 887 GraphicUsed by:906
Symbol 888 GraphicUsed by:906
Symbol 889 GraphicUsed by:906
Symbol 890 GraphicUsed by:906
Symbol 891 GraphicUsed by:906
Symbol 892 GraphicUsed by:906
Symbol 893 GraphicUsed by:906
Symbol 894 GraphicUsed by:906
Symbol 895 GraphicUsed by:906
Symbol 896 GraphicUsed by:906
Symbol 897 GraphicUsed by:906
Symbol 898 GraphicUsed by:906
Symbol 899 GraphicUsed by:906
Symbol 900 GraphicUsed by:906
Symbol 901 GraphicUsed by:906
Symbol 902 GraphicUsed by:906
Symbol 903 GraphicUsed by:906
Symbol 904 GraphicUsed by:906
Symbol 905 GraphicUsed by:906
Symbol 906 MovieClip {enemyExplosionBoss_1}Uses:847 849 851 853 855 857 859 861 863 865 867 869 871 676 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905Used by:1349
Symbol 907 GraphicUsed by:908 909 910 933 934 1146 1165
Symbol 908 MovieClipUses:907Used by:919
Symbol 909 MovieClipUses:907Used by:919
Symbol 910 MovieClipUses:907Used by:919
Symbol 911 GraphicUsed by:912
Symbol 912 MovieClipUses:911Used by:919
Symbol 913 GraphicUsed by:914
Symbol 914 MovieClipUses:913Used by:919
Symbol 915 GraphicUsed by:916
Symbol 916 MovieClipUses:915Used by:919
Symbol 917 GraphicUsed by:918
Symbol 918 MovieClipUses:917Used by:919
Symbol 919 MovieClip {enemyExplosion5}Uses:908 909 910 912 914 916 918 676 86Used by:1349
Symbol 920 GraphicUsed by:921 922 923
Symbol 921 MovieClipUses:920Used by:930
Symbol 922 MovieClipUses:920Used by:930
Symbol 923 MovieClipUses:920Used by:930
Symbol 924 GraphicUsed by:925
Symbol 925 MovieClipUses:924Used by:930 1314
Symbol 926 GraphicUsed by:927
Symbol 927 MovieClipUses:926Used by:930 1314
Symbol 928 GraphicUsed by:929
Symbol 929 MovieClipUses:928Used by:930 1314
Symbol 930 MovieClip {enemyExplosion6}Uses:921 922 923 925 927 929 676Used by:1349
Symbol 931 GraphicUsed by:932
Symbol 932 MovieClipUses:931Used by:945 956 1036
Symbol 933 MovieClipUses:907Used by:945 956 1036
Symbol 934 MovieClipUses:907Used by:945 956 1036
Symbol 935 GraphicUsed by:936
Symbol 936 MovieClipUses:935Used by:945 956 1036
Symbol 937 GraphicUsed by:938
Symbol 938 MovieClipUses:937Used by:945 956 1036
Symbol 939 GraphicUsed by:940
Symbol 940 MovieClipUses:939Used by:945 956 1036
Symbol 941 GraphicUsed by:942
Symbol 942 MovieClipUses:941Used by:945 956 1036
Symbol 943 GraphicUsed by:944
Symbol 944 MovieClipUses:943Used by:945 956 1036
Symbol 945 MovieClip {enemyExplosion7}Uses:932 933 934 936 938 940 942 944 676 86Used by:1349
Symbol 946 MovieClipUses:319Used by:947 1225 1315
Symbol 947 MovieClip {blueSatellite}Uses:946Used by:1349
Symbol 948 GraphicUsed by:949
Symbol 949 MovieClipUses:948Used by:956 1036
Symbol 950 GraphicUsed by:951
Symbol 951 MovieClipUses:950Used by:956 1036
Symbol 952 GraphicUsed by:953
Symbol 953 MovieClipUses:952Used by:956 1036
Symbol 954 GraphicUsed by:955
Symbol 955 MovieClipUses:954Used by:956 1036
Symbol 956 MovieClip {enemyExplosion8}Uses:932 933 934 936 938 940 942 944 949 951 953 955 676 86Used by:1349
Symbol 957 GraphicUsed by:1007
Symbol 958 MovieClipUses:852Used by:1007
Symbol 959 GraphicUsed by:960
Symbol 960 MovieClipUses:959Used by:1007
Symbol 961 GraphicUsed by:962 966 968
Symbol 962 MovieClipUses:961Used by:1007
Symbol 963 MovieClipUses:858Used by:1007
Symbol 964 GraphicUsed by:965
Symbol 965 MovieClipUses:964Used by:1007
Symbol 966 MovieClipUses:961Used by:1007
Symbol 967 MovieClipUses:858Used by:1007
Symbol 968 MovieClipUses:961Used by:1007
Symbol 969 GraphicUsed by:970
Symbol 970 MovieClipUses:969Used by:1007
Symbol 971 GraphicUsed by:972
Symbol 972 MovieClipUses:971Used by:1007
Symbol 973 GraphicUsed by:1007
Symbol 974 GraphicUsed by:1007
Symbol 975 GraphicUsed by:1007
Symbol 976 GraphicUsed by:1007
Symbol 977 GraphicUsed by:1007
Symbol 978 GraphicUsed by:1007
Symbol 979 GraphicUsed by:1007
Symbol 980 GraphicUsed by:1007
Symbol 981 GraphicUsed by:1007
Symbol 982 GraphicUsed by:1007
Symbol 983 GraphicUsed by:1007
Symbol 984 GraphicUsed by:1007
Symbol 985 GraphicUsed by:1007
Symbol 986 GraphicUsed by:1007
Symbol 987 GraphicUsed by:1007
Symbol 988 GraphicUsed by:1007
Symbol 989 GraphicUsed by:1007
Symbol 990 GraphicUsed by:1007
Symbol 991 GraphicUsed by:1007
Symbol 992 GraphicUsed by:1007
Symbol 993 GraphicUsed by:1007
Symbol 994 GraphicUsed by:1007
Symbol 995 GraphicUsed by:1007
Symbol 996 GraphicUsed by:1007
Symbol 997 GraphicUsed by:1007
Symbol 998 GraphicUsed by:1007
Symbol 999 GraphicUsed by:1007
Symbol 1000 GraphicUsed by:1007
Symbol 1001 GraphicUsed by:1007
Symbol 1002 GraphicUsed by:1007
Symbol 1003 GraphicUsed by:1007 1288
Symbol 1004 GraphicUsed by:1007
Symbol 1005 GraphicUsed by:1007
Symbol 1006 GraphicUsed by:1007
Symbol 1007 MovieClip {enemyExplosionBoss_2}Uses:957 958 960 962 963 965 966 967 968 970 972 676 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006Used by:1349
Symbol 1008 MovieClipUses:13Used by:1015 1019 1020
Symbol 1009 MovieClipUses:16Used by:1010
Symbol 1010 MovieClip {bulletchaos_final_fla.z_2_378}Uses:1009Used by:1015
Symbol 1011 GraphicUsed by:1014 1018
Symbol 1012 ShapeTweeningUsed by:1014
Symbol 1013 GraphicUsed by:1014 1018
Symbol 1014 MovieClip {bulletchaos_final_fla.blick_380}Uses:1011 1012 1013Used by:1015
Symbol 1015 MovieClip {sources.Buttons.UI_SimpleBtn_Logo}Uses:1008 1010 1014 469Used by:1031
Symbol 1016 GraphicUsed by:1019
Symbol 1017 ShapeTweeningUsed by:1018
Symbol 1018 MovieClip {bulletchaos_final_fla.blickcopy_382}Uses:1011 1017 1013Used by:1019 1020 1024 1027
Symbol 1019 MovieClip {sources.Buttons.UI_SimpleBtn_Continue}Uses:1008 1016 1018 469Used by:1031
Symbol 1020 MovieClip {sources.Buttons.UI_SimpleBtn_Menu}Uses:1008 1 1018 469Used by:1031
Symbol 1021 MovieClipUses:13Used by:1024 1027
Symbol 1022 GraphicUsed by:1024
Symbol 1023 GraphicUsed by:1024
Symbol 1024 MovieClip {sources.Buttons.UI_SimpleBtn_Sound}Uses:1021 1022 1018 469 1023Used by:1031
Symbol 1025 GraphicUsed by:1027
Symbol 1026 GraphicUsed by:1027
Symbol 1027 MovieClip {sources.Buttons.UI_SimpleBtn_Music}Uses:1021 1025 1018 469 1026Used by:1031
Symbol 1028 TextUses:401Used by:1031
Symbol 1029 FontUsed by:1030
Symbol 1030 EditableTextUses:1029Used by:1031
Symbol 1031 MovieClip {sources.Menu.PauseMenu}Uses:1015 1019 1020 1024 1027 1028 1030Used by:1349
Symbol 1032 FontUsed by:1033
Symbol 1033 EditableTextUses:1032Used by:1034
Symbol 1034 MovieClip {bulletchaos_final_fla.taskMc_tx_388}Uses:1033Used by:1035
Symbol 1035 MovieClip {sources.TaskViewer}Uses:1034Used by:1349
Symbol 1036 MovieClip {enemyExplosion9}Uses:932 933 934 936 938 940 942 944 949 951 953 955 676 86Used by:1349
Symbol 1037 GraphicUsed by:1038
Symbol 1038 MovieClipUses:1037Used by:1061
Symbol 1039 GraphicUsed by:1040
Symbol 1040 MovieClipUses:1039Used by:1061
Symbol 1041 GraphicUsed by:1042
Symbol 1042 MovieClipUses:1041Used by:1061
Symbol 1043 GraphicUsed by:1044
Symbol 1044 MovieClipUses:1043Used by:1061
Symbol 1045 GraphicUsed by:1046
Symbol 1046 MovieClipUses:1045Used by:1061
Symbol 1047 GraphicUsed by:1048
Symbol 1048 MovieClipUses:1047Used by:1061
Symbol 1049 GraphicUsed by:1050
Symbol 1050 MovieClipUses:1049Used by:1061
Symbol 1051 GraphicUsed by:1052
Symbol 1052 MovieClipUses:1051Used by:1061
Symbol 1053 GraphicUsed by:1054
Symbol 1054 MovieClipUses:1053Used by:1061
Symbol 1055 GraphicUsed by:1056
Symbol 1056 MovieClipUses:1055Used by:1061
Symbol 1057 GraphicUsed by:1058
Symbol 1058 MovieClipUses:1057Used by:1061
Symbol 1059 GraphicUsed by:1060
Symbol 1060 MovieClipUses:1059Used by:1061
Symbol 1061 MovieClip {enemyExplosion10}Uses:1038 1040 1042 1044 1046 1048 1050 1052 1054 1056 1058 1060 676Used by:1349
Symbol 1062 GraphicUsed by:1063
Symbol 1063 MovieClipUses:1062Used by:1084
Symbol 1064 GraphicUsed by:1065
Symbol 1065 MovieClipUses:1064Used by:1084
Symbol 1066 GraphicUsed by:1067
Symbol 1067 MovieClipUses:1066Used by:1084
Symbol 1068 GraphicUsed by:1069
Symbol 1069 MovieClipUses:1068Used by:1084
Symbol 1070 GraphicUsed by:1071
Symbol 1071 MovieClipUses:1070Used by:1084
Symbol 1072 GraphicUsed by:1073
Symbol 1073 MovieClipUses:1072Used by:1084
Symbol 1074 GraphicUsed by:1075
Symbol 1075 MovieClipUses:1074Used by:1084
Symbol 1076 GraphicUsed by:1077
Symbol 1077 MovieClipUses:1076Used by:1084
Symbol 1078 GraphicUsed by:1079
Symbol 1079 MovieClipUses:1078Used by:1084
Symbol 1080 GraphicUsed by:1081
Symbol 1081 MovieClipUses:1080Used by:1084
Symbol 1082 GraphicUsed by:1083
Symbol 1083 MovieClipUses:1082Used by:1084
Symbol 1084 MovieClip {enemyExplosion11}Uses:1063 1065 1067 1069 1071 1073 1075 1077 1079 1081 1083 676 86Used by:1349
Symbol 1085 GraphicUsed by:1086
Symbol 1086 MovieClipUses:1085Used by:1107
Symbol 1087 GraphicUsed by:1088
Symbol 1088 MovieClipUses:1087Used by:1107
Symbol 1089 GraphicUsed by:1090
Symbol 1090 MovieClipUses:1089Used by:1107
Symbol 1091 GraphicUsed by:1092 1139 1184
Symbol 1092 MovieClipUses:1091Used by:1107
Symbol 1093 GraphicUsed by:1094 1185
Symbol 1094 MovieClipUses:1093Used by:1107
Symbol 1095 GraphicUsed by:1096
Symbol 1096 MovieClipUses:1095Used by:1107
Symbol 1097 GraphicUsed by:1098
Symbol 1098 MovieClipUses:1097Used by:1107
Symbol 1099 GraphicUsed by:1100
Symbol 1100 MovieClipUses:1099Used by:1107
Symbol 1101 GraphicUsed by:1102
Symbol 1102 MovieClipUses:1101Used by:1107
Symbol 1103 GraphicUsed by:1104
Symbol 1104 MovieClipUses:1103Used by:1107
Symbol 1105 GraphicUsed by:1106
Symbol 1106 MovieClipUses:1105Used by:1107
Symbol 1107 MovieClip {enemyExplosion12}Uses:1086 1088 1090 1092 1094 1096 1098 1100 1102 1104 1106 676 86Used by:1349
Symbol 1108 GraphicUsed by:1109
Symbol 1109 MovieClipUses:1108Used by:1130
Symbol 1110 GraphicUsed by:1111
Symbol 1111 MovieClipUses:1110Used by:1130
Symbol 1112 GraphicUsed by:1113
Symbol 1113 MovieClipUses:1112Used by:1130
Symbol 1114 GraphicUsed by:1115
Symbol 1115 MovieClipUses:1114Used by:1130
Symbol 1116 GraphicUsed by:1117
Symbol 1117 MovieClipUses:1116Used by:1130
Symbol 1118 GraphicUsed by:1119
Symbol 1119 MovieClipUses:1118Used by:1130
Symbol 1120 GraphicUsed by:1121
Symbol 1121 MovieClipUses:1120Used by:1130
Symbol 1122 GraphicUsed by:1123
Symbol 1123 MovieClipUses:1122Used by:1130
Symbol 1124 GraphicUsed by:1125
Symbol 1125 MovieClipUses:1124Used by:1130
Symbol 1126 GraphicUsed by:1127
Symbol 1127 MovieClipUses:1126Used by:1130
Symbol 1128 GraphicUsed by:1129
Symbol 1129 MovieClipUses:1128Used by:1130
Symbol 1130 MovieClip {enemyExplosion13}Uses:1109 1111 1113 1115 1117 1119 1121 1123 1125 1127 1129 676 86Used by:1349
Symbol 1131 GraphicUsed by:1132
Symbol 1132 MovieClipUses:1131Used by:1156
Symbol 1133 GraphicUsed by:1134
Symbol 1134 MovieClipUses:1133Used by:1156
Symbol 1135 GraphicUsed by:1136
Symbol 1136 MovieClipUses:1135Used by:1156
Symbol 1137 GraphicUsed by:1138 1153
Symbol 1138 MovieClipUses:1137Used by:1156
Symbol 1139 MovieClipUses:1091Used by:1156
Symbol 1140 GraphicUsed by:1141
Symbol 1141 MovieClipUses:1140Used by:1156
Symbol 1142 GraphicUsed by:1143
Symbol 1143 MovieClipUses:1142Used by:1156
Symbol 1144 GraphicUsed by:1145
Symbol 1145 MovieClipUses:1144Used by:1156
Symbol 1146 MovieClipUses:907Used by:1156
Symbol 1147 GraphicUsed by:1148
Symbol 1148 MovieClipUses:1147Used by:1156
Symbol 1149 GraphicUsed by:1150
Symbol 1150 MovieClipUses:1149Used by:1156
Symbol 1151 GraphicUsed by:1152
Symbol 1152 MovieClipUses:1151Used by:1156
Symbol 1153 MovieClipUses:1137Used by:1156
Symbol 1154 GraphicUsed by:1155 1168
Symbol 1155 MovieClipUses:1154Used by:1156
Symbol 1156 MovieClip {enemyExplosion14}Uses:1132 1134 1136 1138 1139 1141 1143 1145 1146 1148 1150 1152 1153 1155 676 86Used by:1349
Symbol 1157 GraphicUsed by:1158
Symbol 1158 MovieClipUses:1157Used by:1186
Symbol 1159 GraphicUsed by:1160
Symbol 1160 MovieClipUses:1159Used by:1186
Symbol 1161 GraphicUsed by:1162 1169
Symbol 1162 MovieClipUses:1161Used by:1186
Symbol 1163 GraphicUsed by:1164
Symbol 1164 MovieClipUses:1163Used by:1186
Symbol 1165 MovieClipUses:907Used by:1186
Symbol 1166 GraphicUsed by:1167
Symbol 1167 MovieClipUses:1166Used by:1186
Symbol 1168 MovieClipUses:1154Used by:1186
Symbol 1169 MovieClipUses:1161Used by:1186
Symbol 1170 GraphicUsed by:1171
Symbol 1171 MovieClipUses:1170Used by:1186
Symbol 1172 GraphicUsed by:1173
Symbol 1173 MovieClipUses:1172Used by:1186
Symbol 1174 GraphicUsed by:1175
Symbol 1175 MovieClipUses:1174Used by:1186
Symbol 1176 GraphicUsed by:1177
Symbol 1177 MovieClipUses:1176Used by:1186
Symbol 1178 GraphicUsed by:1179
Symbol 1179 MovieClipUses:1178Used by:1186
Symbol 1180 GraphicUsed by:1181
Symbol 1181 MovieClipUses:1180Used by:1186
Symbol 1182 GraphicUsed by:1183
Symbol 1183 MovieClipUses:1182Used by:1186
Symbol 1184 MovieClipUses:1091Used by:1186
Symbol 1185 MovieClipUses:1093Used by:1186
Symbol 1186 MovieClip {enemyExplosion15}Uses:1158 1160 1162 1164 1165 1167 1168 1169 1171 1173 1175 1177 1179 1181 1183 1184 1185 676 86Used by:1349
Symbol 1187 MovieClip {BulletExplosion10}Uses:86Used by:1349
Symbol 1188 MovieClip {BulletExplosion11}Uses:86Used by:1349
Symbol 1189 MovieClip {BulletExplosion12}Uses:86Used by:1349
Symbol 1190 MovieClip {BulletExplosion13}Uses:86Used by:1349
Symbol 1191 MovieClip {weaponIcon10_1}Uses:746 796Used by:1349
Symbol 1192 MovieClip {weaponIcon10_2}Uses:746 796Used by:1349
Symbol 1193 MovieClip {weaponIcon10_3}Uses:746 796Used by:1349
Symbol 1194 MovieClip {weaponIcon10_4}Uses:746 796Used by:1349
Symbol 1195 MovieClip {weaponIcon10_5}Uses:746 796Used by:1349
Symbol 1196 GraphicUsed by:1197
Symbol 1197 MovieClipUses:1196Used by:1198 1199 1200 1201 1202 1203
Symbol 1198 MovieClip {weaponIcon11}Uses:1197Used by:1349
Symbol 1199 MovieClip {weaponIcon11_1}Uses:1197 796Used by:1349
Symbol 1200 MovieClip {weaponIcon11_2}Uses:1197 796Used by:1349
Symbol 1201 MovieClip {weaponIcon11_3}Uses:1197 796Used by:1349
Symbol 1202 MovieClip {weaponIcon11_4}Uses:1197 796Used by:1349
Symbol 1203 MovieClip {weaponIcon11_5}Uses:1197 796Used by:1349
Symbol 1204 GraphicUsed by:1205
Symbol 1205 MovieClipUses:1204Used by:1206 1207 1208 1209 1210 1211
Symbol 1206 MovieClip {weaponIcon12}Uses:1205Used by:1349
Symbol 1207 MovieClip {weaponIcon12_1}Uses:1205 796Used by:1349
Symbol 1208 MovieClip {weaponIcon12_2}Uses:1205 796Used by:1349
Symbol 1209 MovieClip {weaponIcon12_3}Uses:1205 796Used by:1349
Symbol 1210 MovieClip {weaponIcon12_4}Uses:1205 796Used by:1349
Symbol 1211 MovieClip {weaponIcon12_5}Uses:1205 796Used by:1349
Symbol 1212 GraphicUsed by:1213
Symbol 1213 MovieClipUses:1212Used by:1214 1215 1216 1217 1218 1219
Symbol 1214 MovieClip {weaponIcon13}Uses:1213Used by:1349
Symbol 1215 MovieClip {weaponIcon13_1}Uses:1213 796Used by:1349
Symbol 1216 MovieClip {weaponIcon13_2}Uses:1213 796Used by:1349
Symbol 1217 MovieClip {weaponIcon13_3}Uses:1213 796Used by:1349
Symbol 1218 MovieClip {weaponIcon13_4}Uses:1213 796Used by:1349
Symbol 1219 MovieClip {weaponIcon13_5}Uses:1213 796Used by:1349
Symbol 1220 MovieClip {bulletBody11}Uses:571Used by:1349
Symbol 1221 BitmapUsed by:1222
Symbol 1222 GraphicUses:1221Used by:1223
Symbol 1223 MovieClip {bulletBody12}Uses:1222Used by:1349
Symbol 1224 MovieClip {bulletBody13}Uses:571Used by:1349
Symbol 1225 MovieClip {greenSatellite}Uses:946Used by:1349
Symbol 1226 GraphicUsed by:1227
Symbol 1227 MovieClipUses:1226Used by:1349
Symbol 1228 GraphicUsed by:1229
Symbol 1229 MovieClipUses:1228Used by:1349
Symbol 1230 BitmapUsed by:1231
Symbol 1231 GraphicUses:1230Used by:1232
Symbol 1232 MovieClip {EnemyLevelVI_b}Uses:1231 161Used by:1349
Symbol 1233 BitmapUsed by:1234
Symbol 1234 GraphicUses:1233Used by:1235
Symbol 1235 MovieClip {EnemyLevelII_b}Uses:1234 161Used by:1349
Symbol 1236 BitmapUsed by:1237
Symbol 1237 GraphicUses:1236Used by:1238
Symbol 1238 MovieClip {EnemyLevelII_s}Uses:1237 161Used by:1349
Symbol 1239 GraphicUsed by:1240
Symbol 1240 MovieClipUses:1239Used by:1349
Symbol 1241 MovieClip {bulletBody1_split}Uses:571Used by:1349
Symbol 1242 GraphicUsed by:1288
Symbol 1243 GraphicUsed by:1288
Symbol 1244 GraphicUsed by:1288
Symbol 1245 GraphicUsed by:1288
Symbol 1246 GraphicUsed by:1288
Symbol 1247 GraphicUsed by:1288
Symbol 1248 GraphicUsed by:1288
Symbol 1249 GraphicUsed by:1288
Symbol 1250 GraphicUsed by:1288
Symbol 1251 GraphicUsed by:1288
Symbol 1252 GraphicUsed by:1288
Symbol 1253 GraphicUsed by:1288
Symbol 1254 GraphicUsed by:1288
Symbol 1255 GraphicUsed by:1288
Symbol 1256 GraphicUsed by:1288
Symbol 1257 GraphicUsed by:1288
Symbol 1258 GraphicUsed by:1288
Symbol 1259 GraphicUsed by:1288
Symbol 1260 GraphicUsed by:1288
Symbol 1261 GraphicUsed by:1288
Symbol 1262 GraphicUsed by:1288
Symbol 1263 GraphicUsed by:1288
Symbol 1264 GraphicUsed by:1288
Symbol 1265 GraphicUsed by:1288
Symbol 1266 GraphicUsed by:1288
Symbol 1267 GraphicUsed by:1288
Symbol 1268 GraphicUsed by:1288
Symbol 1269 GraphicUsed by:1288
Symbol 1270 GraphicUsed by:1288
Symbol 1271 GraphicUsed by:1288
Symbol 1272 GraphicUsed by:1288
Symbol 1273 GraphicUsed by:1288
Symbol 1274 GraphicUsed by:1288
Symbol 1275 GraphicUsed by:1288
Symbol 1276 GraphicUsed by:1288
Symbol 1277 GraphicUsed by:1288
Symbol 1278 GraphicUsed by:1288
Symbol 1279 GraphicUsed by:1288
Symbol 1280 GraphicUsed by:1288
Symbol 1281 GraphicUsed by:1288
Symbol 1282 GraphicUsed by:1288
Symbol 1283 GraphicUsed by:1288
Symbol 1284 GraphicUsed by:1288
Symbol 1285 GraphicUsed by:1288
Symbol 1286 GraphicUsed by:1288
Symbol 1287 GraphicUsed by:1288
Symbol 1288 MovieClip {enemyExplosionBoss_4}Uses:1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 676 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1003 1285 1286 1287Used by:1349
Symbol 1289 GraphicUsed by:1290
Symbol 1290 MovieClipUses:1289Used by:1349
Symbol 1291 BitmapUsed by:1292
Symbol 1292 GraphicUses:1291Used by:1295
Symbol 1293 GraphicUsed by:1294
Symbol 1294 MovieClipUses:1293Used by:1295
Symbol 1295 MovieClip {EnemyLevelVI_star}Uses:1292 1294Used by:1349
Symbol 1296 ShapeTweeningUsed by:1300
Symbol 1297 GraphicUsed by:1300
Symbol 1298 GraphicUsed by:1299
Symbol 1299 MovieClipUses:1298Used by:1300
Symbol 1300 MovieClip {enemyExplosion6_star}Uses:1296 1297 1299Used by:1349
Symbol 1301 GraphicUsed by:1303
Symbol 1302 GraphicUsed by:1303
Symbol 1303 MovieClip {b6_p1}Uses:1301 161 1302Used by:1349
Symbol 1304 GraphicUsed by:1306
Symbol 1305 GraphicUsed by:1306
Symbol 1306 MovieClip {b6_p2}Uses:1304 161 1305Used by:1349
Symbol 1307 GraphicUsed by:1309
Symbol 1308 GraphicUsed by:1309
Symbol 1309 MovieClip {b6_p3}Uses:1307 161 1308Used by:1349
Symbol 1310 GraphicUsed by:1311
Symbol 1311 MovieClip {b6_p4}Uses:1310 161Used by:1349
Symbol 1312 MovieClip {enemyExplosion2_2}Uses:634 636 638 640 642 644Used by:1349
Symbol 1313 MovieClip {enemyExplosion2_3}Uses:634 636 638 640 642 644Used by:1349
Symbol 1314 MovieClip {enemyExplosion6_b}Uses:925 927 929 676Used by:1349
Symbol 1315 MovieClip {greenSatellite2}Uses:946Used by:1349
Symbol 1316 GraphicUsed by:1348
Symbol 1317 Sound {s_b}Used by:1348
Symbol 1318 Sound {s_b_boss}Used by:1348
Symbol 1319 Sound {s_b1}Used by:1348
Symbol 1320 Sound {s_b2}Used by:1348
Symbol 1321 Sound {s_b3}Used by:1348
Symbol 1322 Sound {s_b4}Used by:1348
Symbol 1323 Sound {s_b5}Used by:1348
Symbol 1324 Sound {s_b6}Used by:1348
Symbol 1325 Sound {s_b7}Used by:1348
Symbol 1326 Sound {s_shoot1}Used by:1348
Symbol 1327 Sound {s_shoot2}Used by:1348
Symbol 1328 Sound {s_shoot3}Used by:1348
Symbol 1329 Sound {s_shoot4}Used by:1348
Symbol 1330 Sound {s_shoot5}Used by:1348
Symbol 1331 Sound {s_shoot6}Used by:1348
Symbol 1332 Sound {s_shoot7}Used by:1348
Symbol 1333 Sound {s_shoot8}Used by:1348
Symbol 1334 Sound {s_shoot9}Used by:1348
Symbol 1335 Sound {s_shoot10}Used by:1348
Symbol 1336 Sound {s_shoot11}Used by:1348
Symbol 1337 Sound {s_shoot12}Used by:1348
Symbol 1338 Sound {s_over}Used by:1348
Symbol 1339 Sound {s_click}Used by:1348
Symbol 1340 Sound {s_show1}Used by:1348
Symbol 1341 Sound {s_show2}Used by:1348
Symbol 1342 Sound {s_show3}Used by:1348
Symbol 1343 Sound {m_win}Used by:1348
Symbol 1344 Sound {m_lost}Used by:1348
Symbol 1345 Sound {m_shop}Used by:1348
Symbol 1346 Sound {m_game}Used by:1348
Symbol 1347 Sound {main_menu}Used by:1348
Symbol 1348 MovieClipUses:1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347Used by:1349
Symbol 1349 MovieClip {sources.MainContainer}Uses:128 486 492 496 500 530 447 414 408 403 549 559 562 333 223 563 343 340 346 349 357 566 362 366 354 369 374 379 384 220 389 568 572 573 574 575 576 577 579 581 583 585 587 589 591 593 595 597 599 601 603 605 607 616 620 621 622 623 624 625 626 627 628 629 630 631 632 645 658 677 680 683 686 689 692 695 698 701 704 707 710 713 716 719 722 725 728 731 734 737 740 744 747 748 320 751 752 753 754 755 756 757 758 759 760 215 763 765 766 770 776 782 778 784 786 789 794 787 791 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 833 836 841 846 208 204 906 919 930 945 947 956 1007 200 1031 1035 1036 1061 1084 1107 1130 1156 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1198 1199 1200 1201 1202 1203 1206 1207 1208 1209 1210 1211 1214 1215 1216 1217 1218 1219 1220 1223 1224 1225 1227 1229 1232 1235 1238 1240 1241 1288 1290 1295 1300 1303 1306 1309 1311 1312 1313 1314 1315 1348Used by:Timeline

Instance Names

"mmask"Frame 1Symbol 462 MovieClip
"GTAnimation"Frame 2Symbol 197 MovieClip {sources.GateAnimation}
"begun"Symbol 9 MovieClip {bulletchaos_final_fla.preloaderLine_600} Frame 1Symbol 8 MovieClip
"pr"Symbol 28 MovieClip {bulletchaos_final_fla.gameZheroPreloader_599} Frame 1Symbol 9 MovieClip {bulletchaos_final_fla.preloaderLine_600}
"bg"Symbol 29 MovieClip {com.gamezhero.as3.GamePreloader} Frame 1Symbol 2 MovieClip
"intro"Symbol 29 MovieClip {com.gamezhero.as3.GamePreloader} Frame 1Symbol 28 MovieClip {bulletchaos_final_fla.gameZheroPreloader_599}
"b"Symbol 34 MovieClip {classes.gamezhero.FlashChecker} Frame 1Symbol 31 Button
"enemyHitArea"Symbol 162 MovieClip {boss_skin} Frame 1Symbol 161 MovieClip
"enemyHitArea"Symbol 166 MovieClip {bombardier_skin} Frame 1Symbol 165 MovieClip
"enemyHitArea"Symbol 168 MovieClip {enemy_bullet_skin} Frame 1Symbol 161 MovieClip
"enemyHitArea"Symbol 175 MovieClip {enemy_mine_skin} Frame 1Symbol 161 MovieClip
"enemyHitArea"Symbol 187 MovieClip {EnemyBoss_5_part} Frame 1Symbol 186 MovieClip
"enemyHitArea"Symbol 194 MovieClip {EnemyBoss_5} Frame 1Symbol 191 MovieClip
"cont1"Symbol 194 MovieClip {EnemyBoss_5} Frame 1Symbol 193 MovieClip
"cont2"Symbol 194 MovieClip {EnemyBoss_5} Frame 1Symbol 193 MovieClip
"g10"Symbol 197 MovieClip {sources.GateAnimation} Frame 1Symbol 196 MovieClip
"g9"Symbol 197 MovieClip {sources.GateAnimation} Frame 1Symbol 196 MovieClip
"g8"Symbol 197 MovieClip {sources.GateAnimation} Frame 1Symbol 196 MovieClip
"g7"Symbol 197 MovieClip {sources.GateAnimation} Frame 1Symbol 196 MovieClip
"g6"Symbol 197 MovieClip {sources.GateAnimation} Frame 1Symbol 196 MovieClip
"g5"Symbol 197 MovieClip {sources.GateAnimation} Frame 1Symbol 196 MovieClip
"g4"Symbol 197 MovieClip {sources.GateAnimation} Frame 1Symbol 196 MovieClip
"g3"Symbol 197 MovieClip {sources.GateAnimation} Frame 1Symbol 196 MovieClip
"g2"Symbol 197 MovieClip {sources.GateAnimation} Frame 1Symbol 196 MovieClip
"g1"Symbol 197 MovieClip {sources.GateAnimation} Frame 1Symbol 196 MovieClip
"wave_tx"Symbol 200 MovieClip {sources.TextWave} Frame 1Symbol 199 EditableText
"enemyHitArea"Symbol 204 MovieClip {EnemyBoss_6} Frame 1Symbol 161 MovieClip
"cont1"Symbol 204 MovieClip {EnemyBoss_6} Frame 1Symbol 193 MovieClip
"cont2"Symbol 204 MovieClip {EnemyBoss_6} Frame 1Symbol 193 MovieClip
"cont3"Symbol 204 MovieClip {EnemyBoss_6} Frame 1Symbol 193 MovieClip
"cont4"Symbol 204 MovieClip {EnemyBoss_6} Frame 1Symbol 193 MovieClip
"cont5"Symbol 204 MovieClip {EnemyBoss_6} Frame 1Symbol 193 MovieClip
"cont6"Symbol 204 MovieClip {EnemyBoss_6} Frame 1Symbol 193 MovieClip
"cont7"Symbol 204 MovieClip {EnemyBoss_6} Frame 1Symbol 193 MovieClip
"cont8"Symbol 204 MovieClip {EnemyBoss_6} Frame 1Symbol 193 MovieClip
"enemyHitArea"Symbol 208 MovieClip {EnemyBoss_6_part} Frame 1Symbol 161 MovieClip
"line"Symbol 215 MovieClip {armourLine} Frame 1Symbol 210 MovieClip
"enemyHitArea"Symbol 220 MovieClip {EnemyLevelXIV} Frame 1Symbol 219 MovieClip
"summary_tx"Symbol 232 MovieClip {bulletchaos_final_fla.HSWeaponInfo_107} Frame 1Symbol 226 EditableText
"weapon_name_tx"Symbol 232 MovieClip {bulletchaos_final_fla.HSWeaponInfo_107} Frame 1Symbol 228 EditableText
"weapon_cost_tx"Symbol 232 MovieClip {bulletchaos_final_fla.HSWeaponInfo_107} Frame 1Symbol 230 EditableText
"HSsaleWeapons"Symbol 243 MovieClip {bulletchaos_final_fla.HSWeaponForSale_108} Frame 1Symbol 235 MovieClip
"totallevel_tx"Symbol 252 MovieClip {bulletchaos_final_fla.level_info_113} Frame 1Symbol 249 EditableText
"level_txt"Symbol 252 MovieClip {bulletchaos_final_fla.level_info_113} Frame 1Symbol 251 EditableText
"weaponLevelInfo"Symbol 279 MovieClip {bulletchaos_final_fla.HSinfoPanel_112} Frame 1Symbol 252 MovieClip {bulletchaos_final_fla.level_info_113}
"weapon_name_tx"Symbol 279 MovieClip {bulletchaos_final_fla.HSinfoPanel_112} Frame 1Symbol 253 EditableText
"sale_btn"Symbol 279 MovieClip {bulletchaos_final_fla.HSinfoPanel_112} Frame 1Symbol 257 MovieClip
"weapon_upgrade_btn"Symbol 279 MovieClip {bulletchaos_final_fla.HSinfoPanel_112} Frame 1Symbol 259 MovieClip
"upgrade_cost_tx"Symbol 279 MovieClip {bulletchaos_final_fla.HSinfoPanel_112} Frame 1Symbol 260 EditableText
"weapon_info_tx"Symbol 279 MovieClip {bulletchaos_final_fla.HSinfoPanel_112} Frame 1Symbol 261 EditableText
"weapon_rate_tx"Symbol 279 MovieClip {bulletchaos_final_fla.HSinfoPanel_112} Frame 1Symbol 262 EditableText
"weapon_speed_tx"Symbol 279 MovieClip {bulletchaos_final_fla.HSinfoPanel_112} Frame 1Symbol 263 EditableText
"weapon_type_tx"Symbol 279 MovieClip {bulletchaos_final_fla.HSinfoPanel_112} Frame 1Symbol 264 EditableText
"sale_cost_tx"Symbol 279 MovieClip {bulletchaos_final_fla.HSinfoPanel_112} Frame 1Symbol 265 EditableText
"weapon_rate_tx_2"Symbol 279 MovieClip {bulletchaos_final_fla.HSinfoPanel_112} Frame 1Symbol 266 EditableText
"weapon_speed_tx_2"Symbol 279 MovieClip {bulletchaos_final_fla.HSinfoPanel_112} Frame 1Symbol 267 EditableText
"weapon_overheat_tx_2"Symbol 279 MovieClip {bulletchaos_final_fla.HSinfoPanel_112} Frame 1Symbol 268 EditableText
"weapon_power_tx"Symbol 279 MovieClip {bulletchaos_final_fla.HSinfoPanel_112} Frame 1Symbol 269 EditableText
"weapon_overheat_tx"Symbol 279 MovieClip {bulletchaos_final_fla.HSinfoPanel_112} Frame 1Symbol 270 EditableText
"currentArmour"Symbol 299 MovieClip {bulletchaos_final_fla.HSArmourIndicator_125} Frame 1Symbol 298 MovieClip
"upgradeHealthBtn"Symbol 309 MovieClip {bulletchaos_final_fla.HScurrentHeroSettings_119} Frame 1Symbol 291 MovieClip
"upgradeArmourBtn"Symbol 309 MovieClip {bulletchaos_final_fla.HScurrentHeroSettings_119} Frame 1Symbol 291 MovieClip
"health_info_tx"Symbol 309 MovieClip {bulletchaos_final_fla.HScurrentHeroSettings_119} Frame 1Symbol 292 EditableText
"buy10"Symbol 309 MovieClip {bulletchaos_final_fla.HScurrentHeroSettings_119} Frame 1Symbol 294 MovieClip
"armourIndicator"Symbol 309 MovieClip {bulletchaos_final_fla.HScurrentHeroSettings_119} Frame 1Symbol 299 MovieClip {bulletchaos_final_fla.HSArmourIndicator_125}
"armour_info_tx"Symbol 309 MovieClip {bulletchaos_final_fla.HScurrentHeroSettings_119} Frame 1Symbol 300 EditableText
"cost1_txt"Symbol 309 MovieClip {bulletchaos_final_fla.HScurrentHeroSettings_119} Frame 1Symbol 302 EditableText
"Acost2_txt"Symbol 309 MovieClip {bulletchaos_final_fla.HScurrentHeroSettings_119} Frame 1Symbol 303 EditableText
"armor_txt"Symbol 309 MovieClip {bulletchaos_final_fla.HScurrentHeroSettings_119} Frame 1Symbol 304 EditableText
"health_txt"Symbol 309 MovieClip {bulletchaos_final_fla.HScurrentHeroSettings_119} Frame 1Symbol 305 EditableText
"Hcost2_txt"Symbol 309 MovieClip {bulletchaos_final_fla.HScurrentHeroSettings_119} Frame 1Symbol 306 EditableText
"armorLevel"Symbol 309 MovieClip {bulletchaos_final_fla.HScurrentHeroSettings_119} Frame 1Symbol 252 MovieClip {bulletchaos_final_fla.level_info_113}
"healthInfo"Symbol 309 MovieClip {bulletchaos_final_fla.HScurrentHeroSettings_119} Frame 1Symbol 252 MovieClip {bulletchaos_final_fla.level_info_113}
"money_tx"Symbol 317 MovieClip {bulletchaos_final_fla.HSPanelHeader_130} Frame 1Symbol 312 EditableText
"play_btn"Symbol 317 MovieClip {bulletchaos_final_fla.HSPanelHeader_130} Frame 1Symbol 316 MovieClip
"infoPanel"Symbol 333 MovieClip {sources.HSPanelContainer} Frame 1Symbol 232 MovieClip {bulletchaos_final_fla.HSWeaponInfo_107}
"weaponForSale"Symbol 333 MovieClip {sources.HSPanelContainer} Frame 1Symbol 243 MovieClip {bulletchaos_final_fla.HSWeaponForSale_108}
"CWInfoPanel"Symbol 333 MovieClip {sources.HSPanelContainer} Frame 1Symbol 279 MovieClip {bulletchaos_final_fla.HSinfoPanel_112}
"currentHeroSettings"Symbol 333 MovieClip {sources.HSPanelContainer} Frame 1Symbol 309 MovieClip {bulletchaos_final_fla.HScurrentHeroSettings_119}
"HSPanelHeader"Symbol 333 MovieClip {sources.HSPanelContainer} Frame 1Symbol 317 MovieClip {bulletchaos_final_fla.HSPanelHeader_130}
"heroB"Symbol 333 MovieClip {sources.HSPanelContainer} Frame 1Symbol 320 MovieClip {heroBody}
"armourCont"Symbol 333 MovieClip {sources.HSPanelContainer} Frame 1Symbol 322 MovieClip
"enemyHitArea"Symbol 340 MovieClip {EnemyLevelII} Frame 1Symbol 161 MovieClip
"enemyHitArea"Symbol 343 MovieClip {EnemyLevelI} Frame 1Symbol 161 MovieClip
"enemyHitArea"Symbol 346 MovieClip {EnemyLevelIII} Frame 1Symbol 161 MovieClip
"enemyHitArea"Symbol 349 MovieClip {EnemyLevelIV} Frame 1Symbol 161 MovieClip
"enemyHitArea"Symbol 354 MovieClip {EnemyLevelIX} Frame 1Symbol 353 MovieClip
"enemyHitArea"Symbol 357 MovieClip {EnemyLevelV} Frame 1Symbol 161 MovieClip
"enemyHitArea"Symbol 362 MovieClip {EnemyLevelVII} Frame 1Symbol 361 MovieClip
"enemyHitArea"Symbol 366 MovieClip {EnemyLevelVIII} Frame 1Symbol 365 MovieClip
"enemyHitArea"Symbol 369 MovieClip {EnemyLevelX} Frame 1Symbol 161 MovieClip
"enemyHitArea"Symbol 374 MovieClip {EnemyLevelXI} Frame 1Symbol 373 MovieClip
"enemyHitArea"Symbol 379 MovieClip {EnemyLevelXII} Frame 1Symbol 378 MovieClip
"enemyHitArea"Symbol 384 MovieClip {EnemyLevelXIII} Frame 1Symbol 383 MovieClip
"enemyHitArea"Symbol 389 MovieClip {EnemyLevelXV} Frame 1Symbol 388 MovieClip
"mc"Symbol 391 MovieClip {bulletchaos_final_fla.demo1_30} Frame 1Symbol 390 MovieClip
"mc"Symbol 392 MovieClip {bulletchaos_final_fla.demo2_54} Frame 1Symbol 390 MovieClip
"mc"Symbol 393 MovieClip {bulletchaos_final_fla.demo3_55} Frame 1Symbol 390 MovieClip
"mc"Symbol 394 MovieClip {bulletchaos_final_fla.demo4_56} Frame 1Symbol 390 MovieClip
"mc"Symbol 395 MovieClip {bulletchaos_final_fla.demo5_57} Frame 1Symbol 390 MovieClip
"fon"Symbol 397 MovieClip {sources.Animals} Frame 1Symbol 396 MovieClip
"GMContainer"Symbol 405 MovieClip {sources.gameSprite} Frame 1Symbol 404 MovieClip {sources.GameContainer}
"gameBackGround"Symbol 408 MovieClip {sources.gameSection} Frame 1Symbol 406 MovieClip {GameBackGround}
"gameSprite"Symbol 408 MovieClip {sources.gameSection} Frame 1Symbol 405 MovieClip {sources.gameSprite}
"topContainer"Symbol 408 MovieClip {sources.gameSection} Frame 1Symbol 407 MovieClip
"kbModeBtn"Symbol 414 MovieClip {sources.ChoosePanel} Frame 1Symbol 413 MovieClip {kbModeBut}
"msModeBtn"Symbol 414 MovieClip {sources.ChoosePanel} Frame 1Symbol 411 MovieClip {msModeBut}
"chSaver"Symbol 422 MovieClip {bulletchaos_final_fla.setDontShow_75} Frame 1Symbol 420 MovieClip {bulletchaos_final_fla.chooseSaver_76}
"cursor"Symbol 446 MovieClip {bulletchaos_final_fla.help_77} Frame 1Symbol 429 MovieClip
"playAgain"Symbol 447 MovieClip {sources.GameHelp} Frame 1Symbol 415 MovieClip {sources.Buttons.PlayButton}
"setDontShow"Symbol 447 MovieClip {sources.GameHelp} Frame 1Symbol 422 MovieClip {bulletchaos_final_fla.setDontShow_75}
"boundingBox_mc"Symbol 461 MovieClip {fl.video.FLVPlayback} Frame 1Symbol 457 MovieClip
"btnHitArea"Symbol 470 MovieClip {sources.Buttons.SDSlow_btn} Frame 1Symbol 469 MovieClip
"btnHitArea"Symbol 473 MovieClip {sources.Buttons.SDMedium_btn} Frame 1Symbol 469 MovieClip
"btnHitArea"Symbol 476 MovieClip {sources.Buttons.SDFast_btn} Frame 1Symbol 469 MovieClip
"mac_btn"Symbol 530 MovieClip {sources.Menu.MainMenu} Frame 1Symbol 519 Button {sources.Buttons.DL_Mac_btn}
"win_btn"Symbol 530 MovieClip {sources.Menu.MainMenu} Frame 1Symbol 523 Button {sources.Buttons.DL_Win_btn}
"linux_btn"Symbol 530 MovieClip {sources.Menu.MainMenu} Frame 1Symbol 529 Button {sources.Buttons.DL_Linux_btn}
"mc"Symbol 533 MovieClip {bulletchaos_final_fla.demo_good1_93} Frame 1Symbol 532 MovieClip
"fon"Symbol 535 MovieClip {AnimalsGood} Frame 1Symbol 534 MovieClip
"stars"Symbol 549 MovieClip {sources.LevelComplete} Frame 1Symbol 548 MovieClip {bulletchaos_final_fla.stars_97}
"playAgain"Symbol 559 MovieClip {sources.LostLevel} Frame 1Symbol 552 MovieClip {sources.Buttons.GO_PlayAgain_btn}
"stars"Symbol 559 MovieClip {sources.LostLevel} Frame 1Symbol 558 MovieClip
"enemyHitArea"Symbol 566 MovieClip {EnemyLevelVI} Frame 1Symbol 161 MovieClip
"enemyHitArea"Symbol 568 MovieClip {planet_skin} Frame 1Symbol 161 MovieClip
"cont1"Symbol 568 MovieClip {planet_skin} Frame 1Symbol 193 MovieClip
"cont2"Symbol 568 MovieClip {planet_skin} Frame 1Symbol 193 MovieClip
"cont3"Symbol 568 MovieClip {planet_skin} Frame 1Symbol 193 MovieClip
"cont4"Symbol 568 MovieClip {planet_skin} Frame 1Symbol 193 MovieClip
"line"Symbol 766 MovieClip {healthLine} Frame 1Symbol 210 MovieClip
"line"Symbol 775 MovieClip {bulletchaos_final_fla.bossLine_261} Frame 1Symbol 210 MovieClip
"indicator_tx"Symbol 776 MovieClip {ScoreIndicator} Frame 1Symbol 771 EditableText
"goal_tx"Symbol 776 MovieClip {ScoreIndicator} Frame 1Symbol 772 EditableText
"bossLine"Symbol 776 MovieClip {ScoreIndicator} Frame 1Symbol 775 MovieClip {bulletchaos_final_fla.bossLine_261}
"wNumber_tx"Symbol 781 MovieClip {bulletchaos_final_fla.indicatorText_266} Frame 1Symbol 780 EditableText
"wLine1"Symbol 782 MovieClip {warnIndicator} Frame 1Symbol 777 MovieClip
"ndActive"Symbol 782 MovieClip {warnIndicator} Frame 1Symbol 778 MovieClip {bulletchaos_final_fla.wIndicatorActive_265}
"numberW"Symbol 782 MovieClip {warnIndicator} Frame 1Symbol 781 MovieClip {bulletchaos_final_fla.indicatorText_266}
"wActive"Symbol 789 MovieClip {sources.HSWFSThumb} Frame 1Symbol 787 MovieClip
"weaponPrice_tx"Symbol 789 MovieClip {sources.HSWFSThumb} Frame 1Symbol 788 EditableText
"actPlace"Symbol 794 MovieClip {sources.HSweaponPlace} Frame 1Symbol 793 MovieClip
"enemyHitArea"Symbol 836 MovieClip {EnemyBoss_1} Frame 1Symbol 161 MovieClip
"enemyHitArea"Symbol 841 MovieClip {EnemyBoss_2} Frame 1Symbol 840 MovieClip
"enemyHitArea"Symbol 846 MovieClip {EnemyBoss_4} Frame 1Symbol 845 MovieClip
"blick"Symbol 1015 MovieClip {sources.Buttons.UI_SimpleBtn_Logo} Frame 1Symbol 1010 MovieClip {bulletchaos_final_fla.z_2_378}
"blick2"Symbol 1015 MovieClip {sources.Buttons.UI_SimpleBtn_Logo} Frame 1Symbol 1014 MovieClip {bulletchaos_final_fla.blick_380}
"btnHitArea"Symbol 1015 MovieClip {sources.Buttons.UI_SimpleBtn_Logo} Frame 1Symbol 469 MovieClip
"blick2"Symbol 1019 MovieClip {sources.Buttons.UI_SimpleBtn_Continue} Frame 1Symbol 1018 MovieClip {bulletchaos_final_fla.blickcopy_382}
"btnHitArea"Symbol 1019 MovieClip {sources.Buttons.UI_SimpleBtn_Continue} Frame 1Symbol 469 MovieClip
"blick2"Symbol 1020 MovieClip {sources.Buttons.UI_SimpleBtn_Menu} Frame 1Symbol 1018 MovieClip {bulletchaos_final_fla.blickcopy_382}
"btnHitArea"Symbol 1020 MovieClip {sources.Buttons.UI_SimpleBtn_Menu} Frame 1Symbol 469 MovieClip
"blick2"Symbol 1024 MovieClip {sources.Buttons.UI_SimpleBtn_Sound} Frame 1Symbol 1018 MovieClip {bulletchaos_final_fla.blickcopy_382}
"btnHitArea"Symbol 1024 MovieClip {sources.Buttons.UI_SimpleBtn_Sound} Frame 1Symbol 469 MovieClip
"blick2"Symbol 1027 MovieClip {sources.Buttons.UI_SimpleBtn_Music} Frame 1Symbol 1018 MovieClip {bulletchaos_final_fla.blickcopy_382}
"btnHitArea"Symbol 1027 MovieClip {sources.Buttons.UI_SimpleBtn_Music} Frame 1Symbol 469 MovieClip
"ZLogo"Symbol 1031 MovieClip {sources.Menu.PauseMenu} Frame 1Symbol 1015 MovieClip {sources.Buttons.UI_SimpleBtn_Logo}
"ResumeBtn"Symbol 1031 MovieClip {sources.Menu.PauseMenu} Frame 1Symbol 1019 MovieClip {sources.Buttons.UI_SimpleBtn_Continue}
"GoMain"Symbol 1031 MovieClip {sources.Menu.PauseMenu} Frame 1Symbol 1020 MovieClip {sources.Buttons.UI_SimpleBtn_Menu}
"txt"Symbol 1031 MovieClip {sources.Menu.PauseMenu} Frame 1Symbol 1030 EditableText
"task_tx"Symbol 1034 MovieClip {bulletchaos_final_fla.taskMc_tx_388} Frame 1Symbol 1033 EditableText
"taskMc_tx"Symbol 1035 MovieClip {sources.TaskViewer} Frame 1Symbol 1034 MovieClip {bulletchaos_final_fla.taskMc_tx_388}
"enemyHitArea"Symbol 1232 MovieClip {EnemyLevelVI_b} Frame 1Symbol 161 MovieClip
"enemyHitArea"Symbol 1235 MovieClip {EnemyLevelII_b} Frame 1Symbol 161 MovieClip
"enemyHitArea"Symbol 1238 MovieClip {EnemyLevelII_s} Frame 1Symbol 161 MovieClip
"enemyHitArea"Symbol 1295 MovieClip {EnemyLevelVI_star} Frame 1Symbol 1294 MovieClip
"enemyHitArea"Symbol 1303 MovieClip {b6_p1} Frame 1Symbol 161 MovieClip
"enemyHitArea"Symbol 1306 MovieClip {b6_p2} Frame 1Symbol 161 MovieClip
"enemyHitArea"Symbol 1309 MovieClip {b6_p3} Frame 1Symbol 161 MovieClip
"enemyHitArea"Symbol 1311 MovieClip {b6_p4} Frame 1Symbol 161 MovieClip
"mus_switch"Symbol 1349 MovieClip {sources.MainContainer} Frame 1Symbol 492 MovieClip {bulletchaos_final_fla.btn_music_20}
"snd_switch"Symbol 1349 MovieClip {sources.MainContainer} Frame 1Symbol 496 MovieClip {bulletchaos_final_fla.btn_sound_23}
"stop_play_switch"Symbol 1349 MovieClip {sources.MainContainer} Frame 1Symbol 500 MovieClip {bulletchaos_final_fla.btn_stop_play_25}

Special Tags

FileAttributes (69)Timeline Frame 1Access local files only, Metadata not present, AS3.
Protect (24)Timeline Frame 10 bytes ""
EnableDebugger2 (64)Timeline Frame 131 bytes "..$1$UU$vXyJwg/qYJvLFGkBHgpAs.."

Labels

"stopFrame"Symbol 28 MovieClip {bulletchaos_final_fla.gameZheroPreloader_599} Frame 36
"open"Symbol 84 MovieClip {main.view.components.UI_Gate} Frame 1
"opened"Symbol 84 MovieClip {main.view.components.UI_Gate} Frame 36
"close"Symbol 84 MovieClip {main.view.components.UI_Gate} Frame 41
"gnash"Symbol 84 MovieClip {main.view.components.UI_Gate} Frame 82
"gnash over"Symbol 84 MovieClip {main.view.components.UI_Gate} Frame 83
"closed"Symbol 84 MovieClip {main.view.components.UI_Gate} Frame 87
"AnimStart"Symbol 197 MovieClip {sources.GateAnimation} Frame 1
"AnimMiddle"Symbol 197 MovieClip {sources.GateAnimation} Frame 2
"AnimStop"Symbol 197 MovieClip {sources.GateAnimation} Frame 25
"NOT_SAVE"Symbol 420 MovieClip {bulletchaos_final_fla.chooseSaver_76} Frame 1
"SAVE"Symbol 420 MovieClip {bulletchaos_final_fla.chooseSaver_76} Frame 2
"on"Symbol 1024 MovieClip {sources.Buttons.UI_SimpleBtn_Sound} Frame 1
"off"Symbol 1024 MovieClip {sources.Buttons.UI_SimpleBtn_Sound} Frame 2
"on"Symbol 1027 MovieClip {sources.Buttons.UI_SimpleBtn_Music} Frame 1
"off"Symbol 1027 MovieClip {sources.Buttons.UI_SimpleBtn_Music} Frame 2
"select"Symbol 1349 MovieClip {sources.MainContainer} Frame 1
"MenuLable"Symbol 1349 MovieClip {sources.MainContainer} Frame 6
"GameHelp"Symbol 1349 MovieClip {sources.MainContainer} Frame 11
"ChooseModeLable"Symbol 1349 MovieClip {sources.MainContainer} Frame 17
"GameLable"Symbol 1349 MovieClip {sources.MainContainer} Frame 23
"GameOver"Symbol 1349 MovieClip {sources.MainContainer} Frame 31
"LevelComplete"Symbol 1349 MovieClip {sources.MainContainer} Frame 39
"LevelLost"Symbol 1349 MovieClip {sources.MainContainer} Frame 48
"Victory"Symbol 1349 MovieClip {sources.MainContainer} Frame 57
"ShopLable"Symbol 1349 MovieClip {sources.MainContainer} Frame 67
"ChooseLevel"Symbol 1349 MovieClip {sources.MainContainer} Frame 74
"arch"Symbol 1349 MovieClip {sources.MainContainer} Frame 75




http://swfchan.com/19/90623/info.shtml
Created: 28/3 -2019 07:52:00 Last modified: 28/3 -2019 07:52:00 Server time: 05/05 -2024 12:51:34