Frame 1
var LOCAL = true;
var domXML = new XML();
if (LOCAL) {
gotoAndPlay (2);
} else {
domXML.load("http://www.cartoonnetwork.com/crossdomain.xml");
}
domXML.onLoad = function () {
if (domXML.childNodes.length == 0) {
getURL ("http://www.cartoonnetwork.com");
stop();
} else {
gotoAndPlay (2);
}
};
stop();
Frame 2
function loadGame() {
var _local2 = Math.floor((_root.getBytesLoaded() / _root.getBytesTotal()) * 100);
if (_local2 > 1) {
preload_mc.gotoAndStop(20 + _local2);
preload_mc.counter_txt.text = _local2 + "%";
}
if (_local2 >= 100) {
clearInterval(loadInt);
gotoAndPlay ("start");
}
}
loadInt = setInterval(loadGame, 50);
stop();
Frame 11
stop();
Frame 23
stop();
Symbol 20 MovieClip [door_n] Frame 2
stop();
Symbol 20 MovieClip [door_n] Frame 5
stop();
Symbol 20 MovieClip [door_n] Frame 14
stop();
Symbol 29 MovieClip [door_e] Frame 2
stop();
Symbol 29 MovieClip [door_e] Frame 5
stop();
Symbol 29 MovieClip [door_e] Frame 14
stop();
Symbol 34 MovieClip [door_w] Frame 2
stop();
Symbol 34 MovieClip [door_w] Frame 5
stop();
Symbol 34 MovieClip [door_w] Frame 14
stop();
Symbol 39 MovieClip Frame 2
stop();
Symbol 45 MovieClip [door_hamster] Frame 1
stop();
Symbol 45 MovieClip [door_hamster] Frame 39
stop();
Symbol 54 MovieClip [door_s] Frame 2
stop();
Symbol 54 MovieClip [door_s] Frame 5
stop();
Symbol 109 MovieClip Frame 20
stop();
Symbol 109 MovieClip Frame 120
stop();
Symbol 198 MovieClip Frame 1
stop();
Symbol 198 MovieClip Frame 30
gotoAndStop (1);
Symbol 202 MovieClip Frame 1
stop();
Symbol 202 MovieClip Frame 40
this.gotoAndStop(1);
Symbol 206 MovieClip Frame 1
stop();
Symbol 210 MovieClip Frame 1
stop();
Symbol 211 MovieClip Frame 1
stop();
Symbol 220 MovieClip Frame 1
stop();
Symbol 225 MovieClip Frame 1
stop();
Symbol 234 MovieClip Frame 1
stop();
Symbol 234 MovieClip Frame 9
stop();
Symbol 234 MovieClip Frame 20
stop();
Symbol 238 Button
on (release) {
_parent.play();
}
on (rollOver) {
startMC.gotoAndPlay("rollover");
}
on (rollOut) {
startMC.gotoAndPlay("rollout");
}
Symbol 246 MovieClip Frame 1
stop();
Symbol 246 MovieClip Frame 9
stop();
Symbol 246 MovieClip Frame 20
stop();
Symbol 247 Button
on (release) {
_parent.play();
}
on (rollOver) {
playMC.gotoAndPlay("rollover");
}
on (rollOut) {
playMC.gotoAndPlay("rollout");
}
Symbol 262 Button
on (release) {
stopAllSounds();
_parent.play();
}
on (rollOver) {
playMC.gotoAndPlay("rollover");
}
on (rollOut) {
playMC.gotoAndPlay("rollout");
}
Symbol 270 MovieClip Frame 501
_parent.play();
Symbol 270 MovieClip Frame 520
stop();
Symbol 276 MovieClip Frame 1
stop();
Symbol 276 MovieClip Frame 9
stop();
Symbol 276 MovieClip Frame 20
stop();
Symbol 277 Button
on (release) {
_parent._parent.gb.continueFromHere();
_parent.gotoAndStop(1);
}
on (rollOver) {
playMC.gotoAndPlay("rollover");
}
on (rollOut) {
playMC.gotoAndPlay("rollout");
}
Symbol 286 MovieClip Frame 1
stop();
Symbol 286 MovieClip Frame 9
stop();
Symbol 286 MovieClip Frame 20
stop();
Symbol 287 Button
on (release) {
vidClip.stop();
gotoAndPlay ("win_in");
}
on (rollOver) {
skipMC.gotoAndPlay("rollover");
}
on (rollOut) {
skipMC.gotoAndPlay("rollout");
}
Symbol 293 MovieClip Frame 1
stop();
Symbol 294 Button
on (release) {
_parent._parent.gb.startFromZero();
_parent.gotoAndStop(1);
}
on (rollOver) {
playMC.gotoAndPlay("rollover");
}
on (rollOut) {
playMC.gotoAndPlay("rollout");
}
Symbol 296 MovieClip Frame 1
Symbol 296 MovieClip Frame 254
stop();
Symbol 297 MovieClip Frame 12
stop();
Symbol 297 MovieClip Frame 25
stop();
Symbol 297 MovieClip Frame 38
stop();
Symbol 297 MovieClip Frame 39
stopAllSounds();
_parent.gotoAndStop("startGame");
Symbol 297 MovieClip Frame 50
stop();
Symbol 297 MovieClip Frame 59
Symbol 297 MovieClip Frame 71
stop();
Symbol 297 MovieClip Frame 84
_parent._parent.gb.loadVideoTracker();
MovieClip(vidClip.getVideoPlayer(vidClip.activeVideoPlayerIndex))._video.smoothing = true;
Symbol 297 MovieClip Frame 86
if ((vidClip.state == "stopped") || (vidClip.state == "connectionError")) {
gotoAndPlay ("win_in");
} else {
gotoAndPlay (85);
}
Symbol 297 MovieClip Frame 99
winCard.score.text = _parent.gb._totalScore;
Symbol 297 MovieClip Frame 111
stop();
Symbol 297 MovieClip Frame 133
stop();
Symbol 297 MovieClip Frame 155
_parent.gb.startGameEngine();
stop();
Symbol 310 MovieClip [explosion] Frame 10
stop();
Symbol 315 MovieClip [VideoPlayer] Frame 1
#initclip 32
Object.registerClass("VideoPlayer", mx.video.VideoPlayer);
#endinitclip
Symbol 319 MovieClip [FLVPlayback] Frame 1
#initclip 33
Object.registerClass("FLVPlayback", mx.video.FLVPlayback);
#endinitclip
stop();
Symbol 778 MovieClip [hamster0] Frame 1
stop();
Symbol 837 MovieClip [hamster1] Frame 1
stop();
Symbol 852 MovieClip [bullet] Frame 1
stop();
Symbol 983 MovieClip [callout] Frame 2
stop();
Symbol 983 MovieClip [callout] Frame 101
stop();
Symbol 983 MovieClip [callout] Frame 201
stop();
Symbol 983 MovieClip [callout] Frame 301
stop();
Symbol 983 MovieClip [callout] Frame 401
stop();
Symbol 989 MovieClip [noGrenade] Frame 1
stop();
Symbol 989 MovieClip [noGrenade] Frame 8
stop();
Symbol 1009 MovieClip [pickup_health] Frame 19
gotoAndPlay (1);
Symbol 1009 MovieClip [pickup_health] Frame 40
stop();
Symbol 1012 MovieClip [scorePop] Frame 1
stop();
Symbol 1012 MovieClip [scorePop] Frame 27
stop();
Symbol 1018 MovieClip [bossBar] Frame 1
stop();
Symbol 1141 MovieClip Frame 1
stop();
Symbol 1445 MovieClip Frame 1
stop();
Symbol 1489 MovieClip Frame 1
stop();
Instance of Symbol 319 MovieClip [FLVPlayback] in Symbol 1489 MovieClip Frame 3
//component parameters
onClipEvent (construct) {
autoPlay = true;
autoRewind = true;
autoSize = false;
bufferTime = 0.1;
contentPath = "";
isLive = false;
maintainAspectRatio = true;
skin = "";
skinAutoHide = false;
totalTime = 0;
volume = 100;
}
Symbol 1492 MovieClip [__Packages.GameBoard] Frame 0
class GameBoard extends MovieClip
{
var _boundsList, _parent, _quality, _paused, _enemyGrabSide, _cheatKeys, _keyListener, _scrollInterval, _levelData, _screensMC, _scorePopMC, _calloutMC, _noGrenadeMC, _time, _msgRoute, attachMovie, _hero, _lineMC, _enemyList, _levelIndex, _nextLevelIndex, _totalScore, _bulletMachine, soundMC, createEmptyMovieClip, _soundModule, _playField, _fleeField, onMouseUp, _bg, _grenadeTimerMC, _START_ENEMIES, _START_OPS, _nodeMap, _doors, _levelOver, _allMCs, _levelScore, _levelStartTime, onEnterFrame, _markerX, _markerY, _pickupX, _pickupY, _operativeList, _levelBonus, _prevEnemyList, _newBG, _scrollVX, _scrollVY, _bgRect;
function GameBoard () {
super();
loadTracker();
_boundsList = [_parent.bounds_n, _parent.bounds_e, _parent.bounds_s, _parent.bounds_w];
_quality = "low";
_paused = false;
_enemyGrabSide = 0;
_cheatKeys = true;
if (_cheatKeys == true) {
Key.addListener(this);
}
_keyListener = {};
_scrollInterval = {};
_global.MSG_Run = 0;
_global.MSG_ThrowStart = 1;
_global.MSG_BulletHit = 2;
_global.MSG_Stop = 3;
_global.MSG_Hit = 4;
_global.MSG_TargetCaught = 5;
_global.MSG_Run2 = 6;
_global.MSG_Run3 = 7;
_global.MSG_Unzombify = 8;
_global.MSG_Zombify = 9;
_global.MSG_ThrowEnd = 10;
_global.MSG_NextState = 11;
_levelData = [];
_levelData[0] = {type:"zombie", numEnemies:8, numOps:4, bg:0, pickup:0, marker:0};
_levelData[1] = {type:"zombie", numEnemies:8, numOps:3, bg:1, pickup:0, marker:0};
_levelData[2] = {type:"zombie", numEnemies:9, numOps:5, bg:2, pickup:0, marker:0};
_levelData[3] = {type:"zombie", numEnemies:10, numOps:6, bg:3, pickup:0, marker:0};
_levelData[4] = {type:"zombie", numEnemies:11, numOps:6, bg:4, pickup:0, marker:0};
_levelData[5] = {type:"zombie", numEnemies:12, numOps:6, bg:5, pickup:0, marker:0};
_levelData[6] = {type:"zombie", numEnemies:13, numOps:7, bg:6, pickup:0, marker:0};
_levelData[7] = {type:"zombie", numEnemies:13, numOps:6, bg:7, pickup:0, marker:0};
_levelData[8] = {type:"cooldown", numEnemies:0, numOps:0, bg:9, pickup:1, marker:1};
_levelData[9] = {type:"hamsters", numEnemies:0, numOps:0, bg:10, pickup:0, marker:0};
_levelData[10] = {type:"zombie", numEnemies:14, numOps:8, bg:2, pickup:0, marker:0};
_levelData[11] = {type:"zombie", numEnemies:14, numOps:7, bg:3, pickup:0, marker:0};
_levelData[12] = {type:"zombie", numEnemies:14, numOps:6, bg:4, pickup:0, marker:0};
_levelData[13] = {type:"zombie", numEnemies:15, numOps:7, bg:5, pickup:0, marker:0};
_levelData[14] = {type:"zombie", numEnemies:15, numOps:6, bg:6, pickup:0, marker:0};
_levelData[15] = {type:"zombie", numEnemies:15, numOps:5, bg:7, pickup:0, marker:0};
_levelData[16] = {type:"zombie", numEnemies:16, numOps:8, bg:8, pickup:0, marker:0};
_levelData[17] = {type:"zombie", numEnemies:16, numOps:7, bg:0, pickup:0, marker:0};
_levelData[18] = {type:"zombie", numEnemies:16, numOps:6, bg:1, pickup:0, marker:0};
_levelData[19] = {type:"zombie", numEnemies:16, numOps:5, bg:2, pickup:0, marker:0};
_levelData[20] = {type:"hamsters", numEnemies:0, numOps:0, bg:10, pickup:0, marker:0};
_levelData[21] = {type:"cooldown", numEnemies:0, numOps:0, bg:9, pickup:1, marker:3};
_levelData[22] = {type:"toilenator", numEnemies:0, numOps:0, bg:11, pickup:0, marker:0};
_levelData[23] = {type:"zombie", numEnemies:17, numOps:9, bg:0, pickup:0, marker:0};
_levelData[24] = {type:"zombie", numEnemies:17, numOps:8, bg:1, pickup:0, marker:0};
_levelData[25] = {type:"zombie", numEnemies:17, numOps:7, bg:2, pickup:0, marker:0};
_levelData[26] = {type:"zombie", numEnemies:17, numOps:6, bg:3, pickup:0, marker:0};
_levelData[27] = {type:"zombie", numEnemies:17, numOps:5, bg:4, pickup:0, marker:0};
_levelData[28] = {type:"zombie", numEnemies:18, numOps:9, bg:5, pickup:0, marker:0};
_levelData[29] = {type:"zombie", numEnemies:18, numOps:8, bg:6, pickup:0, marker:0};
_levelData[30] = {type:"zombie", numEnemies:18, numOps:7, bg:7, pickup:0, marker:0};
_levelData[31] = {type:"cooldown", numEnemies:0, numOps:0, bg:9, pickup:1, marker:1};
_levelData[32] = {type:"hamsters", numEnemies:0, numOps:0, bg:10, pickup:0, marker:0};
_levelData[33] = {type:"zombie", numEnemies:19, numOps:10, bg:2, pickup:0, marker:0};
_levelData[34] = {type:"zombie", numEnemies:19, numOps:9, bg:3, pickup:0, marker:0};
_levelData[35] = {type:"zombie", numEnemies:19, numOps:8, bg:4, pickup:0, marker:0};
_levelData[36] = {type:"zombie", numEnemies:20, numOps:10, bg:5, pickup:0, marker:0};
_levelData[37] = {type:"zombie", numEnemies:20, numOps:9, bg:6, pickup:0, marker:0};
_levelData[38] = {type:"zombie", numEnemies:20, numOps:8, bg:7, pickup:0, marker:0};
_levelData[39] = {type:"zombie", numEnemies:21, numOps:9, bg:8, pickup:0, marker:0};
_levelData[40] = {type:"zombie", numEnemies:21, numOps:8, bg:0, pickup:0, marker:0};
_levelData[41] = {type:"zombie", numEnemies:21, numOps:7, bg:1, pickup:0, marker:0};
_levelData[42] = {type:"zombie", numEnemies:22, numOps:7, bg:2, pickup:0, marker:0};
_levelData[43] = {type:"hamsters", numEnemies:0, numOps:0, bg:10, pickup:0, marker:0};
_levelData[44] = {type:"cooldown", numEnemies:0, numOps:0, bg:9, pickup:1, marker:2};
_levelData[45] = {type:"362", numEnemies:0, numOps:0, bg:12, pickup:0, marker:0};
_screensMC = _parent.screens_mc;
_screensMC.swapDepths(1000000);
_scorePopMC = _parent.attachMovie("scorePop", "scorePop", 999900);
_calloutMC = _parent.attachMovie("callout", "callout", 999950);
_noGrenadeMC = _parent.attachMovie("noGrenade", "noGrenade", 999940);
initUIButtons();
_time = new Standard.Time();
_msgRoute = new Standard.Message.MsgRoute(_time);
var _local9 = attachMovie("hero", "hero_mc", 200);
_hero = new Hero(this, _local9);
_lineMC = _parent.createEmptyMovieClip("lineMC", _parent.getNextHighestDepth());
_enemyList = [];
_levelIndex = 0;
_nextLevelIndex = 0;
_totalScore = 0;
_bulletMachine = new BulletMachine(this, _hero, _root, 1000);
soundMC = createEmptyMovieClip("sound_mc", 12000);
_soundModule = new Standard.SoundModule(soundMC);
_global.MUSIC_MUTE = false;
_global.MUSIC_VOL = 50;
var _local6 = ["music_boss", "music_cooldown", "music_lose", "music_win", "music_game0", "music_game1", "music_game2", "music_theme", "footstep1.wav", "footstep2.wav", "footstep3.wav", "footstep4.wav", "footstep5.wav", "footstep6.wav", "numbuh1_shoot1.wav", "numbuh1_shoot2.wav", "numbuh1_shoot3.wav", "break_free_of_zombie.wav", "gets_hit.wav", "grenade_miss_explode.wav", "numbuh1_throw_grenade.wav", "pickup_item1.wav", "grenade_no_ammo.wav", "transform_into_operative.wav", "transform_into_zombie.wav", "toilet_paper_loops.wav", "toilenator_jump.wav", "toilenator_drop_from_top.wav", "zombie_groan1.wav", "zombie_groan2.wav", "zombie_groan3.wav", "zombie_groan4.wav", "zombie_grabs_you1.wav", "zombie_grabs_you2.wav", "zombie_grabs_you3.wav", "boss_death_snds.wav", "hamster_hurt1.wav", "hamster_hurt2.wav", "hamster_hurt3.wav", "hamster_hurt4.wav", "door_unlock_open.wav", "transform_sequence_zombie.wav", "transform_sequence_operative.wav", "362_swing_weapon.wav", "362_wind_loop.wav", "grenade_reload_meter.wav", "button_over.wav", "button_press2.wav"];
var _local5 = 0;
while (_local5 < _local6.length) {
var _local7 = _soundModule.LoadSound(_local6[_local5]);
_local7.attachSound(_local6[_local5]);
_local5++;
}
_playField = new Standard.Geometry.Rect(30, 100, 570, 380);
_fleeField = new Standard.Geometry.Rect(110, 190, 460, 300);
Key.addListener(_hero);
onMouseUp = null;
_soundModule.StopAll();
_global.stopAllSounds();
_bg = _parent._bg;
_bg._y = 0;
var _local8 = _bg.attachMovie("bg" + _levelIndex, "bg" + _levelIndex, _levelIndex);
_local8._y = 0;
_local8.cacheAsBitmap = true;
initDoors(0, 0);
_grenadeTimerMC = _parent.ui.grenadeTimerMC;
initNodeMap();
_START_ENEMIES = _levelData[_levelIndex].numEnemies;
_START_OPS = _levelData[_levelIndex].numOps;
init();
}
function initNodeMap() {
_nodeMap = new Standard.Map.NodeMap();
var _local12 = "0|n|1,3,5|1|n|2,4,6|2|n|8|3|e|2,4|4|e|8|5|h|2,6|6|h|7|7|h|8|8|n|9|";
_local12 = _local12 + "9|n|10,14,17|10|n|11,15,18|11|n|12|12|n|13,16,19|13|n|21|14|e|11,15|15|e|16|16|e|13,21|17|h|11,18|18|h|19|19|h|20|20|n|21|21|n|22|22|n|23|";
_local12 = _local12 + "23|n|24,26,28|24|n|25,27,29|25|n|31|26|e|25,27|27|e|31|28|h|25,29|29|h|30|30|h|31|31|n|32|";
_local12 = _local12 + "32|n|33,37,40|33|n|34,38,41|34|n|35|35|n|36,39,42|36|n|44|37|e|34,38|38|e|39|39|e|36,44|40|h|34,41|41|h|42|42|h|43|43|n|44|44|n|45|45|n|46|";
var _local5 = _local12.split("|");
var _local11 = _local5.length;
var _local4 = 0;
while (_local4 < _local11) {
var _local6 = _local5[_local4];
var _local7 = _local5[_local4 + 1];
var _local3 = _local5[_local4 + 2].split(",");
var _local2 = 0;
while (_local2 < _local3.length) {
_local3[_local2] = parseInt(_local3[_local2]);
_local2++;
}
_nodeMap.addNode({id:_local6, diff:_local7, links:_local3});
_local4 = _local4 + 3;
}
}
function initDoors(x, y) {
var _local7;
var _local6 = _levelData[_nextLevelIndex];
if (_local6.type == "hamsters") {
_local7 = _bg.attachMovie("door_hamster", "door_n" + _nextLevelIndex, 50000 + _levelIndex);
} else {
_local7 = _bg.attachMovie("door_n", "door_n" + _nextLevelIndex, 50000 + _levelIndex);
}
var _local10 = _bg.attachMovie("door_e", "door_e" + _nextLevelIndex, 50001 + _levelIndex);
var _local8 = _bg.attachMovie("door_s", "door_s" + _nextLevelIndex, 50002 + _levelIndex);
var _local9 = _bg.attachMovie("door_w", "door_w" + _nextLevelIndex, 50003 + _levelIndex);
var _local11 = _local6.bg;
var _local5 = _parent.attachMovie("roomblock" + _local11, "roomblock" + _nextLevelIndex, 200000 + _nextLevelIndex);
_local5._x = x;
_local5._y = y;
if (_scrollDir != "n") {
_local8.gotoAndStop(5);
}
_doors = [_local7, _local10, _local9, _local8];
for (var _local4 in _doors) {
_doors[_local4].cacheAsBitmap = true;
_doors[_local4]._x = x;
_doors[_local4]._y = y;
}
}
function onKeyUp() {
var _local2 = _nodeMap.getNodeDiff(_levelIndex);
if (Key.getCode() == 80) {
_paused = !_paused;
}
if (Key.getCode() == 50) {
convertAllEnemies();
endLevel("pass", "n");
}
if (Key.getCode() == 49) {
convertAllEnemies();
if (_local2 != "h") {
endLevel("pass", "e");
} else {
endLevel("pass", "n");
}
}
if (Key.getCode() == 51) {
convertAllEnemies();
if (_local2 != "e") {
endLevel("pass", "h");
} else {
endLevel("pass", "n");
}
}
}
function convertAllEnemies() {
var _local3 = _enemyList.length;
while (_local3--) {
_msgRoute.SendMsg(0, _global.MSG_Unzombify, this, _enemyList[_local3], 0, null);
}
}
function init() {
_quality = "low";
_parent["roomblock" + _levelIndex]._visible = false;
_levelOver = false;
playGameMusic();
_screensMC.swapDepths(750000);
_allMCs = [];
_allMCs.push(_hero._mc);
_hero.init();
_hero._mc.swapDepths(100);
if (_levelIndex == 0) {
initEnemies(_START_OPS);
}
_levelScore = 0;
if ((_levelIndex == 0) || (_restart == true)) {
getReadyPause();
_restart = false;
startLevelTimer();
} else {
startGameEngine();
startLevelTimer();
}
}
function playGameMusic() {
var _local2 = _levelData[_nextLevelIndex];
if (_local2.type == "cooldown") {
_soundModule.PlayMusic("cooldown");
} else if (((_local2.type == "hamsters") || (_local2.type == "362")) || (_local2.type == "toilenator")) {
_soundModule.PlayMusic("boss");
} else {
_soundModule.PlayMusic("game" + String(_levelIndex % 3));
}
}
function startLevelTimer() {
_levelStartTime = _time.GetCurTime();
updateLevelTimer();
}
function getReadyPause() {
update();
_calloutMC.gotoAndPlay("getready");
_global.setTimeout(this, "startGameEngine", 3700);
_global.setTimeout(this, "startLevelTimer", 3700);
}
function loadTracker() {
var _local2 = new Date();
var _local3 = _local2.getTime();
_global.loadMovieNum("http://www.cartoonnetwork.com/games/action/knd/outnumbuhd/tracker.swf?" + _local3, 750001);
}
function loadVideoTracker() {
var _local2 = new Date();
var _local3 = _local2.getTime();
_global.loadMovieNum("http://www.cartoonnetwork.com/games/action/knd/outnumbuhd/tracker_video.swf?" + _local3, 750001);
}
function restart() {
stopGameEngine();
_levelOver = false;
_hero.resetHealth();
_restart = true;
_hero.unzombify();
var _local2 = _enemyList.length;
while (_local2--) {
_enemyList[_local2].getNewTarget();
}
getReadyPause();
}
function getRestarted() {
return(_restart);
}
function setRestarted(toSet) {
_restart = toSet;
}
function startFromZero() {
loadTracker();
_levelIndex = 0;
_nextLevelIndex = 0;
_totalScore = 0;
_parent.ui.score.text = _totalScore;
cleanUp();
var _local2 = _bg.attachMovie("bg" + _levelIndex, "bg" + _levelIndex, _levelIndex);
_local2._y = 0;
_local2.cacheAsBitmap = true;
initDoors(0, 0);
initNodeMap();
_START_ENEMIES = _levelData[_levelIndex].numEnemies;
_START_OPS = _levelData[_levelIndex].numOps;
_hero._lives = 3;
_parent.ui.lives.text = _hero._lives;
_hero.init();
_hero.moveTo(300, 220);
init();
}
function continueFromHere() {
loadTracker();
stopGameEngine();
_totalScore = 0;
_parent.ui.score.text = _totalScore;
_hero._lives = 3;
_parent.ui.lives.text = _hero._lives;
_levelOver = false;
_hero.resetHealth();
_restart = true;
_hero.unzombify();
var _local2 = _enemyList.length;
while (_local2--) {
_enemyList[_local2].getNewTarget();
}
playGameMusic();
getReadyPause();
}
function initUIButtons() {
var _local5 = _parent.ui;
var _local3 = _local5.instructionsBtn;
var _local4 = _local5.musicBtn;
_local3.owner = this;
_local3.onRollOver = function () {
this._parent.instructions_mc.gotoAndStop("over");
this.owner._soundModule.PlaySound("button_over.wav");
};
_local3.onRollOut = function () {
this._parent.instructions_mc.gotoAndStop("idle");
};
_local3.onRelease = function () {
this.owner.showInstructions();
this.owner._soundModule.PlaySound("button_press2.wav");
};
_local4.owner = this;
_local4.onRollOver = function () {
if (_global.MUSIC_MUTE) {
this._parent.music_mc.gotoAndStop("musicOff_RO");
} else {
this._parent.music_mc.gotoAndStop("musicOn_RO");
}
this.owner._soundModule.PlaySound("button_over.wav");
};
_local4.onRollOut = function () {
if (_global.MUSIC_MUTE) {
this._parent.music_mc.gotoAndStop("musicOff");
} else {
this._parent.music_mc.gotoAndStop("musicOn");
}
};
_local4.onRelease = function () {
this.owner.muteMusic(!_global.MUSIC_MUTE);
if (_global.MUSIC_MUTE) {
this._parent.music_mc.gotoAndStop("musicOff_RO");
} else {
this._parent.music_mc.gotoAndStop("musicOn_RO");
}
this.owner._soundModule.PlaySound("button_press2.wav");
};
}
function showInstructions() {
stopGameEngine();
_screensMC.gotoAndPlay("instructions_game");
}
function muteMusic(bMute) {
_global.MUSIC_MUTE = bMute;
if (bMute) {
_global.MUSIC_VOL = 0;
} else {
_global.MUSIC_VOL = 50;
}
_soundModule.SetMusicMute(bMute);
if (bMute) {
_parent.ui.musicMC.gotoAndStop("musicOff");
} else {
_parent.ui.musicMC.gotoAndStop("musicOn");
}
}
function startGameEngine() {
onEnterFrame = update;
}
function stopGameEngine() {
onEnterFrame = null;
}
function setNumEnemiesAtStart(n) {
_START_ENEMIES = n;
}
function initMarkers(dir) {
var _local4 = 0;
var _local3 = 0;
if (_nextLevelIndex != 0) {
switch (dir) {
case "n" :
_local4 = 0;
_local3 = -365;
break;
case "w" :
_local4 = -600;
_local3 = 0;
break;
case "e" :
_local4 = 600;
_local3 = 0;
}
}
_markerX = 500;
_markerY = 150;
var _local5;
var _local2 = _levelData[_nextLevelIndex];
if (_local2.marker == 0) {
return(undefined);
}
if (_local2.marker == 1) {
_local5 = "hamster";
} else if (_local2.marker == 2) {
_local5 = "362";
} else if (_local2.marker == 3) {
_local5 = "toilenator";
}
var _local6 = _bg.attachMovie("marker_" + _local5, "marker", 1001);
_local6._x = _markerX + _local4;
_local6._y = _markerY + _local3;
}
function initPickups(dir) {
var _local3 = 0;
var _local2 = 0;
if (_nextLevelIndex != 0) {
switch (dir) {
case "n" :
_local3 = 0;
_local2 = -365;
break;
case "w" :
_local3 = -600;
_local2 = 0;
break;
case "e" :
_local3 = 600;
_local2 = 0;
}
}
var _local4 = _levelData[_nextLevelIndex];
if (_local4.pickup == 0) {
_bg.pickup.removeMovieClip();
} else if (_local4.pickup == 1) {
var _local5 = _bg.attachMovie("pickup_health", "pickup", 1000);
_pickupX = 50 + random(500);
_pickupY = 100 + random(250);
_local5._x = _pickupX + _local3;
_local5._y = _pickupY + _local2;
}
}
function initEnemies(n, dir) {
_enemyList = [];
_operativeList = [];
var _local10 = 0;
var _local9 = 0;
if (_nextLevelIndex != 0) {
switch (dir) {
case "n" :
_local10 = 0;
_local9 = -365;
break;
case "w" :
_local10 = -600;
_local9 = 0;
break;
case "e" :
_local10 = 600;
_local9 = 0;
}
}
var _local12 = _levelData[_nextLevelIndex];
if (_local12.type == "zombie") {
var _local5 = 0;
while (_local5 < _START_ENEMIES) {
var _local14 = attachMovie("Enemy", ("enemy" + _nextLevelIndex) + _local5, (2000 + (10 * _levelIndex)) + _local5);
var _local13 = new Zombie(this, _local14, _hero._mc, _local5, _enemyList);
var _local7 = 0;
var _local8;
var _local6;
while (_local7 < 100) {
_local8 = 50 + random(500);
_local6 = 100 + random(250);
var _local3 = 300 - _local8;
var _local2 = 200 - _local6;
_local7 = Math.sqrt((_local3 * _local3) + (_local2 * _local2));
}
_local13.init(_local10 + _local8, _local9 + _local6);
if (_local5 < n) {
_local13.initAsOperative();
_operativeList.push(_local13);
} else {
_local13.getNewTarget();
}
_enemyList.push(_local13);
_local5++;
}
} else if (_local12.type == "hamsters") {
_hamsterCount = 0;
var _local5 = 0;
while (_local5 < 20) {
var _local14 = attachMovie("hamster" + random(2), ("hamster1" + _nextLevelIndex) + _local5, 100 + _local5);
var _local13 = new Hamster(this, _local14);
_local13.init((24 + _local10) + (29 * _local5), _local9 + 80, true);
_enemyList.push(_local13);
_local5++;
}
var _local4 = 0;
while (_local4 < 20) {
var _local14 = attachMovie("hamster" + random(2), ("hamster2" + _nextLevelIndex) + _local4, 150 + _local4);
var _local13 = new Hamster(this, _local14);
_local13.init((24 + _local10) + (29 * _local4), _local9 + 200, false);
_enemyList.push(_local13);
_local4++;
}
} else if (_local12.type == "362") {
var _local14 = attachMovie("boss362", "boss362", 100);
var _local13 = new Boss_362(this, _local14);
_local13.init(300 + _local10, 200 + _local9);
_enemyList.push(_local13);
} else if (_local12.type == "toilenator") {
_quality = "low";
var _local14 = attachMovie("toilenator", "toilenator", 100);
var _local13 = new Boss_Toilenator(this, _local14);
_local13.init(400 + _local10, 110 + _local9);
_enemyList.push(_local13);
}
}
function update() {
if (_paused == true) {
return(undefined);
}
_lineMC.clear();
_time.MarkTimeThisTick();
_msgRoute.Update();
var _local2 = _enemyList.length;
while (_local2--) {
_enemyList[_local2].update();
}
checkCollisionPickup();
checkCollisions();
if (!_levelOver) {
updateEnemyProximity();
checkLevel();
} else if (_bg[("door_" + _scrollDir) + _levelIndex].hitBox.hitTest(_hero._mc._x, _hero._mc._y, true)) {
if (!_hero.isDead()) {
nextLevel();
}
}
updateGrenadeTimer();
if (!_levelOver) {
updateLevelTimer();
}
_bulletMachine.update();
_hero.update();
}
function updateLevelTimer() {
var _local2 = 150 - Math.floor(_time.GetCurTime() - _levelStartTime);
if (_local2 < 0) {
_local2 = 0;
}
var _local6 = Math.floor(_local2 / 60);
var _local3 = _local2 % 60;
if (_local3 < 10) {
_local3 = "0" + _local3;
}
_parent.ui.timerMC.time.text = (_local6 + ":") + _local3;
if (_local2 < 120) {
_levelBonus = (_bonusMax * _local2) / 120;
} else {
_levelBonus = _bonusMax;
}
if (_levelData[_levelIndex].type == "cooldown") {
_levelBonus = 0;
_parent.ui.timerMC.time.text = "-:--";
_local2 = 150;
}
var _local4;
if (_local2 < 30) {
_local4 = new flash.geom.ColorTransform(1, 1, 1, 1, 0, -200, -200, 0);
} else {
_local4 = new flash.geom.ColorTransform(1, 1, 1, 1, 0, 0, 0, 0);
}
var _local5 = new flash.geom.Transform(_parent.ui.timerMC);
_local5.colorTransform = _local4;
}
function updateGrenadeTimer() {
var _local2 = _bulletMachine.getGrenadeTimer();
_grenadeTimerMC.gotoAndStop(Math.floor((10 * (100 - _local2)) / 100));
}
function flashGrenadeIcon() {
_parent.ui.grenadeIcon.gotoAndPlay("chargeAlert");
_soundModule.PlaySound("grenade_reload_meter.wav");
}
function checkCollisionPickup() {
if (_levelData[_levelIndex].pickup != 0) {
if (_hero._mc.hitArea.hitTest(_bg.pickup.hitBox)) {
_soundModule.PlaySound("pickup_item1.wav");
if (_levelData[_levelIndex].pickup == 1) {
_hero.addHealth(25);
_bg.pickup.gotoAndPlay("pickup");
}
}
}
}
function checkCollisions() {
var _local9 = new Array();
_local9 = _bulletMachine.getBullets();
var _local8 = _enemyList.length;
var _local10 = _local9.length;
var _local6 = 0;
var _local7 = 0;
while (_local7 < _local10) {
var _local4 = _local9[_local7];
var _local5 = 0;
while (_local5 < _local8) {
if (!_local4.getCollActive()) {
} else {
var _local3 = _enemyList[_local5];
if (_local4.getCollObject().circleCollision(_local3.getCollObject())) {
if (_local4 instanceof Grenade) {
if ((_local3 instanceof Hamster) && (_local3._ZOMBIE)) {
_local6++;
_scorePopMC._x = _local4._mc._x;
_scorePopMC._y = _local4._mc._y;
} else if (_local3.isZombie()) {
_local6++;
_scorePopMC._x = _local4._mc._x;
_scorePopMC._y = _local4._mc._y;
}
_msgRoute.SendMsg(0, _global.MSG_Unzombify, null, _local3, 0, null);
} else if (((_local3.isZombie() || (_local3 instanceof Hamster)) || (_local3 instanceof Boss_362)) || (_local3 instanceof Boss_Toilenator)) {
if (_local3 instanceof Hamster) {
if (_local3._ZOMBIE == true) {
_soundModule.PlaySound(("hamster_hurt" + (1 + random(5))) + ".wav", 40);
} else {
return(undefined);
}
}
_msgRoute.SendMsg(0, _global.MSG_BulletHit, null, _local3, 0, _local4.getAngle());
_bulletMachine.recycle(_local4);
}
}
}
_local5++;
}
if ((_local4 instanceof Grenade) && (_local4.getCollActive())) {
_local4.setCollActive(false);
_bulletMachine.remove(_local4);
if (_local6 == 0) {
_soundModule.PlaySound("grenade_miss_explode.wav");
}
}
_local7++;
}
if (_local6 > 0) {
addScore((_local6 * _local6) * 10);
}
}
function updateHamsterMeters() {
var _local2 = 1 + Math.floor((10 * _hamsterCount) / _hamsterQuota);
var _local4 = _bg["door_n" + _levelIndex].meterL;
var _local3 = _bg["door_n" + _levelIndex].meterR;
_local4.gotoAndStop(_local2);
_local3.gotoAndStop(_local2);
}
function addScore(n) {
if (n == 0) {
return(undefined);
}
_totalScore = _totalScore + n;
_parent.ui.score.text = _totalScore;
popUpScore(n);
}
function getScore() {
return(_totalScore);
}
function popUpScore(n) {
_scorePopMC.gotoAndPlay(2);
_scorePopMC.points.point_txt.text = "+" + n;
}
function updateHealthBar(h) {
_parent.ui.healthMC.gotoAndStop(1 + Math.floor((20 * (100 - h)) / 100));
}
function setHealthToZero() {
_parent.ui.healthMC.gotoAndStop(22);
}
function updateEnemyProximity() {
_operativeList = [];
var _local3 = _enemyList.length;
while (_local3--) {
var _local2 = _enemyList[_local3];
_local2.setCentroid();
_local2.updateProximity();
}
}
function updateOpList() {
_operativeList = [];
var _local2 = _enemyList.length;
while (_local2--) {
if (!_enemyList[_local2].isZombie()) {
_operativeList.push(_enemyList[_local2]);
}
}
}
function checkLevel() {
var _local3 = true;
if (_hero.isDead()) {
endLevel("fail");
}
if (_levelData[_levelIndex].type == "zombie") {
var _local2 = _enemyList.length;
while (_local2--) {
if (_enemyList[_local2].isZombie()) {
_local3 = false;
break;
}
}
} else if (_levelData[_levelIndex].type == "hamsters") {
if (_hamsterCount < _hamsterQuota) {
_local3 = false;
} else {
_levelOver = true;
convertHamsters();
}
} else if ((_levelData[_levelIndex].type == "362") || (_levelData[_levelIndex].type == "toilenator")) {
if (!_enemyList[0].isDead()) {
_local3 = false;
}
}
if (_local3) {
var _local4 = _nodeMap.getNodeDiff(_levelIndex);
if (_levelBonus > 3000) {
if (_local4 != "e") {
endLevel("pass", "h");
} else {
endLevel("pass", "n");
}
} else if (_levelBonus > 1000) {
endLevel("pass", _local4);
} else if (_local4 != "h") {
endLevel("pass", "e");
} else {
endLevel("pass", "n");
}
}
}
function convertHamsters() {
var _local3 = _enemyList.length;
while (_local3--) {
_msgRoute.SendMsg(0, _global.MSG_Unzombify, null, _enemyList[_local3], 0);
}
}
function endLevel(stat, diff) {
_levelOver = true;
if (stat == "fail") {
_hero._lives--;
_parent.ui.lives.text = _hero._lives;
if (_hero._lives == 0) {
loseGame();
} else {
_global.setTimeout(this, "restart", 4000);
}
} else {
var _local3 = _nodeMap.getNodeLinks(_levelIndex);
if (_local3.length == 1) {
_nextLevelIndex = _local3[0];
_scrollDir = "n";
} else {
if (_levelData[_levelIndex].type == "hamsters") {
_scrollDir = "n";
} else {
var _local7;
if (_scrollDir == "e") {
_local7 = ["n", "e"];
} else if (_scrollDir == "w") {
_local7 = ["n", "w"];
} else {
_local7 = ["e", "w"];
}
_scrollDir = _local7[random(_local7.length)];
}
var _local6 = diff;
var _local5 = false;
var _local4 = 0;
while (_local4 < _local3.length) {
if (_nodeMap.getNodeDiff(_local3[_local4]) == _local6) {
_nextLevelIndex = _local3[_local4];
_local5 = true;
}
_local4++;
}
if (!_local5) {
_nextLevelIndex = _local3[_local3.length - 1];
}
}
if (_totalScore != _prevScore) {
if (_levelBonus > 3000) {
_calloutMC.gotoAndPlay("great");
} else if (_levelBonus > 1000) {
_calloutMC.gotoAndPlay("soso");
} else {
_calloutMC.gotoAndPlay("poor");
}
}
addScore(Math.floor(_levelBonus));
_bg[("door_" + _scrollDir) + _levelIndex].gotoAndPlay("open");
_soundModule.PlaySound("door_unlock_open.wav", 50);
var _local4 = _prevEnemyList.length;
while (_local4--) {
_prevEnemyList[_local4]._mc.removeMovieClip();
}
}
}
function nextLevel() {
if ((_levelIndex + 1) == _levelData.length) {
winGame();
return(undefined);
}
var _local5 = _bulletMachine.getBullets();
var _local4 = _local5.length;
while (_local4--) {
_bulletMachine.recycle(_local5[_local4]);
}
_prevEnemyList = [];
var _local2 = 0;
while (_local2 < _enemyList.length) {
var _local3 = _enemyList[_local2];
_prevEnemyList.push(_local3);
_local2++;
}
_START_ENEMIES = _levelData[_nextLevelIndex].numEnemies;
_START_OPS = _levelData[_nextLevelIndex].numOps;
initEnemies(_START_OPS, _scrollDir);
initPickups(_scrollDir);
initMarkers(_scrollDir);
_doors[0].swapDepths(100);
_doors[1].swapDepths(120);
_doors[2].swapDepths(130);
_doors[3].swapDepths(140);
_scorePopMC._x = _hero._mc._x;
_scorePopMC._y = _hero._mc._y;
_prevScore = _totalScore;
scrollBG(_scrollDir);
}
function winGamePause() {
_global.setTimeout(this, "winGame", 2000);
}
function winGame() {
addScore(Math.floor(_levelBonus));
_quality = "high";
_screensMC.gotoAndPlay("win_in");
_soundModule.StopAll();
stopGameEngine();
cleanUp();
}
function loseGame() {
_global.setTimeout(this, "showLoseScreen", 3000);
}
function showLoseScreen() {
stopGameEngine();
_screensMC.gotoAndPlay("lose_in");
_soundModule.StopAll();
_soundModule.PlaySound("music_lose");
}
function killKeyListener() {
Key.removeListener(_keyListener);
}
function scrollBG() {
_hero.run(_scrollDir);
_bg["bg" + _levelIndex].swapDepths(1);
_newBG = _bg.attachMovie("bg" + _levelData[_nextLevelIndex].bg, "bg" + _nextLevelIndex, 2);
_newBG.cacheAsBitmap = true;
_parent["roomblock" + _levelIndex]._visible = true;
var _local2;
switch (_scrollDir) {
case "n" :
_scrollVX = 0;
_scrollVY = 10;
_newBG._x = 0;
_newBG._y = -365;
initDoors(0, -365);
_local2 = "s";
break;
case "e" :
_scrollVX = -10;
_scrollVY = 0;
_newBG._x = 600;
_newBG._y = 0;
initDoors(600, 0);
_local2 = "w";
break;
case "w" :
_scrollVX = 10;
_scrollVY = 0;
_newBG._x = -600;
_newBG._y = 0;
initDoors(-600, 0);
_local2 = "e";
}
_bg[("door_" + _local2) + _nextLevelIndex].gotoAndPlay("open");
_bgRect = new flash.geom.Rectangle(0, 0, 600, 400);
_bg.scrollRect = _bgRect;
onEnterFrame = scrollBGInterval;
}
function scrollBGInterval() {
_time.MarkTimeThisTick();
_hero.updateSprite();
var _local3 = false;
if (_scrollDir == "n") {
if (_bgRect.y <= -365) {
_local3 = true;
}
} else if (_scrollDir == "e") {
if (_bgRect.x == 600) {
_local3 = true;
}
} else if (_scrollDir == "w") {
if (_bgRect.x == -600) {
_local3 = true;
}
}
var _local6 = _parent["roomblock" + _levelIndex];
var _local4 = _parent["roomblock" + _nextLevelIndex];
if (_local3) {
onEnterFrame = null;
_bg["door_n" + _levelIndex].removeMovieClip();
_bg["door_e" + _levelIndex].removeMovieClip();
_bg["door_w" + _levelIndex].removeMovieClip();
_bg["door_s" + _levelIndex].removeMovieClip();
_bg["bg" + _levelIndex].removeMovieClip();
_bg["bg" + _nextLevelIndex]._x = 0;
_bg["bg" + _nextLevelIndex]._y = 0;
_bg["door_n" + _nextLevelIndex]._x = (_bg["door_n" + _nextLevelIndex]._y = 0);
_bg["door_e" + _nextLevelIndex]._x = (_bg["door_e" + _nextLevelIndex]._y = 0);
_bg["door_s" + _nextLevelIndex]._x = (_bg["door_s" + _nextLevelIndex]._y = 0);
_bg["door_w" + _nextLevelIndex]._x = (_bg["door_w" + _nextLevelIndex]._y = 0);
_bgRect.x = 0;
_bgRect.y = 0;
_bg.scrollRect = _bgRect;
_local4._x = (_local4._y = 0);
if (_levelData[_nextLevelIndex].pickup != 0) {
_bg.pickup._x = _pickupX;
_bg.pickup._y = _pickupY;
}
if (_levelData[_nextLevelIndex].marker != 0) {
_bg.marker._x = _markerX;
_bg.marker._y = _markerY;
} else {
_bg.marker._x = (_bg.marker._y = -150);
}
_levelIndex = _nextLevelIndex;
var _local2 = _prevEnemyList.length;
while (_local2--) {
_prevEnemyList[_local2]._mc.removeMovieClip();
_prevEnemyList.pop();
}
var _local5;
switch (_scrollDir) {
case "n" :
_local5 = "s";
break;
case "e" :
_local5 = "w";
break;
case "w" :
_local5 = "e";
}
_bg[("door_" + _local5) + _nextLevelIndex].gotoAndPlay("close");
_soundModule.PlaySound("door_unlock_open.wav");
init();
} else {
_hero._mc._x = _hero._mc._x + (_scrollVX / 2);
_hero._mc._y = _hero._mc._y + (_scrollVY / 2);
_hero.updateSprite();
_bgRect.x = _bgRect.x - _scrollVX;
_bgRect.y = _bgRect.y - _scrollVY;
_bg.scrollRect = _bgRect;
_local6._x = _local6._x + _scrollVX;
_local6._y = _local6._y + _scrollVY;
_local4._x = _local4._x + _scrollVX;
_local4._y = _local4._y + _scrollVY;
var _local2 = _enemyList.length;
while (_local2--) {
_enemyList[_local2]._mc._x = _enemyList[_local2]._mc._x + _scrollVX;
_enemyList[_local2]._mc._y = _enemyList[_local2]._mc._y + _scrollVY;
}
_local2 = _prevEnemyList.length;
while (_local2--) {
_prevEnemyList[_local2]._mc._x = _prevEnemyList[_local2]._mc._x + _scrollVX;
_prevEnemyList[_local2]._mc._y = _prevEnemyList[_local2]._mc._y + _scrollVY;
}
}
}
function cleanUp() {
clearEnemies();
for (var _local2 in _bg) {
_bg[_local2].removeMovieClip();
}
_parent["roomblock" + _levelIndex].removeMovieClip();
}
function clearEnemies() {
_prevEnemyList = [];
_operativeList = [];
var _local3 = _enemyList.length;
while (_local3--) {
var _local2 = _enemyList.pop();
_local2.setTarget(null);
_local2._mc.removeMovieClip();
}
_enemyList = [];
}
var _scrollDir = "s";
var _bonusMax = 5000;
var _hamsterCount = 0;
var _hamsterQuota = 30;
var _restart = false;
var _prevScore = 0;
}
Symbol 1493 MovieClip [__Packages.Hero] Frame 0
class Hero
{
var _gb, _mc, _frameCounter, _spriteController_body, _spriteController_feet, _states, _fsm, _colorList, _currentColor, _speed, _health, _vx, _vy, _dir, _shootDir, _shooting, _strafe, _collisionEnabled, _grenadeKey, _struggle, _struggleKeyCount, _struggleKeysRequired, _struggleTimeDuration, _struggleTimeStart, _endLevelX, _endLevelY, _grenadeSight, _grenadeTicker, _collObj, _struggleTimer;
function Hero (gb, mc) {
_gb = gb;
_mc = mc;
_frameCounter = 0;
_spriteController_body = new Standard.SpriteController();
_spriteController_body.SetKey(_animKey_body);
_spriteController_feet = new Standard.SpriteController();
_spriteController_feet.SetKey(_animKey_feet);
_states = ["STATE_Global", "STATE_Init", "STATE_Idle", "STATE_Running", "STATE_Throwing", "STATE_LevelFail", "STATE_LevelPass", "STATE_Caught", "STATE_Hit", "STATE_Breakout", "STATE_Dead"];
_fsm = new Standard.Simple_FSM(this, _states, _gb._time, _gb._msgRoute);
_colorList = ["purple", "green", "blue", "orange"];
moveTo(_spawnX, _spawnY);
init();
}
function init(Void) {
_currentColor = _colorList[_gb._levelIndex % 4];
_speed = 0;
_health = _healthMax;
_vx = 0;
_vy = 0;
_dir = "s";
_shootDir = "s";
_shooting = false;
_strafe = false;
_collisionEnabled = true;
_grenadeKey = false;
var _local2 = _spriteController_body.PlayAnimation(_dir + "_idle");
_mc.body__mc.gotoAndStop(_local2);
_local2 = _spriteController_feet.PlayAnimation(_dir + "_idle");
_mc.feet_mc.gotoAndStop(_local2);
_fsm.SetState(STATE_INIT);
}
function update(Void) {
_fsm.Update();
}
function onKeyUp() {
if (_struggle) {
if ((Key.getCode() == 37) || (Key.getCode() == 39)) {
_struggleKeyCount++;
}
return(undefined);
}
}
function unzombify() {
if (_gb._enemyGrabSide == 0) {
_collisionEnabled = true;
_fsm.SetState(STATE_IDLE);
} else {
_fsm.SetState(STATE_CAUGHT);
}
}
function getCollEnabled() {
return(_collisionEnabled);
}
function resetHealth() {
_health = _healthMax;
_gb.updateHealthBar(_health);
}
function addHealth(n) {
_health = _health + n;
if (_health > 100) {
_health = 100;
}
_gb.updateHealthBar(_health);
}
function loseHealth(n) {
_health = _health - n;
_gb.updateHealthBar(_health);
if (_health <= 0) {
_health = 0;
_gb.setHealthToZero();
_fsm.SetState(STATE_DEAD);
}
}
function isDead() {
return(Boolean(_health <= 0));
}
function beginStruggle() {
_struggle = true;
_struggleKeysRequired = 10;
_struggleKeyCount = 0;
_struggleTimeDuration = 2000;
_struggleTimeStart = _gb._time.GetCurTime();
}
function checkStruggle() {
var _local3 = _gb._time.GetCurTime() - _struggleTimeStart;
if (_struggleKeyCount >= _struggleKeysRequired) {
_gb._enemyGrabSide = 0;
_fsm.SendMsg(_global.MSG_Stop, this);
knockBackEnemies();
}
}
function knockBackEnemies() {
var _local9 = _gb._enemyList;
var _local8 = _local9.length;
while (_local8--) {
var _local3 = _local9[_local8];
if (_local3.isZombie()) {
var _local5 = _local3._mc._x - _mc._x;
var _local4 = _local3._mc._y - _mc._y;
var _local7 = Math.atan2(_local4, _local5);
var _local6 = Math.sqrt((_local5 * _local5) + (_local4 * _local4));
if (_local6 < _knockBackRadius) {
_fsm.SendMsg(_global.MSG_Run, _local3);
_local3.knockback(_local7);
}
}
}
}
function setEndLevelCoords() {
_endLevelX = _mc._x;
_endLevelY = _mc._y;
}
function moveTowardSpawnPoint() {
var _local3 = (_spawnX - _endLevelX) / 40;
var _local2 = (_spawnY - _endLevelY) / 40;
_mc._x = _mc._x + _local3;
_mc._y = _mc._y + _local2;
var _local4 = 200 + (_mc._y * 1000);
_mc.swapDepths(_local4);
}
function dirToAngle(dir) {
var _local1;
switch (dir) {
case "w" :
_local1 = 180;
break;
case "n" :
_local1 = 270;
break;
case "e" :
_local1 = 0;
break;
case "s" :
_local1 = 90;
break;
case "nw" :
_local1 = 225;
break;
case "ne" :
_local1 = 315;
break;
case "se" :
_local1 = 45;
break;
case "sw" :
_local1 = 135;
}
return(_local1);
}
function getKeys() {
if (Key.isDown(88)) {
if (!_grenadeKey) {
if (_gb._bulletMachine.isCharging()) {
_gb._noGrenadeMC.gotoAndPlay("show");
_gb._soundModule.PlaySound("grenade_no_ammo.wav");
_grenadeKey = false;
} else {
_grenadeKey = true;
_grenadeSight = _gb._bg.attachMovie("grenade_radius", "grenade_radius", 90000);
}
} else {
var _local4 = (3.14159 * dirToAngle(_shootDir)) / 180;
_grenadeSight._x = _mc._x + ((_grenadeTicker * 20) * Math.cos(_local4));
_grenadeSight._y = (_mc._y - 30) + ((_grenadeTicker * 20) * Math.sin(_local4));
}
} else if (_grenadeKey) {
shoot("grenade", _grenadeTicker);
_grenadeKey = false;
_grenadeSight.removeMovieClip();
}
if (((((Key.isDown(88) || (Key.isDown(90))) || (Key.isDown(37))) || (Key.isDown(38))) || (Key.isDown(39))) || (Key.isDown(40))) {
if (Key.isDown(90)) {
_strafe = true;
shoot("bullet");
} else if (Key.isDown(88)) {
_strafe = true;
} else {
_strafe = false;
_gb._bulletMachine.resetTimer();
}
var _local9 = Number(Key.isDown(37));
var _local7 = 2 * Number(Key.isDown(38));
var _local6 = 4 * Number(Key.isDown(39));
var _local5 = 8 * Number(Key.isDown(40));
var _local8 = ((_local9 + _local7) + _local6) + _local5;
var _local3;
switch (_local8) {
case 0 :
return(undefined);
case 1 :
_local3 = "w";
break;
case 2 :
_local3 = "n";
break;
case 4 :
_local3 = "e";
break;
case 5 :
_local3 = _dir;
return(undefined);
case 8 :
_local3 = "s";
break;
case 10 :
_local3 = _dir;
break;
case 3 :
_local3 = "nw";
break;
case 6 :
_local3 = "ne";
break;
case 12 :
_local3 = "se";
break;
case 9 :
_local3 = "sw";
break;
default :
return(undefined);
}
moveDir(_local3);
_fsm.SendMsg(_global.MSG_Run, this);
} else {
_fsm.SendMsg(_global.MSG_Stop, this);
}
}
function moveDir(d) {
if (_speed < _speedMax) {
_speed++;
}
if (d != _dir) {
_dir = d;
var _local4;
if (!_strafe) {
_local4 = _spriteController_body.PlayAnimation(d + "_shoot");
_mc.body_mc.gotoAndStop(_local4);
}
_local4 = _spriteController_feet.PlayAnimation(d + "_run");
_mc.feet_mc.gotoAndStop(_local4);
}
if (!_strafe) {
_shootDir = _dir;
}
var _local3;
var _local2;
switch (_dir) {
case "w" :
_local3 = -_speed;
_local2 = 0;
break;
case "n" :
_local3 = 0;
_local2 = -_speed;
break;
case "e" :
_local3 = _speed;
_local2 = 0;
break;
case "s" :
_local3 = 0;
_local2 = _speed;
break;
case "nw" :
_local3 = (-_speed) / 1.4;
_local2 = (-_speed) / 1.4;
break;
case "ne" :
_local3 = _speed / 1.4;
_local2 = (-_speed) / 1.4;
break;
case "se" :
_local3 = _speed / 1.4;
_local2 = _speed / 1.4;
break;
case "sw" :
_local3 = (-_speed) / 1.4;
_local2 = _speed / 1.4;
break;
default :
_local3 = 0;
_local2 = 0;
}
_vx = _local3;
_vy = _local2;
var _local7 = _mc._x + _vx;
var _local6 = _mc._y + _vy;
if (!Standard.Geometry.Rect.pointWithin(_local7, _local6, _gb._playField)) {
return(undefined);
}
moveTo(_local7, _local6);
}
function moveTo(x, y) {
_mc._x = x;
_mc._y = y;
_collObj.setPos(x, y);
var _local2 = 200 + (_mc._y * 1000);
_mc.swapDepths(_local2);
_gb._noGrenadeMC._x = x;
_gb._noGrenadeMC._y = y;
}
function run(dir) {
var _local2 = _spriteController_body.PlayAnimation(dir + "_shoot");
_mc.body_mc.gotoAndStop(_local2);
_local2 = _spriteController_feet.PlayAnimation(dir + "_run");
_mc.feet_mc.gotoAndStop(_local2);
}
function updateSprite() {
var _local2 = _spriteController_body.Update();
_mc.body_mc.gotoAndStop(_local2);
_local2 = _spriteController_feet.Update();
_mc.feet_mc.gotoAndStop(_local2);
}
function throwStart() {
_fsm.SetState(STATE_THROWING);
}
function updateGrenadeTicker() {
if (_grenadeKey) {
_grenadeTicker = _grenadeTicker + 1;
if (_grenadeTicker > 25) {
_grenadeTicker = 25;
}
} else {
_grenadeTicker = 3;
}
}
function shoot(typ, dist) {
_spriteController_body.PlayAnimation(_shootDir + "_shoot");
var _local2 = dirToAngle(_shootDir);
_gb._bulletMachine.createBullet(typ, _mc._x, _mc._y, _local2, dist);
}
function GetStateMachine(Void) {
return(_fsm);
}
function STATE_Global_Message(oMsg) {
if (!(oMsg.GetMsgName() === _global.MSG_Die)) {
} else {
_fsm.SetState(STATE_DEAD);
}
}
function STATE_Init_Update(Void) {
_fsm.SetState(STATE_IDLE);
}
function STATE_Init_Exit(Void) {
}
function STATE_Idle_Enter(Void) {
var _local2 = _spriteController_body.PlayAnimation(_dir + "_idle");
_mc.body_mc.gotoAndStop(_local2);
_local2 = _spriteController_feet.PlayAnimation(_dir + "_idle");
_mc.feet_mc.gotoAndStop(_local2);
if (_gb.getRestarted() == true) {
_gb.setRestarted(false);
}
}
function STATE_Idle_Update(Void) {
_mc.body_mc.gotoAndStop(_spriteController_body.Update());
_mc.feet_mc.gotoAndStop(_spriteController_feet.Update());
getKeys();
updateGrenadeTicker();
}
function STATE_Idle_Message(oMsg) {
switch (oMsg.GetMsgName()) {
case _global.MSG_Hit :
_fsm.SetState(STATE_HIT);
break;
case _global.MSG_ThrowStart :
_fsm.SetState(STATE_THROWING);
break;
case _global.MSG_TargetCaught :
_fsm.SetState(STATE_CAUGHT);
break;
case _global.MSG_Run :
_fsm.SetState(STATE_RUNNING);
}
}
function STATE_Idle_Exit(Void) {
}
function STATE_Running_Enter(Void) {
var _local2 = _spriteController_body.PlayAnimation(_dir + "_shoot");
_mc.body_mc.gotoAndStop(_local2);
_local2 = _spriteController_feet.PlayAnimation(_dir + "_run");
_mc.feet_mc.gotoAndStop(_local2);
}
function STATE_Running_Update(Void) {
getKeys();
updateGrenadeTicker();
var _local2 = _spriteController_body.Update();
_mc.body_mc.gotoAndStop(_local2);
_local2 = _spriteController_feet.Update();
_mc.feet_mc.gotoAndStop(_local2);
_frameCounter++;
if ((_frameCounter % 8) == 0) {
var _local3 = random(6);
switch (_local3) {
case 0 :
_gb._soundModule.PlaySound("footstep1.wav", 50, 0, 0, 0);
case 1 :
_gb._soundModule.PlaySound("footstep2.wav", 50, 0, 0, 0);
case 2 :
_gb._soundModule.PlaySound("footstep3.wav", 50, 0, 0, 0);
case 3 :
_gb._soundModule.PlaySound("footstep4.wav", 50, 0, 0, 0);
case 4 :
_gb._soundModule.PlaySound("footstep5.wav", 50, 0, 0, 0);
case 5 :
_gb._soundModule.PlaySound("footstep6.wav", 50, 0, 0, 0);
}
}
}
function STATE_Running_Message(oMsg) {
switch (oMsg.GetMsgName()) {
case _global.MSG_ThrowStart :
_fsm.SetState(STATE_THROWING);
break;
case _global.MSG_TargetCaught :
_fsm.SetState(STATE_CAUGHT);
break;
case _global.MSG_Stop :
_fsm.SetState(STATE_IDLE);
break;
case _global.MSG_Hit :
_fsm.SetState(STATE_HIT);
}
}
function STATE_Running_Exit(Void) {
}
function STATE_Throwing_Enter(Void) {
var _local2 = _spriteController_body.PlayAnimation(_dir + "_throw");
_mc.body_mc.gotoAndStop(_local2);
_local2 = _spriteController_feet.PlayAnimation(_dir + "_run");
_mc.feet_mc.gotoAndStop(_local2);
_gb._soundModule.PlaySound("numbuh1_throw_grenade.wav", 150);
}
function STATE_Throwing_Update(Void) {
getKeys();
var _local2 = _spriteController_body.Update();
if (_spriteController_body.AnimationComplete()) {
_fsm.SetState(STATE_RUNNING);
} else {
_mc.body_mc.gotoAndStop(_local2);
}
_local2 = _spriteController_feet.Update();
_mc.feet_mc.gotoAndStop(_local2);
_frameCounter++;
if ((_frameCounter % 8) == 0) {
var _local3 = random(6);
switch (_local3) {
case 0 :
_gb._soundModule.PlaySound("footstep1", 50, 0, 0, 0);
case 1 :
_gb._soundModule.PlaySound("footstep2", 50, 0, 0, 0);
case 2 :
_gb._soundModule.PlaySound("footstep3", 50, 0, 0, 0);
case 3 :
_gb._soundModule.PlaySound("footstep4", 50, 0, 0, 0);
case 4 :
_gb._soundModule.PlaySound("footstep5", 50, 0, 0, 0);
case 5 :
_gb._soundModule.PlaySound("footstep6", 50, 0, 0, 0);
}
}
}
function STATE_Throwing_Message(oMsg) {
switch (oMsg.GetMsgName()) {
case _global.MSG_Throw :
break;
case _global.MSG_TargetCaught :
_fsm.SetState(STATE_CAUGHT);
break;
case _global.MSG_Stop :
break;
case _global.MSG_Hit :
_fsm.SetState(STATE_HIT);
}
}
function STATE_Throwing_Exit(Void) {
}
function STATE_Hit_Enter(Void) {
_collisionEnabled = false;
var _local2 = _spriteController_body.PlayAnimation("hit");
_mc.body_mc.gotoAndStop(_local2);
_local2 = _spriteController_feet.PlayAnimation("hit");
_mc.feet_mc.gotoAndStop(_local2);
_gb._soundModule.PlaySound("gets_hit.wav");
loseHealth(10);
}
function STATE_Hit_Update(Void) {
var _local2 = _spriteController_body.Update();
if (_spriteController_body.AnimationComplete()) {
_fsm.SetState(STATE_IDLE);
} else {
_mc.body_mc.gotoAndStop(_local2);
}
_mc.feet_mc.gotoAndStop(_spriteController_feet.Update());
}
function STATE_Hit_Message(oMsg) {
if (!(oMsg.GetMsgName() === _global.MSG_Run)) {
} else {
_fsm.SetState(STATE_IDLE);
}
}
function STATE_Hit_Exit(Void) {
_collisionEnabled = true;
_struggle = false;
}
function STATE_Caught_Enter(Void) {
_grenadeKey = false;
_grenadeSight._x = (_grenadeSight._y = -200);
_collisionEnabled = false;
var _local2 = _spriteController_body.PlayAnimation("struggle");
_mc.body_mc.gotoAndStop(_local2);
_local2 = _spriteController_feet.PlayAnimation("struggle");
_mc.feet_mc.gotoAndStop(_local2);
beginStruggle();
if (_gb.getRestarted() == true) {
_struggleTimer = 20;
}
}
function STATE_Caught_Update(Void) {
checkStruggle();
_mc.body_mc.gotoAndStop(_spriteController_body.Update());
_mc.feet_mc.gotoAndStop(_spriteController_feet.Update());
if (_gb.getRestarted() == true) {
if ((_struggleTimer--) <= 0) {
_fsm.SetState(STATE_BREAKOUT);
_gb._enemyGrabSide = 0;
knockBackEnemies();
_gb.setRestarted(false);
}
} else {
loseHealth(0.3);
}
}
function STATE_Caught_Message(oMsg) {
if (!(oMsg.GetMsgName() === _global.MSG_Stop)) {
} else {
_fsm.SetState(STATE_BREAKOUT);
}
}
function STATE_Caught_Exit(Void) {
}
function STATE_Breakout_Enter(Void) {
var _local2 = _spriteController_body.PlayAnimation("breakout");
_mc.body_mc.gotoAndStop(_local2);
_local2 = _spriteController_feet.PlayAnimation("struggle");
_mc.feet_mc.gotoAndStop(_local2);
_gb._soundModule.PlaySound("break_free_of_zombie.wav", 50);
}
function STATE_Breakout_Update(Void) {
_mc.body_mc.gotoAndStop(_spriteController_body.Update());
if (_spriteController_body.AnimationComplete()) {
_fsm.SetState(STATE_IDLE);
}
}
function STATE_Breakout_Message(oMsg) {
if (!(oMsg.GetMsgName() === _global.MSG_TargetCaught)) {
}
}
function STATE_Breakout_Exit(Void) {
_collisionEnabled = true;
_struggle = false;
}
function STATE_Dead_Enter(Void) {
_collisionEnabled = false;
var _local2 = _spriteController_body.PlayAnimation("dead");
_mc.body_mc.gotoAndStop(_local2);
_local2 = _spriteController_feet.PlayAnimation("struggle");
_mc.feet_mc.gotoAndStop(_local2);
_gb._soundModule.PlaySound("transform_sequence_zombie.wav");
var _local3 = _mc.getDepth();
_mc.swapDepths(_local3 + 800000);
}
function STATE_Dead_Update(Void) {
_mc.body_mc.gotoAndStop(_spriteController_body.Update());
}
function STATE_Dead_Message(oMsg) {
}
function STATE_Dead_Exit(Void) {
var _local2 = _mc.getDepth();
_mc.swapDepths(_local2 - 800000);
}
function toString() {
return("Hero()");
}
var _speedMax = 7;
var _spawnX = 300;
var _spawnY = 220;
var _cRad = 10;
var _collOffsetX = 0;
var _collOffsetY = 0;
var STATE_GLOBAL = 0;
var STATE_INIT = 1;
var STATE_IDLE = 2;
var STATE_RUNNING = 3;
var STATE_THROWING = 4;
var STATE_LEVELFAIL = 5;
var STATE_LEVELPASS = 6;
var STATE_CAUGHT = 7;
var STATE_HIT = 8;
var STATE_BREAKOUT = 9;
var STATE_DEAD = 10;
var _knockBackRadius = 75;
var _healthMax = 100;
var _lives = 3;
static var _animKey_body = {w_idle:{frames:[80], loop:false}, e_idle:{frames:[200], loop:false}, n_idle:{frames:[280], loop:false}, s_idle:{frames:[1], loop:false}, ne_idle:{frames:[240], loop:false}, se_idle:{frames:[40], loop:false}, nw_idle:{frames:[120], loop:false}, sw_idle:{frames:[160], loop:false}, w_throw:{frames:[100, 101, 102, 103, 104], loop:false}, e_throw:{frames:[220, 221, 222, 223, 224], loop:false}, n_throw:{frames:[300, 301, 302, 303, 304], loop:false}, s_throw:{frames:[20, 21, 22, 23, 24], loop:false}, ne_throw:{frames:[260, 261, 262, 263, 264], loop:false}, se_throw:{frames:[60, 61, 62, 63, 64], loop:false}, nw_throw:{frames:[140, 141, 142, 143, 144], loop:false}, sw_throw:{frames:[180, 181, 182, 183, 184], loop:false}, w_shoot:{frames:[80], loop:false}, e_shoot:{frames:[200], loop:false}, n_shoot:{frames:[280], loop:false}, s_shoot:{frames:[1], loop:false}, ne_shoot:{frames:[240], loop:false}, se_shoot:{frames:[40], loop:false}, nw_shoot:{frames:[120], loop:false}, sw_shoot:{frames:[160], loop:false}, struggle:{frames:[340, 341, 342, 343], loop:true}, breakout:{frames:[360, 360, 361, 361, 362, 362, 362, 362, 362, 362], loop:false}, hit:{frames:[400, 400, 400, 401, 401, 401, 402, 402, 402, 403, 403, 403, 404, 404, 404, 405, 405, 405, 406, 406, 406, 407, 407, 407], loop:false}, dead:{frames:[400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449], loop:false}};
static var _animKey_feet = {w_idle:{frames:[220], loop:true}, e_idle:{frames:[160], loop:true}, n_idle:{frames:[180], loop:false}, s_idle:{frames:[160], loop:true}, ne_idle:{frames:[160], loop:true}, se_idle:{frames:[160], loop:true}, nw_idle:{frames:[220], loop:true}, sw_idle:{frames:[220], loop:true}, w_run:{frames:[120, 121, 122, 123, 124, 125, 126, 127], loop:true}, e_run:{frames:[40, 41, 42, 43, 44, 45, 46, 47], loop:true}, n_run:{frames:[60, 61, 62, 63, 64, 65, 66, 67], loop:true}, s_run:{frames:[1, 2, 3, 4, 5, 6, 7, 8], loop:true}, ne_run:{frames:[80, 81, 82, 83, 84, 85, 86, 87], loop:true}, se_run:{frames:[20, 21, 22, 23, 24, 25, 26, 27], loop:true}, nw_run:{frames:[140, 141, 142, 143, 144, 145, 146, 147], loop:true}, sw_run:{frames:[100, 101, 102, 103, 104, 105, 106, 107], loop:true}, struggle:{frames:[260], loop:false}, hit:{frames:[260], loop:false}};
}
Symbol 1494 MovieClip [__Packages.Standard.StateMachine] Frame 0
class Standard.StateMachine
{
var _Owner, _time, _msgRoute, _currentState, _stateChange, _nextState, _timeOnEnter, _ccMessagesToGameObject;
function StateMachine (obj, time, msgRoute) {
_Owner = obj;
_time = time;
_msgRoute = msgRoute;
_currentState = 1;
_stateChange = false;
_nextState = false;
_timeOnEnter = 0;
_ccMessagesToGameObject = 0;
}
function Initialize(Void) {
_currentState = STATE_Initialize;
_stateChange = false;
_nextState = false;
_timeOnEnter = 0;
_ccMessagesToGameObject = 0;
Process(EVENT_Enter, null);
}
function Process(event, msg) {
if (((event == EVENT_Message) && (msg != null)) && (GetCCReceiver() > 0)) {
}
if (States(event, msg, _currentState) == false) {
States(event, msg, STATE_Global);
}
var _local2 = 50;
while (_stateChange && ((_local2--) >= 0)) {
_stateChange = false;
States(EVENT_Exit, 0, _currentState);
_currentState = _nextState;
_timeOnEnter = _time.GetCurTime();
States(EVENT_Enter, 0, _currentState);
}
}
function States() {
return({});
}
function Update(Void) {
Process(EVENT_Update, null);
}
function SetState(newState) {
_stateChange = true;
_nextState = newState;
}
function GetState(Void) {
return(_currentState);
}
function GetStateChange(Void) {
return(_stateChange);
}
function GetTimeInState(Void) {
return(_time.GetCurTime() - _timeOnEnter);
}
function GetCurTime(Void) {
return(_time.GetCurTime());
}
function SendMsg(name, receiver, data) {
_msgRoute.SendMsg(0, name, _Owner, receiver, STATE_Global, data);
}
function SendDelayedMsg(delay, name, receiver, data) {
_msgRoute.SendMsg(delay, name, _Owner, receiver, STATE_Global, data);
}
function SendDelayedMsgToMe(delay, name, scope, data) {
if (scope == SCOPE_TO_THIS_STATE) {
_msgRoute.SendMsg(delay, name, _Owner, _Owner, _currentState, data);
} else {
_msgRoute.SendMsg(delay, name, _Owner, _Owner, STATE_Global, data);
}
}
function SetCCReceiver(obj) {
_ccMessagesToGameObject = obj;
}
function ClearCCReceiver(Void) {
_ccMessagesToGameObject = 0;
}
function GetCCReceiver(Void) {
return(_ccMessagesToGameObject);
}
function toString(Void) {
return("StateMachine(), _Owner: " + _Owner._mc);
}
static var EVENT_INVALID = 0;
static var EVENT_Enter = 1;
static var EVENT_Message = 2;
static var EVENT_Update = 3;
static var EVENT_Exit = 4;
static var STATE_Global = 0;
static var STATE_Initialize = 1;
static var NO_MSG_SCOPING = 0;
static var SCOPE_TO_THIS_STATE = 1;
}
Symbol 1495 MovieClip [__Packages.Standard.Time] Frame 0
class Standard.Time
{
var _currentTime, _fakeGetTimer, _timeLastTick, _gameSpeed, _startTime;
function Time (Void) {
_currentTime = 0;
_fakeGetTimer = 0;
_timeLastTick = 0.001;
_gameSpeed = INITIAL_GAME_SPEED;
_startTime = (getTimer() * INITIAL_GAME_SPEED) / 1000;
}
function GetElapsedTime(Void) {
return(_timeLastTick);
}
function GetCurTime(Void) {
return(_currentTime);
}
function GetGameSpeed(Void) {
return(_gameSpeed);
}
function MarkTimeThisTick(Void) {
_fakeGetTimer = _fakeGetTimer + 0.032258064516129;
var _local2 = _fakeGetTimer - _startTime;
_timeLastTick = _local2 - _currentTime;
_currentTime = _local2;
if (_timeLastTick <= 0) {
_timeLastTick = 0.001;
}
}
function SetGameSpeed(value) {
_gameSpeed = value;
if (_gameSpeed < MIN_GAME_SPEED) {
_gameSpeed = MIN_GAME_SPEED;
} else if (_gameSpeed > MAX_GAME_SPEED) {
_gameSpeed = MAX_GAME_SPEED;
}
}
function toString(Void) {
return("Time()");
}
static var INITIAL_GAME_SPEED = 2;
static var MIN_GAME_SPEED = 0.001;
static var MAX_GAME_SPEED = 100;
}
Symbol 1496 MovieClip [__Packages.Standard.Message.MsgRoute] Frame 0
class Standard.Message.MsgRoute
{
var _time, _delayedMessages;
function MsgRoute (time) {
_time = time;
_delayedMessages = [];
}
function Update() {
DeliverDelayedMessages();
}
function SendMsg(delay, name, sender, receiver, state, data) {
if (delay <= 0) {
var _local10;
if (data != null) {
_local10 = new Standard.Message.Extended_MsgObject(_time.GetCurTime(), name, sender, receiver, state, data);
} else {
_local10 = new Standard.Message.MsgObject(_time.GetCurTime(), name, sender, receiver, state);
}
RouteMsg(_local10);
} else {
var _local2;
var _local3 = 0;
while (_local3 <= _delayedMessages.length) {
_local2 = _delayedMessages[_local3];
if (((((_local2.IsDelivered() == false) && (_local2.GetMsgName() == name)) && (_local2.GetReceiver() == receiver)) && (_local2.GetSender() == sender)) && (_local2.GetMsgState() == state)) {
return(undefined);
}
_local3++;
}
var _local8 = delay + _time.GetCurTime();
if (data != null) {
var _local10 = new Standard.Message.Extended_MsgObject(_local8, name, sender, receiver, state, data);
} else {
var _local10 = new Standard.Message.MsgObject(_local8, name, sender, receiver, state);
}
_local3 = 0;
while ((_local3 < _delayedMessages.length) && (_local8 >= _delayedMessages[_local3].GetDeliveryTime())) {
_local3++;
}
_delayedMessages.splice(_local3, 0, _local10);
}
}
function DeliverDelayedMessages(Void) {
var _local2;
while ((_delayedMessages.length > 0) && (_delayedMessages[0].GetDeliveryTime() <= _time.GetCurTime())) {
_local2 = _delayedMessages.shift();
RouteMsg(_local2);
}
}
function RouteMsg(msg) {
var _local2 = msg.GetReceiver();
if (_local2) {
if ((msg.GetMsgState() == Standard.StateMachine.STATE_Global) || (msg.GetMsgState() == _local2.GetStateMachine().GetState())) {
msg.SetDelivered(true);
_local2.GetStateMachine().Process(Standard.StateMachine.EVENT_Message, msg);
}
}
}
function Flush(Void) {
while (_delayedMessages.length > 0) {
_delayedMessages.shift();
}
}
function toString() {
return("MsgRoute()");
}
}
Symbol 1497 MovieClip [__Packages.Standard.Message.MsgObject] Frame 0
class Standard.Message.MsgObject
{
var _name, _sender, _receiver, _state, _deliveryTime, _delivered;
function MsgObject (deliveryTime, name, sender, receiver, state) {
if (state == null) {
state = -1;
}
SetDeliveryTime(deliveryTime);
SetMsgName(name);
SetSender(sender);
SetReceiver(receiver);
SetMsgState(state);
SetDelivered(false);
}
function GetMsgName(Void) {
return(_name);
}
function SetMsgName(name) {
_name = name;
}
function GetSender(Void) {
return(_sender);
}
function SetSender(sender) {
_sender = sender;
}
function GetReceiver(Void) {
return(_receiver);
}
function SetReceiver(receiver) {
_receiver = receiver;
}
function GetMsgState(Void) {
return(_state);
}
function SetMsgState(state) {
_state = state;
}
function GetDeliveryTime(Void) {
return(_deliveryTime);
}
function SetDeliveryTime(time) {
_deliveryTime = time;
}
function IsDelivered(Void) {
return(_delivered);
}
function SetDelivered(value) {
_delivered = value;
}
function toString(Void) {
return(((((((("Message(" + _name) + ",") + _sender) + ",") + _receiver) + ",") + _deliveryTime) + ")");
}
}
Symbol 1498 MovieClip [__Packages.Standard.Message.Extended_MsgObject] Frame 0
class Standard.Message.Extended_MsgObject extends Standard.Message.MsgObject
{
var SetDeliveryTime, SetMsgName, SetSender, SetReceiver, SetMsgState, SetDelivered, _data, _deliveryTime, _receiver, _sender, _name;
function Extended_MsgObject (deliveryTime, name, sender, receiver, state, data) {
super();
SetDeliveryTime(deliveryTime);
SetMsgName(name);
SetSender(sender);
SetReceiver(receiver);
SetMsgState(state);
SetDelivered(false);
SetData(data);
}
function SetData(data) {
_data = data;
}
function GetData() {
return(_data);
}
function toString() {
return(((((((("E_Message(" + _name) + ",") + _sender) + ",") + _receiver) + ",") + _deliveryTime) + ")");
}
}
Symbol 1499 MovieClip [__Packages.Standard.Simple_FSM] Frame 0
class Standard.Simple_FSM extends Standard.StateMachine
{
var _states, _event_key, _Owner;
function Simple_FSM (obj, states, time, msgRoute) {
super(obj, time, msgRoute);
_states = states;
_event_key = ["_INVALID", "_Enter", "_Message", "_Update", "_Exit"];
}
function States(event, msg, state) {
if (state < _states.length) {
var _local2 = _states[state] + _event_key[event];
if (_Owner instanceof Hamster) {
}
if (_Owner[_local2] != null) {
_Owner[_local2](msg);
return(true);
}
return(false);
}
return(false);
}
function toString(Void) {
return("Simple_FSM()");
}
}
Symbol 1500 MovieClip [__Packages.Hamster] Frame 0
class Hamster
{
var _gb, _mc, _spriteController, _animKey, _states, _fsm, _collObj, _x0, _y0, _goalX, _vx;
function Hamster (gb, mc, idx) {
_gb = gb;
_mc = mc;
_spriteController = new Standard.SpriteController();
_animKey = {idle:{frames:[1], loop:false}, jump:{frames:[41, 42, 43, 44, 45, 46, 47], loop:false}, zombiewalk:{frames:[2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9], loop:true}, hit:{frames:[11], loop:false}, unzombify:{frames:[13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26], loop:false}, leave:{frames:[28, 28, 29, 29, 30, 30, 31, 31], loop:true}};
_spriteController.SetKey(_animKey);
_states = ["STATE_Global", "STATE_Init", "STATE_Idle", "STATE_Drop", "STATE_Running", "STATE_Unzombify", "STATE_Leaving"];
_fsm = new Standard.Simple_FSM(this, _states, _gb._time, _gb._msgRoute);
_collObj = new Standard.Geometry.Circle(_mc._x + _collOffsetX, _mc._y + _collOffsetY, _cRad);
}
function init(x0, y0, bStart) {
_fsm.SetState(STATE_INIT);
_x0 = x0;
_y0 = y0;
moveTo(x0, y0);
var _local2 = 200 + (_mc._y * 1000);
_mc.swapDepths(_local2);
_fsm.SetState(STATE_IDLE);
}
function update() {
var _local2 = 200 + (_mc._y * 1000);
_mc.swapDepths(_local2);
_fsm.Update();
}
function GetStateMachine(Void) {
return(_fsm);
}
function getCollObject() {
return(_collObj);
}
function knockback() {
_vy = -1;
}
function moveXY(dx, dy) {
moveTo(_mc._x + dx, _mc._y + dy);
}
function moveTo(x, y) {
_mc._x = x;
_mc._y = y;
_collObj.setPos(_mc._x + _collOffsetX, _mc._y + _collOffsetY);
}
function seek() {
var _local2 = Math.atan2(_goalY - _mc._y, _goalX - _mc._x);
_vx = _vmax * Math.cos(_local2);
_vy = _vmax * Math.sin(_local2);
}
function checkCollision() {
if (!_gb._hero.getCollEnabled()) {
return(undefined);
}
var _local3 = _gb._hero._mc;
var _local5 = _mc._x - _local3._x;
var _local4 = _mc._y - _local3._y;
if (((_local5 * _local5) + (_local4 * _local4)) < 400) {
_fsm.SendMsg(_global.MSG_Hit, _gb._hero);
}
}
function STATE_Global_Message(oMsg) {
if (!(oMsg.GetMsgName() === _global.MSG_Run)) {
} else {
_fsm.SetState(STATE_DROP);
}
}
function STATE_Init_Update(Void) {
_fsm.SetState(_INIT_STATE);
}
function STATE_Init_Exit(Void) {
}
function STATE_Idle_Enter() {
var _local2 = _spriteController.PlayAnimation("idle");
_mc.gotoAndStop(_local2);
_ZOMBIE = true;
}
function STATE_Idle_Update() {
_fsm.SetState(STATE_DROP);
}
function STATE_Idle_Message(oMsg) {
if (!(oMsg.GetMsgName() === _global.MSG_Run)) {
} else {
_fsm.SetState(STATE_DROP);
}
}
function STATE_Idle_Exit() {
}
function STATE_Drop_Enter() {
_ZOMBIE = true;
var _local2 = _spriteController.PlayAnimation("jump");
_mc.gotoAndStop(_local2);
_vmax = 3;
}
function STATE_Drop_Update() {
_mc.gotoAndStop(_spriteController.Update());
if (_spriteController.AnimationComplete()) {
_fsm.SetState(STATE_RUNNING);
}
}
function STATE_Drop_Message(oMsg) {
if (!(oMsg.GetMsgName() === _global.MSG_Unzombify)) {
} else {
_fsm.SetState(STATE_UNZOMBIFY);
}
}
function STATE_Drop_Exit() {
}
function STATE_Running_Enter() {
var _local2 = _spriteController.PlayAnimation("zombiewalk");
_mc.gotoAndStop(_local2);
}
function STATE_Running_Update() {
_vy = _vy + 0.1;
if (_vy >= _vmax) {
_vy = _vmax;
}
moveXY(0, _vy);
if (_mc._y > 395) {
_mc._y = 100;
_fsm.SetState(STATE_DROP);
}
checkCollision();
_mc.gotoAndStop(_spriteController.Update());
}
function STATE_Running_Message(oMsg) {
switch (oMsg.GetMsgName()) {
case _global.MSG_BulletHit :
knockback();
break;
case _global.MSG_Unzombify :
_fsm.SetState(STATE_UNZOMBIFY);
}
}
function STATE_Running_Exit() {
}
function STATE_Unzombify_Enter(oMsg) {
var _local2 = _spriteController.PlayAnimation("unzombify");
_gb._soundModule.PlaySound("transform_sequence_operative.wav");
_ZOMBIE = false;
}
function STATE_Unzombify_Update(oMsg) {
_mc.gotoAndStop(_spriteController.Update());
if (_spriteController.AnimationComplete()) {
_fsm.SetState(STATE_LEAVING);
}
}
function STATE_Unzombify_Message(oMsg) {
}
function STATE_Unzombify_Exit(oMsg) {
}
function STATE_Leaving_Enter() {
_vmax = 5;
_goalX = _goalListX[random(2)];
seek();
var _local2 = _spriteController.PlayAnimation("leave");
_mc.gotoAndStop(_local2);
}
function STATE_Leaving_Update() {
_mc.gotoAndStop(_spriteController.Update());
moveXY(_vx, _vy);
var _local3 = _goalX - _mc._x;
var _local2 = _goalY - _mc._y;
if (_mc._y < 80) {
_gb._hamsterCount++;
_gb.updateHamsterMeters();
_vx = (_vy = 0);
if (!_gb._levelOver) {
moveTo(_x0, 100);
_fsm.SetState(STATE_DROP);
} else {
moveTo(-200, -200);
_mc._visible = false;
}
}
}
function STATE_Leaving_Message(oMsg) {
}
function STATE_Leaving_Exit() {
}
function toString() {
return("Hamster()");
}
var STATE_GLOBAL = 0;
var STATE_INIT = 1;
var STATE_IDLE = 2;
var STATE_DROP = 3;
var STATE_RUNNING = 4;
var STATE_UNZOMBIFY = 5;
var STATE_LEAVING = 6;
var _INIT_STATE = Hamster.prototype.STATE_IDLE;
var _vy = 0;
var _vmax = 3;
var _cRad = 10;
var _collOffsetX = 0;
var _collOffsetY = -20;
var _goalListX = [274, 326];
var _goalY = 80;
var _ZOMBIE = true;
}
Symbol 1501 MovieClip [__Packages.Standard.SpriteController] Frame 0
class Standard.SpriteController
{
var _animation_key, _isAnimationFinished, _curFrame, _curAnimation, _isAnimationLooping, _curFrameIndex;
function SpriteController () {
_animation_key = {};
_isAnimationFinished = false;
}
function SetKey(oKey) {
_animation_key = oKey;
}
function AnimationComplete(Void) {
return(_isAnimationFinished);
}
function GetCurrentFrame(Void) {
return(_curFrame);
}
function PlayAnimation(sName) {
_isAnimationFinished = false;
_curAnimation = _animation_key[sName].frames;
_isAnimationLooping = _animation_key[sName].loop;
_curFrameIndex = 0;
_curFrame = _curAnimation[0];
return(_curFrame);
}
function PlayAnimation_sync(sName) {
_curAnimation = _animation_key[sName].frames;
_isAnimationLooping = _animation_key[sName].loop;
_curFrame = _curAnimation[_curFrameIndex];
return(_curFrame);
}
function Update(Void) {
if (_curFrameIndex < (_curAnimation.length - 1)) {
_curFrameIndex++;
_curFrame = _curAnimation[_curFrameIndex];
} else {
_isAnimationFinished = true;
if (_isAnimationLooping) {
_curFrameIndex = 0;
_curFrame = _curAnimation[_curFrameIndex];
}
}
return(_curFrame);
}
function toString(Void) {
return("SpriteController()");
}
}
Symbol 1502 MovieClip [__Packages.Standard.Geometry.Circle] Frame 0
class Standard.Geometry.Circle
{
var _x, _y, _radius, _radiusSqr;
function Circle (x, y, rad) {
_x = x;
_y = y;
_radius = rad;
_radiusSqr = rad * rad;
}
function setPos(x, y) {
_x = x;
_y = y;
}
function isPointWithin(px, py) {
var _local3 = px - _x;
var _local2 = py - _y;
if (_radiusSqr > ((_local3 * _local3) + (_local2 * _local2))) {
return(true);
}
return(false);
}
function getPos() {
return(new flash.geom.Point(_x, _y));
}
function getRadius() {
return(_radius);
}
function circleCollision(circ2) {
var _local4 = circ2.getRadius();
var _local5 = circ2.getPos();
var _local6 = (_radius + _local4) * (_radius + _local4);
var _local3 = _local5.x - _x;
var _local2 = _local5.y - _y;
if (((_local3 * _local3) + (_local2 * _local2)) < _local6) {
return(true);
}
return(false);
}
function toString() {
return(("Circle(" + [_x, _y, _radius]) + ")");
}
}
Symbol 1503 MovieClip [__Packages.Enemy] Frame 0
class Enemy
{
var _gb, _targ, _mc, _idx, _ZOMBIE, _maxChaseSpeed, _maxTurnSpeed, _enemyList, _spriteController, _states, _fsm, _seekTimer, _collObj, _targetSpotX, _targetSpotY, _moveTimer, _angle, _speedMax, _agil, _xc, _yc, _targDX, _targDY, _proximity, _enemyIsClose, _speed, _vx, _vy, _knockbackFrameCount, _wanderTime;
function Enemy (gb, mc, seekTarget, idx, enemyList) {
_gb = gb;
_targ = seekTarget;
_mc = mc;
_idx = idx;
_ZOMBIE = true;
_maxChaseSpeed = 2 + (Math.random() * 1.25);
_maxTurnSpeed = 0.001 + (Math.random() * 0.2);
_enemyList = enemyList;
_spriteController = new Standard.SpriteController();
_states = ["STATE_Global", "STATE_Init", "STATE_Idle", "STATE_Chasing", "STATE_TargetCaught", "STATE_Stun1", "STATE_Stun2", "STATE_Stun3", "STATE_Unzombify", "STATE_Zombify", "STATE_OperativeFlee", "STATE_Knockback", "STATE_Wander"];
_fsm = new Standard.Simple_FSM(this, _states, _gb._time, _gb._msgRoute);
_seekTimer = 0;
_collObj = new Standard.Geometry.Circle(_mc._x + _collOffsetX, _mc._y + _collOffsetY, _cRad);
_mc.feelers._visible = false;
_targetSpotX = -100 + (Math.random() * 200);
_targetSpotY = -100 + (Math.random() * 200);
_moveTimer = 0;
}
function getAngle() {
return(_angle);
}
function init() {
}
function initAsOperative() {
_ZOMBIE = false;
_INIT_STATE = STATE_OPERATIVE_FLEE;
_mc.gotoAndStop(1);
}
function update() {
_collObj.setPos(_mc._x + _collOffsetX, _mc._y + _collOffsetY);
_fsm.Update();
}
function moveTo(x, y) {
_mc._x = x;
_mc._y = y;
_collObj.setPos(x + _collOffsetX, y + _collOffsetY);
var _local2 = 200 + (_mc._y * 1000);
_mc.swapDepths(_local2);
}
function setCollOffset(dx, dy) {
_collOffsetX = dx;
_collOffsetY = dy;
}
function getCollObject() {
return(_collObj);
}
function setSpeedMax(n) {
_speedMax = n;
}
function setAgility(n) {
_agil = n;
}
function isZombie() {
return(_ZOMBIE);
}
function setTarget(o) {
_targ = o;
}
function setCentroid(x, y) {
if ((!x) && (!y)) {
_xc = _mc._x;
_yc = _mc._y;
} else {
_xc = x;
_yc = y;
}
}
function addCentroid(dx, dy) {
_xc = _xc + dx;
_yc = _yc + dy;
}
function updateProximity() {
if (_ZOMBIE) {
_targDX = _targ._mc._x - _mc._x;
_targDY = _targ._mc._y - _mc._y;
var _local4 = Math.sqrt((_targDX * _targDX) + (_targDY * _targDY));
_proximity = Boolean(_local4 < _proximityRange);
_targ.setEnemyIsClose(_proximity);
if (_local4 >= 100) {
var _local3 = _targ._mc._x;
var _local2 = _targ._mc._y;
_local2 = _local2 + _targetSpotY;
_local3 = _local3 + _targetSpotX;
if (_local3 < _gb._playField.xMin) {
_local3 = _gb._playField.xMin;
}
if (_local3 > _gb._playField.xMax) {
_local3 = _gb._playField.xMax;
}
if (_local2 < _gb._playField.yMin) {
_local2 = _gb._playField.yMin;
}
if (_local2 > _gb._playField.yMax) {
_local2 = _gb._playField.yMax;
}
_targDX = _local3 - _mc._x;
_targDY = _local2 - _mc._y;
if (_targ._mc._x < _mc._x) {
if ((_targ._mc._x + _targetSpotX) > _mc._x) {
_targDX = _targ._mc._x - _mc._x;
}
} else if ((_targ._mc._x + _targetSpotX) < _mc._x) {
_targDX = _targ._mc._x - _mc._x;
}
}
}
}
function setEnemyIsClose(bClose) {
_enemyIsClose = bClose;
}
function getNewTarget() {
var _local3 = Math.random();
var _local2 = _gb._operativeList.length;
if (_local3 < (1 / (1 + _local2))) {
_targ = _gb._hero;
} else {
_targ = _gb._operativeList[random(_local2)];
}
_gb._soundModule.PlaySound(("zombie_groan" + (1 + random(5))) + ".wav", 40);
}
function targetOperative() {
var _local3 = Math.random();
var _local2 = _gb._operativeList.length;
if (_local3 < (1 / (1 + _local2))) {
_targ = _gb._hero;
return(false);
}
_targ = _gb._operativeList[random(_local2)];
_gb._soundModule.PlaySound(("zombie_groan" + (1 + random(4))) + ".wav", 40);
return(true);
}
function canGrabHero(mcX, targX) {
if (mcX < targX) {
if (!(_gb._enemyGrabSide & 1)) {
_gb._enemyGrabSide = _gb._enemyGrabSide ^ 1;
return(true);
}
} else if (!(_gb._enemyGrabSide & 16)) {
_gb._enemyGrabSide = _gb._enemyGrabSide ^ 16;
return(true);
}
return(false);
}
function chase() {
_speed = _speed + _acc;
if (_speed > _maxChaseSpeed) {
_speed = _maxChaseSpeed;
}
var _local5 = Math.atan2(_targDY, _targDX);
var _local8 = ((_local5 * 180) / 3.14) + 90;
_local8 = (_local8 + 360) % 360;
var _local11 = ((_angle * 180) / 3.14) + 90;
var _local7 = _angle - _local5;
if (_local7 < 0) {
if (_local7 < _maxTurnSpeed) {
_angle = _local5 - _maxTurnSpeed;
}
} else if (_local7 > _maxTurnSpeed) {
_angle = _local5 + _maxTurnSpeed;
}
_vx = _speed * Math.cos(_angle);
_vy = _speed * Math.sin(_angle);
if (_proximity) {
var _local10 = _targ._mc._x - _mc._x;
var _local9 = _targ._mc._y - _mc._y;
var _local6 = Math.sqrt((_local10 * _local10) + (_local9 * _local9));
if (_local6 < _cRad) {
_fsm.SendMsg(_global.MSG_TargetCaught, _targ);
if (_targ instanceof Hero) {
if (canGrabHero(_mc._x, _targ._mc._x)) {
_fsm.SetState(STATE_TARGET_CAUGHT);
} else if (!targetOperative()) {
_fsm.SetState(STATE_WANDER);
}
} else {
getNewTarget();
}
}
_targ.addCentroid((10000 / _local6) * Math.cos(_angle), (10000 / _local6) * Math.sin(_angle));
} else if (outOfBounds(_mc._x + _vx, _mc._y + _vy)) {
_targetSpotX = -100 + (Math.random() * 200);
_targetSpotY = -100 + (Math.random() * 200);
}
var _local4 = _mc._x + _vx;
var _local3 = _mc._y + _vy;
if (_local4 < _gb._playField.xMin) {
_local4 = _gb._playField.xMin;
}
if (_local4 > _gb._playField.xMax) {
_local4 = _gb._playField.xMax;
}
if (_local3 < _gb._playField.yMin) {
_local3 = _gb._playField.yMin;
}
if (_local3 > _gb._playField.yMax) {
_local3 = _gb._playField.yMax;
}
moveTo(_local4, _local3);
}
function handleBounds(angle, mcX, mcY) {
if (mcX < _gb._fleeField.xMin) {
if (angle >= 270) {
angle = angle + 90;
} else if (angle > 180) {
angle = angle - 90;
}
} else if (mcX > _gb._fleeField.xMax) {
if (angle < 90) {
angle = angle - 90;
}
if ((angle < 180) && (angle >= 90)) {
angle = angle + 90;
}
} else if (mcY < _gb._fleeField.yMin) {
if (angle > 270) {
angle = angle - 90;
}
if (angle < 90) {
angle = angle + 90;
}
} else if (mcY > _gb._fleeField.yMax) {
if ((angle > 90) && (angle <= 180)) {
angle = angle - 90;
}
if ((angle > 180) && (angle <= 270)) {
angle = angle + 90;
}
}
return(angle);
}
function flee() {
var _local9 = 0;
var _local8 = 0;
var _local16 = _mc._x;
var _local15 = _mc._y;
var _local11 = _gb._enemyList.length;
var _local10 = false;
if (_moveTimer > 0) {
_moveTimer = _moveTimer - 1;
_speed = _speed + _acc;
if (_speed > _maxFleeSpeed) {
_speed = _maxFleeSpeed;
}
_vx = _speed * Math.cos(_angle);
_vy = _speed * Math.sin(_angle);
var _local14 = _mc._x + _vx;
var _local13 = _mc._y + _vy;
if (_local14 < _gb._playField.xMin) {
_local14 = _gb._playField.xMin;
}
if (_local14 > _gb._playField.xMax) {
_local14 = _gb._playField.xMax;
}
if (_local13 < _gb._playField.yMin) {
_local13 = _gb._playField.yMin;
}
if (_local13 > _gb._playField.yMax) {
_local13 = _gb._playField.yMax;
}
moveTo(_local14, _local13);
_enemyIsClose = false;
return(undefined);
}
var _local4 = 0;
while (_local4 < _local11) {
var _local2 = _gb._enemyList[_local4];
var _local5 = _mc._x - _local2._mc._x;
var _local3 = _mc._y - _local2._mc._y;
if (!_local2.isZombie()) {
} else {
var _local7 = Math.sqrt(_local5 * _local5, _local3 * _local3);
var _local6 = 100;
if (_local7 < _local6) {
_local9 = _local9 + _local5;
_local8 = _local8 + _local3;
_local10 = true;
}
}
_local4++;
}
if (_local10) {
_speed = _speed + _acc;
if (_speed > _maxFleeSpeed) {
_speed = _maxFleeSpeed;
}
var _local17 = Math.atan2(_local8, _local9);
var _local12 = ((_local17 * 180) / 3.14) + 90;
_local12 = (_local12 + 360) % 360;
_local12 = handleBounds(_local12, _local16, _local15);
_angle = (_local12 - 90) * 0.0174444444444444;
_moveTimer = 20;
} else {
_speed = _speed - _acc;
if (_speed < 0) {
_speed = 0;
}
}
_vx = _speed * Math.cos(_angle);
_vy = _speed * Math.sin(_angle);
var _local14 = _mc._x + _vx;
var _local13 = _mc._y + _vy;
if (_local14 < _gb._playField.xMin) {
_local14 = _gb._playField.xMin;
}
if (_local14 > _gb._playField.xMax) {
_local14 = _gb._playField.xMax;
}
if (_local13 < _gb._playField.yMin) {
_local13 = _gb._playField.yMin;
}
if (_local13 > _gb._playField.yMax) {
_local13 = _gb._playField.yMax;
}
moveTo(_local14, _local13);
if ((_mc._x < 0) || (_mc._x > 600)) {
moveTo(_mc._x - _vx, _mc._y);
_speed = 0.5;
}
if ((_mc._y < 0) || (_mc._y > 400)) {
moveTo(_mc._x, _mc._y - _vy);
_speed = 0.5;
}
_enemyIsClose = false;
}
function fixBounds() {
var _local2 = {};
_local2.x = _mc._x;
_local2.y = _mc._y;
switch (Standard.Geometry.Rect.GetOutcode(_local2, _gb._playField)) {
case 1 :
_vy = 2;
break;
case 2 :
_vx = -2;
break;
case 4 :
_vy = -2;
break;
case 8 :
_vx = 2;
}
}
function outOfBounds(x, y) {
var _local2 = Standard.Geometry.Rect.pointWithin(x, y, _gb._playField);
if (_local2 == false) {
return(true);
}
return(false);
}
function updateDirection(animkey) {
var _local3;
var _local2 = 90 + (57.2958279087978 * _angle);
if (_local2 < 0) {
_local2 = _local2 + 360;
}
_local2 = _local2 % 360;
if (_local2 < 25) {
_local3 = "n";
} else if (_local2 < 65) {
_local3 = "ne";
} else if (_local2 < 115) {
_local3 = "e";
} else if (_local2 < 160) {
_local3 = "se";
} else if (_local2 < 205) {
_local3 = "s";
} else if (_local2 < 250) {
_local3 = "sw";
} else if (_local2 < 295) {
_local3 = "w";
} else if (_local2 < 335) {
_local3 = "nw";
} else {
_local3 = "n";
}
if (_local3 != _dir) {
_dir = _local3;
var _local4 = _spriteController.PlayAnimation(_dir + animkey);
_mc.gotoAndStop(_local4);
}
}
function getPos() {
return({x:_mc._x, y:_mc._y});
}
function GetStateMachine(Void) {
return(_fsm);
}
function knockback(ang) {
_vx = _speed * Math.cos(ang);
_vy = _speed * Math.cos(ang);
var _local3 = _mc._x + _vx;
var _local2 = _mc._y + _vy;
if (_local3 < _gb._playField.xMin) {
_local3 = _gb._playField.xMin;
_speed = 0;
}
if (_local3 > _gb._playField.xMax) {
_local3 = _gb._playField.xMax;
_speed = 0;
}
if (_local2 < _gb._playField.yMin) {
_local2 = _gb._playField.yMin;
_speed = 0;
}
if (_local2 > _gb._playField.yMax) {
_local2 = _gb._playField.yMax;
_speed = 0;
}
moveTo(_local3, _local2);
}
function checkTarget() {
var _local7 = _targ._mc._x - _mc._x;
var _local6 = _targ._mc._y - _mc._y;
if (((_local7 * _local7) + (_local6 * _local6)) > 40000) {
var _local5 = _gb._enemyList.length;
while (_local5--) {
var _local2 = _gb._enemyList[_local5];
var _local4 = _local2._mc._x - _mc._x;
var _local3 = _local2._mc._y - _mc._y;
if (((_local4 * _local4) + (_local3 * _local3)) > 40000) {
_targ = _local2;
return(undefined);
}
}
}
}
function STATE_Global_Message(oMsg) {
}
function STATE_Init_Update(Void) {
_fsm.SetState(_INIT_STATE);
}
function STATE_Init_Exit(Void) {
}
function STATE_Idle_Enter(Void) {
_spriteController.PlayAnimation("idle");
_mc.gotoAndStop(_spriteController.Update());
}
function STATE_Idle_Update(Void) {
_mc.gotoAndStop(_spriteController.Update());
}
function STATE_Idle_Message(oMsg) {
}
function STATE_Idle_Exit(Void) {
}
function STATE_Chasing_Enter(Void) {
_ZOMBIE = true;
_angle = 0;
updateDirection("_run");
var _local2 = _spriteController.PlayAnimation(_dir + "_run");
_mc.gotoAndStop(_local2);
_seekTimer = 0;
}
function STATE_Chasing_Update(Void) {
_seekTimer++;
if (_seekTimer > 100) {
checkTarget();
_seekTimer = 0;
}
chase();
updateDirection("_run");
_mc.gotoAndStop(_spriteController.Update());
}
function STATE_Chasing_Message(oMsg) {
switch (oMsg.GetMsgName()) {
case _global.MSG_BulletHit :
_fsm.SetState(STATE_STUN1);
break;
case _global.MSG_Unzombify :
_fsm.SetState(STATE_UNZOMBIFY);
break;
case _global.MSG_Run :
_targ = _gb._hero;
_fsm.SetState(STATE_KNOCKBACK);
}
}
function STATE_Chasing_Exit(Void) {
}
function STATE_TargetCaught_Enter(Void) {
if (_mc._x < _targ._mc._x) {
moveTo(_targ._mc._x - 40, _targ._mc._y);
_mc._xscale = 100;
} else {
moveTo(_targ._mc._x + 40, _targ._mc._y);
_mc._xscale = -100;
}
var _local3 = 1 + random(3);
_gb._soundModule.PlaySound(("zombie_grabs_you" + _local3) + ".wav", 70);
var _local2 = _spriteController.PlayAnimation("struggle");
_mc.gotoAndStop(_local2);
}
function STATE_TargetCaught_Update(Void) {
_mc.gotoAndStop(_spriteController.Update());
}
function STATE_TargetCaught_Message(oMsg) {
if (!(oMsg.GetMsgName() === _global.MSG_Run)) {
} else {
_targ = _gb._hero;
_fsm.SetState(STATE_KNOCKBACK);
}
}
function STATE_TargetCaught_Exit(Void) {
_mc._xscale = 100;
}
function STATE_Knockback_Enter(Void) {
_ZOMBIE = true;
_angle = 0;
updateDirection("_run");
var _local2 = _spriteController.PlayAnimation(_dir + "_run");
_mc.gotoAndStop(_local2);
_knockbackFrameCount = 0;
_speed = -7;
}
function STATE_Knockback_Update(Void) {
var _local3 = _targ._mc._x - _mc._x;
var _local2 = _targ._mc._y - _mc._y;
var _local4 = Math.atan2(_local2, _local3);
var _local5 = Math.sqrt((_local3 * _local3) + (_local2 * _local2));
if ((_local5 < 75) && (_knockbackFrameCount < 18)) {
knockback(_local4);
_knockbackFrameCount++;
} else {
_targ = _gb._hero;
_fsm.SetState(STATE_CHASING);
return(undefined);
}
if (_speed == 0) {
_fsm.SetState(STATE_STUN3);
_angle = _local4;
return(undefined);
}
updateDirection("_run");
_mc.gotoAndStop(_spriteController.Update());
}
function STATE_Knockback_Message(oMsg) {
}
function STATE_Knockback_Exit(Void) {
}
function STATE_Stun1_Enter(Void) {
_spriteController.PlayAnimation("daze1");
_mc.gotoAndStop(_spriteController.Update());
if (_mc._x > _gb._hero._mc._x) {
_mc._xscale = -100;
} else {
_mc._xscale = 100;
}
_stunTimer = 20;
_speed = -5;
var _local3 = _gb._hero._mc._x - _mc._x;
var _local2 = _gb._hero._mc._y - _mc._y;
_angle = Math.atan2(_local2, _local3);
}
function STATE_Stun1_Update(Void) {
_vx = _speed * Math.cos(_angle);
_vy = _speed * Math.sin(_angle);
var _local3 = _mc._x + _vx;
var _local2 = _mc._y + _vy;
if (_local3 < _gb._playField.xMin) {
_local3 = _gb._playField.xMin;
}
if (_local3 > _gb._playField.xMax) {
_local3 = _gb._playField.xMax;
}
if (_local2 < _gb._playField.yMin) {
_local2 = _gb._playField.yMin;
}
if (_local2 > _gb._playField.yMax) {
_local2 = _gb._playField.yMax;
}
moveTo(_local3, _local2);
_mc.gotoAndStop(_spriteController.Update());
_stunTimer--;
if (_stunTimer <= 0) {
_speed = 0;
_targ = _gb._hero;
var _local5 = _gb._hero._mc._x - _mc._x;
var _local4 = _gb._hero._mc._y - _mc._y;
_angle = Math.atan2(_local4, _local5);
_fsm.SetState(STATE_CHASING);
return(undefined);
}
}
function STATE_Stun1_Message(oMsg) {
switch (oMsg.GetMsgName()) {
case _global.MSG_Run :
_targ = _gb._hero;
_fsm.SetState(STATE_CHASING);
break;
case _global.MSG_BulletHit :
_fsm.SetState(STATE_STUN2);
break;
case _global.MSG_Unzombify :
_fsm.SetState(STATE_UNZOMBIFY);
}
}
function STATE_Stun1_Exit(Void) {
_mc._xscale = 100;
}
function STATE_Stun2_Enter(Void) {
_speed = 0;
_fsm.SendDelayedMsg(3, _global.MSG_Run2, this);
_spriteController.PlayAnimation("daze2");
_mc.gotoAndStop(_spriteController.Update());
if (_mc._x > _gb._hero._mc._x) {
_mc._xscale = -100;
} else {
_mc._xscale = 100;
}
}
function STATE_Stun2_Update(Void) {
_mc.gotoAndStop(_spriteController.Update());
}
function STATE_Stun2_Message(oMsg) {
switch (oMsg.GetMsgName()) {
case _global.MSG_Run2 :
_fsm.SetState(STATE_CHASING);
break;
case _global.MSG_BulletHit :
_fsm.SetState(STATE_STUN3);
break;
case _global.MSG_Unzombify :
_fsm.SetState(STATE_UNZOMBIFY);
}
}
function STATE_Stun2_Exit(Void) {
_mc._xscale = 100;
}
function STATE_Stun3_Enter(Void) {
_fsm.SendDelayedMsg(2, _global.MSG_Run3, this);
_spriteController.PlayAnimation("daze3_loop");
_mc.gotoAndStop(_spriteController.Update());
if (_mc._x > _gb._hero._mc._x) {
_mc._xscale = -100;
} else {
_mc._xscale = 100;
}
}
function STATE_Stun3_Update(Void) {
_mc.gotoAndStop(_spriteController.Update());
}
function STATE_Stun3_Message(oMsg) {
switch (oMsg.GetMsgName()) {
case _global.MSG_Run3 :
_fsm.SetState(STATE_CHASING);
break;
case _global.MSG_Unzombify :
_fsm.SetState(STATE_UNZOMBIFY);
}
}
function STATE_Stun3_Exit(Void) {
_mc._xscale = 100;
}
function STATE_Unzombify_Enter(oMsg) {
var _local2 = _spriteController.PlayAnimation("unzombify");
_ZOMBIE = false;
_vx = (_vy = (_speed = 0));
_gb.updateOpList();
_gb._soundModule.PlaySound("transform_sequence_operative.wav");
}
function STATE_Unzombify_Update(oMsg) {
_mc.gotoAndStop(_spriteController.Update());
if (_spriteController.AnimationComplete()) {
_fsm.SetState(STATE_OPERATIVE_FLEE);
}
}
function STATE_Unzombify_Message(oMsg) {
}
function STATE_Unzombify_Exit(oMsg) {
_gb._soundModule.PlaySound("transform_into_operative.wav");
}
function STATE_Zombify_Enter(oMsg) {
var _local2 = _spriteController.PlayAnimation("zombify");
_ZOMBIE = true;
_vx = (_vy = (_speed = 0));
_gb.updateOpList();
getNewTarget();
_gb._soundModule.PlaySound("transform_sequence_zombie.wav");
}
function STATE_Zombify_Update(oMsg) {
_mc.gotoAndStop(_spriteController.Update());
if (_spriteController.AnimationComplete()) {
_fsm.SetState(STATE_CHASING);
}
}
function STATE_Zombify_Message(oMsg) {
}
function STATE_Zombify_Exit(oMsg) {
_gb._soundModule.PlaySound("transform_into_zombie.wav");
}
function STATE_OperativeFlee_Enter(Void) {
_speed = 0;
_angle = 90;
flee();
updateDirection("_run_op");
_mc.gotoAndStop(_spriteController.Update());
}
function STATE_OperativeFlee_Update(Void) {
flee();
if (_speed > 0) {
updateDirection("_run_op");
_mc._xscale = 100;
} else {
_angle = _angle - 3.14159;
updateDirection("_idle");
if (_mc._x < 300) {
_mc._xscale = 100;
} else {
_mc._xscale = -100;
}
}
_mc.gotoAndStop(_spriteController.Update());
}
function STATE_OperativeFlee_Message(oMsg) {
if (!(oMsg.GetMsgName() === _global.MSG_TargetCaught)) {
} else {
_fsm.SetState(STATE_ZOMBIFY);
}
}
function STATE_OperativeFlee_Exit(Void) {
}
function STATE_Wander_Enter(Void) {
_wanderTime = 20;
_angle = Math.floor(Math.random() * 360);
_angle = (_angle - 90) * 0.0174444444444444;
}
function STATE_Wander_Update(Void) {
if (_wanderTime > 0) {
_wanderTime = _wanderTime - 1;
_speed = _speed + _acc;
if (_speed > _maxFleeSpeed) {
_speed = _maxFleeSpeed;
}
_vx = _speed * Math.cos(_angle);
_vy = _speed * Math.sin(_angle);
var _local3 = _mc._x + _vx;
var _local2 = _mc._y + _vy;
if (_local3 < _gb._playField.xMin) {
_local3 = _gb._playField.xMin;
}
if (_local3 > _gb._playField.xMax) {
_local3 = _gb._playField.xMax;
}
if (_local2 < _gb._playField.yMin) {
_local2 = _gb._playField.yMin;
}
if (_local2 > _gb._playField.yMax) {
_local2 = _gb._playField.yMax;
}
moveTo(_local3, _local2);
updateDirection("_run");
_mc.gotoAndStop(_spriteController.Update());
return(undefined);
}
if (_gb._enemyGrabSide == 3) {
_wanderTime = 20;
_angle = Math.floor(Math.random() * 360);
_angle = (_angle - 90) * 0.0174444444444444;
return(undefined);
}
_fsm.SetState(STATE_CHASING);
}
function STATE_Wander_Message(oMsg) {
if (!(oMsg.GetMsgName() === _global.MSG_Run)) {
} else {
_targ = _gb._hero;
_fsm.SetState(STATE_KNOCKBACK);
}
}
function STATE_Wander_Exit(Void) {
}
function toString() {
return("Enemy()");
}
var _acc = 0.3;
var _maxFleeSpeed = 4;
var _proximityRange = 200;
var _dir = "e";
var STATE_GLOBAL = 0;
var STATE_INIT = 1;
var STATE_IDLE = 2;
var STATE_CHASING = 3;
var STATE_TARGET_CAUGHT = 4;
var STATE_STUN1 = 5;
var STATE_STUN2 = 6;
var STATE_STUN3 = 7;
var STATE_UNZOMBIFY = 8;
var STATE_ZOMBIFY = 9;
var STATE_OPERATIVE_FLEE = 10;
var STATE_KNOCKBACK = 11;
var STATE_WANDER = 12;
var _INIT_STATE = Enemy.prototype.STATE_CHASING;
var _cRad = 20;
var _collOffsetX = 0;
var _collOffsetY = -20;
var dx = 0;
var dy = 0;
var _flank = 0;
var _stunTimer = 20;
}
Symbol 1504 MovieClip [__Packages.Standard.Geometry.Rect] Frame 0
class Standard.Geometry.Rect
{
var xMin, yMin, xMax, yMax, xCenter, yCenter, width, height;
function Rect (ixMin, iyMin, ixMax, iyMax) {
xMin = ixMin;
yMin = iyMin;
xMax = ixMax;
yMax = iyMax;
xCenter = xMin + ((xMax - xMin) / 2);
yCenter = yMin + ((yMax - yMin) / 2);
width = xMax - xMin;
height = yMax - yMin;
}
function moveTo(x, y) {
var _local3 = x - xCenter;
var _local2 = y - yCenter;
xMin = xMin + _local3;
yMin = yMin + _local2;
xMax = xMax + _local3;
yMax = yMax + _local2;
xCenter = xCenter + _local3;
yCenter = yCenter + _local2;
}
function toString() {
return(((((((("Rect(" + xMin) + ", ") + yMin) + ", ") + xMax) + ", ") + yMax) + ")");
}
static function pointWithin(x, y, r1) {
if (x < r1.xMin) {
return(false);
}
if (x > r1.xMax) {
return(false);
}
if (y < r1.yMin) {
return(false);
}
if (y > r1.yMax) {
return(false);
}
return(true);
}
static function boundsIntersect(r1, r2) {
if (r1.xMax < r2.xMin) {
return(false);
}
if (r2.xMax < r1.xMin) {
return(false);
}
if (r1.yMax < r2.yMin) {
return(false);
}
if (r2.yMax < r1.yMin) {
return(false);
}
return(true);
}
static function getClosestNormal(x, y, rect) {
var _local5 = y - rect.yMin;
var _local3 = x - rect.xMin;
var _local4 = rect.yMax - y;
var _local6 = rect.xMax - x;
var _local2 = [_local5, _local3, _local4, _local6];
_local2.sort(compare);
return(_local2[0]);
}
static function compare(a, b) {
if (a < b) {
return(-1);
}
if (a > b) {
return(1);
}
return(0);
}
static function GetOutcode(point, rect) {
var _local1 = 0;
if (point.y <= rect.yMin) {
_local1 = _local1 | 1;
}
if (point.x >= rect.xMax) {
_local1 = _local1 | 2;
}
if (point.y >= rect.yMax) {
_local1 = _local1 | 4;
}
if (point.x <= rect.xMin) {
_local1 = _local1 | 8;
}
return(_local1);
}
static function Get_Ray_Exit(start_pos, end_pos, rect) {
var _local7 = GetOutcode(start_pos, rect);
var _local6 = GetOutcode(end_pos, rect);
if (_local6 == 0) {
return(false);
}
if ((_local7 & _local6) == 0) {
var _local4 = 0;
var _local1 = 1;
var _local9 = end_pos.x - start_pos.x;
var _local8 = end_pos.y - start_pos.y;
var _local3 = 8;
if ((_local7 & _local3) != 0) {
var _local10 = ((-start_pos.x) - rect.xMin) / _local9;
if (_local10 > _local4) {
_local4 = _local10;
}
} else if ((_local6 & _local3) != 0) {
var _local10 = (rect.xMin - start_pos.x) / _local9;
if (_local10 < _local1) {
_local1 = _local10;
}
}
_local3 = 2;
if ((_local7 & _local3) != 0) {
var _local10 = ((-start_pos.x) + rect.xMax) / _local9;
if (_local10 > _local4) {
_local4 = _local10;
}
} else if ((_local6 & _local3) != 0) {
var _local10 = ((-start_pos.x) + rect.xMax) / _local9;
if (_local10 < _local1) {
_local1 = _local10;
}
}
_local3 = 1;
if ((_local7 & _local3) != 0) {
var _local10 = ((-start_pos.y) - rect.yMin) / _local8;
if (_local10 > _local4) {
_local4 = _local10;
}
} else if ((_local6 & _local3) != 0) {
var _local10 = (rect.yMin - start_pos.y) / _local8;
if (_local10 < _local1) {
_local1 = _local10;
}
}
_local3 = 4;
if ((_local7 & _local3) != 0) {
var _local10 = ((-start_pos.y) + rect.yMax) / _local8;
if (_local10 > _local4) {
_local4 = _local10;
}
} else if ((_local6 & _local3) != 0) {
var _local10 = ((-start_pos.y) + rect.yMax) / _local8;
if (_local10 < _local1) {
_local1 = _local10;
}
}
if (_local4 <= _local1) {
return({x:start_pos.x + (_local1 * _local9), y:start_pos.y + (_local1 * _local8)});
}
}
return(false);
}
}
Symbol 1505 MovieClip [__Packages.Standard.SoundModule] Frame 0
class Standard.SoundModule
{
var _mc, _hash, _num, _active_sounds, _fade_interval, _music_mute, _defaultVol, _curr_music, _fade_interval2;
function SoundModule (mc) {
_mc = mc;
_hash = {};
_num = 0;
_active_sounds = [];
_fade_interval = null;
_music_mute = _global.MUSIC_MUTE;
_defaultVol = 100;
}
function SoundAvailable() {
return(_active_sounds.length < 8);
}
function LoadSound(sound_name) {
_num++;
var _local3 = "mySound" + _num;
_mc.createEmptyMovieClip(_local3, _num);
var _local2 = new Sound(_mc[_local3]);
_local2.parent = this;
_local2.lastStart = 0;
_local2.onSoundComplete = function () {
this.parent.DeactivateSound(sound_name);
};
_hash[sound_name] = _local2;
return(_local2);
}
function SetMusicMute(oBool) {
_music_mute = oBool;
if (_music_mute == true) {
_hash["music_" + _curr_music].setVolume(0);
} else {
_hash["music_" + _curr_music].setVolume(_global.MUSIC_VOL);
}
}
function GetMusicMute() {
return(_music_mute);
}
function StopMusic() {
var _local2 = _active_sounds.length;
while (_local2--) {
if (_active_sounds[_local2].indexOf("music") != -1) {
StopSound(_active_sounds[_local2]);
break;
}
}
_curr_music = "none";
}
function GetCurMusic(Void) {
return(_curr_music);
}
function PlayMusic(str) {
if (str == _curr_music) {
return(undefined);
}
if (str == "none") {
FadeSound("music_" + _curr_music, _global.MUSIC_VOL, 0, 0.5);
} else {
CrossFade("music_" + _curr_music, "music_" + str, 0.5);
_curr_music = str;
}
}
function DeactivateSound(snd) {
var _local2 = _active_sounds.length;
while (_local2--) {
if (snd == _active_sounds[_local2]) {
_active_sounds.splice(_local2, 1);
break;
}
}
}
function DeactivateAllSounds() {
_active_sounds = [];
}
function StopSound(snd) {
var _local2 = _hash[snd];
_local2.stop();
DeactivateSound(snd);
}
function StopAll() {
for (var _local2 in _active_sounds) {
StopSound(_active_sounds[_local2]);
}
_curr_music = "none";
}
function soundIsPlaying(snd) {
for (var _local3 in _active_sounds) {
if (_active_sounds[_local3] == snd) {
return(true);
}
}
return(false);
}
function PlaySound(snd, vol, pan, offset, loop) {
for (var _local3 in _active_sounds) {
if (_active_sounds[_local3] == snd) {
if (snd.indexof("footstep") != -1) {
return(undefined);
}
}
}
if (_active_sounds.length < MAX_SOUNDS) {
var _local4 = _hash[snd];
if (vol == null) {
_local4.setVolume(_defaultVol);
} else {
_local4.setVolume(vol);
}
if (pan != null) {
_local4.setPan(pan);
}
if (offset == null) {
offset = 0;
}
if (loop == null) {
loop = 0;
}
_local4.start(offset, loop);
_active_sounds.push(snd);
}
}
function CrossFade(snd1, snd2, dur) {
FadeSound(snd1, _global.MUSIC_VOL, 0, dur);
PlaySound(snd2, 0, 0, 0, 9999);
FadeSound2(snd2, 0, _global.MUSIC_VOL, dur);
}
function FadeSound(snd, startVol, endVol, duration) {
if (_fade_interval != null) {
clearInterval(_fade_interval);
}
_hash[snd].setVolume(startVol);
var _local2;
if (endVol < startVol) {
_local2 = -1;
} else {
_local2 = 1;
}
var _local5 = (duration / Math.abs(endVol - startVol)) * 1000;
_fade_interval = setInterval(this, "Fade_Sound_Update", _local5, [snd, endVol, _local2]);
}
function FadeSound2(snd, startVol, endVol, duration) {
if (_fade_interval2 != null) {
clearInterval(_fade_interval2);
}
_hash[snd].setVolume(startVol);
var _local2;
if (endVol < startVol) {
_local2 = -1;
} else {
_local2 = 1;
}
var _local5 = (duration / Math.abs(endVol - startVol)) * 1000;
_fade_interval2 = setInterval(this, "Fade_Sound_Update2", _local5, [snd, endVol, _local2]);
}
function Fade_Sound_Update(sndAr) {
var _local3 = sndAr[0];
var _local5 = sndAr[1];
var _local4 = sndAr[2];
var _local2 = _hash[_local3].getVolume() + _local4;
if (((_local4 > 0) && (_local2 <= _local5)) || ((_local4 < 0) && (_local2 >= _local5))) {
_hash[_local3].setVolume(_local2);
if (_local2 <= 0) {
StopSound(_local3);
}
} else {
clearInterval(_fade_interval);
}
}
function Fade_Sound_Update2(sndAr) {
var _local3 = sndAr[0];
var _local5 = sndAr[1];
var _local4 = sndAr[2];
var _local2 = _hash[_local3].getVolume() + _local4;
if (((_local4 > 0) && (_local2 <= _local5)) || ((_local4 < 0) && (_local2 >= _local5))) {
_hash[_local3].setVolume(_local2);
if (_local2 <= 0) {
StopSound(_local3);
}
} else {
clearInterval(_fade_interval2);
}
}
function getSound(snd) {
return(_hash[snd]);
}
function toString() {
return("SoundModule()");
}
function unload() {
for (var _local3 in _hash) {
delete _hash[_local3];
}
var _local2 = 0;
while (_local2 < _num) {
_mc["mySound" + _num].removeMovieClip();
_local2++;
}
delete _hash;
}
static var MAX_SOUNDS = 32;
}
Symbol 1506 MovieClip [__Packages.Standard.Map.NodeMap] Frame 0
class Standard.Map.NodeMap
{
var _nodeList, _historyList;
function NodeMap () {
_nodeList = [];
_historyList = [];
}
function addNode(newNode) {
_nodeList.push(newNode);
}
function getNodeDiff(n) {
return(_nodeList[n].diff);
}
function getNodeID(n) {
return(_nodeList[n].id);
}
function getNodeLinks(n) {
return(_nodeList[n].links);
}
function addToHistoryList(n) {
var _local3 = false;
var _local2 = _historyList.length;
while (_local2--) {
if (_historyList[_local2] == n) {
_local3 = true;
}
}
if (!_local3) {
_historyList.push(n);
}
}
}
Symbol 1507 MovieClip [__Packages.BulletMachine] Frame 0
class BulletMachine
{
var _mc, _bullets, _recycleBin, _hero, _gb, _charging;
function BulletMachine (gb, hero, mc, dp) {
_mc = mc.createEmptyMovieClip("bulletContainer", dp);
_bullets = new Array();
_recycleBin = new Array();
_hero = hero;
_gb = gb;
_charging = false;
}
function createBullet(typ, x, y, ang, dist) {
if (typ == "bullet") {
y = y + 25;
if (_frameCount < _fireRate) {
return(undefined);
}
_frameCount = 0;
}
var _local2;
if (typ == "grenade") {
y = y - 35;
if (!_charging) {
_local2 = new Grenade(this, _mc, _count, x, y, ang, dist);
_hero.throwStart();
_grenadeTimerStart = _timer;
_charging = true;
}
} else {
var _local4 = 1 + random(3);
_gb._soundModule.PlaySound(("numbuh1_shoot" + _local4) + ".wav", 60);
if (_recycleBin.length == 0) {
_local2 = new Bullet(this, _mc, _count, x, y, ang);
} else {
_local2 = _recycleBin.pop();
_local2.init(x, y, ang);
}
}
_bullets.push(_local2);
_count++;
}
function getGrenadeTimer() {
var _local2 = (_timer - _grenadeTimerStart) / _grenadeTimerDuration;
if (_local2 > 1) {
_local2 = 1;
}
return(_local2 * 100);
}
function isCharging() {
return(_charging);
}
function update() {
_frameCount++;
_timer++;
var _local2 = _bullets.length;
while (_local2--) {
_bullets[_local2].update();
}
var _local3 = Boolean((_timer - _grenadeTimerStart) < _grenadeTimerDuration);
if ((!_local3) && (_charging)) {
_gb.flashGrenadeIcon();
_charging = false;
}
}
function recycle(bul) {
var _local2 = _bullets.length;
while (_local2--) {
if (bul == _bullets[_local2]) {
_bullets[_local2].moveTo(-500, -500);
_bullets.setCollActive(false);
_bullets.splice(_local2, 1);
return(undefined);
}
}
}
function remove(bul) {
var _local2 = _bullets.length;
while (_local2--) {
if (bul == _bullets[_local2]) {
_bullets[_local2]._mc.removeMovieClip();
delete _bullets[_local2];
_bullets.splice(_local2, 1);
return(undefined);
}
}
}
function getBullets() {
return(_bullets);
}
function resetTimer() {
_frameCount = _fireRate;
}
function explosion(typ, x, y) {
if ((x == undefined) || (y == undefined)) {
return(undefined);
}
var _local2 = _mc.attachMovie(typ, "explosion", 999999);
_local2._x = x;
_local2._y = y;
}
var _count = 0;
var _fireRate = 8;
var _frameCount = 8;
var _grenadeTimerStart = -150;
var _grenadeTimerDuration = 90;
var _timer = 0;
}
Symbol 1508 MovieClip [__Packages.Bullet] Frame 0
class Bullet
{
var _bounds, _bulletMachine, _id, _mcParent, _collObj, _collActive, _mc, _ang, _vx, _vy;
function Bullet (bMachine, mc, count, x, y, ang) {
_bounds = new flash.geom.Rectangle(0, 35, 600, 400);
_bulletMachine = bMachine;
_id = count;
_mcParent = mc;
_collObj = new Standard.Geometry.Circle(x, y, _cRad);
_collActive = true;
init(x, y, ang);
}
function init(x, y, ang) {
_mc = _mcParent.attachMovie("bullet", "bullet" + _id, _id);
var _local2 = "";
switch (ang) {
case 0 :
_local2 = "e";
y = y - 5;
break;
case 45 :
_local2 = "se";
break;
case 90 :
_local2 = "s";
x = x - 5;
y = y - 15;
break;
case 135 :
_local2 = "sw";
break;
case 180 :
_local2 = "w";
y = y - 5;
break;
case 225 :
_local2 = "nw";
break;
case 270 :
_local2 = "n";
break;
case 315 :
_local2 = "ne";
}
_mc.gotoAndStop(_local2);
_ang = ang;
_mc._x = x;
_mc._y = y - 20;
_vx = _vel * Math.cos((ang * 3.14159) / 180);
_vy = _vel * Math.sin((ang * 3.14159) / 180);
}
function setCollActive(b) {
_collActive = b;
}
function getCollActive() {
return(_collActive);
}
function getCollObject() {
return(_collObj);
}
function moveTo(x, y) {
_mc._x = x;
_mc._y = y;
_collObj.setPos(x + _collOffsetX, y + _collOffsetY);
var _local2 = 200 + (_mc._y * 1000);
_mc.swapDepths(_local2);
}
function update() {
_collOffsetX = _mc.cPoint._x;
_collOffsetY = _mc.cPoint._y;
moveTo(_mc._x + _vx, _mc._y + _vy);
var _local2 = new flash.geom.Point(_mc._x + _collOffsetX, _mc._y + _collOffsetY);
if (!_bounds.containsPoint(_local2)) {
_bulletMachine.recycle(this);
}
}
function toString() {
return("Bullet() #" + _id);
}
function getAngle() {
return(_ang);
}
var _vel = 20;
var _cRad = 10;
var _collOffsetX = 0;
var _collOffsetY = 0;
}
Symbol 1509 MovieClip [__Packages.Grenade] Frame 0
class Grenade extends Bullet
{
var _dist, _vz, _bounds, _z, _ang, _mc, _vx, _vy, _cRad, _collObj, _collActive, _mcParent, _id, _bulletMachine;
function Grenade (bMachine, mc, count, x, y, ang, dist) {
super(bMachine, mc, count, x, y, ang);
_dist = 20 * dist;
_vz = (_dist * _grav) / (2 * _vel);
_bounds = new flash.geom.Rectangle(30, 40, 570, 370);
_z = 0.1;
_ang = ang;
_mc._x = x;
_mc._y = y;
_vx = _vel * Math.cos((_ang * 3.14159) / 180);
_vy = _vel * Math.sin((_ang * 3.14159) / 180);
_cRad = 50;
_collObj = new Standard.Geometry.Circle(x, y, _cRad);
_collActive = false;
}
function init(x, y, ang) {
_mc = _mcParent.attachMovie("grenade", "grenade" + _id, _id);
_ang = ang;
_mc._x = x;
_mc._y = y;
_vx = _vel * Math.cos((ang * 3.14159) / 180);
_vy = _vel * Math.sin((ang * 3.14159) / 180);
}
function update() {
_vz = _vz - _grav;
_z = _z + _vz;
_timer++;
if (_z < 0) {
_bulletMachine.explosion("explosion", _mc._x, _mc._y);
_collActive = true;
_timer = 0;
return(undefined);
}
_mc._x = _mc._x + _vx;
_mc._y = _mc._y + (_vy - _vz);
_collObj.setPos(_mc._x, _mc._y);
}
function toString() {
return("Grenade()");
}
var _grav = 3;
var _timer = 0;
var _vel = 20;
}
Symbol 1510 MovieClip [__Packages.Zombie] Frame 0
class Zombie extends Enemy
{
var _animKey, _spriteController, _fsm, STATE_INIT, _vx, _vy, _vr, _angle, _speed, _speedMax, _agil, _dir, _spawnX, _spawnY, _mc, _idx;
function Zombie (gb, mc, seekTarget, idx, enemyList) {
super(gb, mc, seekTarget, idx, enemyList);
_animKey = {n_idle:{frames:[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3], loop:true}, e_idle:{frames:[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3], loop:true}, s_idle:{frames:[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3], loop:true}, w_idle:{frames:[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3], loop:true}, ne_idle:{frames:[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3], loop:true}, se_idle:{frames:[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3], loop:true}, sw_idle:{frames:[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3], loop:true}, nw_idle:{frames:[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3], loop:true}, w_run:{frames:[162, 163, 164, 165, 166, 167, 168, 169, 170, 171], loop:true}, e_run:{frames:[150, 151, 152, 153, 154, 155, 156, 157, 158, 159], loop:true}, n_run:{frames:[175, 176, 177, 178, 179, 180, 181, 182], loop:true}, s_run:{frames:[142, 143, 144, 145, 146, 147, 148, 149], loop:true}, ne_run:{frames:[150, 151, 152, 153, 154, 155, 156, 157, 158, 159], loop:true}, se_run:{frames:[150, 151, 152, 153, 154, 155, 156, 157, 158, 159], loop:true}, nw_run:{frames:[162, 163, 164, 165, 166, 167, 168, 169, 170, 171], loop:true}, sw_run:{frames:[162, 163, 164, 165, 166, 167, 168, 169, 170, 171], loop:true}, w_run_op:{frames:[30, 31, 32, 33, 34, 35, 36, 37], loop:true}, e_run_op:{frames:[17, 18, 19, 20, 21, 22, 23, 24], loop:true}, n_run_op:{frames:[53, 54, 55, 56, 57, 58, 59, 60], loop:true}, s_run_op:{frames:[45, 46, 47, 48, 49, 50, 51, 52], loop:true}, ne_run_op:{frames:[17, 18, 19, 20, 21, 22, 23, 24], loop:true}, se_run_op:{frames:[17, 18, 19, 20, 21, 22, 23, 24], loop:true}, nw_run_op:{frames:[30, 31, 32, 33, 34, 35, 36, 37], loop:true}, sw_run_op:{frames:[30, 31, 32, 33, 34, 35, 36, 37], loop:true}, unzombify:{frames:[108, 107, 106, 105, 104, 103, 102, 101, 100, 99, 98, 97, 96, 95, 94, 93, 92, 91, 90, 89, 88, 87, 86, 85, 84, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 1], loop:false}, zombify:{frames:[61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108], loop:false}, struggle:{frames:[132, 133, 134, 135, 136, 137, 138, 139, 140, 141], loop:false}, daze1:{frames:[183, 184, 185, 186, 187, 188, 189], loop:true}, daze2:{frames:[190, 191, 192, 193, 194, 195, 196, 197, 198, 199], loop:true}, daze3_start:{frames:[200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218], loop:false}, daze3_loop:{frames:[219, 220], loop:true}};
_spriteController.SetKey(_animKey);
}
function init(x, y) {
_fsm.SetState(STATE_INIT);
_vx = 0;
_vy = 0;
_vr = 0;
_angle = 0;
_speed = 0;
_speedMax = 0.2 + (0.5 * Math.random());
_agil = 1;
_dir = "s";
_spawnX = x;
_spawnY = y;
_mc._x = x;
_mc._y = y;
var _local2 = 200 + ((_mc._y * 1000) + _idx);
_mc.swapDepths(_local2);
var _local3 = _spriteController.PlayAnimation(_dir + "_run");
_mc.gotoAndStop(_local3);
}
function toString() {
return("Zombie()");
}
}
Symbol 1511 MovieClip [__Packages.Boss_362] Frame 0
class Boss_362
{
var _gb, _mc, _jumpInterval, _healthBarMC, _health, _spriteController, _animKey, _states, _fsm, _collObj, _x0, _y0, _vx, _vy, _jumpGoalX, _jumpGoalY;
function Boss_362 (gb, mc, idx) {
_gb = gb;
_mc = mc;
_jumpInterval = {};
_healthBarMC = _gb.attachMovie("bossBar", "bossBar", 20000);
_health = _healthMax;
hideHealthBar();
_spriteController = new Standard.SpriteController();
_animKey = {idle:{frames:[1], loop:false}, hit:{frames:[78, 79, 80, 81, 82, 83, 84], loop:false}, spin1_start:{frames:[14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 34, 35, 34, 35, 34, 35, 34, 35], loop:false}, spin1_loop:{frames:[36, 37], loop:true}, jump:{frames:[39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58], loop:true}, spin2_start:{frames:[59, 60, 61, 62], loop:false}, spin2_loop:{frames:[63, 64, 65], loop:true}, signthrow:{frames:[66, 66, 66, 67, 67, 67, 68, 68, 68, 69, 69, 69, 70, 70, 70, 71, 71, 71, 72, 72, 72, 73, 73, 73, 74, 74, 74, 75, 75, 75, 76, 76, 76, 77, 77, 77, 78, 78, 78, 79, 79, 79, 80, 80, 80, 81, 81, 81, 82, 82, 82, 83, 83, 83, 84, 84, 84, 85, 85, 85, 86, 86, 86, 87, 87, 87, 88, 88, 88, 89, 89, 89, 90, 90, 90, 91, 91, 91, 92, 92, 92, 93, 93, 93, 94, 94, 94, 95, 95, 95, 96, 96, 96, 97, 97, 97, 98, 98, 98, 99, 99, 99, 100, 100, 100, 101, 101, 101, 102, 102, 102, 103, 103, 103, 104, 104, 104], loop:false}, dizzy:{frames:[105, 105, 106, 106, 107, 107, 108, 108, 109, 109, 110, 110, 111, 111, 112, 112, 113, 113, 114, 114, 115, 115, 116, 116, 117, 117, 118, 118, 119, 119, 120, 120, 121, 121, 122, 122, 123, 123, 124, 124, 125, 125], loop:false}, dead:{frames:[131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196], loop:false}};
_spriteController.SetKey(_animKey);
_states = ["STATE_Global", "STATE_Init", "STATE_Idle", "STATE_Spin1Start", "STATE_Spin1Loop", "STATE_Jump", "STATE_Spin2Start", "STATE_Spin2Loop", "STATE_Throw", "STATE_ThrowJump", "STATE_Dizzy", "STATE_Dead"];
_fsm = new Standard.Simple_FSM(this, _states, _gb._time, _gb._msgRoute);
_collObj = new Standard.Geometry.Circle(_mc._x + _collOffsetX, _mc._y + _collOffsetY, _cRad);
}
function init(x0, y0) {
_fsm.SetState(STATE_INIT);
_x0 = x0;
_y0 = y0;
moveTo(x0, y0);
var _local2 = 200 + (_mc._y * 1000);
_mc.swapDepths(_local2);
var _local3 = _spriteController.PlayAnimation("idle");
_mc.gotoAndStop(_local3);
_vx = 15;
_vy = 15;
jumpInit();
}
function update() {
var _local2 = 200 + (_mc._y * 1000);
_mc.swapDepths(_local2);
_fsm.Update();
}
function GetStateMachine(Void) {
return(_fsm);
}
function flashSprite() {
var _local4 = new flash.geom.ColorTransform(1, 1, 1, 1, 0, -200, -200, 0);
var _local3 = new flash.geom.Transform(_mc);
_local3.colorTransform = _local4;
_global.setTimeout(this, "restoreSprite", 150);
}
function restoreSprite() {
var _local3 = new flash.geom.ColorTransform(1, 1, 1, 1, 0, 0, 0, 0);
var _local2 = new flash.geom.Transform(_mc);
_local2.colorTransform = _local3;
}
function bounce() {
if (((_mc._x + _vx) < _gb._playField.xMin) || ((_mc._x + _vx) > _gb._playField.xMax)) {
_vx = (-_vx) - random(3);
}
if (((_mc._y + _vy) < _gb._playField.yMin) || ((_mc._y + _vy) > _gb._playField.yMax)) {
_vy = (-_vy) - random(3);
}
moveXY(_vx, _vy);
}
function getCollObject() {
return(_collObj);
}
function knockback() {
_vy = -1;
}
function moveXY(dx, dy) {
moveTo(_mc._x + dx, _mc._y + dy);
}
function moveTo(x, y) {
if (y > 450) {
y = 0;
}
_mc._x = x;
_mc._y = y;
_collObj.setPos(_mc._x + _collOffsetX, _mc._y + _collOffsetY);
}
function setMCDir(sDir) {
if (sDir == "w") {
_mc._xscale = 100;
} else {
_mc._xscale = -100;
}
}
function jumpInit() {
_jumpGoalX = 540;
_jumpGoalY = 100;
setMCDir("e");
}
function jumpStart() {
_vx = (_jumpGoalX - _mc._x) / _jumpFramesTotal;
_vy = (_jumpGoalY - _mc._y) / _jumpFramesTotal;
_jumpFrameCount = 0;
_vz = 10;
_gb._soundModule.PlaySound("toilenator_jump.wav", 60);
}
function jumpTween() {
_jumpFrameCount++;
moveXY(_vx, _vy - _vz);
if (_jumpFrameCount == _jumpFramesTotal) {
_mc._x = _jumpGoalX;
_mc._y = _jumpGoalY;
_fsm.SendMsg(_global.MSG_NextState, this);
}
_vz = _vz - 1;
if (_vz < 0) {
_vz = 0;
}
}
function zoomStart() {
var _local2 = [60, 540];
if (_jumpGoalX == _local2[0]) {
_jumpGoalX = _local2[1];
_mc._xscale = -100;
} else {
_jumpGoalX = _local2[0];
_mc._xscale = 100;
}
_vx = (_jumpGoalX - _mc._x) / _jumpFramesTotal;
_vy = (_jumpGoalY - _mc._y) / _jumpFramesTotal;
_jumpFrameCount = 0;
}
function zoomTween() {
_jumpFrameCount++;
moveXY(_vx, _vy - Math.sin((180 * _jumpFrameCount) / _jumpFramesTotal));
if (_jumpFrameCount == _jumpFramesTotal) {
_mc._x = _jumpGoalX;
_mc._y = _jumpGoalY;
if (_mc._y > 300) {
_fsm.SendMsg(_global.MSG_Stop, this);
} else {
_fsm.SendMsg(_global.MSG_NextState, this);
}
}
_vz = _vz - 1;
}
function checkCollision() {
if (!_gb._hero.getCollEnabled()) {
return(undefined);
}
var _local5 = _gb._hero._mc;
var _local4 = _local5._x;
var _local3 = _local5._y;
if (((_mc.hitArea.hitTest(_local4, _local3, true) || (_mc.hitArea.hitTest(_local4, _local3 - 38, true))) || (_mc.hitArea.hitTest(_local4 - 14, _local3 - 19, true))) || (_mc.hitArea.hitTest(_local4 + 14, _local3 - 19, true))) {
_fsm.SendMsg(_global.MSG_Hit, _gb._hero);
_fsm.SendMsg(_global.MSG_TargetCaught, this);
_heroHit = true;
}
}
function checkSignCollision() {
if (!_gb._hero.getCollEnabled()) {
return(undefined);
}
var _local3 = _gb._hero._mc;
if (_mc.sign_mc.hitArea.hitTest(_local3.hitArea)) {
_fsm.SendMsg(_global.MSG_Hit, _gb._hero);
}
}
function isDead() {
return(Boolean(_health <= 0));
}
function updateHealthBar() {
if (_health <= 0) {
return(undefined);
}
_healthBarMC._visible = true;
_healthBarMC._x = _mc._x;
_healthBarMC._y = _mc._y - 50;
_healthBarMC.gotoAndStop(Math.floor((100 * _health) / _healthMax));
_global.setTimeout(this, "hideHealthBar", 300);
}
function hideHealthBar() {
_healthBarMC._visible = false;
}
function takeDamage(n) {
flashSprite();
_health = _health - n;
updateHealthBar();
if (isDead()) {
_fsm.SetState(STATE_DEAD);
}
}
function STATE_Global_Message(oMsg) {
}
function STATE_Init_Update(Void) {
_fsm.SetState(_INIT_STATE);
}
function STATE_Init_Exit(Void) {
}
function STATE_Spin1Start_Enter() {
_heroHit = false;
_vx = -10;
_vy = 10;
var _local2 = _spriteController.PlayAnimation("spin1_start");
_mc.gotoAndStop(_local2);
}
function STATE_Spin1Start_Update() {
_mc.gotoAndStop(_spriteController.Update());
if (_spriteController.AnimationComplete()) {
_fsm.SetState(STATE_SPIN1_LOOP);
}
}
function STATE_Spin1Start_Message(oMsg) {
}
function STATE_Spin1Start_Exit() {
}
function STATE_Spin1Loop_Enter() {
_fsm.SendDelayedMsgToMe(10, _global.MSG_Stop);
var _local3 = _spriteController.PlayAnimation("spin1_loop");
_mc.gotoAndStop(_local3);
_gb._soundModule.PlaySound("362_wind_loop.wav", 100, 0, 0, 9999);
}
function STATE_Spin1Loop_Update() {
bounce();
checkCollision();
_mc.gotoAndStop(_spriteController.Update());
}
function STATE_Spin1Loop_Message(oMsg) {
switch (oMsg.GetMsgName()) {
case _global.MSG_Stop :
_fsm.SetState(STATE_DIZZY);
break;
case _global.MSG_TargetCaught :
_fsm.SetState(STATE_JUMP);
}
}
function STATE_Spin1Loop_Exit() {
_gb._soundModule.StopSound("362_wind_loop.wav");
}
function STATE_Spin2Start_Enter() {
_heroHit = false;
zoomStart();
var _local2 = _spriteController.PlayAnimation("spin2_start");
_mc.gotoAndStop(_local2);
}
function STATE_Spin2Start_Update() {
_mc.gotoAndStop(_spriteController.Update());
if (_spriteController.AnimationComplete()) {
_fsm.SetState(STATE_SPIN2_LOOP);
}
}
function STATE_Spin2Start_Message(oMsg) {
}
function STATE_Spin2Start_Exit() {
}
function STATE_Spin2Loop_Enter() {
var _local2 = _spriteController.PlayAnimation("spin2_loop");
_mc.gotoAndStop(_local2);
_gb._soundModule.PlaySound("362_wind_loop.wav", 100, 0, 0, 9999);
}
function STATE_Spin2Loop_Update() {
zoomTween();
checkCollision();
_mc.gotoAndStop(_spriteController.Update());
}
function STATE_Spin2Loop_Message(oMsg) {
switch (oMsg.GetMsgName()) {
case _global.MSG_Stop :
_fsm.SetState(STATE_THROWJUMP);
break;
case _global.MSG_NextState :
_jumpGoalY = _jumpGoalY + 75;
_fsm.SetState(STATE_JUMP);
break;
case _global.MSG_TargetCaught :
_fsm.SetState(STATE_THROWJUMP);
}
}
function STATE_Spin2Loop_Exit() {
_gb._soundModule.StopSound("362_wind_loop.wav");
}
function STATE_Jump_Enter() {
jumpStart();
var _local2 = _spriteController.PlayAnimation("jump");
_mc.gotoAndStop(_local2);
}
function STATE_Jump_Update() {
_mc.gotoAndStop(_spriteController.Update());
jumpTween();
checkCollision();
}
function STATE_Jump_Message(oMsg) {
if (!(oMsg.GetMsgName() === _global.MSG_NextState)) {
} else {
_fsm.SetState(STATE_SPIN2_START);
}
}
function STATE_Jump_Exit() {
}
function STATE_Dizzy_Enter() {
_fsm.SendDelayedMsgToMe(4, _global.MSG_Run);
var _local3 = _spriteController.PlayAnimation("dizzy");
_mc.gotoAndStop(_local3);
}
function STATE_Dizzy_Update() {
_mc.gotoAndStop(_spriteController.Update());
}
function STATE_Dizzy_Message(oMsg) {
switch (oMsg.GetMsgName()) {
case _global.MSG_Run :
_fsm.SetState(STATE_JUMP);
break;
case _global.MSG_BulletHit :
takeDamage(5);
break;
case _global.MSG_Unzombify :
takeDamage(10);
}
}
function STATE_Dizzy_Exit() {
}
function STATE_ThrowJump_Enter() {
_jumpGoalX = 300;
_jumpGoalY = 100;
jumpStart();
var _local2 = _spriteController.PlayAnimation("jump");
_mc.gotoAndStop(_local2);
}
function STATE_ThrowJump_Update() {
_mc.gotoAndStop(_spriteController.Update());
jumpTween();
checkCollision();
}
function STATE_ThrowJump_Message(oMsg) {
if (!(oMsg.GetMsgName() === _global.MSG_NextState)) {
} else {
_fsm.SetState(STATE_THROW);
}
}
function STATE_ThrowJump_Exit() {
}
function STATE_Throw_Enter() {
var _local2 = _spriteController.PlayAnimation("signthrow");
_mc.gotoAndStop(_local2);
}
function STATE_Throw_Update() {
_mc.gotoAndStop(_spriteController.Update());
if (_spriteController.GetCurrentFrame() == 73) {
_gb._soundModule.PlaySound("362_swing_weapon.wav");
}
if (_spriteController.AnimationComplete()) {
_fsm.SendMsg(_global.MSG_NextState, this);
}
checkSignCollision();
}
function STATE_Throw_Message(oMsg) {
switch (oMsg.GetMsgName()) {
case _global.MSG_BulletHit :
takeDamage(5);
break;
case _global.MSG_Unzombify :
takeDamage(10);
break;
case _global.MSG_NextState :
jumpInit();
_fsm.SetState(STATE_SPIN1_START);
}
}
function STATE_Throw_Exit() {
}
function STATE_Dead_Enter() {
_mc.swapDepths(200);
_gb._soundModule.StopSound("362_wind_loop.wav");
_gb._soundModule.PlaySound("boss_death_snds.wav");
var _local2 = _spriteController.PlayAnimation("dead");
_mc.gotoAndStop(_local2);
}
function STATE_Dead_Update() {
_mc.gotoAndStop(_spriteController.Update());
}
function toString() {
return("Boss362()");
}
var STATE_GLOBAL = 0;
var STATE_INIT = 1;
var STATE_IDLE = 2;
var STATE_SPIN1_START = 3;
var STATE_SPIN1_LOOP = 4;
var STATE_JUMP = 5;
var STATE_SPIN2_START = 6;
var STATE_SPIN2_LOOP = 7;
var STATE_THROW = 8;
var STATE_THROWJUMP = 9;
var STATE_DIZZY = 10;
var STATE_DEAD = 11;
var _INIT_STATE = Boss_362.prototype.STATE_JUMP;
var _cRad = 10;
var _collOffsetX = 0;
var _collOffsetY = -20;
var _z = 0;
var _vz = 0;
var _jumpFramesTotal = 19;
var _jumpFrameCount = 0;
var _healthMax = 300;
var _heroHit = false;
}
Symbol 1512 MovieClip [__Packages.Boss_Toilenator] Frame 0
class Boss_Toilenator
{
var _gb, _mc, _jumpInterval, _healthBarMC, _health, _spriteController, _animKey, _states, _fsm, _collObj, _vy, _jumpGoalX, _jumpGoalY, _vx;
function Boss_Toilenator (gb, mc, idx) {
_gb = gb;
_mc = mc;
_jumpInterval = {};
_healthBarMC = _gb.attachMovie("bossBar", "bossBar", 20000);
_health = _healthMax;
hideHealthBar();
_spriteController = new Standard.SpriteController();
_animKey = {idle:{frames:[1, 1, 2, 2, 3, 3, 4, 4], loop:true}, attack_side_start:{frames:[20, 20, 21, 21, 22, 22, 23, 23, 23, 23, 23, 23], loop:false}, attack_side_loop:{frames:[24, 24, 25, 25, 26, 26, 27, 27], loop:true}, attack_front_start:{frames:[40, 40, 41, 41, 42, 42, 43, 43, 43, 43, 43, 43], loop:true}, attack_front_loop:{frames:[44, 44, 45, 45, 46, 46, 47, 47], loop:true}, attack_ceiling_start:{frames:[60], loop:false}, attack_ceiling_drop:{frames:[60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 69, 70, 70, 69, 69, 68, 68, 69, 69, 70, 70, 69, 69, 68, 68, 69, 69, 70, 70, 69, 69, 68, 68, 71, 72, 73, 60], loop:false}, attack_spin_start:{frames:[80, 80, 81, 81, 82, 82, 83, 83], loop:false}, attack_spin_loop:{frames:[84, 84, 84, 85, 85, 85, 86, 86, 86, 87, 87, 87, 88, 88, 88, 89, 89, 89, 90, 90, 90, 91, 91, 91, 92, 92, 92, 93, 93, 93, 94, 94, 94, 95, 95, 95, 96, 96, 96, 97, 97, 97, 98, 98, 98, 99, 99, 99, 100, 100, 100, 101, 101, 101, 102, 102, 102, 103, 103, 103, 104, 104, 104, 105, 105, 105, 106, 106, 106, 107, 107, 107, 84, 84, 84, 85, 85, 85, 86, 86, 86, 87, 87, 87, 88, 88, 88, 89, 89, 89, 90, 90, 90, 91, 91, 91, 92, 92, 92, 93, 93, 93, 94, 94, 94, 95, 95, 95, 96, 96, 96, 97, 97, 97, 98, 98, 98, 99, 99, 99, 100, 100, 100, 101, 101, 101, 102, 102, 102, 103, 103, 103, 104, 104, 104, 105, 105, 105, 106, 106, 106, 107, 107, 107], loop:true}, hit:{frames:[120], loop:false}, jump:{frames:[140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159], loop:false}, dead:{frames:[174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231], loop:false}};
_spriteController.SetKey(_animKey);
_states = ["STATE_Global", "STATE_Init", "STATE_Idle", "STATE_AttackSideStart", "STATE_AttackSideLoop", "STATE_AttackFrontStart", "STATE_AttackFrontLoop", "STATE_AttackCeilingStart", "STATE_AttackCeilingDrop", "STATE_AttackSpinStart", "STATE_AttackSpinLoop", "STATE_JumpHoriz", "STATE_JumpVert", "STATE_Dead"];
_fsm = new Standard.Simple_FSM(this, _states, _gb._time, _gb._msgRoute);
_collObj = new Standard.Geometry.Circle(_mc._x + _collOffsetX, _mc._y + _collOffsetY, _cRad);
}
function init(x, y) {
_fsm.SetState(STATE_INIT);
moveTo(x, y);
var _local2 = 200 + (_mc._y * 1000);
_mc.swapDepths(_local2);
var _local3 = _spriteController.PlayAnimation("idle");
_mc.gotoAndStop(_local3);
jumpInit();
}
function update() {
var _local2 = 200 + (_mc._y * 1000);
_mc.swapDepths(_local2);
_fsm.Update();
}
function GetStateMachine(Void) {
return(_fsm);
}
function follow() {
var _local3 = (_gb._hero._mc._x - _mc._x) / 8;
var _local2 = (_gb._hero._mc._y - _mc._y) / 8;
moveTo(_mc._x + _local3, _mc._y + _local2);
}
function getCollObject() {
return(_collObj);
}
function knockback() {
_vy = -1;
}
function moveXY(dx, dy) {
moveTo(_mc._x + dx, _mc._y + dy);
}
function moveTo(x, y) {
if (y > 450) {
y = 0;
}
_mc._x = x;
_mc._y = y;
_collObj.setPos(_mc._x + _collOffsetX, _mc._y + _collOffsetY);
}
function setMCDir(sDir) {
if (sDir == "w") {
_mc._xscale = 100;
} else {
_mc._xscale = -100;
}
}
function jumpInit() {
_jumpGoalX = 400;
_jumpGoalY = 110;
_vy = 0;
_vx = 10;
setMCDir("e");
}
function jumpStart(typ) {
var _local3 = [120, 260, 30, 500, 300];
var _local2 = [200, 340, 100, 240];
if (typ == "horiz") {
_jumpGoalX = _local3[_jumpCount];
_jumpGoalY = 110;
} else if (typ == "vert") {
_jumpGoalX = 300;
_jumpGoalY = _local2[_jumpCount];
}
_vx = (_jumpGoalX - _mc._x) / _jumpFramesTotal;
_vy = (_jumpGoalY - _mc._y) / _jumpFramesTotal;
_jumpFrameCount = 0;
_vz = 10;
_gb._soundModule.PlaySound("toilenator_jump.wav", 60);
}
function jumpTween() {
_jumpFrameCount++;
var _local3 = 10;
moveXY(_vx, _vy - _vz);
if (_jumpFrameCount == _jumpFramesTotal) {
moveTo(_jumpGoalX, _jumpGoalY);
_fsm.SendMsg(_global.MSG_NextState, this);
}
_vz = _vz - 1;
if (_vz < 0) {
_vz = 0;
}
}
function zoomStart() {
var _local2 = [60, 540];
if (_jumpGoalX == _local2[0]) {
_jumpGoalX = _local2[1];
_mc._xscale = -100;
} else {
_jumpGoalX = _local2[0];
_mc._xscale = 100;
}
_vx = (_jumpGoalX - _mc._x) / _jumpFramesTotal;
_vy = (_jumpGoalY - _mc._y) / _jumpFramesTotal;
_jumpFrameCount = 0;
}
function zoomTween() {
_jumpFrameCount++;
moveXY(_vx, _vy - Math.sin((180 * _jumpFrameCount) / _jumpFramesTotal));
if (_jumpFrameCount == _jumpFramesTotal) {
moveTo(_jumpGoalX, _jumpGoalY);
if (_mc._y > 300) {
_fsm.SendMsg(_global.MSG_Stop, this);
} else {
_fsm.SendMsg(_global.MSG_NextState, this);
}
}
_vz = _vz - 1;
}
function flashSprite() {
var _local4 = new flash.geom.ColorTransform(1, 1, 1, 1, 0, -200, -200, 0);
var _local3 = new flash.geom.Transform(_mc);
_local3.colorTransform = _local4;
_global.setTimeout(this, "restoreSprite", 150);
}
function restoreSprite() {
var _local3 = new flash.geom.ColorTransform(1, 1, 1, 1, 0, 0, 0, 0);
var _local2 = new flash.geom.Transform(_mc);
_local2.colorTransform = _local3;
}
function checkCollision() {
if (!_gb._hero.getCollEnabled()) {
return(undefined);
}
var _local5 = _gb._hero._mc;
var _local4 = _local5._x;
var _local3 = _local5._y;
if (((_mc.hitArea.hitTest(_local4, _local3, true) || (_mc.hitArea.hitTest(_local4, _local3 - 38, true))) || (_mc.hitArea.hitTest(_local4 - 14, _local3 - 19, true))) || (_mc.hitArea.hitTest(_local4 + 14, _local3 - 19, true))) {
_fsm.SendMsg(_global.MSG_Hit, _gb._hero);
_fsm.SendMsg(_global.MSG_TargetCaught, this);
_heroHit = true;
}
}
function checkTPCollision() {
if (!_gb._hero.getCollEnabled()) {
return(undefined);
}
var _local5 = _gb._hero._mc;
var _local4 = _local5._x;
var _local3 = _local5._y;
if (((_mc.tpHitArea.hitTest(_local4, _local3, true) || (_mc.tpHitArea.hitTest(_local4, _local3 - 38, true))) || (_mc.tpHitArea.hitTest(_local4 - 14, _local3 - 19, true))) || (_mc.tpHitArea.hitTest(_local4 + 14, _local3 - 19, true))) {
_fsm.SendMsg(_global.MSG_Hit, _gb._hero);
}
}
function isDead() {
return(Boolean(_health <= 0));
}
function updateHealthBar() {
if (_health <= 0) {
return(undefined);
}
_healthBarMC._visible = true;
_healthBarMC._x = _mc._x;
_healthBarMC._y = _mc._y - 50;
_healthBarMC.gotoAndStop(Math.floor((100 * _health) / _healthMax));
_global.setTimeout(this, "hideHealthBar", 300);
}
function hideHealthBar() {
_healthBarMC._visible = false;
}
function takeDamage(n) {
flashSprite();
_health = _health - n;
updateHealthBar();
if (isDead()) {
_fsm.SetState(STATE_DEAD);
}
}
function STATE_Global_Message(oMsg) {
}
function STATE_Init_Update(Void) {
_fsm.SetState(_INIT_STATE);
}
function STATE_Init_Exit(Void) {
}
function STATE_AttackFrontStart_Enter() {
var _local3 = _spriteController.PlayAnimation("attack_front_start");
_mc.gotoAndStop(_local3);
if (_jumpCount == 6) {
_jumpCount = 0;
_fsm.SendMsg(_global.MSG_NextState, this);
} else {
_fsm.SendDelayedMsgToMe(2, _global.MSG_Stop);
}
}
function STATE_AttackFrontStart_Update() {
checkCollision();
_mc.gotoAndStop(_spriteController.Update());
if (_spriteController.AnimationComplete()) {
_fsm.SetState(STATE_ATTACK_FRONT_LOOP);
}
}
function STATE_AttackFrontStart_Message(oMsg) {
switch (oMsg.GetMsgName()) {
case _global.MSG_NextState :
_fsm.SetState(STATE_ATTACK_SIDE_START);
break;
case _global.MSG_BulletHit :
takeDamage(5);
}
}
function STATE_AttackFrontStart_Exit() {
}
function STATE_AttackFrontLoop_Enter() {
var _local2 = _spriteController.PlayAnimation("attack_front_loop");
_mc.gotoAndStop(_local2);
_gb._soundModule.PlaySound("toilet_paper_loops.wav", 100, 0, 0, 9999);
}
function STATE_AttackFrontLoop_Update() {
_mc.gotoAndStop(_spriteController.Update());
checkTPCollision();
checkCollision();
}
function STATE_AttackFrontLoop_Message(oMsg) {
switch (oMsg.GetMsgName()) {
case _global.MSG_NextState :
_fsm.SetState(STATE_ATTACK_SIDE_START);
break;
case _global.MSG_Stop :
_fsm.SetState(STATE_JUMP_HORIZ);
break;
case _global.MSG_BulletHit :
takeDamage(5);
break;
case _global.MSG_Unzombify :
takeDamage(10);
}
}
function STATE_AttackFrontLoop_Exit() {
_gb._soundModule.StopSound("toilet_paper_loops.wav");
}
function STATE_AttackSideStart_Enter() {
var _local3 = _spriteController.PlayAnimation("attack_side_start");
_mc.gotoAndStop(_local3);
if (_jumpCount == 4) {
_jumpCount = 0;
_fsm.SendMsg(_global.MSG_NextState, this);
} else {
_fsm.SendDelayedMsgToMe(2, _global.MSG_Stop);
}
}
function STATE_AttackSideStart_Update() {
checkCollision();
_mc.gotoAndStop(_spriteController.Update());
if (_spriteController.AnimationComplete()) {
_fsm.SetState(STATE_ATTACK_SIDE_LOOP);
}
}
function STATE_AttackSideStart_Message(oMsg) {
switch (oMsg.GetMsgName()) {
case _global.MSG_NextState :
_fsm.SetState(STATE_ATTACK_SPIN_START);
break;
case _global.MSG_BulletHit :
takeDamage(5);
}
}
function STATE_AttackSideStart_Exit() {
}
function STATE_AttackSideLoop_Enter() {
var _local2 = _spriteController.PlayAnimation("attack_side_loop");
_mc.gotoAndStop(_local2);
_gb._soundModule.PlaySound("toilet_paper_loops.wav", 100, 0, 0, 9999);
}
function STATE_AttackSideLoop_Update() {
_mc.gotoAndStop(_spriteController.Update());
checkTPCollision();
checkCollision();
}
function STATE_AttackSideLoop_Message(oMsg) {
switch (oMsg.GetMsgName()) {
case _global.MSG_NextState :
_fsm.SetState(STATE_ATTACK_SIDE_START);
break;
case _global.MSG_Stop :
_fsm.SetState(STATE_JUMP_VERT);
break;
case _global.MSG_BulletHit :
takeDamage(5);
break;
case _global.MSG_Unzombify :
takeDamage(10);
}
}
function STATE_AttackSideLoop_Exit() {
_gb._soundModule.StopSound("toilet_paper_loops.wav");
}
function STATE_AttackSpinStart_Enter() {
var _local2 = _spriteController.PlayAnimation("attack_spin_start");
_mc.gotoAndStop(_local2);
}
function STATE_AttackSpinStart_Update() {
checkCollision();
_mc.gotoAndStop(_spriteController.Update());
if (_spriteController.AnimationComplete()) {
_fsm.SetState(STATE_ATTACK_SPIN_LOOP);
}
}
function STATE_AttackSpinStart_Message(oMsg) {
}
function STATE_AttackSpinStart_Exit() {
}
function STATE_AttackSpinLoop_Enter() {
var _local2 = _spriteController.PlayAnimation("attack_spin_loop");
_mc.gotoAndStop(_local2);
_gb._soundModule.PlaySound("toilet_paper_loops.wav", 100, 0, 0, 9999);
}
function STATE_AttackSpinLoop_Update() {
checkTPCollision();
checkCollision();
_mc.gotoAndStop(_spriteController.Update());
if (_spriteController.AnimationComplete()) {
_fsm.SendMsg(_global.MSG_NextState, this);
}
}
function STATE_AttackSpinLoop_Message(oMsg) {
switch (oMsg.GetMsgName()) {
case _global.MSG_NextState :
_fsm.SetState(STATE_ATTACK_CEILING_START);
break;
case _global.MSG_BulletHit :
takeDamage(5);
break;
case _global.MSG_Unzombify :
takeDamage(10);
}
}
function STATE_AttackSpinLoop_Exit() {
_gb._soundModule.StopSound("toilet_paper_loops.wav");
}
function STATE_AttackCeilingStart_Enter() {
var _local3 = _spriteController.PlayAnimation("attack_ceiling_start");
_mc.gotoAndStop(_local3);
_fsm.SendDelayedMsgToMe(5, _global.MSG_Run);
}
function STATE_AttackCeilingStart_Update() {
follow();
_mc.gotoAndStop(_spriteController.Update());
}
function STATE_AttackCeilingStart_Message(oMsg) {
if (!(oMsg.GetMsgName() === _global.MSG_Run)) {
} else {
_fsm.SetState(STATE_ATTACK_CEILING_DROP);
}
}
function STATE_AttackCeilingStart_Exit() {
}
function STATE_AttackCeilingDrop_Enter() {
var _local2 = _spriteController.PlayAnimation("attack_ceiling_drop");
_mc.gotoAndStop(_local2);
_dropCount++;
_gb._soundModule.PlaySound("toilenator_drop_from_top.wav", 120);
}
function STATE_AttackCeilingDrop_Update() {
checkCollision();
_mc.gotoAndStop(_spriteController.Update());
if (_spriteController.AnimationComplete()) {
if (_dropCount == 6) {
_fsm.SendMsg(_global.MSG_NextState, this);
} else {
_fsm.SendMsg(_global.MSG_Stop, this);
}
}
}
function STATE_AttackCeilingDrop_Message(oMsg) {
switch (oMsg.GetMsgName()) {
case _global.MSG_Stop :
_fsm.SetState(STATE_ATTACK_CEILING_START);
break;
case _global.MSG_NextState :
_dropCount = 0;
_jumpCount = 0;
_fsm.SetState(STATE_JUMP_HORIZ);
break;
case _global.MSG_BulletHit :
takeDamage(5);
break;
case _global.MSG_Unzombify :
takeDamage(10);
}
}
function STATE_AttackCeilingDrop_Exit() {
}
function STATE_JumpHoriz_Enter() {
var _local3 = -1 + (2 * (_jumpCount % 2));
jumpStart("horiz");
var _local2 = _spriteController.PlayAnimation("jump");
_mc.gotoAndStop(_local2);
_jumpCount++;
}
function STATE_JumpHoriz_Update() {
_mc.gotoAndStop(_spriteController.Update());
jumpTween();
checkCollision();
}
function STATE_JumpHoriz_Message(oMsg) {
switch (oMsg.GetMsgName()) {
case _global.MSG_NextState :
_fsm.SetState(STATE_ATTACK_FRONT_START);
break;
case _global.MSG_BulletHit :
takeDamage(5);
break;
case _global.MSG_Unzombify :
takeDamage(10);
}
}
function STATE_JumpHoriz_Exit() {
}
function STATE_JumpVert_Enter() {
var _local3 = -1 + (2 * (_jumpCount % 2));
jumpStart("vert");
var _local2 = _spriteController.PlayAnimation("jump");
_mc.gotoAndStop(_local2);
_jumpCount++;
}
function STATE_JumpVert_Update() {
_mc.gotoAndStop(_spriteController.Update());
jumpTween();
checkCollision();
}
function STATE_JumpVert_Message(oMsg) {
switch (oMsg.GetMsgName()) {
case _global.MSG_NextState :
_fsm.SetState(STATE_ATTACK_SIDE_START);
break;
case _global.MSG_BulletHit :
takeDamage(5);
break;
case _global.MSG_Unzombify :
takeDamage(10);
}
}
function STATE_JumpVert_Exit() {
}
function STATE_Dead_Enter() {
_mc.swapDepths(200);
var _local2 = _spriteController.PlayAnimation("dead");
_gb._soundModule.StopSound("toilet_paper_loops.wav");
_gb._soundModule.PlaySound("boss_death_snds.wav");
_mc.gotoAndStop(_local2);
}
function STATE_Dead_Update() {
_mc.gotoAndStop(_spriteController.Update());
}
function toString() {
return("Boss_Toilenator()");
}
var STATE_GLOBAL = 0;
var STATE_INIT = 1;
var STATE_IDLE = 2;
var STATE_ATTACK_SIDE_START = 3;
var STATE_ATTACK_SIDE_LOOP = 4;
var STATE_ATTACK_FRONT_START = 5;
var STATE_ATTACK_FRONT_LOOP = 6;
var STATE_ATTACK_CEILING_START = 7;
var STATE_ATTACK_CEILING_DROP = 8;
var STATE_ATTACK_SPIN_START = 9;
var STATE_ATTACK_SPIN_LOOP = 10;
var STATE_JUMP_HORIZ = 11;
var STATE_JUMP_VERT = 12;
var STATE_DEAD = 13;
var _INIT_STATE = Boss_Toilenator.prototype.STATE_ATTACK_FRONT_START;
var _cRad = 10;
var _collOffsetX = 0;
var _collOffsetY = -20;
var _z = 0;
var _vz = 0;
var _jumpFramesTotal = 19;
var _jumpFrameCount = 0;
var _healthMax = 300;
var _heroHit = false;
var _jumpCount = 0;
var _dropCount = 0;
}
Symbol 311 MovieClip [__Packages.mx.video.FLVPlayback] Frame 0
class mx.video.FLVPlayback extends MovieClip
{
var _autoPlay, _autoRewind, _autoSize, _bufferTime, _contentPath, _cuePoints, _idleTimeout, _isLive, _aspectRatio, _seekToPrevOffset, _playheadUpdateInterval, _progressInterval, _totalTime, _transform, _volume, _skinAutoHide, _bufferingBarHides, _origHeight, _prevHeight, __height, _height, _origWidth, _prevWidth, __width, _width, _scaleX, _scaleY, _xscale, _yscale, _preSeekTime, _firstStreamReady, _firstStreamShown, _activeVP, _visibleVP, _topVP, _vp, _vpState, _cpMgr, boundingBox_mc, preview_mc, dispatchEvent, _uiMgr, _bufferingBar, _backButton, __get__cuePoints, _forwardButton, _muteButton, _pauseButton, _playButton, _playPauseButton, _seekBar, _seekBarInterval, _seekBarScrubTolerance, _skin, _stopButton, _visible, _volumeBar, _volumeBarInterval, _volumeBarScrubTolerance, _x, _y, attachMovie, createEmptyMovieClip;
function FLVPlayback () {
super();
mx.events.EventDispatcher.initialize(this);
if (_autoPlay == undefined) {
_autoPlay = true;
}
if (_autoRewind == undefined) {
_autoRewind = true;
}
if (_autoSize == undefined) {
_autoSize = false;
}
if (_bufferTime == undefined) {
_bufferTime = 0.1;
}
if (_contentPath == undefined) {
_contentPath = "";
}
if (_cuePoints == undefined) {
_cuePoints = null;
}
if (_idleTimeout == undefined) {
_idleTimeout = mx.video.VideoPlayer.DEFAULT_IDLE_TIMEOUT_INTERVAL;
}
if (_isLive == undefined) {
_isLive = false;
}
if (_aspectRatio == undefined) {
_aspectRatio = true;
}
if (_seekToPrevOffset == undefined) {
_seekToPrevOffset = SEEK_TO_PREV_OFFSET_DEFAULT;
}
if (_playheadUpdateInterval == undefined) {
_playheadUpdateInterval = mx.video.VideoPlayer.DEFAULT_UPDATE_PROGRESS_INTERVAL;
}
if (_progressInterval == undefined) {
_progressInterval = mx.video.VideoPlayer.DEFAULT_UPDATE_TIME_INTERVAL;
}
if (_totalTime == undefined) {
_totalTime = 0;
}
if (_transform == undefined) {
_transform = null;
}
if (_volume == undefined) {
_volume = 100;
}
if (_skinAutoHide == undefined) {
_skinAutoHide = false;
}
if (_bufferingBarHides == undefined) {
_bufferingBarHides = false;
}
_origHeight = (_prevHeight = (__height = _height));
_origWidth = (_prevWidth = (__width = _width));
_scaleX = 100;
_scaleY = 100;
_xscale = 100;
_yscale = 100;
_preSeekTime = -1;
_firstStreamReady = false;
_firstStreamShown = false;
createUIManager();
_activeVP = 0;
_visibleVP = 0;
_topVP = 0;
_vp = new Array();
_vpState = new Array();
_cpMgr = new Array();
createVideoPlayer(0);
_vp[0].visible = false;
_vp[0].volume = 0;
boundingBox_mc._visible = false;
boundingBox_mc.unloadMovie();
delete boundingBox_mc;
if (_global.isLivePreview) {
createLivePreviewMovieClip();
setSize(__width, __height);
}
_cpMgr[0].processCuePointsProperty(_cuePoints);
delete _cuePoints;
_cuePoints = null;
}
function setSize(w, h) {
if (_global.isLivePreview) {
if (preview_mc == undefined) {
createLivePreviewMovieClip();
}
preview_mc.box_mc._width = w;
preview_mc.box_mc._height = h;
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;
}
}
if ((w == width) && (h == height)) {
return(undefined);
}
_prevWidth = (__width = w);
_prevHeight = (__height = h);
var _local3 = 0;
while (_local3 < _vp.length) {
if (_vp[_local3] != undefined) {
_vp[_local3].setSize(w, h);
}
_local3++;
}
dispatchEvent({type:"resize", x:x, y:y, width:w, height:h});
}
function setScale(xs, ys) {
if ((xs == scaleX) && (ys == scaleY)) {
return(undefined);
}
_scaleX = xs;
_scaleY = ys;
var _local2 = 0;
while (_local2 < _vp.length) {
if (_vp[_local2] != undefined) {
_vp[_local2].setSize((_origWidth * xs) / 100, (_origHeight * ys) / 100);
}
_local2++;
}
dispatchEvent({type:"resize", x:x, y:y, width:width, height:height});
}
function handleEvent(e) {
var _local3 = e.state;
if (((e.state != undefined) && (e.target._name == _visibleVP)) && (scrubbing)) {
_local3 = SEEKING;
}
if (e.type == "metadataReceived") {
_cpMgr[e.target._name].processFLVCuePoints(e.info.cuePoints);
dispatchEvent({type:e.type, info:e.info, vp:e.target._name});
} else if (e.type == "cuePoint") {
if (_cpMgr[e.target._name].isFLVCuePointEnabled(e.info)) {
dispatchEvent({type:e.type, info:e.info, vp:e.target._name});
}
} else if (e.type == "rewind") {
dispatchEvent({type:e.type, auto:true, state:_local3, playheadTime:e.playheadTime, vp:e.target._name});
_cpMgr[e.target._name].resetASCuePointIndex(e.playheadTime);
} else if (e.type == "resize") {
dispatchEvent({type:e.type, x:x, y:y, width:width, height:height, auto:true, vp:e.target._name});
_prevWidth = __width;
_prevHeight = __height;
} else if (e.type == "playheadUpdate") {
dispatchEvent({type:e.type, state:_local3, playheadTime:e.playheadTime, vp:e.target._name});
if ((_preSeekTime >= 0) && (e.target.state != SEEKING)) {
var _local5 = _preSeekTime;
_preSeekTime = -1;
_cpMgr[e.target._name].resetASCuePointIndex(e.playheadTime);
dispatchEvent({type:"seek", state:_local3, playheadTime:e.playheadTime, vp:e.target._name});
if (_local5 < e.playheadTime) {
dispatchEvent({type:"fastForward", state:_local3, playheadTime:e.playheadTime, vp:e.target._name});
} else if (_local5 > e.playheadTime) {
dispatchEvent({type:"rewind", auto:false, state:_local3, playheadTime:e.playheadTime, vp:e.target._name});
}
}
_cpMgr[e.target._name].dispatchASCuePoints();
} else if (e.type == "stateChange") {
var _local4 = e.target._name;
if ((_local4 == _visibleVP) && (scrubbing)) {
return(undefined);
}
if (e.state == mx.video.VideoPlayer.RESIZING) {
return(undefined);
}
if (((_vpState[_local4].prevState == LOADING) && (_vpState[_local4].autoPlay)) && (e.state == STOPPED)) {
return(undefined);
}
_vpState[_local4].prevState = e.state;
dispatchEvent({type:e.type, state:_local3, playheadTime:e.playheadTime, vp:e.target._name});
if (_vp[e.target._name].state != _local3) {
return(undefined);
}
switch (_local3) {
case BUFFERING :
dispatchEvent({type:"buffering", state:_local3, playheadTime:e.playheadTime, vp:e.target._name});
break;
case PAUSED :
dispatchEvent({type:"paused", state:_local3, playheadTime:e.playheadTime, vp:e.target._name});
break;
case PLAYING :
dispatchEvent({type:"playing", state:_local3, playheadTime:e.playheadTime, vp:e.target._name});
break;
case STOPPED :
dispatchEvent({type:"stopped", state:_local3, playheadTime:e.playheadTime, vp:e.target._name});
}
} else if (e.type == "progress") {
dispatchEvent({type:e.type, bytesLoaded:e.bytesLoaded, bytesTotal:e.bytesTotal, vp:e.target._name});
} else if (e.type == "ready") {
var _local4 = e.target._name;
if (!_firstStreamReady) {
if (_local4 == _visibleVP) {
_firstStreamReady = true;
if (_uiMgr.__get__skinReady() && (!_firstStreamShown)) {
_uiMgr.__set__visible(true);
showFirstStream();
}
}
} else if ((_firstStreamShown && (_local3 == STOPPED)) && _vpState[_local4].autoPlay) {
_vp[_local4].play();
}
dispatchEvent({type:e.type, state:_local3, playheadTime:e.playheadTime, vp:e.target._name});
} else if ((e.type == "close") || (e.type == "complete")) {
dispatchEvent({type:e.type, state:_local3, playheadTime:e.playheadTime, vp:e.target._name});
}
}
function load(contentPath, totalTime, isLive) {
if (_vp[_activeVP] == undefined) {
return(undefined);
}
if (((contentPath == undefined) || (contentPath == null)) || (contentPath == "")) {
return(undefined);
}
autoPlay = (false);
if (totalTime != undefined) {
this.totalTime = (totalTime);
}
if (isLive != undefined) {
this.isLive = (isLive);
}
this.contentPath = (contentPath);
}
function play(contentPath, totalTime, isLive) {
if (_vp[_activeVP] == undefined) {
return(undefined);
}
if (contentPath == undefined) {
_vp[_activeVP].play();
} else {
autoPlay = (true);
if (totalTime != undefined) {
this.totalTime = (totalTime);
}
if (isLive != undefined) {
this.isLive = (isLive);
}
this.contentPath = (contentPath);
}
}
function pause() {
if (_vp[_activeVP] == undefined) {
return(undefined);
}
_vp[_activeVP].pause();
}
function stop() {
if (_vp[_activeVP] == undefined) {
return(undefined);
}
_vp[_activeVP].stop();
}
function seek(time) {
if (_vp[_activeVP] == undefined) {
return(undefined);
}
_preSeekTime = playheadTime;
_vp[_activeVP].seek(time);
}
function seekSeconds(time) {
seek(time);
}
function seekPercent(percent) {
if (_vp[_activeVP] == undefined) {
return(undefined);
}
if (((((percent < 0) || (percent > 100)) || (_vp[_activeVP].totalTime == undefined)) || (_vp[_activeVP].totalTime == null)) || (_vp[_activeVP].totalTime <= 0)) {
throw new mx.video.VideoError(mx.video.VideoError.INVALID_SEEK);
}
seek((_vp[_activeVP].totalTime * percent) / 100);
}
function get playheadPercentage() {
if (((_vp[_activeVP].totalTime == undefined) || (_vp[_activeVP].totalTime == null)) || (_vp[_activeVP].totalTime <= 0)) {
return(undefined);
}
return((_vp[_activeVP].playheadTime / _vp[_activeVP].totalTime) * 100);
}
function set playheadPercentage(percent) {
seekPercent(percent);
//return(playheadPercentage);
}
function seekToNavCuePoint(timeNameOrCuePoint) {
var _local3;
switch (typeof(timeNameOrCuePoint)) {
case "string" :
_local3 = {name:timeNameOrCuePoint};
break;
case "number" :
_local3 = {time:timeNameOrCuePoint};
break;
case "object" :
_local3 = timeNameOrCuePoint;
}
if (((_local3.name == null) || (_local3.name == undefined)) || (typeof(_local3.name) != "string")) {
seekToNextNavCuePoint(_local3.time);
return(undefined);
}
if (isNaN(_local3.time)) {
_local3.time = 0;
}
var _local2 = findNearestCuePoint(timeNameOrCuePoint, NAVIGATION);
while ((_local2 != null) && ((_local2.time < _local3.time) || (!isFLVCuePointEnabled(_local2)))) {
_local2 = findNextCuePointWithName(_local2);
}
if (_local2 == null) {
throw new mx.video.VideoError(mx.video.VideoError.INVALID_SEEK);
}
seek(_local2.time);
}
function seekToNextNavCuePoint(time) {
if (_vp[_activeVP] == undefined) {
return(undefined);
}
if (isNaN(time) || (time < 0)) {
time = _vp[_activeVP].playheadTime + 0.001;
}
var _local3;
_local3 = findNearestCuePoint(time, NAVIGATION);
if (_local3 == null) {
seek(_vp[_activeVP].totalTime);
return(undefined);
}
var _local2 = _local3.index;
if (_local3.time < time) {
_local2++;
}
while ((_local2 < _local3.array.length) && (!isFLVCuePointEnabled(_local3.array[_local2]))) {
_local2++;
}
if (_local2 >= _local3.array.length) {
var _local5 = _vp[_activeVP].totalTime;
if (_local3.array[_local3.array.length - 1].time > _local5) {
_local5 = _local3.array[_local3.array.length - 1];
}
seek(_local5);
} else {
seek(_local3.array[_local2].time);
}
}
function seekToPrevNavCuePoint(time) {
if (_vp[_activeVP] == undefined) {
return(undefined);
}
if (isNaN(time) || (time < 0)) {
time = _vp[_activeVP].playheadTime;
}
var _local3 = findNearestCuePoint(time, NAVIGATION);
if (_local3 == null) {
seek(0);
return(undefined);
}
var _local2 = _local3.index;
while ((_local2 >= 0) && ((!isFLVCuePointEnabled(_local3.array[_local2])) || (_local3.array[_local2].time >= (time - _seekToPrevOffset)))) {
_local2--;
}
if (_local2 < 0) {
seek(0);
} else {
seek(_local3.array[_local2].time);
}
}
function addASCuePoint(timeOrCuePoint, name, parameters) {
return(_cpMgr[_activeVP].addASCuePoint(timeOrCuePoint, name, parameters));
}
function removeASCuePoint(timeNameOrCuePoint) {
return(_cpMgr[_activeVP].removeASCuePoint(timeNameOrCuePoint));
}
function findCuePoint(timeNameOrCuePoint, type) {
switch (type) {
case "event" :
return(_cpMgr[_activeVP].getCuePoint(_cpMgr[_activeVP].eventCuePoints, false, timeNameOrCuePoint));
case "navigation" :
return(_cpMgr[_activeVP].getCuePoint(_cpMgr[_activeVP].navCuePoints, false, timeNameOrCuePoint));
case "flv" :
return(_cpMgr[_activeVP].getCuePoint(_cpMgr[_activeVP].flvCuePoints, false, timeNameOrCuePoint));
case "actionscript" :
return(_cpMgr[_activeVP].getCuePoint(_cpMgr[_activeVP].asCuePoints, false, timeNameOrCuePoint));
case "all" :
}
return(_cpMgr[_activeVP].getCuePoint(_cpMgr[_activeVP].allCuePoints, false, timeNameOrCuePoint));
}
function findNearestCuePoint(timeNameOrCuePoint, type) {
switch (type) {
case "event" :
return(_cpMgr[_activeVP].getCuePoint(_cpMgr[_activeVP].eventCuePoints, true, timeNameOrCuePoint));
case "navigation" :
return(_cpMgr[_activeVP].getCuePoint(_cpMgr[_activeVP].navCuePoints, true, timeNameOrCuePoint));
case "flv" :
return(_cpMgr[_activeVP].getCuePoint(_cpMgr[_activeVP].flvCuePoints, true, timeNameOrCuePoint));
case "actionscript" :
return(_cpMgr[_activeVP].getCuePoint(_cpMgr[_activeVP].asCuePoints, true, timeNameOrCuePoint));
case "all" :
}
return(_cpMgr[_activeVP].getCuePoint(_cpMgr[_activeVP].allCuePoints, true, timeNameOrCuePoint));
}
function findNextCuePointWithName(cuePoint) {
return(_cpMgr[_activeVP].getNextCuePointWithName(cuePoint));
}
function setFLVCuePointEnabled(enabled, timeNameOrCuePoint) {
return(_cpMgr[_activeVP].setFLVCuePointEnabled(enabled, timeNameOrCuePoint));
}
function isFLVCuePointEnabled(timeNameOrCuePoint) {
return(_cpMgr[_activeVP].isFLVCuePointEnabled(timeNameOrCuePoint));
}
function getNextHighestDepth() {
var _local2 = super.getNextHighestDepth();
return(((_local2 < 1000) ? 1000 : (_local2)));
}
function bringVideoPlayerToFront(index) {
if ((index == _topVP) || (_vp[index] == undefined)) {
return(undefined);
}
_vp[_topVP].swapDepths(_vp[index].getDepth());
_topVP = index;
}
function getVideoPlayer(index) {
return(_vp[index]);
}
function closeVideoPlayer(index) {
if (_vp[index] == undefined) {
return(undefined);
}
if (index == 0) {
throw new mx.video.VideoError(mx.video.VideoError.DELETE_DEFAULT_PLAYER);
}
if (_visibleVP == index) {
visibleVideoPlayerIndex = (0);
}
if (_activeVP == index) {
activeVideoPlayerIndex = (0);
}
_vp[index].close();
_vp[index].unloadMovie();
delete _vp[index];
_vp[index] = undefined;
}
function get activeVideoPlayerIndex() {
return(_activeVP);
}
function set activeVideoPlayerIndex(i) {
if (_activeVP == i) {
return;
}
if (_vp[_activeVP].onEnterFrame != undefined) {
doContentPathConnect();
}
_activeVP = i;
if (_vp[_activeVP] == undefined) {
createVideoPlayer(_activeVP);
_vp[_activeVP].visible = false;
_vp[_activeVP].volume = 0;
}
//return(activeVideoPlayerIndex);
}
function get autoPlay() {
if (_vpState[_activeVP] == undefined) {
return(_autoPlay);
}
return(_vpState[_activeVP].autoPlay);
}
function set autoPlay(flag) {
if ((_activeVP == 0) || (_activeVP == undefined)) {
_autoPlay = flag;
}
_vpState[_activeVP].autoPlay = flag;
//return(autoPlay);
}
function get autoRewind() {
if (_vp[_activeVP] == undefined) {
return(_autoRewind);
}
return(_vp[_activeVP].autoRewind);
}
function set autoRewind(flag) {
if ((_activeVP == 0) || (_activeVP == undefined)) {
_autoRewind = flag;
}
_vp[_activeVP].autoRewind = flag;
//return(autoRewind);
}
function get autoSize() {
if (_vp[_activeVP] == undefined) {
return(_autoSize);
}
return(_vp[_activeVP].autoSize);
}
function set autoSize(flag) {
if ((_activeVP == 0) || (_activeVP == undefined)) {
_autoSize = flag;
}
_vp[_activeVP].autoSize = flag;
//return(autoSize);
}
function get bitrate() {
return(ncMgr.getBitrate());
}
function set bitrate(b) {
ncMgr.setBitrate(b);
//return(bitrate);
}
function get buffering() {
if (_vp[_activeVP] == undefined) {
return(false);
}
return(_vp[_activeVP].state == BUFFERING);
}
function get bufferingBar() {
if ((_uiMgr != null) && (_uiMgr != undefined)) {
_bufferingBar = _uiMgr.getControl(mx.video.UIManager.BUFFERING_BAR);
}
return(_bufferingBar);
}
function set bufferingBar(s) {
_bufferingBar = s;
if ((_uiMgr != null) && (_uiMgr != undefined)) {
_uiMgr.setControl(mx.video.UIManager.BUFFERING_BAR, s);
}
//return(bufferingBar);
}
function get bufferingBarHidesAndDisablesOthers() {
if ((_uiMgr != null) && (_uiMgr != undefined)) {
_bufferingBarHides = _uiMgr.bufferingBarHidesAndDisablesOthers;
}
return(_bufferingBarHides);
}
function set bufferingBarHidesAndDisablesOthers(b) {
_bufferingBarHides = b;
if ((_uiMgr != null) && (_uiMgr != undefined)) {
_uiMgr.__set__bufferingBarHidesAndDisablesOthers(b);
}
//return(bufferingBarHidesAndDisablesOthers);
}
function get backButton() {
if ((_uiMgr != null) && (_uiMgr != undefined)) {
_backButton = _uiMgr.getControl(mx.video.UIManager.BACK_BUTTON);
}
return(_backButton);
}
function set backButton(s) {
_backButton = s;
if ((_uiMgr != null) && (_uiMgr != undefined)) {
_uiMgr.setControl(mx.video.UIManager.BACK_BUTTON, s);
}
//return(backButton);
}
function get bufferTime() {
if (_vp[_activeVP] == undefined) {
return(_bufferTime);
}
return(_vp[_activeVP].bufferTime);
}
function set bufferTime(aTime) {
if ((_activeVP == 0) || (_activeVP == undefined)) {
_bufferTime = aTime;
}
_vp[_activeVP].bufferTime = aTime;
//return(bufferTime);
}
function get bytesLoaded() {
return(_vp[_activeVP].bytesLoaded);
}
function get bytesTotal() {
return(_vp[_activeVP].bytesTotal);
}
function get contentPath() {
if ((_vp[_activeVP] == undefined) || (_vp[_activeVP].onEnterFrame != undefined)) {
return(_contentPath);
}
return(_vp[_activeVP].url);
}
function set contentPath(url) {
if (_global.isLivePreview) {
return;
}
if (_vp[_activeVP] == undefined) {
if (url == _contentPath) {
return;
}
_contentPath = url;
} else {
if (_vp[_activeVP].url == url) {
return;
}
_vpState[_activeVP].minProgressPercent = undefined;
if (_vp[_activeVP].onEnterFrame != undefined) {
delete _vp[_activeVP].onEnterFrame;
_vp[_activeVP].onEnterFrame = undefined;
}
_cpMgr[_activeVP].reset();
if (_vpState[_activeVP].autoPlay && (_firstStreamShown)) {
_vp[_activeVP].play(url, _vpState[_activeVP].isLive, _vpState[_activeVP].totalTime);
} else {
_vp[_activeVP].load(url, _vpState[_activeVP].isLive, _vpState[_activeVP].totalTime);
}
_vpState[_activeVP].isLiveSet = false;
_vpState[_activeVP].totalTimeSet = false;
}
//return(contentPath);
}
function set cuePoints(cp) {
if (_cuePoints != undefined) {
return;
}
_cuePoints = cp;
//return(__get__cuePoints());
}
function get forwardButton() {
if ((_uiMgr != null) && (_uiMgr != undefined)) {
_forwardButton = _uiMgr.getControl(mx.video.UIManager.FORWARD_BUTTON);
}
return(_forwardButton);
}
function set forwardButton(s) {
_forwardButton = s;
if ((_uiMgr != null) && (_uiMgr != undefined)) {
_uiMgr.setControl(mx.video.UIManager.FORWARD_BUTTON, s);
}
//return(forwardButton);
}
function get height() {
if (_global.isLivePreview) {
return(__height);
}
if (_vp[_visibleVP] != undefined) {
__height = _vp[_visibleVP].height;
}
return(__height);
}
function set height(h) {
setSize(width, h);
//return(height);
}
function get idleTimeout() {
if (_vp[_activeVP] == undefined) {
return(_idleTimeout);
}
return(_vp[_activeVP].idleTimeout);
}
function set idleTimeout(aTime) {
if ((_activeVP == 0) || (_activeVP == undefined)) {
_idleTimeout = aTime;
}
_vp[_activeVP].idleTimeout = aTime;
//return(idleTimeout);
}
function get isRTMP() {
if (_global.isLivePreview) {
return(true);
}
if (_vp[_activeVP] == undefined) {
return(undefined);
}
return(_vp[_activeVP].isRTMP);
}
function get isLive() {
if (_vp[_activeVP] == undefined) {
return(_isLive);
}
if (_vpState[_activeVP].isLiveSet) {
return(_vpState[_activeVP].isLive);
}
return(_vp[_activeVP].isLive);
}
function set isLive(flag) {
if ((_activeVP == 0) || (_activeVP == undefined)) {
_isLive = flag;
}
_vpState[_activeVP].isLive = flag;
_vpState[_activeVP].isLiveSet = true;
//return(isLive);
}
function get maintainAspectRatio() {
if (_vp[_activeVP] == undefined) {
return(_aspectRatio);
}
return(_vp[_activeVP].maintainAspectRatio);
}
function set maintainAspectRatio(flag) {
if ((_activeVP == 0) || (_activeVP == undefined)) {
_aspectRatio = flag;
}
_vp[_activeVP].maintainAspectRatio = flag;
//return(maintainAspectRatio);
}
function get metadata() {
if (_vp[_activeVP] == undefined) {
return(null);
}
return(_vp[_activeVP].metadata);
}
function get metadataLoaded() {
if (_vp[_activeVP] == undefined) {
return(false);
}
return(_cpMgr[_activeVP].metadataLoaded);
}
function get muteButton() {
if ((_uiMgr != null) && (_uiMgr != undefined)) {
_muteButton = _uiMgr.getControl(mx.video.UIManager.MUTE_BUTTON);
}
return(_muteButton);
}
function set muteButton(s) {
_muteButton = s;
if ((_uiMgr != null) && (_uiMgr != undefined)) {
_uiMgr.setControl(mx.video.UIManager.MUTE_BUTTON, s);
}
//return(muteButton);
}
function get ncMgr() {
if (_vp[_activeVP] == undefined) {
return(null);
}
return(_vp[_activeVP].ncMgr);
}
function get pauseButton() {
if ((_uiMgr != null) && (_uiMgr != undefined)) {
_pauseButton = _uiMgr.getControl(mx.video.UIManager.PAUSE_BUTTON);
}
return(_pauseButton);
}
function set pauseButton(s) {
_pauseButton = s;
if ((_uiMgr != null) && (_uiMgr != undefined)) {
_uiMgr.setControl(mx.video.UIManager.PAUSE_BUTTON, s);
}
//return(pauseButton);
}
function get paused() {
if (_vp[_activeVP] == undefined) {
return(false);
}
return(_vp[_activeVP].state == PAUSED);
}
function get playButton() {
if ((_uiMgr != null) && (_uiMgr != undefined)) {
_playButton = _uiMgr.getControl(mx.video.UIManager.PLAY_BUTTON);
}
return(_playButton);
}
function set playButton(s) {
_playButton = s;
if ((_uiMgr != null) && (_uiMgr != undefined)) {
_uiMgr.setControl(mx.video.UIManager.PLAY_BUTTON, s);
}
//return(playButton);
}
function get playheadTime() {
if (_vp[_activeVP] == undefined) {
return(0);
}
return(_vp[_activeVP].playheadTime);
}
function set playheadTime(position) {
seek(position);
//return(playheadTime);
}
function get playheadUpdateInterval() {
if (_vp[_activeVP] == undefined) {
return(_playheadUpdateInterval);
}
return(_vp[_activeVP].playheadUpdateInterval);
}
function set playheadUpdateInterval(aTime) {
if ((_activeVP == 0) || (_activeVP == undefined)) {
_playheadUpdateInterval = aTime;
}
_cpMgr[_activeVP].playheadUpdateInterval = aTime;
_vp[_activeVP].playheadUpdateInterval = aTime;
//return(playheadUpdateInterval);
}
function get playing() {
if (_vp[_activeVP] == undefined) {
return(false);
}
return(_vp[_activeVP].state == PLAYING);
}
function get playPauseButton() {
if ((_uiMgr != null) && (_uiMgr != undefined)) {
_playPauseButton = _uiMgr.getControl(mx.video.UIManager.PLAY_PAUSE_BUTTON);
}
return(_playPauseButton);
}
function set playPauseButton(s) {
_playPauseButton = s;
if ((_uiMgr != null) && (_uiMgr != undefined)) {
_uiMgr.setControl(mx.video.UIManager.PLAY_PAUSE_BUTTON, s);
}
//return(playPauseButton);
}
function get preferredHeight() {
if (_vp[_activeVP] == undefined) {
return(0);
}
return(_vp[_activeVP].videoHeight);
}
function get preferredWidth() {
if (_vp[_activeVP] == undefined) {
return(0);
}
return(_vp[_activeVP].videoWidth);
}
function get progressInterval() {
if (_vp[_activeVP] == undefined) {
return(_progressInterval);
}
return(_vp[_activeVP].progressInterval);
}
function set progressInterval(aTime) {
if ((_activeVP == 0) || (_activeVP == undefined)) {
_progressInterval = aTime;
}
_vp[_activeVP].progressInterval = aTime;
//return(progressInterval);
}
function get scaleX() {
if (_vp[_visibleVP] != undefined) {
_scaleX = (_vp[_visibleVP].width / _origWidth) * 100;
}
return(_scaleX);
}
function set scaleX(xs) {
setScale(xs, scaleY);
//return(scaleX);
}
function get scaleY() {
if (_vp[_visibleVP] != undefined) {
_scaleY = (_vp[_visibleVP].height / _origHeight) * 100;
}
return(_scaleY);
}
function set scaleY(ys) {
setScale(scaleX, ys);
//return(scaleY);
}
function get scrubbing() {
var _local2 = seekBar;
if ((_local2 == undefined) || (_local2.isDragging == undefined)) {
return(false);
}
return(_local2.isDragging);
}
function get seekBar() {
if ((_uiMgr != null) && (_uiMgr != undefined)) {
_seekBar = _uiMgr.getControl(mx.video.UIManager.SEEK_BAR);
}
return(_seekBar);
}
function set seekBar(s) {
_seekBar = s;
if ((_uiMgr != null) && (_uiMgr != undefined)) {
_uiMgr.setControl(mx.video.UIManager.SEEK_BAR, s);
}
//return(seekBar);
}
function get seekBarInterval() {
if ((_uiMgr != null) && (_uiMgr != undefined)) {
_seekBarInterval = _uiMgr.seekBarInterval;
}
return(_seekBarInterval);
}
function set seekBarInterval(s) {
_seekBarInterval = s;
if ((_uiMgr != null) && (_uiMgr != undefined)) {
_uiMgr.__set__seekBarInterval(_seekBarInterval);
}
//return(seekBarInterval);
}
function get seekBarScrubTolerance() {
if ((_uiMgr != null) && (_uiMgr != undefined)) {
_seekBarScrubTolerance = _uiMgr.seekBarScrubTolerance;
}
return(_seekBarScrubTolerance);
}
function set seekBarScrubTolerance(s) {
_seekBarScrubTolerance = s;
if ((_uiMgr != null) && (_uiMgr != undefined)) {
_uiMgr.__set__seekBarScrubTolerance(_seekBarScrubTolerance);
}
//return(seekBarScrubTolerance);
}
function get seekToPrevOffset() {
return(_seekToPrevOffset);
}
function set seekToPrevOffset(s) {
_seekToPrevOffset = s;
//return(seekToPrevOffset);
}
function get skin() {
if ((_uiMgr != null) && (_uiMgr != undefined)) {
_skin = _uiMgr.skin;
}
return(_skin);
}
function set skin(s) {
_skin = s;
if ((_uiMgr != null) && (_uiMgr != undefined)) {
_uiMgr.__set__skin(s);
}
//return(skin);
}
function get skinAutoHide() {
if ((_uiMgr != null) && (_uiMgr != undefined)) {
_skinAutoHide = _uiMgr.skinAutoHide;
}
return(_skinAutoHide);
}
function set skinAutoHide(b) {
if (_global.isLivePreview) {
return;
}
_skinAutoHide = b;
if ((_uiMgr != null) && (_uiMgr != undefined)) {
_uiMgr.__set__skinAutoHide(b);
}
//return(skinAutoHide);
}
function get transform() {
return(_transform);
}
function set transform(s) {
_transform = s;
if (_vp[_activeVP] != undefined) {
_vp[_activeVP].transform = _transform;
}
//return(transform);
}
function get state() {
if (_global.isLivePreview) {
return(STOPPED);
}
if (_vp[_activeVP] == undefined) {
return(DISCONNECTED);
}
if ((_activeVP == _visibleVP) && (scrubbing)) {
return(SEEKING);
}
var _local3 = _vp[_activeVP].state;
if (_local3 == mx.video.VideoPlayer.RESIZING) {
return(LOADING);
}
if (((_vpState[_activeVP].prevState == LOADING) && (_vpState[_activeVP].autoPlay)) && (_local3 == STOPPED)) {
return(LOADING);
}
return(_local3);
}
function get stateResponsive() {
if (_vp[_activeVP] == undefined) {
return(false);
}
return(_vp[_activeVP].stateResponsive);
}
function get stopButton() {
if ((_uiMgr != null) && (_uiMgr != undefined)) {
_stopButton = _uiMgr.getControl(mx.video.UIManager.STOP_BUTTON);
}
return(_stopButton);
}
function set stopButton(s) {
_stopButton = s;
if ((_uiMgr != null) && (_uiMgr != undefined)) {
_uiMgr.setControl(mx.video.UIManager.STOP_BUTTON, s);
}
//return(stopButton);
}
function get stopped() {
if (_vp[_activeVP] == undefined) {
return(false);
}
return(_vp[_activeVP].state == STOPPED);
}
function get totalTime() {
if (_global.isLivePreview) {
return(1);
}
if (_vp[_activeVP] == undefined) {
return(_totalTime);
}
if (_vpState[_activeVP].totalTimeSet) {
return(_vpState[_activeVP].totalTime);
}
return(_vp[_activeVP].totalTime);
}
function set totalTime(aTime) {
if ((_activeVP == 0) || (_activeVP == undefined)) {
_totalTime = aTime;
}
_vpState[_activeVP].totalTime = aTime;
_vpState[_activeVP].totalTimeSet = true;
//return(totalTime);
}
function get visible() {
return(_visible);
}
function set visible(v) {
_visible = v;
//return(visible);
}
function get visibleVideoPlayerIndex() {
return(_visibleVP);
}
function set visibleVideoPlayerIndex(i) {
if (_visibleVP == i) {
return;
}
var _local2 = _visibleVP;
if (_vp[i] == undefined) {
createVideoPlayer(i);
}
var _local5 = (_vp[i].height != _vp[_visibleVP].height) || (_vp[i].width != _vp[_visibleVP].width);
_vp[_visibleVP].visible = false;
_vp[_visibleVP].volume = 0;
_visibleVP = i;
if (_firstStreamShown) {
_uiMgr.setupSkinAutoHide(_local2);
_vp[_visibleVP].visible = true;
if (!scrubbing) {
_vp[_visibleVP].volume = _volume;
}
} else if ((_vp[_visibleVP].stateResponsive && (_vp[_visibleVP].state != DISCONNECTED)) && (_uiMgr.__get__skinReady())) {
_uiMgr.__set__visible(true);
_uiMgr.setupSkinAutoHide(_local2);
_firstStreamReady = true;
showFirstStream();
}
if ((_vp[_local2].height != _vp[_visibleVP].height) || (_vp[_local2].width != _vp[_visibleVP].width)) {
dispatchEvent({type:"resize", x:x, y:y, width:width, height:height, auto:false, vp:_visibleVP});
}
_uiMgr.handleEvent({type:"stateChange", state:_vp[_visibleVP].state, vp:_visibleVP});
_uiMgr.handleEvent({type:"playheadUpdate", playheadTime:_vp[_visibleVP].playheadTime, vp:_visibleVP});
if (_vp[_visibleVP].isRTMP) {
_uiMgr.handleEvent({type:"ready", vp:_visibleVP});
} else {
_uiMgr.handleEvent({type:"progress", bytesLoaded:_vp[_visibleVP].bytesLoaded, bytesTotal:_vp[_visibleVP].bytesTotal, vp:_visibleVP});
}
//return(visibleVideoPlayerIndex);
}
function get volume() {
return(_volume);
}
function set volume(aVol) {
if (_volume == aVol) {
return;
}
_volume = aVol;
if (!scrubbing) {
_vp[_visibleVP].volume = _volume;
}
dispatchEvent({type:"volumeUpdate", volume:aVol});
//return(volume);
}
function get volumeBar() {
if ((_uiMgr != null) && (_uiMgr != undefined)) {
_volumeBar = _uiMgr.getControl(mx.video.UIManager.VOLUME_BAR);
}
return(_volumeBar);
}
function set volumeBar(s) {
_volumeBar = s;
if ((_uiMgr != null) && (_uiMgr != undefined)) {
_uiMgr.setControl(mx.video.UIManager.VOLUME_BAR, s);
}
//return(volumeBar);
}
function get volumeBarInterval() {
if ((_uiMgr != null) && (_uiMgr != undefined)) {
_volumeBarInterval = _uiMgr.volumeBarInterval;
}
return(_volumeBarInterval);
}
function set volumeBarInterval(s) {
_volumeBarInterval = s;
if ((_uiMgr != null) && (_uiMgr != undefined)) {
_uiMgr.__set__volumeBarInterval(_volumeBarInterval);
}
//return(volumeBarInterval);
}
function get volumeBarScrubTolerance() {
if ((_uiMgr != null) && (_uiMgr != undefined)) {
_volumeBarScrubTolerance = _uiMgr.volumeBarScrubTolerance;
}
return(_volumeBarScrubTolerance);
}
function set volumeBarScrubTolerance(s) {
_volumeBarScrubTolerance = s;
if ((_uiMgr != null) && (_uiMgr != undefined)) {
_uiMgr.__set__volumeBarScrubTolerance(_volumeBarScrubTolerance);
}
//return(volumeBarScrubTolerance);
}
function get width() {
if (_global.isLivePreview) {
return(__width);
}
if (_vp[_visibleVP] != undefined) {
__width = _vp[_visibleVP].width;
}
return(__width);
}
function set width(w) {
setSize(w, height);
//return(width);
}
function get x() {
return(_x);
}
function set x(xpos) {
_x = xpos;
//return(x);
}
function get y() {
return(_y);
}
function set y(ypos) {
_y = ypos;
//return(y);
}
function createVideoPlayer(index) {
if (_global.isLivePreview) {
return(undefined);
}
var _local4 = width;
var _local5 = height;
_vp[index] = mx.video.VideoPlayer(attachMovie("VideoPlayer", String(index), VP_DEPTH_OFFSET + index));
_vp[index].setSize(_local4, _local5);
_topVP = index;
_vp[index].autoRewind = _autoRewind;
_vp[index].autoSize = _autoSize;
_vp[index].bufferTime = _bufferTime;
_vp[index].idleTimeout = _idleTimeout;
_vp[index].maintainAspectRatio = _aspectRatio;
_vp[index].playheadUpdateInterval = _playheadUpdateInterval;
_vp[index].progressInterval = _progressInterval;
_vp[index].transform = _transform;
_vp[index].volume = _volume;
if (index == 0) {
_vpState[index] = {id:index, isLive:_isLive, isLiveSet:true, totalTime:_totalTime, totalTimeSet:true, autoPlay:_autoPlay};
if (((_contentPath != null) && (_contentPath != undefined)) && (_contentPath != "")) {
_vp[index].onEnterFrame = mx.utils.Delegate.create(this, doContentPathConnect);
}
} else {
_vpState[index] = {id:index, isLive:false, isLiveSet:true, totalTime:0, totalTimeSet:true, autoPlay:false};
}
_vp[index].addEventListener("resize", this);
_vp[index].addEventListener("close", this);
_vp[index].addEventListener("complete", this);
_vp[index].addEventListener("cuePoint", this);
_vp[index].addEventListener("playheadUpdate", this);
_vp[index].addEventListener("progress", this);
_vp[index].addEventListener("metadataReceived", this);
_vp[index].addEventListener("stateChange", this);
_vp[index].addEventListener("ready", this);
_vp[index].addEventListener("rewind", this);
_cpMgr[index] = new mx.video.CuePointManager(this, index);
_cpMgr[index].playheadUpdateInterval = _playheadUpdateInterval;
}
function createUIManager() {
_uiMgr = new mx.video.UIManager(this);
_uiMgr.__set__visible(false);
if ((_backButton != undefined) && (_backButton != null)) {
_uiMgr.setControl(mx.video.UIManager.BACK_BUTTON, _backButton);
}
if ((_bufferingBar != undefined) && (_bufferingBar != null)) {
_uiMgr.setControl(mx.video.UIManager.BUFFERING_BAR, _bufferingBar);
}
_uiMgr.__set__bufferingBarHidesAndDisablesOthers(_bufferingBarHides);
if ((_forwardButton != undefined) && (_forwardButton != null)) {
_uiMgr.setControl(mx.video.UIManager.FORWARD_BUTTON, _forwardButton);
}
if ((_pauseButton != undefined) && (_pauseButton != null)) {
_uiMgr.setControl(mx.video.UIManager.PAUSE_BUTTON, _pauseButton);
}
if ((_playButton != undefined) && (_playButton != null)) {
_uiMgr.setControl(mx.video.UIManager.PLAY_BUTTON, _playButton);
}
if ((_playPauseButton != undefined) && (_playPauseButton != null)) {
_uiMgr.setControl(mx.video.UIManager.PLAY_PAUSE_BUTTON, _playPauseButton);
}
if ((_stopButton != undefined) && (_stopButton != null)) {
_uiMgr.setControl(mx.video.UIManager.STOP_BUTTON, _stopButton);
}
if ((_seekBar != undefined) && (_seekBar != null)) {
_uiMgr.setControl(mx.video.UIManager.SEEK_BAR, _seekBar);
}
if ((_seekBarInterval != undefined) && (_seekBarInterval != null)) {
_uiMgr.__set__seekBarInterval(_seekBarInterval);
}
if ((_seekBarScrubTolerance != undefined) && (_seekBarScrubTolerance != null)) {
_uiMgr.__set__seekBarScrubTolerance(_seekBarScrubTolerance);
}
if ((_skin != undefined) && (_skin != null)) {
_uiMgr.__set__skin(_skin);
}
if ((_skinAutoHide != undefined) && (_skinAutoHide != null)) {
_uiMgr.__set__skinAutoHide(_skinAutoHide);
}
if ((_muteButton != undefined) && (_muteButton != null)) {
_uiMgr.setControl(mx.video.UIManager.MUTE_BUTTON, _muteButton);
}
if ((_volumeBar != undefined) && (_volumeBar != null)) {
_uiMgr.setControl(mx.video.UIManager.VOLUME_BAR, _volumeBar);
}
if ((_volumeBarInterval != undefined) && (_volumeBarInterval != null)) {
_uiMgr.__set__volumeBarInterval(_volumeBarInterval);
}
if ((_volumeBarScrubTolerance != undefined) && (_volumeBarScrubTolerance != null)) {
_uiMgr.__set__volumeBarScrubTolerance(_volumeBarScrubTolerance);
}
}
function createLivePreviewMovieClip() {
preview_mc = createEmptyMovieClip("preview_mc", 10);
preview_mc.createEmptyMovieClip("box_mc", 10);
preview_mc.box_mc.beginFill(0);
preview_mc.box_mc.moveTo(0, 0);
preview_mc.box_mc.lineTo(0, 100);
preview_mc.box_mc.lineTo(100, 100);
preview_mc.box_mc.lineTo(100, 0);
preview_mc.box_mc.lineTo(0, 0);
preview_mc.box_mc.endFill();
preview_mc.attachMovie("Icon", "icon_mc", 20);
}
function doContentPathConnect() {
delete _vp[0].onEnterFrame;
_vp[0].onEnterFrame = undefined;
if (_global.isLivePreview) {
return(undefined);
}
if (_vpState[0].autoPlay && (_firstStreamShown)) {
_vp[0].play(_contentPath, _isLive, _totalTime);
} else {
_vp[0].load(_contentPath, _isLive, _totalTime);
}
_vpState[0].isLiveSet = false;
_vpState[0].totalTimeSet = false;
}
function showFirstStream() {
_firstStreamShown = true;
_vp[_visibleVP].visible = true;
if (!scrubbing) {
_vp[_visibleVP].volume = _volume;
}
var _local2 = 0;
while (_local2 < _vp.length) {
if (((_vp[_local2] != undefined) && (_vp[_local2].state == STOPPED)) && (_vpState[_local2].autoPlay)) {
_vp[_local2].play();
}
_local2++;
}
}
function _scrubStart() {
var _local2 = playheadTime;
_vp[_visibleVP].volume = 0;
dispatchEvent({type:"stateChange", state:SEEKING, playheadTime:_local2, vp:_visibleVP});
dispatchEvent({type:"scrubStart", state:SEEKING, playheadTime:_local2});
}
function _scrubFinish() {
var _local3 = playheadTime;
var _local2 = state;
_vp[_visibleVP].volume = _volume;
if (_local2 != SEEKING) {
dispatchEvent({type:"stateChange", state:_local2, playheadTime:_local3, vp:_visibleVP});
}
dispatchEvent({type:"scrubFinish", state:_local2, playheadTime:_local3});
}
function skinError(message) {
if (_firstStreamReady && (!_firstStreamShown)) {
showFirstStream();
}
dispatchEvent({type:"skinError", message:message});
}
function skinLoaded() {
if (_firstStreamReady) {
_uiMgr.__set__visible(true);
if (!_firstStreamShown) {
showFirstStream();
}
} else if (((_contentPath == undefined) || (_contentPath == null)) || (_contentPath == "")) {
_uiMgr.__set__visible(true);
}
dispatchEvent({type:"skinLoaded"});
}
static var version = "1.0.0.103";
static var DISCONNECTED = "disconnected";
static var STOPPED = "stopped";
static var PLAYING = "playing";
static var PAUSED = "paused";
static var BUFFERING = "buffering";
static var LOADING = "loading";
static var CONNECTION_ERROR = "connectionError";
static var REWINDING = "rewinding";
static var SEEKING = "seeking";
static var ALL = "all";
static var EVENT = "event";
static var NAVIGATION = "navigation";
static var FLV = "flv";
static var ACTIONSCRIPT = "actionscript";
static var VP_DEPTH_OFFSET = 100;
static var SEEK_TO_PREV_OFFSET_DEFAULT = 1;
}
Symbol 320 MovieClip [__Packages.mx.video.VideoPlayer] Frame 0
class mx.video.VideoPlayer extends MovieClip
{
var _state, _cachedState, _bufferState, _cachedPlayheadTime, _metadata, _startingPlay, _invalidSeekTime, _invalidSeekRecovery, _currentPos, _atEnd, _cmdQueue, _readyDispatched, _autoResizeDone, _lastUpdateTime, _sawSeekNotify, _updateTimeIntervalID, _updateTimeInterval, _updateProgressIntervalID, _updateProgressInterval, _idleTimeoutIntervalID, _idleTimeoutInterval, _autoResizeIntervalID, _rtmpDoStopAtEndIntervalID, _rtmpDoSeekIntervalID, _httpDoSeekIntervalID, _httpDoSeekCount, _finishAutoResizeIntervalID, _delayedBufferingIntervalID, _delayedBufferingInterval, _isLive, _autoSize, _aspectRatio, _autoPlay, _autoRewind, _bufferTime, _volume, _sound, __visible, _hiddenForResize, _hiddenForResizeMetadataDelay, _contentPath, _video, _ncMgr, _ns, attachAudio, _prevVideoWidth, _prevVideoHeight, _streamLength, _videoWidth, _videoHeight, dispatchEvent, _x, _y, _visible, _hiddenRewindPlayheadTime, ncMgrClassName, _height, _width;
function VideoPlayer () {
super();
mx.events.EventDispatcher.initialize(this);
_state = DISCONNECTED;
_cachedState = _state;
_bufferState = BUFFER_EMPTY;
_cachedPlayheadTime = 0;
_metadata = null;
_startingPlay = false;
_invalidSeekTime = false;
_invalidSeekRecovery = false;
_currentPos = 0;
_atEnd = false;
_cmdQueue = new Array();
_readyDispatched = false;
_autoResizeDone = false;
_lastUpdateTime = -1;
_sawSeekNotify = false;
_updateTimeIntervalID = 0;
_updateTimeInterval = DEFAULT_UPDATE_TIME_INTERVAL;
_updateProgressIntervalID = 0;
_updateProgressInterval = DEFAULT_UPDATE_PROGRESS_INTERVAL;
_idleTimeoutIntervalID = 0;
_idleTimeoutInterval = DEFAULT_IDLE_TIMEOUT_INTERVAL;
_autoResizeIntervalID = 0;
_rtmpDoStopAtEndIntervalID = 0;
_rtmpDoSeekIntervalID = 0;
_httpDoSeekIntervalID = 0;
_httpDoSeekCount = 0;
_finishAutoResizeIntervalID = 0;
_delayedBufferingIntervalID = 0;
_delayedBufferingInterval = HTTP_DELAYED_BUFFERING_INTERVAL;
if (_isLive == undefined) {
_isLive = false;
}
if (_autoSize == undefined) {
_autoSize = false;
}
if (_aspectRatio == undefined) {
_aspectRatio = true;
}
if (_autoPlay == undefined) {
_autoPlay = true;
}
if (_autoRewind == undefined) {
_autoRewind = true;
}
if (_bufferTime == undefined) {
_bufferTime = 0.1;
}
if (_volume == undefined) {
_volume = 100;
}
_sound = new Sound(this);
_sound.setVolume(_volume);
__visible = true;
_hiddenForResize = false;
_hiddenForResizeMetadataDelay = 0;
_contentPath = "";
}
function setSize(w, h) {
if (((w == _video._width) && (h == _video._height)) || (_autoSize)) {
return(undefined);
}
_video._width = w;
_video._height = h;
if (_aspectRatio) {
startAutoResize();
}
}
function setScale(xs, ys) {
if (((xs == _video._xscale) && (ys == _video._yscale)) || (_autoSize)) {
return(undefined);
}
_video._xscale = xs;
_video._yscale = ys;
if (_aspectRatio) {
startAutoResize();
}
}
function play(url, isLive, totalTime) {
if ((url != null) && (url != undefined)) {
if (_state == EXEC_QUEUED_CMD) {
_state = _cachedState;
} else {
if (!stateResponsive) {
queueCmd(PLAY, url, isLive, totalTime);
return(undefined);
}
execQueuedCmds();
}
_autoPlay = true;
_load(url, isLive, totalTime);
return(undefined);
}
if (!isXnOK()) {
if (((((_state == CONNECTION_ERROR) || (_ncMgr == null)) || (_ncMgr == undefined)) || (_ncMgr.getNetConnection() == null)) || (_ncMgr.getNetConnection() == undefined)) {
throw new mx.video.VideoError(mx.video.VideoError.NO_CONNECTION);
// unexpected jump
}
flushQueuedCmds();
queueCmd(PLAY);
setState(LOADING);
_cachedState = LOADING;
_ncMgr.reconnect();
return(undefined);
}
if (_state == EXEC_QUEUED_CMD) {
_state = _cachedState;
} else {
if (!stateResponsive) {
queueCmd(PLAY);
return(undefined);
}
execQueuedCmds();
}
if ((_ns == null) || (_ns == undefined)) {
_createStream();
_video.attachVideo(_ns);
attachAudio(_ns);
}
switch (_state) {
case BUFFERING :
if (_ncMgr.isRTMP()) {
_play(0);
if (_atEnd) {
_atEnd = false;
_currentPos = 0;
setState(REWINDING);
} else if (_currentPos > 0) {
_seek(_currentPos);
_currentPos = 0;
}
}
case PLAYING :
return(undefined);
case STOPPED :
if (_ncMgr.isRTMP()) {
if (_isLive) {
_play(-1);
setState(BUFFERING);
} else {
_play(0);
if (_atEnd) {
_atEnd = false;
_currentPos = 0;
_state = BUFFERING;
setState(REWINDING);
} else if (_currentPos > 0) {
_seek(_currentPos);
_currentPos = 0;
setState(BUFFERING);
} else {
setState(BUFFERING);
}
}
} else {
_pause(false);
if (_atEnd) {
_atEnd = false;
_seek(0);
_state = BUFFERING;
setState(REWINDING);
} else if (_bufferState == BUFFER_EMPTY) {
setState(BUFFERING);
} else {
setState(PLAYING);
}
}
break;
case PAUSED :
_pause(false);
if (!_ncMgr.isRTMP()) {
if (_bufferState == BUFFER_EMPTY) {
setState(BUFFERING);
} else {
setState(PLAYING);
}
} else {
setState(BUFFERING);
}
}
}
function load(url, isLive, totalTime) {
if ((url == null) || (url == undefined)) {
throw new Error("null url sent to VideoPlayer.load");
}
if (_state == EXEC_QUEUED_CMD) {
_state = _cachedState;
} else {
if (!stateResponsive) {
queueCmd(LOAD, url, isLive, totalTime);
return(undefined);
}
execQueuedCmds();
}
_autoPlay = false;
_load(url, isLive, totalTime);
}
function _load(url, isLive, totalTime) {
_prevVideoWidth = videoWidth;
if (_prevVideoWidth == undefined) {
_prevVideoWidth = _video.width;
if (_prevVideoWidth == undefined) {
_prevVideoWidth = 0;
}
}
_prevVideoHeight = videoHeight;
if (_prevVideoHeight == undefined) {
_prevVideoHeight = _video.height;
if (_prevVideoHeight == undefined) {
_prevVideoHeight = 0;
}
}
_autoResizeDone = false;
_cachedPlayheadTime = 0;
_bufferState = BUFFER_EMPTY;
_metadata = null;
_startingPlay = false;
_invalidSeekTime = false;
_invalidSeekRecovery = false;
_isLive = ((isLive == undefined) ? false : (isLive));
_contentPath = url;
_currentPos = 0;
_streamLength = totalTime;
_atEnd = false;
_videoWidth = undefined;
_videoHeight = undefined;
_readyDispatched = false;
_lastUpdateTime = -1;
_sawSeekNotify = false;
clearInterval(_updateTimeIntervalID);
_updateTimeIntervalID = 0;
clearInterval(_updateProgressIntervalID);
_updateProgressIntervalID = 0;
clearInterval(_idleTimeoutIntervalID);
_idleTimeoutIntervalID = 0;
clearInterval(_autoResizeIntervalID);
_autoResizeIntervalID = 0;
clearInterval(_rtmpDoStopAtEndIntervalID);
_rtmpDoStopAtEndIntervalID = 0;
clearInterval(_rtmpDoSeekIntervalID);
_rtmpDoSeekIntervalID = 0;
clearInterval(_httpDoSeekIntervalID);
_httpDoSeekIntervalID = 0;
clearInterval(_finishAutoResizeIntervalID);
_finishAutoResizeIntervalID = 0;
clearInterval(_delayedBufferingIntervalID);
_delayedBufferingIntervalID = 0;
closeNS(false);
if ((_ncMgr == null) || (_ncMgr == undefined)) {
createINCManager();
}
var _local2 = _ncMgr.connectToURL(_contentPath);
setState(LOADING);
_cachedState = LOADING;
if (_local2) {
_createStream();
_setUpStream();
}
if (!_ncMgr.isRTMP()) {
clearInterval(_updateProgressIntervalID);
_updateProgressIntervalID = setInterval(this, "doUpdateProgress", _updateProgressInterval);
}
}
function pause() {
if (!isXnOK()) {
if (((((_state == CONNECTION_ERROR) || (_ncMgr == null)) || (_ncMgr == undefined)) || (_ncMgr.getNetConnection() == null)) || (_ncMgr.getNetConnection() == undefined)) {
throw new mx.video.VideoError(mx.video.VideoError.NO_CONNECTION);
// unexpected jump
}
return(undefined);
}
if (_state == EXEC_QUEUED_CMD) {
_state = _cachedState;
} else {
if (!stateResponsive) {
queueCmd(PAUSE);
return(undefined);
}
execQueuedCmds();
}
if ((((_state == PAUSED) || (_state == STOPPED)) || (_ns == null)) || (_ns == undefined)) {
return(undefined);
}
_pause(true);
setState(PAUSED);
}
function stop() {
if (!isXnOK()) {
if (((((_state == CONNECTION_ERROR) || (_ncMgr == null)) || (_ncMgr == undefined)) || (_ncMgr.getNetConnection() == null)) || (_ncMgr.getNetConnection() == undefined)) {
throw new mx.video.VideoError(mx.video.VideoError.NO_CONNECTION);
// unexpected jump
}
return(undefined);
}
if (_state == EXEC_QUEUED_CMD) {
_state = _cachedState;
} else {
if (!stateResponsive) {
queueCmd(STOP);
return(undefined);
}
execQueuedCmds();
}
if (((_state == STOPPED) || (_ns == null)) || (_ns == undefined)) {
return(undefined);
}
if (_ncMgr.isRTMP()) {
if (_autoRewind && (!_isLive)) {
_currentPos = 0;
_play(0, 0);
_state = STOPPED;
setState(REWINDING);
} else {
closeNS(true);
setState(STOPPED);
}
} else {
_pause(true);
if (_autoRewind) {
_seek(0);
_state = STOPPED;
setState(REWINDING);
} else {
setState(STOPPED);
}
}
}
function seek(time) {
if (_invalidSeekTime) {
return(undefined);
}
if (isNaN(time) || (time < 0)) {
throw new mx.video.VideoError(mx.video.VideoError.INVALID_SEEK);
}
if (!isXnOK()) {
if (((((_state == CONNECTION_ERROR) || (_ncMgr == null)) || (_ncMgr == undefined)) || (_ncMgr.getNetConnection() == null)) || (_ncMgr.getNetConnection() == undefined)) {
throw new mx.video.VideoError(mx.video.VideoError.NO_CONNECTION);
// unexpected jump
}
flushQueuedCmds();
queueCmd(SEEK, null, false, time);
setState(LOADING);
_cachedState = LOADING;
_ncMgr.reconnect();
return(undefined);
}
if (_state == EXEC_QUEUED_CMD) {
_state = _cachedState;
} else {
if (!stateResponsive) {
queueCmd(SEEK, null, false, time);
return(undefined);
}
execQueuedCmds();
}
if ((_ns == null) || (_ns == undefined)) {
_createStream();
_video.attachVideo(_ns);
attachAudio(_ns);
}
if (_atEnd && (time < playheadTime)) {
_atEnd = false;
}
switch (_state) {
case PLAYING :
_state = BUFFERING;
case BUFFERING :
case PAUSED :
_seek(time);
setState(SEEKING);
break;
case STOPPED :
if (_ncMgr.isRTMP()) {
_play(0);
_pause(true);
}
_seek(time);
_state = PAUSED;
setState(SEEKING);
}
}
function close() {
closeNS(true);
if (((_ncMgr != null) && (_ncMgr != undefined)) && (_ncMgr.isRTMP())) {
_ncMgr.close();
}
setState(DISCONNECTED);
dispatchEvent({type:"close", state:_state, playheadTime:playheadTime});
}
function get x() {
return(_x);
}
function set x(xpos) {
_x = xpos;
//return(x);
}
function get y() {
return(_y);
}
function set y(ypos) {
_y = ypos;
//return(y);
}
function get scaleX() {
return(_video._xscale);
}
function set scaleX(xs) {
setScale(xs, scaleY);
//return(scaleX);
}
function get scaleY() {
return(_video._yscale);
}
function set scaleY(ys) {
setScale(scaleX, ys);
//return(scaleY);
}
function get width() {
return(_video._width);
}
function set width(w) {
setSize(w, _video._height);
//return(width);
}
function get height() {
return(_video._height);
}
function set height(h) {
setSize(_video._width, h);
//return(height);
}
function get videoWidth() {
if (_readyDispatched) {
_videoWidth = _video.width;
}
return(_videoWidth);
}
function get videoHeight() {
if (_readyDispatched) {
_videoHeight = _video.height;
}
return(_videoHeight);
}
function get visible() {
if (!_hiddenForResize) {
__visible = _visible;
}
return(__visible);
}
function set visible(v) {
__visible = v;
if (!_hiddenForResize) {
_visible = __visible;
}
//return(visible);
}
function get autoSize() {
return(_autoSize);
}
function set autoSize(flag) {
if (_autoSize != flag) {
_autoSize = flag;
if (_autoSize) {
startAutoResize();
}
}
//return(autoSize);
}
function get maintainAspectRatio() {
return(_aspectRatio);
}
function set maintainAspectRatio(flag) {
if (_aspectRatio != flag) {
_aspectRatio = flag;
if (_aspectRatio && (!_autoSize)) {
startAutoResize();
}
}
//return(maintainAspectRatio);
}
function get autoRewind() {
return(_autoRewind);
}
function set autoRewind(flag) {
_autoRewind = flag;
//return(autoRewind);
}
function get playheadTime() {
var _local2 = (((_ns == null) || (_ns == undefined)) ? (_currentPos) : (_ns.time));
if (_metadata.audiodelay != undefined) {
_local2 = _local2 - _metadata.audiodelay;
if (_local2 < 0) {
_local2 = 0;
}
}
return(_local2);
}
function set playheadTime(position) {
seek(position);
//return(playheadTime);
}
function get url() {
return(_contentPath);
}
function get volume() {
return(_volume);
}
function set volume(aVol) {
_volume = aVol;
if (!_hiddenForResize) {
_sound.setVolume(_volume);
}
//return(volume);
}
function get transform() {
return(_sound.getTransform());
}
function set transform(s) {
_sound.setTransform(s);
//return(transform);
}
function get isRTMP() {
if ((_ncMgr == null) || (_ncMgr == undefined)) {
return(undefined);
}
return(_ncMgr.isRTMP());
}
function get isLive() {
return(_isLive);
}
function get state() {
return(_state);
}
function get stateResponsive() {
switch (_state) {
case DISCONNECTED :
case STOPPED :
case PLAYING :
case PAUSED :
case BUFFERING :
return(true);
}
return(false);
}
function get bytesLoaded() {
if (((_ns == null) || (_ns == undefined)) || (_ncMgr.isRTMP())) {
return(-1);
}
return(_ns.bytesLoaded);
}
function get bytesTotal() {
if (((_ns == null) || (_ns == undefined)) || (_ncMgr.isRTMP())) {
return(-1);
}
return(_ns.bytesTotal);
}
function get totalTime() {
return(_streamLength);
}
function get bufferTime() {
return(_bufferTime);
}
function set bufferTime(aTime) {
_bufferTime = aTime;
if ((_ns != null) && (_ns != undefined)) {
_ns.setBufferTime(_bufferTime);
}
//return(bufferTime);
}
function get idleTimeout() {
return(_idleTimeoutInterval);
}
function set idleTimeout(aTime) {
_idleTimeoutInterval = aTime;
if (_idleTimeoutIntervalID > 0) {
clearInterval(_idleTimeoutIntervalID);
_idleTimeoutIntervalID = setInterval(this, "doIdleTimeout", _idleTimeoutInterval);
}
//return(idleTimeout);
}
function get playheadUpdateInterval() {
return(_updateTimeInterval);
}
function set playheadUpdateInterval(aTime) {
_updateTimeInterval = aTime;
if (_updateTimeIntervalID > 0) {
clearInterval(_updateTimeIntervalID);
_updateTimeIntervalID = setInterval(this, "doUpdateTime", _updateTimeInterval);
}
//return(playheadUpdateInterval);
}
function get progressInterval() {
return(_updateProgressInterval);
}
function set progressInterval(aTime) {
_updateProgressInterval = aTime;
if (_updateProgressIntervalID > 0) {
clearInterval(_updateProgressIntervalID);
_updateProgressIntervalID = setInterval(this, "doUpdateProgress", _updateProgressInterval);
}
//return(progressInterval);
}
function get ncMgr() {
if ((_ncMgr == null) || (_ncMgr == undefined)) {
createINCManager();
}
return(_ncMgr);
}
function get metadata() {
return(_metadata);
}
function doUpdateTime() {
var _local2 = playheadTime;
switch (_state) {
case STOPPED :
case PAUSED :
case DISCONNECTED :
case CONNECTION_ERROR :
clearInterval(_updateTimeIntervalID);
_updateTimeIntervalID = 0;
}
if (_lastUpdateTime != _local2) {
dispatchEvent({type:"playheadUpdate", state:_state, playheadTime:_local2});
_lastUpdateTime = _local2;
}
}
function doUpdateProgress() {
if ((_ns == null) || (_ns == undefined)) {
return(undefined);
}
if ((_ns.bytesTotal >= 0) && (_ns.bytesTotal >= 0)) {
dispatchEvent({type:"progress", bytesLoaded:_ns.bytesLoaded, bytesTotal:_ns.bytesTotal});
}
if (((_state == DISCONNECTED) || (_state == CONNECTION_ERROR)) || (_ns.bytesLoaded == _ns.bytesTotal)) {
clearInterval(_updateProgressIntervalID);
_updateProgressIntervalID = 0;
}
}
function rtmpOnStatus(info) {
if (_state == CONNECTION_ERROR) {
return(undefined);
}
switch (info.code) {
case "NetStream.Play.Stop" :
if (_startingPlay) {
return(undefined);
}
switch (_state) {
case RESIZING :
if (_hiddenForResize) {
finishAutoResize();
}
break;
case LOADING :
case STOPPED :
case PAUSED :
break;
default :
if ((_bufferState == BUFFER_EMPTY) || (_bufferTime <= 0.1)) {
_cachedPlayheadTime = playheadTime;
clearInterval(_rtmpDoStopAtEndIntervalID);
_rtmpDoStopAtEndIntervalID = setInterval(this, "rtmpDoStopAtEnd", RTMP_DO_STOP_AT_END_INTERVAL);
} else {
if (_bufferState != BUFFER_FULL) {
break;
}
_bufferState = BUFFER_FULL_SAW_PLAY_STOP;
}
}
break;
case "NetStream.Buffer.Empty" :
switch (_bufferState) {
case BUFFER_FULL_SAW_PLAY_STOP :
rtmpDoStopAtEnd(true);
break;
case BUFFER_FULL :
if (_state == PLAYING) {
setState(BUFFERING);
}
break;
}
_bufferState = BUFFER_EMPTY;
break;
case "NetStream.Buffer.Flush" :
case "NetStream.Buffer.Full" :
if (_sawSeekNotify && (_state == SEEKING)) {
_bufferState = BUFFER_EMPTY;
setStateFromCachedState();
doUpdateTime();
}
switch (_bufferState) {
case BUFFER_EMPTY :
if (!_hiddenForResize) {
if (((_state == LOADING) && (_cachedState == PLAYING)) || (_state == BUFFERING)) {
setState(PLAYING);
} else if (_cachedState == BUFFERING) {
_cachedState = PLAYING;
}
}
_bufferState = BUFFER_FULL;
break;
default :
}
break;
case "NetStream.Pause.Notify" :
if ((_state == RESIZING) && (_hiddenForResize)) {
finishAutoResize();
}
break;
case "NetStream.Play.Start" :
clearInterval(_rtmpDoStopAtEndIntervalID);
_rtmpDoStopAtEndIntervalID = 0;
_bufferState = BUFFER_EMPTY;
if (_startingPlay) {
_startingPlay = false;
_cachedPlayheadTime = playheadTime;
} else if (_state == PLAYING) {
setState(BUFFERING);
}
break;
case "NetStream.Play.Reset" :
clearInterval(_rtmpDoStopAtEndIntervalID);
_rtmpDoStopAtEndIntervalID = 0;
if (_state == REWINDING) {
clearInterval(_rtmpDoSeekIntervalID);
_rtmpDoSeekIntervalID = 0;
if ((playheadTime == 0) || (playheadTime < _cachedPlayheadTime)) {
setStateFromCachedState();
} else {
_cachedPlayheadTime = playheadTime;
_rtmpDoSeekIntervalID = setInterval(this, "rtmpDoSeek", RTMP_DO_SEEK_INTERVAL);
}
}
break;
case "NetStream.Seek.Notify" :
if (playheadTime != _cachedPlayheadTime) {
setStateFromCachedState();
doUpdateTime();
} else {
_sawSeekNotify = true;
if (_rtmpDoSeekIntervalID == 0) {
_rtmpDoSeekIntervalID = setInterval(this, "rtmpDoSeek", RTMP_DO_SEEK_INTERVAL);
}
}
break;
case "Netstream.Play.UnpublishNotify" :
break;
case "Netstream.Play.PublishNotify" :
break;
case "NetStream.Play.StreamNotFound" :
if (!_ncMgr.connectAgain()) {
setState(CONNECTION_ERROR);
}
break;
case "NetStream.Play.Failed" :
case "NetStream.Failed" :
setState(CONNECTION_ERROR);
}
}
function httpOnStatus(info) {
switch (info.code) {
case "NetStream.Play.Stop" :
clearInterval(_delayedBufferingIntervalID);
_delayedBufferingIntervalID = 0;
if (_invalidSeekTime) {
_invalidSeekTime = false;
_invalidSeekRecovery = true;
setState(_cachedState);
seek(playheadTime);
} else {
switch (_state) {
case PLAYING :
case BUFFERING :
case SEEKING :
httpDoStopAtEnd();
}
}
break;
case "NetStream.Seek.InvalidTime" :
if (_invalidSeekRecovery) {
_invalidSeekTime = false;
_invalidSeekRecovery = false;
setState(_cachedState);
seek(0);
} else {
_invalidSeekTime = true;
}
break;
case "NetStream.Buffer.Empty" :
_bufferState = BUFFER_EMPTY;
if (_state == PLAYING) {
clearInterval(_delayedBufferingIntervalID);
_delayedBufferingIntervalID = setInterval(this, "doDelayedBuffering", _delayedBufferingInterval);
}
break;
case "NetStream.Buffer.Full" :
case "NetStream.Buffer.Flush" :
clearInterval(_delayedBufferingIntervalID);
_delayedBufferingIntervalID = 0;
_bufferState = BUFFER_FULL;
if (!_hiddenForResize) {
if (((_state == LOADING) && (_cachedState == PLAYING)) || (_state == BUFFERING)) {
setState(PLAYING);
} else if (_cachedState == BUFFERING) {
_cachedState = PLAYING;
}
}
break;
case "NetStream.Seek.Notify" :
_invalidSeekRecovery = false;
switch (_state) {
case SEEKING :
case REWINDING :
if (_httpDoSeekIntervalID != 0) {
break;
}
_httpDoSeekCount = 0;
_httpDoSeekIntervalID = setInterval(this, "httpDoSeek", HTTP_DO_SEEK_INTERVAL);
}
break;
case "NetStream.Play.StreamNotFound" :
setState(CONNECTION_ERROR);
}
}
function ncConnected() {
if ((((_ncMgr == null) || (_ncMgr == undefined)) || (_ncMgr.getNetConnection() == null)) || (_ncMgr.getNetConnection() == undefined)) {
setState(CONNECTION_ERROR);
} else {
_createStream();
_setUpStream();
}
}
function ncReconnected() {
if ((((_ncMgr == null) || (_ncMgr == undefined)) || (_ncMgr.getNetConnection() == null)) || (_ncMgr.getNetConnection() == undefined)) {
setState(CONNECTION_ERROR);
} else {
_ns = null;
_state = STOPPED;
execQueuedCmds();
}
}
function onMetaData(info) {
if (_metadata != null) {
return(undefined);
}
_metadata = info;
if (((_streamLength == undefined) || (_streamLength == null)) || (_streamLength <= 0)) {
_streamLength = info.duration;
}
if (isNaN(_videoWidth) || (_videoWidth <= 0)) {
_videoWidth = info.width;
}
if (isNaN(_videoHeight) || (_videoHeight <= 0)) {
_videoHeight = info.height;
}
dispatchEvent({type:"metadataReceived", info:info});
}
function onCuePoint(info) {
if ((!_hiddenForResize) || ((!isNaN(_hiddenRewindPlayheadTime)) && (playheadTime < _hiddenRewindPlayheadTime))) {
dispatchEvent({type:"cuePoint", info:info});
}
}
function setState(s) {
if (s == _state) {
return(undefined);
}
_hiddenRewindPlayheadTime = undefined;
_cachedState = _state;
_cachedPlayheadTime = playheadTime;
_state = s;
var _local2 = _state;
dispatchEvent({type:"stateChange", state:_local2, playheadTime:playheadTime});
if (!_readyDispatched) {
switch (_local2) {
case STOPPED :
case PLAYING :
case PAUSED :
case BUFFERING :
_readyDispatched = true;
dispatchEvent({type:"ready", state:_local2, playheadTime:playheadTime});
}
}
if (!(_cachedState === REWINDING)) {
} else {
dispatchEvent({type:"rewind", state:_local2, playheadTime:playheadTime});
if (_ncMgr.isRTMP() && (_local2 == STOPPED)) {
closeNS();
}
}
switch (_local2) {
case STOPPED :
case PAUSED :
if (_ncMgr.isRTMP() && (_idleTimeoutIntervalID == 0)) {
_idleTimeoutIntervalID = setInterval(this, "doIdleTimeout", _idleTimeoutInterval);
}
break;
case SEEKING :
case REWINDING :
_bufferState = BUFFER_EMPTY;
case PLAYING :
case BUFFERING :
if (_updateTimeIntervalID == 0) {
_updateTimeIntervalID = setInterval(this, "doUpdateTime", _updateTimeInterval);
}
case LOADING :
case RESIZING :
clearInterval(_idleTimeoutIntervalID);
_idleTimeoutIntervalID = 0;
}
execQueuedCmds();
}
function setStateFromCachedState() {
switch (_cachedState) {
case PLAYING :
case PAUSED :
setState(_cachedState);
break;
case BUFFERING :
if (_bufferState == BUFFER_EMPTY) {
setState(BUFFERING);
} else {
setState(_cachedState);
}
break;
default :
setState(STOPPED);
}
}
function createINCManager() {
if ((ncMgrClassName == null) || (ncMgrClassName == undefined)) {
ncMgrClassName = DEFAULT_INCMANAGER;
}
var ncMgrConstructor = eval (this.ncMgrClassName);
_ncMgr = new ncMgrConstructor();
_ncMgr.setVideoPlayer(this);
}
function rtmpDoStopAtEnd(force) {
if (_rtmpDoStopAtEndIntervalID > 0) {
switch (_state) {
case DISCONNECTED :
case CONNECTION_ERROR :
clearInterval(_rtmpDoStopAtEndIntervalID);
_rtmpDoStopAtEndIntervalID = 0;
return(undefined);
}
if (force || (_cachedPlayheadTime == playheadTime)) {
clearInterval(_rtmpDoStopAtEndIntervalID);
_rtmpDoStopAtEndIntervalID = 0;
} else {
_cachedPlayheadTime = playheadTime;
return(undefined);
}
}
_bufferState = BUFFER_EMPTY;
_atEnd = true;
setState(STOPPED);
if (_state != STOPPED) {
return(undefined);
}
doUpdateTime();
if (_state != STOPPED) {
return(undefined);
}
dispatchEvent({type:"complete", state:_state, playheadTime:playheadTime});
if (_state != STOPPED) {
return(undefined);
}
if ((_autoRewind && (!_isLive)) && (playheadTime != 0)) {
_atEnd = false;
_currentPos = 0;
_play(0, 0);
setState(REWINDING);
} else {
closeNS();
}
}
function rtmpDoSeek() {
if ((_state != REWINDING) && (_state != SEEKING)) {
clearInterval(_rtmpDoSeekIntervalID);
_rtmpDoSeekIntervalID = 0;
_sawSeekNotify = false;
} else if (playheadTime != _cachedPlayheadTime) {
clearInterval(_rtmpDoSeekIntervalID);
_rtmpDoSeekIntervalID = 0;
_sawSeekNotify = false;
setStateFromCachedState();
doUpdateTime();
}
}
function httpDoStopAtEnd() {
_atEnd = true;
if (((_streamLength == undefined) || (_streamLength == null)) || (_streamLength <= 0)) {
_streamLength = _ns.time;
}
_pause(true);
setState(STOPPED);
if (_state != STOPPED) {
return(undefined);
}
doUpdateTime();
if (_state != STOPPED) {
return(undefined);
}
dispatchEvent({type:"complete", state:_state, playheadTime:playheadTime});
if (_state != STOPPED) {
return(undefined);
}
if (_autoRewind) {
_atEnd = false;
_pause(true);
_seek(0);
setState(REWINDING);
}
}
function httpDoSeek() {
var _local2 = (_state == REWINDING) || (_state == SEEKING);
if ((_local2 && (_httpDoSeekCount < HTTP_DO_SEEK_MAX_COUNT)) && ((_cachedPlayheadTime == playheadTime) || (_invalidSeekTime))) {
_httpDoSeekCount++;
return(undefined);
}
_httpDoSeekCount = 0;
clearInterval(_httpDoSeekIntervalID);
_httpDoSeekIntervalID = 0;
if (!_local2) {
return(undefined);
}
setStateFromCachedState();
if (_invalidSeekTime) {
_invalidSeekTime = false;
_invalidSeekRecovery = true;
seek(playheadTime);
} else {
doUpdateTime();
}
}
function closeNS(updateCurrentPos) {
if ((_ns != null) && (_ns != undefined)) {
if (updateCurrentPos) {
clearInterval(_updateTimeIntervalID);
_updateTimeIntervalID = 0;
doUpdateTime();
_currentPos = _ns.time;
}
delete _ns.onStatus;
_ns.onStatus = null;
_ns.close();
_ns = null;
}
}
function doDelayedBuffering() {
switch (_state) {
case LOADING :
case RESIZING :
break;
case PLAYING :
clearInterval(_delayedBufferingIntervalID);
_delayedBufferingIntervalID = 0;
setState(BUFFERING);
break;
default :
clearInterval(_delayedBufferingIntervalID);
_delayedBufferingIntervalID = 0;
}
}
function _pause(doPause) {
_ns.pause(doPause);
}
function _play() {
_startingPlay = true;
switch (arguments.length) {
case 0 :
_ns.play(_ncMgr.getStreamName(), (_isLive ? -1 : 0), -1);
break;
case 1 :
_ns.play(_ncMgr.getStreamName(), (_isLive ? -1 : (arguments[0])), -1);
break;
case 2 :
_ns.play(_ncMgr.getStreamName(), (_isLive ? -1 : (arguments[0])), arguments[1]);
break;
default :
throw new Error("bad args to _play");
}
}
function _seek(time) {
if ((_metadata.audiodelay != undefined) && ((time + _metadata.audiodelay) < _streamLength)) {
time = time + _metadata.audiodelay;
}
_ns.seek(time);
_invalidSeekTime = false;
_bufferState = BUFFER_EMPTY;
_sawSeekNotify = false;
}
function isXnOK() {
if (_state == LOADING) {
return(true);
}
if (_state == CONNECTION_ERROR) {
return(false);
}
if (_state != DISCONNECTED) {
if (((((_ncMgr == null) || (_ncMgr == undefined)) || (_ncMgr.getNetConnection() == null)) || (_ncMgr.getNetConnection() == undefined)) || (!_ncMgr.getNetConnection().isConnected)) {
setState(DISCONNECTED);
return(false);
}
return(true);
}
return(false);
}
function startAutoResize() {
switch (_state) {
case DISCONNECTED :
case CONNECTION_ERROR :
return(undefined);
}
_autoResizeDone = false;
if ((stateResponsive && (_videoWidth != undefined)) && (_videoHeight != undefined)) {
doAutoResize();
} else {
clearInterval(_autoResizeIntervalID);
_autoResizeIntervalID = setInterval(this, "doAutoResize", AUTO_RESIZE_INTERVAL);
}
}
function doAutoResize() {
if (_autoResizeIntervalID > 0) {
switch (_state) {
case RESIZING :
case LOADING :
break;
case DISCONNECTED :
case CONNECTION_ERROR :
clearInterval(_autoResizeIntervalID);
_autoResizeIntervalID = 0;
return(undefined);
default :
if (stateResponsive) {
break;
}
return(undefined);
}
if ((((_video.width != _prevVideoWidth) || (_video.height != _prevVideoHeight)) || (_bufferState >= BUFFER_FULL)) || (_ns.time > AUTO_RESIZE_PLAYHEAD_TIMEOUT)) {
if ((_hiddenForResize && (_metadata == null)) && (_hiddenForResizeMetadataDelay < AUTO_RESIZE_METADATA_DELAY_MAX)) {
_hiddenForResizeMetadataDelay++;
return(undefined);
}
_videoWidth = _video.width;
_videoHeight = _video.height;
clearInterval(_autoResizeIntervalID);
_autoResizeIntervalID = 0;
} else {
return(undefined);
}
}
if (((!_autoSize) && (!_aspectRatio)) || (_autoResizeDone)) {
setState(_cachedState);
return(undefined);
}
_autoResizeDone = true;
if (_autoSize) {
_video._width = _videoWidth;
_video._height = _videoHeight;
} else if (_aspectRatio) {
var _local3 = (_videoWidth * height) / _videoHeight;
var _local2 = (_videoHeight * width) / _videoWidth;
if (_local2 < height) {
_video._height = _local2;
} else if (_local3 < width) {
_video._width = _local3;
}
}
if (_hiddenForResize) {
_hiddenRewindPlayheadTime = playheadTime;
if (_state == LOADING) {
_cachedState = PLAYING;
}
if (!_ncMgr.isRTMP()) {
_pause(true);
_seek(0);
clearInterval(_finishAutoResizeIntervalID);
_finishAutoResizeIntervalID = setInterval(this, "finishAutoResize", FINISH_AUTO_RESIZE_INTERVAL);
} else if (!_isLive) {
_currentPos = 0;
_play(0, 0);
setState(RESIZING);
} else if (_autoPlay) {
clearInterval(_finishAutoResizeIntervalID);
_finishAutoResizeIntervalID = setInterval(this, "finishAutoResize", FINISH_AUTO_RESIZE_INTERVAL);
} else {
finishAutoResize();
}
} else {
dispatchEvent({type:"resize", x:_x, y:_y, width:_width, height:_height});
}
}
function finishAutoResize() {
clearInterval(_finishAutoResizeIntervalID);
_finishAutoResizeIntervalID = 0;
if (stateResponsive) {
return(undefined);
}
_visible = __visible;
_sound.setVolume(_volume);
_hiddenForResize = false;
dispatchEvent({type:"resize", x:_x, y:_y, width:_width, height:_height});
if (_autoPlay) {
if (_ncMgr.isRTMP()) {
if (!_isLive) {
_currentPos = 0;
_play(0);
}
if (_state == RESIZING) {
setState(LOADING);
_cachedState = PLAYING;
}
} else {
_pause(false);
_cachedState = PLAYING;
}
} else {
setState(STOPPED);
}
}
function _createStream() {
_ns = new NetStream(_ncMgr.getNetConnection());
_ns.mc = this;
if (_ncMgr.isRTMP()) {
_ns.onStatus = function (info) {
this.mc.rtmpOnStatus(info);
};
} else {
_ns.onStatus = function (info) {
this.mc.httpOnStatus(info);
};
}
_ns.onMetaData = function (info) {
this.mc.onMetaData(info);
};
_ns.onCuePoint = function (info) {
this.mc.onCuePoint(info);
};
_ns.setBufferTime(_bufferTime);
}
function _setUpStream() {
_video.attachVideo(_ns);
attachAudio(_ns);
if ((!isNaN(_ncMgr.getStreamLength())) && (_ncMgr.getStreamLength() >= 0)) {
_streamLength = _ncMgr.getStreamLength();
}
if ((!isNaN(_ncMgr.getStreamWidth())) && (_ncMgr.getStreamWidth() >= 0)) {
_videoWidth = _ncMgr.getStreamWidth();
} else {
_videoWidth = undefined;
}
if ((!isNaN(_ncMgr.getStreamHeight())) && (_ncMgr.getStreamHeight() >= 0)) {
_videoHeight = _ncMgr.getStreamHeight();
} else {
_videoHeight = undefined;
}
if (((_autoSize || (_aspectRatio)) && (_videoWidth != undefined)) && (_videoHeight != undefined)) {
_prevVideoWidth = undefined;
_prevVideoHeight = undefined;
doAutoResize();
}
if (((!_autoSize) && (!_aspectRatio)) || ((_videoWidth != undefined) && (_videoHeight != undefined))) {
if (_autoPlay) {
if (!_ncMgr.isRTMP()) {
_cachedState = BUFFERING;
_play();
} else if (_isLive) {
_cachedState = BUFFERING;
_play(-1);
} else {
_cachedState = BUFFERING;
_play(0);
}
} else {
_cachedState = STOPPED;
if (_ncMgr.isRTMP()) {
_play(0, 0);
} else {
_play();
_pause(true);
_seek(0);
}
}
} else {
_hiddenForResize = true;
_hiddenForResizeMetadataDelay = 0;
__visible = _visible;
_visible = false;
_volume = _sound.getVolume();
_sound.setVolume(0);
_play(0);
if (_currentPos > 0) {
_seek(_currentPos);
_currentPos = 0;
}
}
clearInterval(_autoResizeIntervalID);
_autoResizeIntervalID = setInterval(this, "doAutoResize", AUTO_RESIZE_INTERVAL);
}
function doIdleTimeout() {
clearInterval(_idleTimeoutIntervalID);
_idleTimeoutIntervalID = 0;
close();
}
function flushQueuedCmds() {
while (_cmdQueue.length > 0) {
_cmdQueue.pop();
}
}
function execQueuedCmds() {
while (((_cmdQueue.length > 0) && (stateResponsive || (_state == CONNECTION_ERROR))) && (((_cmdQueue[0].url != null) && (_cmdQueue[0].url != undefined)) || ((_state != DISCONNECTED) && (_state != CONNECTION_ERROR)))) {
var _local2 = _cmdQueue.shift();
_cachedState = _state;
_state = EXEC_QUEUED_CMD;
switch (_local2.type) {
case PLAY :
play(_local2.url, _local2.isLive, _local2.time);
break;
case LOAD :
load(_local2.url, _local2.isLive, _local2.time);
break;
case PAUSE :
pause();
break;
case STOP :
stop();
break;
case SEEK :
seek(_local2.time);
}
}
}
function queueCmd(type, url, isLive, time) {
_cmdQueue.push({type:type, url:url, isLive:false, time:time});
}
static var version = "1.0.0.103";
static var DISCONNECTED = "disconnected";
static var STOPPED = "stopped";
static var PLAYING = "playing";
static var PAUSED = "paused";
static var BUFFERING = "buffering";
static var LOADING = "loading";
static var CONNECTION_ERROR = "connectionError";
static var REWINDING = "rewinding";
static var SEEKING = "seeking";
static var RESIZING = "resizing";
static var EXEC_QUEUED_CMD = "execQueuedCmd";
static var BUFFER_EMPTY = "bufferEmpty";
static var BUFFER_FULL = "bufferFull";
static var BUFFER_FULL_SAW_PLAY_STOP = "bufferFullSawPlayStop";
static var DEFAULT_INCMANAGER = "mx.video.NCManager";
static var DEFAULT_UPDATE_TIME_INTERVAL = 250;
static var DEFAULT_UPDATE_PROGRESS_INTERVAL = 250;
static var DEFAULT_IDLE_TIMEOUT_INTERVAL = 300000;
static var AUTO_RESIZE_INTERVAL = 100;
static var AUTO_RESIZE_PLAYHEAD_TIMEOUT = 0.5;
static var AUTO_RESIZE_METADATA_DELAY_MAX = 5;
static var FINISH_AUTO_RESIZE_INTERVAL = 250;
static var RTMP_DO_STOP_AT_END_INTERVAL = 500;
static var RTMP_DO_SEEK_INTERVAL = 100;
static var HTTP_DO_SEEK_INTERVAL = 250;
static var HTTP_DO_SEEK_MAX_COUNT = 4;
static var CLOSE_NS_INTERVAL = 0.25;
static var HTTP_DELAYED_BUFFERING_INTERVAL = 100;
static var PLAY = 0;
static var LOAD = 1;
static var PAUSE = 2;
static var STOP = 3;
static var SEEK = 4;
}
Symbol 321 MovieClip [__Packages.mx.video.INCManager] Frame 0
interface mx.video.INCManager
{
}
Symbol 322 MovieClip [__Packages.mx.events.EventDispatcher] Frame 0
class mx.events.EventDispatcher
{
function EventDispatcher () {
}
static function _removeEventListener(queue, event, handler) {
if (queue != undefined) {
var _local4 = queue.length;
var _local1;
_local1 = 0;
while (_local1 < _local4) {
var _local2 = queue[_local1];
if (_local2 == handler) {
queue.splice(_local1, 1);
return(undefined);
}
_local1++;
}
}
}
static function initialize(object) {
if (_fEventDispatcher == undefined) {
_fEventDispatcher = new mx.events.EventDispatcher();
}
object.addEventListener = _fEventDispatcher.addEventListener;
object.removeEventListener = _fEventDispatcher.removeEventListener;
object.dispatchEvent = _fEventDispatcher.dispatchEvent;
object.dispatchQueue = _fEventDispatcher.dispatchQueue;
}
function dispatchQueue(queueObj, eventObj) {
var _local7 = "__q_" + eventObj.type;
var _local4 = queueObj[_local7];
if (_local4 != undefined) {
var _local5;
for (_local5 in _local4) {
var _local1 = _local4[_local5];
var _local3 = typeof(_local1);
if ((_local3 == "object") || (_local3 == "movieclip")) {
if (_local1.handleEvent != undefined) {
_local1.handleEvent(eventObj);
}
if (_local1[eventObj.type] != undefined) {
if (exceptions[eventObj.type] == undefined) {
_local1[eventObj.type](eventObj);
}
}
} else {
_local1.apply(queueObj, [eventObj]);
}
}
}
}
function dispatchEvent(eventObj) {
if (eventObj.target == undefined) {
eventObj.target = this;
}
this[eventObj.type + "Handler"](eventObj);
dispatchQueue(this, eventObj);
}
function addEventListener(event, handler) {
var _local3 = "__q_" + event;
if (this[_local3] == undefined) {
this[_local3] = new Array();
}
_global.ASSetPropFlags(this, _local3, 1);
_removeEventListener(this[_local3], event, handler);
this[_local3].push(handler);
}
function removeEventListener(event, handler) {
var _local2 = "__q_" + event;
_removeEventListener(this[_local2], event, handler);
}
static var _fEventDispatcher = undefined;
static var exceptions = {move:1, draw:1, load:1};
}
Symbol 323 MovieClip [__Packages.mx.video.VideoError] Frame 0
class mx.video.VideoError extends Error
{
var _code, message, name;
function VideoError (errCode, msg) {
super();
_code = errCode;
message = ((("" + errCode) + ": ") + ERROR_MSG[errCode - BASE_ERROR_CODE]) + ((msg == undefined) ? "" : (": " + msg));
name = "VideoError";
}
function get code() {
return(_code);
}
static var version = "1.0.0.103";
static var BASE_ERROR_CODE = 1000;
static var NO_CONNECTION = 1000;
static var NO_CUE_POINT_MATCH = 1001;
static var ILLEGAL_CUE_POINT = 1002;
static var INVALID_SEEK = 1003;
static var INVALID_CONTENT_PATH = 1004;
static var INVALID_XML = 1005;
static var NO_BITRATE_MATCH = 1006;
static var DELETE_DEFAULT_PLAYER = 1007;
static var ERROR_MSG = ["Unable to make connection to server or to find FLV on server", "No matching cue point found", "Illegal cue point", "Invalid seek", "Invalid contentPath", "Invalid xml", "No bitrate match, must be no default flv", "Cannot delete default VideoPlayer"];
}
Symbol 324 MovieClip [__Packages.mx.video.UIManager] Frame 0
class mx.video.UIManager
{
var _vc, _skin, _skinAutoHide, _skinReady, __visible, _bufferingBarHides, _controlsEnabled, _lastScrubPos, _lastVolumePos, cachedSoundLevel, _isMuted, controls, customClips, skin_mc, skinLoader, layout_mc, border_mc, _seekBarIntervalID, _seekBarInterval, _seekBarScrubTolerance, _volumeBarIntervalID, _volumeBarInterval, _volumeBarScrubTolerance, _bufferingDelayIntervalID, _bufferingDelayInterval, _bufferingOn, _skinAutoHideIntervalID, _progressPercent, placeholderLeft, placeholderRight, placeholderTop, placeholderBottom, videoLeft, videoRight, videoTop, videoBottom, _playAfterScrub;
function UIManager (vc) {
_vc = vc;
_skin = undefined;
_skinAutoHide = false;
_skinReady = true;
__visible = true;
_bufferingBarHides = false;
_controlsEnabled = true;
_lastScrubPos = 0;
_lastVolumePos = 0;
cachedSoundLevel = _vc.volume;
_isMuted = false;
controls = new Array();
customClips = undefined;
skin_mc = undefined;
skinLoader = undefined;
layout_mc = undefined;
border_mc = undefined;
_seekBarIntervalID = 0;
_seekBarInterval = SEEK_BAR_INTERVAL_DEFAULT;
_seekBarScrubTolerance = SEEK_BAR_SCRUB_TOLERANCE_DEFAULT;
_volumeBarIntervalID = 0;
_volumeBarInterval = VOLUME_BAR_INTERVAL_DEFAULT;
_volumeBarScrubTolerance = VOLUME_BAR_SCRUB_TOLERANCE_DEFAULT;
_bufferingDelayIntervalID = 0;
_bufferingDelayInterval = BUFFERING_DELAY_INTERVAL_DEFAULT;
_bufferingOn = false;
_skinAutoHideIntervalID = 0;
_vc.addEventListener("metadataReceived", this);
_vc.addEventListener("playheadUpdate", this);
_vc.addEventListener("progress", this);
_vc.addEventListener("stateChange", this);
_vc.addEventListener("ready", this);
_vc.addEventListener("resize", this);
_vc.addEventListener("volumeUpdate", this);
}
function handleEvent(e) {
if ((e.vp != undefined) && (e.vp != _vc.__get__visibleVideoPlayerIndex())) {
return(undefined);
}
var _local9 = _vc.__get__activeVideoPlayerIndex();
_vc.__set__activeVideoPlayerIndex(_vc.visibleVideoPlayerIndex);
if (e.type == "stateChange") {
if (e.state == mx.video.FLVPlayback.BUFFERING) {
if (!_bufferingOn) {
clearInterval(_bufferingDelayIntervalID);
_bufferingDelayIntervalID = setInterval(this, "doBufferingDelay", _bufferingDelayInterval);
}
} else {
clearInterval(_bufferingDelayIntervalID);
_bufferingDelayIntervalID = 0;
_bufferingOn = false;
}
if (e.state == mx.video.FLVPlayback.LOADING) {
_progressPercent = (_vc.getVideoPlayer(e.vp).__get__isRTMP() ? 100 : 0);
var _local2 = SEEK_BAR;
while (_local2 <= VOLUME_BAR) {
var _local4 = controls[_local2];
if (_local4.progress_mc != undefined) {
positionBar(_local4, "progress", _progressPercent);
}
_local2++;
}
}
var _local2 = 0;
while (_local2 < NUM_CONTROLS) {
if (controls[_local2] == undefined) {
} else {
setEnabledAndVisibleForState(_local2, e.state);
if (_local2 < NUM_BUTTONS) {
skinButtonControl(controls[_local2]);
}
}
_local2++;
}
} else if ((e.type == "ready") || (e.type == "metadataReceived")) {
var _local2 = 0;
while (_local2 < NUM_CONTROLS) {
if (controls[_local2] == undefined) {
} else {
setEnabledAndVisibleForState(_local2, _vc.__get__state());
if (_local2 < NUM_BUTTONS) {
skinButtonControl(controls[_local2]);
}
}
_local2++;
}
if (_vc.getVideoPlayer(e.vp).__get__isRTMP()) {
_progressPercent = 100;
_local2 = SEEK_BAR;
while (_local2 <= VOLUME_BAR) {
var _local4 = controls[_local2];
if (_local4.progress_mc != undefined) {
positionBar(_local4, "progress", _progressPercent);
}
_local2++;
}
}
} else if (e.type == "resize") {
layoutSkin();
setupSkinAutoHide();
} else if (e.type == "volumeUpdate") {
if (_isMuted && (e.volume > 0)) {
_isMuted = false;
setEnabledAndVisibleForState(MUTE_OFF_BUTTON, mx.video.FLVPlayback.PLAYING);
skinButtonControl(controls[MUTE_OFF_BUTTON]);
setEnabledAndVisibleForState(MUTE_ON_BUTTON, mx.video.FLVPlayback.PLAYING);
skinButtonControl(controls[MUTE_ON_BUTTON]);
}
var _local5 = controls[VOLUME_BAR];
_local5.percentage = (_isMuted ? (cachedSoundLevel) : (e.volume));
if (_local5.percentage < 0) {
_local5.percentage = 0;
} else if (_local5.percentage > 100) {
_local5.percentage = 100;
}
positionHandle(VOLUME_BAR);
} else if ((e.type == "playheadUpdate") && (controls[SEEK_BAR] != undefined)) {
if ((!_vc.__get__isLive()) && (_vc.__get__totalTime() > 0)) {
var _local6 = (e.playheadTime / _vc.__get__totalTime()) * 100;
if (_local6 < 0) {
_local6 = 0;
} else if (_local6 > 100) {
_local6 = 100;
}
var _local10 = controls[SEEK_BAR];
_local10.percentage = _local6;
positionHandle(SEEK_BAR);
}
} else if (e.type == "progress") {
_progressPercent = ((e.bytesTotal <= 0) ? 100 : ((e.bytesLoaded / e.bytesTotal) * 100));
var _local7 = _vc._vpState[e.vp].minProgressPercent;
if ((!isNaN(_local7)) && (_local7 > _progressPercent)) {
_progressPercent = _local7;
}
if (_vc.__get__totalTime() > 0) {
var _local8 = (_vc.__get__playheadTime() / _vc.__get__totalTime()) * 100;
if (_local8 > _progressPercent) {
_progressPercent = _local8;
_vc._vpState[e.vp].minProgressPercent = _progressPercent;
}
}
var _local2 = SEEK_BAR;
while (_local2 <= VOLUME_BAR) {
var _local4 = controls[_local2];
if (_local4.progress_mc != undefined) {
positionBar(_local4, "progress", _progressPercent);
}
_local2++;
}
}
_vc.__set__activeVideoPlayerIndex(_local9);
}
function get bufferingBarHidesAndDisablesOthers() {
return(_bufferingBarHides);
}
function set bufferingBarHidesAndDisablesOthers(b) {
_bufferingBarHides = b;
//return(bufferingBarHidesAndDisablesOthers);
}
function get controlsEnabled() {
return(_controlsEnabled);
}
function set controlsEnabled(flag) {
if (_controlsEnabled == flag) {
return;
}
_controlsEnabled = flag;
var _local2 = 0;
while (_local2 < NUM_BUTTONS) {
if (controls[_local2] == undefined) {
} else {
controls[_local2].releaseCapture();
controls[_local2].enabled = _controlsEnabled && (controls[_local2].myEnabled);
skinButtonControl(controls[_local2]);
}
_local2++;
}
//return(controlsEnabled);
}
function get skin() {
return(_skin);
}
function set skin(s) {
if (s == _skin) {
return;
}
if (_skin != undefined) {
removeSkin();
}
_skin = s;
_skinReady = ((_skin == undefined) || (_skin == null)) || (_skin == "");
if (!_skinReady) {
downloadSkin();
}
//return(skin);
}
function get skinAutoHide() {
return(_skinAutoHide);
}
function set skinAutoHide(b) {
if (b == _skinAutoHide) {
return;
}
_skinAutoHide = b;
setupSkinAutoHide();
//return(skinAutoHide);
}
function get skinReady() {
return(_skinReady);
}
function get seekBarInterval() {
return(_seekBarInterval);
}
function set seekBarInterval(s) {
if (_seekBarInterval == s) {
return;
}
_seekBarInterval = s;
if (_seekBarIntervalID > 0) {
clearInterval(_seekBarIntervalID);
_seekBarIntervalID = setInterval(this, "seekBarListener", _seekBarInterval, false);
}
//return(seekBarInterval);
}
function get volumeBarInterval() {
return(_volumeBarInterval);
}
function set volumeBarInterval(s) {
if (_volumeBarInterval == s) {
return;
}
_volumeBarInterval = s;
if (_volumeBarIntervalID > 0) {
clearInterval(_volumeBarIntervalID);
_volumeBarIntervalID = setInterval(this, "volumeBarListener", _volumeBarInterval, false);
}
//return(volumeBarInterval);
}
function get bufferingDelayInterval() {
return(_bufferingDelayInterval);
}
function set bufferingDelayInterval(s) {
if (_bufferingDelayInterval == s) {
return;
}
_bufferingDelayInterval = s;
if (_bufferingDelayIntervalID > 0) {
clearInterval(_bufferingDelayIntervalID);
_bufferingDelayIntervalID = setInterval(this, "doBufferingDelay", _bufferingDelayIntervalID);
}
//return(bufferingDelayInterval);
}
function get volumeBarScrubTolerance() {
return(_volumeBarScrubTolerance);
}
function set volumeBarScrubTolerance(s) {
_volumeBarScrubTolerance = s;
//return(volumeBarScrubTolerance);
}
function get seekBarScrubTolerance() {
return(_seekBarScrubTolerance);
}
function set seekBarScrubTolerance(s) {
_seekBarScrubTolerance = s;
//return(seekBarScrubTolerance);
}
function get visible() {
return(__visible);
}
function set visible(v) {
if (__visible == v) {
return;
}
__visible = v;
if (!__visible) {
skin_mc._visible = false;
} else {
setupSkinAutoHide();
}
//return(visible);
}
function getControl(index) {
return(controls[index]);
}
function setControl(index, s) {
if (s == null) {
s = undefined;
}
if (s == controls[index]) {
return(undefined);
}
switch (index) {
case PAUSE_BUTTON :
case PLAY_BUTTON :
resetPlayPause();
break;
case PLAY_PAUSE_BUTTON :
if (s._parent != layout_mc) {
resetPlayPause();
setControl(PAUSE_BUTTON, s.pause_mc);
setControl(PLAY_BUTTON, s.play_mc);
}
break;
case MUTE_BUTTON :
if (s._parent == layout_mc) {
break;
}
setControl(MUTE_ON_BUTTON, s.on_mc);
setControl(MUTE_OFF_BUTTON, s.off_mc);
}
if (index >= NUM_BUTTONS) {
controls[index] = s;
switch (index) {
case SEEK_BAR :
addBarControl(SEEK_BAR);
break;
case VOLUME_BAR :
addBarControl(VOLUME_BAR);
controls[VOLUME_BAR].percentage = _vc.volume;
break;
case BUFFERING_BAR :
controls[BUFFERING_BAR].uiMgr = this;
controls[BUFFERING_BAR].controlIndex = BUFFERING_BAR;
if (controls[BUFFERING_BAR]._parent == skin_mc) {
finishAddBufferingBar();
} else {
controls[BUFFERING_BAR].onEnterFrame = function () {
this.uiMgr.finishAddBufferingBar();
};
}
}
setEnabledAndVisibleForState(index, _vc.__get__state());
} else {
removeButtonControl(index);
controls[index] = s;
addButtonControl(index);
}
}
function resetPlayPause() {
if (controls[PLAY_PAUSE_BUTTON] == undefined) {
return(undefined);
}
var _local2 = PAUSE_BUTTON;
while (_local2 <= PLAY_BUTTON) {
removeButtonControl(_local2);
_local2++;
}
controls[PLAY_PAUSE_BUTTON] = undefined;
}
function addButtonControl(index) {
var _local3 = controls[index];
if (_local3 == undefined) {
return(undefined);
}
var _local5 = _vc.__get__activeVideoPlayerIndex();
_vc.__set__activeVideoPlayerIndex(_vc.visibleVideoPlayerIndex);
_local3.id = index;
_local3.state = UP_STATE;
_local3.uiMgr = this;
setEnabledAndVisibleForState(index, _vc.__get__state());
_local3.onRollOver = function () {
this.state = mx.video.UIManager.OVER_STATE;
this.uiMgr.skinButtonControl(this);
};
_local3.onRollOut = function () {
this.state = mx.video.UIManager.UP_STATE;
this.uiMgr.skinButtonControl(this);
};
if ((index == SEEK_BAR_HANDLE) || (index == VOLUME_BAR_HANDLE)) {
_local3.onPress = function () {
if (_root.focusManager) {
this._focusrect = false;
Selection.setFocus(this);
}
this.state = mx.video.UIManager.DOWN_STATE;
this.uiMgr.dispatchMessage(this);
this.uiMgr.skinButtonControl(this);
};
_local3.onRelease = function () {
this.state = mx.video.UIManager.OVER_STATE;
this.uiMgr.handleRelease(this.controlIndex);
this.uiMgr.skinButtonControl(this);
};
_local3.onReleaseOutside = function () {
this.state = mx.video.UIManager.UP_STATE;
this.uiMgr.handleRelease(this.controlIndex);
this.uiMgr.skinButtonControl(this);
};
} else {
_local3.onPress = function () {
if (_root.focusManager) {
this._focusrect = false;
Selection.setFocus(this);
}
this.state = mx.video.UIManager.DOWN_STATE;
this.uiMgr.skinButtonControl(this);
};
_local3.onRelease = function () {
this.state = mx.video.UIManager.OVER_STATE;
this.uiMgr.dispatchMessage(this);
this.uiMgr.skinButtonControl(this);
};
_local3.onReleaseOutside = function () {
this.state = mx.video.UIManager.UP_STATE;
this.uiMgr.skinButtonControl(this);
};
}
if (_local3._parent == skin_mc) {
skinButtonControl(_local3);
} else {
_local3.onEnterFrame = function () {
this.uiMgr.skinButtonControl(this);
};
}
_vc.__set__activeVideoPlayerIndex(_local5);
}
function removeButtonControl(index) {
if (controls[index] == undefined) {
return(undefined);
}
controls[index].uiMgr = undefined;
controls[index].onRollOver = undefined;
controls[index].onRollOut = undefined;
controls[index].onPress = undefined;
controls[index].onRelease = undefined;
controls[index].onReleaseOutside = undefined;
controls[index] = undefined;
}
function downloadSkin() {
if (skinLoader == undefined) {
skinLoader = new MovieClipLoader();
skinLoader.addListener(this);
}
if (skin_mc == undefined) {
skin_mc = _vc.createEmptyMovieClip("skin_mc", _vc.getNextHighestDepth());
}
skin_mc._visible = false;
skin_mc._x = Stage.width + 100;
skin_mc._y = Stage.height + 100;
skinLoader.loadClip(_skin, skin_mc);
}
function onLoadError(target_mc, errorCode) {
_skinReady = true;
_vc.skinError("Unable to load skin swf");
}
function onLoadInit() {
try {
skin_mc._visible = false;
skin_mc._x = 0;
skin_mc._y = 0;
layout_mc = skin_mc.layout_mc;
if (layout_mc == undefined) {
throw new Error("No layout_mc");
}
layout_mc._visible = false;
customClips = new Array();
setCustomClips("bg");
if (layout_mc.playpause_mc != undefined) {
setSkin(PLAY_PAUSE_BUTTON, layout_mc.playpause_mc);
} else {
setSkin(PAUSE_BUTTON, layout_mc.pause_mc);
setSkin(PLAY_BUTTON, layout_mc.play_mc);
}
setSkin(STOP_BUTTON, layout_mc.stop_mc);
setSkin(BACK_BUTTON, layout_mc.back_mc);
setSkin(FORWARD_BUTTON, layout_mc.forward_mc);
setSkin(MUTE_BUTTON, layout_mc.volumeMute_mc);
setSkin(SEEK_BAR, layout_mc.seekBar_mc);
setSkin(VOLUME_BAR, layout_mc.volumeBar_mc);
setSkin(BUFFERING_BAR, layout_mc.bufferingBar_mc);
setCustomClips("fg");
layoutSkin();
setupSkinAutoHide();
skin_mc._visible = __visible;
_skinReady = true;
_vc.skinLoaded();
var _local4 = _vc.__get__activeVideoPlayerIndex();
_vc.__set__activeVideoPlayerIndex(_vc.visibleVideoPlayerIndex);
var _local3 = _vc.__get__state();
var _local2 = 0;
while (_local2 < NUM_CONTROLS) {
if (controls[_local2] == undefined) {
} else {
setEnabledAndVisibleForState(_local2, _local3);
if (_local2 < NUM_BUTTONS) {
skinButtonControl(controls[_local2]);
}
}
_local2++;
}
_vc.__set__activeVideoPlayerIndex(_local4);
} catch(err:Error) {
_vc.skinError(err.message);
removeSkin();
}
}
function layoutSkin() {
if (layout_mc == undefined) {
return(undefined);
}
var _local3 = layout_mc.video_mc;
if (_local3 == undefined) {
throw new Error("No layout_mc.video_mc");
}
placeholderLeft = _local3._x;
placeholderRight = _local3._x + _local3._width;
placeholderTop = _local3._y;
placeholderBottom = _local3._y + _local3._height;
videoLeft = 0;
videoRight = _vc.width;
videoTop = 0;
videoBottom = _vc.height;
if (((!isNaN(layout_mc.minWidth)) && (layout_mc.minWidth > 0)) && (layout_mc.minWidth > videoRight)) {
videoLeft = videoLeft - ((layout_mc.minWidth - videoRight) / 2);
videoRight = layout_mc.minWidth + videoLeft;
}
if (((!isNaN(layout_mc.minHeight)) && (layout_mc.minHeight > 0)) && (layout_mc.minHeight > videoBottom)) {
videoTop = videoTop - ((layout_mc.minHeight - videoBottom) / 2);
videoBottom = layout_mc.minHeight + videoTop;
}
var _local2;
_local2 = 0;
while (_local2 < customClips.length) {
layoutControl(customClips[_local2]);
_local2++;
}
_local2 = 0;
while (_local2 < NUM_CONTROLS) {
layoutControl(controls[_local2]);
_local2++;
}
}
function layoutControl(ctrl) {
if (ctrl == undefined) {
return(undefined);
}
if (ctrl.skin.anchorRight) {
if (ctrl.skin.anchorLeft) {
ctrl._x = (ctrl.skin._x - placeholderLeft) + videoLeft;
ctrl._width = (((ctrl.skin._x + ctrl.skin._width) - placeholderRight) + videoRight) - ctrl._x;
if (ctrl.origWidth != undefined) {
ctrl.origWidth = undefined;
}
} else {
ctrl._x = (ctrl.skin._x - placeholderRight) + videoRight;
}
} else {
ctrl._x = (ctrl.skin._x - placeholderLeft) + videoLeft;
}
if (ctrl.skin.anchorTop) {
if (ctrl.skin.anchorBottom) {
ctrl._y = (ctrl.skin._y - placeholderTop) + videoTop;
ctrl._height = (((ctrl.skin._y + ctrl.skin._height) - placeholderBottom) + videoBottom) - ctrl._y;
if (ctrl.origHeight != undefined) {
ctrl.origHeight = undefined;
}
} else {
ctrl._y = (ctrl.skin._y - placeholderTop) + videoTop;
}
} else {
ctrl._y = (ctrl.skin._y - placeholderBottom) + videoBottom;
}
switch (ctrl.controlIndex) {
case SEEK_BAR :
case VOLUME_BAR :
if (ctrl.progress_mc != undefined) {
if (_progressPercent == undefined) {
_progressPercent = (_vc.__get__isRTMP() ? 100 : 0);
}
positionBar(ctrl, "progress", _progressPercent);
}
positionHandle(ctrl.controlIndex);
break;
case BUFFERING_BAR :
if (ctrl.fill_mc == undefined) {
break;
}
positionMaskedFill(ctrl, ctrl.fill_mc, 100);
}
if (ctrl.layoutSelf != undefined) {
ctrl.layoutSelf();
}
}
function removeSkin() {
if (skin_mc != undefined) {
var _local2 = 0;
while (_local2 < NUM_BUTTONS) {
removeButtonControl(_local2);
_local2++;
}
_local2 = NUM_BUTTONS;
while (_local2 < NUM_CONTROLS) {
controls[_local2] = undefined;
_local2++;
}
skin_mc.unloadMovie();
layout_mc = undefined;
border_mc = undefined;
}
}
function setCustomClips(prefix) {
var _local4 = 1;
while (true) {
var _local2 = layout_mc[(prefix + (_local4++)) + "_mc"];
if (_local2 == undefined) {
break;
}
var _local3 = _local2.mc;
if (_local3 == undefined) {
_local3 = _local2._parent._parent[_local2._name];
}
if (_local3 == undefined) {
throw new Error("Bad clip in skin: " + _local2);
}
_local3.skin = _local2;
customClips.push(_local3);
if ((prefix == "bg") && (_local4 == 2)) {
border_mc = _local3;
}
}
}
function setSkin(index, s) {
if (s == undefined) {
return(undefined);
}
var _local2 = s.mc;
if (_local2 == undefined) {
_local2 = s._parent._parent[s._name];
}
if (_local2 == undefined) {
throw new Error("Bad clip in skin: " + s);
}
_local2.skin = s;
if (index < NUM_BUTTONS) {
setupSkinStates(_local2);
} else {
switch (index) {
case PLAY_PAUSE_BUTTON :
setupSkinStates(_local2.play_mc);
setupSkinStates(_local2.pause_mc);
break;
case MUTE_BUTTON :
setupSkinStates(_local2.on_mc);
setupSkinStates(_local2.off_mc);
break;
case SEEK_BAR :
case VOLUME_BAR :
var _local4 = ((index == SEEK_BAR) ? "seekBar" : "volumeBar");
if (_local2.handle_mc == undefined) {
_local2.handle_mc = _local2.skin.seekBarHandle_mc;
if (_local2.handle_mc == undefined) {
_local2.handle_mc = _local2.skin._parent._parent[_local4 + "Handle_mc"];
}
}
if (_local2.progress_mc == undefined) {
_local2.progress_mc = _local2.skin.progress_mc;
if (_local2.progress_mc == undefined) {
_local2.progress_mc = _local2.skin._parent._parent[_local4 + "Progress_mc"];
}
}
if (_local2.fullness_mc == undefined) {
_local2.fullness_mc = _local2.skin.fullness_mc;
if (_local2.fullness_mc == undefined) {
_local2.fullness_mc = _local2.skin._parent._parent[_local4 + "Fullness_mc"];
}
}
break;
case BUFFERING_BAR :
if (_local2.fill_mc != undefined) {
break;
}
_local2.fill_mc = _local2.skin.fill_mc;
if (_local2.fill_mc != undefined) {
break;
}
_local2.fill_mc = _local2.skin._parent._parent.bufferingBarFill_mc;
}
}
setControl(index, _local2);
}
function setupSkinStates(ctrl) {
if (ctrl.up_mc == undefined) {
ctrl.up_mc = ctrl;
ctrl.over_mc = ctrl;
ctrl.down_mc = ctrl;
ctrl.disabled_mc = ctrl;
} else {
ctrl._x = 0;
ctrl._y = 0;
ctrl.up_mc._x = 0;
ctrl.up_mc._y = 0;
ctrl.up_mc._visible = true;
if (ctrl.over_mc == undefined) {
ctrl.over_mc = ctrl.up_mc;
} else {
ctrl.over_mc._x = 0;
ctrl.over_mc._y = 0;
ctrl.over_mc._visible = false;
}
if (ctrl.down_mc == undefined) {
ctrl.down_mc = ctrl.up_mc;
} else {
ctrl.down_mc._x = 0;
ctrl.down_mc._y = 0;
ctrl.down_mc._visible = false;
}
if (ctrl.disabled_mc == undefined) {
ctrl.disabled_mc_mc = ctrl.up_mc;
} else {
ctrl.disabled_mc._x = 0;
ctrl.disabled_mc._y = 0;
ctrl.disabled_mc._visible = false;
}
}
}
function skinButtonControl(ctrl) {
if (ctrl.onEnterFrame != undefined) {
delete ctrl.onEnterFrame;
ctrl.onEnterFrame = undefined;
}
if (ctrl.enabled) {
switch (ctrl.state) {
case UP_STATE :
if (ctrl.up_mc == undefined) {
ctrl.up_mc = ctrl.attachMovie(ctrl.upLinkageID, "up_mc", ctrl.getNextHighestDepth());
}
applySkinState(ctrl, ctrl.up_mc);
break;
case OVER_STATE :
if (ctrl.over_mc == undefined) {
if (ctrl.overLinkageID == undefined) {
ctrl.over_mc = ctrl.up_mc;
} else {
ctrl.over_mc = ctrl.attachMovie(ctrl.overLinkageID, "over_mc", ctrl.getNextHighestDepth());
}
}
applySkinState(ctrl, ctrl.over_mc);
break;
case DOWN_STATE :
if (ctrl.down_mc == undefined) {
if (ctrl.downLinkageID == undefined) {
ctrl.down_mc = ctrl.up_mc;
} else {
ctrl.down_mc = ctrl.attachMovie(ctrl.downLinkageID, "down_mc", ctrl.getNextHighestDepth());
}
}
applySkinState(ctrl, ctrl.down_mc);
}
} else {
ctrl.state = UP_STATE;
if (ctrl.disabled_mc == undefined) {
if (ctrl.disabledLinkageID == undefined) {
ctrl.disabled_mc = ctrl.up_mc;
} else {
ctrl.disabled_mc = ctrl.attachMovie(ctrl.disabledLinkageID, "disabled_mc", ctrl.getNextHighestDepth());
}
}
applySkinState(ctrl, ctrl.disabled_mc);
}
if (ctrl.placeholder_mc != undefined) {
ctrl.placeholder_mc.unloadMovie();
delete ctrl.placeholder_mc;
ctrl.placeholder_mc = undefined;
}
}
function applySkinState(ctrl, state) {
if (state != ctrl.currentState_mc) {
if (state != undefined) {
state._visible = true;
}
if (ctrl.currentState_mc != undefined) {
ctrl.currentState_mc._visible = false;
}
ctrl.currentState_mc = state;
}
}
function addBarControl(controlIndex) {
var _local2 = controls[controlIndex];
_local2.isDragging = false;
_local2.percentage = 0;
_local2.uiMgr = this;
_local2.controlIndex = controlIndex;
if (_local2._parent == skin_mc) {
finishAddBarControl(controlIndex);
} else {
_local2.onEnterFrame = function () {
this.uiMgr.finishAddBarControl(this.controlIndex);
};
}
}
function finishAddBarControl(controlIndex) {
var _local2 = controls[controlIndex];
delete _local2.onEnterFrame;
_local2.onEnterFrame = undefined;
if (_local2.addBarControl != undefined) {
_local2.addBarControl();
}
calcBarMargins(_local2, "handle", true);
calcBarMargins(_local2, "progress", false);
calcBarMargins(_local2.progress_mc, "fill", false);
calcBarMargins(_local2.progress_mc, "mask", false);
calcBarMargins(_local2, "fullness", false);
calcBarMargins(_local2.fullness_mc, "fill", false);
calcBarMargins(_local2.fullness_mc, "mask", false);
_local2.origWidth = _local2._width;
_local2.origHeight = _local2._height;
fixUpBar(_local2, "progress");
if (_local2.progress_mc != undefined) {
fixUpBar(_local2, "progressBarFill");
if (_progressPercent == undefined) {
_progressPercent = (_vc.__get__isRTMP() ? 100 : 0);
}
positionBar(_local2, "progress", _progressPercent);
}
fixUpBar(_local2, "fullness");
if (_local2.fullness_mc != undefined) {
fixUpBar(_local2, "fullnessBarFill");
}
fixUpBar(_local2, "handle");
_local2.handle_mc.controlIndex = controlIndex;
switch (controlIndex) {
case SEEK_BAR :
setControl(SEEK_BAR_HANDLE, _local2.handle_mc);
break;
case VOLUME_BAR :
setControl(VOLUME_BAR_HANDLE, _local2.handle_mc);
}
positionHandle(controlIndex);
}
function fixUpBar(ctrl, type) {
if ((ctrl[type + "LinkageID"] != undefined) && (ctrl[type + "LinkageID"].length > 0)) {
var _local1;
if (ctrl[type + "Below"]) {
_local1 = -1;
while (ctrl._parent.getInstanceAtDepth(_local1) != undefined) {
_local1--;
}
} else {
ctrl[type + "Below"] = false;
_local1 = ctrl._parent.getNextHighestDepth();
}
ctrl[type + "_mc"] = ctrl._parent.attachMovie(ctrl[type + "LinkageID"], type + "_mc", _local1);
}
}
function calcBarMargins(ctrl, type, symmetricMargins) {
var _local2 = ctrl[type + "_mc"];
if (_local2 == undefined) {
return(undefined);
}
if ((ctrl[type + "LeftMargin"] == undefined) && (_local2._parent == ctrl._parent)) {
ctrl[type + "LeftMargin"] = _local2._x - ctrl._x;
}
if (ctrl[type + "RightMargin"] == undefined) {
if (symmetricMargins) {
ctrl[type + "RightMargin"] = ctrl[type + "LeftMargin"];
} else if (_local2._parent == ctrl._parent) {
ctrl[type + "RightMargin"] = ((ctrl._width - _local2._width) - _local2._x) + ctrl._x;
}
}
if ((ctrl[type + "TopMargin"] == undefined) && (_local2._parent == ctrl._parent)) {
ctrl[type + "TopMargin"] = _local2._y - ctrl._y;
}
if (ctrl[type + "BottomMargin"] == undefined) {
if (symmetricMargins) {
ctrl[type + "BottomMargin"] = ctrl[type + "TopMargin"];
} else if (_local2._parent == ctrl._parent) {
ctrl[type + "BottomMargin"] = ((ctrl._height - _local2._height) - _local2._y) + ctrl._y;
}
}
if (ctrl[type + "X"] == undefined) {
if (_local2._parent == ctrl._parent) {
ctrl[type + "X"] = _local2._x - ctrl._x;
} else if (_local2._parent == ctrl) {
ctrl[type + "X"] = _local2._x;
}
}
if (ctrl[type + "Y"] == undefined) {
if (_local2._parent == ctrl._parent) {
ctrl[type + "Y"] = _local2._y - ctrl._y;
} else if (_local2._parent == ctrl) {
ctrl[type + "Y"] = _local2._y;
}
}
ctrl[type + "XScale"] = _local2._xscale;
ctrl[type + "YScale"] = _local2._yscale;
ctrl[type + "Width"] = _local2._width;
ctrl[type + "Height"] = _local2._height;
}
function finishAddBufferingBar() {
var _local2 = controls[BUFFERING_BAR];
delete _local2.onEnterFrame;
_local2.onEnterFrame = undefined;
calcBarMargins(_local2, "fill", true);
fixUpBar(_local2, "fill");
if (_local2.fill_mc != undefined) {
positionMaskedFill(_local2, _local2.fill_mc, 100);
}
}
function positionMaskedFill(ctrl, fill, percent) {
var _local5 = fill._parent;
var _local3 = ctrl.mask_mc;
if (_local3 == undefined) {
_local3 = _local5.createEmptyMovieClip(ctrl._name + "Mask_mc", _local5.getNextHighestDepth());
ctrl.mask_mc = _local3;
_local3.beginFill(16777215);
_local3.lineTo(0, 0);
_local3.lineTo(1, 0);
_local3.lineTo(1, 1);
_local3.lineTo(0, 1);
_local3.lineTo(0, 0);
_local3.endFill();
fill.setMask(_local3);
_local3._x = ctrl.fillX;
_local3._y = ctrl.fillY;
_local3._width = ctrl.fillWidth;
_local3._height = ctrl.fillHeight;
_local3._visible = false;
calcBarMargins(ctrl, "mask", true);
}
if (_local5 == ctrl) {
if (fill.slideReveal) {
fill._x = (ctrl.maskX - ctrl.fillWidth) + ((ctrl.fillWidth * percent) / 100);
} else {
_local3._width = (ctrl.fillWidth * percent) / 100;
}
} else if (_local5 == ctrl._parent) {
if (fill.slideReveal) {
_local3._x = ctrl._x + ctrl.maskLeftMargin;
_local3._y = ctrl._y + ctrl.maskTopMargin;
_local3._width = (ctrl._width - ctrl.maskRightMargin) - ctrl.maskLeftMargin;
_local3._height = (ctrl._height - ctrl.maskTopMargin) - ctrl.maskBottomMargin;
fill._x = (_local3._x - ctrl.fillWidth) + ((ctrl.maskWidth * percent) / 100);
fill._y = ctrl._y + ctrl.fillTopMargin;
} else {
fill._x = ctrl._x + ctrl.fillLeftMargin;
fill._y = ctrl._y + ctrl.fillTopMargin;
_local3._x = fill._x;
_local3._y = fill._y;
_local3._width = (((ctrl._width - ctrl.fillRightMargin) - ctrl.fillLeftMargin) * percent) / 100;
_local3._height = (ctrl._height - ctrl.fillTopMargin) - ctrl.fillBottomMargin;
}
}
}
function startHandleDrag(controlIndex) {
var _local2 = controls[controlIndex];
var _local5 = _local2.handle_mc;
if ((_local2.startHandleDrag == undefined) || (!_local2.startHandleDrag())) {
var _local3 = _local2._y + _local2.handleY;
var _local4 = ((_local2.origWidth == undefined) ? (_local2._width) : (_local2.origWidth));
_local5.startDrag(false, _local2._x + _local2.handleLeftMargin, _local3, (_local2._x + _local4) - _local2.handleRightMargin, _local3);
}
_local2.isDragging = true;
}
function stopHandleDrag(controlIndex) {
var _local2 = controls[controlIndex];
var _local3 = _local2.handle_mc;
if ((_local2.stopHandleDrag == undefined) || (!_local2.stopHandleDrag())) {
_local3.stopDrag();
}
_local2.isDragging = false;
}
function positionHandle(controlIndex) {
var _local2 = controls[controlIndex];
var _local3 = _local2.handle_mc;
if (_local3 == undefined) {
return(undefined);
}
if ((_local2.positionHandle != undefined) && (_local2.positionHandle())) {
return(undefined);
}
var _local4 = ((_local2.origWidth == undefined) ? (_local2._width) : (_local2.origWidth));
var _local5 = (_local4 - _local2.handleRightMargin) - _local2.handleLeftMargin;
_local3._x = (_local2._x + _local2.handleLeftMargin) + ((_local5 * _local2.percentage) / 100);
_local3._y = _local2._y + _local2.handleY;
if (_local2.fullness_mc != undefined) {
positionBar(_local2, "fullness", _local2.percentage);
}
}
function positionBar(ctrl, type, percent) {
if ((ctrl.positionBar != undefined) && (ctrl.positionBar(type, percent))) {
return(undefined);
}
var _local2 = ctrl[type + "_mc"];
if (_local2._parent == ctrl) {
if (_local2.fill_mc == undefined) {
_local2._xscale = (ctrl[type + "XScale"] * percent) / 100;
} else {
positionMaskedFill(_local2, _local2.fill_mc, percent);
}
} else {
_local2._x = ctrl._x + ctrl[type + "LeftMargin"];
_local2._y = ctrl._y + ctrl[type + "Y"];
if (_local2.fill_mc == undefined) {
_local2._width = (((ctrl._width - ctrl[type + "LeftMargin"]) - ctrl[type + "RightMargin"]) * percent) / 100;
} else {
positionMaskedFill(_local2, _local2.fill_mc, percent);
}
}
}
function calcPercentageFromHandle(controlIndex) {
var _local2 = controls[controlIndex];
var _local5 = _local2.handle_mc;
if ((_local2.calcPercentageFromHandle == undefined) || (!_local2.calcPercentageFromHandle())) {
var _local3 = ((_local2.origWidth == undefined) ? (_local2._width) : (_local2.origWidth));
var _local6 = (_local3 - _local2.handleRightMargin) - _local2.handleLeftMargin;
var _local4 = _local5._x - (_local2._x + _local2.handleLeftMargin);
_local2.percentage = (_local4 / _local6) * 100;
if (_local2.fullness_mc != undefined) {
positionBar(_local2, "fullness", _local2.percentage);
}
}
if (_local2.percentage < 0) {
_local2.percentage = 0;
}
if (_local2.percentage > 100) {
_local2.percentage = 100;
}
}
function handleRelease(controlIndex) {
var _local3 = _vc.__get__activeVideoPlayerIndex();
_vc.__set__activeVideoPlayerIndex(_vc.visibleVideoPlayerIndex);
if (controlIndex == SEEK_BAR) {
seekBarListener(true);
} else if (controlIndex == VOLUME_BAR) {
volumeBarListener(true);
}
stopHandleDrag(controlIndex);
_vc.__set__activeVideoPlayerIndex(_local3);
if (controlIndex == SEEK_BAR) {
_vc._scrubFinish();
}
}
function seekBarListener(finish) {
var _local3 = _vc.__get__activeVideoPlayerIndex();
_vc.__set__activeVideoPlayerIndex(_vc.visibleVideoPlayerIndex);
var _local4 = controls[SEEK_BAR];
calcPercentageFromHandle(SEEK_BAR);
var _local2 = _local4.percentage;
if (finish) {
clearInterval(_seekBarIntervalID);
_seekBarIntervalID = 0;
if (_local2 != _lastScrubPos) {
_vc.seekPercent(_local2);
}
_vc.addEventListener("playheadUpdate", this);
if (_playAfterScrub) {
_vc.play();
}
} else if (_vc.getVideoPlayer(_vc.__get__visibleVideoPlayerIndex()).__get__state() == mx.video.VideoPlayer.SEEKING) {
} else if ((((_seekBarScrubTolerance <= 0) || (Math.abs(_local2 - _lastScrubPos) > _seekBarScrubTolerance)) || (_local2 < _seekBarScrubTolerance)) || (_local2 > (100 - _seekBarScrubTolerance))) {
if (_local2 != _lastScrubPos) {
_lastScrubPos = _local2;
_vc.seekPercent(_local2);
}
}
_vc.__set__activeVideoPlayerIndex(_local3);
}
function volumeBarListener(finish) {
var _local3 = controls[VOLUME_BAR];
calcPercentageFromHandle(VOLUME_BAR);
var _local2 = _local3.percentage;
if (finish) {
clearInterval(_volumeBarIntervalID);
_volumeBarIntervalID = 0;
_vc.addEventListener("volumeUpdate", this);
}
if ((((finish || (_volumeBarScrubTolerance <= 0)) || (Math.abs(_local2 - _lastVolumePos) > _volumeBarScrubTolerance)) || (_local2 < _volumeBarScrubTolerance)) || (_local2 > (100 - _volumeBarScrubTolerance))) {
if (_local2 != _lastVolumePos) {
if (_isMuted) {
cachedSoundLevel = _local2;
} else {
_vc.__set__volume(_local2);
}
}
}
}
function doBufferingDelay() {
clearInterval(_bufferingDelayIntervalID);
_bufferingDelayIntervalID = 0;
var _local2 = _vc.__get__activeVideoPlayerIndex();
_vc.__set__activeVideoPlayerIndex(_vc.visibleVideoPlayerIndex);
if (_vc.__get__state() == mx.video.FLVPlayback.BUFFERING) {
_bufferingOn = true;
handleEvent({type:"stateChange", state:mx.video.FLVPlayback.BUFFERING, vp:_vc.__get__visibleVideoPlayerIndex()});
}
_vc.__set__activeVideoPlayerIndex(_local2);
}
function dispatchMessage(ctrl) {
if (ctrl.id == SEEK_BAR_HANDLE) {
_vc._scrubStart();
}
var _local2 = _vc.__get__activeVideoPlayerIndex();
_vc.__set__activeVideoPlayerIndex(_vc.visibleVideoPlayerIndex);
switch (ctrl.id) {
case PAUSE_BUTTON :
_vc.pause();
break;
case PLAY_BUTTON :
_vc.play();
break;
case STOP_BUTTON :
_vc.stop();
break;
case SEEK_BAR_HANDLE :
calcPercentageFromHandle(SEEK_BAR);
_lastScrubPos = controls[SEEK_BAR].percentage;
_vc.removeEventListener("playheadUpdate", this);
if (_vc.__get__playing() || (_vc.__get__buffering())) {
_playAfterScrub = true;
} else if (_vc.__get__state() != mx.video.VideoPlayer.SEEKING) {
_playAfterScrub = false;
}
_seekBarIntervalID = setInterval(this, "seekBarListener", _seekBarInterval, false);
startHandleDrag(SEEK_BAR, SEEK_BAR_HANDLE);
_vc.pause();
break;
case VOLUME_BAR_HANDLE :
calcPercentageFromHandle(VOLUME_BAR);
_lastVolumePos = controls[VOLUME_BAR].percentage;
_vc.removeEventListener("volumeUpdate", this);
_volumeBarIntervalID = setInterval(this, "volumeBarListener", _volumeBarInterval, false);
startHandleDrag(VOLUME_BAR, VOLUME_BAR_HANDLE);
break;
case BACK_BUTTON :
_vc.seekToPrevNavCuePoint();
break;
case FORWARD_BUTTON :
_vc.seekToNextNavCuePoint();
break;
case MUTE_ON_BUTTON :
case MUTE_OFF_BUTTON :
if (!_isMuted) {
_isMuted = true;
cachedSoundLevel = _vc.volume;
_vc.__set__volume(0);
} else {
_isMuted = false;
_vc.__set__volume(cachedSoundLevel);
}
setEnabledAndVisibleForState(MUTE_OFF_BUTTON, mx.video.FLVPlayback.PLAYING);
skinButtonControl(controls[MUTE_OFF_BUTTON]);
setEnabledAndVisibleForState(MUTE_ON_BUTTON, mx.video.FLVPlayback.PLAYING);
skinButtonControl(controls[MUTE_ON_BUTTON]);
break;
default :
throw new Error("Unknown ButtonControl");
}
_vc.__set__activeVideoPlayerIndex(_local2);
}
function setEnabledAndVisibleForState(index, state) {
var _local5 = _vc.__get__activeVideoPlayerIndex();
_vc.__set__activeVideoPlayerIndex(_vc.visibleVideoPlayerIndex);
var _local3 = state;
if ((_local3 == mx.video.FLVPlayback.BUFFERING) && (!_bufferingOn)) {
_local3 = mx.video.FLVPlayback.PLAYING;
}
switch (index) {
case VOLUME_BAR :
case VOLUME_BAR_HANDLE :
controls[index].myEnabled = true;
controls[index].enabled = _controlsEnabled;
break;
case MUTE_ON_BUTTON :
controls[index].myEnabled = !_isMuted;
if (controls[MUTE_BUTTON] != undefined) {
controls[index]._visible = controls[index].myEnabled;
}
break;
case MUTE_OFF_BUTTON :
controls[index].myEnabled = _isMuted;
if (controls[MUTE_BUTTON] != undefined) {
controls[index]._visible = controls[index].myEnabled;
}
break;
default :
switch (_local3) {
case mx.video.FLVPlayback.LOADING :
case mx.video.FLVPlayback.CONNECTION_ERROR :
controls[index].myEnabled = false;
break;
case mx.video.FLVPlayback.DISCONNECTED :
controls[index].myEnabled = _vc.__get__contentPath() != undefined;
break;
case mx.video.FLVPlayback.SEEKING :
break;
default :
controls[index].myEnabled = true;
}
}
switch (index) {
case SEEK_BAR :
switch (_local3) {
case mx.video.FLVPlayback.STOPPED :
case mx.video.FLVPlayback.PLAYING :
case mx.video.FLVPlayback.PAUSED :
case mx.video.FLVPlayback.REWINDING :
case mx.video.FLVPlayback.SEEKING :
controls[index].myEnabled = true;
break;
case mx.video.FLVPlayback.BUFFERING :
controls[index].myEnabled = (!_bufferingBarHides) || (controls[BUFFERING_BAR] == undefined);
break;
default :
controls[index].myEnabled = false;
}
if (controls[index].myEnabled) {
controls[index].myEnabled = (!isNaN(_vc.__get__totalTime())) && (_vc.__get__totalTime() > 0);
}
controls[index].handle_mc.myEnabled = controls[index].myEnabled;
controls[index].handle_mc.enabled = controls[index].handle_mc.myEnabled;
controls[index].handle_mc._visible = controls[index].myEnabled;
var _local4 = (((!_bufferingBarHides) || (controls[index].myEnabled)) || (controls[BUFFERING_BAR] == undefined)) || (!controls[BUFFERING_BAR]._visible);
controls[index]._visible = _local4;
controls[index].progress_mc._visible = _local4;
controls[index].progress_mc.fill_mc._visible = _local4;
controls[index].fullness_mc._visible = _local4;
controls[index].progress_mc.fill_mc._visible = _local4;
break;
case BUFFERING_BAR :
switch (_local3) {
case mx.video.FLVPlayback.STOPPED :
case mx.video.FLVPlayback.PLAYING :
case mx.video.FLVPlayback.PAUSED :
case mx.video.FLVPlayback.REWINDING :
case mx.video.FLVPlayback.SEEKING :
controls[index].myEnabled = false;
break;
default :
controls[index].myEnabled = true;
}
controls[index]._visible = controls[index].myEnabled;
controls[index].fill_mc._visible = controls[index].myEnabled;
break;
case PAUSE_BUTTON :
switch (_local3) {
case mx.video.FLVPlayback.DISCONNECTED :
case mx.video.FLVPlayback.STOPPED :
case mx.video.FLVPlayback.PAUSED :
case mx.video.FLVPlayback.REWINDING :
controls[index].myEnabled = false;
break;
case mx.video.FLVPlayback.PLAYING :
controls[index].myEnabled = true;
break;
case mx.video.FLVPlayback.BUFFERING :
controls[index].myEnabled = (!_bufferingBarHides) || (controls[BUFFERING_BAR] == undefined);
}
if (controls[PLAY_PAUSE_BUTTON] != undefined) {
controls[index]._visible = controls[index].myEnabled;
}
break;
case PLAY_BUTTON :
switch (_local3) {
case mx.video.FLVPlayback.PLAYING :
controls[index].myEnabled = false;
break;
case mx.video.FLVPlayback.STOPPED :
case mx.video.FLVPlayback.PAUSED :
controls[index].myEnabled = true;
break;
case mx.video.FLVPlayback.BUFFERING :
controls[index].myEnabled = (!_bufferingBarHides) || (controls[BUFFERING_BAR] == undefined);
}
if (controls[PLAY_PAUSE_BUTTON] != undefined) {
controls[index]._visible = !controls[PAUSE_BUTTON]._visible;
}
break;
case STOP_BUTTON :
switch (_local3) {
case mx.video.FLVPlayback.DISCONNECTED :
case mx.video.FLVPlayback.STOPPED :
controls[index].myEnabled = false;
break;
case mx.video.FLVPlayback.PAUSED :
case mx.video.FLVPlayback.PLAYING :
case mx.video.FLVPlayback.BUFFERING :
controls[index].myEnabled = true;
}
break;
case BACK_BUTTON :
case FORWARD_BUTTON :
if (!(_local3 === mx.video.FLVPlayback.BUFFERING)) {
} else {
controls[index].myEnabled = (!_bufferingBarHides) || (controls[BUFFERING_BAR] == undefined);
}
}
controls[index].enabled = _controlsEnabled && (controls[index].myEnabled);
_vc.__set__activeVideoPlayerIndex(_local5);
}
function setupSkinAutoHide() {
var _local2 = _vc.getVideoPlayer(_vc.__get__visibleVideoPlayerIndex());
if (_skinAutoHide && (skin_mc != undefined)) {
skinAutoHideHitTest();
if (_skinAutoHideIntervalID == 0) {
_skinAutoHideIntervalID = setInterval(this, "skinAutoHideHitTest", SKIN_AUTO_HIDE_INTERVAL);
}
} else {
skin_mc._visible = __visible;
clearInterval(_skinAutoHideIntervalID);
_skinAutoHideIntervalID = 0;
}
}
function skinAutoHideHitTest() {
if (!__visible) {
skin_mc._visible = false;
} else {
var _local4 = _vc.getVideoPlayer(_vc.__get__visibleVideoPlayerIndex());
var _local3 = _local4.hitTest(_root._xmouse, _root._ymouse, true);
if ((!_local3) && (border_mc != undefined)) {
_local3 = border_mc.hitTest(_root._xmouse, _root._ymouse, true);
}
skin_mc._visible = _local3;
}
}
static var version = "1.0.0.103";
static var PAUSE_BUTTON = 0;
static var PLAY_BUTTON = 1;
static var STOP_BUTTON = 2;
static var SEEK_BAR_HANDLE = 3;
static var BACK_BUTTON = 4;
static var FORWARD_BUTTON = 5;
static var MUTE_ON_BUTTON = 6;
static var MUTE_OFF_BUTTON = 7;
static var VOLUME_BAR_HANDLE = 8;
static var NUM_BUTTONS = 9;
static var PLAY_PAUSE_BUTTON = 9;
static var MUTE_BUTTON = 10;
static var BUFFERING_BAR = 11;
static var SEEK_BAR = 12;
static var VOLUME_BAR = 13;
static var NUM_CONTROLS = 14;
static var UP_STATE = 0;
static var OVER_STATE = 1;
static var DOWN_STATE = 2;
static var SKIN_AUTO_HIDE_INTERVAL = 200;
static var VOLUME_BAR_INTERVAL_DEFAULT = 250;
static var VOLUME_BAR_SCRUB_TOLERANCE_DEFAULT = 0;
static var SEEK_BAR_INTERVAL_DEFAULT = 250;
static var SEEK_BAR_SCRUB_TOLERANCE_DEFAULT = 5;
static var BUFFERING_DELAY_INTERVAL_DEFAULT = 1000;
}
Symbol 325 MovieClip [__Packages.mx.utils.Delegate] Frame 0
class mx.utils.Delegate extends Object
{
var func;
function Delegate (f) {
super();
func = f;
}
static function create(obj, func) {
var _local2 = function () {
var _local2 = arguments.callee.target;
var _local3 = arguments.callee.func;
return(_local3.apply(_local2, arguments));
};
_local2.target = obj;
_local2.func = func;
return(_local2);
}
function createDelegate(obj) {
return(create(obj, func));
}
}
Symbol 326 MovieClip [__Packages.mx.video.SMILManager] Frame 0
class mx.video.SMILManager
{
var _owner, _url, xml, baseURLAttr, videoTags, width, height;
function SMILManager (owner) {
_owner = owner;
}
function connectXML(url) {
_url = url;
xml = new XML();
xml.onLoad = mx.utils.Delegate.create(this, xmlOnLoad);
xml.load(url);
return(false);
}
function xmlOnLoad(success) {
try {
if (!success) {
_owner.helperDone(this, false);
} else {
baseURLAttr = new Array();
videoTags = new Array();
var _local4 = xml.firstChild;
if (_local4.nodeName == null) {
throw new mx.video.VideoError(mx.video.VideoError.INVALID_XML, ("URL: \"" + _url) + "\" No root node found; if file is an flv it must have .flv extension");
} else if (_local4.nodeName.toLowerCase() != "smil") {
throw new mx.video.VideoError(mx.video.VideoError.INVALID_XML, (("URL: \"" + _url) + "\" Root node not smil: ") + _local4.nodeName);
}
var _local5 = false;
var _local3 = 0;
while (_local3 < _local4.childNodes.length) {
var _local2 = _local4.childNodes[_local3];
if (_local2.nodeType != ELEMENT_NODE) {
} else if (_local2.nodeName.toLowerCase() == "head") {
parseHead(_local2);
} else if (_local2.nodeName.toLowerCase() == "body") {
_local5 = true;
parseBody(_local2);
} else {
throw new mx.video.VideoError(mx.video.VideoError.INVALID_XML, ((((("URL: \"" + _url) + "\" Tag ") + _local2.nodeName) + " not supported in ") + _local4.nodeName) + " tag.");
}
_local3++;
}
if (!_local5) {
throw new mx.video.VideoError(mx.video.VideoError.INVALID_XML, ("URL: \"" + _url) + "\" Tag body is required.");
}
_owner.helperDone(this, true);
}
} catch(err:Error) {
_owner.helperDone(this, false);
throw err;
}
}
function parseHead(parentNode) {
var _local4 = false;
var _local3 = 0;
while (_local3 < parentNode.childNodes.length) {
var _local2 = parentNode.childNodes[_local3];
if (_local2.nodeType != ELEMENT_NODE) {
} else if (_local2.nodeName.toLowerCase() == "meta") {
for (var _local6 in _local2.attributes) {
if (_local6.toLowerCase() == "base") {
baseURLAttr.push(_local2.attributes[_local6]);
} else {
throw new mx.video.VideoError(mx.video.VideoError.INVALID_XML, ((((("URL: \"" + _url) + "\" Attribute ") + _local6) + " not supported in ") + _local2.nodeName) + " tag.");
}
}
} else if (_local2.nodeName.toLowerCase() == "layout") {
if (!_local4) {
parseLayout(_local2);
_local4 = true;
}
}
_local3++;
}
}
function parseLayout(parentNode) {
var _local3 = 0;
while (_local3 < parentNode.childNodes.length) {
var _local2 = parentNode.childNodes[_local3];
if (_local2.nodeType != ELEMENT_NODE) {
} else if (_local2.nodeName.toLowerCase() == "root-layout") {
for (var _local5 in _local2.attributes) {
if (_local5.toLowerCase() == "width") {
width = Number(_local2.attributes[_local5]);
} else if (_local5.toLowerCase() == "height") {
height = Number(_local2.attributes[_local5]);
}
}
if (((isNaN(width) || (width < 0)) || (isNaN(height))) || (height < 0)) {
throw new mx.video.VideoError(mx.video.VideoError.INVALID_XML, ((("URL: \"" + _url) + "\" Tag ") + _local2.nodeName) + " requires attributes id, width and height. Width and height must be numbers greater than or equal to 0.");
}
width = Math.round(width);
height = Math.round(height);
return(undefined);
}
_local3++;
}
}
function parseBody(parentNode) {
var _local6 = 0;
var _local3 = 0;
while (_local3 < parentNode.childNodes.length) {
var _local2 = parentNode.childNodes[_local3];
if (_local2.nodeType != ELEMENT_NODE) {
} else {
_local6++;
if (_local6 > 1) {
throw new mx.video.VideoError(mx.video.VideoError.INVALID_XML, ((("URL: \"" + _url) + "\" Tag ") + parentNode.nodeName) + " is required to contain exactly one tag.");
}
if (_local2.nodeName.toLowerCase() == "switch") {
parseSwitch(_local2);
} else if ((_local2.nodeName.toLowerCase() == "video") || (_local2.nodeName.toLowerCase() == "ref")) {
var _local5 = parseVideo(_local2);
videoTags.push(_local5);
}
}
_local3++;
}
if (videoTags.length < 1) {
throw new mx.video.VideoError(mx.video.VideoError.INVALID_XML, ("URL: \"" + _url) + "\" At least one video of ref tag is required.");
}
}
function parseSwitch(parentNode) {
var _local4 = 0;
while (_local4 < parentNode.childNodes.length) {
var _local5 = parentNode.childNodes[_local4];
if (_local5.nodeType != ELEMENT_NODE) {
} else if ((_local5.nodeName.toLowerCase() == "video") || (_local5.nodeName.toLowerCase() == "ref")) {
var _local3 = parseVideo(_local5);
if (_local3.bitrate == undefined) {
videoTags.push(_local3);
} else {
var _local6 = false;
var _local2 = 0;
while (_local2 < videoTags.length) {
if ((videoTags[_local2].bitrate == undefined) || (_local3.bitrate < videoTags[_local4].bitrate)) {
_local6 = true;
videoTags.splice(_local2, 0, videoTags);
break;
}
_local2++;
}
if (!_local6) {
videoTags.push(_local3);
}
}
}
_local4++;
}
}
function parseVideo(node) {
var _local3 = new Object();
for (var _local4 in node.attributes) {
if (_local4.toLowerCase() == "src") {
_local3.src = node.attributes[_local4];
} else if (_local4.toLowerCase() == "system-bitrate") {
_local3.bitrate = Number(node.attributes[_local4]);
} else if (_local4.toLowerCase() == "dur") {
_local3.dur = Number(node.attributes[_local4]);
}
}
if (_local3.src == undefined) {
throw new mx.video.VideoError(mx.video.VideoError.INVALID_XML, ((("URL: \"" + _url) + "\" Attribute src is required in ") + node.nodeName) + " tag.");
}
return(_local3);
}
static var version = "1.0.0.103";
static var ELEMENT_NODE = 1;
}
Symbol 327 MovieClip [__Packages.mx.video.NCManager] Frame 0
class mx.video.NCManager implements mx.video.INCManager
{
var _timeoutIntervalId, _tryNCIntervalId, _timeout, _isRTMP, _serverName, _wrappedURL, _portNumber, _appName, _contentPath, _streamName, _streamLength, _streamWidth, _streamHeight, _streams, _autoSenseBW, _payload, _connTypeCounter, _bitrate, _owner, _nc, _protocol, _smilMgr, _ncUri, fallbackServerName, _tryNC;
function NCManager () {
initNCInfo();
initOtherInfo();
_timeoutIntervalId = 0;
_tryNCIntervalId = 0;
_timeout = DEFAULT_TIMEOUT;
}
function initNCInfo() {
_isRTMP = undefined;
_serverName = undefined;
_wrappedURL = undefined;
_portNumber = undefined;
_appName = undefined;
}
function initOtherInfo() {
_contentPath = undefined;
_streamName = undefined;
_streamLength = undefined;
_streamWidth = undefined;
_streamHeight = undefined;
_streams = undefined;
_autoSenseBW = false;
_payload = 0;
_connTypeCounter = 0;
cleanConns();
}
function getTimeout() {
return(_timeout);
}
function setTimeout(t) {
_timeout = t;
if (_timeoutIntervalId != 0) {
clearInterval(_timeoutIntervalId);
_timeoutIntervalId = setInterval(this, "_onFCSConnectTimeOut", _timeout);
}
}
function getBitrate() {
return(_bitrate);
}
function setBitrate(b) {
if ((_isRTMP == undefined) || (!_isRTMP)) {
_bitrate = b;
}
}
function getVideoPlayer() {
return(_owner);
}
function setVideoPlayer(v) {
_owner = v;
}
function getNetConnection() {
return(_nc);
}
function getStreamName() {
return(_streamName);
}
function isRTMP() {
return(_isRTMP);
}
function getStreamLength() {
return(_streamLength);
}
function getStreamWidth() {
return(_streamWidth);
}
function getStreamHeight() {
return(_streamHeight);
}
function connectToURL(url) {
initOtherInfo();
_contentPath = url;
if (((_contentPath == null) || (_contentPath == undefined)) || (_contentPath == "")) {
throw new mx.video.VideoError(mx.video.VideoError.INVALID_CONTENT_PATH);
}
var _local2 = parseURL(_contentPath);
if ((_local2.streamName == undefined) || (_local2.streamName == "")) {
throw new mx.video.VideoError(mx.video.VideoError.INVALID_CONTENT_PATH, url);
}
if (_local2.isRTMP) {
var _local3 = canReuseOldConnection(_local2);
_isRTMP = true;
_protocol = _local2.protocol;
_streamName = _local2.streamName;
_serverName = _local2.serverName;
_wrappedURL = _local2.wrappedURL;
_portNumber = _local2.portNumber;
_appName = _local2.appName;
if ((((_appName == undefined) || (_appName == "")) || (_streamName == undefined)) || (_streamName == "")) {
throw new mx.video.VideoError(mx.video.VideoError.INVALID_CONTENT_PATH, url);
}
_autoSenseBW = _streamName.indexOf(",") != -1;
return(_local3 || (connectRTMP()));
}
if (_local2.streamName.slice(-4).toLowerCase() == ".flv") {
var _local3 = canReuseOldConnection(_local2);
_isRTMP = false;
_streamName = _local2.streamName;
return(_local3 || (connectHTTP()));
}
_smilMgr = new mx.video.SMILManager(this);
return(_smilMgr.connectXML(_local2.streamName));
}
function connectAgain() {
var _local2 = _appName.indexOf("/");
if (_local2 < 0) {
_local2 = _streamName.indexOf("/");
if (_local2 >= 0) {
_appName = _appName + "/";
_appName = _appName + _streamName.slice(0, _local2);
_streamName = _streamName.slice(_local2 + 1);
}
return(false);
}
var _local3 = _appName.slice(_local2 + 1);
_local3 = _local3 + "/";
_local3 = _local3 + _streamName;
_streamName = _local3;
_appName = _appName.slice(0, _local2);
close();
_payload = 0;
_connTypeCounter = 0;
cleanConns();
connectRTMP();
return(true);
}
function reconnect() {
if (!_isRTMP) {
throw new Error("Cannot call reconnect on an http connection");
}
_nc.onStatus = function (info) {
this.mc.reconnectOnStatus(this, info);
};
_nc.onBWDone = function () {
this.mc.onReconnected();
};
_nc.connect(_ncUri, false);
}
function onReconnected() {
delete _nc.onStatus;
delete _nc.onBWDone;
_owner.ncReconnected();
}
function close() {
if (_nc) {
_nc.close();
}
}
function helperDone(helper, success) {
if (helper != _smilMgr) {
return(undefined);
}
if (!success) {
_nc = undefined;
_owner.ncConnected();
delete _smilMgr;
return(undefined);
}
_streamWidth = _smilMgr.width;
_streamHeight = _smilMgr.height;
var _local2;
var _local4 = _smilMgr.baseURLAttr[0];
if ((_local4 != undefined) && (_local4 != "")) {
_local2 = parseURL(_local4);
_isRTMP = _local2.isRTMP;
_streamName = _local2.streamName;
if (_isRTMP) {
_protocol = _local2.protocol;
_serverName = _local2.serverName;
_portNumber = _local2.portNumber;
_wrappedURL = _local2.wrappedURL;
_appName = _local2.appName;
if ((_appName == undefined) || (_appName == "")) {
throw new mx.video.VideoError(mx.video.VideoError.INVALID_XML, "Base RTMP URL must include application name: " + _local4);
}
if (_smilMgr.baseURLAttr.length > 1) {
_local2 = parseURL(_smilMgr.baseURLAttr[1]);
if (_local2.serverName != undefined) {
fallbackServerName = _local2.serverName;
}
}
}
}
_streams = _smilMgr.videoTags;
var _local3 = 0;
while (_local3 < _streams.length) {
_local4 = _streams[_local3].src;
_local2 = parseURL(_local4);
if (_isRTMP == undefined) {
_isRTMP = _local2.isRTMP;
if (_isRTMP) {
_protocol = _local2.protocol;
if (_streams.length > 1) {
throw new mx.video.VideoError(mx.video.VideoError.INVALID_XML, "Cannot switch between multiple absolute RTMP URLs, must use meta tag base attribute.");
}
_serverName = _local2.serverName;
_portNumber = _local2.portNumber;
_wrappedURL = _local2.wrappedURL;
_appName = _local2.appName;
if ((_appName == undefined) || (_appName == "")) {
throw new mx.video.VideoError(mx.video.VideoError.INVALID_XML, "Base RTMP URL must include application name: " + _local4);
}
}
} else if ((((_streamName != undefined) && (_streamName != "")) && (!_local2.isRelative)) && (_streams.length > 1)) {
throw new mx.video.VideoError(mx.video.VideoError.INVALID_XML, "When using meta tag base attribute, cannot use absolute URLs for video or ref tag src attributes.");
}
_streams[_local3].parseResults = _local2;
_local3++;
}
_autoSenseBW = _streams.length > 1;
if (!_autoSenseBW) {
if (_streamName != undefined) {
_streamName = _streamName + _streams[0].parseResults.streamName;
} else {
_streamName = _streams[0].parseResults.streamName;
}
_streamLength = _streams[0].dur;
}
if (_isRTMP) {
connectRTMP();
} else {
if (_autoSenseBW) {
bitrateMatch();
}
connectHTTP();
_owner.ncConnected();
}
}
function bitrateMatch() {
var _local3;
if (isNaN(_bitrate)) {
_local3 = 0;
} else {
var _local2 = 0;
while (_local2 < _streams.length) {
if (isNaN(_streams[_local2].bitrate) || (_bitrate <= _streams[_local2].bitrate)) {
_local3 = _local2;
break;
}
_local2++;
}
}
if (isNaN(_local3)) {
throw new mx.video.VideoError(mx.video.VideoError.NO_BITRATE_MATCH);
}
if (_streamName != undefined) {
_streamName = _streamName + _streams[_local3].src;
} else {
_streamName = _streams[_local3].src;
}
_streamLength = _streams[_local3].dur;
}
function parseURL(url) {
var _local2 = new Object();
var _local3 = 0;
var _local4 = url.indexOf(":/", _local3);
if (_local4 >= 0) {
_local4 = _local4 + 2;
_local2.protocol = url.slice(_local3, _local4);
_local2.isRelative = false;
} else {
_local2.isRelative = true;
}
if ((_local2.protocol != undefined) && (((_local2.protocol == "rtmp:/") || (_local2.protocol == "rtmpt:/")) || (_local2.protocol == "rtmps:/"))) {
_local2.isRTMP = true;
_local3 = _local4;
if (url.charAt(_local3) == "/") {
_local3++;
var _local7 = url.indexOf(":", _local3);
var _local8 = url.indexOf("/", _local3);
if (_local8 < 0) {
if (_local7 < 0) {
_local2.serverName = url.slice(_local3);
} else {
_local4 = _local7;
_local2.portNumber = url.slice(_local3, _local4);
_local3 = _local4 + 1;
_local2.serverName = url.slice(_local3);
}
return(_local2);
}
if ((_local7 >= 0) && (_local7 < _local8)) {
_local4 = _local7;
_local2.serverName = url.slice(_local3, _local4);
_local3 = _local4 + 1;
_local4 = _local8;
_local2.portNumber = url.slice(_local3, _local4);
} else {
_local4 = _local8;
_local2.serverName = url.slice(_local3, _local4);
}
_local3 = _local4 + 1;
}
if (url.charAt(_local3) == "?") {
var _local9 = url.slice(_local3 + 1);
var _local6 = parseURL(_local9);
if ((_local6.protocol == undefined) || (!_local6.isRTMP)) {
throw new mx.video.VideoError(mx.video.VideoError.INVALID_CONTENT_PATH, url);
}
_local2.wrappedURL = "?";
_local2.wrappedURL = _local2.wrappedURL + _local6.protocol;
if (_local6.server != undefined) {
_local2.wrappedURL = _local2.wrappedURL + "/";
_local2.wrappedURL = _local2.wrappedURL + _local6.server;
}
if (_local6.wrappedURL != undefined) {
_local2.wrappedURL = _local2.wrappedURL + "/?";
_local2.wrappedURL = _local2.wrappedURL + _local6.wrappedURL;
}
_local2.appName = _local6.appName;
_local2.streamName = _local6.streamName;
return(_local2);
}
_local4 = url.indexOf("/", _local3);
if (_local4 < 0) {
_local2.appName = url.slice(_local3);
return(_local2);
}
_local2.appName = url.slice(_local3, _local4);
_local3 = _local4 + 1;
_local4 = url.indexOf("/", _local3);
if (_local4 < 0) {
_local2.streamName = url.slice(_local3);
return(_local2);
}
_local2.appName = _local2.appName + "/";
_local2.appName = _local2.appName + url.slice(_local3, _local4);
_local3 = _local4 + 1;
_local2.streamName = url.slice(_local3);
} else {
_local2.isRTMP = false;
_local2.streamName = url;
}
return(_local2);
}
function canReuseOldConnection(parseResults) {
if ((_nc == undefined) || (_nc == null)) {
return(false);
}
if (!parseResults.isRTMP) {
if (!_isRTMP) {
return(true);
}
_owner.close();
_nc = null;
initNCInfo();
return(false);
}
if (_isRTMP) {
if (((((parseResults.serverName == _serverName) && (parseResults.appName == _appName)) && (parseResults.protocol == _protocol)) && (parseResults.portNumber == _portNumber)) && (parseResults.wrappedURL == _wrappedURL)) {
return(true);
}
_owner.close();
_nc = null;
}
initNCInfo();
return(false);
}
function connectHTTP() {
_nc = new NetConnection();
_nc.connect(null);
return(true);
}
function connectRTMP() {
clearInterval(_timeoutIntervalId);
_timeoutIntervalId = setInterval(this, "_onFCSConnectTimeOut", _timeout);
_tryNC = new Array();
var _local2 = 0;
while (_local2 < RTMP_CONN.length) {
_tryNC[_local2] = new NetConnection();
_tryNC[_local2].mc = this;
_tryNC[_local2].pending = false;
_tryNC[_local2].connIndex = _local2;
_tryNC[_local2].onBWDone = function (p_bw) {
this.mc.onConnected(this, p_bw);
};
_tryNC[_local2].onBWCheck = function () {
return(++this.mc._payload);
};
_tryNC[_local2].onStatus = function (info) {
this.mc.connectOnStatus(this, info);
};
_local2++;
}
nextConnect();
return(false);
}
function nextConnect() {
clearInterval(_tryNCIntervalId);
_tryNCIntervalId = 0;
var _local4;
var _local3;
if (_connTypeCounter == 0) {
_local4 = _protocol;
if (_portNumber != undefined) {
_local3 = _portNumber;
} else {
var _local2 = 0;
while (_local2 < RTMP_CONN.length) {
if (_local4 == RTMP_CONN[_local2].protocol) {
_local3 = RTMP_CONN[_local2].port;
break;
}
_local2++;
}
}
} else {
_local4 = RTMP_CONN[_connTypeCounter].protocol;
_local3 = RTMP_CONN[_connTypeCounter].port;
}
var _local5 = ((_local4 + ((_serverName == undefined) ? "" : (((("/" + _serverName) + ":") + _local3) + "/"))) + ((_wrappedURL == undefined) ? "" : (_wrappedURL + "/"))) + _appName;
_tryNC[_connTypeCounter].pending = true;
_tryNC[_connTypeCounter].connect(_local5, _autoSenseBW);
if (_connTypeCounter < (RTMP_CONN.length - 1)) {
_connTypeCounter++;
_tryNCIntervalId = setInterval(this, "nextConnect", 1500);
}
}
function cleanConns() {
clearInterval(_tryNCIntervalId);
_tryNCIntervalId = 0;
if (_tryNC != undefined) {
var _local2 = 0;
while (_local2 < _tryNC.length) {
if (_tryNC[_local2] != undefined) {
delete _tryNC[_local2].onStatus;
if (_tryNC[_local2].pending) {
_tryNC[_local2].onStatus = function (info) {
this.mc.disconnectOnStatus(this, info);
};
} else {
delete _tryNC[_local2].onStatus;
_tryNC[_local2].close();
}
}
delete _tryNC[_local2];
_local2++;
}
delete _tryNC;
}
}
function tryFallBack() {
if (((_serverName == fallbackServerName) || (fallbackServerName == undefined)) || (fallbackServerName == null)) {
delete _nc;
_nc = undefined;
_owner.ncConnected();
} else {
_connTypeCounter = 0;
cleanConns();
_serverName = fallbackServerName;
connectRTMP();
}
}
function onConnected(p_nc, p_bw) {
clearInterval(_timeoutIntervalId);
_timeoutIntervalId = 0;
delete p_nc.onBWDone;
delete p_nc.onBWCheck;
delete p_nc.onStatus;
_nc = p_nc;
_ncUri = _nc.uri;
if (_autoSenseBW) {
_bitrate = p_bw * 1024;
if (_streams != undefined) {
bitrateMatch();
} else if (_streamName.indexOf(",") != -1) {
var _local3 = _streamName.split(",");
var _local2 = 0;
while (_local2 < _local3.length) {
var _local4 = stripFrontAndBackWhiteSpace(_local3[_local2]);
if ((_local2 + 1) < _local3.length) {
if (p_bw <= Number(_local3[_local2 + 1])) {
_streamName = _local4;
break;
}
} else {
_streamName = _local4;
break;
}
_local2 = _local2 + 2;
}
}
}
if (_streamName.slice(-4).toLowerCase() == ".flv") {
_streamName = _streamName.slice(0, -4);
}
if ((!_owner.__get__isLive()) && (_streamLength == undefined)) {
var _local6 = new Object();
_local6.mc = this;
_local6.onResult = function (length) {
this.mc.getStreamLengthResult(length);
};
_nc.call("getStreamLength", _local6, _streamName);
} else {
_owner.ncConnected();
}
}
function connectOnStatus(target, info) {
target.pending = false;
if (info.code == "NetConnection.Connect.Success") {
_nc = _tryNC[target.connIndex];
_tryNC[target.connIndex] = undefined;
cleanConns();
} else if (((info.code == "NetConnection.Connect.Failed") || (info.code == "NetConnection.Connect.Rejected")) && (target.connIndex == (RTMP_CONN.length - 1))) {
if (!connectAgain()) {
tryFallBack();
}
}
}
function reconnectOnStatus(target, info) {
if ((info.code == "NetConnection.Connect.Failed") || (info.code == "NetConnection.Connect.Rejected")) {
delete _nc;
_nc = undefined;
_owner.ncReconnected();
}
}
function disconnectOnStatus(target, info) {
if (info.code == "NetConnection.Connect.Success") {
delete target.onStatus;
target.close();
}
}
function getStreamLengthResult(length) {
_streamLength = length;
_owner.ncConnected();
}
function _onFCSConnectTimeOut() {
cleanConns();
_nc = undefined;
if (!connectAgain()) {
_owner.ncConnected();
}
}
static function stripFrontAndBackWhiteSpace(p_str) {
var _local1;
var _local2 = p_str.length;
var _local4 = 0;
var _local5 = _local2;
_local1 = 0;
while (_local1 < _local2) {
switch (p_str.charCodeAt(_local1)) {
case 9 :
case 10 :
case 13 :
case 32 :
break;
default :
_local4 = _local1;
break;!//outer level
}
_local1++;
}
_local1 = _local2;
while (_local1 >= 0) {
switch (p_str.charCodeAt(_local1)) {
case 9 :
case 10 :
case 13 :
case 32 :
break;
default :
_local5 = _local1 + 1;
break;!//outer level
}
_local1--;
}
if (_local5 <= _local4) {
return("");
}
return(p_str.slice(_local4, _local5));
}
static var version = "1.0.0.103";
var DEFAULT_TIMEOUT = 60000;
static var RTMP_CONN = [{protocol:"rtmp:/", port:"1935"}, {protocol:"rtmp:/", port:"443"}, {protocol:"rtmpt:/", port:"80"}, {protocol:"rtmps:/", port:"443"}];
}
Symbol 328 MovieClip [__Packages.mx.video.CuePointManager] Frame 0
class mx.video.CuePointManager
{
var _owner, _id, _asCuePointTolerance, _linearSearchTolerance, _metadataLoaded, allCuePoints, asCuePoints, _disabledCuePoints, flvCuePoints, navCuePoints, eventCuePoints, _asCuePointIndex, __get__playheadUpdateInterval, _disabledCuePointsByNameOnly;
function CuePointManager (owner, id) {
_owner = owner;
_id = id;
reset();
_asCuePointTolerance = _owner.getVideoPlayer(_id).__get__playheadUpdateInterval() / 2000;
_linearSearchTolerance = DEFAULT_LINEAR_SEARCH_TOLERANCE;
}
function reset() {
_metadataLoaded = false;
allCuePoints = null;
asCuePoints = null;
_disabledCuePoints = null;
flvCuePoints = null;
navCuePoints = null;
eventCuePoints = null;
_asCuePointIndex = 0;
}
function get metadataLoaded() {
return(_metadataLoaded);
}
function set playheadUpdateInterval(aTime) {
_asCuePointTolerance = aTime / 2000;
//return(__get__playheadUpdateInterval());
}
function get id() {
return(_id);
}
function addASCuePoint(timeOrCuePoint, name, parameters) {
var _local3;
if (typeof(timeOrCuePoint) == "object") {
_local3 = deepCopyObject(timeOrCuePoint);
} else {
_local3 = {time:timeOrCuePoint, name:name, parameters:deepCopyObject(parameters)};
}
var _local7 = isNaN(_local3.time) || (_local3.time < 0);
if (_local7) {
throw new mx.video.VideoError(mx.video.VideoError.ILLEGAL_CUE_POINT, "time must be number");
}
var _local6 = (_local3.name == undefined) || (_local3.name == null);
if (_local6) {
throw new mx.video.VideoError(mx.video.VideoError.ILLEGAL_CUE_POINT, "name cannot be undefined or null");
}
var _local2;
_local3.type = "actionscript";
if (((asCuePoints == null) || (asCuePoints == undefined)) || (asCuePoints.length < 1)) {
_local2 = 0;
asCuePoints = new Array();
asCuePoints.push(_local3);
} else {
_local2 = getCuePointIndex(asCuePoints, true, _local3.time);
_local2 = ((asCuePoints[_local2].time > _local3.time) ? 0 : (_local2 + 1));
asCuePoints.splice(_local2, 0, _local3);
}
if (((allCuePoints == null) || (allCuePoints == undefined)) || (allCuePoints.length < 1)) {
_local2 = 0;
allCuePoints = new Array();
allCuePoints.push(_local3);
} else {
_local2 = getCuePointIndex(allCuePoints, true, _local3.time);
_local2 = ((allCuePoints[_local2].time > _local3.time) ? 0 : (_local2 + 1));
allCuePoints.splice(_local2, 0, _local3);
}
var _local5 = _owner.getVideoPlayer(_id).__get__playheadTime();
if (_local5 > 0) {
if (_asCuePointIndex == _local2) {
if (_local5 > asCuePoints[_local2].time) {
_asCuePointIndex++;
}
} else if (_asCuePointIndex > _local2) {
_asCuePointIndex++;
}
} else {
_asCuePointIndex = 0;
}
var _local4 = deepCopyObject(asCuePoints[_local2]);
_local4.array = asCuePoints;
_local4.index = _local2;
return(_local4);
}
function removeASCuePoint(timeNameOrCuePoint) {
if (((asCuePoints == null) || (asCuePoints == undefined)) || (asCuePoints.length < 1)) {
return(null);
}
var _local3;
switch (typeof(timeNameOrCuePoint)) {
case "string" :
_local3 = {name:timeNameOrCuePoint};
break;
case "number" :
_local3 = {time:timeNameOrCuePoint};
break;
case "object" :
_local3 = timeNameOrCuePoint;
}
var _local2 = getCuePointIndex(asCuePoints, false, _local3.time, _local3.name);
if (_local2 < 0) {
return(null);
}
_local3 = asCuePoints[_local2];
asCuePoints.splice(_local2, 1);
_local2 = getCuePointIndex(allCuePoints, false, _local3.time, _local3.name);
if (_local2 > 0) {
allCuePoints.splice(_local2, 1);
}
if (_owner.getVideoPlayer(_id).__get__playheadTime() > 0) {
if (_asCuePointIndex > _local2) {
_asCuePointIndex--;
}
} else {
_asCuePointIndex = 0;
}
return(_local3);
}
function setFLVCuePointEnabled(enabled, timeNameOrCuePoint) {
var _local4;
switch (typeof(timeNameOrCuePoint)) {
case "string" :
_local4 = {name:timeNameOrCuePoint};
break;
case "number" :
_local4 = {time:timeNameOrCuePoint};
break;
case "object" :
_local4 = timeNameOrCuePoint;
}
var _local12 = isNaN(_local4.time) || (_local4.time < 0);
var _local11 = (_local4.name == undefined) || (_local4.name == null);
if (_local12 && (_local11)) {
throw new mx.video.VideoError(mx.video.VideoError.ILLEGAL_CUE_POINT, "time must be number and/or name must not be undefined or null");
}
var _local6 = 0;
var _local2;
var _local5;
if (_local12) {
if (!_metadataLoaded) {
if (_disabledCuePointsByNameOnly[_local4.name] == undefined) {
if (!enabled) {
if (((_disabledCuePointsByNameOnly == null) || (_disabledCuePointsByNameOnly == undefined)) || (_disabledCuePointsByNameOnly.length < 0)) {
_disabledCuePointsByNameOnly = new Object();
}
_disabledCuePointsByNameOnly[_local4.name] = new Array();
}
} else {
if (enabled) {
_disabledCuePointsByNameOnly[_local4.name] = undefined;
}
return(-1);
}
removeCuePoints(_disabledCuePoints, _local4);
return(-1);
}
if (enabled) {
_local6 = removeCuePoints(_disabledCuePoints, _local4);
} else {
var _local3;
_local2 = getCuePointIndex(flvCuePoints, true, -1, _local4.name);
while (_local2 >= 0) {
_local3 = flvCuePoints[_local2];
_local5 = getCuePointIndex(_disabledCuePoints, true, _local3.time);
if ((_local5 < 0) || (_disabledCuePoints[_local5].time != _local3.time)) {
_disabledCuePoints = insertCuePoint(_local5, _disabledCuePoints, {name:_local3.name, time:_local3.time});
_local6 = _local6 + 1;
}
_local2 = getNextCuePointIndexWithName(_local3.name, flvCuePoints, _local2);
}
}
return(_local6);
}
_local2 = getCuePointIndex(_disabledCuePoints, false, _local4.time, _local4.name);
if (_local2 < 0) {
if (enabled) {
if (!_metadataLoaded) {
_local2 = getCuePointIndex(_disabledCuePoints, false, _local4.time);
if (_local2 < 0) {
_local5 = getCuePointIndex(_disabledCuePointsByNameOnly[_local4.name], true, _local4.time);
if (cuePointCompare(_local4.time, null, _disabledCuePointsByNameOnly[_local4.name]) != 0) {
_disabledCuePointsByNameOnly[_local4.name] = insertCuePoint(_local5, _disabledCuePointsByNameOnly[_local4.name], _local4);
}
} else {
_disabledCuePoints.splice(_local2, 1);
}
}
return((_metadataLoaded ? 0 : -1));
}
} else {
if (enabled) {
_disabledCuePoints.splice(_local2, 1);
_local6 = 1;
} else {
_local6 = 0;
}
return((_metadataLoaded ? (_local6) : -1));
}
if (_metadataLoaded) {
_local2 = getCuePointIndex(flvCuePoints, false, _local4.time, _local4.name);
if (_local2 < 0) {
return(0);
}
if (_local11) {
_local4.name = flvCuePoints[_local2].name;
}
}
_local5 = getCuePointIndex(_disabledCuePoints, true, _local4.time);
_disabledCuePoints = insertCuePoint(_local5, _disabledCuePoints, _local4);
_local6 = 1;
return((_metadataLoaded ? 1 : -1));
}
function removeCuePoints(cuePointArray, cuePoint) {
var _local2;
var _local4;
var _local5 = 0;
_local2 = getCuePointIndex(cuePointArray, true, -1, cuePoint.name);
while (_local2 >= 0) {
_local4 = cuePointArray[_local2];
cuePointArray.splice(_local2, 1);
_local2--;
_local5++;
_local2 = getNextCuePointIndexWithName(_local4.name, cuePointArray, _local2);
}
return(_local5);
}
function insertCuePoint(insertIndex, cuePointArray, cuePoint) {
if (insertIndex < 0) {
cuePointArray = new Array();
cuePointArray.push(cuePoint);
} else {
if (cuePointArray[insertIndex].time > cuePoint.time) {
insertIndex = 0;
} else {
insertIndex++;
}
cuePointArray.splice(insertIndex, 0, cuePoint);
}
return(cuePointArray);
}
function isFLVCuePointEnabled(timeNameOrCuePoint) {
if (!_metadataLoaded) {
return(true);
}
var _local3;
switch (typeof(timeNameOrCuePoint)) {
case "string" :
_local3 = {name:timeNameOrCuePoint};
break;
case "number" :
_local3 = {time:timeNameOrCuePoint};
break;
case "object" :
_local3 = timeNameOrCuePoint;
}
var _local5 = isNaN(_local3.time) || (_local3.time < 0);
var _local6 = (_local3.name == undefined) || (_local3.name == null);
if (_local5 && (_local6)) {
throw new mx.video.VideoError(mx.video.VideoError.ILLEGAL_CUE_POINT, "time must be number and/or name must not be undefined or null");
}
if (_local5) {
var _local2 = getCuePointIndex(flvCuePoints, true, -1, _local3.name);
if (_local2 < 0) {
return(true);
}
while (_local2 >= 0) {
if (getCuePointIndex(_disabledCuePoints, false, flvCuePoints[_local2].time, flvCuePoints[_local2].name) < 0) {
return(true);
}
_local2 = getNextCuePointIndexWithName(_local3.name, flvCuePoints, _local2);
}
return(false);
}
return(getCuePointIndex(_disabledCuePoints, false, _local3.time, _local3.name) < 0);
}
function dispatchASCuePoints() {
var _local5 = _owner.getVideoPlayer(_id).__get__playheadTime();
if ((_owner.getVideoPlayer(_id).__get__stateResponsive() && (asCuePoints != null)) && (asCuePoints != undefined)) {
while ((_asCuePointIndex < asCuePoints.length) && (asCuePoints[_asCuePointIndex].time <= (_local5 + _asCuePointTolerance))) {
_owner.dispatchEvent({type:"cuePoint", info:deepCopyObject(asCuePoints[_asCuePointIndex++]), vp:_id});
}
}
}
function resetASCuePointIndex(time) {
if (((time <= 0) || (asCuePoints == null)) || (asCuePoints == undefined)) {
_asCuePointIndex = 0;
return(undefined);
}
var _local2 = getCuePointIndex(asCuePoints, true, time);
_asCuePointIndex = ((asCuePoints[_local2].time < time) ? (_local2 + 1) : (_local2));
}
function processFLVCuePoints(metadataCuePoints) {
_metadataLoaded = true;
if (((metadataCuePoints == undefined) || (metadataCuePoints == null)) || (metadataCuePoints.length < 1)) {
flvCuePoints = null;
navCuePoints = null;
eventCuePoints = null;
return(undefined);
}
flvCuePoints = metadataCuePoints;
navCuePoints = new Array();
eventCuePoints = new Array();
var _local5;
var _local6 = -1;
var _local2;
var _local4 = _disabledCuePoints;
var _local3 = 0;
_disabledCuePoints = new Array();
var _local9 = 0;
while (_local2 = flvCuePoints[_local9++] , _local2 != undefined) {
if ((_local6 > 0) && (_local6 >= _local2.time)) {
flvCuePoints = null;
navCuePoints = null;
eventCuePoints = null;
_disabledCuePoints = null;
_disabledCuePointsByNameOnly = null;
throw new mx.video.VideoError(mx.video.VideoError.ILLEGAL_CUE_POINT, "Unsorted cuePoint found after time: " + _local6);
}
_local6 = _local2.time;
while ((_local3 < _local4.length) && (cuePointCompare(_local4[_local3].time, null, _local2) < 0)) {
_local3++;
}
if ((_disabledCuePointsByNameOnly[_local2.name] != undefined) || ((_local3 < _local4.length) && (cuePointCompare(_local4[_local3].time, _local4[_local3].name, _local2) == 0))) {
_disabledCuePoints.push({time:_local2.time, name:_local2.name});
}
if (_local2.type == "navigation") {
navCuePoints.push(_local2);
} else if (_local2.type == "event") {
eventCuePoints.push(_local2);
}
if (((allCuePoints == null) || (allCuePoints == undefined)) || (allCuePoints.length < 1)) {
allCuePoints = new Array();
allCuePoints.push(_local2);
} else {
_local5 = getCuePointIndex(allCuePoints, true, _local2.time);
_local5 = ((allCuePoints[_local5].time > _local2.time) ? 0 : (_local5 + 1));
allCuePoints.splice(_local5, 0, _local2);
}
}
delete _disabledCuePointsByNameOnly;
_disabledCuePointsByNameOnly = null;
delete _disabledCuePointsByNameOnly;
_disabledCuePointsByNameOnly = null;
}
function processCuePointsProperty(cuePoints) {
if (((cuePoints == undefined) || (cuePoints == null)) || (cuePoints.length == 0)) {
return(undefined);
}
var _local4 = 0;
var _local8;
var _local6;
var _local7;
var _local5;
var _local9;
var _local2 = 0;
while (_local2 < (cuePoints.length - 1)) {
switch (_local4) {
case 6 :
addOrDisable(_local9, _local5);
_local4 = 0;
case 0 :
if (cuePoints[_local2++] != "t") {
throw new mx.video.VideoError(mx.video.VideoError.ILLEGAL_CUE_POINT, "unexpected cuePoint parameter format");
}
if (isNaN(cuePoints[_local2])) {
throw new mx.video.VideoError(mx.video.VideoError.ILLEGAL_CUE_POINT, "time must be number");
}
_local5 = new Object();
_local5.time = cuePoints[_local2] / 1000;
_local4++;
break;
case 1 :
if (cuePoints[_local2++] != "n") {
throw new mx.video.VideoError(mx.video.VideoError.ILLEGAL_CUE_POINT, "unexpected cuePoint parameter format");
}
if ((cuePoints[_local2] == undefined) || (cuePoints[_local2] == null)) {
throw new mx.video.VideoError(mx.video.VideoError.ILLEGAL_CUE_POINT, "name cannot be null or undefined");
}
_local5.name = unescape(cuePoints[_local2]);
_local4++;
break;
case 2 :
if (cuePoints[_local2++] != "t") {
throw new mx.video.VideoError(mx.video.VideoError.ILLEGAL_CUE_POINT, "unexpected cuePoint parameter format");
}
if (isNaN(cuePoints[_local2])) {
throw new mx.video.VideoError(mx.video.VideoError.ILLEGAL_CUE_POINT, "type must be number");
}
switch (cuePoints[_local2]) {
case 0 :
_local5.type = "event";
break;
case 1 :
_local5.type = "navigation";
break;
case 2 :
_local5.type = "actionscript";
break;
default :
throw new mx.video.VideoError(mx.video.VideoError.ILLEGAL_CUE_POINT, "type must be 0, 1 or 2");
}
_local4++;
break;
case 3 :
if (cuePoints[_local2++] != "d") {
throw new mx.video.VideoError(mx.video.VideoError.ILLEGAL_CUE_POINT, "unexpected cuePoint parameter format");
}
if (isNaN(cuePoints[_local2])) {
throw new mx.video.VideoError(mx.video.VideoError.ILLEGAL_CUE_POINT, "disabled must be number");
}
_local9 = cuePoints[_local2] != 0;
_local4++;
break;
case 4 :
if (cuePoints[_local2++] != "p") {
throw new mx.video.VideoError(mx.video.VideoError.ILLEGAL_CUE_POINT, "unexpected cuePoint parameter format");
}
if (isNaN(cuePoints[_local2])) {
throw new mx.video.VideoError(mx.video.VideoError.ILLEGAL_CUE_POINT, "num params must be number");
}
_local8 = cuePoints[_local2];
_local4++;
if (_local8 == 0) {
_local4++;
} else {
_local5.parameters = new Object();
}
break;
case 5 :
_local6 = cuePoints[_local2++];
_local7 = cuePoints[_local2];
if (typeof(_local6) == "string") {
_local6 = unescape(_local6);
}
if (typeof(_local7) == "string") {
_local7 = unescape(_local7);
}
_local5.parameters[_local6] = _local7;
_local8--;
if (_local8 != 0) {
break;
}
_local4++;
}
_local2++;
}
if (_local4 == 6) {
addOrDisable(_local9, _local5);
} else {
throw new mx.video.VideoError(mx.video.VideoError.ILLEGAL_CUE_POINT, "unexpected end of cuePoint param string");
}
}
function addOrDisable(disable, cuePoint) {
if (disable) {
if (cuePoint.type == "actionscript") {
throw new mx.video.VideoError(mx.video.VideoError.ILLEGAL_CUE_POINT, "Cannot disable actionscript cue points");
}
setFLVCuePointEnabled(false, cuePoint);
} else if (cuePoint.type == "actionscript") {
addASCuePoint(cuePoint);
}
}
function unescape(origStr) {
var _local3 = origStr;
var _local1 = 0;
while (_local1 < cuePointsReplace.length) {
var _local2 = _local3.split(cuePointsReplace[_local1++]);
if (_local2.length > 1) {
_local3 = _local2.join(cuePointsReplace[_local1]);
}
_local1++;
}
return(_local3);
}
function getCuePointIndex(cuePointArray, closeIsOK, time, name, start, len) {
if (((cuePointArray == null) || (cuePointArray == undefined)) || (cuePointArray.length < 1)) {
return(-1);
}
var _local13 = isNaN(time) || (time < 0);
var _local16 = (name == undefined) || (name == null);
if (_local13 && (_local16)) {
throw new mx.video.VideoError(mx.video.VideoError.ILLEGAL_CUE_POINT, "time must be number and/or name must not be undefined or null");
}
if ((start == undefined) || (start == null)) {
start = 0;
}
if ((len == undefined) || (len == null)) {
len = cuePointArray.length;
}
if ((!_local16) && (closeIsOK || (_local13))) {
var _local8;
var _local2;
if (_local13) {
_local8 = start;
} else {
_local8 = getCuePointIndex(cuePointArray, closeIsOK, time);
}
_local2 = _local8;
while (_local2 >= start) {
if (cuePointArray[_local2].name == name) {
break;
}
_local2--;
}
if (_local2 >= start) {
return(_local2);
}
_local2 = _local8 + 1;
while (_local2 < len) {
if (cuePointArray[_local2].name == name) {
break;
}
_local2++;
}
if (_local2 < len) {
return(_local2);
}
return(-1);
}
var _local6;
if (len <= _linearSearchTolerance) {
var _local11 = start + len;
var _local3 = start;
while (_local3 < _local11) {
_local6 = cuePointCompare(time, name, cuePointArray[_local3]);
if (_local6 == 0) {
return(_local3);
}
if (_local6 < 0) {
break;
}
_local3++;
}
if (closeIsOK) {
if (_local3 > 0) {
return(_local3 - 1);
}
return(0);
}
return(-1);
}
var _local12 = Math.floor(len / 2);
var _local15 = start + _local12;
_local6 = cuePointCompare(time, name, cuePointArray[_local15]);
if (_local6 < 0) {
return(getCuePointIndex(cuePointArray, closeIsOK, time, name, start, _local12));
}
if (_local6 > 0) {
return(getCuePointIndex(cuePointArray, closeIsOK, time, name, _local15 + 1, (_local12 - 1) + (len % 2)));
}
return(_local15);
}
function getNextCuePointIndexWithName(name, array, index) {
if ((name == undefined) || (name == null)) {
throw new mx.video.VideoError(mx.video.VideoError.ILLEGAL_CUE_POINT, "name cannot be undefined or null");
}
if ((array == null) || (array == undefined)) {
throw new mx.video.VideoError(mx.video.VideoError.ILLEGAL_CUE_POINT, "cuePoint.array undefined");
}
if ((isNaN(index) || (index < -1)) || (index >= array.length)) {
throw new mx.video.VideoError(mx.video.VideoError.ILLEGAL_CUE_POINT, "cuePoint.index must be number between -1 and cuePoint.array.length");
}
var _local1;
_local1 = index + 1;
while (_local1 < array.length) {
if (array[_local1].name == name) {
break;
}
_local1++;
}
if (_local1 < array.length) {
return(_local1);
}
return(-1);
}
static function cuePointCompare(time, name, cuePoint) {
var _local2 = Math.round(time * 1000);
var _local3 = Math.round(cuePoint.time * 1000);
if (_local2 < _local3) {
return(-1);
}
if (_local2 > _local3) {
return(1);
}
if ((name != null) || (name != undefined)) {
if (name == cuePoint.name) {
return(0);
}
if (name < cuePoint.name) {
return(-1);
}
return(1);
}
return(0);
}
function getCuePoint(cuePointArray, closeIsOK, timeNameOrCuePoint) {
var _local3;
switch (typeof(timeNameOrCuePoint)) {
case "string" :
_local3 = {name:timeNameOrCuePoint};
break;
case "number" :
_local3 = {time:timeNameOrCuePoint};
break;
case "object" :
_local3 = timeNameOrCuePoint;
}
var _local2 = getCuePointIndex(cuePointArray, closeIsOK, _local3.time, _local3.name);
if (_local2 < 0) {
return(null);
}
_local3 = deepCopyObject(cuePointArray[_local2]);
_local3.array = cuePointArray;
_local3.index = _local2;
return(_local3);
}
function getNextCuePointWithName(cuePoint) {
if ((cuePoint == null) || (cuePoint == undefined)) {
throw new mx.video.VideoError(mx.video.VideoError.ILLEGAL_CUE_POINT, "cuePoint parameter undefined");
}
if (isNaN(cuePoint.time) || (cuePoint.time < 0)) {
throw new mx.video.VideoError(mx.video.VideoError.ILLEGAL_CUE_POINT, "time must be number");
}
var _local3 = getNextCuePointIndexWithName(cuePoint.name, cuePoint.array, cuePoint.index);
if (_local3 < 0) {
return(null);
}
var _local4 = deepCopyObject(cuePoint.array[_local3]);
_local4.array = cuePoint.array;
_local4.index = _local3;
return(_local4);
}
static function deepCopyObject(obj, recurseLevel) {
if (((obj == undefined) || (obj == null)) || (typeof(obj) != "object")) {
return(obj);
}
if (recurseLevel == undefined) {
recurseLevel = 0;
}
var _local2 = new Object();
for (var _local4 in obj) {
if ((recurseLevel == 0) && ((_local4 == "array") || (_local4 == "index"))) {
} else if (typeof(obj[_local4]) == "object") {
_local2[_local4] = deepCopyObject(obj[_local4], recurseLevel + 1);
} else {
_local2[_local4] = obj[_local4];
}
}
return(_local2);
}
static var DEFAULT_LINEAR_SEARCH_TOLERANCE = 50;
static var cuePointsReplace = [""", "\"", "'", "'", ",", ",", "&", "&"];
}
Symbol 1491 MovieClip [GameEngine] Frame 1
#initclip 34
Object.registerClass("GameEngine", GameBoard);
#endinitclip