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

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

theospuzzles.swf

This is the info page for
Flash #254593

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


Text
Theo’s Puzzles

Dd

Gg

Jj

Uu

Hh

Zz

Qq

Pp

Cc

Bb

P

l

a

y

!

P

l

a

y

!

a

b

b

c

c

d

d

e

f

f

g

g

h

h

i

j

j

k

k

l

l

m

m

n

n

o

p

p

q

q

r

r

s

s

t

t

u

v

v

w

w

x

x

y

y

z

z

Aa

Ee

Ff

Ii

Kk

Ll

Nn

Oo

O

Rr

S

s

Ss

Tt

Vv

v

Ww

Xx

Yy

ActionScript [AS3]

Section 1
//Main (code.Main) package code { import fl.video.*; import flash.net.*; import flash.events.*; import flash.display.*; import flash.media.*; import fl.transitions.*; import flash.utils.*; import fl.transitions.easing.*; public class Main extends MovieClip { private var loader:URLLoader; private var path:String;// = "/pbskids2008/lions/games/dswmedia/theospuzzles/" private var letter:Sound; private var almost:Sound; private var putdown:Sound; private var ran:Number; private var clickDown:Boolean;// = false public var sc:SoundChannel; private var correct:int;// = 1 private var tween:Tween; public var l:Sound; private var video:Sound; public var s:Sound; private var audioArr:Array; private var great:Sound; private var selectedPuzzle:String; public var h1:MovieClip; public var h2:MovieClip; public var h3:MovieClip; public var h4:MovieClip; public var h5:MovieClip; public var h6:MovieClip; public var h7:MovieClip; public var h8:MovieClip; public var h9:MovieClip; private var isDown:Boolean;// = false private var instr:Sound; public var guy_mc:MovieClip; private var selectedY:Number; private var linkpath:String;// = "/pbskids2008/lions/games/dswmedia/theospuzzles/audio/" private var selectedX:Number; private var tween2:Tween; public var btn_play:SimpleButton; public var loader_mc:MovieClip; private var total:int;// = 9 private var dragging:Boolean;// = false private var isfor:Sound; private var posArr:Array; private var wrongplace:Sound; public var banner_mc:MovieClip; public var board_mc:MovieClip; private var wrong:Sound; private var wrongchoice:int;// = 0 private var firstTime:Boolean;// = true public var prevOver:String; public var p1:MovieClip; public var p2:MovieClip; public var p3:MovieClip; public var p5:MovieClip; public var p8:MovieClip; public var p9:MovieClip; private var firstSelect:Boolean;// = true public var p6:MovieClip; public var p7:MovieClip; private var idleTimer:Timer; public var letterArray:Array; public var audio:Boolean; public var p4:MovieClip; public var video_mc:MovieClip; private var videoArr:Array; public var currentOver:String; private var didit:Sound; private var oops:Sound; private var toclick:Sound; private var clicky:Sound; public function Main(){ this.isDown = false; this.dragging = false; this.firstSelect = true; this.loader = new URLLoader(); this.correct = 1; this.total = 9; this.firstTime = true; this.idleTimer = new Timer(20000, 1); this.wrongchoice = 0; this.clickDown = false; this.posArr = new Array({x:412.4, y:65.2}, {x:488.4, y:77.1}, {x:546.1, y:61.8}, {x:521.3, y:153.3}, {x:439.2, y:205.6}, {x:557.3, y:212.9}, {x:512.5, y:276.2}, {x:445.9, y:320.7}, {x:562.8, y:334.7}); this.audioArr = new Array("a-ant.mp3", "b-butterfly.mp3", "c-caterpillar.mp3", "d-doll.mp3", "e-elephant.mp3", "f-fish.mp3", "g-goat.mp3", "h-house.mp3", "i-iguana.mp3", "j-jackolantern.mp3", "k-kitten.mp3", "l-lollipop.mp3", "m-moon.mp3", "n-nest.mp3", "o-octupus.mp3", "p-pencil.mp3", "q-queen.mp3", "r-rainbow.mp3", "s-seahorse.mp3", "t-tent.mp3", "u-umbrella.mp3", "v-violin.mp3", "w-worm.mp3", "x-xray.mp3", "y-yoyo.mp3", "z-zebra.mp3"); this.linkpath = "/pbskids2008/lions/games/dswmedia/theospuzzles/audio/"; this.path = "/pbskids2008/lions/games/dswmedia/theospuzzles/"; this.videoArr = new Array((this.linkpath + "video.mp3"), (this.linkpath + "watch.mp3")); super(); addFrameScript(0, this.frame1, 1, this.frame2, 2, this.frame3, 3, this.frame4); this.instr = new Sound(new URLRequest((this.linkpath + "instruction.mp3"))); this.toclick = new Sound(new URLRequest((this.linkpath + "timeoutclick.mp3"))); this.wrong = new Sound(new URLRequest((this.linkpath + "wrong.mp3"))); this.oops = new Sound(new URLRequest((this.linkpath + "oops.mp3"))); this.great = new Sound(new URLRequest((this.linkpath + "great.mp3"))); this.almost = new Sound(new URLRequest((this.linkpath + "almost.mp3"))); this.didit = new Sound(new URLRequest((this.linkpath + "gotit.mp3"))); this.clicky = new Sound(new URLRequest((this.linkpath + "click.mp3"))); this.putdown = new Sound(new URLRequest((this.linkpath + "down.mp3"))); this.wrongplace = new Sound(new URLRequest((this.linkpath + "whoosh.mp3"))); } private function idle(_arg1:TimerEvent):void{ trace("idle"); this.firstTime = false; this.toclick.play(); _arg1.currentTarget.removeEventListener(TimerEvent.TIMER, this.idle); } public function welcomeDone(_arg1:Event):void{ var _loc2_:Sound; _arg1.currentTarget.removeEventListener(Event.SOUND_COMPLETE, this.welcomeDone); _loc2_ = new Sound(new URLRequest((this.path + "audio/play.mp3"))); this.sc = _loc2_.play(); this.sc.addEventListener(Event.SOUND_COMPLETE, this.playComplete); this.btn_play.visible = true; } private function wrongComplete(_arg1:Event):void{ _arg1.currentTarget.removeEventListener(Event.SOUND_COMPLETE, this.wrongComplete); if (this.wrongchoice == 0){ this.wrongchoice++; this.sc = this.wrong.play(); }; } public function letterOver(_arg1:MouseEvent):void{ var _loc2_:String; var _loc3_:Sound; trace("over"); _loc2_ = _arg1.currentTarget.name; this.prevOver = this.currentOver; this.currentOver = _loc2_.charAt(4); if (((((this.audio) && (!((this.currentOver == this.prevOver))))) && (!((this.currentOver == "root1"))))){ this.prevOver = this.currentOver; this.audio = false; _loc3_ = new Sound(new URLRequest((((this.path + "audio/") + this.currentOver) + ".mp3"))); this.sc = _loc3_.play(); this.sc.addEventListener(Event.SOUND_COMPLETE, this.onOverDone); }; } public function loadComplete(_arg1:Event):void{ this.guy_mc.gotoAndPlay("finished"); this.guy_mc.addEventListener(Event.ENTER_FRAME, this.onGuyEnter); } private function onMove(_arg1:MouseEvent):void{ trace("draggin!!!!!"); _arg1.currentTarget.removeEventListener(MouseEvent.MOUSE_MOVE, this.onMove); if (!(this.dragging)){ this.dragging = true; this.sc = this.instr.play(); }; } function frame2(){ this.s = new Sound(new URLRequest((this.path + "audio/welcome.mp3"))); this.sc = this.s.play(); this.sc.addEventListener(Event.SOUND_COMPLETE, this.welcomeDone); this.btn_play.visible = false; } function frame3(){ this.letterArray = new Array("b", "c", "d", "f", "g", "h", "j", "k", "l", "m", "n", "p", "q", "r", "s", "t", "v", "w", "x", "y", "z"); if (this.firstSelect){ this.l = new Sound(new URLRequest((this.path + "audio/clickletter.mp3"))); } else { this.l = new Sound(new URLRequest((this.path + "audio/clickanotherletter.mp3"))); }; this.sc = this.l.play(); this.sc.addEventListener(Event.SOUND_COMPLETE, this.letterComplete); this.prevOver = null; this.currentOver = null; this.audio = true; } private function instrComplete(_arg1:Event):void{ _arg1.currentTarget.removeEventListener(Event.SOUND_COMPLETE, this.instrComplete); this.clickListeners(); } private function vidComplete(_arg1:Event):void{ _arg1.currentTarget.removeEventListener(Event.SOUND_COMPLETE, this.vidComplete); this.letter.play(); gotoAndStop("video"); setChildIndex(this.video_mc, (this.numChildren - 1)); this.tween = new Tween(this.video_mc, "scaleX", None.easeNone, 0, 1, 0.5, true); this.tween2 = new Tween(this.video_mc, "scaleY", None.easeNone, 0, 1, 0.5, true); this.tween.addEventListener(TweenEvent.MOTION_FINISH, this.tweenDone); } function frame4(){ this.init(); } function frame1(){ stop(); loaderInfo.addEventListener(ProgressEvent.PROGRESS, this.loadProgress); loaderInfo.addEventListener(Event.COMPLETE, this.loadComplete); } public function playComplete(_arg1:Event):void{ trace("intro done"); _arg1.currentTarget.removeEventListener(Event.SOUND_COMPLETE, this.playComplete); this.btn_play.addEventListener(MouseEvent.CLICK, this.onClick); } private function shuffled(_arg1:Array):Array{ var _loc2_:Array; var _loc3_:int; _loc2_ = new Array(); while (_arg1.length > 0) { _loc3_ = Math.floor((Math.random() * _arg1.length)); _loc2_.push(_arg1[_loc3_]); _arg1.splice(_loc3_, 1); }; return (_loc2_); } private function onTimer(_arg1:TimerEvent):void{ trace(this.video_mc.screen_mc.captions.captionLoadStatus); } private function tweenDone(_arg1:TweenEvent):void{ var _loc2_:MovieClip; var _loc3_:* = null; _arg1.currentTarget.removeEventListener(TweenEvent.MOTION_FINISH, this.tweenDone); _loc2_ = getChildByName("video_mc"); this.setChildIndex(this.banner_mc, (this.numChildren - 1)); _loc3_ = (((this.path + "captions/letter") + this.selectedPuzzle) + ".dfxp.xml"); trace(_loc3_); _loc2_.screen_mc.captions.startCaptions("external", _loc3_); _loc2_.screen_mc.flv_player.bufferTime = 0.5; _loc2_.screen_mc.flv_player.source = (((this.path + "flv/letter") + this.selectedPuzzle) + "_350.flv"); _loc2_.screen_mc.flv_player.play(); _loc2_.screen_mc.flv_player.addEventListener(VideoEvent.COMPLETE, this.onVideoDone); } private function videoComplete(_arg1:Event):void{ trace("video done!!"); } private function onUp(_arg1:MouseEvent):void{ trace("up"); if (this.isDown){ this.isDown = false; _arg1.currentTarget.addEventListener(MouseEvent.MOUSE_DOWN, this.releaseClick); }; } public function onClick(_arg1:MouseEvent):void{ this.gotoAndStop("select"); } private function doneComplete(_arg1:Event):void{ _arg1.currentTarget.removeEventListener(Event.SOUND_COMPLETE, this.doneComplete); this.sc = this.isfor.play(); this.sc.addEventListener(Event.SOUND_COMPLETE, this.isforDone); } private function init():void{ var _loc1_:MovieClip; this.posArr = this.shuffled(this.posArr); this.ran = Math.ceil((Math.random() * 9)); i = 1; while (i < 10) { _loc1_ = getChildByName(("p" + i)); _loc1_.gotoAndStop(this.selectedPuzzle); _loc1_.visible = true; if (i == this.ran){ _loc1_.x = MovieClip(getChildByName(("h" + i))).x; _loc1_.y = MovieClip(getChildByName(("h" + i))).y; _loc1_.scaleX = (_loc1_.scaleY = 1); _loc1_.rotation = 0; } else { _loc1_.buttonMode = true; _loc1_.x = this.posArr[(i - 1)].x; _loc1_.y = this.posArr[(i - 1)].y; _loc1_.scaleX = (_loc1_.scaleY = 0.4); }; i++; }; if (this.firstTime){ this.sc = this.instr.play(); this.sc.addEventListener(Event.SOUND_COMPLETE, this.instrComplete); this.idleTimer.addEventListener(TimerEvent.TIMER, this.idle); this.idleTimer.start(); } else { this.clickListeners(); }; } public function letterClicked(_arg1:MouseEvent):void{ var _loc2_:String; _loc2_ = _arg1.currentTarget.name; this.setPuzzle(_loc2_.charAt(4)); gotoAndStop("game"); } public function loadProgress(_arg1:ProgressEvent):void{ var _loc2_:Number; _loc2_ = (loaderInfo.bytesLoaded / loaderInfo.bytesTotal); trace((int((_loc2_ * 100)) + "%")); this.loader_mc.gotoAndStop(int((_loc2_ * 20))); } private function loadVideo():void{ this.loader.addEventListener(Event.COMPLETE, this.videoComplete); this.loader.load(new URLRequest((((this.path + "flv/letter") + this.selectedPuzzle) + "_350.flv"))); this.letter = new Sound(new URLRequest(((this.linkpath + this.selectedPuzzle) + ".mp3"))); } private function setPuzzle(_arg1:String="a"):void{ var _loc2_:*; this.firstSelect = false; this.selectedPuzzle = _arg1; i = 0; while (i < this.audioArr.length) { _loc2_ = this.audioArr[i].charAt(0); if (_loc2_ == _arg1){ this.isfor = new Sound(new URLRequest((this.linkpath + this.audioArr[i]))); break; }; i++; }; this.loadVideo(); } public function letterOut(_arg1:MouseEvent):void{ this.prevOver = this.currentOver; this.currentOver = "root1"; } public function onGuyEnter(_arg1:Event):void{ if (this.guy_mc.currentLabel == "done"){ this.guy_mc.removeEventListener(Event.ENTER_FRAME, this.onGuyEnter); this.gotoAndStop("intro"); }; } private function reset():void{ var _loc1_:MovieClip; i = 1; while (i < 10) { _loc1_ = getChildByName(("p" + i)); removeChild(_loc1_); i++; }; this.video_mc.screen_mc.flv_player.stop(); removeChild(this.video_mc); gotoAndStop("select"); this.correct = 1; } public function onOverDone(_arg1:Event):void{ var _loc2_:Sound; _arg1.currentTarget.removeEventListener(Event.SOUND_COMPLETE, this.onOverDone); this.audio = true; if (((((((!((this.prevOver == null))) && (!((this.prevOver == this.currentOver))))) && (!((this.currentOver == "root1"))))) && (this.audio))){ this.prevOver = this.currentOver; this.audio = false; _loc2_ = new Sound(new URLRequest((((this.path + "audio/") + this.currentOver) + ".mp3"))); this.sc = _loc2_.play(); this.sc.addEventListener(Event.SOUND_COMPLETE, this.onOverDone); }; } public function letterComplete(_arg1:Event):void{ var _loc2_:*; var _loc3_:*; _arg1.currentTarget.removeEventListener(Event.SOUND_COMPLETE, this.letterComplete); _loc2_ = 0; while (_loc2_ < this.letterArray.length) { _loc3_ = this.board_mc.getChildByName(("btn_" + this.letterArray[_loc2_])); _loc3_.addEventListener(MouseEvent.CLICK, this.letterClicked); _loc3_.addEventListener(MouseEvent.MOUSE_OVER, this.letterOver); _loc3_.addEventListener(MouseEvent.MOUSE_OUT, this.letterOut); _loc2_++; }; trace("done"); } private function isforDone(_arg1:Event):void{ var _loc2_:Number; _loc2_ = Math.floor((Math.random() * 2)); this.video = new Sound(new URLRequest(this.videoArr[_loc2_])); this.sc = this.video.play(); this.sc.addEventListener(Event.SOUND_COMPLETE, this.vidComplete); } private function onVideoDone(_arg1:Event):void{ _arg1.currentTarget.removeEventListener(VideoEvent.COMPLETE, this.onVideoDone); trace("video done--------------"); this.reset(); } private function clickListeners():void{ var _loc1_:MovieClip; i = 1; while (i < 10) { if (i != this.ran){ _loc1_ = getChildByName(("p" + i)); _loc1_.addEventListener(MouseEvent.MOUSE_DOWN, this.selectClick); _loc1_.addEventListener(MouseEvent.MOUSE_UP, this.onUp); trace("instructions complete"); }; i++; }; } private function releaseClick(_arg1:MouseEvent):void{ var _loc2_:MovieClip; var _loc3_:MovieClip; trace("check click-----------------"); _loc2_ = _arg1.currentTarget; _loc2_.removeEventListener(MouseEvent.MOUSE_DOWN, this.releaseClick); _loc2_.stopDrag(); if (mouseX < 440){ this.putdown.play(); switch (_loc2_.name){ case "p1": default: _loc3_ = getChildByName("h1"); break; case "p2": _loc3_ = getChildByName("h2"); break; case "p3": _loc3_ = getChildByName("h3"); break; case "p4": _loc3_ = getChildByName("h4"); break; case "p5": _loc3_ = getChildByName("h5"); break; case "p6": _loc3_ = getChildByName("h6"); break; case "p7": _loc3_ = getChildByName("h7"); break; case "p8": _loc3_ = getChildByName("h8"); break; case "p9": _loc3_ = getChildByName("h9"); }; if (_loc2_.hitTestObject(_loc3_)){ this.correct++; if (this.correct == 3){ this.sc.stop(); this.sc = this.great.play(); } else { if (this.correct == 6){ this.sc.stop(); this.sc = this.almost.play(); } else { if (this.correct == this.total){ this.sc.stop(); this.sc = this.didit.play(); this.sc.addEventListener(Event.SOUND_COMPLETE, this.doneComplete); }; }; }; _loc2_.x = _loc3_.x; _loc2_.y = _loc3_.y; _loc2_.buttonMode = false; } else { this.sc = this.wrongplace.play(); this.sc.addEventListener(Event.SOUND_COMPLETE, this.wrongComplete); _loc2_.scaleX = (_loc2_.scaleY = 0.4); _loc2_.rotation = ((Math.random() * (4 + 4)) + 4); _loc2_.x = this.selectedX; _loc2_.y = this.selectedY; _loc2_.addEventListener(MouseEvent.MOUSE_DOWN, this.selectClick); }; } else { _loc2_.scaleX = (_loc2_.scaleY = 0.4); _loc2_.rotation = ((Math.random() * (4 + 4)) + 4); _loc2_.x = mouseX; _loc2_.y = mouseY; _loc2_.addEventListener(MouseEvent.MOUSE_DOWN, this.selectClick); }; } private function selectClick(_arg1:MouseEvent):void{ var _loc2_:MovieClip; trace("down"); this.isDown = true; this.clicky.play(); if (this.firstTime){ this.firstTime = false; this.idleTimer.stop(); this.idleTimer.removeEventListener(TimerEvent.TIMER, this.idle); }; _loc2_ = _arg1.currentTarget; this.selectedX = _loc2_.x; this.selectedY = _loc2_.y; _loc2_.removeEventListener(MouseEvent.MOUSE_DOWN, this.selectClick); this.setChildIndex(_loc2_, (this.numChildren - 1)); this.setChildIndex(this.banner_mc, (this.numChildren - 1)); _loc2_.rotation = 0; _loc2_.scaleX = (_loc2_.scaleY = 1); _loc2_.x = mouseX; _loc2_.y = mouseY; _loc2_.startDrag(); } } }//package code
Section 2
//CaptionSearch (com.ncam.CaptionSearch) package com.ncam { import flash.display.*; public class CaptionSearch extends Sprite { private var fullSearchStr:String;// = "" private var searIndArr:Array; public function CaptionSearch(){ fullSearchStr = ""; searIndArr = new Array(); super(); } function createSearchArray(_arg1:Array, _arg2:Array):void{ var _local3:int; var _local4:int; var _local5:String; fullSearchStr = ""; searIndArr = []; _local3 = -1; _local4 = 0; while (_local4 < _arg1.length) { _local5 = _arg2[_local4]; if (((!((_local5 == ""))) && (!((_local5 == null))))){ while (_local5.charAt(0) == " ") { _local5 = _local5.slice(1); }; while (_local5.charAt((_local5.length - 1)) == " ") { _local5 = _local5.substr(0, (_local5.length - 1)); }; _local5 = (_local5 + " "); fullSearchStr = (fullSearchStr + _local5); searIndArr.push({chIN:(_local3 + 1), chOUT:(_local3 + _local5.length), sTime:_arg1[_local4].caBegin}); _local3 = (_local3 + _local5.length); } else { searIndArr.push({chIN:0, chOUT:0, sTime:""}); }; _local4++; }; } function searchCaptions(_arg1:String, _arg2:int):Number{ var _local3:Number; var _local4:String; var _local5:int; var _local6:int; var _local7:int; _local3 = -1; if (_arg1 != ""){ _local4 = _arg1.toLowerCase(); _local5 = searIndArr[(_arg2 + 1)].chIN; _local6 = fullSearchStr.indexOf(_local4, _local5); if (_local6 == -1){ _local6 = fullSearchStr.indexOf(_local4); }; if (_local6 != -1){ _local7 = 0; while (_local7 < searIndArr.length) { if ((((searIndArr[_local7].chIN <= _local6)) && ((_local6 <= searIndArr[_local7].chOUT)))){ _local3 = searIndArr[_local7].sTime; break; }; _local7++; }; }; }; return (_local3); } } }//package com.ncam
Section 3
//CCforFlashAS3 (com.ncam.CCforFlashAS3) package com.ncam { import flash.net.*; import flash.events.*; import flash.display.*; import flash.geom.*; import flash.text.*; import flash.utils.*; import flash.accessibility.*; public class CCforFlashAS3 extends Sprite { private var _captTimer:Timer; private var _cDispType:String;// = "pop-on" private var _cTxtSize:Number;// = 14 private var _txtTimer:Timer; private var _srIndxArr:Array; private var _cTxtFont:String;// = "Verdana" private var captTextArea:TextField; private var _captLoad:String;// = "loading" private var _langArr:Array; private var _timeSync:Number; private var _cFrameRate:Number;// = 12 private var _cObjType:String;// = "Netstream Video Object" private var _displayAssigned:Boolean; private var _cTxtAlign:String;// = "center" private var _currRunMode:String;// = "sync" private var _ccLoad:URLLoader; private var _cAuthOver:Boolean;// = false private var _cbgPadding:Number;// = 4 private var _inspTimer:Timer; private var _plyrTimer:Timer; private var _cSrcType:String;// = "external" private var _caStyle:Array; private var _nsClientAct:Boolean; private var cssStyles:StyleSheet; private var _pbfunc:String; private var _cTxtColor:String;// = "#FFFFFF" private var _cFileType:String; private var _prevTime:Number;// = 0 private var _ccObject:Object; private var _timeConv:TimecodeConversion; private var _cCaptSrc:String;// = "" private var _ccA:Array; private var _searCont:CaptionSearch; private var _availTimer:Timer; private var _nwidth:Number;// = 320 public var boundingBox_mc:MovieClip; private var _CCforFlashVersion:String;// = "1.0.0" private var _rollArr:Array; private var _captPtr:int;// = 0 private var _livePreview:Boolean; private var _cTxtWeight:String;// = "normal" private var _ccTxtStr:String; private var _setclrtr:ColorTransform; private var captBackground:Shape; private var _cDispLns:Number;// = 3 private var _cbgAlpha:Number;// = 100 private var _cbgColor:String;// = "#000000" private var _currDisplayMode:String; private var _inspChk:Array; private var _cObjStream:String;// = "" private var _nheight:Number;// = 64 private var _cTxtLang:String;// = "en" private static var _numPar:uint = 17; private static var _captSample:String = "<p>Sample of captions<br />appearing in this area.<br />Line 3, if necessary.</p>"; public function CCforFlashAS3(){ _nwidth = 320; _nheight = 64; _CCforFlashVersion = "1.0.0"; _currRunMode = "sync"; _cObjType = "Netstream Video Object"; _cObjStream = ""; _cFrameRate = 12; _cSrcType = "external"; _cCaptSrc = ""; _cDispType = "pop-on"; _cDispLns = 3; _cTxtLang = "en"; _cbgPadding = 4; _cbgAlpha = 100; _cbgColor = "#000000"; _cTxtColor = "#FFFFFF"; _cTxtFont = "Verdana"; _cTxtSize = 14; _cTxtWeight = "normal"; _cTxtAlign = "center"; _cAuthOver = false; _prevTime = 0; _captPtr = 0; _captLoad = "loading"; super(); _livePreview = ((!((this.parent == null))) && ((getQualifiedClassName(parent) == "fl.livepreview::LivePreviewParent"))); _nsClientAct = false; init(); draw(); defStyle(); if (!_livePreview){ _inspTimer.start(); }; } public function get captWeight():String{ return (_cTxtWeight); } private function chkCaptType():void{ var _local1:Number; var _local2:Number; var _local3:String; _local1 = -1; _local2 = _ccTxtStr.length; if (_local2 > 200){ _local2 = 200; }; _local3 = _ccTxtStr.substr(0, _local2); _local3 = _local3.toLowerCase(); _local1 = _local3.indexOf("<tt "); if (_local1 > -1){ if (_currRunMode != "manual"){ startPlayerCheck(); }; _cFileType = "DFXP"; extractCaptions(); } else { _local1 = _local3.indexOf("{qtte"); if (_local1 > -1){ if (_currRunMode != "manual"){ startPlayerCheck(); }; _cFileType = "QTtext"; extractCaptions(); } else { _captLoad = "failed"; clearTimers(); trace("CCforFlash Status: The text is not a recognized QTtext or DFXP format."); }; }; } public function get captSize():Number{ return (_cTxtSize); } public function set captSize(_arg1:Number):void{ _cTxtSize = _arg1; defStyle(); _inspChk[13] = true; } public function get bgPadding():Number{ return (_cbgPadding); } private function getCompCapt(_arg1:TimerEvent):void{ _timeSync = _ccObject.playheadTime; dispCapt(_timeSync); } public function set captWeight(_arg1:String):void{ _cTxtWeight = _arg1; defStyle(); _inspChk[14] = true; } public function set bgPadding(_arg1:Number):void{ _cbgPadding = _arg1; draw(); _inspChk[8] = true; } public function get bgAlpha():Number{ return (_cbgAlpha); } public function get bgColor():String{ return (_cbgColor); } public function set bgAlpha(_arg1:Number):void{ if (_arg1 > 100){ _arg1 = 100; }; _cbgAlpha = Math.round(_arg1); defStyle(); _inspChk[9] = true; } public function get currentCaptionStyleSheet():StyleSheet{ return (cssStyles); } private function procEmbNS():void{ var _local1:Object; clearTimers(); if (!_nsClientAct){ if ((_ccObject.client is NetStream)){ _local1 = new Object(); _ccObject.client = _local1; }; _ccObject.client.onCaption = displayEmbedded; _nsClientAct = true; }; if (_currDisplayMode == "roll-up"){ crRollArr(); _caStyle[0].afont = "left"; procStyles(); } else { _caStyle[0].afont = captAlign; procStyles(); }; } public function set bgColor(_arg1:String):void{ var _local2:ColorToHex; if (_arg1.toLowerCase() == "transparent"){ trace("CCforFlash Status: The effect of setting the background color to transparent cannot be demonstrated in the authoring environment. To create a transparent background, set the background opacity to 0.\n"); _cbgColor = "#000000"; bgAlpha = 0; } else { _local2 = new ColorToHex(_arg1); if (_local2.hexVal == "INVALID"){ _cbgColor = "#000000"; } else { _cbgColor = _local2.hexVal; }; }; defStyle(); _inspChk[10] = true; } public function get currentDisplayMode():String{ return (_currDisplayMode); } public function get captFont():String{ return (_cTxtFont); } private function getVidCapt(_arg1:TimerEvent):void{ _timeSync = _ccObject.time; dispCapt(_timeSync); } public function get captLanguage():String{ return (_cTxtLang); } private function clearTimers():void{ _inspTimer.stop(); _availTimer.stop(); _plyrTimer.stop(); _txtTimer.stop(); _captTimer.stop(); if (_inspTimer.hasEventListener(TimerEvent.TIMER)){ _inspTimer.removeEventListener(TimerEvent.TIMER, chkInspComplete); }; if (_availTimer.hasEventListener(TimerEvent.TIMER)){ _availTimer.removeEventListener(TimerEvent.TIMER, getSrcInfo); }; if (_plyrTimer.hasEventListener(TimerEvent.TIMER)){ _plyrTimer.removeEventListener(TimerEvent.TIMER, ckplayer); }; if (_txtTimer.hasEventListener(TimerEvent.TIMER)){ _txtTimer.removeEventListener(TimerEvent.TIMER, chkTxtInst); }; if (_captTimer.hasEventListener(TimerEvent.TIMER)){ _captTimer.removeEventListener(TimerEvent.TIMER, this[_pbfunc]); }; } private function getSrcInfo(_arg1:TimerEvent):void{ var _local2:Object; var _local3:String; var _local4:Number; var _local5:String; if ((((_currRunMode == "manual")) && (!((captSrcType == "embedded"))))){ clearTimers(); _currDisplayMode = "pop-on"; _displayAssigned = false; getCaptType(); } else { _local2 = this; _local3 = ("parent." + captObjPath); _local4 = _local3.indexOf("."); while (_local4 != -1) { _local5 = _local3.substring(0, _local4); _local2 = retrObject(_local2, _local5); _local3 = _local3.slice((_local4 + 1)); _local4 = _local3.indexOf("."); }; switch (captObjType){ case "Netstream Video Object": _ccObject = NetStream(_local2[_local3]); break; case "Flash FLVPlayback Component": _ccObject = _local2[_local3]; break; case "Flash MovieClip Object": switch (_local3){ case "": _ccObject = _local2; break; case "this": _ccObject = _local2; break; default: _ccObject = _local2[_local3]; break; }; break; case "Flash SoundChannel Object": _ccObject = null; break; }; if (_ccObject != null){ clearTimers(); _currDisplayMode = captDispMode; _displayAssigned = false; getCaptType(); }; }; } public function set captAlign(_arg1:String):void{ _cTxtAlign = _arg1; defStyle(); _inspChk[15] = true; } private function retrObject(_arg1:Object, _arg2:String):Object{ var _local3:*; if (_arg2 == "parent"){ _local3 = _arg1.parent; } else { _local3 = _arg1[_arg2]; }; return (_local3); } public function get defaultDisplayMode():String{ return (captDispMode); } private function clrCaptFlgs():void{ var _local1:Number; _local1 = 0; while (_local1 < _ccA.length) { _ccA[_local1].caFlg = ""; _local1++; }; crRollArr(); } public function get currentCaptionHTMLText():String{ return (captTextArea.htmlText); } public function set captFont(_arg1:String):void{ _cTxtFont = _arg1; defStyle(); _inspChk[12] = true; } private function defStyle():void{ var _local1:uint; _local1 = uint(("0x" + bgColor.slice(1))); _caStyle[0].wfont = captWeight; _caStyle[0].ffont = captFont; _caStyle[0].szfont = captSize; _caStyle[0].cfont = captColor; _caStyle[0].afont = captAlign; _caStyle[0].bgclr = _local1; _caStyle[0].opval = (bgAlpha / 100); cssStyles.setStyle("p", {color:_caStyle[0].cfont, fontFamily:_caStyle[0].ffont, fontSize:_caStyle[0].szfont, fontWeight:_caStyle[0].wfont, textAlign:_caStyle[0].afont}); captTextArea.styleSheet = cssStyles; if (_livePreview){ captTextArea.htmlText = _captSample; }; _setclrtr.color = _caStyle[0].bgclr; captBackground.transform.colorTransform = _setclrtr; captBackground.alpha = _caStyle[0].opval; } public function getCaptionContent():Array{ return (_ccA); } public function get captObjPath():String{ return (_cObjStream); } private function getCaptType():void{ switch (captSrcType){ case "embedded": startPlayerCheck(); break; case "external": if (captSource != ""){ loadExtFile(); }; break; case "internal": _txtTimer.addEventListener(TimerEvent.TIMER, chkTxtInst); _txtTimer.start(); break; }; } public function set captFrRate(_arg1:Number):void{ _cFrameRate = _arg1; _inspChk[2] = true; } private function setCaptDispTimer(_arg1:String):void{ _pbfunc = _arg1; _captTimer.addEventListener(TimerEvent.TIMER, this[_pbfunc]); _captTimer.start(); } public function clearCaptions():void{ clearTimers(); captTextArea.htmlText = ""; } private function initSndCapt():void{ clearTimers(); setCaptDispTimer("getSndCapt"); } public function set captLanguage(_arg1:String):void{ _arg1 = _arg1.toLowerCase(); if (_arg1 != "default"){ _cTxtLang = _arg1.substr(0, 2); } else { _cTxtLang = _arg1; }; _inspChk[7] = true; } public function getCaptionStyles():Array{ return (_caStyle); } public function set captDispMode(_arg1:String):void{ _cDispType = _arg1; _inspChk[5] = true; } public function switchDefaultDisplayMode(_arg1:String, _arg2:Number=-99):void{ if (_arg1 == "roll-up"){ captDispMode = "roll-up"; if (_arg2 != -99){ captDispLns = _arg2; }; if (!_displayAssigned){ _currDisplayMode = captDispMode; _caStyle[0].afont = "left"; procStyles(); _rollArr = []; crRollArr(); clrCaptFlgs(); }; } else { captDispMode = "pop-on"; if (!_displayAssigned){ _currDisplayMode = captDispMode; _caStyle[0].afont = captAlign; procStyles(); }; }; } private function startPlayerCheck():void{ _plyrTimer.addEventListener(TimerEvent.TIMER, ckplayer); _plyrTimer.start(); } public function getLanguage():String{ return (captLanguage); } public function get captDispLns():Number{ return (_cDispLns); } private function extractCaptions():void{ var _local1:DFXPTransform; var _local2:QTtextTransform; if (captDispMode == "roll-up"){ _caStyle[0].afont = "left"; }; switch (_cFileType){ case "DFXP": _local1 = new DFXPTransform(_ccTxtStr, captLanguage, captOvStyl, _caStyle[0]); if (_local1._convStatus){ _ccA = _local1._dfxpccData; _caStyle = _local1._dfxpStyle; _langArr = _local1._dfxpccLang; _srIndxArr = _local1._dfxpccSrch; if (_local1._displayType != ""){ _currDisplayMode = _local1._displayType; _displayAssigned = true; }; procStyles(); _captLoad = "loaded"; } else { _captLoad = "failed"; clearTimers(); trace("CCforFlash Status: The DFXP file did not contain properly formatted text."); }; break; case "QTtext": _local2 = new QTtextTransform(_ccTxtStr, captOvStyl, _caStyle[0]); _ccA = _local2._qtccData; _srIndxArr = _local2._qtccSrch; if (!captOvStyl){ _caStyle = _local2._qtStyle; }; procStyles(); _captLoad = "loaded"; break; }; if (_captLoad == "loaded"){ _searCont.createSearchArray(_ccA, _srIndxArr); }; if (_currDisplayMode == "roll-up"){ crRollArr(); }; } public function get captionLoadStatus():String{ return (_captLoad); } public function get currentCaptionText():String{ return (captTextArea.text); } public function set captOvStyl(_arg1:Boolean):void{ _cAuthOver = _arg1; _inspChk[16] = true; } public function get currentRunMode():String{ return (_currRunMode); } private function init():void{ var _local1:AccessibilityProperties; var _local2:Number; _nwidth = this.width; _nheight = this.height; this.scaleX = 1; this.scaleY = 1; while (this.numChildren > 0) { this.removeChildAt(0); }; captBackground = new Shape(); captTextArea = new TextField(); _setclrtr = new ColorTransform(); _searCont = new CaptionSearch(); _timeConv = new TimecodeConversion(); captTextArea.type = TextFieldType.DYNAMIC; captTextArea.multiline = true; captTextArea.wordWrap = true; captTextArea.selectable = false; _local1 = new AccessibilityProperties(); _local1.silent = false; _local1.name = "caption text"; captTextArea.accessibilityProperties = _local1; cssStyles = new StyleSheet(); _ccA = new Array(); _ccA = [{caBegin:0, caEnd:0, caTxt:" ", caBg:"", caOp:1, caFlg:""}]; _caStyle = new Array(); _caStyle.push({id:"p", wfont:"", stfont:"", dfont:"", ffont:"", szfont:0, cfont:"", afont:"", bgclr:"", opval:1}); _inspChk = new Array(); _langArr = new Array(); _langArr[0] = "default"; _rollArr = new Array(); _srIndxArr = new Array(); _local2 = 0; while (_local2 < _numPar) { _inspChk[_local2] = false; _local2++; }; _inspTimer = new Timer(100); _inspTimer.addEventListener(TimerEvent.TIMER, chkInspComplete); _availTimer = new Timer(100); _plyrTimer = new Timer(100); _txtTimer = new Timer(100); _captTimer = new Timer(100); } public function findString(_arg1:String):Number{ var _local2:Number; _local2 = _searCont.searchCaptions(_arg1, _captPtr); return (_local2); } public function set captObjType(_arg1:String):void{ if ((((_arg1 == "Flash Sound Object")) || ((_arg1 == "Flash SoundChannel Object")))){ trace("The Sound object synchronization has been removed from CCforFlashAS3, due to synchronization issues with the SoundChannel object."); _arg1 = "Netstream Video Object"; }; _cObjType = _arg1; _inspChk[0] = true; } public function changeLanguage(_arg1:String):void{ var _local2:Boolean; var _local3:Number; _local2 = false; _local3 = 0; while (_local3 < _langArr.length) { if (_arg1 == _langArr[_local3]){ _local2 = true; break; }; _local3++; }; if (((!((_cFileType == "QTtext"))) && (_local2))){ captLanguage = _arg1; rstCaptSettings(); defStyle(); captTextArea.htmlText = ""; if (_currRunMode != "manual"){ startPlayerCheck(); }; extractCaptions(); }; } private function getMvCapt(_arg1:TimerEvent):void{ _timeSync = (Math.round((1000 * (_ccObject.currentFrame / captFrRate))) / 1000); dispCapt(_timeSync); } private function ccExtractContent(_arg1:Event):void{ if (_ccLoad.data != null){ _ccTxtStr = _ccLoad.data; chkCaptType(); }; } public function set captObjPath(_arg1:String):void{ _cObjStream = _arg1; _inspChk[1] = true; } public function getCCforFlashVersion():String{ return (_CCforFlashVersion); } private function crRollArr():void{ var _local1:Number; _local1 = 0; while (_local1 < captDispLns) { _rollArr[_local1] = "<p></p>"; _local1++; }; } public function get captOvStyl():Boolean{ return (_cAuthOver); } public function runSynchronized():void{ _currRunMode = "sync"; startCaptions(); } public function set captSource(_arg1:String):void{ if (_arg1 != null){ _cCaptSrc = _arg1; }; _inspChk[4] = true; } public function set captColor(_arg1:String):void{ var _local2:ColorToHex; if (_arg1.toLowerCase() == "transparent"){ _cTxtColor = "#FFFFFF"; } else { _local2 = new ColorToHex(_arg1); if (_local2.hexVal == "INVALID"){ _cTxtColor = "#FFFFFF"; } else { _cTxtColor = _local2.hexVal; }; }; defStyle(); _inspChk[11] = true; } public function get captAlign():String{ return (_cTxtAlign); } protected function draw():void{ var _local1:uint; while (this.numChildren > 0) { this.removeChildAt(0); }; _local1 = uint(("0x" + bgColor.slice(1))); captBackground.graphics.clear(); captBackground.graphics.lineStyle(0, _local1, 0); captBackground.graphics.beginFill(_local1); captBackground.graphics.drawRect(0, 0, _nwidth, _nheight); captBackground.graphics.endFill(); captBackground.alpha = (bgAlpha / 100); captBackground.x = 0; captBackground.y = 0; captTextArea.width = (_nwidth - (bgPadding * 2)); captTextArea.height = (_nheight - (bgPadding * 2)); captTextArea.x = bgPadding; captTextArea.y = bgPadding; this.addChild(captBackground); this.addChild(captTextArea); } private function rstCaptSettings():void{ clearTimers(); clrArrays(); _langArr[0] = "default"; _caStyle.push({id:"p", wfont:"", stfont:"", dfont:"", ffont:"", szfont:0, cfont:"", afont:"", bgclr:"", opval:1}); _captLoad = "loading"; _captPtr = 0; } private function ckplayer(_arg1:TimerEvent):void{ switch (captObjType){ case "Netstream Video Object": if ((((_ccObject.time > 0)) && ((captSrcType == "embedded")))){ _captLoad = "loaded"; procEmbNS(); break; }; if ((((_ccObject.time > 0)) && ((_captLoad == "loaded")))){ initVidCapt(); }; break; case "Flash FLVPlayback Component": if ((((_ccObject.playheadTime > 0)) && ((_captLoad == "loaded")))){ initCompCapt(); }; break; case "Flash MovieClip Object": if ((((_ccObject.currentFrame > 0)) && ((_captLoad == "loaded")))){ initMvCapt(); }; break; case "Flash SoundChannel Object": if ((((_ccObject.position > 0)) && ((_captLoad == "loaded")))){ initSndCapt(); }; }; } public function get captFrRate():Number{ return (_cFrameRate); } private function chkTxtInst(_arg1:TimerEvent):void{ var _local2:Object; var _local3:String; var _local4:Number; var _local5:String; _local2 = this; _local3 = ("parent." + captSource); _local4 = _local3.indexOf("."); while (_local4 != -1) { _local5 = _local3.substring(0, _local4); _local2 = retrObject(_local2, _local5); _local3 = _local3.slice((_local4 + 1)); _local4 = _local3.indexOf("."); }; if (typeof(_local2[_local3]) == "string"){ _ccTxtStr = _local2[_local3]; }; if (typeof(_local2[_local3]) == "object"){ _ccTxtStr = _local2[_local3].text; }; if (_ccTxtStr != null){ clearTimers(); chkCaptType(); }; } private function startAvailCheck():void{ _availTimer.addEventListener(TimerEvent.TIMER, getSrcInfo); _availTimer.start(); } private function initVidCapt():void{ clearTimers(); setCaptDispTimer("getVidCapt"); } public function get captDispMode():String{ return (_cDispType); } private function chkInspComplete(_arg1:TimerEvent):void{ var _local2:Boolean; var _local3:Number; _local2 = true; _local3 = 0; while (_local3 < _inspChk.length) { if (!_inspChk[_local3]){ _local2 = false; }; _local3++; }; if (_local2){ clearTimers(); startAvailCheck(); }; } private function initMvCapt():void{ clearTimers(); setCaptDispTimer("getMvCapt"); } private function ccLoadFailed(_arg1:IOErrorEvent):void{ _captLoad = "failed"; clearTimers(); } public function setSize(_arg1:Number, _arg2:Number):void{ _nwidth = _arg1; _nheight = _arg2; draw(); } public function runManually():void{ _currRunMode = "manual"; if (_captTimer.hasEventListener(TimerEvent.TIMER)){ clearCaptions(); }; } private function setbgClrCapt(_arg1:Number):void{ _setclrtr.color = _ccA[_arg1].caBg; captBackground.transform.colorTransform = _setclrtr; captBackground.alpha = _ccA[_arg1].caOp; } private function displayEmbedded(_arg1:Object, _arg2:Object):void{ var _local3:String; var _local4:String; var _local5:Boolean; var _local6:Number; if (captSrcType == "embedded"){ _local3 = _arg1.toString(); _local4 = ""; _local5 = true; if (_currDisplayMode == "pop-on"){ _local4 = (("<p>" + _local3) + "</p>"); } else { if (_local3 == ""){ crRollArr(); _local5 = false; }; _local6 = 0; while (_local6 < (_rollArr.length - 1)) { _rollArr[_local6] = _rollArr[(_local6 + 1)]; _local4 = (_local4 + _rollArr[_local6]); _local6++; }; _rollArr[(_rollArr.length - 1)] = (("<p>" + _local3) + "</p>"); _local4 = (_local4 + _rollArr[(_rollArr.length - 1)]); }; captTextArea.htmlText = _local4; captTextArea.visible = _local5; captBackground.visible = _local5; if (((Accessibility.active) && (captTextArea.visible))){ Accessibility.updateProperties(); }; }; } public function get captObjType():String{ return (_cObjType); } public function getLanguages():Array{ var _local1:Array; _local1 = new Array(); if (_captLoad == "loaded"){ return (_langArr); }; return (_local1); } private function loadExtFile():void{ var _local1:URLRequest; _local1 = new URLRequest(captSource); _ccLoad = new URLLoader(); _ccLoad.addEventListener(Event.COMPLETE, ccExtractContent); _ccLoad.addEventListener(IOErrorEvent.IO_ERROR, ccLoadFailed); _ccLoad.load(_local1); } public function get captSource():String{ return (_cCaptSrc); } public function setbgColor(_arg1:String):void{ bgColor = _arg1; startCaptions(); } public function get captColor():String{ return (_cTxtColor); } public function displayManualCaption(_arg1:String):void{ var _local2:Number; var _local3:String; var _local4:String; var _local5:int; var _local6:Number; var _local7:Number; if (_currRunMode == "manual"){ _local2 = _timeConv.convertToSeconds(_arg1); _local3 = captTextArea.htmlText; _local4 = ""; _local5 = 0; while (_local5 < _ccA.length) { if (_ccA[_local5].caBegin != -99){ _local6 = -99; _local7 = (_local5 + 1); while (_local7 < _ccA.length) { if (_ccA[_local7].caBegin != -99){ _local6 = _ccA[_local7].caBegin; break; }; _local7++; }; if ((((_local2 >= _ccA[_local5].caBegin)) && ((_local2 < _local6)))){ _captPtr = _local5; if ((((_ccA[_local5].caEnd == -99)) || ((_local2 <= _ccA[_local5].caEnd)))){ setbgClrCapt(_local5); _local4 = _ccA[_local5].caTxt; } else { setbgClrCapt(0); }; break; }; }; _local5++; }; if (_local3 != _local4){ captTextArea.htmlText = _local4; if (((Accessibility.active) && (captTextArea.visible))){ Accessibility.updateProperties(); }; }; }; } public function checkFileLoad():String{ return (_captLoad); } private function dispCapt(_arg1:Number):void{ var _local2:String; var _local3:String; var _local4:Boolean; var _local5:int; var _local6:Number; var _local7:Number; var _local8:XML; var _local9:Number; _local2 = captTextArea.htmlText; if ((((_arg1 < (_prevTime - 1))) || ((_arg1 >= (_prevTime + 1))))){ clrCaptFlgs(); }; _local3 = ""; _local4 = true; _local5 = 0; while (_local5 < _ccA.length) { if (_ccA[_local5].caBegin != -99){ _local6 = -99; _local7 = (_local5 + 1); while (_local7 < _ccA.length) { if (_ccA[_local7].caBegin != -99){ _local6 = _ccA[_local7].caBegin; break; }; _local7++; }; if ((((_arg1 >= _ccA[_local5].caBegin)) && ((_arg1 < _local6)))){ _captPtr = _local5; if ((((_currDisplayMode == "roll-up")) && (!((_local5 == 0))))){ _local8 = new XML(); _local8.ignoreWhitespace = false; _local8 = XML(_ccA[_local5].caTxt); if ((((((_local8.*[0] == " ")) || ((_local8.*[0] == "")))) || ((_local8.*[0] == null)))){ _local4 = false; if (_ccA[_local5].caFlg != "done"){ crRollArr(); _ccA[_local5].caFlg = "done"; }; }; if (_ccA[_local5].caFlg != "done"){ setbgClrCapt(_local5); _local9 = 0; while (_local9 < (_rollArr.length - 1)) { _rollArr[_local9] = _rollArr[(_local9 + 1)]; _local3 = (_local3 + _rollArr[_local9]); _local9++; }; _rollArr[(_rollArr.length - 1)] = _ccA[_local5].caTxt; _local3 = (_local3 + _rollArr[(_rollArr.length - 1)]); _ccA[_local5].caFlg = "done"; } else { _local3 = captTextArea.htmlText; }; } else { if ((((_ccA[_local5].caEnd == -99)) || ((_arg1 <= _ccA[_local5].caEnd)))){ setbgClrCapt(_local5); _local3 = _ccA[_local5].caTxt; } else { setbgClrCapt(0); }; }; break; }; }; _local5++; }; if (_local2 != _local3){ captTextArea.htmlText = _local3; if (((Accessibility.active) && (captTextArea.visible))){ Accessibility.updateProperties(); }; }; captTextArea.visible = _local4; captBackground.visible = _local4; _prevTime = _arg1; } public function switchDispMode(_arg1:String, _arg2:Number=-99):void{ if (_arg1 == "roll-up"){ captDispMode = "roll-up"; if (_arg2 != -99){ captDispLns = _arg2; }; if (!_displayAssigned){ _currDisplayMode = captDispMode; _caStyle[0].afont = "left"; procStyles(); _rollArr = []; crRollArr(); clrCaptFlgs(); }; } else { captDispMode = "pop-on"; if (!_displayAssigned){ _currDisplayMode = captDispMode; _caStyle[0].afont = captAlign; procStyles(); }; }; } private function getSndCapt(_arg1:TimerEvent):void{ _timeSync = (_ccObject.position / 1000); dispCapt(_timeSync); } private function initCompCapt():void{ clearTimers(); setCaptDispTimer("getCompCapt"); } private function clrArrays():void{ _ccA = []; _srIndxArr = []; _caStyle = []; _rollArr = []; _langArr = []; } public function startCaptions(_arg1:String="none", _arg2:String="none", _arg3:String="none", _arg4:String="none"):void{ if (_arg1 != "none"){ captSrcType = _arg1; }; if (_arg2 != "none"){ captSource = _arg2; }; if (_arg3 != "none"){ captLanguage = _arg3; }; if (_arg4 != "none"){ if ((((_arg4 == "true")) || (_arg4))){ captOvStyl = true; }; if ((((_arg4 == "false")) || (!(_arg4)))){ captOvStyl = false; }; }; rstCaptSettings(); draw(); defStyle(); captTextArea.htmlText = ""; startAvailCheck(); } public function get CCforFlashVersion():String{ return (_CCforFlashVersion); } public function set captDispLns(_arg1:Number):void{ _cDispLns = _arg1; _inspChk[6] = true; } public function setbgOpacity(_arg1:Number):void{ bgAlpha = _arg1; startCaptions(); } private function procStyles():void{ var _local1:String; var _local2:Number; var _local3:String; var _local4:Number; _local1 = ""; _local2 = 0; _local3 = ""; _local4 = 0; while (_local4 < _caStyle.length) { _local1 = (_local1 + (_caStyle[_local4].id + "{")); if (_caStyle[_local4].wfont != ""){ _local1 = (_local1 + (("font-weight:" + _caStyle[_local4].wfont) + ";")); }; if (_caStyle[_local4].stfont != ""){ _local1 = (_local1 + (("font-style:" + _caStyle[_local4].stfont) + ";")); }; if (_caStyle[_local4].dfont != ""){ _local1 = (_local1 + (("text-decoration:" + _caStyle[_local4].dfont) + ";")); }; if (_caStyle[_local4].ffont != ""){ _local1 = (_local1 + (("font-family:" + _caStyle[_local4].ffont) + ";")); }; if (_caStyle[_local4].szfont != -99){ _local1 = (_local1 + (("font-size:" + _caStyle[_local4].szfont) + ";")); }; if (_caStyle[_local4].cfont != ""){ _local1 = (_local1 + (("color:" + _caStyle[_local4].cfont) + ";")); }; if (_caStyle[_local4].afont != ""){ _local1 = (_local1 + (("text-align:" + _caStyle[_local4].afont) + ";")); }; _local2 = (_local1.length - 1); _local3 = _local1.slice(_local2); if (_local3 == "{"){ _local1 = (_local1 + "} "); } else { _local1 = (_local1.substr(0, (_local1.length - 1)) + "} "); }; _local4++; }; _setclrtr.color = _caStyle[0].bgclr; captBackground.transform.colorTransform = _setclrtr; captBackground.alpha = _caStyle[0].opval; cssStyles.parseCSS(_local1); captTextArea.styleSheet = cssStyles; } public function get currentLanguage():String{ return (captLanguage); } public function set captSrcType(_arg1:String):void{ _cSrcType = _arg1; if ((((_cSrcType == "embedded")) && (!((captObjType == "Netstream Video Object"))))){ trace("CCforFlash Status: Embedded captions can only be viewed with the Netstream Video Object.\n"); }; _inspChk[3] = true; } public function get captSrcType():String{ return (_cSrcType); } } }//package com.ncam
Section 4
//ColorToHex (com.ncam.ColorToHex) package com.ncam { public class ColorToHex { var alphaVal:Number; var hexVal:String; private var _clrList:HTMLColors; private var _initclr:String; public function ColorToHex(_arg1:String){ _clrList = new HTMLColors(); hexVal = ""; alphaVal = 0; _initclr = _arg1; convClrs(); } private function testHex(_arg1:String):String{ var _local2:String; var _local3:Number; var _local4:Number; _local4 = 0; while (_local4 < _arg1.length) { _local2 = _arg1.charAt(_local4); _local3 = parseInt(_local2, 16); if (isNaN(_local3)){ trace((((("CCforFlash Status: Color value at position " + _local4) + " is out of range: ") + _local2) + "\n")); return ("INVALID"); }; _local4++; }; return (_arg1); } private function convAlpha(_arg1:String):Number{ var _local2:*; _arg1 = testHex(_arg1); if (_arg1 == "INVALID"){ hexVal = "INVALID"; return (100); }; _local2 = parseInt(_arg1, 16); _local2 = Math.round(((_local2 / 0x0100) * 100)); return (_local2); } private function convHex(_arg1:Array):String{ var _local2:String; var _local3:String; var _local4:Number; var _local5:Number; _local2 = ""; _local3 = ""; _local5 = 0; while (_local5 < _arg1.length) { _local4 = Number(_arg1[_local5]); if (_local4 == 0x0100){ _local4 = 0xFF; }; if ((((_local4 >= 0x0100)) || ((_local4 < 0)))){ return ("INVALID"); }; if ((((_local4 <= 15)) && ((_local4 > 0)))){ _local2 = ("0" + _local4.toString(16)); } else { if (_arg1[_local5] == 0){ _local2 = "00"; } else { _local2 = _local4.toString(16); }; }; _local3 = (_local3 + _local2); _local5++; }; return (_local3); } private function convClrs():void{ var _local1:String; var _local2:String; var _local3:String; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:String; var _local8:Array; var _local9:String; var _local10:String; _local1 = _initclr.toLowerCase(); _local2 = _local1.substr(0, 3); if (_local2.charAt(0) == "#"){ _local3 = "hex"; } else { if (_local2 == "rgb"){ _local3 = "rgb"; } else { _local3 = "name"; }; }; switch (_local3){ case "hex": _local1 = _local1.substr(1); if (_local1.length == 6){ hexVal = testHex(_initclr.substr(1)); alphaVal = 100; }; if (_local1.length == 8){ hexVal = testHex(_initclr.substr(1, 6)); alphaVal = convAlpha(_initclr.substr(7, 2)); }; if (((!((_local1.length == 6))) && (!((_local1.length == 8))))){ hexVal = "INVALID"; }; if (hexVal != "INVALID"){ hexVal = ("#" + hexVal); }; break; case "rgb": _local4 = 0; _local5 = _local1.indexOf("("); _local6 = _local1.indexOf(")"); if ((((_local5 == -1)) || ((_local6 == -1)))){ hexVal = "INVALID"; break; }; _local7 = _local1.substring((_local5 + 1), _local6); _local8 = _local7.split(","); if ((((_local8.length < 3)) || ((_local8.length > 4)))){ hexVal = "INVALID"; break; }; _local9 = convHex(_local8); if (_local9 == "INVALID"){ hexVal = _local9; }; if (_local9.length == 6){ hexVal = _local9; alphaVal = 100; }; if (_local9.length > 6){ hexVal = _local9.substr(0, 6); alphaVal = Math.round(((_local8[3] / 0x0100) * 100)); }; if (hexVal != "INVALID"){ hexVal = ("#" + hexVal); }; break; case "name": _local10 = _clrList.getColorValue(_initclr); if (_local10 == "NONE"){ hexVal = "INVALID"; } else { hexVal = _local10; alphaVal = 100; }; break; }; } } }//package com.ncam
Section 5
//DFXPTransform (com.ncam.DFXPTransform) package com.ncam { public class DFXPTransform { private var _cxmlDoc:XML; private var defns:Namespace; private var _tc:TimecodeConversion; var _dfxpccLang:Array; private var xnbody:XML; var _dfxpccSrch:Array; private var xndisp:XML; private var xlpar:XMLList; private var _authOV:Boolean; private var _ptclass:Array; private var xlstyle:XMLList; var _dfxpccData:Array; private var _defLang:String; private var xnhead:XML; var _dfxpStyle:Array; private var xndiv:XML; var _displayType:String;// = "" var _convStatus:Boolean;// = true private var ttm:Namespace; private var tts:Namespace; private var _stclass:Array; private var xnmeta:XML; private var xnstyling:XML; public function DFXPTransform(_arg1:String, _arg2:String, _arg3:Boolean, _arg4:Object){ _convStatus = true; _displayType = ""; super(); _tc = new TimecodeConversion(); _dfxpStyle = new Array(); _dfxpStyle.push(_arg4); _authOV = _arg3; _defLang = _arg2; _dfxpccData = [{caBegin:0, caEnd:0, caTxt:"<p> </p>", caBg:_dfxpStyle[0].bgclr, caOp:_dfxpStyle[0].opval, caFlg:""}]; _dfxpccSrch = [""]; _ptclass = new Array(); _stclass = new Array(); _dfxpccLang = new Array(); _dfxpccLang[0] = "default"; _cxmlDoc = new XML(_arg1); procXML(); } private function chkAtt(_arg1:XML):Boolean{ var _local2:String; var _local3:String; var _local4:String; var _local5:String; var _local6:String; var _local7:String; var _local8:String; var _local9:String; _local2 = _arg1.@tts::fontWeight; if (_local2 != ""){ return (true); }; _local3 = _arg1.@tts::fontStyle; if (_local3 != ""){ return (true); }; _local4 = _arg1.@tts::textDecoration; if (_local4 != ""){ return (true); }; _local5 = _arg1.@tts::fontFamily; if (_local5 != ""){ return (true); }; _local6 = _arg1.@tts::fontSize; if (_local6 != ""){ return (true); }; _local7 = _arg1.@tts::color; if (_local7 != ""){ return (true); }; _local8 = _arg1.@tts::textAlign; if (_local8 != ""){ return (true); }; _local9 = _arg1.@tts::backgroundColor; if (_local9 != ""){ return (true); }; return (false); } private function getDivContent(_arg1:String):void{ var _local2:int; var _local3:XML; xndiv = xnbody.div[0]; _local2 = 0; for each (_local3 in xnbody.elements()) { if (_local3.name().localName == "div"){ if (_local3.@lang != null){ _dfxpccLang[_local2] = _local3.@lang; _local2++; }; if (_local3.@lang == _arg1){ xndiv = _local3; }; }; }; if (xndiv == null){ _convStatus = false; return; }; if (!_authOV){ getAtt(0, xndiv); _dfxpccData[0].caBg = _dfxpStyle[0].bgclr; _dfxpccData[0].caOp = _dfxpStyle[0].opval; }; xlpar = xndiv.child("p"); getInlineStyles(); getCapt(); } private function nullChk(_arg1:Number, _arg2:String, _arg3:String, _arg4:String, _arg5:String, _arg6:Number, _arg7:String, _arg8:String, _arg9:String, _arg10:Number):void{ if (_arg2 != ""){ _dfxpStyle[_arg1].wfont = _arg2; }; if (_arg3 != ""){ _dfxpStyle[_arg1].stfont = _arg3; }; if (_arg4 != ""){ _dfxpStyle[_arg1].dfont = _arg4; }; if (_arg5 != ""){ _dfxpStyle[_arg1].ffont = _arg5; }; if (_arg6 != -99){ _dfxpStyle[_arg1].szfont = _arg6; }; if (_arg7 != ""){ _dfxpStyle[_arg1].cfont = _arg7; }; if (_arg8 != ""){ _dfxpStyle[_arg1].afont = _arg8; }; if (_arg9 != ""){ _dfxpStyle[_arg1].bgclr = _arg9; }; if (_arg10 != -99){ _dfxpStyle[_arg1].opval = _arg10; }; } private function getHeaderStyles():void{ var _local1:Number; var _local2:String; var _local3:Number; _local3 = 0; while (_local3 < xlstyle.length()) { _local2 = ("." + xlstyle[_local3].@id); _dfxpStyle.push({id:_local2, wfont:"", stfont:"", dfont:"", ffont:"", szfont:-99, cfont:"", afont:"", bgclr:"", opval:-99}); _local1 = (_dfxpStyle.length - 1); getAtt(_local1, xlstyle[_local3]); _local3++; }; } private function undefChk(_arg1:Number, _arg2:String, _arg3:String, _arg4:String, _arg5:String, _arg6:String, _arg7:String, _arg8:String, _arg9:String):void{ var _local10:ColorToHex; var _local11:ColorToHex; var _local12:String; if (_arg2 != ""){ _dfxpStyle[_arg1].wfont = _arg2; }; if (_arg3 != ""){ _dfxpStyle[_arg1].stfont = _arg3; }; if (_arg4 != ""){ _dfxpStyle[_arg1].dfont = _arg4; }; if (_arg5 != ""){ _dfxpStyle[_arg1].ffont = _arg5; }; if (_arg6 != ""){ _dfxpStyle[_arg1].szfont = parseFloat(_arg6); }; if (_arg7 != ""){ _local10 = new ColorToHex(_arg7); if (_local10.hexVal != "INVALID"){ _dfxpStyle[_arg1].cfont = _local10.hexVal; } else { _dfxpStyle[_arg1].cfont = "#FFFFFF"; }; }; if (_arg8 != ""){ _dfxpStyle[_arg1].afont = _arg8; }; if (_arg9 != ""){ if (_arg9 == "transparent"){ _dfxpStyle[_arg1].opval = 0; } else { _local11 = new ColorToHex(_arg9); _local12 = _local11.hexVal; if (_local12 != "INVALID"){ _dfxpStyle[_arg1].bgclr = uint(("0x" + _local12.slice(1))); _dfxpStyle[_arg1].opval = (_local11.alphaVal / 100); } else { _dfxpStyle[_arg1].bgclr = uint("0x000000"); _dfxpStyle[_arg1].opval = 1; }; }; }; } private function removeXMLReturns(_arg1:String):String{ var _local2:Number; var _local3:String; var _local4:String; var _local5:*; _local3 = _arg1; _local2 = -1; _local4 = ""; while ((((((_local3.charCodeAt(1) == 10)) || ((_local3.charCodeAt(1) == 13)))) || ((_local3.charAt(1) == " ")))) { _local4 = _local3; _local3 = (">" + _local4.slice(2)); }; _local2 = -1; _local4 = ""; _local2 = _local3.indexOf("</p>"); while ((((((_local3.charCodeAt((_local2 - 1)) == 10)) || ((_local3.charCodeAt((_local2 - 1)) == 13)))) || ((_local3.charAt((_local2 - 1)) == " ")))) { _local4 = _local3; _local3 = (_local4.substring(0, (_local2 - 1)) + "</p>"); _local2 = _local3.indexOf("</p>"); }; _local2 = -1; _local4 = ""; _local2 = _local3.indexOf("<br/>", 0); while (_local2 != -1) { while ((((((_local3.charCodeAt((_local2 - 1)) == 10)) || ((_local3.charCodeAt((_local2 - 1)) == 13)))) || ((_local3.charAt((_local2 - 1)) == " ")))) { _local4 = _local3; _local3 = (_local4.substring(0, (_local2 - 1)) + _local4.slice(_local2)); _local2--; }; while ((((((_local3.charCodeAt((_local2 + 5)) == 10)) || ((_local3.charCodeAt((_local2 + 5)) == 13)))) || ((_local3.charAt((_local2 + 5)) == " ")))) { _local4 = _local3; _local3 = (_local4.substring(0, (_local2 + 5)) + _local4.slice((_local2 + 6))); }; _local2 = _local3.indexOf("<br/>", (_local2 + 1)); }; _local2 = -1; _local4 = ""; _local2 = _local3.indexOf(String.fromCharCode(10)); while (_local2 != -1) { _local4 = _local3; _local3 = ((_local4.substring(0, _local2) + " ") + _local4.slice((_local2 + 1))); _local2 = _local3.indexOf(String.fromCharCode(10)); }; _local2 = -1; _local4 = ""; _local2 = _local3.indexOf(String.fromCharCode(13)); while (_local2 != -1) { _local4 = _local3; _local3 = ((_local4.substring(0, _local2) + " ") + _local4.slice((_local2 + 1))); _local2 = _local3.indexOf(String.fromCharCode(13)); }; _local5 = Number; _local2 = -1; _local4 = ""; _local2 = _local3.indexOf(" "); while (_local2 != -1) { _local5 = (_local2 + 3); _local4 = _local3.slice(0, _local2); _local4 = (_local4 + (" " + _local3.slice(_local5))); _local3 = _local4; _local2 = _local3.indexOf(" "); }; _local2 = -1; _local4 = ""; _local2 = _local3.indexOf(" "); while (_local2 != -1) { _local5 = (_local2 + 2); _local4 = _local3.slice(0, _local2); _local4 = (_local4 + (" " + _local3.slice(_local5))); _local3 = _local4; _local2 = _local3.indexOf(" "); }; if (_local3 == "></p>"){ _local3 = "> </p>"; }; return (_local3); } private function getInlineStyles():void{ var _local1:XML; var _local2:String; var _local3:Number; var _local4:String; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Boolean; var _local10:Boolean; var _local11:Number; var _local12:XMLList; var _local13:Number; var _local14:Number; var _local15:XML; var _local16:String; var _local17:String; var _local18:Boolean; var _local19:Boolean; var _local20:Number; var _local21:String; var _local22:String; _local5 = (xlpar.length() + 1); _local6 = 0; while (_local6 < _local5) { _ptclass[_local6] = "none"; _local6++; }; _local7 = 0; while (_local7 < xlpar.length()) { _dfxpccData.push({caBegin:0, caEnd:0, caTxt:" ", caBg:_dfxpccData[0].caBg, caOp:_dfxpccData[0].caOp, caFlg:""}); _local1 = xlpar[_local7]; _local9 = false; _local10 = false; _local2 = _local1.@style; if (_local2 != ""){ _local9 = true; }; _local10 = chkAtt(_local1); if (((_local10) || (_local9))){ _local11 = (_local7 + 1); _ptclass[(_local7 + 1)] = ("par_" + _local11); _local4 = (".par_" + _local11); _dfxpStyle.push({id:_local4, wfont:"", stfont:"", dfont:"", ffont:"", szfont:-99, cfont:"", afont:"", bgclr:_dfxpStyle[0].bgclr, opval:_dfxpStyle[0].opval}); _local3 = (_dfxpStyle.length - 1); getAtt(_local3, _local1); _dfxpccData[_local11].caBg = _dfxpStyle[_local3].bgclr; _dfxpccData[_local11].caOp = _dfxpStyle[_local3].opval; }; _local7++; }; _stclass.push({spLoc:"", spClass:""}); _local8 = 0; while (_local8 < xlpar.length()) { _local12 = xlpar[_local8].child("span"); _local13 = 0; _local14 = 0; while (_local14 < _local12.length()) { _local15 = _local12[_local14]; _local18 = false; _local19 = false; if (_local15 != ""){ _local13 = (_local13 + 1); _local20 = (_local8 + 1); _local21 = ((_local20 + ".") + _local13); _local17 = _local15.@style; if (_local17 != ""){ _local18 = true; }; _local19 = chkAtt(_local15); if (((_local19) || (_local18))){ _local22 = ((("span" + _local20) + "_") + _local13); _stclass.push({spLoc:_local21, spClass:_local22}); _local16 = ("." + _local22); _stclass.push({spLoc:_local21, spClass:_local17}); _dfxpStyle.push({id:_local16, wfont:"", stfont:"", dfont:"", ffont:"", szfont:-99, cfont:"", afont:"", bgclr:_dfxpStyle[0].bgclr, opval:_dfxpStyle[0].opval}); _local3 = (_dfxpStyle.length - 1); getAtt(_local3, _local15); }; }; _local14++; }; _local8++; }; } private function remTags(_arg1:Number, _arg2:String):String{ var _local3:String; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:String; var _local9:String; var _local10:String; var _local11:String; var _local12:Number; var _local13:String; var _local14:Number; var _local15:Number; _local3 = ""; _local7 = 0; _arg2 = removeXMLReturns(_arg2); if (_ptclass[_arg1] != "none"){ _local3 = ((("<p class='" + _ptclass[_arg1]) + "'") + _arg2); } else { _local3 = ("<p" + _arg2); }; _local5 = _local3.indexOf("<span"); while (_local5 != -1) { _local6 = _local3.indexOf(">", (_local5 + 1)); _local11 = _local3.charAt((_local6 - 1)); if (_local11 == "/"){ _local8 = _local3.slice(0, _local5); _local8 = (_local8 + " "); _local8 = (_local8 + _local3.slice((_local6 + 1))); } else { _local7 = (_local7 + 1); _local8 = _local3.slice(0, _local5); _local8 = (_local8 + "<temp>"); _local8 = (_local8 + _local3.slice((_local6 + 1))); }; _local3 = _local8; _local5 = _local3.indexOf("<span"); }; _local14 = 1; while (_local14 <= _local7) { _local9 = ((_arg1 + ".") + _local14); _local15 = 0; while (_local15 < _stclass.length) { if (_stclass[_local15].spLoc == _local9){ _local10 = (("<span class='" + _stclass[_local15].spClass) + "'>"); break; }; _local15++; }; _local5 = _local3.indexOf("<temp"); _local6 = _local3.indexOf(">", (_local5 + 1)); _local8 = _local3.slice(0, _local5); _local8 = (_local8 + _local10); _local8 = (_local8 + _local3.slice((_local6 + 1))); _local3 = _local8; _local14++; }; _arg2 = _arg2.toLowerCase(); _local13 = _arg2; _local4 = _arg2.indexOf(">"); _local12 = (_arg2.length - 4); if (_local4 != -1){ _local13 = _arg2.slice((_local4 + 1), _local12); _arg2 = _local13; }; _local4 = _arg2.indexOf("<span"); while (_local4 != -1) { _local12 = _arg2.indexOf(">", (_local4 + 1)); _local11 = _arg2.charAt((_local12 - 1)); if (_local11 == "/"){ _local13 = _arg2.slice(0, _local4); _local13 = (_local13 + " "); _local13 = (_local13 + _arg2.slice((_local12 + 1))); } else { _local13 = _arg2.slice(0, _local4); _local13 = (_local13 + _arg2.slice((_local12 + 1))); }; _arg2 = _local13; _local4 = _arg2.indexOf("<span"); }; _local4 = _arg2.indexOf("</span>"); while (_local4 != -1) { _local12 = (_local4 + 7); _local13 = _arg2.slice(0, _local4); _local13 = (_local13 + _arg2.slice(_local12)); _arg2 = _local13; _local4 = _arg2.indexOf("</span>"); }; _local4 = _arg2.indexOf("<br"); while (_local4 != -1) { _local12 = _arg2.indexOf(">", (_local4 + 1)); _local13 = _arg2.slice(0, _local4); _local13 = ((_local13 + " ") + _arg2.slice((_local12 + 1))); _arg2 = _local13; _local4 = _arg2.indexOf("<br"); }; _local4 = _arg2.indexOf(" "); while (_local4 != -1) { _local12 = (_local4 + 3); _local13 = _arg2.slice(0, _local4); _local13 = ((_local13 + " ") + _arg2.slice(_local12)); _arg2 = _local13; _local4 = _arg2.indexOf(" "); }; _local4 = _arg2.indexOf(" "); while (_local4 != -1) { _local12 = (_local4 + 2); _local13 = _arg2.slice(0, _local4); _local13 = ((_local13 + " ") + _arg2.slice(_local12)); _arg2 = _local13; _local4 = _arg2.indexOf(" "); }; _dfxpccSrch[_arg1] = _arg2; return (_local3); } private function getCapt():void{ var _local1:String; var _local2:Number; var _local3:Number; var _local4:String; var _local5:XML; var _local6:Number; var _local7:Number; _local6 = 0; while (_local6 < xlpar.length()) { _local3 = (_local6 + 1); _local5 = xlpar[_local6]; _local1 = _local5.toXMLString(); _local2 = _local1.indexOf(">"); _local4 = _local1.substr(_local2); if (_local4 == ">"){ _local4 = "> </p>"; }; _dfxpccData[_local3].caTxt = remTags(_local3, _local4); _local7 = _tc.convertToSeconds(_local5.@dur); _dfxpccData[_local3].caBegin = _tc.convertToSeconds(_local5.@begin); _dfxpccData[_local3].caEnd = _tc.convertToSeconds(_local5.@end); if (_dfxpccData[_local3].caBegin == 0){ _dfxpccData[_local3].caBegin = 0.25; }; if ((((_dfxpccData[_local3].caEnd == -99)) && ((_local7 > 0)))){ _dfxpccData[_local3].caEnd = (_dfxpccData[_local3].caBegin + _local7); }; _local6++; }; _dfxpccData.push({caBegin:0, caEnd:0, caTxt:"<p> </p>", caBg:_dfxpccData[0].caBg, caOp:_dfxpccData[0].caOp, caFlg:""}); _dfxpccData[(_dfxpccData.length - 1)].caBegin = 86399; _dfxpccData[(_dfxpccData.length - 1)].caEnd = (_dfxpccData[(_dfxpccData.length - 1)].caBegin + 2); } private function procXML():void{ var _local1:uint; var _local2:XML; var _local3:String; var _local4:XML; var _local5:String; _local1 = 0; while (_local1 < _cxmlDoc.namespaceDeclarations().length) { _local3 = _cxmlDoc.namespaceDeclarations()[_local1].prefix; switch (_local3){ case "": defns = new Namespace(_cxmlDoc.namespaceDeclarations()[_local1].uri); break; case "tts": tts = new Namespace(_cxmlDoc.namespaceDeclarations()[_local1].uri); break; case "ttm": ttm = new Namespace(_cxmlDoc.namespaceDeclarations()[_local1].uri); break; }; if (_local3 == ""){ }; _local1++; }; for each (_local2 in _cxmlDoc.elements()) { if (_local2.name().localName == "head"){ xnhead = _local2; }; if (_local2.name().localName == "body"){ xnbody = _local2; }; }; if (xnbody == null){ _convStatus = false; return; }; if (xnhead != null){ for each (_local4 in xnhead.elements()) { if (_local4.name().localName == "styling"){ xnstyling = _local4; }; if (_local4.name().localName == "metadata"){ xnmeta = _local4; }; }; if (xnmeta != null){ _local5 = xnmeta.ttm::displayMethod; if (_local5 != null){ switch (_local5){ case "rollup": _displayType = "roll-up"; _dfxpStyle[0].afont = "left"; break; case "popon": _displayType = "pop-on"; break; }; }; }; if (xnstyling != null){ xlstyle = xnstyling.child("style"); getHeaderStyles(); }; }; if (!_authOV){ getAtt(0, xnbody); _dfxpccData[0].caBg = _dfxpStyle[0].bgclr; _dfxpccData[0].caOp = _dfxpStyle[0].opval; }; getDivContent(_defLang); } private function getAtt(_arg1:Number, _arg2:XML):void{ var _local3:Array; var _local4:String; var _local5:String; var _local6:String; var _local7:String; var _local8:String; var _local9:String; var _local10:String; var _local11:String; var _local12:String; var _local13:Number; var _local14:Number; _local3 = new Array(); _local4 = _arg2.@style; if (_local4 != ""){ _local3 = _local4.split(" "); _local13 = 0; while (_local13 < _local3.length) { _local14 = 0; while (_local14 < _dfxpStyle.length) { if (_dfxpStyle[_local14].id == ("." + _local3[_local13])){ nullChk(_arg1, _dfxpStyle[_local14].wfont, _dfxpStyle[_local14].stfont, _dfxpStyle[_local14].dfont, _dfxpStyle[_local14].ffont, _dfxpStyle[_local14].szfont, _dfxpStyle[_local14].cfont, _dfxpStyle[_local14].afont, _dfxpStyle[_local14].bgclr, _dfxpStyle[_local14].opval); break; }; _local14++; }; _local13++; }; }; _local5 = _arg2.@tts::fontWeight; _local6 = _arg2.@tts::fontStyle; _local7 = _arg2.@tts::textDecoration; _local8 = _arg2.@tts::fontFamily; _local9 = _arg2.@tts::fontSize; _local10 = _arg2.@tts::color; _local11 = _arg2.@tts::textAlign; _local12 = _arg2.@tts::backgroundColor; undefChk(_arg1, _local5, _local6, _local7, _local8, _local9, _local10, _local11, _local12); } } }//package com.ncam
Section 6
//HTMLColors (com.ncam.HTMLColors) package com.ncam { public class HTMLColors { private var clist:Array; public function HTMLColors(){ clist = [{Name:"AliceBlue", Value:"#F0F8FF"}, {Name:"AntiqueWhite", Value:"#FAEBD7"}, {Name:"Aqua", Value:"#00FFFF"}, {Name:"Aquamarine", Value:"#7FFFD4"}, {Name:"Azure", Value:"#F0FFFF"}, {Name:"Beige", Value:"#F5F5DC"}, {Name:"Bisque", Value:"#FFE4C4"}, {Name:"Black", Value:"#000000"}, {Name:"BlanchedAlmond", Value:"#FFEBCD"}, {Name:"Blue", Value:"#0000FF"}, {Name:"BlueViolet", Value:"#8A2BE2"}, {Name:"Brown", Value:"#A52A2A"}, {Name:"BurlyWood", Value:"#DEB887"}, {Name:"CadetBlue", Value:"#5F9EA0"}, {Name:"Chartreuse", Value:"#7FFF00"}, {Name:"Chocolate", Value:"#D2691E"}, {Name:"Coral", Value:"#FF7F50"}, {Name:"CornflowerBlue", Value:"#6495ED"}, {Name:"Cornsilk", Value:"#FFF8DC"}, {Name:"Crimson", Value:"#DC143C"}, {Name:"Cyan", Value:"#00FFFF"}, {Name:"DarkBlue", Value:"#00008B"}, {Name:"DarkCyan", Value:"#008B8B"}, {Name:"DarkGoldenRod", Value:"#B8860B"}, {Name:"DarkGray", Value:"#A9A9A9"}, {Name:"DarkGrey", Value:"#A9A9A9"}, {Name:"DarkGreen", Value:"#006400"}, {Name:"DarkKhaki", Value:"#BDB76B"}, {Name:"DarkMagenta", Value:"#8B008B"}, {Name:"DarkOliveGreen", Value:"#556B2F"}, {Name:"Darkorange", Value:"#FF8C00"}, {Name:"DarkOrchid", Value:"#9932CC"}, {Name:"DarkRed", Value:"#8B0000"}, {Name:"DarkSalmon", Value:"#E9967A"}, {Name:"DarkSeaGreen", Value:"#8FBC8F"}, {Name:"DarkSlateBlue", Value:"#483D8B"}, {Name:"DarkSlateGray", Value:"#2F4F4F"}, {Name:"DarkSlateGrey", Value:"#2F4F4F"}, {Name:"DarkTurquoise", Value:"#00CED1"}, {Name:"DarkViolet", Value:"#9400D3"}, {Name:"DeepPink", Value:"#FF1493"}, {Name:"DeepSkyBlue", Value:"#00BFFF"}, {Name:"DimGray", Value:"#696969"}, {Name:"DimGrey", Value:"#696969"}, {Name:"DodgerBlue", Value:"#1E90FF"}, {Name:"FireBrick", Value:"#B22222"}, {Name:"FloralWhite", Value:"#FFFAF0"}, {Name:"ForestGreen", Value:"#228B22"}, {Name:"Fuchsia", Value:"#FF00FF"}, {Name:"Gainsboro", Value:"#DCDCDC"}, {Name:"GhostWhite", Value:"#F8F8FF"}, {Name:"Gold", Value:"#FFD700"}, {Name:"GoldenRod", Value:"#DAA520"}, {Name:"Gray", Value:"#808080"}, {Name:"Grey", Value:"#808080"}, {Name:"Green", Value:"#008000"}, {Name:"GreenYellow", Value:"#ADFF2F"}, {Name:"HoneyDew", Value:"#F0FFF0"}, {Name:"HotPink", Value:"#FF69B4"}, {Name:"IndianRed", Value:"#CD5C5C"}, {Name:"Indigo", Value:"#4B0082"}, {Name:"Ivory", Value:"#FFFFF0"}, {Name:"Khaki", Value:"#F0E68C"}, {Name:"Lavender", Value:"#E6E6FA"}, {Name:"LavenderBlush", Value:"#FFF0F5"}, {Name:"LawnGreen", Value:"#7CFC00"}, {Name:"LemonChiffon", Value:"#FFFACD"}, {Name:"LightBlue", Value:"#ADD8E6"}, {Name:"LightCoral", Value:"#F08080"}, {Name:"LightCyan", Value:"#E0FFFF"}, {Name:"LightGoldenRodYellow", Value:"#FAFAD2"}, {Name:"LightGray", Value:"#D3D3D3"}, {Name:"LightGrey", Value:"#D3D3D3"}, {Name:"LightGreen", Value:"#90EE90"}, {Name:"LightPink", Value:"#FFB6C1"}, {Name:"LightSalmon", Value:"#FFA07A"}, {Name:"LightSeaGreen", Value:"#20B2AA"}, {Name:"LightSkyBlue", Value:"#87CEFA"}, {Name:"LightSlateGray", Value:"#778899"}, {Name:"LightSlateGrey", Value:"#778899"}, {Name:"LightSteelBlue", Value:"#B0C4DE"}, {Name:"LightYellow", Value:"#FFFFE0"}, {Name:"Lime", Value:"#00FF00"}, {Name:"LimeGreen", Value:"#32CD32"}, {Name:"Linen", Value:"#FAF0E6"}, {Name:"Magenta", Value:"#FF00FF"}, {Name:"Maroon", Value:"#800000"}, {Name:"MediumAquaMarine", Value:"#66CDAA"}, {Name:"MediumBlue", Value:"#0000CD"}, {Name:"MediumOrchid", Value:"#BA55D3"}, {Name:"MediumPurple", Value:"#9370D8"}, {Name:"MediumSeaGreen", Value:"#3CB371"}, {Name:"MediumSlateBlue", Value:"#7B68EE"}, {Name:"MediumSpringGreen", Value:"#00FA9A"}, {Name:"MediumTurquoise", Value:"#48D1CC"}, {Name:"MediumVioletRed", Value:"#C71585"}, {Name:"MidnightBlue", Value:"#191970"}, {Name:"MintCream", Value:"#F5FFFA"}, {Name:"MistyRose", Value:"#FFE4E1"}, {Name:"Moccasin", Value:"#FFE4B5"}, {Name:"NavajoWhite", Value:"#FFDEAD"}, {Name:"Navy", Value:"#000080"}, {Name:"OldLace", Value:"#FDF5E6"}, {Name:"Olive", Value:"#808000"}, {Name:"OliveDrab", Value:"#6B8E23"}, {Name:"Orange", Value:"#FFA500"}, {Name:"OrangeRed", Value:"#FF4500"}, {Name:"Orchid", Value:"#DA70D6"}, {Name:"PaleGoldenRod", Value:"#EEE8AA"}, {Name:"PaleGreen", Value:"#98FB98"}, {Name:"PaleTurquoise", Value:"#AFEEEE"}, {Name:"PaleVioletRed", Value:"#D87093"}, {Name:"PapayaWhip", Value:"#FFEFD5"}, {Name:"PeachPuff", Value:"#FFDAB9"}, {Name:"Peru", Value:"#CD853F"}, {Name:"Pink", Value:"#FFC0CB"}, {Name:"Plum", Value:"#DDA0DD"}, {Name:"PowderBlue", Value:"#B0E0E6"}, {Name:"Purple", Value:"#800080"}, {Name:"Red", Value:"#FF0000"}, {Name:"RosyBrown", Value:"#BC8F8F"}, {Name:"RoyalBlue", Value:"#4169E1"}, {Name:"SaddleBrown", Value:"#8B4513"}, {Name:"Salmon", Value:"#FA8072"}, {Name:"SandyBrown", Value:"#F4A460"}, {Name:"SeaGreen", Value:"#2E8B57"}, {Name:"SeaShell", Value:"#FFF5EE"}, {Name:"Sienna", Value:"#A0522D"}, {Name:"Silver", Value:"#C0C0C0"}, {Name:"SkyBlue", Value:"#87CEEB"}, {Name:"SlateBlue", Value:"#6A5ACD"}, {Name:"SlateGray", Value:"#708090"}, {Name:"SlateGrey", Value:"#708090"}, {Name:"Snow", Value:"#FFFAFA"}, {Name:"SpringGreen", Value:"#00FF7F"}, {Name:"SteelBlue", Value:"#4682B4"}, {Name:"Tan", Value:"#D2B48C"}, {Name:"Teal", Value:"#008080"}, {Name:"Thistle", Value:"#D8BFD8"}, {Name:"Tomato", Value:"#FF6347"}, {Name:"Turquoise", Value:"#40E0D0"}, {Name:"Violet", Value:"#EE82EE"}, {Name:"Wheat", Value:"#F5DEB3"}, {Name:"White", Value:"#FFFFFF"}, {Name:"WhiteSmoke", Value:"#F5F5F5"}, {Name:"Yellow", Value:"#FFFF00"}, {Name:"YellowGreen", Value:"#9ACD32"}]; } public function getColorName(_arg1:String):String{ var _local2:Number; _local2 = 0; while (_local2 < clist.length) { if (_arg1.toLowerCase() == clist[_local2].Value.toLowerCase()){ return (clist[_local2].Name); }; _local2++; }; return ("NONE"); } public function getColorValue(_arg1:String):String{ var _local2:Number; _local2 = 0; while (_local2 < clist.length) { if (_arg1.toLowerCase() == clist[_local2].Name.toLowerCase()){ return (clist[_local2].Value); }; _local2++; }; return ("NONE"); } } }//package com.ncam
Section 7
//QTtextTransform (com.ncam.QTtextTransform) package com.ncam { public class QTtextTransform { private var _qtSettings:Array; var _qtccSrch:Array; var _qtccData:Array; private var _tc:TimecodeConversion; var _qtStyle:Array; private var _authOV:Boolean; private var _qtArr:Array; public function QTtextTransform(_arg1:String, _arg2:Boolean, _arg3:Object){ _tc = new TimecodeConversion(); _authOV = _arg2; _qtArr = new Array(); _qtSettings = new Array(); _qtStyle = new Array(); _qtStyle.push(_arg3); _qtccData = [{caBegin:0, caEnd:0, caTxt:" ", caBg:_qtStyle[0].bgclr, caOp:_qtStyle[0].opval, caFlg:""}]; _qtccSrch = [""]; procQTtext(_arg1); } private function extQTtxt(_arg1:String, _arg2:Number):String{ var _local3:Number; var _local4:Number; var _local5:Number; var _local6:String; var _local7:String; var _local8:String; var _local9:String; var _local10:Number; var _local11:Number; _local3 = 0; _local4 = 0; _local5 = 0; _local6 = ""; _local3 = _arg1.indexOf("{"); while (_local3 != -1) { _local4 = _arg1.indexOf("}", (_local3 + 1)); _local6 = _arg1.slice(0, _local3); _local6 = (_local6 + _arg1.slice((_local4 + 1))); _arg1 = _local6; _local3 = _arg1.indexOf("{"); }; _local5 = 0; _local6 = ""; _local5 = _arg1.indexOf((String.fromCharCode(13) + String.fromCharCode(10))); while (_local5 == 0) { _arg1 = _arg1.slice(2); _local5 = _arg1.indexOf((String.fromCharCode(13) + String.fromCharCode(10))); }; _local5 = _arg1.lastIndexOf((String.fromCharCode(13) + String.fromCharCode(10))); while (_local5 != -1) { if (_local5 == (_arg1.length - 2)){ _arg1 = _arg1.substring(0, _local5); } else { _local6 = _arg1.slice(0, _local5); _local6 = (_local6 + "<br/>"); _local6 = (_local6 + _arg1.slice((_local5 + 2))); _arg1 = _local6; }; _local5 = _arg1.lastIndexOf((String.fromCharCode(13) + String.fromCharCode(10))); }; _local5 = 0; _local6 = ""; _local5 = _arg1.indexOf(String.fromCharCode(13)); while (_local5 == 0) { _arg1 = _arg1.slice(1); _local5 = _arg1.indexOf(String.fromCharCode(13)); }; _local5 = _arg1.lastIndexOf(String.fromCharCode(13)); while (_local5 != -1) { if (_local5 == (_arg1.length - 1)){ _arg1 = _arg1.substring(0, _local5); } else { _local6 = _arg1.slice(0, _local5); _local6 = (_local6 + "<br/>"); _local6 = (_local6 + _arg1.slice((_local5 + 1))); _arg1 = _local6; }; _local5 = _arg1.lastIndexOf(String.fromCharCode(13)); }; _local5 = 0; _local6 = ""; _local5 = _arg1.indexOf(String.fromCharCode(10)); while (_local5 == 0) { _arg1 = _arg1.slice(1); _local5 = _arg1.indexOf(String.fromCharCode(10)); }; _local5 = _arg1.lastIndexOf(String.fromCharCode(10)); while (_local5 != -1) { if (_local5 == (_arg1.length - 1)){ _arg1 = _arg1.substring(0, _local5); } else { _local6 = _arg1.slice(0, _local5); _local6 = (_local6 + "<br/>"); _local6 = (_local6 + _arg1.slice((_local5 + 1))); _arg1 = _local6; }; _local5 = _arg1.lastIndexOf(String.fromCharCode(10)); }; _local7 = _arg1.toLowerCase(); _local11 = _local7.indexOf("<br"); while (_local11 != -1) { _local10 = _local7.indexOf(">", (_local11 + 1)); _local8 = _local7.slice(0, _local11); while (_local8.charAt((_local8.length - 1)) == " ") { _local8 = _local8.substr(0, (_local8.length - 1)); }; _local9 = _local7.slice((_local10 + 1)); while (_local9.charAt(0) == " ") { _local9 = _local9.slice(1); }; _local8 = ((_local8 + " ") + _local9); _local7 = _local8; _local11 = _local7.indexOf("<br"); }; _qtccSrch[_arg2] = _local7; return (_arg1); } private function procQTtext(_arg1:String):void{ var _local2:Array; var _local3:String; var _local4:Number; _local2 = new Array(); _local3 = addQTDelm(_arg1); _local2 = _local3.split("[*"); _local4 = 0; while (_local4 < _local2.length) { _local2[_local4] = clTempMark(_local2[_local4]); _local4++; }; _qtArr = _local2; if (_authOV){ parsQTcapt(); } else { parsQTstyl(); }; } private function addQTDelm(_arg1:String):String{ var _local2:Number; var _local3:Number; var _local4:String; var _local5:String; var _local6:Boolean; var _local7:Boolean; var _local8:Boolean; var _local9:Number; var _local10:Number; _local2 = _arg1.indexOf("["); _local3 = 0; while (_local2 != -1) { _local3 = _arg1.indexOf("]", (_local2 + 1)); _local4 = _arg1.substring((_local2 + 1), _local3); _local5 = ""; _local6 = false; _local7 = false; _local8 = false; if (_local4.charAt(0) == "*"){ _local8 = true; _local7 = true; } else { _local9 = 0; while (_local9 < _local4.length) { _local10 = Number(_local4.charAt(_local9)); if (!isNaN(_local10)){ _local6 = true; } else { if (((!((_local4.charAt(_local9) == "."))) && (!((_local4.charAt(_local9) == ":"))))){ _local7 = true; }; }; _local9++; }; }; if (_local8){ _local5 = ((_arg1.substring(0, (_local2 + 1)) + "???") + _arg1.slice((_local2 + 1))); _arg1 = _local5; }; if (((!(_local7)) && (_local6))){ _local5 = ((_arg1.substring(0, (_local2 + 1)) + "*") + _arg1.slice((_local2 + 1))); _arg1 = _local5; }; _local2 = _arg1.indexOf("[", (_local2 + 1)); }; return (_arg1); } private function parsQTstyl():void{ var _local1:Number; var _local2:Number; var _local3:Number; var _local4:String; var _local5:Number; var _local6:String; var _local7:Number; var _local8:String; var _local9:Number; var _local10:String; var _local11:Number; var _local12:String; var _local13:String; var _local14:Number; var _local15:String; var _local16:String; _qtSettings = _qtArr[0].split("}"); if (_qtSettings.length > 1){ _local1 = 1; while (_local1 < _qtSettings.length) { _local2 = _qtSettings[_local1].indexOf("{"); _local3 = _qtSettings[_local1].indexOf(":"); if (_local3 != -1){ _local4 = _qtSettings[_local1].substring((_local2 + 1), _local3); } else { _local4 = _qtSettings[_local1].slice((_local2 + 1)); }; _local4 = _local4.toLowerCase(); switch (_local4){ case "plain": _qtStyle[0].wfont = "normal"; _qtStyle[0].stfont = "normal"; _qtStyle[0].dfont = "none"; break; case "bold": _qtStyle[0].wfont = "bold"; break; case "italic": _qtStyle[0].stfont = "italic"; break; case "underline": _qtStyle[0].dfont = "underline"; break; case "font": _local5 = _qtSettings[_local1].indexOf(":"); _local6 = _qtSettings[_local1].slice((_local5 + 1)); _qtStyle[0].ffont = _local6; break; case "size": _local7 = _qtSettings[_local1].indexOf(":"); _local8 = _qtSettings[_local1].slice((_local7 + 1)); _qtStyle[0].szfont = _local8; break; case "justify": _local9 = _qtSettings[_local1].indexOf(":"); _local10 = _qtSettings[_local1].slice((_local9 + 1)); _local10 = _local10.toLowerCase(); if (_local10 != "default"){ _qtStyle[0].afont = _local10; }; break; case "textcolor": _local11 = _qtSettings[_local1].indexOf(":"); _local12 = _qtSettings[_local1].slice((_local11 + 1)); _local13 = convToHex(_local12); _qtStyle[0].cfont = _local13; break; case "backcolor": _local14 = _qtSettings[_local1].indexOf(":"); _local15 = _qtSettings[_local1].slice((_local14 + 1)); _local16 = convToHex(_local15); _qtStyle[0].bgclr = uint(("0x" + _local16.slice(1))); _qtccData[0].caBg = _qtStyle[0].bgclr; _qtStyle[0].opval = 1; _qtccData[0].caBg = _qtStyle[0].bgclr; _qtccData[0].caOp = _qtStyle[0].opval; break; }; _local1++; }; }; parsQTcapt(); } private function clTempMark(_arg1:String):String{ var _local2:String; var _local3:Number; _local2 = ""; _local3 = _arg1.indexOf("[???*"); while (_local3 != -1) { _local2 = (_arg1.substring(0, (_local3 + 1)) + _arg1.slice((_local3 + 4))); _arg1 = _local2; _local3 = _arg1.indexOf("[???*"); }; return (_arg1); } private function parsQTcapt():void{ var _local1:Number; var _local2:Number; var _local3:Number; _local1 = 1; while (_local1 < _qtArr.length) { _qtccData.push({caBegin:0, caEnd:0, caTxt:"", caBg:"", caOp:1, caFlg:""}); _local3 = _qtArr[_local1].indexOf("]"); _qtccData[_local1].caTxt = (("<p>" + extQTtxt(_qtArr[_local1].slice((_local3 + 1)), _local1)) + "</p>"); _qtccData[_local1].caBegin = _tc.convertToSeconds(_qtArr[_local1].substr(0, _local3)); if (_qtccData[_local1].caBegin == 0){ _qtccData[_local1].caBegin = 0.25; }; _qtccData[_local1].caBg = _qtccData[0].caBg; _qtccData[_local1].caOp = _qtccData[0].caOp; _local1++; }; _local2 = 0; while (_local2 < _qtccData.length) { if (_local2 == (_qtccData.length - 1)){ _qtccData[_local2].caEnd = -99; } else { _qtccData[_local2].caEnd = _qtccData[(_local2 + 1)].caBegin; }; _local2++; }; } private function convToHex(_arg1:String):String{ var _local2:Array; var _local3:String; var _local4:Number; var _local5:ColorToHex; var _local6:Number; _local2 = _arg1.split(","); _local3 = "rgb("; _local4 = 0; while (_local4 < _local2.length) { _local6 = Math.round((_local2[_local4] / 0x0100)); _local3 = (_local3 + (_local6.toString() + ",")); _local4++; }; _local3 = (_local3.substr(0, (_local3.length - 1)) + ")"); _local5 = new ColorToHex(_local3); return (_local5.hexVal); } } }//package com.ncam
Section 8
//TimecodeConversion (com.ncam.TimecodeConversion) package com.ncam { public class TimecodeConversion { var secTime:Number; private function timeconv(_arg1:String):void{ var _local2:String; var _local3:String; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; _local2 = _arg1; _local3 = ""; _local4 = 0; _local5 = 0; _local6 = 0; _local7 = 0; _local8 = 0; _local2 = _local2.toLowerCase(); if ((((_local2 == null)) || ((_local2 == "")))){ secTime = -99; return; }; _local4 = _local2.indexOf("ms"); if (_local4 != -1){ _local3 = _local2.substring(0, _local4); secTime = (parseFloat(_local3) / 1000); return; }; _local4 = _local2.indexOf("s"); if (_local4 != -1){ _local3 = _local2.substring(0, _local4); secTime = parseFloat(_local3); return; }; _local4 = _local2.indexOf("m"); if (_local4 != -1){ _local3 = _local2.substring(0, _local4); secTime = (parseFloat(_local3) * 60); return; }; _local4 = _local2.indexOf("h"); if (_local4 != -1){ _local3 = _local2.substring(0, _local4); secTime = (parseFloat(_local3) * 3600); return; }; _local5 = _local2.lastIndexOf(":"); if (_local5 == -1){ _local3 = _local2; secTime = parseFloat(_local3); return; }; _local3 = _local2.substr((_local5 + 1)); if (_local3 == ""){ _local7 = 0; } else { _local7 = parseFloat(_local3); }; _local8 = _local7; _local6 = _local2.lastIndexOf(":", (_local5 - 1)); if (_local6 == -1){ _local3 = _local2.substring(0, _local5); if (_local3 == ""){ _local7 = 0; } else { _local7 = (parseFloat(_local3) * 60); }; _local8 = (_local8 + _local7); secTime = _local8; return; } else { _local3 = _local2.substring((_local6 + 1), _local5); if (_local3 == ""){ _local7 = 0; } else { _local7 = (parseFloat(_local3) * 60); }; _local8 = (_local8 + _local7); _local8 = Math.round((_local8 * 1000)); _local8 = (_local8 / 1000); _local3 = _local2.substring(0, _local6); if (_local3 == ""){ _local7 = 0; } else { _local7 = (parseFloat(_local3) * 3600); if (isNaN(_local7)){ secTime = -99; return; }; }; _local8 = (_local8 + _local7); }; secTime = _local8; } function convertToSeconds(_arg1:String):Number{ secTime = 0; timeconv(_arg1); return (secTime); } } }//package com.ncam
Section 9
//None (fl.transitions.easing.None) package fl.transitions.easing { public class None { public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((_arg3 * _arg1) / _arg4) + _arg2)); } public static function easeIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((_arg3 * _arg1) / _arg4) + _arg2)); } public static function easeInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((_arg3 * _arg1) / _arg4) + _arg2)); } public static function easeNone(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((_arg3 * _arg1) / _arg4) + _arg2)); } } }//package fl.transitions.easing
Section 10
//Tween (fl.transitions.Tween) package fl.transitions { import flash.events.*; import flash.display.*; import flash.utils.*; public class Tween extends EventDispatcher { private var _position:Number;// = NAN public var prevTime:Number;// = NAN public var prevPos:Number;// = NAN public var isPlaying:Boolean;// = false public var begin:Number;// = NAN private var _fps:Number;// = NAN private var _time:Number;// = NAN public var change:Number;// = NAN private var _finish:Number;// = NAN public var looping:Boolean;// = false private var _intervalID:uint;// = 0 public var func:Function; private var _timer:Timer;// = null private var _startTime:Number;// = NAN public var prop:String;// = "" private var _duration:Number;// = NAN public var obj:Object;// = null public var useSeconds:Boolean;// = false protected static var _mc:MovieClip = new MovieClip(); public function Tween(_arg1:Object, _arg2:String, _arg3:Function, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Boolean=false){ isPlaying = false; obj = null; prop = ""; func = function (_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((_arg3 * _arg1) / _arg4) + _arg2)); }; begin = NaN; change = NaN; useSeconds = false; prevTime = NaN; prevPos = NaN; looping = false; _duration = NaN; _time = NaN; _fps = NaN; _position = NaN; _startTime = NaN; _intervalID = 0; _finish = NaN; _timer = null; super(); if (!arguments.length){ return; }; this.obj = _arg1; this.prop = _arg2; this.begin = _arg4; this.position = _arg4; this.duration = _arg6; this.useSeconds = _arg7; if ((_arg3 is Function)){ this.func = _arg3; }; this.finish = _arg5; this._timer = new Timer(100); this.start(); } public function continueTo(_arg1:Number, _arg2:Number):void{ this.begin = this.position; this.finish = _arg1; if (!isNaN(_arg2)){ this.duration = _arg2; }; this.start(); } public function stop():void{ this.stopEnterFrame(); this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_STOP, this._time, this._position)); } private function fixTime():void{ if (this.useSeconds){ this._startTime = (getTimer() - (this._time * 1000)); }; } public function set FPS(_arg1:Number):void{ var _local2:Boolean; _local2 = this.isPlaying; this.stopEnterFrame(); this._fps = _arg1; if (_local2){ this.startEnterFrame(); }; } public function get finish():Number{ return ((this.begin + this.change)); } public function get duration():Number{ return (this._duration); } protected function startEnterFrame():void{ var _local1:Number; if (isNaN(this._fps)){ _mc.addEventListener(Event.ENTER_FRAME, this.onEnterFrame, false, 0, true); } else { _local1 = (1000 / this._fps); this._timer.delay = _local1; this._timer.addEventListener(TimerEvent.TIMER, this.timerHandler, false, 0, true); this._timer.start(); }; this.isPlaying = true; } public function set time(_arg1:Number):void{ this.prevTime = this._time; if (_arg1 > this.duration){ if (this.looping){ this.rewind((_arg1 - this._duration)); this.update(); this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_LOOP, this._time, this._position)); } else { if (this.useSeconds){ this._time = this._duration; this.update(); }; this.stop(); this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_FINISH, this._time, this._position)); }; } else { if (_arg1 < 0){ this.rewind(); this.update(); } else { this._time = _arg1; this.update(); }; }; } protected function stopEnterFrame():void{ if (isNaN(this._fps)){ _mc.removeEventListener(Event.ENTER_FRAME, this.onEnterFrame); } else { this._timer.stop(); }; this.isPlaying = false; } public function getPosition(_arg1:Number=NaN):Number{ if (isNaN(_arg1)){ _arg1 = this._time; }; return (this.func(_arg1, this.begin, this.change, this._duration)); } public function set finish(_arg1:Number):void{ this.change = (_arg1 - this.begin); } public function set duration(_arg1:Number):void{ this._duration = ((_arg1)<=0) ? Infinity : _arg1; } public function setPosition(_arg1:Number):void{ this.prevPos = this._position; if (this.prop.length){ this.obj[this.prop] = (this._position = _arg1); }; this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_CHANGE, this._time, this._position)); } public function resume():void{ this.fixTime(); this.startEnterFrame(); this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_RESUME, this._time, this._position)); } public function fforward():void{ this.time = this._duration; this.fixTime(); } protected function onEnterFrame(_arg1:Event):void{ this.nextFrame(); } public function get position():Number{ return (this.getPosition(this._time)); } public function yoyo():void{ this.continueTo(this.begin, this.time); } public function nextFrame():void{ if (this.useSeconds){ this.time = ((getTimer() - this._startTime) / 1000); } else { this.time = (this._time + 1); }; } protected function timerHandler(_arg1:TimerEvent):void{ this.nextFrame(); _arg1.updateAfterEvent(); } public function get FPS():Number{ return (this._fps); } public function rewind(_arg1:Number=0):void{ this._time = _arg1; this.fixTime(); this.update(); } public function set position(_arg1:Number):void{ this.setPosition(_arg1); } public function get time():Number{ return (this._time); } private function update():void{ this.setPosition(this.getPosition(this._time)); } public function start():void{ this.rewind(); this.startEnterFrame(); this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_START, this._time, this._position)); } public function prevFrame():void{ if (!this.useSeconds){ this.time = (this._time - 1); }; } } }//package fl.transitions
Section 11
//TweenEvent (fl.transitions.TweenEvent) package fl.transitions { import flash.events.*; public class TweenEvent extends Event { public var time:Number;// = NAN public var position:Number;// = NAN public static const MOTION_START:String = "motionStart"; public static const MOTION_STOP:String = "motionStop"; public static const MOTION_LOOP:String = "motionLoop"; public static const MOTION_CHANGE:String = "motionChange"; public static const MOTION_FINISH:String = "motionFinish"; public static const MOTION_RESUME:String = "motionResume"; public function TweenEvent(_arg1:String, _arg2:Number, _arg3:Number, _arg4:Boolean=false, _arg5:Boolean=false){ time = NaN; position = NaN; super(_arg1, _arg4, _arg5); this.time = _arg2; this.position = _arg3; } override public function clone():Event{ return (new TweenEvent(this.type, this.time, this.position, this.bubbles, this.cancelable)); } } }//package fl.transitions
Section 12
//AutoLayoutEvent (fl.video.AutoLayoutEvent) package fl.video { import flash.events.*; import flash.geom.*; public class AutoLayoutEvent extends LayoutEvent implements IVPEvent { private var _vp:uint; public static const AUTO_LAYOUT:String = "autoLayout"; public function AutoLayoutEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false, _arg4:Rectangle=null, _arg5:Rectangle=null, _arg6:uint=0){ super(_arg1, _arg2, _arg3, _arg4, _arg5); _vp = _arg6; } override public function clone():Event{ return (new AutoLayoutEvent(type, bubbles, cancelable, Rectangle(oldBounds.clone()), Rectangle(oldRegistrationBounds.clone()), vp)); } public function set vp(_arg1:uint):void{ _vp = _arg1; } public function get vp():uint{ return (_vp); } } }//package fl.video
Section 13
//ConnectClient (fl.video.ConnectClient) package fl.video { import flash.net.*; public class ConnectClient { public var connIndex:uint; public var nc:NetConnection; public var pending:Boolean; public var owner:NCManager; public function ConnectClient(_arg1:NCManager, _arg2:NetConnection, _arg3:uint=0){ this.owner = _arg1; this.nc = _arg2; this.connIndex = _arg3; this.pending = false; } public function onBWCheck(... _args):Number{ return (++owner._payload); } public function onBWDone(... _args):void{ var _local2:Number; if (_args.length > 0){ _local2 = _args[0]; }; owner.onConnected(nc, _local2); } public function close():void{ } } }//package fl.video
Section 14
//ControlData (fl.video.ControlData) package fl.video { import flash.display.*; public class ControlData { public var state_mc:Array; public var origWidth:Number; public var handle_mc:Sprite; public var state:uint; public var leftMargin:Number; public var fullness_mc:DisplayObject; public var isDragging:Boolean; public var currentState_mc:DisplayObject; public var percentage:Number; public var owner:DisplayObject; public var origX:Number; public var origY:Number; public var bottomMargin:Number; public var disabled_mc:DisplayObject; public var enabled:Boolean; public var hit_mc:Sprite; public var origHeight:Number; public var index:int; public var mask_mc:DisplayObject; public var avatar:DisplayObject; public var fill_mc:DisplayObject; public var topMargin:Number; public var uiMgr:UIManager; public var progress_mc:DisplayObject; public var rightMargin:Number; public var ctrl:DisplayObject; public var origScaleX:Number; public var origScaleY:Number; public function ControlData(_arg1:UIManager, _arg2:DisplayObject, _arg3:DisplayObject, _arg4:int){ var uiMgr = _arg1; var ctrl = _arg2; var owner = _arg3; var index = _arg4; super(); this.uiMgr = uiMgr; this.index = index; this.ctrl = ctrl; this.owner = owner; try { ctrl["uiMgr"] = uiMgr; } catch(re:ReferenceError) { }; } } }//package fl.video
Section 15
//CuePointManager (fl.video.CuePointManager) package fl.video { public class CuePointManager { flvplayback_internal var _disabledCuePointsByNameOnly:Object; flvplayback_internal var navCuePoints:Array; flvplayback_internal var allCuePoints:Array; flvplayback_internal var _disabledCuePoints:Array; flvplayback_internal var _asCuePointTolerance:Number; flvplayback_internal var _linearSearchTolerance:Number; flvplayback_internal var _asCuePointIndex:int; flvplayback_internal var asCuePoints:Array; flvplayback_internal var flvCuePoints:Array; flvplayback_internal var _metadataLoaded:Boolean; flvplayback_internal var _id:uint; private var _owner:FLVPlayback; flvplayback_internal var eventCuePoints:Array; public static const SHORT_VERSION:String = "2.1"; public static const VERSION:String = "2.1.0.14"; flvplayback_internal static const DEFAULT_LINEAR_SEARCH_TOLERANCE:Number = 50; flvplayback_internal static var cuePointsReplace:Array = ["&quot;", "\"", "&#39;", "'", "&#44;", ",", "&amp;", "&"]; public function CuePointManager(_arg1:FLVPlayback, _arg2:uint){ _owner = _arg1; _id = _arg2; reset(); _asCuePointTolerance = (_owner.getVideoPlayer(_id).playheadUpdateInterval / 2000); _linearSearchTolerance = DEFAULT_LINEAR_SEARCH_TOLERANCE; } flvplayback_internal function getCuePoint(_arg1:Array, _arg2:Boolean, _arg3):Object{ var _local4:Object; var _local5:int; switch (typeof(_arg3)){ case "string": _local4 = {name:_arg3}; break; case "number": _local4 = {time:_arg3}; break; case "object": _local4 = _arg3; break; }; _local5 = getCuePointIndex(_arg1, _arg2, _local4.time, _local4.name); if (_local5 < 0){ return (null); }; _local4 = deepCopyObject(_arg1[_local5]); _local4.array = _arg1; _local4.index = _local5; return (_local4); } public function resetASCuePointIndex(_arg1:Number):void{ var _local2:int; if ((((_arg1 <= 0)) || ((asCuePoints == null)))){ _asCuePointIndex = 0; return; }; _local2 = getCuePointIndex(asCuePoints, true, _arg1); _asCuePointIndex = ((asCuePoints[_local2].time)<_arg1) ? (_local2 + 1) : _local2; } public function set playheadUpdateInterval(_arg1:Number):void{ _asCuePointTolerance = (_arg1 / 2000); } flvplayback_internal function addOrDisable(_arg1:Boolean, _arg2:Object):void{ if (_arg1){ if (_arg2.type == CuePointType.ACTIONSCRIPT){ throw (new VideoError(VideoError.ILLEGAL_CUE_POINT, "Cannot disable actionscript cue points")); }; setFLVCuePointEnabled(false, _arg2); } else { if (_arg2.type == CuePointType.ACTIONSCRIPT){ addASCuePoint(_arg2); }; }; } public function processFLVCuePoints(_arg1:Array):void{ var _local2:int; var _local3:Number; var _local4:Object; var _local5:Array; var _local6:Number; var _local7:int; _metadataLoaded = true; if ((((_arg1 == null)) || ((_arg1.length < 1)))){ flvCuePoints = null; navCuePoints = null; eventCuePoints = null; return; }; flvCuePoints = _arg1; navCuePoints = new Array(); eventCuePoints = new Array(); _local3 = -1; _local5 = _disabledCuePoints; _local6 = 0; _disabledCuePoints = new Array(); _local7 = 0; while ((_local4 = flvCuePoints[_local7++]) != undefined) { if ((((_local3 > 0)) && ((_local3 >= _local4.time)))){ flvCuePoints = null; navCuePoints = null; eventCuePoints = null; _disabledCuePoints = new Array(); _disabledCuePointsByNameOnly = new Object(); throw (new VideoError(VideoError.ILLEGAL_CUE_POINT, ("Unsorted cuePoint found after time: " + _local3))); }; _local3 = _local4.time; while ((((_local6 < _local5.length)) && ((cuePointCompare(_local5[_local6].time, null, _local4) < 0)))) { _local6++; }; if (((!((_disabledCuePointsByNameOnly[_local4.name] == undefined))) || ((((_local6 < _local5.length)) && ((cuePointCompare(_local5[_local6].time, _local5[_local6].name, _local4) == 0)))))){ _disabledCuePoints.push({time:_local4.time, name:_local4.name}); }; if (_local4.type == CuePointType.NAVIGATION){ navCuePoints.push(_local4); } else { if (_local4.type == CuePointType.EVENT){ eventCuePoints.push(_local4); }; }; if ((((allCuePoints == null)) || ((allCuePoints.length < 1)))){ allCuePoints = new Array(); allCuePoints.push(_local4); } else { _local2 = getCuePointIndex(allCuePoints, true, _local4.time); _local2 = ((allCuePoints[_local2].time)>_local4.time) ? 0 : (_local2 + 1); allCuePoints.splice(_local2, 0, _local4); }; }; _disabledCuePointsByNameOnly = new Object(); } public function addASCuePoint(_arg1, _arg2:String=null, _arg3:Object=null):Object{ var _local4:Object; var _local5:Boolean; var _local6:Boolean; var _local7:int; var _local8:Number; var _local9:Object; var _local10:int; if (typeof(_arg1) == "object"){ _local4 = deepCopyObject(_arg1); } else { _local4 = {time:_arg1, name:_arg2, parameters:deepCopyObject(_arg3)}; }; if (_local4.parameters == null){ delete _local4.parameters; }; _local5 = ((isNaN(_local4.time)) || ((_local4.time < 0))); if (_local5){ throw (new VideoError(VideoError.ILLEGAL_CUE_POINT, "time must be number")); }; _local6 = (_local4.name == null); if (_local6){ throw (new VideoError(VideoError.ILLEGAL_CUE_POINT, "name cannot be undefined or null")); }; _local4.type = CuePointType.ACTIONSCRIPT; if ((((asCuePoints == null)) || ((asCuePoints.length < 1)))){ _local7 = 0; asCuePoints = new Array(); asCuePoints.push(_local4); } else { _local7 = getCuePointIndex(asCuePoints, true, _local4.time); _local7 = ((asCuePoints[_local7].time)>_local4.time) ? 0 : (_local7 + 1); asCuePoints.splice(_local7, 0, _local4); }; if ((((allCuePoints == null)) || ((allCuePoints.length < 1)))){ allCuePoints = new Array(); allCuePoints.push(_local4); } else { _local10 = getCuePointIndex(allCuePoints, true, _local4.time); _local10 = ((allCuePoints[_local10].time)>_local4.time) ? 0 : (_local10 + 1); allCuePoints.splice(_local10, 0, _local4); }; _local8 = _owner.getVideoPlayer(_id).playheadTime; if (_local8 > 0){ if (_asCuePointIndex == _local7){ if (_local8 > asCuePoints[_local7].time){ _asCuePointIndex++; }; } else { if (_asCuePointIndex > _local7){ _asCuePointIndex++; }; }; } else { _asCuePointIndex = 0; }; _local9 = deepCopyObject(asCuePoints[_local7]); _local9.array = asCuePoints; _local9.index = _local7; return (_local9); } public function get metadataLoaded():Boolean{ return (_metadataLoaded); } public function reset():void{ _metadataLoaded = false; allCuePoints = null; asCuePoints = null; _disabledCuePoints = new Array(); _disabledCuePointsByNameOnly = new Object(); flvCuePoints = null; navCuePoints = null; eventCuePoints = null; _asCuePointIndex = 0; } public function removeCuePoints(_arg1:Array, _arg2:Object):Number{ var _local3:int; var _local4:Object; var _local5:int; _local5 = 0; _local3 = getCuePointIndex(_arg1, true, -1, _arg2.name); while (_local3 >= 0) { _local4 = _arg1[_local3]; _arg1.splice(_local3, 1); _local3--; _local5++; _local3 = getNextCuePointIndexWithName(_local4.name, _arg1, _local3); }; return (_local5); } flvplayback_internal function unescape(_arg1:String):String{ var _local2:String; var _local3:int; _local2 = _arg1; _local3 = 0; while (_local3 < cuePointsReplace.length) { var _temp1 = _local3; _local3 = (_local3 + 1); var _temp2 = _local3; _local3 = (_local3 + 1); _local2 = _local2.replace(cuePointsReplace[_temp1], cuePointsReplace[_temp2]); }; return (_local2); } public function setFLVCuePointEnabled(_arg1:Boolean, _arg2):int{ var _local3:Object; var _local4:Boolean; var _local5:Boolean; var _local6:uint; var _local7:int; var _local8:int; var _local9:Object; switch (typeof(_arg2)){ case "string": _local3 = {name:_arg2}; break; case "number": _local3 = {time:_arg2}; break; case "object": _local3 = _arg2; break; }; _local4 = ((isNaN(_local3.time)) || ((_local3.time < 0))); _local5 = (_local3.name == null); if (((_local4) && (_local5))){ throw (new VideoError(VideoError.ILLEGAL_CUE_POINT, "time must be number and/or name must not be undefined or null")); }; _local6 = 0; if (_local4){ if (!_metadataLoaded){ if (_disabledCuePointsByNameOnly[_local3.name] == undefined){ if (!_arg1){ _disabledCuePointsByNameOnly[_local3.name] = new Array(); }; } else { if (_arg1){ delete _disabledCuePointsByNameOnly[_local3.name]; }; return (-1); }; removeCuePoints(_disabledCuePoints, _local3); return (-1); }; if (_arg1){ _local6 = removeCuePoints(_disabledCuePoints, _local3); } else { _local7 = getCuePointIndex(flvCuePoints, true, -1, _local3.name); while (_local7 >= 0) { _local9 = flvCuePoints[_local7]; _local8 = getCuePointIndex(_disabledCuePoints, true, _local9.time); if ((((_local8 < 0)) || (!((_disabledCuePoints[_local8].time == _local9.time))))){ _disabledCuePoints = insertCuePoint(_local8, _disabledCuePoints, {name:_local9.name, time:_local9.time}); _local6 = (_local6 + 1); }; _local7 = getNextCuePointIndexWithName(_local9.name, flvCuePoints, _local7); }; }; return (_local6); }; _local7 = getCuePointIndex(_disabledCuePoints, false, _local3.time, _local3.name); if (_local7 < 0){ if (_arg1){ if (!_metadataLoaded){ _local7 = getCuePointIndex(_disabledCuePoints, false, _local3.time); if (_local7 < 0){ _local8 = getCuePointIndex(_disabledCuePointsByNameOnly[_local3.name], true, _local3.time); if (cuePointCompare(_local3.time, null, _disabledCuePointsByNameOnly[_local3.name]) != 0){ _disabledCuePointsByNameOnly[_local3.name] = insertCuePoint(_local8, _disabledCuePointsByNameOnly[_local3.name], _local3); }; } else { _disabledCuePoints.splice(_local7, 1); }; }; return ((_metadataLoaded) ? 0 : -1); }; } else { if (_arg1){ _disabledCuePoints.splice(_local7, 1); _local6 = 1; } else { _local6 = 0; }; return ((_metadataLoaded) ? _local6 : -1); }; if (_metadataLoaded){ _local7 = getCuePointIndex(flvCuePoints, false, _local3.time, _local3.name); if (_local7 < 0){ return (0); }; if (_local5){ _local3.name = flvCuePoints[_local7].name; }; }; _local8 = getCuePointIndex(_disabledCuePoints, true, _local3.time); _disabledCuePoints = insertCuePoint(_local8, _disabledCuePoints, _local3); _local6 = 1; return ((_metadataLoaded) ? _local6 : -1); } public function isFLVCuePointEnabled(_arg1):Boolean{ var _local2:Object; var _local3:Boolean; var _local4:Boolean; var _local5:int; if (!_metadataLoaded){ return (true); }; switch (typeof(_arg1)){ case "string": _local2 = {name:_arg1}; break; case "number": _local2 = {time:_arg1}; break; case "object": _local2 = _arg1; break; }; _local3 = ((isNaN(_local2.time)) || ((_local2.time < 0))); _local4 = (_local2.name == null); if (((_local3) && (_local4))){ throw (new VideoError(VideoError.ILLEGAL_CUE_POINT, "time must be number and/or name must not be undefined or null")); }; if (_local3){ _local5 = getCuePointIndex(flvCuePoints, true, -1, _local2.name); if (_local5 < 0){ return (true); }; while (_local5 >= 0) { if (getCuePointIndex(_disabledCuePoints, false, flvCuePoints[_local5].time, flvCuePoints[_local5].name) < 0){ return (true); }; _local5 = getNextCuePointIndexWithName(_local2.name, flvCuePoints, _local5); }; return (false); }; return ((getCuePointIndex(_disabledCuePoints, false, _local2.time, _local2.name) < 0)); } public function removeASCuePoint(_arg1):Object{ var _local2:Object; var _local3:int; if ((((asCuePoints == null)) || ((asCuePoints.length < 1)))){ return (null); }; switch (typeof(_arg1)){ case "string": _local2 = {name:_arg1}; break; case "number": _local2 = {time:_arg1}; break; case "object": _local2 = _arg1; break; }; _local3 = getCuePointIndex(asCuePoints, false, _local2.time, _local2.name); if (_local3 < 0){ return (null); }; _local2 = asCuePoints[_local3]; asCuePoints.splice(_local3, 1); _local3 = getCuePointIndex(allCuePoints, false, _local2.time, _local2.name); if (_local3 > 0){ allCuePoints.splice(_local3, 1); }; if (_owner.getVideoPlayer(_id).playheadTime > 0){ if (_asCuePointIndex > _local3){ _asCuePointIndex--; }; } else { _asCuePointIndex = 0; }; return (_local2); } public function get id():uint{ return (_id); } public function processCuePointsProperty(_arg1:Array):void{ var _local2:uint; var _local3:uint; var _local4:String; var _local5:String; var _local6:Object; var _local7:Boolean; var _local8:int; if ((((_arg1 == null)) || ((_arg1.length == 0)))){ return; }; _local2 = 0; _local8 = 0; while (_local8 < (_arg1.length - 1)) { switch (_local2){ case 6: addOrDisable(_local7, _local6); _local2 = 0; case 0: var _temp1 = _local8; _local8 = (_local8 + 1); if (_arg1[_temp1] != "t"){ throw (new VideoError(VideoError.ILLEGAL_CUE_POINT, "unexpected cuePoint parameter format")); }; if (isNaN(_arg1[_local8])){ throw (new VideoError(VideoError.ILLEGAL_CUE_POINT, "time must be number")); }; _local6 = new Object(); _local6.time = (_arg1[_local8] / 1000); _local2++; break; case 1: var _temp2 = _local8; _local8 = (_local8 + 1); if (_arg1[_temp2] != "n"){ throw (new VideoError(VideoError.ILLEGAL_CUE_POINT, "unexpected cuePoint parameter format")); }; if (_arg1[_local8] == undefined){ throw (new VideoError(VideoError.ILLEGAL_CUE_POINT, "name cannot be null or undefined")); }; _local6.name = unescape(_arg1[_local8]); _local2++; break; case 2: var _temp3 = _local8; _local8 = (_local8 + 1); if (_arg1[_temp3] != "t"){ throw (new VideoError(VideoError.ILLEGAL_CUE_POINT, "unexpected cuePoint parameter format")); }; if (isNaN(_arg1[_local8])){ throw (new VideoError(VideoError.ILLEGAL_CUE_POINT, "type must be number")); }; switch (_arg1[_local8]){ case 0: _local6.type = CuePointType.EVENT; break; case 1: _local6.type = CuePointType.NAVIGATION; break; case 2: _local6.type = CuePointType.ACTIONSCRIPT; break; default: throw (new VideoError(VideoError.ILLEGAL_CUE_POINT, "type must be 0, 1 or 2")); }; _local2++; break; case 3: var _temp4 = _local8; _local8 = (_local8 + 1); if (_arg1[_temp4] != "d"){ throw (new VideoError(VideoError.ILLEGAL_CUE_POINT, "unexpected cuePoint parameter format")); }; if (isNaN(_arg1[_local8])){ throw (new VideoError(VideoError.ILLEGAL_CUE_POINT, "disabled must be number")); }; _local7 = !((_arg1[_local8] == 0)); _local2++; break; case 4: var _temp5 = _local8; _local8 = (_local8 + 1); if (_arg1[_temp5] != "p"){ throw (new VideoError(VideoError.ILLEGAL_CUE_POINT, "unexpected cuePoint parameter format")); }; if (isNaN(_arg1[_local8])){ throw (new VideoError(VideoError.ILLEGAL_CUE_POINT, "num params must be number")); }; _local3 = _arg1[_local8]; _local2++; if (_local3 == 0){ _local2++; } else { _local6.parameters = new Object(); }; break; case 5: var _temp6 = _local8; _local8 = (_local8 + 1); _local4 = _arg1[_temp6]; _local5 = _arg1[_local8]; if ((_local4 is String)){ _local4 = unescape(_local4); }; if ((_local5 is String)){ _local5 = unescape(_local5); }; _local6.parameters[_local4] = _local5; _local3--; if (_local3 == 0){ _local2++; }; break; }; _local8++; }; if (_local2 == 6){ addOrDisable(_local7, _local6); } else { throw (new VideoError(VideoError.ILLEGAL_CUE_POINT, "unexpected end of cuePoint param string")); }; } flvplayback_internal function getNextCuePointIndexWithName(_arg1:String, _arg2:Array, _arg3:int):int{ var _local4:int; if (_arg1 == null){ throw (new VideoError(VideoError.ILLEGAL_CUE_POINT, "name cannot be undefined or null")); }; if (_arg2 == null){ throw (new VideoError(VideoError.ILLEGAL_CUE_POINT, "cuePoint.array undefined")); }; if (((((isNaN(_arg3)) || ((_arg3 < -1)))) || ((_arg3 >= _arg2.length)))){ throw (new VideoError(VideoError.ILLEGAL_CUE_POINT, "cuePoint.index must be number between -1 and cuePoint.array.length")); }; _local4 = (_arg3 + 1); while (_local4 < _arg2.length) { if (_arg2[_local4].name == _arg1){ break; }; _local4++; }; if (_local4 < _arg2.length){ return (_local4); }; return (-1); } public function dispatchASCuePoints():void{ var _local1:Number; _local1 = _owner.getVideoPlayer(_id).playheadTime; if (((_owner.getVideoPlayer(_id).stateResponsive) && (!((asCuePoints == null))))){ while ((((_asCuePointIndex < asCuePoints.length)) && ((asCuePoints[_asCuePointIndex].time <= (_local1 + _asCuePointTolerance))))) { _owner.dispatchEvent(new MetadataEvent(MetadataEvent.CUE_POINT, false, false, deepCopyObject(asCuePoints[_asCuePointIndex++]), _id)); }; }; } flvplayback_internal function getNextCuePointWithName(_arg1:Object):Object{ var _local2:int; var _local3:Object; if (_arg1 == null){ throw (new VideoError(VideoError.ILLEGAL_CUE_POINT, "cuePoint parameter undefined")); }; if (((isNaN(_arg1.time)) || ((_arg1.time < 0)))){ throw (new VideoError(VideoError.ILLEGAL_CUE_POINT, "time must be number")); }; _local2 = getNextCuePointIndexWithName(_arg1.name, _arg1.array, _arg1.index); if (_local2 < 0){ return (null); }; _local3 = deepCopyObject(_arg1.array[_local2]); _local3.array = _arg1.array; _local3.index = _local2; return (_local3); } public function insertCuePoint(_arg1:int, _arg2:Array, _arg3:Object):Array{ if (_arg1 < 0){ _arg2 = new Array(); _arg2.push(_arg3); } else { if (_arg2[_arg1].time > _arg3.time){ _arg1 = 0; } else { _arg1++; }; _arg2.splice(_arg1, 0, _arg3); }; return (_arg2); } flvplayback_internal function getCuePointIndex(_arg1:Array, _arg2:Boolean, _arg3:Number=NaN, _arg4:String=null, _arg5:int=-1, _arg6:int=-1):int{ var _local7:Boolean; var _local8:Boolean; var _local9:int; var _local10:int; var _local11:int; var _local12:int; var _local13:int; var _local14:int; var _local15:int; if ((((_arg1 == null)) || ((_arg1.length < 1)))){ return (-1); }; _local7 = ((isNaN(_arg3)) || ((_arg3 < 0))); _local8 = (_arg4 == null); if (((_local7) && (_local8))){ throw (new VideoError(VideoError.ILLEGAL_CUE_POINT, "time must be number and/or name must not be undefined or null")); }; if (_arg5 < 0){ _arg5 = 0; }; if (_arg6 < 0){ _arg6 = _arg1.length; }; if (((!(_local8)) && (((_arg2) || (_local7))))){ if (_local7){ _local12 = _arg5; } else { _local12 = getCuePointIndex(_arg1, _arg2, _arg3); }; _local13 = _local12; while (_local13 >= _arg5) { if (_arg1[_local13].name == _arg4){ break; }; _local13--; }; if (_local13 >= _arg5){ return (_local13); }; _local13 = (_local12 + 1); while (_local13 < _arg6) { if (_arg1[_local13].name == _arg4){ break; }; _local13++; }; if (_local13 < _arg6){ return (_local13); }; return (-1); }; if (_arg6 <= _linearSearchTolerance){ _local14 = (_arg5 + _arg6); _local15 = _arg5; while (_local15 < _local14) { _local9 = cuePointCompare(_arg3, _arg4, _arg1[_local15]); if (_local9 == 0){ return (_local15); }; if (_local9 < 0){ break; }; _local15++; }; if (_arg2){ if (_local15 > 0){ return ((_local15 - 1)); }; return (0); }; return (-1); }; _local10 = int((_arg6 / 2)); _local11 = (_arg5 + _local10); _local9 = cuePointCompare(_arg3, _arg4, _arg1[_local11]); if (_local9 < 0){ return (getCuePointIndex(_arg1, _arg2, _arg3, _arg4, _arg5, _local10)); }; if (_local9 > 0){ return (getCuePointIndex(_arg1, _arg2, _arg3, _arg4, (_local11 + 1), ((_local10 - 1) + (_arg6 % 2)))); }; return (_local11); } flvplayback_internal static function deepCopyObject(_arg1:Object, _arg2:uint=0):Object{ var _local3:Object; var _local4:*; if (_arg1 == null){ return (_arg1); }; _local3 = new Object(); for (_local4 in _arg1) { if ((((_arg2 == 0)) && ((((_local4 == "array")) || ((_local4 == "index")))))){ } else { if (typeof(_arg1[_local4]) == "object"){ _local3[_local4] = deepCopyObject(_arg1[_local4], (_arg2 + 1)); } else { _local3[_local4] = _arg1[_local4]; }; }; }; return (_local3); } flvplayback_internal static function cuePointCompare(_arg1:Number, _arg2:String, _arg3:Object):int{ var _local4:Number; var _local5:Number; _local4 = Math.round((_arg1 * 1000)); _local5 = Math.round((_arg3.time * 1000)); if (_local4 < _local5){ return (-1); }; if (_local4 > _local5){ return (1); }; if (_arg2 != null){ if (_arg2 == _arg3.name){ return (0); }; if (_arg2 < _arg3.name){ return (-1); }; return (1); }; return (0); } } }//package fl.video
Section 16
//CuePointType (fl.video.CuePointType) package fl.video { public final class CuePointType { public static const FLV:String = "flv"; public static const ALL:String = "all"; public static const ACTIONSCRIPT:String = "actionscript"; public static const EVENT:String = "event"; public static const NAVIGATION:String = "navigation"; } }//package fl.video
Section 17
//FLVPlayback (fl.video.FLVPlayback) package fl.video { import flash.net.*; import flash.events.*; import flash.display.*; import flash.geom.*; import flash.media.*; import flash.utils.*; public class FLVPlayback extends Sprite { private var _playheadUpdateInterval:Number; private var _align:String; flvplayback_internal var videoPlayerStateDict:Dictionary; flvplayback_internal var cuePointMgrs:Array; private var _volume:Number; private var _origHeight:Number; flvplayback_internal var videoPlayerStates:Array; private var _progressInterval:Number; private var _seekToPrevOffset:Number; private var _origWidth:Number; private var _scaleMode:String; flvplayback_internal var resizingNow:Boolean; flvplayback_internal var videoPlayers:Array; private var _bufferTime:Number; private var _aspectRatio:Boolean; private var _autoRewind:Boolean; flvplayback_internal var uiMgr:UIManager; private var previewImage_mc:Loader; private var _componentInspectorSetting:Boolean; flvplayback_internal var _firstStreamShown:Boolean; private var _visibleVP:uint; private var _idleTimeout:Number; private var _soundTransform:SoundTransform; public var boundingBox_mc:DisplayObject; flvplayback_internal var skinShowTimer:Timer; private var preview_mc:MovieClip; private var livePreviewHeight:Number; flvplayback_internal var _firstStreamReady:Boolean; private var _activeVP:uint; private var isLivePreview:Boolean; private var _topVP:uint; private var livePreviewWidth:Number; private var __forceNCMgr:NCManager; private var previewImageUrl:String; public static const SEEK_TO_PREV_OFFSET_DEFAULT:Number = 1; public static const SHORT_VERSION:String = "2.1"; flvplayback_internal static const skinShowTimerInterval:Number = 2000; public static const VERSION:String = "2.1.0.14"; flvplayback_internal static const DEFAULT_SKIN_SHOW_TIMER_INTERVAL:Number = 2000; public function FLVPlayback(){ var _local1:VideoPlayer; super(); mouseEnabled = false; isLivePreview = ((!((parent == null))) && ((getQualifiedClassName(parent) == "fl.livepreview::LivePreviewParent"))); _componentInspectorSetting = false; _origWidth = super.width; _origHeight = super.height; super.scaleX = 1; super.scaleY = 1; _local1 = new VideoPlayer(0, 0); _local1.setSize(_origWidth, _origHeight); videoPlayers = new Array(); videoPlayers[0] = _local1; _align = _local1.align; _autoRewind = _local1.autoRewind; _scaleMode = _local1.scaleMode; _bufferTime = _local1.bufferTime; _idleTimeout = _local1.idleTimeout; _playheadUpdateInterval = _local1.playheadUpdateInterval; _progressInterval = _local1.progressInterval; _soundTransform = _local1.soundTransform; _volume = _local1.volume; _seekToPrevOffset = SEEK_TO_PREV_OFFSET_DEFAULT; _firstStreamReady = false; _firstStreamShown = false; resizingNow = false; uiMgr = new UIManager(this); if (isLivePreview){ uiMgr.visible = true; }; _activeVP = 0; _visibleVP = 0; _topVP = 0; videoPlayerStates = new Array(); videoPlayerStateDict = new Dictionary(true); cuePointMgrs = new Array(); createVideoPlayer(0); boundingBox_mc.visible = false; removeChild(boundingBox_mc); boundingBox_mc = null; if (isLivePreview){ previewImageUrl = ""; createLivePreviewMovieClip(); setSize(_origWidth, _origHeight); }; } public function set fullScreenTakeOver(_arg1:Boolean):void{ uiMgr.fullScreenTakeOver = _arg1; } public function pause():void{ var _local1:VideoPlayerState; var _local2:VideoPlayer; if (!_firstStreamShown){ _local1 = videoPlayerStates[_activeVP]; queueCmd(_local1, QueuedCommand.PAUSE); } else { _local2 = videoPlayers[_activeVP]; _local2.pause(); }; } public function setScale(_arg1:Number, _arg2:Number):void{ var _local3:Rectangle; var _local4:Rectangle; var _local5:int; var _local6:VideoPlayer; _local3 = new Rectangle(x, y, width, height); _local4 = new Rectangle(registrationX, registrationY, registrationWidth, registrationHeight); resizingNow = true; _local5 = 0; while (_local5 < videoPlayers.length) { _local6 = videoPlayers[_local5]; if (_local6 !== null){ _local6.setSize((_origWidth * _arg1), (_origWidth * _arg2)); }; _local5++; }; resizingNow = false; dispatchEvent(new LayoutEvent(LayoutEvent.LAYOUT, false, false, _local3, _local4)); } public function stop():void{ var _local1:VideoPlayerState; var _local2:VideoPlayer; if (!_firstStreamShown){ _local1 = videoPlayerStates[_activeVP]; queueCmd(_local1, QueuedCommand.STOP); } else { _local2 = videoPlayers[_activeVP]; _local2.stop(); }; } public function set align(_arg1:String):void{ var _local2:VideoPlayer; if (_activeVP == 0){ _align = _arg1; }; _local2 = videoPlayers[_activeVP]; _local2.align = _arg1; } public function getVideoPlayer(_arg1:Number):VideoPlayer{ return (videoPlayers[_arg1]); } public function get playheadTime():Number{ var _local1:VideoPlayer; _local1 = videoPlayers[_activeVP]; return (_local1.playheadTime); } public function get progressInterval():Number{ var _local1:VideoPlayer; _local1 = videoPlayers[_activeVP]; return (_local1.progressInterval); } public function set skinFadeTime(_arg1:int):void{ uiMgr.skinFadeTime = _arg1; } public function get seekToPrevOffset():Number{ return (_seekToPrevOffset); } public function set playheadTime(_arg1:Number):void{ seek(_arg1); } public function get source():String{ var _local1:VideoPlayerState; var _local2:VideoPlayer; _local1 = videoPlayerStates[_activeVP]; if (_local1.isWaiting){ return (_local1.url); }; _local2 = videoPlayers[_activeVP]; return (_local2.source); } public function get activeVideoPlayerIndex():uint{ return (_activeVP); } public function get skinFadeTime():int{ return (uiMgr.skinFadeTime); } public function set scaleMode(_arg1:String):void{ var _local2:VideoPlayer; if (_activeVP == 0){ _scaleMode = _arg1; }; _local2 = videoPlayers[_activeVP]; _local2.scaleMode = _arg1; } public function set bufferingBar(_arg1:Sprite):void{ uiMgr.setControl(UIManager.BUFFERING_BAR, _arg1); } public function get metadataLoaded():Boolean{ var _local1:CuePointManager; _local1 = cuePointMgrs[_activeVP]; return (_local1.metadataLoaded); } public function closeVideoPlayer(_arg1:uint):void{ var _local2:VideoPlayer; if (_arg1 == 0){ throw (new VideoError(VideoError.DELETE_DEFAULT_PLAYER)); }; if (videoPlayers[_arg1] == undefined){ return; }; _local2 = videoPlayers[_arg1]; if (_visibleVP == _arg1){ visibleVideoPlayerIndex = 0; }; if (_activeVP == _arg1){ activeVideoPlayerIndex = 0; }; removeChild(_local2); _local2.close(); delete videoPlayers[_arg1]; delete videoPlayerStates[_arg1]; delete videoPlayerStateDict[_local2]; } public function get scaleMode():String{ var _local1:VideoPlayer; _local1 = videoPlayers[_activeVP]; return (_local1.scaleMode); } public function set progressInterval(_arg1:Number):void{ var _local2:VideoPlayer; if (_activeVP == 0){ _progressInterval = _arg1; }; _local2 = videoPlayers[_activeVP]; _local2.progressInterval = _arg1; } public function get playing():Boolean{ return ((state == VideoState.PLAYING)); } public function get totalTime():Number{ var _local1:VideoPlayerState; var _local2:VideoPlayer; if (isLivePreview){ return (1); }; _local1 = videoPlayerStates[_activeVP]; if (_local1.totalTimeSet){ return (_local1.totalTime); }; _local2 = videoPlayers[_activeVP]; return (_local2.totalTime); } public function get ncMgr():INCManager{ var _local1:VideoPlayer; _local1 = videoPlayers[_activeVP]; return (_local1.ncMgr); } public function set volume(_arg1:Number):void{ var _local2:VideoPlayer; if (_volume == _arg1){ return; }; _volume = _arg1; if (!scrubbing){ _local2 = videoPlayers[_visibleVP]; _local2.volume = _volume; }; dispatchEvent(new SoundEvent(SoundEvent.SOUND_UPDATE, false, false, _local2.soundTransform)); } public function get skinAutoHide():Boolean{ return (uiMgr.skinAutoHide); } public function set source(_arg1:String):void{ var _local2:VideoPlayerState; var _local3:CuePointManager; if (isLivePreview){ return; }; if (_arg1 == null){ _arg1 = ""; }; if (_componentInspectorSetting){ _local2 = videoPlayerStates[_activeVP]; _local2.url = _arg1; if (_arg1.length > 0){ _local2.isWaiting = true; addEventListener(Event.ENTER_FRAME, doContentPathConnect); }; } else { if (source == _arg1){ return; }; _local3 = cuePointMgrs[_activeVP]; _local3.reset(); _local2 = videoPlayerStates[_activeVP]; _local2.url = _arg1; _local2.isWaiting = true; doContentPathConnect(_activeVP); }; } public function set activeVideoPlayerIndex(_arg1:uint):void{ if (_activeVP == _arg1){ return; }; _activeVP = _arg1; if (videoPlayers[_activeVP] == undefined){ createVideoPlayer(_activeVP); }; } override public function set soundTransform(_arg1:SoundTransform):void{ var _local2:VideoPlayer; if (_arg1 == null){ return; }; _volume = _arg1.volume; _soundTransform.volume = (scrubbing) ? 0 : _arg1.volume; _soundTransform.leftToLeft = _arg1.leftToLeft; _soundTransform.leftToRight = _arg1.leftToRight; _soundTransform.rightToLeft = _arg1.rightToLeft; _soundTransform.rightToRight = _arg1.rightToRight; _local2 = videoPlayers[_activeVP]; _local2.soundTransform = _soundTransform; dispatchEvent(new SoundEvent(SoundEvent.SOUND_UPDATE, false, false, _local2.soundTransform)); } public function set seekToPrevOffset(_arg1:Number):void{ _seekToPrevOffset = _arg1; } public function set seekBarScrubTolerance(_arg1:Number):void{ uiMgr.seekBarScrubTolerance = _arg1; } override public function get scaleX():Number{ var _local1:VideoPlayer; _local1 = videoPlayers[_visibleVP]; return ((_local1.width / _origWidth)); } override public function get scaleY():Number{ var _local1:VideoPlayer; _local1 = videoPlayers[_visibleVP]; return ((_local1.height / _origHeight)); } public function get bytesLoaded():uint{ var _local1:VideoPlayer; _local1 = videoPlayers[_activeVP]; return (_local1.bytesLoaded); } override public function set height(_arg1:Number):void{ var _local2:Rectangle; var _local3:Rectangle; var _local4:int; var _local5:VideoPlayer; if (isLivePreview){ setSize(this.width, _arg1); return; }; _local2 = new Rectangle(x, y, width, height); _local3 = new Rectangle(registrationX, registrationY, registrationWidth, registrationHeight); resizingNow = true; _local4 = 0; while (_local4 < videoPlayers.length) { _local5 = videoPlayers[_local4]; if (_local5 != null){ _local5.height = _arg1; }; _local4++; }; resizingNow = false; dispatchEvent(new LayoutEvent(LayoutEvent.LAYOUT, false, false, _local2, _local3)); } public function get forwardButton():Sprite{ return (uiMgr.getControl(UIManager.FORWARD_BUTTON)); } public function get seekBarInterval():Number{ return (uiMgr.seekBarInterval); } public function set totalTime(_arg1:Number):void{ var _local2:VideoPlayerState; _local2 = videoPlayerStates[_activeVP]; _local2.totalTime = _arg1; _local2.totalTimeSet = true; } public function set skinAutoHide(_arg1:Boolean):void{ if (isLivePreview){ return; }; uiMgr.skinAutoHide = _arg1; } public function set bufferTime(_arg1:Number):void{ var _local2:VideoPlayer; _local2 = videoPlayers[_activeVP]; _local2.bufferTime = _arg1; } public function get fullScreenSkinDelay():int{ return (uiMgr.fullScreenSkinDelay); } public function seekToNavCuePoint(_arg1):void{ var _local2:Object; var _local3:Object; if ((_arg1 is String)){ _local2 = {name:String(_arg1)}; } else { if ((_arg1 is Number)){ _local2 = {time:Number(_arg1)}; } else { _local2 = _arg1; }; }; if (_local2.name == undefined){ seekToNextNavCuePoint(_local2.time); return; }; if (isNaN(_local2.time)){ _local2.time = 0; }; _local3 = findNearestCuePoint(_arg1, CuePointType.NAVIGATION); while (((!((_local3 == null))) && ((((_local3.time < _local2.time)) || (!(isFLVCuePointEnabled(_local3))))))) { _local3 = findNextCuePointWithName(_local3); }; if (_local3 == null){ throw (new VideoError(VideoError.INVALID_SEEK)); }; seek(_local3.time); } private function onCompletePreview(_arg1:Event):void{ var e = _arg1; try { previewImage_mc.width = livePreviewWidth; previewImage_mc.height = livePreviewHeight; } catch(e:Error) { }; } public function set isLive(_arg1:Boolean):void{ var _local2:VideoPlayerState; _local2 = videoPlayerStates[_activeVP]; _local2.isLive = _arg1; _local2.isLiveSet = true; } flvplayback_internal function showSkinNow(_arg1:TimerEvent):void{ skinShowTimer = null; uiMgr.visible = true; } override public function get x():Number{ var _local1:VideoPlayer; _local1 = videoPlayers[_visibleVP]; return ((super.x + _local1.x)); } override public function get y():Number{ var _local1:VideoPlayer; _local1 = videoPlayers[_visibleVP]; return ((super.y + _local1.y)); } public function get seekBar():Sprite{ return (uiMgr.getControl(UIManager.SEEK_BAR)); } public function get volumeBarInterval():Number{ return (uiMgr.volumeBarInterval); } public function set registrationHeight(_arg1:Number):void{ height = _arg1; } public function get bufferingBarHidesAndDisablesOthers():Boolean{ return (uiMgr.bufferingBarHidesAndDisablesOthers); } public function seek(_arg1:Number):void{ var _local2:VideoPlayerState; var _local3:VideoPlayer; _local2 = videoPlayerStates[_activeVP]; if (!_firstStreamShown){ _local2.preSeekTime = 0; queueCmd(_local2, QueuedCommand.SEEK, _arg1); } else { _local2.preSeekTime = playheadTime; _local3 = videoPlayers[_activeVP]; _local3.seek(_arg1); }; } public function get state():String{ var _local1:VideoPlayer; var _local2:String; var _local3:VideoPlayerState; if (isLivePreview){ return (VideoState.STOPPED); }; _local1 = videoPlayers[_activeVP]; if ((((_activeVP == _visibleVP)) && (scrubbing))){ return (VideoState.SEEKING); }; _local2 = _local1.state; if (_local2 == VideoState.RESIZING){ return (VideoState.LOADING); }; _local3 = videoPlayerStates[_activeVP]; if ((((((_local3.prevState == VideoState.LOADING)) && (_local3.autoPlay))) && ((_local2 == VideoState.STOPPED)))){ return (VideoState.LOADING); }; return (_local2); } public function set autoRewind(_arg1:Boolean):void{ var _local2:VideoPlayer; if (_activeVP == 0){ _autoRewind = _arg1; }; _local2 = videoPlayers[_activeVP]; _local2.autoRewind = _arg1; } public function get volumeBar():Sprite{ return (uiMgr.getControl(UIManager.VOLUME_BAR)); } flvplayback_internal function skinError(_arg1:String):void{ if (isLivePreview){ return; }; if (((_firstStreamReady) && (!(_firstStreamShown)))){ showFirstStream(); }; dispatchEvent(new SkinErrorEvent(SkinErrorEvent.SKIN_ERROR, false, false, _arg1)); } override public function set scaleX(_arg1:Number):void{ var _local2:Rectangle; var _local3:Rectangle; var _local4:int; var _local5:VideoPlayer; _local2 = new Rectangle(x, y, width, height); _local3 = new Rectangle(registrationX, registrationY, registrationWidth, registrationHeight); resizingNow = true; _local4 = 0; while (_local4 < videoPlayers.length) { _local5 = videoPlayers[_local4]; if (_local5 !== null){ _local5.width = (_origWidth * _arg1); }; _local4++; }; resizingNow = false; dispatchEvent(new LayoutEvent(LayoutEvent.LAYOUT, false, false, _local2, _local3)); } override public function set scaleY(_arg1:Number):void{ var _local2:Rectangle; var _local3:Rectangle; var _local4:int; var _local5:VideoPlayer; _local2 = new Rectangle(x, y, width, height); _local3 = new Rectangle(registrationX, registrationY, registrationWidth, registrationHeight); resizingNow = true; _local4 = 0; while (_local4 < videoPlayers.length) { _local5 = videoPlayers[_local4]; if (_local5 !== null){ _local5.height = (_origHeight * _arg1); }; _local4++; }; resizingNow = false; dispatchEvent(new LayoutEvent(LayoutEvent.LAYOUT, false, false, _local2, _local3)); } flvplayback_internal function createVideoPlayer(_arg1:Number):void{ var vp:VideoPlayer; var added:Boolean; var vpState:VideoPlayerState; var cpMgr:CuePointManager; var skinDepth:int; var index = _arg1; if (isLivePreview){ return; }; vp = videoPlayers[index]; if (vp == null){ var _local3 = new VideoPlayer(0, 0); vp = _local3; videoPlayers[index] = _local3; vp.setSize(registrationWidth, registrationHeight); }; vp.visible = false; vp.volume = 0; vp.name = String(index); added = false; if (uiMgr.skin_mc != null){ try { skinDepth = getChildIndex(uiMgr.skin_mc); if (skinDepth > 0){ addChildAt(vp, skinDepth); added = true; }; } catch(err:Error) { }; }; if (!added){ addChild(vp); }; _topVP = index; vp.autoRewind = _autoRewind; vp.scaleMode = _scaleMode; vp.bufferTime = _bufferTime; vp.idleTimeout = _idleTimeout; vp.playheadUpdateInterval = _playheadUpdateInterval; vp.progressInterval = _progressInterval; vp.soundTransform = _soundTransform; vpState = new VideoPlayerState(vp, index); videoPlayerStates[index] = vpState; videoPlayerStateDict[vp] = vpState; vp.addEventListener(AutoLayoutEvent.AUTO_LAYOUT, handleAutoLayoutEvent); vp.addEventListener(MetadataEvent.CUE_POINT, handleMetadataEvent); vp.addEventListener(MetadataEvent.METADATA_RECEIVED, handleMetadataEvent); vp.addEventListener(VideoProgressEvent.PROGRESS, handleVideoProgressEvent); vp.addEventListener(VideoEvent.AUTO_REWOUND, handleVideoEvent); vp.addEventListener(VideoEvent.CLOSE, handleVideoEvent); vp.addEventListener(VideoEvent.COMPLETE, handleVideoEvent); vp.addEventListener(VideoEvent.PLAYHEAD_UPDATE, handleVideoEvent); vp.addEventListener(VideoEvent.STATE_CHANGE, handleVideoEvent); vp.addEventListener(VideoEvent.READY, handleVideoEvent); cpMgr = new CuePointManager(this, index); cuePointMgrs[index] = cpMgr; cpMgr.playheadUpdateInterval = _playheadUpdateInterval; } public function findNearestCuePoint(_arg1, _arg2:String="all"):Object{ var _local3:CuePointManager; _local3 = cuePointMgrs[_activeVP]; switch (_arg2){ case "event": return (_local3.getCuePoint(_local3.eventCuePoints, true, _arg1)); case "navigation": return (_local3.getCuePoint(_local3.navCuePoints, true, _arg1)); case "flv": return (_local3.getCuePoint(_local3.flvCuePoints, true, _arg1)); case "actionscript": return (_local3.getCuePoint(_local3.asCuePoints, true, _arg1)); case "all": default: return (_local3.getCuePoint(_local3.allCuePoints, true, _arg1)); }; } public function get muteButton():Sprite{ return (uiMgr.getControl(UIManager.MUTE_BUTTON)); } public function seekPercent(_arg1:Number):void{ var _local2:VideoPlayer; _local2 = videoPlayers[_activeVP]; if (((((((((isNaN(_arg1)) || ((_arg1 < 0)))) || ((_arg1 > 100)))) || (isNaN(_local2.totalTime)))) || ((_local2.totalTime <= 0)))){ throw (new VideoError(VideoError.INVALID_SEEK)); }; seek(((_local2.totalTime * _arg1) / 100)); } public function set forwardButton(_arg1:Sprite):void{ uiMgr.setControl(UIManager.FORWARD_BUTTON, _arg1); } public function get registrationWidth():Number{ var _local1:VideoPlayer; _local1 = videoPlayers[_visibleVP]; return (_local1.registrationWidth); } flvplayback_internal function queueCmd(_arg1:VideoPlayerState, _arg2:Number, _arg3:Number=NaN):void{ if (_arg1.cmdQueue == null){ _arg1.cmdQueue = new Array(); }; _arg1.cmdQueue.push(new QueuedCommand(_arg2, null, false, _arg3)); } private function doContentPathConnect(_arg1):void{ var _local2:int; var _local3:VideoPlayer; var _local4:VideoPlayerState; if (isLivePreview){ return; }; _local2 = 0; if ((_arg1 is int)){ _local2 = int(_arg1); } else { removeEventListener(Event.ENTER_FRAME, doContentPathConnect); }; _local3 = videoPlayers[_local2]; _local4 = videoPlayerStates[_local2]; if (!_local4.isWaiting){ return; }; if (((_local4.autoPlay) && (_firstStreamShown))){ _local3.play(_local4.url, _local4.totalTime, _local4.isLive); } else { _local3.load(_local4.url, _local4.totalTime, _local4.isLive); }; _local4.isLiveSet = false; _local4.totalTimeSet = false; _local4.isWaiting = false; } public function get registrationX():Number{ return (super.x); } public function bringVideoPlayerToFront(_arg1:uint):void{ var vp:VideoPlayer; var moved:Boolean; var skinDepth:int; var index = _arg1; if (index == _topVP){ return; }; vp = videoPlayers[index]; if (vp == null){ createVideoPlayer(index); vp = videoPlayers[index]; }; moved = false; if (uiMgr.skin_mc != null){ try { skinDepth = getChildIndex(uiMgr.skin_mc); if (skinDepth > 0){ setChildIndex(vp, (skinDepth - 1)); moved = true; }; } catch(err:Error) { }; }; if (!moved){ setChildIndex(vp, (numChildren - 1)); }; _topVP = index; } public function get registrationY():Number{ return (super.y); } public function get pauseButton():Sprite{ return (uiMgr.getControl(UIManager.PAUSE_BUTTON)); } public function set seekBarInterval(_arg1:Number):void{ uiMgr.seekBarInterval = _arg1; } public function addASCuePoint(_arg1, _arg2:String=null, _arg3:Object=null):Object{ var _local4:CuePointManager; _local4 = cuePointMgrs[_activeVP]; return (_local4.addASCuePoint(_arg1, _arg2, _arg3)); } public function get playheadPercentage():Number{ var _local1:VideoPlayer; _local1 = videoPlayers[_activeVP]; if (isNaN(_local1.totalTime)){ return (NaN); }; return (((_local1.playheadTime / _local1.totalTime) * 100)); } public function setFLVCuePointEnabled(_arg1:Boolean, _arg2):Number{ var _local3:CuePointManager; _local3 = cuePointMgrs[_activeVP]; return (_local3.setFLVCuePointEnabled(_arg1, _arg2)); } public function set fullScreenSkinDelay(_arg1:int):void{ uiMgr.fullScreenSkinDelay = _arg1; } public function seekToNextNavCuePoint(_arg1:Number=NaN):void{ var _local2:VideoPlayer; var _local3:Object; var _local4:Number; _local2 = videoPlayers[_activeVP]; if (((isNaN(_arg1)) || ((_arg1 < 0)))){ _arg1 = (_local2.playheadTime + 0.001); }; _local3 = findNearestCuePoint(_arg1, CuePointType.NAVIGATION); if (_local3 == null){ seek(_local2.totalTime); return; }; _local4 = _local3.index; if (_local3.time < _arg1){ _local4++; }; while ((((_local4 < _local3.array.length)) && (!(isFLVCuePointEnabled(_local3.array[_local4]))))) { _local4++; }; if (_local4 >= _local3.array.length){ _arg1 = _local2.totalTime; if (_local3.array[(_local3.array.length - 1)].time > _arg1){ _arg1 = _local3.array[(_local3.array.length - 1)]; }; seek(_arg1); } else { seek(_local3.array[_local4].time); }; } public function load(_arg1:String, _arg2:Number=NaN, _arg3:Boolean=false):void{ if ((((_arg1 == null)) || ((_arg1.length == 0)))){ return; }; if (_arg1 == this.source){ return; }; this.autoPlay = false; this.totalTime = _arg2; this.isLive = _arg3; this.source = _arg1; } public function seekSeconds(_arg1:Number):void{ seek(_arg1); } public function get fullScreenButton():Sprite{ return (uiMgr.getControl(UIManager.FULL_SCREEN_BUTTON)); } public function get scrubbing():Boolean{ var _local1:Sprite; var _local2:ControlData; _local1 = seekBar; if (_local1 != null){ _local2 = uiMgr.ctrlDataDict[_local1]; return (_local2.isDragging); }; return (false); } override public function set y(_arg1:Number):void{ var _local2:VideoPlayer; _local2 = videoPlayers[_visibleVP]; super.y = (_arg1 - _local2.y); } public function removeASCuePoint(_arg1):Object{ var _local2:CuePointManager; _local2 = cuePointMgrs[_activeVP]; return (_local2.removeASCuePoint(_arg1)); } public function get fullScreenTakeOver():Boolean{ return (uiMgr.fullScreenTakeOver); } override public function set x(_arg1:Number):void{ var _local2:VideoPlayer; _local2 = videoPlayers[_visibleVP]; super.x = (_arg1 - _local2.x); } public function get backButton():Sprite{ return (uiMgr.getControl(UIManager.BACK_BUTTON)); } public function set seekBar(_arg1:Sprite):void{ uiMgr.setControl(UIManager.SEEK_BAR, _arg1); } public function set skin(_arg1:String):void{ uiMgr.skin = _arg1; } public function set componentInspectorSetting(_arg1:Boolean):void{ _componentInspectorSetting = _arg1; } public function get preferredHeight():int{ var _local1:VideoPlayer; _local1 = videoPlayers[_activeVP]; return (_local1.videoHeight); } public function set volumeBarInterval(_arg1:Number):void{ uiMgr.volumeBarInterval = _arg1; } public function set autoPlay(_arg1:Boolean):void{ var _local2:VideoPlayerState; _local2 = videoPlayerStates[_activeVP]; _local2.autoPlay = _arg1; } public function set visibleVideoPlayerIndex(_arg1:uint):void{ var _local2:VideoPlayer; var _local3:VideoPlayer; var _local4:uint; var _local5:Rectangle; var _local6:Rectangle; if (_visibleVP == _arg1){ return; }; if (videoPlayers[_arg1] == undefined){ createVideoPlayer(_arg1); }; _local2 = videoPlayers[_arg1]; _local3 = videoPlayers[_visibleVP]; _local3.visible = false; _local3.volume = 0; _visibleVP = _arg1; if (_firstStreamShown){ uiMgr.setupSkinAutoHide(false); _local2.visible = true; _soundTransform.volume = (scrubbing) ? _volume : 0; _local2.soundTransform = _soundTransform; } else { if (((((((_local2.stateResponsive) || ((_local2.state == VideoState.CONNECTION_ERROR)))) || ((_local2.state == VideoState.DISCONNECTED)))) && (uiMgr.skinReady))){ uiMgr.visible = true; uiMgr.setupSkinAutoHide(false); _firstStreamReady = true; if (uiMgr.skin == ""){ uiMgr.hookUpCustomComponents(); }; showFirstStream(); }; }; if (((!((_local2.height == _local3.height))) || (!((_local2.width == _local3.width))))){ _local5 = new Rectangle((_local3.x + super.x), (_local3.y + super.y), _local3.width, _local3.height); _local6 = new Rectangle((_local3.registrationX + super.x), (_local3.registrationY + super.y), _local3.registrationWidth, _local3.registrationHeight); dispatchEvent(new LayoutEvent(LayoutEvent.LAYOUT, false, false, _local5, _local6)); }; _local4 = _activeVP; _activeVP = _visibleVP; uiMgr.handleIVPEvent(new VideoEvent(VideoEvent.STATE_CHANGE, false, false, state, playheadTime, _visibleVP)); uiMgr.handleIVPEvent(new VideoEvent(VideoEvent.PLAYHEAD_UPDATE, false, false, state, playheadTime, _visibleVP)); if (_local2.isRTMP){ uiMgr.handleIVPEvent(new VideoEvent(VideoEvent.READY, false, false, state, playheadTime, _visibleVP)); } else { uiMgr.handleIVPEvent(new VideoProgressEvent(VideoProgressEvent.PROGRESS, false, false, bytesLoaded, bytesTotal, _visibleVP)); }; _activeVP = _local4; } public function get bufferingBar():Sprite{ return (uiMgr.getControl(UIManager.BUFFERING_BAR)); } flvplayback_internal function _scrubStart():void{ var _local1:Number; var _local2:VideoPlayer; _local1 = playheadTime; _local2 = videoPlayers[_visibleVP]; _volume = _local2.volume; _local2.volume = 0; dispatchEvent(new VideoEvent(VideoEvent.STATE_CHANGE, false, false, VideoState.SEEKING, _local1, _visibleVP)); dispatchEvent(new VideoEvent(VideoEvent.SCRUB_START, false, false, VideoState.SEEKING, _local1, _visibleVP)); } public function get align():String{ var _local1:VideoPlayer; _local1 = videoPlayers[_activeVP]; return (_local1.align); } flvplayback_internal function handleAutoLayoutEvent(_arg1:AutoLayoutEvent):void{ var _local2:VideoPlayerState; var _local3:AutoLayoutEvent; var _local4:Rectangle; var _local5:Rectangle; _local2 = videoPlayerStateDict[_arg1.currentTarget]; _local3 = AutoLayoutEvent(_arg1.clone()); _local3.oldBounds.x = (_local3.oldBounds.x + super.x); _local3.oldBounds.y = (_local3.oldBounds.y + super.y); _local3.oldRegistrationBounds.x = (_local3.oldRegistrationBounds.x + super.y); _local3.oldRegistrationBounds.y = (_local3.oldRegistrationBounds.y + super.y); _local3.vp = _local2.index; dispatchEvent(_local3); if (((!(resizingNow)) && ((_local2.index == _visibleVP)))){ _local4 = Rectangle(_arg1.oldBounds.clone()); _local5 = Rectangle(_arg1.oldRegistrationBounds.clone()); _local4.x = (_local4.x + super.x); _local4.y = (_local4.y + super.y); _local5.x = (_local5.x + super.y); _local5.y = (_local5.y + super.y); dispatchEvent(new LayoutEvent(LayoutEvent.LAYOUT, false, false, _local4, _local5)); }; } public function findNextCuePointWithName(_arg1:Object):Object{ var _local2:CuePointManager; _local2 = cuePointMgrs[_activeVP]; return (_local2.getNextCuePointWithName(_arg1)); } public function set playButton(_arg1:Sprite):void{ uiMgr.setControl(UIManager.PLAY_BUTTON, _arg1); } public function set bitrate(_arg1:Number):void{ ncMgr.bitrate = _arg1; } public function set bufferingBarHidesAndDisablesOthers(_arg1:Boolean):void{ uiMgr.bufferingBarHidesAndDisablesOthers = _arg1; } override public function get soundTransform():SoundTransform{ var _local1:VideoPlayer; var _local2:SoundTransform; _local1 = videoPlayers[_visibleVP]; _local2 = _local1.soundTransform; if (scrubbing){ _local2.volume = _volume; }; return (_local2); } public function get stateResponsive():Boolean{ var _local1:VideoPlayer; _local1 = videoPlayers[_activeVP]; return (_local1.stateResponsive); } public function get idleTimeout():Number{ var _local1:VideoPlayer; _local1 = videoPlayers[_activeVP]; return (_local1.idleTimeout); } override public function get height():Number{ var _local1:VideoPlayer; if (isLivePreview){ return (livePreviewHeight); }; _local1 = videoPlayers[_visibleVP]; return (_local1.height); } public function set registrationWidth(_arg1:Number):void{ width = _arg1; } public function get metadata():Object{ var _local1:VideoPlayer; _local1 = videoPlayers[_activeVP]; return (_local1.metadata); } public function set skinBackgroundColor(_arg1:uint):void{ uiMgr.skinBackgroundColor = _arg1; } public function get volume():Number{ return (_volume); } public function play(_arg1:String=null, _arg2:Number=NaN, _arg3:Boolean=false):void{ var _local4:VideoPlayerState; var _local5:VideoPlayer; if (_arg1 == null){ if (!_firstStreamShown){ _local4 = videoPlayerStates[_activeVP]; queueCmd(_local4, QueuedCommand.PLAY); } else { _local5 = videoPlayers[_activeVP]; _local5.play(); }; } else { if (_arg1 == this.source){ return; }; this.autoPlay = true; this.totalTime = _arg2; this.isLive = _arg3; this.source = _arg1; }; } public function get paused():Boolean{ return ((state == VideoState.PAUSED)); } flvplayback_internal function handleVideoEvent(_arg1:VideoEvent):void{ var _local2:VideoPlayerState; var _local3:CuePointManager; var _local4:VideoEvent; var _local5:String; var _local6:Number; _local2 = videoPlayerStateDict[_arg1.currentTarget]; _local3 = cuePointMgrs[_local2.index]; _local4 = VideoEvent(_arg1.clone()); _local4.vp = _local2.index; _local5 = ((((_local2.index == _visibleVP)) && (scrubbing))) ? VideoState.SEEKING : _arg1.state; switch (_arg1.type){ case VideoEvent.AUTO_REWOUND: dispatchEvent(_local4); dispatchEvent(new VideoEvent(VideoEvent.REWIND, false, false, _local5, _arg1.playheadTime, _local2.index)); _local3.resetASCuePointIndex(_arg1.playheadTime); break; case VideoEvent.PLAYHEAD_UPDATE: _local4.state = _local5; dispatchEvent(_local4); if (((!(isNaN(_local2.preSeekTime))) && (!((_arg1.state == VideoState.SEEKING))))){ _local6 = _local2.preSeekTime; _local2.preSeekTime = NaN; _local3.resetASCuePointIndex(_arg1.playheadTime); dispatchEvent(new VideoEvent(VideoEvent.SEEKED, false, false, _arg1.state, _arg1.playheadTime, _local2.index)); if (_local6 < _arg1.playheadTime){ dispatchEvent(new VideoEvent(VideoEvent.FAST_FORWARD, false, false, _arg1.state, _arg1.playheadTime, _local2.index)); } else { if (_local6 > _arg1.playheadTime){ dispatchEvent(new VideoEvent(VideoEvent.REWIND, false, false, _arg1.state, _arg1.playheadTime, _local2.index)); }; }; }; _local3.dispatchASCuePoints(); break; case VideoEvent.STATE_CHANGE: if ((((_local2.index == _visibleVP)) && (scrubbing))){ break; }; if (_arg1.state == VideoState.RESIZING){ break; }; if ((((((_local2.prevState == VideoState.LOADING)) && (_local2.autoPlay))) && ((_arg1.state == VideoState.STOPPED)))){ return; }; if ((((((((_arg1.state == VideoState.CONNECTION_ERROR)) && ((_arg1.vp == _visibleVP)))) && (!(_firstStreamShown)))) && (uiMgr.skinReady))){ showFirstStream(); uiMgr.visible = true; if (uiMgr.skin == ""){ uiMgr.hookUpCustomComponents(); }; if (skinShowTimer != null){ skinShowTimer.reset(); skinShowTimer = null; }; }; _local2.prevState = _arg1.state; _local4.state = _local5; dispatchEvent(_local4); if (_local2.owner.state != _arg1.state){ return; }; switch (_arg1.state){ case VideoState.BUFFERING: dispatchEvent(new VideoEvent(VideoEvent.BUFFERING_STATE_ENTERED, false, false, _local5, _arg1.playheadTime, _local2.index)); break; case VideoState.PAUSED: dispatchEvent(new VideoEvent(VideoEvent.PAUSED_STATE_ENTERED, false, false, _local5, _arg1.playheadTime, _local2.index)); break; case VideoState.PLAYING: dispatchEvent(new VideoEvent(VideoEvent.PLAYING_STATE_ENTERED, false, false, _local5, _arg1.playheadTime, _local2.index)); break; case VideoState.STOPPED: dispatchEvent(new VideoEvent(VideoEvent.STOPPED_STATE_ENTERED, false, false, _local5, _arg1.playheadTime, _local2.index)); break; }; break; case VideoEvent.READY: if (!_firstStreamReady){ if (_local2.index == _visibleVP){ _firstStreamReady = true; if (((uiMgr.skinReady) && (!(_firstStreamShown)))){ uiMgr.visible = true; if (uiMgr.skin == ""){ uiMgr.hookUpCustomComponents(); }; showFirstStream(); }; }; } else { if (((((_firstStreamShown) && ((_arg1.state == VideoState.STOPPED)))) && (_local2.autoPlay))){ if (_local2.owner.isRTMP){ _local2.owner.play(); } else { _local2.prevState = VideoState.STOPPED; _local2.owner.playWhenEnoughDownloaded(); }; }; }; _local4.state = _local5; dispatchEvent(_local4); break; case VideoEvent.CLOSE: case VideoEvent.COMPLETE: _local4.state = _local5; dispatchEvent(_local4); break; }; } public function set volumeBar(_arg1:Sprite):void{ uiMgr.setControl(UIManager.VOLUME_BAR, _arg1); } public function set fullScreenBackgroundColor(_arg1:uint):void{ uiMgr.fullScreenBackgroundColor = _arg1; } public function get isLive():Boolean{ var _local1:VideoPlayerState; var _local2:VideoPlayer; _local1 = videoPlayerStates[_activeVP]; if (_local1.isLiveSet){ return (_local1.isLive); }; _local2 = videoPlayers[_activeVP]; return (_local2.isLive); } public function get bufferTime():Number{ var _local1:VideoPlayer; _local1 = videoPlayers[_activeVP]; return (_local1.bufferTime); } public function get registrationHeight():Number{ var _local1:VideoPlayer; _local1 = videoPlayers[_visibleVP]; return (_local1.registrationHeight); } public function get playPauseButton():Sprite{ return (uiMgr.getControl(UIManager.PLAY_PAUSE_BUTTON)); } flvplayback_internal function showFirstStream():void{ var _local1:VideoPlayer; var _local2:int; var _local3:VideoPlayerState; var _local4:int; _firstStreamShown = true; _local1 = videoPlayers[_visibleVP]; _local1.visible = true; if (!scrubbing){ _soundTransform.volume = _volume; _local1.soundTransform = _soundTransform; }; _local2 = 0; while (_local2 < videoPlayers.length) { _local1 = videoPlayers[_local2]; if (_local1 != null){ _local3 = videoPlayerStates[_local2]; if ((((_local1.state == VideoState.STOPPED)) && (_local3.autoPlay))){ if (_local1.isRTMP){ _local1.play(); } else { _local3.prevState = VideoState.STOPPED; _local1.playWhenEnoughDownloaded(); }; }; if (_local3.cmdQueue != null){ _local4 = 0; while (_local4 < _local3.cmdQueue.length) { switch (_local3.cmdQueue[_local4].type){ case QueuedCommand.PLAY: _local1.play(); break; case QueuedCommand.PAUSE: _local1.pause(); break; case QueuedCommand.STOP: _local1.stop(); break; case QueuedCommand.SEEK: _local1.seek(_local3.cmdQueue[_local4].time); break; case QueuedCommand.PLAY_WHEN_ENOUGH: _local1.playWhenEnoughDownloaded(); break; }; _local4++; }; _local3.cmdQueue = null; }; }; _local2++; }; } public function set volumeBarScrubTolerance(_arg1:Number):void{ uiMgr.volumeBarScrubTolerance = _arg1; } public function set skinBackgroundAlpha(_arg1:Number):void{ uiMgr.skinBackgroundAlpha = _arg1; } public function get playheadUpdateInterval():Number{ var _local1:VideoPlayer; _local1 = videoPlayers[_activeVP]; return (_local1.playheadUpdateInterval); } public function set muteButton(_arg1:Sprite):void{ uiMgr.setControl(UIManager.MUTE_BUTTON, _arg1); } public function set skinScaleMaximum(_arg1:Number){ uiMgr.skinScaleMaximum = _arg1; } public function enterFullScreenDisplayState():void{ uiMgr.enterFullScreenDisplayState(); } flvplayback_internal function handleMetadataEvent(_arg1:MetadataEvent):void{ var _local2:VideoPlayerState; var _local3:CuePointManager; var _local4:MetadataEvent; _local2 = videoPlayerStateDict[_arg1.currentTarget]; _local3 = cuePointMgrs[_local2.index]; switch (_arg1.type){ case MetadataEvent.METADATA_RECEIVED: _local3.processFLVCuePoints(_arg1.info.cuePoints); break; case MetadataEvent.CUE_POINT: if (!_local3.isFLVCuePointEnabled(_arg1.info)){ return; }; break; }; _local4 = MetadataEvent(_arg1.clone()); _local4.vp = _local2.index; dispatchEvent(_local4); } public function playWhenEnoughDownloaded():void{ var _local1:VideoPlayerState; var _local2:VideoPlayer; if (!_firstStreamShown){ _local1 = videoPlayerStates[_activeVP]; queueCmd(_local1, QueuedCommand.PLAY_WHEN_ENOUGH); } else { _local2 = videoPlayers[_activeVP]; _local2.playWhenEnoughDownloaded(); }; } public function get bitrate():Number{ return (ncMgr.bitrate); } public function get autoRewind():Boolean{ var _local1:VideoPlayer; _local1 = videoPlayers[_activeVP]; return (_local1.autoRewind); } public function get fullScreenBackgroundColor():uint{ return (uiMgr.fullScreenBackgroundColor); } public function get skin():String{ return (uiMgr.skin); } public function set registrationX(_arg1:Number):void{ super.x = _arg1; } public function set registrationY(_arg1:Number):void{ super.y = _arg1; } public function setSize(_arg1:Number, _arg2:Number):void{ var _local3:Rectangle; var _local4:Rectangle; var _local5:int; var _local6:VideoPlayer; _local3 = new Rectangle(x, y, this.width, this.height); _local4 = new Rectangle(registrationX, registrationY, registrationWidth, registrationHeight); if (isLivePreview){ livePreviewWidth = _arg1; livePreviewHeight = _arg2; if (previewImage_mc != null){ previewImage_mc.width = _arg1; previewImage_mc.height = _arg2; }; preview_mc.box_mc.width = _arg1; preview_mc.box_mc.height = _arg2; if ((((preview_mc.box_mc.width < preview_mc.icon_mc.width)) || ((preview_mc.box_mc.height < preview_mc.icon_mc.height)))){ preview_mc.icon_mc.visible = false; } else { preview_mc.icon_mc.visible = true; preview_mc.icon_mc.x = ((preview_mc.box_mc.width - preview_mc.icon_mc.width) / 2); preview_mc.icon_mc.y = ((preview_mc.box_mc.height - preview_mc.icon_mc.height) / 2); }; dispatchEvent(new LayoutEvent(LayoutEvent.LAYOUT, false, false, _local3, _local4)); return; }; resizingNow = true; _local5 = 0; while (_local5 < videoPlayers.length) { _local6 = videoPlayers[_local5]; if (_local6 != null){ _local6.setSize(_arg1, _arg2); }; _local5++; }; resizingNow = false; dispatchEvent(new LayoutEvent(LayoutEvent.LAYOUT, false, false, _local3, _local4)); } public function get isRTMP():Boolean{ var _local1:VideoPlayer; if (isLivePreview){ return (true); }; _local1 = videoPlayers[_activeVP]; return (_local1.isRTMP); } public function set preview(_arg1:String):void{ var filename = _arg1; if (!isLivePreview){ return; }; previewImageUrl = filename; if (previewImage_mc != null){ removeChild(previewImage_mc); }; previewImage_mc = new Loader(); previewImage_mc.contentLoaderInfo.addEventListener(Event.COMPLETE, onCompletePreview); previewImage_mc.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, function (_arg1:IOErrorEvent):void{ }); previewImage_mc.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR, function (_arg1:SecurityErrorEvent):void{ }); addChildAt(previewImage_mc, 1); previewImage_mc.load(new URLRequest(previewImageUrl)); } override public function set width(_arg1:Number):void{ var _local2:Rectangle; var _local3:Rectangle; var _local4:int; var _local5:VideoPlayer; if (isLivePreview){ setSize(_arg1, this.height); return; }; _local2 = new Rectangle(x, y, width, height); _local3 = new Rectangle(registrationX, registrationY, registrationWidth, registrationHeight); resizingNow = true; _local4 = 0; while (_local4 < videoPlayers.length) { _local5 = videoPlayers[_local4]; if (_local5 != null){ _local5.width = _arg1; }; _local4++; }; resizingNow = false; dispatchEvent(new LayoutEvent(LayoutEvent.LAYOUT, false, false, _local2, _local3)); } public function get playButton():Sprite{ return (uiMgr.getControl(UIManager.PLAY_BUTTON)); } public function set pauseButton(_arg1:Sprite):void{ uiMgr.setControl(UIManager.PAUSE_BUTTON, _arg1); } public function get bytesTotal():uint{ var _local1:VideoPlayer; _local1 = videoPlayers[_activeVP]; return (_local1.bytesTotal); } public function seekToPrevNavCuePoint(_arg1:Number=NaN):void{ var _local2:Object; var _local3:Number; var _local4:VideoPlayer; if (((isNaN(_arg1)) || ((_arg1 < 0)))){ _local4 = videoPlayers[_activeVP]; _arg1 = _local4.playheadTime; }; _local2 = findNearestCuePoint(_arg1, CuePointType.NAVIGATION); if (_local2 == null){ seek(0); return; }; _local3 = _local2.index; while ((((_local3 >= 0)) && (((!(isFLVCuePointEnabled(_local2.array[_local3]))) || ((_local2.array[_local3].time >= (_arg1 - _seekToPrevOffset))))))) { _local3--; }; if (_local3 < 0){ seek(0); } else { seek(_local2.array[_local3].time); }; } public function get autoPlay():Boolean{ var _local1:VideoPlayerState; _local1 = videoPlayerStates[_activeVP]; return (_local1.autoPlay); } public function set playheadPercentage(_arg1:Number):void{ seekPercent(_arg1); } public function isFLVCuePointEnabled(_arg1):Boolean{ var _local2:CuePointManager; _local2 = cuePointMgrs[_activeVP]; return (_local2.isFLVCuePointEnabled(_arg1)); } public function get buffering():Boolean{ return ((state == VideoState.BUFFERING)); } public function get volumeBarScrubTolerance():Number{ return (uiMgr.volumeBarScrubTolerance); } public function get skinBackgroundColor():uint{ return (uiMgr.skinBackgroundColor); } public function get visibleVideoPlayerIndex():uint{ return (_visibleVP); } public function set stopButton(_arg1:Sprite):void{ uiMgr.setControl(UIManager.STOP_BUTTON, _arg1); } public function get skinBackgroundAlpha():Number{ return (uiMgr.skinBackgroundAlpha); } public function get skinScaleMaximum():Number{ return (uiMgr.skinScaleMaximum); } public function get preferredWidth():int{ var _local1:VideoPlayer; _local1 = videoPlayers[_activeVP]; return (_local1.videoWidth); } override public function get width():Number{ var _local1:VideoPlayer; if (isLivePreview){ return (livePreviewWidth); }; _local1 = videoPlayers[_visibleVP]; return (_local1.width); } public function get stopped():Boolean{ return ((state == VideoState.STOPPED)); } public function set fullScreenButton(_arg1:Sprite):void{ uiMgr.setControl(UIManager.FULL_SCREEN_BUTTON, _arg1); } public function get stopButton():Sprite{ return (uiMgr.getControl(UIManager.STOP_BUTTON)); } public function set playheadUpdateInterval(_arg1:Number):void{ var _local2:CuePointManager; var _local3:VideoPlayer; if (_activeVP == 0){ _playheadUpdateInterval = _arg1; }; _local2 = cuePointMgrs[_activeVP]; _local2.playheadUpdateInterval = _arg1; _local3 = videoPlayers[_activeVP]; _local3.playheadUpdateInterval = _arg1; } private function createLivePreviewMovieClip():void{ preview_mc = new MovieClip(); preview_mc.name = "preview_mc"; preview_mc.box_mc = new MovieClip(); preview_mc.box_mc.name = "box_mc"; preview_mc.box_mc.graphics.beginFill(0); preview_mc.box_mc.graphics.moveTo(0, 0); preview_mc.box_mc.graphics.lineTo(0, 100); preview_mc.box_mc.graphics.lineTo(100, 100); preview_mc.box_mc.graphics.lineTo(100, 0); preview_mc.box_mc.graphics.lineTo(0, 0); preview_mc.box_mc.graphics.endFill(); preview_mc.addChild(preview_mc.box_mc); preview_mc.icon_mc = new Icon(); preview_mc.icon_mc.name = "icon_mc"; preview_mc.addChild(preview_mc.icon_mc); addChild(preview_mc); } public function set idleTimeout(_arg1:Number):void{ var _local2:VideoPlayer; if (_activeVP == 0){ _idleTimeout = _arg1; }; _local2 = videoPlayers[_activeVP]; _local2.idleTimeout = _arg1; } flvplayback_internal function skinLoaded():void{ var _local1:VideoPlayer; if (isLivePreview){ return; }; _local1 = videoPlayers[_visibleVP]; if (((((_firstStreamReady) || ((_local1.state == VideoState.CONNECTION_ERROR)))) || ((_local1.state == VideoState.DISCONNECTED)))){ uiMgr.visible = true; if (!_firstStreamShown){ showFirstStream(); }; } else { if (skinShowTimer != null){ skinShowTimer.reset(); skinShowTimer = null; }; skinShowTimer = new Timer(DEFAULT_SKIN_SHOW_TIMER_INTERVAL, 1); skinShowTimer.addEventListener(TimerEvent.TIMER, showSkinNow); skinShowTimer.start(); }; dispatchEvent(new VideoEvent(VideoEvent.SKIN_LOADED, false, false, state, playheadTime, _visibleVP)); } flvplayback_internal function _scrubFinish():void{ var _local1:Number; var _local2:String; var _local3:VideoPlayer; _local1 = playheadTime; _local2 = state; _local3 = videoPlayers[_visibleVP]; _soundTransform.volume = _volume; _local3.soundTransform = _soundTransform; if (_local2 != VideoState.SEEKING){ dispatchEvent(new VideoEvent(VideoEvent.STATE_CHANGE, false, false, _local2, _local1, _visibleVP)); }; dispatchEvent(new VideoEvent(VideoEvent.SCRUB_FINISH, false, false, _local2, _local1, _visibleVP)); } public function set playPauseButton(_arg1:Sprite):void{ uiMgr.setControl(UIManager.PLAY_PAUSE_BUTTON, _arg1); } public function set backButton(_arg1:Sprite):void{ uiMgr.setControl(UIManager.BACK_BUTTON, _arg1); } public function set cuePoints(_arg1:Array):void{ if (!_componentInspectorSetting){ return; }; cuePointMgrs[0].processCuePointsProperty(_arg1); } public function findCuePoint(_arg1, _arg2:String="all"):Object{ var _local3:CuePointManager; _local3 = cuePointMgrs[_activeVP]; switch (_arg2){ case "event": return (_local3.getCuePoint(_local3.eventCuePoints, false, _arg1)); case "navigation": return (_local3.getCuePoint(_local3.navCuePoints, false, _arg1)); case "flv": return (_local3.getCuePoint(_local3.flvCuePoints, false, _arg1)); case "actionscript": return (_local3.getCuePoint(_local3.asCuePoints, false, _arg1)); case "all": default: return (_local3.getCuePoint(_local3.allCuePoints, false, _arg1)); }; } public function get seekBarScrubTolerance():Number{ return (uiMgr.seekBarScrubTolerance); } flvplayback_internal function handleVideoProgressEvent(_arg1:VideoProgressEvent):void{ var _local2:VideoPlayerState; var _local3:VideoProgressEvent; _local2 = videoPlayerStateDict[_arg1.currentTarget]; _local3 = VideoProgressEvent(_arg1.clone()); _local3.vp = _local2.index; dispatchEvent(_local3); } } }//package fl.video
Section 18
//flvplayback_internal (fl.video.flvplayback_internal) package fl.video { public namespace flvplayback_internal = "http://www.adobe.com/2007/flash/flvplayback/internal"; }//package fl.video
Section 19
//FPADManager (fl.video.FPADManager) package fl.video { import flash.net.*; import flash.events.*; public class FPADManager { flvplayback_internal var _parseResults:ParseResults; flvplayback_internal var rtmpURL:String; flvplayback_internal var _url:String; flvplayback_internal var xmlLoader:URLLoader; flvplayback_internal var xml:XML; flvplayback_internal var _uriParam:String; private var _owner:INCManager; public static const VERSION:String = "2.1.0.14"; public static const SHORT_VERSION:String = "2.1"; public function FPADManager(_arg1:INCManager){ _owner = _arg1; } flvplayback_internal function connectXML(_arg1:String, _arg2:String, _arg3:String, _arg4:ParseResults):Boolean{ _uriParam = _arg2; _parseResults = _arg4; _url = ((_arg1 + "uri=") + _parseResults.protocol); if (_parseResults.serverName != null){ _url = (_url + ("/" + _parseResults.serverName)); }; if (_parseResults.portNumber != null){ _url = (_url + (":" + _parseResults.portNumber)); }; if (_parseResults.wrappedURL != null){ _url = (_url + ("/?" + _parseResults.wrappedURL)); }; _url = (_url + ("/" + _parseResults.appName)); _url = (_url + _arg3); xml = new XML(); xmlLoader = new URLLoader(); xmlLoader.addEventListener(Event.COMPLETE, xmlLoadEventHandler); xmlLoader.addEventListener(IOErrorEvent.IO_ERROR, xmlLoadEventHandler); xmlLoader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, xmlLoadEventHandler); xmlLoader.load(new URLRequest(_url)); return (false); } flvplayback_internal function xmlLoadEventHandler(_arg1:Event):void{ var proxy:String; var e = _arg1; try { if (e.type != Event.COMPLETE){ _owner.helperDone(this, false); } else { xml = new XML(xmlLoader.data); if ((((xml == null)) || ((xml.localName() == null)))){ throw (new VideoError(VideoError.INVALID_XML, (("URL: \"" + _url) + "\" No root node found; if url is for an flv it must have .flv extension and take no parameters"))); } else { if (xml.localName() != "fpad"){ throw (new VideoError(VideoError.INVALID_XML, (("URL: \"" + _url) + "\" Root node not fpad"))); }; }; proxy = null; if ((((((xml.proxy.length() > 0)) && (xml.proxy.hasSimpleContent()))) && ((xml.proxy.*[0].nodeKind() == "text")))){ proxy = xml.proxy.*[0].toString(); }; if (proxy == null){ throw (new VideoError(VideoError.INVALID_XML, (("URL: \"" + _url) + "\" fpad xml requires proxy tag."))); }; rtmpURL = ((((_parseResults.protocol + "/") + proxy) + "/?") + _uriParam); _owner.helperDone(this, true); }; } catch(err:Error) { _owner.helperDone(this, false); throw (err); }; } } }//package fl.video
Section 20
//Icon (fl.video.Icon) package fl.video { import flash.display.*; public dynamic class Icon extends MovieClip { } }//package fl.video
Section 21
//INCManager (fl.video.INCManager) package fl.video { import flash.net.*; public interface INCManager { function set timeout(_arg1:uint):void; function get streamLength():Number; function get timeout():uint; function connectToURL(_arg1:String):Boolean; function get streamName():String; function get bitrate():Number; function get streamHeight():int; function helperDone(_arg1:Object, _arg2:Boolean):void; function getProperty(_arg1:String); function get streamWidth():int; function connectAgain():Boolean; function reconnect():void; function set videoPlayer(_arg1:VideoPlayer):void; function setProperty(_arg1:String, _arg2):void; function set bitrate(_arg1:Number):void; function get netConnection():NetConnection; function get videoPlayer():VideoPlayer; function get isRTMP():Boolean; function close():void; } }//package fl.video
Section 22
//IVPEvent (fl.video.IVPEvent) package fl.video { public interface IVPEvent { function set vp(_arg1:uint):void; function get vp():uint; function get type():String; } }//package fl.video
Section 23
//LayoutEvent (fl.video.LayoutEvent) package fl.video { import flash.events.*; import flash.geom.*; public class LayoutEvent extends Event { private var _oldBounds:Rectangle; private var _oldRegistrationBounds:Rectangle; public static const LAYOUT:String = "layout"; public function LayoutEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false, _arg4:Rectangle=null, _arg5:Rectangle=null){ super(_arg1, _arg2, _arg3); _oldBounds = _arg4; _oldRegistrationBounds = _arg5; } public function get oldRegistrationBounds():Rectangle{ return (_oldRegistrationBounds); } override public function clone():Event{ return (new LayoutEvent(type, bubbles, cancelable, Rectangle(oldBounds.clone()), Rectangle(oldRegistrationBounds.clone()))); } public function set oldRegistrationBounds(_arg1:Rectangle):void{ _oldRegistrationBounds = _arg1; } public function set oldBounds(_arg1:Rectangle):void{ _oldBounds = _arg1; } public function get oldBounds():Rectangle{ return (_oldBounds); } } }//package fl.video
Section 24
//MetadataEvent (fl.video.MetadataEvent) package fl.video { import flash.events.*; public class MetadataEvent extends Event implements IVPEvent { private var _info:Object; private var _vp:uint; public static const METADATA_RECEIVED:String = "metadataReceived"; public static const CUE_POINT:String = "cuePoint"; public function MetadataEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false, _arg4:Object=null, _arg5:uint=0){ super(_arg1, _arg2, _arg3); _info = _arg4; _vp = _arg5; } public function get vp():uint{ return (_vp); } public function set info(_arg1:Object):void{ _info = _arg1; } override public function clone():Event{ return (new MetadataEvent(type, bubbles, cancelable, info, vp)); } public function get info():Object{ return (_info); } public function set vp(_arg1:uint):void{ _vp = _arg1; } } }//package fl.video
Section 25
//NCManager (fl.video.NCManager) package fl.video { import flash.net.*; import flash.events.*; import flash.utils.*; public class NCManager implements INCManager { public const DEFAULT_TIMEOUT:uint = 60000; flvplayback_internal var _serverName:String; flvplayback_internal var _tryNCTimer:Timer; flvplayback_internal var _autoSenseBW:Boolean; flvplayback_internal var _fpadZone:Number; flvplayback_internal var _appName:String; flvplayback_internal var _ncConnected:Boolean; flvplayback_internal var _fpadMgr:FPADManager; flvplayback_internal var _bitrate:Number; flvplayback_internal var _timeoutTimer:Timer; flvplayback_internal var _wrappedURL:String; flvplayback_internal var _payload:Number; flvplayback_internal var _proxyType:String; flvplayback_internal var _nc:NetConnection; flvplayback_internal var _streamLength:Number; flvplayback_internal var _connTypeCounter:uint; flvplayback_internal var _streamWidth:int; flvplayback_internal var _ncUri:String; flvplayback_internal var _contentPath:String; flvplayback_internal var _smilMgr:SMILManager; flvplayback_internal var _streamHeight:int; flvplayback_internal var _isRTMP:Boolean; flvplayback_internal var _tryNC:Array; flvplayback_internal var _owner:VideoPlayer; flvplayback_internal var _streams:Array; flvplayback_internal var _portNumber:String; flvplayback_internal var _streamName:String; flvplayback_internal var _objectEncoding:uint; public var fallbackServerName:String; flvplayback_internal var _protocol:String; public static const VERSION:String = "2.1.0.14"; public static const SHORT_VERSION:String = "2.1"; public function NCManager(){ _fpadZone = NaN; _objectEncoding = ObjectEncoding.AMF0; _proxyType = "best"; _timeoutTimer = new Timer(DEFAULT_TIMEOUT); _timeoutTimer.addEventListener(TimerEvent.TIMER, this._onFMSConnectTimeOut); _tryNCTimer = new Timer(1500, 1); _tryNCTimer.addEventListener(TimerEvent.TIMER, this.nextConnect); initNCInfo(); initOtherInfo(); _nc = null; _ncConnected = false; } flvplayback_internal function initNCInfo():void{ _isRTMP = false; _serverName = null; _wrappedURL = null; _portNumber = null; _appName = null; } flvplayback_internal function cleanConns():void{ var _local1:uint; _tryNCTimer.reset(); if (_tryNC != null){ _local1 = 0; while (_local1 < _tryNC.length) { if (_tryNC[_local1] != null){ _tryNC[_local1].removeEventListener(NetStatusEvent.NET_STATUS, connectOnStatus); if (_tryNC[_local1].client.pending){ _tryNC[_local1].addEventListener(NetStatusEvent.NET_STATUS, disconnectOnStatus); } else { _tryNC[_local1].close(); }; }; _tryNC[_local1] = null; _local1++; }; _tryNC = null; }; } public function get streamWidth():int{ return (_streamWidth); } public function connectToURL(_arg1:String):Boolean{ var parseResults:ParseResults; var canReuse:Boolean; var name:String; var url = _arg1; initOtherInfo(); _contentPath = url; if ((((_contentPath == null)) || ((_contentPath == "")))){ throw (new VideoError(VideoError.INVALID_SOURCE)); }; parseResults = parseURL(_contentPath); if ((((parseResults.streamName == null)) || ((parseResults.streamName == "")))){ throw (new VideoError(VideoError.INVALID_SOURCE, url)); }; if (parseResults.isRTMP){ canReuse = canReuseOldConnection(parseResults); _isRTMP = true; _protocol = parseResults.protocol; _streamName = parseResults.streamName; _serverName = parseResults.serverName; _wrappedURL = parseResults.wrappedURL; _portNumber = parseResults.portNumber; _appName = parseResults.appName; if ((((((((_appName == null)) || ((_appName == "")))) || ((_streamName == null)))) || ((_streamName == "")))){ throw (new VideoError(VideoError.INVALID_SOURCE, url)); }; _autoSenseBW = (_streamName.indexOf(",") >= 0); return (((canReuse) || (connectRTMP()))); //unresolved jump }; name = parseResults.streamName; if ((((((((name.indexOf("?") < 0)) && ((((name.length < 4)) || (!((name.slice(-4).toLowerCase() == ".txt"))))))) && ((((name.length < 4)) || (!((name.slice(-4).toLowerCase() == ".xml"))))))) && ((((name.length < 5)) || (!((name.slice(-5).toLowerCase() == ".smil"))))))){ canReuse = canReuseOldConnection(parseResults); _isRTMP = false; _streamName = name; return (((canReuse) || (connectHTTP()))); }; if (name.indexOf("/fms/fpad") >= 0){ try { return (connectFPAD(name)); } catch(err:Error) { }; }; _smilMgr = new SMILManager(this); return (_smilMgr.connectXML(name)); } public function get streamName():String{ return (_streamName); } flvplayback_internal function reconnectOnStatus(_arg1:NetStatusEvent):void{ if ((((_arg1.info.code == "NetConnection.Connect.Failed")) || ((_arg1.info.code == "NetConnection.Connect.Rejected")))){ _nc = null; _ncConnected = false; _owner.ncReconnected(); }; } public function get videoPlayer():VideoPlayer{ return (_owner); } flvplayback_internal function getStreamLengthResult(_arg1:Number):void{ if (_arg1 > 0){ _streamLength = _arg1; }; _owner.ncConnected(); } flvplayback_internal function canReuseOldConnection(_arg1:ParseResults):Boolean{ if ((((_nc == null)) || (!(_ncConnected)))){ return (false); }; if (!_arg1.isRTMP){ if (!_isRTMP){ return (true); }; _owner.close(); _nc = null; _ncConnected = false; initNCInfo(); return (false); }; if (_isRTMP){ if ((((((((((_arg1.serverName == _serverName)) && ((_arg1.appName == _appName)))) && ((_arg1.protocol == _protocol)))) && ((_arg1.portNumber == _portNumber)))) && ((_arg1.wrappedURL == _wrappedURL)))){ return (true); }; _owner.close(); _nc = null; _ncConnected = false; }; initNCInfo(); return (false); } public function getProperty(_arg1:String){ switch (_arg1){ case "fallbackServerName": return (fallbackServerName); case "fpadZone": return (_fpadZone); case "objectEncoding": return (_objectEncoding); case "proxyType": return (_proxyType); default: throw (new VideoError(VideoError.UNSUPPORTED_PROPERTY, _arg1)); }; } flvplayback_internal function connectRTMP():Boolean{ var _local1:int; var _local2:uint; _timeoutTimer.stop(); _timeoutTimer.start(); _tryNC = new Array(); _local1 = ((((_protocol == "rtmp:/")) || ((_protocol == "rtmpe:/")))) ? 2 : 1; _local2 = 0; while (_local2 < _local1) { _tryNC[_local2] = new NetConnection(); _tryNC[_local2].objectEncoding = _objectEncoding; _tryNC[_local2].proxyType = _proxyType; if (!isNaN(_fpadZone)){ _tryNC[_local2].fpadZone = _fpadZone; }; _tryNC[_local2].client = new ConnectClient(this, _tryNC[_local2], _local2); _tryNC[_local2].addEventListener(NetStatusEvent.NET_STATUS, connectOnStatus); _local2++; }; nextConnect(); return (false); } public function reconnect():void{ if (!_isRTMP){ throw (new Error("Cannot call reconnect on an http connection")); }; _nc.client = new ReconnectClient(this); _nc.addEventListener(NetStatusEvent.NET_STATUS, reconnectOnStatus); _nc.connect(_ncUri, false); } public function helperDone(_arg1:Object, _arg2:Boolean):void{ var _local3:ParseResults; var _local4:String; var _local5:Boolean; var _local6:uint; var _local7:Number; if (!_arg2){ _nc = null; _ncConnected = false; _owner.ncConnected(); _smilMgr = null; _fpadMgr = null; return; }; _local5 = false; if (_arg1 == _fpadMgr){ _local4 = _fpadMgr.rtmpURL; _fpadMgr = null; _local3 = parseURL(_local4); _isRTMP = _local3.isRTMP; _protocol = _local3.protocol; _serverName = _local3.serverName; _portNumber = _local3.portNumber; _wrappedURL = _local3.wrappedURL; _appName = _local3.appName; _streamName = _local3.streamName; _local7 = _fpadZone; _fpadZone = NaN; connectRTMP(); _fpadZone = _local7; return; }; if (_arg1 != _smilMgr){ return; }; _streamWidth = _smilMgr.width; _streamHeight = _smilMgr.height; _local4 = _smilMgr.baseURLAttr[0]; if (((!((_local4 == null))) && (!((_local4 == ""))))){ if (_local4.charAt((_local4.length - 1)) != "/"){ _local4 = (_local4 + "/"); }; _local3 = parseURL(_local4); _isRTMP = _local3.isRTMP; _local5 = true; _streamName = _local3.streamName; if (_isRTMP){ _protocol = _local3.protocol; _serverName = _local3.serverName; _portNumber = _local3.portNumber; _wrappedURL = _local3.wrappedURL; _appName = _local3.appName; if ((((_appName == null)) || ((_appName == "")))){ _smilMgr = null; throw (new VideoError(VideoError.INVALID_XML, ("Base RTMP URL must include application name: " + _local4))); }; if (_smilMgr.baseURLAttr.length > 1){ _local3 = parseURL(_smilMgr.baseURLAttr[1]); if (_local3.serverName != null){ fallbackServerName = _local3.serverName; }; }; }; }; _streams = _smilMgr.videoTags; _smilMgr = null; _local6 = 0; while (_local6 < _streams.length) { _local4 = _streams[_local6].src; _local3 = parseURL(_local4); if (!_local5){ _isRTMP = _local3.isRTMP; _local5 = true; if (_isRTMP){ _protocol = _local3.protocol; if (_streams.length > 1){ throw (new VideoError(VideoError.INVALID_XML, "Cannot switch between multiple absolute RTMP URLs, must use meta tag base attribute.")); }; _serverName = _local3.serverName; _portNumber = _local3.portNumber; _wrappedURL = _local3.wrappedURL; _appName = _local3.appName; if ((((_appName == null)) || ((_appName == "")))){ throw (new VideoError(VideoError.INVALID_XML, ("Base RTMP URL must include application name: " + _local4))); }; } else { if ((((_local3.streamName.indexOf("/fms/fpad") >= 0)) && ((_streams.length > 1)))){ throw (new VideoError(VideoError.INVALID_XML, "Cannot switch between multiple absolute fpad URLs, must use meta tag base attribute.")); }; }; } else { if (((((((!((_streamName == null))) && (!((_streamName == ""))))) && (!(_local3.isRelative)))) && ((_streams.length > 1)))){ throw (new VideoError(VideoError.INVALID_XML, "When using meta tag base attribute, cannot use absolute URLs for video or ref tag src attributes.")); }; }; _streams[_local6].parseResults = _local3; _local6++; }; _autoSenseBW = (_streams.length > 1); if (!_autoSenseBW){ if (_streamName != null){ _streamName = (_streamName + _streams[0].parseResults.streamName); } else { _streamName = _streams[0].parseResults.streamName; }; if (((_isRTMP) && ((_streamName.substr(-4).toLowerCase() == ".flv")))){ _streamName = _streamName.substr(0, (_streamName.length - 4)); }; _streamLength = _streams[0].dur; }; if (_isRTMP){ connectRTMP(); } else { if (((!((_streamName == null))) && ((_streamName.indexOf("/fms/fpad") >= 0)))){ connectFPAD(_streamName); } else { if (_autoSenseBW){ bitrateMatch(); }; connectHTTP(); _owner.ncConnected(); }; }; } public function get netConnection():NetConnection{ return (_nc); } public function get bitrate():Number{ return (_bitrate); } public function setProperty(_arg1:String, _arg2):void{ switch (_arg1){ case "fallbackServerName": fallbackServerName = String(_arg2); break; case "fpadZone": _fpadZone = Number(_arg2); break; case "objectEncoding": _objectEncoding = uint(_arg2); break; case "proxyType": _proxyType = String(_arg2); break; default: throw (new VideoError(VideoError.UNSUPPORTED_PROPERTY, _arg1)); }; } public function get timeout():uint{ return (_timeoutTimer.delay); } public function set videoPlayer(_arg1:VideoPlayer):void{ _owner = _arg1; } flvplayback_internal function bitrateMatch():void{ var _local1:Number; var _local2:uint; var _local3:uint; _local1 = _bitrate; if (isNaN(_local1)){ _local1 = 0; }; _local2 = _streams.length; _local3 = 0; while (_local3 < _streams.length) { if (((isNaN(_streams[_local3].bitrate)) || ((_local1 >= _streams[_local3].bitrate)))){ _local2 = _local3; break; }; _local3++; }; if (_local2 == _streams.length){ throw (new VideoError(VideoError.NO_BITRATE_MATCH)); }; if (_streamName != null){ _streamName = (_streamName + _streams[_local2].src); } else { _streamName = _streams[_local2].src; }; if (((_isRTMP) && ((_streamName.substr(-4).toLowerCase() == ".flv")))){ _streamName = _streamName.substr(0, (_streamName.length - 4)); }; _streamLength = _streams[_local2].dur; } flvplayback_internal function disconnectOnStatus(_arg1:NetStatusEvent):void{ if (_arg1.info.code == "NetConnection.Connect.Success"){ _arg1.target.removeEventListener(NetStatusEvent.NET_STATUS, disconnectOnStatus); _arg1.target.close(); }; } flvplayback_internal function nextConnect(_arg1:TimerEvent=null):void{ var _local2:String; var _local3:String; var _local4:String; if (_connTypeCounter == 0){ _local2 = _protocol; _local3 = _portNumber; } else { _local3 = null; if (_protocol == "rtmp:/"){ _local2 = "rtmpt:/"; } else { if (_protocol == "rtmpe:/"){ _local2 = "rtmpte:/"; } else { _tryNC.pop(); return; }; }; }; _local4 = (((_local2 + ((_serverName)==null) ? "" : ((("/" + _serverName) + ((_local3)==null) ? "" : (":" + _local3)) + "/")) + ((_wrappedURL)==null) ? "" : (_wrappedURL + "/")) + _appName); _tryNC[_connTypeCounter].client.pending = true; _tryNC[_connTypeCounter].connect(_local4, _autoSenseBW); if (_connTypeCounter < (_tryNC.length - 1)){ _connTypeCounter++; _tryNCTimer.reset(); _tryNCTimer.start(); }; } flvplayback_internal function connectFPAD(_arg1:String):Boolean{ var _local2:Object; var _local3:String; var _local4:String; var _local5:String; var _local6:ParseResults; _local2 = /^(.+)(\?|\&)(uri=)([^&]+)(\&.*)?$/.exec(_arg1); if (_local2 == null){ throw (new VideoError(VideoError.INVALID_SOURCE, ("fpad url must include uri parameter: " + _arg1))); }; _local3 = (_local2[1] + _local2[2]); _local4 = _local2[4]; _local5 = ((_local2[5])==undefined) ? "" : _local2[5]; _local6 = parseURL(_local4); if (!_local6.isRTMP){ throw (new VideoError(VideoError.INVALID_SOURCE, ("fpad url uri parameter must be rtmp url: " + _arg1))); }; _fpadMgr = new FPADManager(this); return (_fpadMgr.connectXML(_local3, _local4, _local5, _local6)); } flvplayback_internal function connectHTTP():Boolean{ _nc = new NetConnection(); _nc.connect(null); _ncConnected = true; return (true); } public function get isRTMP():Boolean{ return (_isRTMP); } public function get streamLength():Number{ return (_streamLength); } public function connectAgain():Boolean{ var _local1:int; var _local2:String; _local1 = _appName.indexOf("/"); if (_local1 < 0){ _local1 = _streamName.indexOf("/"); if (_local1 >= 0){ _appName = (_appName + "/"); _appName = (_appName + _streamName.slice(0, _local1)); _streamName = _streamName.slice((_local1 + 1)); }; return (false); }; _local2 = _appName.slice((_local1 + 1)); _local2 = (_local2 + "/"); _local2 = (_local2 + _streamName); _streamName = _local2; _appName = _appName.slice(0, _local1); close(); _payload = 0; _connTypeCounter = 0; cleanConns(); connectRTMP(); return (true); } flvplayback_internal function parseURL(_arg1:String):ParseResults{ var _local2:ParseResults; var _local3:int; var _local4:int; var _local5:int; var _local6:int; var _local7:String; var _local8:ParseResults; _local2 = new ParseResults(); _local3 = 0; _local4 = _arg1.indexOf(":/", _local3); if (_local4 >= 0){ _local4 = (_local4 + 2); _local2.protocol = _arg1.slice(_local3, _local4).toLowerCase(); _local2.isRelative = false; } else { _local2.isRelative = true; }; if (((!((_local2.protocol == null))) && ((((((((((_local2.protocol == "rtmp:/")) || ((_local2.protocol == "rtmpt:/")))) || ((_local2.protocol == "rtmps:/")))) || ((_local2.protocol == "rtmpe:/")))) || ((_local2.protocol == "rtmpte:/")))))){ _local2.isRTMP = true; _local3 = _local4; if (_arg1.charAt(_local3) == "/"){ _local3++; _local5 = _arg1.indexOf(":", _local3); _local6 = _arg1.indexOf("/", _local3); if (_local6 < 0){ if (_local5 < 0){ _local2.serverName = _arg1.slice(_local3); } else { _local4 = _local5; _local2.portNumber = _arg1.slice(_local3, _local4); _local3 = (_local4 + 1); _local2.serverName = _arg1.slice(_local3); }; return (_local2); }; if ((((_local5 >= 0)) && ((_local5 < _local6)))){ _local4 = _local5; _local2.serverName = _arg1.slice(_local3, _local4); _local3 = (_local4 + 1); _local4 = _local6; _local2.portNumber = _arg1.slice(_local3, _local4); } else { _local4 = _local6; _local2.serverName = _arg1.slice(_local3, _local4); }; _local3 = (_local4 + 1); }; if (_arg1.charAt(_local3) == "?"){ _local7 = _arg1.slice((_local3 + 1)); _local8 = parseURL(_local7); if ((((_local8.protocol == null)) || (!(_local8.isRTMP)))){ throw (new VideoError(VideoError.INVALID_SOURCE, _arg1)); }; _local2.wrappedURL = "?"; _local2.wrappedURL = (_local2.wrappedURL + _local8.protocol); if (_local8.serverName != null){ _local2.wrappedURL = (_local2.wrappedURL + "/"); _local2.wrappedURL = (_local2.wrappedURL + _local8.serverName); }; if (_local8.portNumber != null){ _local2.wrappedURL = (_local2.wrappedURL + (":" + _local8.portNumber)); }; if (_local8.wrappedURL != null){ _local2.wrappedURL = (_local2.wrappedURL + "/"); _local2.wrappedURL = (_local2.wrappedURL + _local8.wrappedURL); }; _local2.appName = _local8.appName; _local2.streamName = _local8.streamName; return (_local2); }; _local4 = _arg1.indexOf("/", _local3); if (_local4 < 0){ _local2.appName = _arg1.slice(_local3); return (_local2); }; _local2.appName = _arg1.slice(_local3, _local4); _local3 = (_local4 + 1); _local4 = _arg1.indexOf("/", _local3); if (_local4 < 0){ _local2.streamName = _arg1.slice(_local3); if (_local2.streamName.slice(-4).toLowerCase() == ".flv"){ _local2.streamName = _local2.streamName.slice(0, -4); }; return (_local2); }; _local2.appName = (_local2.appName + "/"); _local2.appName = (_local2.appName + _arg1.slice(_local3, _local4)); _local3 = (_local4 + 1); _local2.streamName = _arg1.slice(_local3); if (_local2.streamName.slice(-4).toLowerCase() == ".flv"){ _local2.streamName = _local2.streamName.slice(0, -4); }; } else { _local2.isRTMP = false; _local2.streamName = _arg1; }; return (_local2); } flvplayback_internal function initOtherInfo():void{ _contentPath = null; _streamName = null; _streamWidth = -1; _streamHeight = -1; _streamLength = NaN; _streams = null; _autoSenseBW = false; _payload = 0; _connTypeCounter = 0; cleanConns(); } public function set timeout(_arg1:uint):void{ _timeoutTimer.delay = _arg1; } flvplayback_internal function _onFMSConnectTimeOut(_arg1:TimerEvent=null):void{ cleanConns(); _nc = null; _ncConnected = false; if (!connectAgain()){ _owner.ncConnected(); }; } public function get streamHeight():int{ return (_streamHeight); } flvplayback_internal function connectOnStatus(_arg1:NetStatusEvent):void{ var _local2:ParseResults; _arg1.target.client.pending = false; if (_arg1.info.code == "NetConnection.Connect.Success"){ _nc = _tryNC[_arg1.target.client.connIndex]; cleanConns(); } else { if ((((((_arg1.info.code == "NetConnection.Connect.Rejected")) && (!((_arg1.info.ex == null))))) && ((_arg1.info.ex.code == 302)))){ _connTypeCounter = 0; cleanConns(); _local2 = parseURL(_arg1.info.ex.redirect); if (_local2.isRTMP){ _protocol = _local2.protocol; _serverName = _local2.serverName; _wrappedURL = _local2.wrappedURL; _portNumber = _local2.portNumber; _appName = _local2.appName; if (_local2.streamName != null){ _appName = (_appName + ("/" + _local2.streamName)); }; connectRTMP(); } else { tryFallBack(); }; } else { if ((((((_arg1.info.code == "NetConnection.Connect.Failed")) || ((_arg1.info.code == "NetConnection.Connect.Rejected")))) && ((_arg1.target.client.connIndex == (_tryNC.length - 1))))){ if (!connectAgain()){ tryFallBack(); }; }; }; }; } flvplayback_internal function onReconnected():void{ _ncConnected = true; _owner.ncReconnected(); } flvplayback_internal function tryFallBack():void{ if ((((_serverName == fallbackServerName)) || ((fallbackServerName == null)))){ _nc = null; _ncConnected = false; _owner.ncConnected(); } else { _connTypeCounter = 0; cleanConns(); _serverName = fallbackServerName; connectRTMP(); }; } public function set bitrate(_arg1:Number):void{ if (!_isRTMP){ _bitrate = _arg1; }; } flvplayback_internal function onConnected(_arg1:NetConnection, _arg2:Number):void{ var _local3:Array; var _local4:uint; var _local5:String; _timeoutTimer.stop(); _arg1.removeEventListener(NetStatusEvent.NET_STATUS, connectOnStatus); _nc = _arg1; _ncUri = _nc.uri; _ncConnected = true; if (_autoSenseBW){ _bitrate = (_arg2 * 0x0400); if (_streams != null){ bitrateMatch(); } else { _local3 = _streamName.split(","); _local4 = 0; while (_local4 < _local3.length) { _local5 = stripFrontAndBackWhiteSpace(_local3[_local4]); if ((_local4 + 1) < _local3.length){ if (_arg2 <= Number(_local3[(_local4 + 1)])){ _streamName = _local5; break; }; } else { _streamName = _local5; break; }; _local4 = (_local4 + 2); }; if (_streamName.slice(-4).toLowerCase() == ".flv"){ _streamName = _streamName.slice(0, -4); }; }; }; if (((!(_owner.isLive)) && (isNaN(_streamLength)))){ _nc.call("getStreamLength", new Responder(getStreamLengthResult), _streamName); } else { _owner.ncConnected(); }; } public function close():void{ if (_nc){ _nc.close(); _ncConnected = false; }; } flvplayback_internal static function stripFrontAndBackWhiteSpace(_arg1:String):String{ var _local2:uint; var _local3:uint; var _local4:int; var _local5:int; _local3 = _arg1.length; _local4 = 0; _local5 = _local3; _local2 = 0; for (;_local2 < _local3;_local2++) { switch (_arg1.charCodeAt(_local2)){ case 9: case 10: case 13: case 32: continue; }; _local4 = _local2; break; }; _local2 = _local3; for (;_local2 >= 0;_local2--) { switch (_arg1.charCodeAt(_local2)){ case 9: case 10: case 13: case 32: continue; }; _local5 = (_local2 + 1); break; }; if (_local5 <= _local4){ return (""); }; return (_arg1.slice(_local4, _local5)); } } }//package fl.video
Section 26
//ParseResults (fl.video.ParseResults) package fl.video { public class ParseResults { public var portNumber:String; public var streamName:String; public var serverName:String; public var isRTMP:Boolean; public var appName:String; public var isRelative:Boolean; public var protocol:String; public var wrappedURL:String; } }//package fl.video
Section 27
//QueuedCommand (fl.video.QueuedCommand) package fl.video { public class QueuedCommand { public var type:uint; public var time:Number; public var url:String; public var isLive:Boolean; public static const LOAD:uint = 1; public static const STOP:uint = 3; public static const PLAY_WHEN_ENOUGH:uint = 5; public static const PLAY:uint = 0; public static const PAUSE:uint = 2; public static const SEEK:uint = 4; public function QueuedCommand(_arg1:uint, _arg2:String, _arg3:Boolean, _arg4:Number){ this.type = _arg1; this.url = _arg2; this.isLive = _arg3; this.time = _arg4; } } }//package fl.video
Section 28
//ReconnectClient (fl.video.ReconnectClient) package fl.video { public class ReconnectClient { public var owner:NCManager; public function ReconnectClient(_arg1:NCManager){ this.owner = _arg1; } public function close():void{ } public function onBWDone(... _args):void{ owner.onReconnected(); } } }//package fl.video
Section 29
//SkinErrorEvent (fl.video.SkinErrorEvent) package fl.video { import flash.events.*; public class SkinErrorEvent extends ErrorEvent { public static const SKIN_ERROR:String = "skinError"; public function SkinErrorEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false, _arg4:String=""){ super(_arg1, _arg2, _arg3, _arg4); } override public function clone():Event{ return (new SkinErrorEvent(type, bubbles, cancelable, text)); } } }//package fl.video
Section 30
//SMILManager (fl.video.SMILManager) package fl.video { import flash.net.*; import flash.events.*; public class SMILManager { flvplayback_internal var width:int; flvplayback_internal var xmlLoader:URLLoader; flvplayback_internal var xml:XML; flvplayback_internal var height:int; private var _url:String; flvplayback_internal var videoTags:Array; flvplayback_internal var baseURLAttr:Array; private var _owner:INCManager; public static const VERSION:String = "2.1.0.14"; public static const SHORT_VERSION:String = "2.1"; public function SMILManager(_arg1:INCManager){ _owner = _arg1; width = -1; height = -1; } flvplayback_internal function parseVideo(_arg1:XML):Object{ var _local2:Object; _local2 = new Object(); if (_arg1.@src.length() > 0){ _local2.src = _arg1.@src.toString(); }; if (_arg1.@["system-bitrate"].length() > 0){ _local2.bitrate = int(_arg1.@["system-bitrate"].toString()); }; if (_arg1.@dur.length() > 0){ _local2.dur = parseTime(_arg1.@dur.toString()); }; return (_local2); } flvplayback_internal function connectXML(_arg1:String):Boolean{ _url = fixURL(_arg1); xmlLoader = new URLLoader(); xmlLoader.addEventListener(Event.COMPLETE, xmlLoadEventHandler); xmlLoader.addEventListener(IOErrorEvent.IO_ERROR, xmlLoadEventHandler); xmlLoader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, xmlLoadEventHandler); xmlLoader.load(new URLRequest(_url)); return (false); } flvplayback_internal function parseSwitch(_arg1:XML):void{ var _local2:String; var _local3:XML; for (_local2 in _arg1.*) { _local3 = _arg1.*[_local2]; if (_local3.nodeKind() != "element"){ } else { switch (_local3.localName()){ case "video": case "ref": videoTags.push(parseVideo(_local3)); break; default: break; }; }; }; } flvplayback_internal function fixURL(_arg1:String):String{ var _local2:String; if (/^(http:|https:)/i.test(_arg1)){ _local2 = ((_arg1.indexOf("?"))>=0) ? "&" : "?"; return ((((_arg1 + _local2) + "FLVPlaybackVersion=") + SHORT_VERSION)); }; return (_arg1); } flvplayback_internal function xmlLoadEventHandler(_arg1:Event):void{ var e = _arg1; try { if (e.type != Event.COMPLETE){ _owner.helperDone(this, false); } else { baseURLAttr = new Array(); videoTags = new Array(); xml = new XML(xmlLoader.data); if ((((xml == null)) || ((xml.localName() == null)))){ throw (new VideoError(VideoError.INVALID_XML, (("URL: \"" + _url) + "\" No root node found; if url is for an flv it must have .flv extension and take no parameters"))); } else { if (xml.localName() != "smil"){ throw (new VideoError(VideoError.INVALID_XML, (("URL: \"" + _url) + "\" Root node not smil"))); }; }; checkForIllegalNodes(xml, "element", ["head", "body"]); if (xml.head.length() > 0){ parseHead(xml.head[0]); }; if (xml.body.length() < 1){ throw (new VideoError(VideoError.INVALID_XML, (("URL: \"" + _url) + "\" Tag body is required."))); } else { parseBody(xml.body[0]); }; _owner.helperDone(this, true); }; } catch(err:Error) { _owner.helperDone(this, false); throw (err); } finally { xmlLoader.removeEventListener(Event.COMPLETE, xmlLoadEventHandler); xmlLoader.removeEventListener(IOErrorEvent.IO_ERROR, xmlLoadEventHandler); xmlLoader.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, xmlLoadEventHandler); xmlLoader = null; }; } flvplayback_internal function checkForIllegalNodes(_arg1:XML, _arg2:String, _arg3:Array):void{ var _local4:String; var _local5:Boolean; var _local6:XML; var _local7:String; var _local8:String; for (_local4 in _arg1.*) { _local5 = false; _local6 = _arg1.*[_local4]; if (_local6.nodeKind() != _arg2){ } else { _local7 = _local6.localName(); for (_local8 in _arg3) { if (_arg3[_local8] == _local7){ _local5 = true; break; }; }; if (!_local5){ throw (new VideoError(VideoError.INVALID_XML, (((((((("URL: \"" + _url) + "\" ") + _arg2) + " ") + _local7) + " not supported in ") + _arg1.localName()) + " tag."))); }; }; }; } flvplayback_internal function parseHead(_arg1:XML):void{ checkForIllegalNodes(_arg1, "element", ["meta", "layout"]); if (_arg1.meta.length() > 0){ checkForIllegalNodes(_arg1.meta[0], "element", []); checkForIllegalNodes(_arg1.meta[0], "attribute", ["base"]); if (_arg1.meta.@base.length() > 0){ baseURLAttr.push(_arg1.meta.@base.toString()); }; }; if (_arg1.layout.length() > 0){ parseLayout(_arg1.layout[0]); }; } flvplayback_internal function parseBody(_arg1:XML):void{ var _local2:XML; var _local3:String; var _local4:Object; if (((!((_arg1.*.length() == 1))) || (!((_arg1.*[0].nodeKind() == "element"))))){ throw (new VideoError(VideoError.INVALID_XML, (((("URL: \"" + _url) + "\" Tag ") + _arg1.localName()) + " is required to contain exactly one tag."))); }; _local2 = _arg1.*[0]; _local3 = _local2.localName(); switch (_local3){ case "switch": parseSwitch(_local2); break; case "video": case "ref": _local4 = parseVideo(_local2); videoTags.push(_local4); break; default: throw (new VideoError(VideoError.INVALID_XML, (((((("URL: \"" + _url) + "\" Tag ") + _local3) + " not supported in ") + _arg1.localName()) + " tag."))); }; if (videoTags.length < 1){ throw (new VideoError(VideoError.INVALID_XML, (("URL: \"" + _url) + "\" At least one video of ref tag is required."))); }; } flvplayback_internal function parseTime(_arg1:String):Number{ var _local2:Object; var _local3:Number; var _local4:Number; _local2 = /^((\d+):)?(\d+):((\d+)(.\d+)?)$/.exec(_arg1); if (_local2 == null){ _local3 = Number(_arg1); if (((isNaN(_local3)) || ((_local3 < 0)))){ throw (new VideoError(VideoError.INVALID_XML, ("Invalid dur value: " + _arg1))); }; return (_local3); //unresolved jump }; _local4 = 0; _local4 = (_local4 + ((uint(_local2[2]) * 60) * 60)); _local4 = (_local4 + (uint(_local2[3]) * 60)); _local4 = (_local4 + Number(_local2[4])); return (_local4); } flvplayback_internal function parseLayout(_arg1:XML):void{ var _local2:XML; var _local3:Number; var _local4:Number; checkForIllegalNodes(_arg1, "element", ["root-layout"]); if (_arg1["root-layout"].length() > 1){ throw (new VideoError(VideoError.INVALID_XML, (("URL: \"" + _url) + "\" Only one base attribute supported in meta tag."))); }; if (_arg1["root-layout"].length() > 0){ _local2 = _arg1["root-layout"][0]; if (_local2.@width.length() > 0){ _local3 = Number(_local2.@width[0]); }; if (_local2.@height.length() > 0){ _local4 = Number(_local2.@height[0]); }; if (((((((isNaN(_local3)) || ((_local3 < 0)))) || (isNaN(_local4)))) || ((_local4 < 0)))){ throw (new VideoError(VideoError.INVALID_XML, (((("URL: \"" + _url) + "\" Tag ") + _arg1.localName()) + " requires attributes width and height. Width and height must be numbers greater than or equal to 0."))); }; width = Math.round(_local3); height = Math.round(_local4); }; } } }//package fl.video
Section 31
//SoundEvent (fl.video.SoundEvent) package fl.video { import flash.events.*; import flash.media.*; public class SoundEvent extends Event { private var _soundTransform:SoundTransform; public static const SOUND_UPDATE:String = "soundUpdate"; public function SoundEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false, _arg4:SoundTransform=null){ super(_arg1, _arg2, _arg3); _soundTransform = _arg4; } public function get soundTransform():SoundTransform{ return (_soundTransform); } override public function clone():Event{ return (new SoundEvent(type, bubbles, cancelable, soundTransform)); } } }//package fl.video
Section 32
//UIManager (fl.video.UIManager) package fl.video { import flash.net.*; import flash.events.*; import flash.display.*; import flash.geom.*; import flash.utils.*; public class UIManager { flvplayback_internal var cacheStageBGColor:uint; flvplayback_internal var _bufferingDelayTimer:Timer; public var ctrlDataDict:Dictionary; flvplayback_internal var _skinAutoHide:Boolean; flvplayback_internal var placeholderLeft:Number; flvplayback_internal var _playAfterScrub:Boolean; public var customClips:Array; flvplayback_internal var _skinFadeStartTime:int; flvplayback_internal var delayedControls:Array; flvplayback_internal var _lastScrubPos:Number; flvplayback_internal var _skinAutoHideLastMotionTime:int; flvplayback_internal var _volumeBarTimer:Timer; flvplayback_internal var cacheFLVPlaybackScaleMode:Array; flvplayback_internal var borderScale9Rects:Array; flvplayback_internal var _volumeBarScrubTolerance:Number; flvplayback_internal var fullScreenSourceRectMinAspectRatio:Number; flvplayback_internal var _skin:String; flvplayback_internal var fullScreenSourceRectMinHeight:uint; flvplayback_internal var videoRight:Number; flvplayback_internal var _bufferingBarHides:Boolean; flvplayback_internal var placeholderRight:Number; flvplayback_internal var cachedSoundLevel:Number; flvplayback_internal var videoBottom:Number; flvplayback_internal var border_mc:DisplayObject; flvplayback_internal var borderAlpha:Number; flvplayback_internal var borderColorTransform:ColorTransform; flvplayback_internal var _skinFadingTimer:Timer; flvplayback_internal var __visible:Boolean; flvplayback_internal var borderColor:uint; flvplayback_internal var cacheFLVPlaybackIndex:int; flvplayback_internal var cacheFLVPlaybackLocation:Rectangle; flvplayback_internal var _skinReady:Boolean; flvplayback_internal var controls:Array; flvplayback_internal var cacheFLVPlaybackAlign:Array; flvplayback_internal var _skinAutoHideMouseX:Number; flvplayback_internal var _skinAutoHideMouseY:Number; flvplayback_internal var layout_mc:Sprite; flvplayback_internal var cacheSkinAutoHide:Boolean; flvplayback_internal var cacheStageScaleMode:String; flvplayback_internal var videoTop:Number; flvplayback_internal var _skinFadingMaxTime:int; flvplayback_internal var placeholderTop:Number; flvplayback_internal var _lastVolumePos:Number; flvplayback_internal var mouseCaptureCtrl:int; flvplayback_internal var _seekBarScrubTolerance:Number; flvplayback_internal var borderPrevRect:Rectangle; flvplayback_internal var skinTemplate:Sprite; flvplayback_internal var _progressPercent:Number; flvplayback_internal var videoLeft:Number; flvplayback_internal var _fullScreenVideoWidth:Number; flvplayback_internal var _isMuted:Boolean; flvplayback_internal var _skinAutoHideTimer:Timer; flvplayback_internal var _fullScreenBgColor:uint; flvplayback_internal var _vc:FLVPlayback; flvplayback_internal var _bufferingOn:Boolean; flvplayback_internal var _seekBarTimer:Timer; flvplayback_internal var _controlsEnabled:Boolean; flvplayback_internal var _fullScreen:Boolean; flvplayback_internal var placeholderBottom:Number; flvplayback_internal var fullScreenSourceRectMinWidth:uint; flvplayback_internal var _fullScreenTakeOver:Boolean; flvplayback_internal var skin_mc:Sprite; flvplayback_internal var _fullScreenAccel:Boolean; flvplayback_internal var _fullScreenVideoHeight:Number; flvplayback_internal var skinLoadDelayCount:uint; flvplayback_internal var _skinFadingIn:Boolean; flvplayback_internal var _skinAutoHideMotionTimeout:int; flvplayback_internal var borderCopy:Sprite; flvplayback_internal var cacheStageAlign:String; flvplayback_internal var cacheFLVPlaybackParent:DisplayObjectContainer; flvplayback_internal var skinLoader:Loader; flvplayback_internal var _skinScaleMaximum:Number; public static const VOLUME_BAR_HIT:int = 12; public static const MUTE_OFF_BUTTON:int = 10; public static const BACK_BUTTON:int = 5; public static const FORWARD_BUTTON:int = 6; public static const STOP_BUTTON:int = 2; public static const NUM_BUTTONS:int = 13; public static const NORMAL_STATE:uint = 0; public static const SEEK_BAR_HANDLE:int = 3; public static const PLAY_BUTTON:int = 1; public static const MUTE_BUTTON:int = 15; public static const DOWN_STATE:uint = 2; public static const SEEK_BAR_SCRUB_TOLERANCE_DEFAULT:Number = 5; public static const FULL_SCREEN_OFF_BUTTON:int = 8; flvplayback_internal static const SKIN_AUTO_HIDE_MOTION_TIMEOUT_DEFAULT:Number = 3000; public static const SEEK_BAR:int = 17; public static const VOLUME_BAR_SCRUB_TOLERANCE_DEFAULT:Number = 0; public static const FULL_SCREEN_ON_BUTTON:int = 7; public static const FULL_SCREEN_BUTTON:int = 14; public static const BUFFERING_BAR:int = 16; public static const VERSION:String = "2.1.0.14"; public static const VOLUME_BAR_HANDLE:int = 11; public static const PAUSE_BUTTON:int = 0; flvplayback_internal static const SKIN_AUTO_HIDE_INTERVAL:Number = 200; public static const OVER_STATE:uint = 1; flvplayback_internal static const SKIN_FADING_INTERVAL:Number = 100; public static const VOLUME_BAR:int = 18; public static const SHORT_VERSION:String = "2.1"; public static const SEEK_BAR_INTERVAL_DEFAULT:Number = 250; flvplayback_internal static const SKIN_FADING_MAX_TIME_DEFAULT:Number = 500; public static const SEEK_BAR_HIT:int = 4; public static const PLAY_PAUSE_BUTTON:int = 13; public static const BUFFERING_DELAY_INTERVAL_DEFAULT:Number = 1000; public static const MUTE_ON_BUTTON:int = 9; public static const FULL_SCREEN_SOURCE_RECT_MIN_HEIGHT:uint = 240; public static const NUM_CONTROLS:int = 19; public static const VOLUME_BAR_INTERVAL_DEFAULT:Number = 250; public static const FULL_SCREEN_SOURCE_RECT_MIN_WIDTH:uint = 320; flvplayback_internal static var layoutNameToIndexMappings:Object = null; flvplayback_internal static var buttonSkinLinkageIDs:Array = ["upLinkageID", "overLinkageID", "downLinkageID"]; flvplayback_internal static var layoutNameArray:Array = ["pause_mc", "play_mc", "stop_mc", null, null, "back_mc", "forward_mc", null, null, null, null, null, null, "playpause_mc", "fullScreenToggle_mc", "volumeMute_mc", "bufferingBar_mc", "seekBar_mc", "volumeBar_mc", "seekBarHandle_mc", "seekBarHit_mc", "seekBarProgress_mc", "seekBarFullness_mc", "volumeBarHandle_mc", "volumeBarHit_mc", "volumeBarProgress_mc", "volumeBarFullness_mc", "progressFill_mc"]; flvplayback_internal static var skinClassPrefixes:Array = ["pauseButton", "playButton", "stopButton", null, null, "backButton", "forwardButton", "fullScreenButtonOn", "fullScreenButtonOff", "muteButtonOn", "muteButtonOff", null, null, null, null, null, "bufferingBar", "seekBar", "volumeBar"]; flvplayback_internal static var customComponentClassNames:Array = ["PauseButton", "PlayButton", "StopButton", null, null, "BackButton", "ForwardButton", null, null, null, null, null, null, "PlayPauseButton", "FullScreenButton", "MuteButton", "BufferingBar", "SeekBar", "VolumeBar"]; public function UIManager(_arg1:FLVPlayback){ var vc = _arg1; super(); _vc = vc; _skin = null; _skinAutoHide = false; cacheSkinAutoHide = _skinAutoHide; _skinFadingMaxTime = SKIN_FADING_MAX_TIME_DEFAULT; _skinAutoHideMotionTimeout = SKIN_AUTO_HIDE_MOTION_TIMEOUT_DEFAULT; _skinReady = true; __visible = false; _bufferingBarHides = false; _controlsEnabled = true; _lastScrubPos = 0; _lastVolumePos = 0; cachedSoundLevel = _vc.volume; _isMuted = false; controls = new Array(); customClips = null; ctrlDataDict = new Dictionary(true); skin_mc = null; skinLoader = null; skinTemplate = null; layout_mc = null; border_mc = null; borderCopy = null; borderPrevRect = null; borderScale9Rects = null; borderAlpha = 0.85; borderColor = 4697035; borderColorTransform = new ColorTransform(0, 0, 0, 0, 71, 171, 203, (0xFF * borderAlpha)); _seekBarScrubTolerance = SEEK_BAR_SCRUB_TOLERANCE_DEFAULT; _volumeBarScrubTolerance = VOLUME_BAR_SCRUB_TOLERANCE_DEFAULT; _bufferingOn = false; mouseCaptureCtrl = -1; _seekBarTimer = new Timer(SEEK_BAR_INTERVAL_DEFAULT); _seekBarTimer.addEventListener(TimerEvent.TIMER, seekBarListener); _volumeBarTimer = new Timer(VOLUME_BAR_INTERVAL_DEFAULT); _volumeBarTimer.addEventListener(TimerEvent.TIMER, volumeBarListener); _bufferingDelayTimer = new Timer(BUFFERING_DELAY_INTERVAL_DEFAULT, 1); _bufferingDelayTimer.addEventListener(TimerEvent.TIMER, doBufferingDelay); _skinAutoHideTimer = new Timer(SKIN_AUTO_HIDE_INTERVAL); _skinAutoHideTimer.addEventListener(TimerEvent.TIMER, skinAutoHideHitTest); _skinFadingTimer = new Timer(SKIN_FADING_INTERVAL); _skinFadingTimer.addEventListener(TimerEvent.TIMER, skinFadeMore); _vc.addEventListener(MetadataEvent.METADATA_RECEIVED, handleIVPEvent); _vc.addEventListener(VideoEvent.PLAYHEAD_UPDATE, handleIVPEvent); _vc.addEventListener(VideoProgressEvent.PROGRESS, handleIVPEvent); _vc.addEventListener(VideoEvent.STATE_CHANGE, handleIVPEvent); _vc.addEventListener(VideoEvent.READY, handleIVPEvent); _vc.addEventListener(LayoutEvent.LAYOUT, handleLayoutEvent); _vc.addEventListener(AutoLayoutEvent.AUTO_LAYOUT, handleLayoutEvent); _vc.addEventListener(SoundEvent.SOUND_UPDATE, handleSoundEvent); _vc.addEventListener(Event.ADDED_TO_STAGE, handleEvent); _vc.addEventListener(Event.REMOVED_FROM_STAGE, handleEvent); fullScreenSourceRectMinWidth = FULL_SCREEN_SOURCE_RECT_MIN_WIDTH; fullScreenSourceRectMinHeight = FULL_SCREEN_SOURCE_RECT_MIN_HEIGHT; fullScreenSourceRectMinAspectRatio = (FULL_SCREEN_SOURCE_RECT_MIN_WIDTH / FULL_SCREEN_SOURCE_RECT_MIN_HEIGHT); _fullScreen = false; _fullScreenTakeOver = true; _fullScreenBgColor = 0; _fullScreenAccel = false; if (_vc.stage != null){ try { _fullScreen = (_vc.stage.displayState == StageDisplayState.FULL_SCREEN); _vc.stage.addEventListener(FullScreenEvent.FULL_SCREEN, handleFullScreenEvent); } catch(se:SecurityError) { }; }; if (layoutNameToIndexMappings == null){ initLayoutNameToIndexMappings(); }; } public function get seekBarScrubTolerance():Number{ return (_seekBarScrubTolerance); } flvplayback_internal function removeButtonListeners(_arg1:Sprite):void{ if (_arg1 == null){ return; }; _arg1.removeEventListener(MouseEvent.ROLL_OVER, handleButtonEvent); _arg1.removeEventListener(MouseEvent.ROLL_OUT, handleButtonEvent); _arg1.removeEventListener(MouseEvent.MOUSE_DOWN, handleButtonEvent); _arg1.removeEventListener(MouseEvent.CLICK, handleButtonEvent); _arg1.removeEventListener(Event.ENTER_FRAME, skinButtonControl); } public function set skinFadeTime(_arg1:int):void{ _skinFadingMaxTime = _arg1; } public function get skinFadeTime():int{ return (_skinFadingMaxTime); } flvplayback_internal function finishLoad(_arg1:Event):void{ var i:int; var cachedActivePlayerIndex:int; var state:String; var j:int; var e = _arg1; try { skinLoadDelayCount++; if (skinLoadDelayCount < 2){ return; } else { _vc.removeEventListener(Event.ENTER_FRAME, finishLoad); }; i = 0; while (i < NUM_CONTROLS) { if (delayedControls[i] != undefined){ setControl(i, delayedControls[i]); }; i = (i + 1); }; if (_fullScreenTakeOver){ enterFullScreenTakeOver(); } else { exitFullScreenTakeOver(); }; layoutSkin(); setupSkinAutoHide(false); skin_mc.visible = __visible; _vc.addChild(skin_mc); _skinReady = true; _vc.skinLoaded(); cachedActivePlayerIndex = _vc.activeVideoPlayerIndex; _vc.activeVideoPlayerIndex = _vc.visibleVideoPlayerIndex; state = _vc.state; j = 0; while (j < NUM_CONTROLS) { if (controls[j] == undefined){ } else { setEnabledAndVisibleForState(j, state); if (j < NUM_BUTTONS){ skinButtonControl(controls[j]); }; }; j = (j + 1); }; _vc.activeVideoPlayerIndex = cachedActivePlayerIndex; } catch(err:Error) { _vc.skinError(err.message); removeSkin(); }; } flvplayback_internal function downloadSkin():void{ if (skinLoader == null){ skinLoader = new Loader(); skinLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, handleLoad); skinLoader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, handleLoadErrorEvent); skinLoader.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR, handleLoadErrorEvent); }; skinLoader.load(new URLRequest(_skin)); } flvplayback_internal function removeSkin():void{ var i:int; if (skinLoader != null){ try { skinLoader.close(); } catch(e1:Error) { }; skinLoader = null; }; if (skin_mc != null){ i = 0; while (i < NUM_CONTROLS) { if (controls[i] == undefined){ } else { if (i < NUM_BUTTONS){ removeButtonListeners(controls[i]); }; delete ctrlDataDict[controls[i]]; delete controls[i]; }; i = (i + 1); }; try { skin_mc.parent.removeChild(skin_mc); } catch(e2:Error) { }; skin_mc = null; }; skinTemplate = null; layout_mc = null; border_mc = null; borderCopy = null; borderPrevRect = null; borderScale9Rects = null; } flvplayback_internal function positionBar(_arg1:Sprite, _arg2:String, _arg3:Number):void{ var ctrlData:ControlData; var bar:DisplayObject; var barData:ControlData; var ctrl = _arg1; var type = _arg2; var percent = _arg3; try { if ((((ctrl["positionBar"] is Function)) && (ctrl["positionBar"](type, percent)))){ return; }; } catch(re2:ReferenceError) { }; ctrlData = ctrlDataDict[ctrl]; bar = ctrlData[(type + "_mc")]; if (bar == null){ return; }; barData = ctrlDataDict[bar]; if (bar.parent == ctrl){ if (barData.fill_mc == null){ bar.scaleX = ((barData.origScaleX * percent) / 100); } else { positionMaskedFill(bar, percent); }; } else { bar.x = (ctrl.x + barData.leftMargin); bar.y = (ctrl.y + barData.origY); if (barData.fill_mc == null){ bar.width = ((((ctrl.width - barData.leftMargin) - barData.rightMargin) * percent) / 100); } else { positionMaskedFill(bar, percent); }; }; } flvplayback_internal function setupButtonSkin(_arg1:int):Sprite{ var _local2:String; var _local3:Sprite; var _local4:ControlData; _local2 = skinClassPrefixes[_arg1]; if (_local2 == null){ return (null); }; _local3 = new Sprite(); _local4 = new ControlData(this, _local3, null, _arg1); ctrlDataDict[_local3] = _local4; _local4.state_mc = new Array(); _local4.state_mc[NORMAL_STATE] = setupButtonSkinState(_local3, skinTemplate, (_local2 + "NormalState")); _local4.state_mc[NORMAL_STATE].visible = true; _local4.state_mc[OVER_STATE] = setupButtonSkinState(_local3, skinTemplate, (_local2 + "OverState"), _local4.state_mc[NORMAL_STATE]); _local4.state_mc[DOWN_STATE] = setupButtonSkinState(_local3, skinTemplate, (_local2 + "DownState"), _local4.state_mc[NORMAL_STATE]); _local4.disabled_mc = setupButtonSkinState(_local3, skinTemplate, (_local2 + "DisabledState"), _local4.state_mc[NORMAL_STATE]); return (_local3); } public function get skinReady():Boolean{ return (_skinReady); } public function get skinAutoHide():Boolean{ return (_skinAutoHide); } flvplayback_internal function dispatchMessage(_arg1:int):void{ var cachedActivePlayerIndex:int; var ctrl:Sprite; var ctrlData:ControlData; var handle:Sprite; var index = _arg1; if ((((index == SEEK_BAR_HANDLE)) || ((index == SEEK_BAR_HIT)))){ _vc._scrubStart(); }; cachedActivePlayerIndex = _vc.activeVideoPlayerIndex; _vc.activeVideoPlayerIndex = _vc.visibleVideoPlayerIndex; switch (index){ case PAUSE_BUTTON: _vc.pause(); break; case PLAY_BUTTON: _vc.play(); break; case STOP_BUTTON: _vc.stop(); break; case SEEK_BAR_HIT: case SEEK_BAR_HANDLE: ctrl = controls[SEEK_BAR]; ctrlData = ctrlDataDict[ctrl]; calcPercentageFromHandle(ctrl); _lastScrubPos = ctrlData.percentage; if (index == SEEK_BAR_HIT){ handle = controls[SEEK_BAR_HANDLE]; handle.x = handle.parent.mouseX; handle.y = handle.parent.mouseY; }; _vc.removeEventListener(VideoEvent.PLAYHEAD_UPDATE, handleIVPEvent); if (((_vc.playing) || (_vc.buffering))){ _playAfterScrub = true; } else { if (_vc.state != VideoState.SEEKING){ _playAfterScrub = false; }; }; _seekBarTimer.start(); startHandleDrag(ctrl); _vc.pause(); break; case VOLUME_BAR_HIT: case VOLUME_BAR_HANDLE: ctrl = controls[VOLUME_BAR]; ctrlData = ctrlDataDict[ctrl]; calcPercentageFromHandle(ctrl); _lastVolumePos = ctrlData.percentage; if (index == VOLUME_BAR_HIT){ handle = controls[VOLUME_BAR_HANDLE]; handle.x = handle.parent.mouseX; handle.y = handle.parent.mouseY; }; _vc.removeEventListener(SoundEvent.SOUND_UPDATE, handleSoundEvent); _volumeBarTimer.start(); startHandleDrag(ctrl); break; case BACK_BUTTON: _vc.seekToPrevNavCuePoint(); break; case FORWARD_BUTTON: _vc.seekToNextNavCuePoint(); break; case MUTE_ON_BUTTON: if (!_isMuted){ _isMuted = true; cachedSoundLevel = _vc.volume; _vc.volume = 0; setEnabledAndVisibleForState(MUTE_OFF_BUTTON, VideoState.PLAYING); skinButtonControl(controls[MUTE_OFF_BUTTON]); setEnabledAndVisibleForState(MUTE_ON_BUTTON, VideoState.PLAYING); skinButtonControl(controls[MUTE_ON_BUTTON]); }; break; case MUTE_OFF_BUTTON: if (_isMuted){ _isMuted = false; _vc.volume = cachedSoundLevel; setEnabledAndVisibleForState(MUTE_OFF_BUTTON, VideoState.PLAYING); skinButtonControl(controls[MUTE_OFF_BUTTON]); setEnabledAndVisibleForState(MUTE_ON_BUTTON, VideoState.PLAYING); skinButtonControl(controls[MUTE_ON_BUTTON]); }; break; case FULL_SCREEN_ON_BUTTON: if (((!(_fullScreen)) && (!((_vc.stage == null))))){ enterFullScreenDisplayState(); setEnabledAndVisibleForState(FULL_SCREEN_OFF_BUTTON, VideoState.PLAYING); skinButtonControl(controls[FULL_SCREEN_OFF_BUTTON]); setEnabledAndVisibleForState(FULL_SCREEN_ON_BUTTON, VideoState.PLAYING); skinButtonControl(controls[FULL_SCREEN_ON_BUTTON]); }; break; case FULL_SCREEN_OFF_BUTTON: if (((_fullScreen) && (!((_vc.stage == null))))){ try { _vc.stage.displayState = StageDisplayState.NORMAL; } catch(se:SecurityError) { }; setEnabledAndVisibleForState(FULL_SCREEN_OFF_BUTTON, VideoState.PLAYING); skinButtonControl(controls[FULL_SCREEN_OFF_BUTTON]); setEnabledAndVisibleForState(FULL_SCREEN_ON_BUTTON, VideoState.PLAYING); skinButtonControl(controls[FULL_SCREEN_ON_BUTTON]); }; break; default: throw (new Error("Unknown ButtonControl")); }; _vc.activeVideoPlayerIndex = cachedActivePlayerIndex; } flvplayback_internal function handleFullScreenEvent(_arg1:FullScreenEvent):void{ _fullScreen = _arg1.fullScreen; setEnabledAndVisibleForState(FULL_SCREEN_OFF_BUTTON, VideoState.PLAYING); skinButtonControl(controls[FULL_SCREEN_OFF_BUTTON]); setEnabledAndVisibleForState(FULL_SCREEN_ON_BUTTON, VideoState.PLAYING); skinButtonControl(controls[FULL_SCREEN_ON_BUTTON]); if (((_fullScreen) && (_fullScreenTakeOver))){ enterFullScreenTakeOver(); } else { if (!_fullScreen){ exitFullScreenTakeOver(); }; }; } flvplayback_internal function handleLayoutEvent(_arg1:LayoutEvent):void{ var _local2:int; if (((((((_fullScreen) && (_fullScreenTakeOver))) && (_fullScreenAccel))) && (!((_vc.stage == null))))){ if (((((((((!((_vc.registrationX == 0))) || (!((_vc.registrationY == 0))))) || (!((_vc.parent == _vc.stage))))) || (!((_vc.registrationWidth == _vc.stage.stageWidth))))) || (!((_vc.registrationHeight == _vc.stage.stageHeight))))){ _vc.stage.displayState = StageDisplayState.NORMAL; return; }; _local2 = _vc.activeVideoPlayerIndex; _vc.activeVideoPlayerIndex = _vc.visibleVideoPlayerIndex; if (_vc.align != VideoAlign.CENTER){ cacheFLVPlaybackAlign[_vc.visibleVideoPlayerIndex] = _vc.align; _vc.align = VideoAlign.CENTER; }; if (_vc.scaleMode != VideoScaleMode.MAINTAIN_ASPECT_RATIO){ cacheFLVPlaybackScaleMode[_vc.visibleVideoPlayerIndex] = _vc.scaleMode; _vc.scaleMode = VideoScaleMode.MAINTAIN_ASPECT_RATIO; _vc.activeVideoPlayerIndex = _local2; return; }; _vc.activeVideoPlayerIndex = _local2; }; layoutSkin(); setupSkinAutoHide(false); } flvplayback_internal function seekBarListener(_arg1:TimerEvent):void{ var _local2:int; var _local3:Sprite; var _local4:ControlData; var _local5:Number; _local2 = _vc.activeVideoPlayerIndex; _vc.activeVideoPlayerIndex = _vc.visibleVideoPlayerIndex; _local3 = controls[SEEK_BAR]; if (_local3 == null){ return; }; _local4 = ctrlDataDict[_local3]; calcPercentageFromHandle(_local3); _local5 = _local4.percentage; if (_arg1 == null){ _seekBarTimer.stop(); if (_local5 != _lastScrubPos){ _vc.seekPercent(_local5); }; _vc.addEventListener(VideoEvent.PLAYHEAD_UPDATE, handleIVPEvent); if (_playAfterScrub){ _vc.play(); }; } else { if (_vc.getVideoPlayer(_vc.visibleVideoPlayerIndex).state == VideoState.SEEKING){ } else { if ((((((((_seekBarScrubTolerance <= 0)) || ((Math.abs((_local5 - _lastScrubPos)) > _seekBarScrubTolerance)))) || ((_local5 < _seekBarScrubTolerance)))) || ((_local5 > (100 - _seekBarScrubTolerance))))){ if (_local5 != _lastScrubPos){ _lastScrubPos = _local5; _vc.seekPercent(_local5); }; }; }; }; _vc.activeVideoPlayerIndex = _local2; } public function get seekBarInterval():Number{ return (_seekBarTimer.delay); } public function set skinAutoHide(_arg1:Boolean):void{ if (_arg1 == _skinAutoHide){ return; }; _skinAutoHide = _arg1; cacheSkinAutoHide = _arg1; setupSkinAutoHide(true); } flvplayback_internal function setCustomClip(_arg1:DisplayObject):void{ var dCopy:DisplayObject; var ctrlData:ControlData; var scale9Grid:Rectangle; var diff:Number; var numBorderBitmaps:int; var i:int; var lastXDim:Number; var floorLastXDim:Number; var lastYDim:Number; var floorLastYDim:Number; var newRect:Rectangle; var dispObj = _arg1; dCopy = new (dispObj["constructor"]); skin_mc.addChild(dCopy); ctrlData = new ControlData(this, dCopy, null, -1); ctrlDataDict[dCopy] = ctrlData; ctrlData.avatar = dispObj; customClips.push(dCopy); if (dispObj.name == "border_mc"){ border_mc = dCopy; try { borderCopy = (ctrlData.avatar["colorMe"]) ? new Sprite() : null; } catch(re:ReferenceError) { borderCopy = null; }; if (borderCopy != null){ border_mc.visible = false; scale9Grid = border_mc.scale9Grid; scale9Grid.x = Math.round(scale9Grid.x); scale9Grid.y = Math.round(scale9Grid.y); scale9Grid.width = Math.round(scale9Grid.width); diff = ((scale9Grid.x + scale9Grid.width) - border_mc.scale9Grid.right); if (diff > 0.5){ scale9Grid.width--; } else { if (diff < -0.5){ scale9Grid.width++; }; }; scale9Grid.height = Math.round(scale9Grid.height); diff = ((scale9Grid.y + scale9Grid.height) - border_mc.scale9Grid.bottom); if (diff > 0.5){ scale9Grid.height--; } else { if (diff < -0.5){ scale9Grid.height++; }; }; if (scale9Grid != null){ borderScale9Rects = new Array(); lastXDim = (border_mc.width - (scale9Grid.x + scale9Grid.width)); floorLastXDim = Math.floor(lastXDim); if ((lastXDim - floorLastXDim) < 0.05){ lastXDim = floorLastXDim; } else { lastXDim = (floorLastXDim + 1); }; lastYDim = (border_mc.height - (scale9Grid.y + scale9Grid.height)); floorLastYDim = Math.floor(lastYDim); if ((lastYDim - floorLastYDim) < 0.05){ lastYDim = floorLastYDim; } else { lastYDim = (floorLastYDim + 1); }; newRect = new Rectangle(0, 0, scale9Grid.x, scale9Grid.y); borderScale9Rects.push(((((newRect.width < 1)) || ((newRect.height < 1)))) ? null : newRect); newRect = new Rectangle(scale9Grid.x, 0, scale9Grid.width, scale9Grid.y); borderScale9Rects.push(((((newRect.width < 1)) || ((newRect.height < 1)))) ? null : newRect); newRect = new Rectangle((scale9Grid.x + scale9Grid.width), 0, lastXDim, scale9Grid.y); borderScale9Rects.push(((((newRect.width < 1)) || ((newRect.height < 1)))) ? null : newRect); newRect = new Rectangle(0, scale9Grid.y, scale9Grid.x, scale9Grid.height); borderScale9Rects.push(((((newRect.width < 1)) || ((newRect.height < 1)))) ? null : newRect); newRect = new Rectangle(scale9Grid.x, scale9Grid.y, scale9Grid.width, scale9Grid.height); borderScale9Rects.push(((((newRect.width < 1)) || ((newRect.height < 1)))) ? null : newRect); newRect = new Rectangle((scale9Grid.x + scale9Grid.width), scale9Grid.y, lastXDim, scale9Grid.height); borderScale9Rects.push(((((newRect.width < 1)) || ((newRect.height < 1)))) ? null : newRect); newRect = new Rectangle(0, (scale9Grid.y + scale9Grid.height), scale9Grid.x, lastYDim); borderScale9Rects.push(((((newRect.width < 1)) || ((newRect.height < 1)))) ? null : newRect); newRect = new Rectangle(scale9Grid.x, (scale9Grid.y + scale9Grid.height), scale9Grid.width, lastYDim); borderScale9Rects.push(((((newRect.width < 1)) || ((newRect.height < 1)))) ? null : newRect); newRect = new Rectangle((scale9Grid.x + scale9Grid.width), (scale9Grid.y + scale9Grid.height), lastXDim, lastYDim); borderScale9Rects.push(((((newRect.width < 1)) || ((newRect.height < 1)))) ? null : newRect); i = 0; while (i < borderScale9Rects.length) { if (borderScale9Rects[i] != null){ break; }; i = (i + 1); }; if (i >= borderScale9Rects.length){ borderScale9Rects = null; }; }; numBorderBitmaps = ((borderScale9Rects)==null) ? 1 : 9; i = 0; while (i < numBorderBitmaps) { if ((((borderScale9Rects == null)) || (!((borderScale9Rects[i] == null))))){ borderCopy.addChild(new Bitmap()); }; i = (i + 1); }; skin_mc.addChild(borderCopy); borderPrevRect = null; }; }; } public function get fullScreenSkinDelay():int{ return (_skinAutoHideMotionTimeout); } flvplayback_internal function doBufferingDelay(_arg1:TimerEvent):void{ var _local2:int; _bufferingDelayTimer.reset(); _local2 = _vc.activeVideoPlayerIndex; _vc.activeVideoPlayerIndex = _vc.visibleVideoPlayerIndex; if (_vc.state == VideoState.BUFFERING){ _bufferingOn = true; handleIVPEvent(new VideoEvent(VideoEvent.STATE_CHANGE, false, false, VideoState.BUFFERING, NaN, _vc.visibleVideoPlayerIndex)); }; _vc.activeVideoPlayerIndex = _local2; } flvplayback_internal function volumeBarListener(_arg1:TimerEvent):void{ var _local2:Sprite; var _local3:ControlData; var _local4:Number; var _local5:Boolean; _local2 = controls[VOLUME_BAR]; if (_local2 == null){ return; }; _local3 = ctrlDataDict[_local2]; calcPercentageFromHandle(_local2); _local4 = _local3.percentage; _local5 = (_arg1 == null); if (_local5){ _volumeBarTimer.stop(); _vc.addEventListener(SoundEvent.SOUND_UPDATE, handleSoundEvent); }; if (((((((((_local5) || ((_volumeBarScrubTolerance <= 0)))) || ((Math.abs((_local4 - _lastVolumePos)) > _volumeBarScrubTolerance)))) || ((_local4 < _volumeBarScrubTolerance)))) || ((_local4 > (100 - _volumeBarScrubTolerance))))){ if (_local4 != _lastVolumePos){ if (_isMuted){ cachedSoundLevel = (_local4 / 100); } else { _vc.volume = (_local4 / 100); }; _lastVolumePos = _local4; }; }; } public function get visible():Boolean{ return (__visible); } flvplayback_internal function fixUpBar(_arg1:DisplayObject, _arg2:String, _arg3:DisplayObject, _arg4:String):void{ var ctrlData:ControlData; var bar:DisplayObject; var barData:ControlData; var definitionHolder = _arg1; var propPrefix = _arg2; var ctrl = _arg3; var name = _arg4; ctrlData = ctrlDataDict[ctrl]; if (ctrlData[name] != null){ return; }; try { bar = ctrl[name]; } catch(re:ReferenceError) { bar = null; }; if (bar == null){ try { bar = createSkin(definitionHolder, (propPrefix + "LinkageID")); } catch(ve:VideoError) { bar = null; }; if (bar == null){ return; }; if (ctrl.parent != null){ if (getBooleanPropSafe(ctrl, (propPrefix + "Below"))){ ctrl.parent.addChildAt(bar, ctrl.parent.getChildIndex(ctrl)); } else { ctrl.parent.addChild(bar); }; }; }; ctrlData[name] = bar; barData = ctrlDataDict[bar]; if (barData == null){ barData = new ControlData(this, bar, ctrl, -1); ctrlDataDict[bar] = barData; }; } public function get volumeBarInterval():Number{ return (_volumeBarTimer.delay); } public function get bufferingBarHidesAndDisablesOthers():Boolean{ return (_bufferingBarHides); } flvplayback_internal function calcLayoutControl(_arg1:DisplayObject):Rectangle{ var rect:Rectangle; var ctrlData:ControlData; var anchorRight:Boolean; var anchorLeft:Boolean; var anchorTop:Boolean; var anchorBottom:Boolean; var ctrl = _arg1; rect = new Rectangle(); if (ctrl == null){ return (rect); }; ctrlData = ctrlDataDict[ctrl]; if (ctrlData == null){ return (rect); }; if (ctrlData.avatar == null){ return (rect); }; anchorRight = false; anchorLeft = true; anchorTop = false; anchorBottom = true; try { anchorRight = ctrlData.avatar["anchorRight"]; } catch(re1:ReferenceError) { anchorRight = false; }; try { anchorLeft = ctrlData.avatar["anchorLeft"]; } catch(re1:ReferenceError) { anchorLeft = true; }; try { anchorTop = ctrlData.avatar["anchorTop"]; } catch(re1:ReferenceError) { anchorTop = false; }; try { anchorBottom = ctrlData.avatar["anchorBottom"]; } catch(re1:ReferenceError) { anchorBottom = true; }; if (anchorRight){ if (anchorLeft){ rect.x = ((ctrlData.avatar.x - placeholderLeft) + videoLeft); rect.width = ((((ctrlData.avatar.x + ctrlData.avatar.width) - placeholderRight) + videoRight) - rect.x); ctrlData.origWidth = NaN; } else { rect.x = ((ctrlData.avatar.x - placeholderRight) + videoRight); rect.width = ctrl.width; }; } else { rect.x = ((ctrlData.avatar.x - placeholderLeft) + videoLeft); rect.width = ctrl.width; }; if (anchorTop){ if (anchorBottom){ rect.y = ((ctrlData.avatar.y - placeholderTop) + videoTop); rect.height = ((((ctrlData.avatar.y + ctrlData.avatar.height) - placeholderBottom) + videoBottom) - rect.y); ctrlData.origHeight = NaN; } else { rect.y = ((ctrlData.avatar.y - placeholderTop) + videoTop); rect.height = ctrl.height; }; } else { rect.y = ((ctrlData.avatar.y - placeholderBottom) + videoBottom); rect.height = ctrl.height; }; try { if ((ctrl["layoutSelf"] is Function)){ rect = ctrl["layoutSelf"](rect); }; } catch(re3:ReferenceError) { }; return (rect); } flvplayback_internal function skinFadeMore(_arg1:TimerEvent):void{ var _local2:Number; if (((((!(_skinFadingIn)) && ((skin_mc.alpha <= 0.5)))) || (((_skinFadingIn) && ((skin_mc.alpha >= 0.95)))))){ skin_mc.visible = _skinFadingIn; skin_mc.alpha = 1; _skinFadingTimer.stop(); } else { _local2 = ((getTimer() - _skinFadeStartTime) / _skinFadingMaxTime); if (!_skinFadingIn){ _local2 = (1 - _local2); }; if (_local2 < 0){ _local2 = 0; } else { if (_local2 > 1){ _local2 = 1; }; }; skin_mc.alpha = _local2; }; } flvplayback_internal function bitmapCopyBorder():void{ var _local1:Rectangle; var _local2:BitmapData; var _local3:Matrix; var _local4:Number; var _local5:Number; var _local6:Rectangle; var _local7:int; var _local8:Number; var _local9:Number; var _local10:int; var _local11:Bitmap; var _local12:Number; var _local13:Number; if ((((border_mc == null)) || ((borderCopy == null)))){ return; }; _local1 = border_mc.getBounds(skin_mc); if ((((borderPrevRect == null)) || (!(borderPrevRect.equals(_local1))))){ borderCopy.x = _local1.x; borderCopy.y = _local1.y; _local3 = new Matrix(border_mc.scaleX, 0, 0, border_mc.scaleY, 0, 0); if (borderScale9Rects == null){ _local2 = new BitmapData(_local1.width, _local1.height, true, 0); _local2.draw(border_mc, _local3, borderColorTransform); Bitmap(borderCopy.getChildAt(0)).bitmapData = _local2; } else { _local4 = 0; _local5 = 0; _local6 = new Rectangle(0, 0, 0, 0); _local7 = 0; _local8 = 0; if (borderScale9Rects[3] != null){ _local8 = (_local8 + borderScale9Rects[3].width); }; if (borderScale9Rects[5] != null){ _local8 = (_local8 + borderScale9Rects[5].width); }; _local9 = 0; if (borderScale9Rects[1] != null){ _local9 = (_local9 + borderScale9Rects[1].height); }; if (borderScale9Rects[7] != null){ _local9 = (_local9 + borderScale9Rects[7].height); }; _local10 = 0; while (_local10 < borderScale9Rects.length) { if ((_local10 % 3) == 0){ _local4 = 0; _local5 = (_local5 + _local6.height); }; if (borderScale9Rects[_local10] == null){ } else { _local6 = Rectangle(borderScale9Rects[_local10]).clone(); _local3.a = 1; if ((((((_local10 == 1)) || ((_local10 == 4)))) || ((_local10 == 7)))){ _local12 = ((_local1.width - _local8) / _local6.width); _local6.x = (_local6.x * _local12); _local6.width = (_local6.width * _local12); _local6.width = Math.round(_local6.width); _local3.a = (_local3.a * _local12); }; _local3.tx = -(_local6.x); _local6.x = 0; _local3.d = 1; if ((((_local10 >= 3)) && ((_local10 <= 5)))){ _local13 = ((_local1.height - _local9) / _local6.height); _local6.y = (_local6.y * _local13); _local6.height = (_local6.height * _local13); _local6.height = Math.round(_local6.height); _local3.d = (_local3.d * _local13); }; _local3.ty = -(_local6.y); _local6.y = 0; _local2 = new BitmapData(_local6.width, _local6.height, true, 0); _local2.draw(border_mc, _local3, borderColorTransform, null, _local6, false); _local11 = Bitmap(borderCopy.getChildAt(_local7)); _local7++; _local11.bitmapData = _local2; _local11.x = _local4; _local11.y = _local5; _local4 = (_local4 + _local6.width); }; _local10++; }; }; borderPrevRect = _local1; }; } flvplayback_internal function resetPlayPause():void{ var _local1:int; if (controls[PLAY_PAUSE_BUTTON] == undefined){ return; }; _local1 = PAUSE_BUTTON; while (_local1 <= PLAY_BUTTON) { removeButtonListeners(controls[_local1]); delete ctrlDataDict[controls[_local1]]; delete controls[_local1]; _local1++; }; delete ctrlDataDict[controls[PLAY_PAUSE_BUTTON]]; delete controls[PLAY_PAUSE_BUTTON]; } public function setControl(_arg1:int, _arg2:Sprite):void{ var ctrlData:ControlData; var index = _arg1; var ctrl = _arg2; if (ctrl == controls[index]){ return; }; switch (index){ case PAUSE_BUTTON: case PLAY_BUTTON: resetPlayPause(); break; case PLAY_PAUSE_BUTTON: if ((((ctrl == null)) || (!((ctrl.parent == skin_mc))))){ resetPlayPause(); }; if (ctrl != null){ setControl(PAUSE_BUTTON, Sprite(ctrl.getChildByName("pause_mc"))); setControl(PLAY_BUTTON, Sprite(ctrl.getChildByName("play_mc"))); }; break; case FULL_SCREEN_BUTTON: if (ctrl != null){ setControl(FULL_SCREEN_ON_BUTTON, Sprite(ctrl.getChildByName("on_mc"))); setControl(FULL_SCREEN_OFF_BUTTON, Sprite(ctrl.getChildByName("off_mc"))); }; break; case MUTE_BUTTON: if (ctrl != null){ setControl(MUTE_ON_BUTTON, Sprite(ctrl.getChildByName("on_mc"))); setControl(MUTE_OFF_BUTTON, Sprite(ctrl.getChildByName("off_mc"))); }; break; }; if (controls[index] != null){ try { delete controls[index]["uiMgr"]; } catch(re:ReferenceError) { }; if (index < NUM_BUTTONS){ removeButtonListeners(controls[index]); }; delete ctrlDataDict[controls[index]]; delete controls[index]; }; if (ctrl == null){ return; }; ctrlData = ctrlDataDict[ctrl]; if (ctrlData == null){ ctrlData = new ControlData(this, ctrl, null, index); ctrlDataDict[ctrl] = ctrlData; } else { ctrlData.index = index; }; if (index >= NUM_BUTTONS){ controls[index] = ctrl; switch (index){ case SEEK_BAR: addBarControl(ctrl); break; case VOLUME_BAR: addBarControl(ctrl); ctrlData.percentage = (_vc.volume * 100); break; case BUFFERING_BAR: if (ctrl.parent == skin_mc){ finishAddBufferingBar(); } else { ctrl.addEventListener(Event.ENTER_FRAME, finishAddBufferingBar); }; break; }; setEnabledAndVisibleForState(index, _vc.state); } else { controls[index] = ctrl; addButtonControl(ctrl); }; } flvplayback_internal function createSkin(_arg1:DisplayObject, _arg2:String):DisplayObject{ var stateSkinDesc:*; var theClass:Class; var definitionHolder = _arg1; var skinName = _arg2; try { stateSkinDesc = definitionHolder[skinName]; if ((stateSkinDesc is String)){ try { theClass = Class(definitionHolder.loaderInfo.applicationDomain.getDefinition(stateSkinDesc)); } catch(err1:Error) { theClass = Class(getDefinitionByName(stateSkinDesc)); }; return (DisplayObject(new (theClass))); } else { if ((stateSkinDesc is Class)){ return (new (stateSkinDesc)); } else { if ((stateSkinDesc is DisplayObject)){ return (stateSkinDesc); }; }; }; } catch(err2:Error) { throw (new VideoError(VideoError.MISSING_SKIN_STYLE, skinName)); }; return (null); } flvplayback_internal function addButtonControl(_arg1:Sprite):void{ var _local2:ControlData; var _local3:int; if (_arg1 == null){ return; }; _local2 = ctrlDataDict[_arg1]; _arg1.mouseChildren = false; _local3 = _vc.activeVideoPlayerIndex; _vc.activeVideoPlayerIndex = _vc.visibleVideoPlayerIndex; _local2.state = NORMAL_STATE; setEnabledAndVisibleForState(_local2.index, _vc.state); _arg1.addEventListener(MouseEvent.ROLL_OVER, handleButtonEvent); _arg1.addEventListener(MouseEvent.ROLL_OUT, handleButtonEvent); _arg1.addEventListener(MouseEvent.MOUSE_DOWN, handleButtonEvent); _arg1.addEventListener(MouseEvent.CLICK, handleButtonEvent); if (_arg1.parent == skin_mc){ skinButtonControl(_arg1); } else { _arg1.addEventListener(Event.ENTER_FRAME, skinButtonControl); }; _vc.activeVideoPlayerIndex = _local3; } flvplayback_internal function hookUpCustomComponents():void{ var searchHash:Object; var doTheSearch:Boolean; var i:int; var dispObj:DisplayObject; var name:String; var index:int; var ctrl:Sprite; searchHash = new Object(); doTheSearch = false; i = 0; while (i < NUM_CONTROLS) { if (controls[i] == null){ searchHash[customComponentClassNames[i]] = i; doTheSearch = true; }; i = (i + 1); }; if (!doTheSearch){ return; }; i = 0; while (i < _vc.parent.numChildren) { dispObj = _vc.parent.getChildAt(i); name = getQualifiedClassName(dispObj); if (searchHash[name] != undefined){ if (typeof(searchHash[name]) == "number"){ index = int(searchHash[name]); try { ctrl = Sprite(dispObj); if ((((((index >= NUM_BUTTONS)) || ((ctrl["placeholder_mc"] is DisplayObject)))) && ((ctrl["uiMgr"] == null)))){ setControl(index, ctrl); searchHash[name] = ctrl; }; } catch(err:Error) { }; }; }; i = (i + 1); }; } flvplayback_internal function positionHandle(_arg1:Sprite):void{ var _local2:ControlData; var _local3:Sprite; var _local4:ControlData; var _local5:Number; var _local6:Number; if (_arg1 == null){ return; }; if ((((_arg1["positionHandle"] is Function)) && (_arg1["positionHandle"]()))){ return; }; _local2 = ctrlDataDict[_arg1]; _local3 = _local2.handle_mc; if (_local3 == null){ return; }; _local4 = ctrlDataDict[_local3]; _local5 = (isNaN(_local2.origWidth)) ? _arg1.width : _local2.origWidth; _local6 = ((_local5 - _local4.rightMargin) - _local4.leftMargin); _local3.x = ((_arg1.x + _local4.leftMargin) + ((_local6 * _local2.percentage) / 100)); _local3.y = (_arg1.y + _local4.origY); if (_local2.fullness_mc != null){ positionBar(_arg1, "fullness", _local2.percentage); }; } flvplayback_internal function exitFullScreenTakeOver():void{ var fullScreenBG:Sprite; var cacheActiveIndex:int; var i:int; var vp:VideoPlayer; if (cacheFLVPlaybackParent == null){ return; }; _vc.removeEventListener(Event.ADDED_TO_STAGE, handleEvent); _vc.stage.removeEventListener(FullScreenEvent.FULL_SCREEN, handleFullScreenEvent); try { if (_fullScreenAccel){ _vc.stage.fullScreenSourceRect = new Rectangle(0, 0, -1, -1); } else { _vc.stage.align = cacheStageAlign; _vc.stage.scaleMode = cacheStageScaleMode; }; fullScreenBG = Sprite(_vc.getChildByName("fullScreenBG")); if (fullScreenBG != null){ _vc.removeChild(fullScreenBG); }; if (_vc.parent != cacheFLVPlaybackParent){ cacheFLVPlaybackParent.addChildAt(_vc, cacheFLVPlaybackIndex); } else { cacheFLVPlaybackParent.setChildIndex(_vc, cacheFLVPlaybackIndex); }; cacheActiveIndex = _vc.activeVideoPlayerIndex; i = 0; while (i < _vc.videoPlayers.length) { vp = (_vc.videoPlayers[i] as VideoPlayer); if (vp != null){ _vc.activeVideoPlayerIndex = i; if (cacheFLVPlaybackScaleMode[i] != undefined){ _vc.scaleMode = cacheFLVPlaybackScaleMode[i]; }; if (cacheFLVPlaybackAlign[i]){ _vc.align = cacheFLVPlaybackAlign[i]; }; }; i = (i + 1); }; _vc.activeVideoPlayerIndex = cacheActiveIndex; _vc.registrationX = cacheFLVPlaybackLocation.x; _vc.registrationY = cacheFLVPlaybackLocation.y; _vc.setSize(cacheFLVPlaybackLocation.width, cacheFLVPlaybackLocation.height); } catch(err:Error) { }; _vc.addEventListener(Event.ADDED_TO_STAGE, handleEvent); _vc.stage.addEventListener(FullScreenEvent.FULL_SCREEN, handleFullScreenEvent); _fullScreen = false; _fullScreenAccel = false; cacheStageAlign = null; cacheStageScaleMode = null; cacheFLVPlaybackParent = null; cacheFLVPlaybackIndex = 0; cacheFLVPlaybackLocation = null; cacheFLVPlaybackScaleMode = null; cacheFLVPlaybackAlign = null; if (_skinAutoHide != cacheSkinAutoHide){ _skinAutoHide = cacheSkinAutoHide; setupSkinAutoHide(false); }; } flvplayback_internal function positionMaskedFill(_arg1:DisplayObject, _arg2:Number):void{ var ctrlData:ControlData; var fill:DisplayObject; var mask:DisplayObject; var fillData:ControlData; var maskData:ControlData; var slideReveal:Boolean; var maskSprite:Sprite; var barData:ControlData; var ctrl = _arg1; var percent = _arg2; if (ctrl == null){ return; }; ctrlData = ctrlDataDict[ctrl]; fill = ctrlData.fill_mc; if (fill == null){ return; }; mask = ctrlData.mask_mc; if (ctrlData.mask_mc == null){ try { var _local4 = ctrl["mask_mc"]; mask = _local4; ctrlData.mask_mc = _local4; } catch(re:ReferenceError) { ctrlData.mask_mc = null; }; if (ctrlData.mask_mc == null){ maskSprite = new Sprite(); _local4 = maskSprite; mask = _local4; ctrlData.mask_mc = _local4; maskSprite.graphics.beginFill(0xFFFFFF); maskSprite.graphics.drawRect(0, 0, 1, 1); maskSprite.graphics.endFill(); barData = ctrlDataDict[fill]; maskSprite.x = barData.origX; maskSprite.y = barData.origY; maskSprite.width = barData.origWidth; maskSprite.height = barData.origHeight; maskSprite.visible = false; fill.parent.addChild(maskSprite); fill.mask = maskSprite; }; if (ctrlData.mask_mc != null){ calcBarMargins(ctrl, "mask", true); }; }; fillData = ctrlDataDict[fill]; maskData = ctrlDataDict[mask]; try { slideReveal = fill["slideReveal"]; } catch(re:ReferenceError) { slideReveal = false; }; if (fill.parent == ctrl){ if (slideReveal){ fill.x = ((maskData.origX - fillData.origWidth) + ((fillData.origWidth * percent) / 100)); } else { mask.width = ((fillData.origWidth * percent) / 100); }; } else { if (fill.parent == ctrl.parent){ if (slideReveal){ mask.x = (ctrl.x + maskData.leftMargin); mask.y = (ctrl.y + maskData.topMargin); mask.width = ((ctrl.width - maskData.rightMargin) - maskData.leftMargin); mask.height = ((ctrl.height - maskData.topMargin) - maskData.bottomMargin); fill.x = ((mask.x - fillData.origWidth) + ((maskData.origWidth * percent) / 100)); fill.y = (ctrl.y + fillData.topMargin); } else { fill.x = (ctrl.x + fillData.leftMargin); fill.y = (ctrl.y + fillData.topMargin); mask.x = fill.x; mask.y = fill.y; mask.width = ((((ctrl.width - fillData.rightMargin) - fillData.leftMargin) * percent) / 100); mask.height = ((ctrl.height - fillData.topMargin) - fillData.bottomMargin); }; }; }; } flvplayback_internal function calcPercentageFromHandle(_arg1:Sprite):void{ var _local2:ControlData; var _local3:Sprite; var _local4:ControlData; var _local5:Number; var _local6:Number; var _local7:Number; if (_arg1 == null){ return; }; _local2 = ctrlDataDict[_arg1]; if ((((_arg1["calcPercentageFromHandle"] is Function)) && (_arg1["calcPercentageFromHandle"]()))){ if (_local2.percentage < 0){ _local2.percentage = 0; }; if (_local2.percentage > 100){ _local2.percentage = 100; }; return; }; _local3 = _local2.handle_mc; if (_local3 == null){ return; }; _local4 = ctrlDataDict[_local3]; _local5 = (isNaN(_local2.origWidth)) ? _arg1.width : _local2.origWidth; _local6 = ((_local5 - _local4.rightMargin) - _local4.leftMargin); _local7 = (_local3.x - (_arg1.x + _local4.leftMargin)); _local2.percentage = ((_local7 / _local6) * 100); if (_local2.percentage < 0){ _local2.percentage = 0; }; if (_local2.percentage > 100){ _local2.percentage = 100; }; if (_local2.fullness_mc != null){ positionBar(_arg1, "fullness", _local2.percentage); }; } flvplayback_internal function handleRelease(_arg1:int):void{ var _local2:int; _local2 = _vc.activeVideoPlayerIndex; _vc.activeVideoPlayerIndex = _vc.visibleVideoPlayerIndex; if (_arg1 == SEEK_BAR){ seekBarListener(null); } else { if (_arg1 == VOLUME_BAR){ volumeBarListener(null); }; }; stopHandleDrag(controls[_arg1]); _vc.activeVideoPlayerIndex = _local2; if (_arg1 == SEEK_BAR){ _vc._scrubFinish(); }; } flvplayback_internal function setTwoButtonHolderSkin(_arg1:int, _arg2:int, _arg3:String, _arg4:int, _arg5:String):Sprite{ var _local6:Sprite; var _local7:Sprite; var _local8:ControlData; _local7 = new Sprite(); _local8 = new ControlData(this, _local7, null, _arg1); ctrlDataDict[_local7] = _local8; skin_mc.addChild(_local7); _local6 = setupButtonSkin(_arg2); _local6.name = _arg3; _local6.visible = true; _local7.addChild(_local6); _local6 = setupButtonSkin(_arg4); _local6.name = _arg5; _local6.visible = false; _local7.addChild(_local6); return (_local7); } flvplayback_internal function skinAutoHideHitTest(_arg1:TimerEvent, _arg2:Boolean=true):void{ var visibleVP:VideoPlayer; var hit:Boolean; var e = _arg1; var doFade = _arg2; try { if (!__visible){ skin_mc.visible = false; } else { if (_vc.stage != null){ visibleVP = _vc.getVideoPlayer(_vc.visibleVideoPlayerIndex); hit = visibleVP.hitTestPoint(_vc.stage.mouseX, _vc.stage.mouseY, true); if (((((_fullScreen) && (_fullScreenTakeOver))) && (!((e == null))))){ if ((((_vc.stage.mouseX == _skinAutoHideMouseX)) && ((_vc.stage.mouseY == _skinAutoHideMouseY)))){ if ((getTimer() - _skinAutoHideLastMotionTime) > _skinAutoHideMotionTimeout){ hit = false; }; } else { _skinAutoHideLastMotionTime = getTimer(); _skinAutoHideMouseX = _vc.stage.mouseX; _skinAutoHideMouseY = _vc.stage.mouseY; }; }; if (((!(hit)) && (!((border_mc == null))))){ hit = border_mc.hitTestPoint(_vc.stage.mouseX, _vc.stage.mouseY, true); if (((((hit) && (_fullScreen))) && (_fullScreenTakeOver))){ _skinAutoHideLastMotionTime = getTimer(); }; }; if (((!(doFade)) || ((_skinFadingMaxTime <= 0)))){ _skinFadingTimer.stop(); skin_mc.visible = hit; skin_mc.alpha = 1; } else { if (((((((hit) && (skin_mc.visible))) && (((!(_skinFadingTimer.running)) || (_skinFadingIn))))) || (((!(hit)) && (((!(skin_mc.visible)) || (((_skinFadingTimer.running) && (!(_skinFadingIn)))))))))){ } else { _skinFadingTimer.stop(); _skinFadingIn = hit; if (((_skinFadingIn) && ((skin_mc.alpha == 1)))){ skin_mc.alpha = 0; }; _skinFadeStartTime = getTimer(); _skinFadingTimer.start(); skin_mc.visible = true; }; }; }; }; } catch(se:SecurityError) { _skinAutoHideTimer.stop(); _skinFadingTimer.stop(); skin_mc.visible = __visible; skin_mc.alpha = 1; }; } public function set seekBarInterval(_arg1:Number):void{ if (_seekBarTimer.delay == _arg1){ return; }; _seekBarTimer.delay = _arg1; } flvplayback_internal function layoutControl(_arg1:DisplayObject):void{ var _local2:ControlData; var _local3:Rectangle; var _local4:Sprite; var _local5:Rectangle; if (_arg1 == null){ return; }; _local2 = ctrlDataDict[_arg1]; if (_local2 == null){ return; }; if (_local2.avatar == null){ return; }; _local3 = calcLayoutControl(_arg1); _arg1.x = _local3.x; _arg1.y = _local3.y; _arg1.width = _local3.width; _arg1.height = _local3.height; switch (_local2.index){ case SEEK_BAR: case VOLUME_BAR: if (((!((_local2.hit_mc == null))) && ((_local2.hit_mc.parent == skin_mc)))){ _local4 = _local2.hit_mc; _local5 = calcLayoutControl(_local4); _local4.x = _local5.x; _local4.y = _local5.y; _local4.width = _local5.width; _local4.height = _local5.height; }; if (_local2.progress_mc != null){ if (isNaN(_progressPercent)){ _progressPercent = (_vc.isRTMP) ? 100 : 0; }; positionBar(Sprite(_arg1), "progress", _progressPercent); }; positionHandle(Sprite(_arg1)); break; case BUFFERING_BAR: positionMaskedFill(_arg1, 100); break; }; } public function set fullScreenSkinDelay(_arg1:int):void{ _skinAutoHideMotionTimeout = _arg1; } flvplayback_internal function captureMouseEvent(_arg1:MouseEvent):void{ _arg1.stopPropagation(); } flvplayback_internal function handleMouseUp(_arg1:MouseEvent):void{ var _local2:Sprite; var _local3:ControlData; _local2 = controls[mouseCaptureCtrl]; if (_local2 != null){ _local3 = ctrlDataDict[_local2]; _local3.state = (_local2.hitTestPoint(_arg1.stageX, _arg1.stageY, true)) ? OVER_STATE : NORMAL_STATE; skinButtonControl(_local2); switch (mouseCaptureCtrl){ case SEEK_BAR_HANDLE: case SEEK_BAR_HIT: handleRelease(SEEK_BAR); break; case VOLUME_BAR_HANDLE: case VOLUME_BAR_HIT: handleRelease(VOLUME_BAR); break; }; }; _arg1.currentTarget.removeEventListener(MouseEvent.MOUSE_DOWN, captureMouseEvent, true); _arg1.currentTarget.removeEventListener(MouseEvent.MOUSE_OUT, captureMouseEvent, true); _arg1.currentTarget.removeEventListener(MouseEvent.MOUSE_OVER, captureMouseEvent, true); _arg1.currentTarget.removeEventListener(MouseEvent.MOUSE_UP, handleMouseUp); _arg1.currentTarget.removeEventListener(MouseEvent.ROLL_OUT, captureMouseEvent, true); _arg1.currentTarget.removeEventListener(MouseEvent.ROLL_OVER, captureMouseEvent, true); } public function set visible(_arg1:Boolean):void{ if (__visible == _arg1){ return; }; __visible = _arg1; if (!__visible){ skin_mc.visible = false; } else { setupSkinAutoHide(false); }; } public function get bufferingDelayInterval():Number{ return (_bufferingDelayTimer.delay); } public function set fullScreenBackgroundColor(_arg1:uint):void{ if (_fullScreenBgColor != _arg1){ _fullScreenBgColor = _arg1; if (_vc){ }; }; } public function get fullScreenTakeOver():Boolean{ return (_fullScreenTakeOver); } public function set skin(_arg1:String):void{ var _local2:String; if (_arg1 == null){ removeSkin(); _skin = null; _skinReady = true; } else { _local2 = String(_arg1); if (_arg1 == _skin){ return; }; removeSkin(); _skin = String(_arg1); _skinReady = (_skin == ""); if (!_skinReady){ downloadSkin(); }; }; } public function set volumeBarInterval(_arg1:Number):void{ if (_volumeBarTimer.delay == _arg1){ return; }; _volumeBarTimer.delay = _arg1; } flvplayback_internal function setSkin(_arg1:int, _arg2:DisplayObject):void{ var _local3:Sprite; var _local4:ControlData; var _local5:String; if (_arg1 >= NUM_CONTROLS){ return; }; if (_arg1 < NUM_BUTTONS){ _local3 = setupButtonSkin(_arg1); skin_mc.addChild(_local3); _local4 = ctrlDataDict[_local3]; } else { switch (_arg1){ case PLAY_PAUSE_BUTTON: _local3 = setTwoButtonHolderSkin(_arg1, PLAY_BUTTON, "play_mc", PAUSE_BUTTON, "pause_mc"); _local4 = ctrlDataDict[_local3]; break; case FULL_SCREEN_BUTTON: _local3 = setTwoButtonHolderSkin(_arg1, FULL_SCREEN_ON_BUTTON, "on_mc", FULL_SCREEN_OFF_BUTTON, "off_mc"); _local4 = ctrlDataDict[_local3]; break; case MUTE_BUTTON: _local3 = setTwoButtonHolderSkin(_arg1, MUTE_ON_BUTTON, "on_mc", MUTE_OFF_BUTTON, "off_mc"); _local4 = ctrlDataDict[_local3]; break; case SEEK_BAR: case VOLUME_BAR: _local5 = skinClassPrefixes[_arg1]; _local3 = Sprite(createSkin(skinTemplate, _local5)); if (_local3 != null){ skin_mc.addChild(_local3); _local4 = new ControlData(this, _local3, null, _arg1); ctrlDataDict[_local3] = _local4; _local4.progress_mc = setupBarSkinPart(_local3, _arg2, skinTemplate, (_local5 + "Progress"), "progress_mc"); _local4.fullness_mc = setupBarSkinPart(_local3, _arg2, skinTemplate, (_local5 + "Fullness"), "fullness_mc"); _local4.hit_mc = Sprite(setupBarSkinPart(_local3, _arg2, skinTemplate, (_local5 + "Hit"), "hit_mc")); _local4.handle_mc = Sprite(setupBarSkinPart(_local3, _arg2, skinTemplate, (_local5 + "Handle"), "handle_mc", true)); _local3.width = _arg2.width; _local3.height = _arg2.height; }; break; case BUFFERING_BAR: _local5 = skinClassPrefixes[_arg1]; _local3 = Sprite(createSkin(skinTemplate, _local5)); if (_local3 != null){ skin_mc.addChild(_local3); _local4 = new ControlData(this, _local3, null, _arg1); ctrlDataDict[_local3] = _local4; _local4.fill_mc = setupBarSkinPart(_local3, _arg2, skinTemplate, (_local5 + "Fill"), "fill_mc"); _local3.width = _arg2.width; _local3.height = _arg2.height; }; break; }; }; _local4.avatar = _arg2; ctrlDataDict[_local3] = _local4; delayedControls[_arg1] = _local3; } public function set bufferingBarHidesAndDisablesOthers(_arg1:Boolean):void{ _bufferingBarHides = _arg1; } flvplayback_internal function handleSoundEvent(_arg1:SoundEvent):void{ var _local2:Sprite; var _local3:ControlData; if (((_isMuted) && ((_arg1.soundTransform.volume > 0)))){ _isMuted = false; setEnabledAndVisibleForState(MUTE_OFF_BUTTON, VideoState.PLAYING); skinButtonControl(controls[MUTE_OFF_BUTTON]); setEnabledAndVisibleForState(MUTE_ON_BUTTON, VideoState.PLAYING); skinButtonControl(controls[MUTE_ON_BUTTON]); }; _local2 = controls[VOLUME_BAR]; if (_local2 != null){ _local3 = ctrlDataDict[_local2]; _local3.percentage = ((_isMuted) ? cachedSoundLevel : _arg1.soundTransform.volume * 100); if (_local3.percentage < 0){ _local3.percentage = 0; } else { if (_local3.percentage > 100){ _local3.percentage = 100; }; }; positionHandle(_local2); }; } flvplayback_internal function stopHandleDrag(_arg1:Sprite):void{ var ctrlData:ControlData; var handle:Sprite; var ctrl = _arg1; if (ctrl == null){ return; }; ctrlData = ctrlDataDict[ctrl]; try { if ((((ctrl["stopHandleDrag"] is Function)) && (ctrl["stopHandleDrag"]()))){ ctrlData.isDragging = false; return; }; } catch(re:ReferenceError) { }; handle = ctrlData.handle_mc; if (handle == null){ return; }; handle.stopDrag(); ctrlData.isDragging = false; } public function set skinBackgroundAlpha(_arg1:Number):void{ if (borderAlpha != _arg1){ borderAlpha = _arg1; borderColorTransform.alphaOffset = (0xFF * _arg1); borderPrevRect = null; layoutSkin(); }; } public function getControl(_arg1:int):Sprite{ return (controls[_arg1]); } public function set skinScaleMaximum(_arg1:Number):void{ _skinScaleMaximum = _arg1; } flvplayback_internal function handleLoad(_arg1:Event):void{ var i:int; var dispObj:DisplayObject; var index:Number; var e = _arg1; try { skin_mc = new Sprite(); if (e != null){ skinTemplate = Sprite(skinLoader.content); }; layout_mc = skinTemplate; customClips = new Array(); delayedControls = new Array(); i = 0; while (i < layout_mc.numChildren) { dispObj = layout_mc.getChildAt(i); index = layoutNameToIndexMappings[dispObj.name]; if (!isNaN(index)){ setSkin(int(index), dispObj); } else { if (dispObj.name != "video_mc"){ setCustomClip(dispObj); }; }; i = (i + 1); }; skinLoadDelayCount = 0; _vc.addEventListener(Event.ENTER_FRAME, finishLoad); } catch(err:Error) { _vc.skinError(err.message); removeSkin(); }; } flvplayback_internal function calcBarMargins(_arg1:DisplayObject, _arg2:String, _arg3:Boolean):void{ var ctrlData:ControlData; var bar:DisplayObject; var barData:ControlData; var ctrl = _arg1; var type = _arg2; var symmetricMargins = _arg3; if (ctrl == null){ return; }; ctrlData = ctrlDataDict[ctrl]; bar = ctrlData[(type + "_mc")]; if (bar == null){ try { bar = ctrl[(type + "_mc")]; } catch(re:ReferenceError) { bar = null; }; if (bar == null){ return; }; ctrlData[(type + "_mc")] = bar; }; barData = ctrlDataDict[bar]; if (barData == null){ barData = new ControlData(this, bar, ctrl, -1); ctrlDataDict[bar] = barData; }; barData.leftMargin = getNumberPropSafe(ctrl, (type + "LeftMargin")); if (((isNaN(barData.leftMargin)) && ((bar.parent == ctrl.parent)))){ barData.leftMargin = (bar.x - ctrl.x); }; barData.rightMargin = getNumberPropSafe(ctrl, (type + "RightMargin")); if (isNaN(barData.rightMargin)){ if (symmetricMargins){ barData.rightMargin = barData.leftMargin; } else { if (bar.parent == ctrl.parent){ barData.rightMargin = (((ctrl.width - bar.width) - bar.x) + ctrl.x); }; }; }; barData.topMargin = getNumberPropSafe(ctrl, (type + "TopMargin")); if (((isNaN(barData.topMargin)) && ((bar.parent == ctrl.parent)))){ barData.topMargin = (bar.y - ctrl.y); }; barData.bottomMargin = getNumberPropSafe(ctrl, (type + "BottomMargin")); if (isNaN(barData.bottomMargin)){ if (symmetricMargins){ barData.bottomMargin = barData.topMargin; } else { if (bar.parent == ctrl.parent){ barData.bottomMargin = (((ctrl.height - bar.height) - bar.y) + ctrl.y); }; }; }; barData.origX = getNumberPropSafe(ctrl, (type + "X")); if (isNaN(barData.origX)){ if (bar.parent == ctrl.parent){ barData.origX = (bar.x - ctrl.x); } else { if (bar.parent == ctrl){ barData.origX = bar.x; }; }; }; barData.origY = getNumberPropSafe(ctrl, (type + "Y")); if (isNaN(barData.origY)){ if (bar.parent == ctrl.parent){ barData.origY = (bar.y - ctrl.y); } else { if (bar.parent == ctrl){ barData.origY = bar.y; }; }; }; barData.origWidth = bar.width; barData.origHeight = bar.height; barData.origScaleX = bar.scaleX; barData.origScaleY = bar.scaleY; } public function set skinBackgroundColor(_arg1:uint):void{ if (borderColor != _arg1){ borderColor = _arg1; borderColorTransform.redOffset = ((borderColor >> 16) & 0xFF); borderColorTransform.greenOffset = ((borderColor >> 8) & 0xFF); borderColorTransform.blueOffset = (borderColor & 0xFF); borderPrevRect = null; layoutSkin(); }; } public function set volumeBarScrubTolerance(_arg1:Number):void{ _volumeBarScrubTolerance = _arg1; } flvplayback_internal function finishAddBufferingBar(_arg1:Event=null):void{ var _local2:Sprite; if (_arg1 != null){ _arg1.currentTarget.removeEventListener(Event.ENTER_FRAME, finishAddBufferingBar); }; _local2 = controls[BUFFERING_BAR]; calcBarMargins(_local2, "fill", true); fixUpBar(_local2, "fill", _local2, "fill_mc"); positionMaskedFill(_local2, 100); } flvplayback_internal function handleButtonEvent(_arg1:MouseEvent):void{ var ctrlData:ControlData; var topLevel:DisplayObject; var e = _arg1; ctrlData = ctrlDataDict[e.currentTarget]; switch (e.type){ case MouseEvent.ROLL_OVER: ctrlData.state = OVER_STATE; break; case MouseEvent.ROLL_OUT: ctrlData.state = NORMAL_STATE; break; case MouseEvent.MOUSE_DOWN: ctrlData.state = DOWN_STATE; mouseCaptureCtrl = ctrlData.index; switch (mouseCaptureCtrl){ case SEEK_BAR_HANDLE: case SEEK_BAR_HIT: case VOLUME_BAR_HANDLE: case VOLUME_BAR_HIT: dispatchMessage(ctrlData.index); break; }; topLevel = _vc.stage; try { topLevel.addEventListener(MouseEvent.MOUSE_DOWN, captureMouseEvent, true); } catch(se:SecurityError) { topLevel = _vc.root; topLevel.addEventListener(MouseEvent.MOUSE_DOWN, captureMouseEvent, true); }; topLevel.addEventListener(MouseEvent.MOUSE_OUT, captureMouseEvent, true); topLevel.addEventListener(MouseEvent.MOUSE_OVER, captureMouseEvent, true); topLevel.addEventListener(MouseEvent.MOUSE_UP, handleMouseUp); topLevel.addEventListener(MouseEvent.ROLL_OUT, captureMouseEvent, true); topLevel.addEventListener(MouseEvent.ROLL_OVER, captureMouseEvent, true); break; case MouseEvent.CLICK: switch (mouseCaptureCtrl){ case SEEK_BAR_HANDLE: case SEEK_BAR_HIT: case VOLUME_BAR_HANDLE: case VOLUME_BAR_HIT: break; default: dispatchMessage(ctrlData.index); break; }; return; }; skinButtonControl(e.currentTarget); } flvplayback_internal function applySkinState(_arg1:ControlData, _arg2:DisplayObject):void{ if (_arg2 != _arg1.currentState_mc){ if (_arg1.currentState_mc != null){ _arg1.currentState_mc.visible = false; }; _arg1.currentState_mc = _arg2; _arg1.currentState_mc.visible = true; }; } flvplayback_internal function handleLoadErrorEvent(_arg1:ErrorEvent):void{ _skinReady = true; _vc.skinError(_arg1.toString()); } flvplayback_internal function addBarControl(_arg1:Sprite):void{ var _local2:ControlData; _local2 = ctrlDataDict[_arg1]; _local2.isDragging = false; _local2.percentage = 0; if ((((_arg1.parent == skin_mc)) && (!((skin_mc == null))))){ finishAddBarControl(_arg1); } else { _arg1.addEventListener(Event.REMOVED_FROM_STAGE, cleanupHandle); _arg1.addEventListener(Event.ENTER_FRAME, finishAddBarControl); }; } flvplayback_internal function handleEvent(_arg1:Event):void{ var e = _arg1; switch (e.type){ case Event.ADDED_TO_STAGE: _fullScreen = false; if (_vc.stage != null){ try { _fullScreen = (_vc.stage.displayState == StageDisplayState.FULL_SCREEN); _vc.stage.addEventListener(FullScreenEvent.FULL_SCREEN, handleFullScreenEvent); } catch(se:SecurityError) { }; }; if (!_fullScreen){ _fullScreenAccel = false; }; setEnabledAndVisibleForState(FULL_SCREEN_OFF_BUTTON, VideoState.PLAYING); skinButtonControl(controls[FULL_SCREEN_OFF_BUTTON]); setEnabledAndVisibleForState(FULL_SCREEN_ON_BUTTON, VideoState.PLAYING); skinButtonControl(controls[FULL_SCREEN_ON_BUTTON]); if (((_fullScreen) && (_fullScreenTakeOver))){ enterFullScreenTakeOver(); } else { if (!_fullScreen){ exitFullScreenTakeOver(); }; }; layoutSkin(); setupSkinAutoHide(false); break; case Event.REMOVED_FROM_STAGE: _vc.stage.removeEventListener(FullScreenEvent.FULL_SCREEN, handleFullScreenEvent); break; }; } flvplayback_internal function skinButtonControl(_arg1:Object):void{ var ctrl:Sprite; var ctrlData:ControlData; var e:Event; var ctrlOrEvent = _arg1; if (ctrlOrEvent == null){ return; }; if ((ctrlOrEvent is Event)){ e = Event(ctrlOrEvent); ctrl = Sprite(e.currentTarget); ctrl.removeEventListener(Event.ENTER_FRAME, skinButtonControl); } else { ctrl = Sprite(ctrlOrEvent); }; ctrlData = ctrlDataDict[ctrl]; if (ctrlData == null){ return; }; try { if (ctrl["placeholder_mc"] != undefined){ ctrl.removeChild(ctrl["placeholder_mc"]); ctrl["placeholder_mc"] = null; }; } catch(re:ReferenceError) { }; if (ctrlData.state_mc == null){ ctrlData.state_mc = new Array(); }; if (ctrlData.state_mc[NORMAL_STATE] == undefined){ ctrlData.state_mc[NORMAL_STATE] = setupButtonSkinState(ctrl, ctrl, buttonSkinLinkageIDs[NORMAL_STATE], null); }; if (((ctrlData.enabled) && (_controlsEnabled))){ if (ctrlData.state_mc[ctrlData.state] == undefined){ ctrlData.state_mc[ctrlData.state] = setupButtonSkinState(ctrl, ctrl, buttonSkinLinkageIDs[ctrlData.state], ctrlData.state_mc[NORMAL_STATE]); }; if (ctrlData.state_mc[ctrlData.state] != ctrlData.currentState_mc){ if (ctrlData.currentState_mc != null){ ctrlData.currentState_mc.visible = false; }; ctrlData.currentState_mc = ctrlData.state_mc[ctrlData.state]; ctrlData.currentState_mc.visible = true; }; applySkinState(ctrlData, ctrlData.state_mc[ctrlData.state]); } else { ctrlData.state = NORMAL_STATE; if (ctrlData.disabled_mc == null){ ctrlData.disabled_mc = setupButtonSkinState(ctrl, ctrl, "disabledLinkageID", ctrlData.state_mc[NORMAL_STATE]); }; applySkinState(ctrlData, ctrlData.disabled_mc); }; } public function set controlsEnabled(_arg1:Boolean):void{ var _local2:int; if (_controlsEnabled == _arg1){ return; }; _controlsEnabled = _arg1; _local2 = 0; while (_local2 < NUM_BUTTONS) { skinButtonControl(controls[_local2]); _local2++; }; } flvplayback_internal function setupSkinAutoHide(_arg1:Boolean):void{ if (((_skinAutoHide) && (!((skin_mc == null))))){ skinAutoHideHitTest(null, _arg1); _skinAutoHideTimer.start(); } else { if (skin_mc != null){ if (((((((_arg1) && ((_skinFadingMaxTime > 0)))) && (((!(skin_mc.visible)) || ((skin_mc.alpha < 1)))))) && (__visible))){ _skinFadingTimer.stop(); _skinFadeStartTime = getTimer(); _skinFadingIn = true; if (skin_mc.alpha == 1){ skin_mc.alpha = 0; }; _skinFadingTimer.start(); } else { if (_skinFadingMaxTime <= 0){ _skinFadingTimer.stop(); skin_mc.alpha = 1; }; }; skin_mc.visible = __visible; }; _skinAutoHideTimer.stop(); }; } public function enterFullScreenDisplayState():void{ var theRect:Rectangle; var vp:VideoPlayer; var effectiveWidth:int; var effectiveHeight:int; var videoAspectRatio:Number; var screenAspectRatio:Number; var effectiveMinWidth:int; var effectiveMinHeight:int; var skinScaleMinWidth:int; var skinScaleMinHeight:int; if (((!(_fullScreen)) && (!((_vc.stage == null))))){ if (_fullScreenTakeOver){ try { theRect = _vc.stage.fullScreenSourceRect; _fullScreenAccel = true; vp = _vc.getVideoPlayer(_vc.visibleVideoPlayerIndex); effectiveWidth = vp.videoWidth; effectiveHeight = vp.videoHeight; videoAspectRatio = (effectiveWidth / effectiveHeight); screenAspectRatio = (_vc.stage.fullScreenWidth / _vc.stage.fullScreenHeight); if (videoAspectRatio > screenAspectRatio){ effectiveHeight = (effectiveWidth / screenAspectRatio); } else { if (videoAspectRatio < screenAspectRatio){ effectiveWidth = (effectiveHeight * screenAspectRatio); }; }; effectiveMinWidth = fullScreenSourceRectMinWidth; effectiveMinHeight = fullScreenSourceRectMinHeight; if (fullScreenSourceRectMinAspectRatio > screenAspectRatio){ effectiveMinHeight = (effectiveMinWidth / screenAspectRatio); } else { if (fullScreenSourceRectMinAspectRatio < screenAspectRatio){ effectiveMinWidth = (effectiveMinHeight * screenAspectRatio); }; }; skinScaleMinWidth = (_vc.stage.fullScreenWidth / _skinScaleMaximum); skinScaleMinHeight = (_vc.stage.fullScreenHeight / _skinScaleMaximum); if ((((effectiveMinWidth < skinScaleMinWidth)) || ((effectiveMinHeight < skinScaleMinHeight)))){ effectiveMinWidth = skinScaleMinWidth; effectiveMinHeight = skinScaleMinHeight; }; if ((((effectiveWidth < effectiveMinWidth)) || ((effectiveHeight < effectiveMinHeight)))){ effectiveWidth = effectiveMinWidth; effectiveHeight = effectiveMinHeight; }; _vc.stage.fullScreenSourceRect = new Rectangle(0, 0, effectiveWidth, effectiveHeight); _vc.stage.displayState = StageDisplayState.FULL_SCREEN; } catch(re:ReferenceError) { _fullScreenAccel = false; } catch(re:SecurityError) { _fullScreenAccel = false; }; }; try { _vc.stage.displayState = StageDisplayState.FULL_SCREEN; } catch(se:SecurityError) { }; }; } public function get skin():String{ return (_skin); } flvplayback_internal function finishAddBarControl(_arg1:Object):void{ var ctrl:Sprite; var ctrlData:ControlData; var e:Event; var ctrlOrEvent = _arg1; if (ctrlOrEvent == null){ return; }; if ((ctrlOrEvent is Event)){ e = Event(ctrlOrEvent); ctrl = Sprite(e.currentTarget); ctrl.removeEventListener(Event.ENTER_FRAME, finishAddBarControl); } else { ctrl = Sprite(ctrlOrEvent); }; ctrlData = ctrlDataDict[ctrl]; try { if ((ctrl["addBarControl"] is Function)){ var _local3 = ctrl; _local3["addBarControl"](); }; } catch(re:ReferenceError) { }; ctrlData.origWidth = ctrl.width; ctrlData.origHeight = ctrl.height; fixUpBar(ctrl, "progress", ctrl, "progress_mc"); calcBarMargins(ctrl, "progress", false); if (ctrlData.progress_mc != null){ fixUpBar(ctrl, "progressBarFill", ctrlData.progress_mc, "fill_mc"); calcBarMargins(ctrlData.progress_mc, "fill", false); calcBarMargins(ctrlData.progress_mc, "mask", false); if (isNaN(_progressPercent)){ _progressPercent = (_vc.isRTMP) ? 100 : 0; }; positionBar(ctrl, "progress", _progressPercent); }; fixUpBar(ctrl, "fullness", ctrl, "fullness_mc"); calcBarMargins(ctrl, "fullness", false); if (ctrlData.fullness_mc != null){ fixUpBar(ctrl, "fullnessBarFill", ctrlData.fullness_mc, "fill_mc"); calcBarMargins(ctrlData.fullness_mc, "fill", false); calcBarMargins(ctrlData.fullness_mc, "mask", false); }; fixUpBar(ctrl, "hit", ctrl, "hit_mc"); fixUpBar(ctrl, "handle", ctrl, "handle_mc"); calcBarMargins(ctrl, "handle", true); switch (ctrlData.index){ case SEEK_BAR: setControl(SEEK_BAR_HANDLE, ctrlData.handle_mc); if (ctrlData.hit_mc != null){ setControl(SEEK_BAR_HIT, ctrlData.hit_mc); }; break; case VOLUME_BAR: setControl(VOLUME_BAR_HANDLE, ctrlData.handle_mc); if (ctrlData.hit_mc != null){ setControl(VOLUME_BAR_HIT, ctrlData.hit_mc); }; break; }; positionHandle(ctrl); } public function get fullScreenBackgroundColor():uint{ return (_fullScreenBgColor); } flvplayback_internal function startHandleDrag(_arg1:Sprite):void{ var ctrlData:ControlData; var handle:Sprite; var handleData:ControlData; var theY:Number; var theWidth:Number; var bounds:Rectangle; var ctrl = _arg1; if (ctrl == null){ return; }; ctrlData = ctrlDataDict[ctrl]; try { if ((((ctrl["startHandleDrag"] is Function)) && (ctrl["startHandleDrag"]()))){ ctrlData.isDragging = true; return; }; } catch(re:ReferenceError) { }; handle = ctrlData.handle_mc; if (handle == null){ return; }; handleData = ctrlDataDict[handle]; theY = (ctrl.y + handleData.origY); theWidth = (isNaN(ctrlData.origWidth)) ? ctrl.width : ctrlData.origWidth; bounds = new Rectangle((ctrl.x + handleData.leftMargin), theY, (theWidth - handleData.rightMargin), 0); handle.startDrag(false, bounds); ctrlData.isDragging = true; } flvplayback_internal function setupBarSkinPart(_arg1:Sprite, _arg2:DisplayObject, _arg3:Sprite, _arg4:String, _arg5:String, _arg6:Boolean=false):DisplayObject{ var part:DisplayObject; var partAvatar:DisplayObject; var ctrlData:ControlData; var partData:ControlData; var ctrl = _arg1; var avatar = _arg2; var definitionHolder = _arg3; var skinName = _arg4; var partName = _arg5; var required = _arg6; try { part = ctrl[partName]; } catch(re:ReferenceError) { part = null; }; if (part == null){ try { part = createSkin(definitionHolder, skinName); } catch(ve:VideoError) { if (required){ throw (ve); }; }; if (part != null){ skin_mc.addChild(part); part.x = ctrl.x; part.y = ctrl.y; partAvatar = layout_mc.getChildByName((skinName + "_mc")); if (partAvatar != null){ if (partName == "hit_mc"){ ctrlData = ctrlDataDict[ctrl]; partData = new ControlData(this, part, controls[ctrlData.index], -1); partData.avatar = partAvatar; ctrlDataDict[part] = partData; } else { part.x = (part.x + (partAvatar.x - avatar.x)); part.y = (part.y + (partAvatar.y - avatar.y)); part.width = partAvatar.width; part.height = partAvatar.height; }; }; }; }; if (((required) && ((part == null)))){ throw (new VideoError(VideoError.MISSING_SKIN_STYLE, skinName)); }; return (part); } public function get skinBackgroundAlpha():Number{ return (borderAlpha); } public function get volumeBarScrubTolerance():Number{ return (_volumeBarScrubTolerance); } public function get skinScaleMaximum():Number{ return (_skinScaleMaximum); } public function get skinBackgroundColor():uint{ return (borderColor); } public function get controlsEnabled():Boolean{ return (_controlsEnabled); } flvplayback_internal function handleIVPEvent(_arg1:IVPEvent):void{ var _local2:uint; var _local3:int; var _local4:VideoEvent; var _local5:Sprite; var _local6:ControlData; var _local7:VideoProgressEvent; var _local8:VideoPlayerState; var _local9:Number; var _local10:Number; var _local11:Number; if (_arg1.vp != _vc.visibleVideoPlayerIndex){ return; }; _local2 = _vc.activeVideoPlayerIndex; _vc.activeVideoPlayerIndex = _vc.visibleVideoPlayerIndex; switch (_arg1.type){ case VideoEvent.STATE_CHANGE: _local4 = VideoEvent(_arg1); if (_local4.state == VideoState.BUFFERING){ if (!_bufferingOn){ _bufferingDelayTimer.reset(); _bufferingDelayTimer.start(); }; } else { _bufferingDelayTimer.reset(); _bufferingOn = false; }; if (_local4.state == VideoState.LOADING){ _progressPercent = (_vc.getVideoPlayer(_arg1.vp).isRTMP) ? 100 : 0; _local3 = SEEK_BAR; while (_local3 <= VOLUME_BAR) { _local5 = controls[_local3]; if (controls[_local3] == null){ } else { _local6 = ctrlDataDict[_local5]; if (_local6.progress_mc != null){ positionBar(_local5, "progress", _progressPercent); }; }; _local3++; }; }; _local3 = 0; while (_local3 < NUM_CONTROLS) { if (controls[_local3] == undefined){ } else { setEnabledAndVisibleForState(_local3, _local4.state); if (_local3 < NUM_BUTTONS){ skinButtonControl(controls[_local3]); }; }; _local3++; }; break; case VideoEvent.READY: case MetadataEvent.METADATA_RECEIVED: _local3 = 0; while (_local3 < NUM_CONTROLS) { if (controls[_local3] == undefined){ } else { setEnabledAndVisibleForState(_local3, _vc.state); if (_local3 < NUM_BUTTONS){ skinButtonControl(controls[_local3]); }; }; _local3++; }; if (_vc.getVideoPlayer(_arg1.vp).isRTMP){ _progressPercent = 100; _local3 = SEEK_BAR; while (_local3 <= VOLUME_BAR) { _local5 = controls[_local3]; if (_local5 == null){ } else { _local6 = ctrlDataDict[_local5]; if (_local6.progress_mc != null){ positionBar(_local5, "progress", _progressPercent); }; }; _local3++; }; }; break; case VideoEvent.PLAYHEAD_UPDATE: if (((((((!((controls[SEEK_BAR] == undefined))) && (!(_vc.isLive)))) && (!(isNaN(_vc.totalTime))))) && (!((_vc.getVideoPlayer(_vc.visibleVideoPlayerIndex).state == VideoState.SEEKING))))){ _local4 = VideoEvent(_arg1); _local10 = ((_local4.playheadTime / _vc.totalTime) * 100); if (_local10 < 0){ _local10 = 0; } else { if (_local10 > 100){ _local10 = 100; }; }; _local5 = controls[SEEK_BAR]; _local6 = ctrlDataDict[_local5]; _local6.percentage = _local10; positionHandle(_local5); }; break; case VideoProgressEvent.PROGRESS: _local7 = VideoProgressEvent(_arg1); _progressPercent = ((_local7.bytesTotal)<=0) ? 100 : ((_local7.bytesLoaded / _local7.bytesTotal) * 100); _local8 = _vc.videoPlayerStates[_arg1.vp]; _local9 = _local8.minProgressPercent; if (((!(isNaN(_local9))) && ((_local9 > _progressPercent)))){ _progressPercent = _local9; }; if (!isNaN(_vc.totalTime)){ _local11 = ((_vc.playheadTime / _vc.totalTime) * 100); if (_local11 > _progressPercent){ _progressPercent = _local11; _local8.minProgressPercent = _progressPercent; }; }; _local3 = SEEK_BAR; while (_local3 <= VOLUME_BAR) { _local5 = controls[_local3]; if (_local5 == null){ } else { _local6 = ctrlDataDict[_local5]; if (_local6.progress_mc != null){ positionBar(_local5, "progress", _progressPercent); }; }; _local3++; }; break; }; _vc.activeVideoPlayerIndex = _local2; } flvplayback_internal function setupButtonSkinState(_arg1:Sprite, _arg2:Sprite, _arg3:String, _arg4:DisplayObject=null):DisplayObject{ var stateSkin:DisplayObject; var ctrl = _arg1; var definitionHolder = _arg2; var skinName = _arg3; var defaultSkin = _arg4; try { stateSkin = createSkin(definitionHolder, skinName); } catch(ve:VideoError) { if (defaultSkin != null){ stateSkin = null; } else { throw (ve); }; }; if (stateSkin != null){ stateSkin.visible = false; ctrl.addChild(stateSkin); } else { if (defaultSkin != null){ stateSkin = defaultSkin; }; }; return (stateSkin); } flvplayback_internal function layoutSkin():void{ var video_mc:DisplayObject; var i:int; var borderRect:Rectangle; var forceSkinAutoHide:Boolean; var minWidth:Number; var vidWidth:Number; var minHeight:Number; var vidHeight:Number; if (layout_mc == null){ return; }; if (skinLoadDelayCount < 2){ return; }; video_mc = layout_mc["video_mc"]; if (video_mc == null){ throw (new Error("No layout_mc.video_mc")); }; placeholderLeft = video_mc.x; placeholderRight = (video_mc.x + video_mc.width); placeholderTop = video_mc.y; placeholderBottom = (video_mc.y + video_mc.height); videoLeft = (_vc.x - _vc.registrationX); videoRight = (videoLeft + _vc.width); videoTop = (_vc.y - _vc.registrationY); videoBottom = (videoTop + _vc.height); if (((((_fullScreen) && (_fullScreenTakeOver))) && (!((border_mc == null))))){ borderRect = calcLayoutControl(border_mc); forceSkinAutoHide = false; if ((((borderRect.width > 0)) && ((borderRect.height > 0)))){ if (borderRect.x < 0){ placeholderLeft = (placeholderLeft + (videoLeft - borderRect.x)); forceSkinAutoHide = true; }; if ((borderRect.x + borderRect.width) > _vc.registrationWidth){ placeholderRight = (placeholderRight + ((borderRect.x + borderRect.width) - videoRight)); forceSkinAutoHide = true; }; if (borderRect.y < 0){ placeholderTop = (placeholderTop + (videoTop - borderRect.y)); forceSkinAutoHide = true; }; if ((borderRect.y + borderRect.height) > _vc.registrationHeight){ placeholderBottom = (placeholderBottom + ((borderRect.y + borderRect.height) - videoBottom)); forceSkinAutoHide = true; }; if (forceSkinAutoHide){ _skinAutoHide = true; setupSkinAutoHide(true); }; }; }; try { if (!isNaN(layout_mc["minWidth"])){ minWidth = layout_mc["minWidth"]; vidWidth = (videoRight - videoLeft); if ((((minWidth > 0)) && ((minWidth > vidWidth)))){ videoLeft = (videoLeft - ((minWidth - vidWidth) / 2)); videoRight = (minWidth + videoLeft); }; }; } catch(re1:ReferenceError) { }; try { if (!isNaN(layout_mc["minHeight"])){ minHeight = layout_mc["minHeight"]; vidHeight = (videoBottom - videoTop); if ((((minHeight > 0)) && ((minHeight > vidHeight)))){ videoTop = (videoTop - ((minHeight - vidHeight) / 2)); videoBottom = (minHeight + videoTop); }; }; } catch(re2:ReferenceError) { }; i = 0; while (i < customClips.length) { layoutControl(customClips[i]); if (customClips[i] == border_mc){ bitmapCopyBorder(); }; i = (i + 1); }; i = 0; while (i < NUM_CONTROLS) { layoutControl(controls[i]); i = (i + 1); }; } public function set bufferingDelayInterval(_arg1:Number):void{ if (_bufferingDelayTimer.delay == _arg1){ return; }; _bufferingDelayTimer.delay = _arg1; } flvplayback_internal function setEnabledAndVisibleForState(_arg1:int, _arg2:String):void{ var _local3:int; var _local4:String; var _local5:Sprite; var _local6:ControlData; var _local7:Boolean; var _local8:ControlData; var _local9:ControlData; var _local10:ControlData; var _local11:ControlData; _local3 = _vc.activeVideoPlayerIndex; _vc.activeVideoPlayerIndex = _vc.visibleVideoPlayerIndex; _local4 = _arg2; if ((((_local4 == VideoState.BUFFERING)) && (!(_bufferingOn)))){ _local4 = VideoState.PLAYING; }; _local5 = controls[_arg1]; if (_local5 == null){ return; }; _local6 = ctrlDataDict[_local5]; if (_local6 == null){ return; }; switch (_arg1){ case VOLUME_BAR: case VOLUME_BAR_HANDLE: case VOLUME_BAR_HIT: _local6.enabled = true; break; case FULL_SCREEN_ON_BUTTON: _local6.enabled = !(_fullScreen); if (controls[FULL_SCREEN_BUTTON] != undefined){ _local5.visible = _local6.enabled; }; break; case FULL_SCREEN_OFF_BUTTON: _local6.enabled = _fullScreen; if (controls[FULL_SCREEN_BUTTON] != undefined){ _local5.visible = _local6.enabled; }; break; case MUTE_ON_BUTTON: _local6.enabled = !(_isMuted); if (controls[MUTE_BUTTON] != undefined){ _local5.visible = _local6.enabled; }; break; case MUTE_OFF_BUTTON: _local6.enabled = _isMuted; if (controls[MUTE_BUTTON] != undefined){ _local5.visible = _local6.enabled; }; break; default: switch (_local4){ case VideoState.LOADING: case VideoState.CONNECTION_ERROR: _local6.enabled = false; break; case VideoState.DISCONNECTED: _local6.enabled = ((!((_vc.source == null))) && (!((_vc.source == "")))); break; case VideoState.SEEKING: break; default: _local6.enabled = true; break; }; break; }; switch (_arg1){ case SEEK_BAR: switch (_local4){ case VideoState.STOPPED: case VideoState.PLAYING: case VideoState.PAUSED: case VideoState.REWINDING: case VideoState.SEEKING: _local6.enabled = true; break; case VideoState.BUFFERING: _local6.enabled = ((!(_bufferingBarHides)) || ((controls[BUFFERING_BAR] == undefined))); break; default: _local6.enabled = false; break; }; if (_local6.enabled){ _local6.enabled = !(isNaN(_vc.totalTime)); }; if (_local6.handle_mc != null){ _local8 = ctrlDataDict[_local6.handle_mc]; _local8.enabled = _local6.enabled; _local6.handle_mc.visible = _local8.enabled; }; if (_local6.hit_mc != null){ _local9 = ctrlDataDict[_local6.hit_mc]; _local9.enabled = _local6.enabled; _local6.hit_mc.visible = _local9.enabled; }; _local7 = ((((((!(_bufferingBarHides)) || (_local6.enabled))) || ((controls[BUFFERING_BAR] == undefined)))) || (!(controls[BUFFERING_BAR].visible))); _local5.visible = _local7; if (_local6.progress_mc != null){ _local6.progress_mc.visible = _local7; _local10 = ctrlDataDict[_local6.progress_mc]; if (_local10.fill_mc != null){ _local10.fill_mc.visible = _local7; }; }; if (_local6.fullness_mc != null){ _local6.fullness_mc.visible = _local7; _local11 = ctrlDataDict[_local6.fullness_mc]; if (_local11.fill_mc != null){ _local11.fill_mc.visible = _local7; }; }; break; case BUFFERING_BAR: switch (_local4){ case VideoState.STOPPED: case VideoState.PLAYING: case VideoState.PAUSED: case VideoState.REWINDING: case VideoState.SEEKING: _local6.enabled = false; break; default: _local6.enabled = true; break; }; _local5.visible = _local6.enabled; if (_local6.fill_mc != null){ _local6.fill_mc.visible = _local6.enabled; }; break; case PAUSE_BUTTON: switch (_local4){ case VideoState.DISCONNECTED: case VideoState.STOPPED: case VideoState.PAUSED: case VideoState.REWINDING: _local6.enabled = false; break; case VideoState.PLAYING: _local6.enabled = true; break; case VideoState.BUFFERING: _local6.enabled = ((!(_bufferingBarHides)) || ((controls[BUFFERING_BAR] == undefined))); break; }; if (controls[PLAY_PAUSE_BUTTON] != undefined){ _local5.visible = _local6.enabled; }; break; case PLAY_BUTTON: switch (_local4){ case VideoState.PLAYING: _local6.enabled = false; break; case VideoState.STOPPED: case VideoState.PAUSED: _local6.enabled = true; break; case VideoState.BUFFERING: _local6.enabled = ((!(_bufferingBarHides)) || ((controls[BUFFERING_BAR] == undefined))); break; }; if (controls[PLAY_PAUSE_BUTTON] != undefined){ _local5.visible = !(controls[PAUSE_BUTTON].visible); }; break; case STOP_BUTTON: switch (_local4){ case VideoState.DISCONNECTED: case VideoState.STOPPED: _local6.enabled = false; break; case VideoState.PAUSED: case VideoState.PLAYING: case VideoState.BUFFERING: _local6.enabled = true; break; }; break; case BACK_BUTTON: case FORWARD_BUTTON: switch (_local4){ case VideoState.BUFFERING: _local6.enabled = ((!(_bufferingBarHides)) || ((controls[BUFFERING_BAR] == undefined))); break; }; }; _local5.mouseEnabled = _local6.enabled; _vc.activeVideoPlayerIndex = _local3; } public function set fullScreenTakeOver(_arg1:Boolean):void{ var v = _arg1; if (_fullScreenTakeOver != v){ _fullScreenTakeOver = v; if (_fullScreenTakeOver){ enterFullScreenTakeOver(); } else { if (((((!((_vc.stage == null))) && (_fullScreen))) && (_fullScreenAccel))){ try { _vc.stage.displayState = StageDisplayState.NORMAL; } catch(se:SecurityError) { }; }; exitFullScreenTakeOver(); }; }; } flvplayback_internal function enterFullScreenTakeOver():void{ var i:int; var fullScreenBG:Sprite; var vp:VideoPlayer; if (((!(_fullScreen)) || (!((cacheFLVPlaybackParent == null))))){ return; }; _vc.removeEventListener(LayoutEvent.LAYOUT, handleLayoutEvent); _vc.removeEventListener(AutoLayoutEvent.AUTO_LAYOUT, handleLayoutEvent); _vc.removeEventListener(Event.ADDED_TO_STAGE, handleEvent); _vc.stage.removeEventListener(FullScreenEvent.FULL_SCREEN, handleFullScreenEvent); try { cacheFLVPlaybackScaleMode = new Array(); cacheFLVPlaybackAlign = new Array(); i = 0; while (i < _vc.videoPlayers.length) { vp = (_vc.videoPlayers[i] as VideoPlayer); if (vp != null){ cacheFLVPlaybackScaleMode[i] = vp.scaleMode; cacheFLVPlaybackAlign[i] = vp.align; }; i = (i + 1); }; cacheFLVPlaybackParent = _vc.parent; cacheFLVPlaybackIndex = _vc.parent.getChildIndex(_vc); cacheFLVPlaybackLocation = new Rectangle(_vc.registrationX, _vc.registrationY, _vc.registrationWidth, _vc.registrationHeight); if (!_fullScreenAccel){ cacheStageAlign = _vc.stage.align; cacheStageScaleMode = _vc.stage.scaleMode; _vc.stage.align = StageAlign.TOP_LEFT; _vc.stage.scaleMode = StageScaleMode.NO_SCALE; }; _vc.align = VideoAlign.CENTER; _vc.scaleMode = VideoScaleMode.MAINTAIN_ASPECT_RATIO; _vc.registrationX = 0; _vc.registrationY = 0; _vc.setSize(_vc.stage.stageWidth, _vc.stage.stageHeight); if (_vc.stage != _vc.parent){ _vc.stage.addChild(_vc); } else { _vc.stage.setChildIndex(_vc, (_vc.stage.numChildren - 1)); }; fullScreenBG = Sprite(_vc.getChildByName("fullScreenBG")); if (fullScreenBG == null){ fullScreenBG = new Sprite(); fullScreenBG.name = "fullScreenBG"; _vc.addChildAt(fullScreenBG, 0); } else { _vc.setChildIndex(fullScreenBG, 0); }; fullScreenBG.graphics.beginFill(_fullScreenBgColor); fullScreenBG.graphics.drawRect(0, 0, _vc.stage.stageWidth, _vc.stage.stageHeight); layoutSkin(); setupSkinAutoHide(false); } catch(err:Error) { cacheFLVPlaybackParent = null; }; _vc.addEventListener(LayoutEvent.LAYOUT, handleLayoutEvent); _vc.addEventListener(AutoLayoutEvent.AUTO_LAYOUT, handleLayoutEvent); _vc.addEventListener(Event.ADDED_TO_STAGE, handleEvent); _vc.stage.addEventListener(FullScreenEvent.FULL_SCREEN, handleFullScreenEvent); } public function set seekBarScrubTolerance(_arg1:Number):void{ _seekBarScrubTolerance = _arg1; } flvplayback_internal function cleanupHandle(_arg1:Object):void{ var e:Event; var ctrl:Sprite; var ctrlData:ControlData; var ctrlOrEvent = _arg1; try { if ((ctrlOrEvent is Event)){ e = Event(ctrlOrEvent); }; ctrl = ((e == null)) ? Sprite(ctrlOrEvent) : Sprite(e.currentTarget); ctrlData = ctrlDataDict[ctrl]; if ((((ctrlData == null)) || ((e == null)))){ ctrl.removeEventListener(Event.REMOVED_FROM_STAGE, cleanupHandle, false); if (ctrlData == null){ return; }; }; ctrl.removeEventListener(Event.ENTER_FRAME, finishAddBarControl); if (ctrlData.handle_mc != null){ if (ctrlData.handle_mc.parent != null){ ctrlData.handle_mc.parent.removeChild(ctrlData.handle_mc); }; delete ctrlDataDict[ctrlData.handle_mc]; ctrlData.handle_mc = null; }; if (ctrlData.hit_mc != null){ if (ctrlData.hit_mc.parent != null){ ctrlData.hit_mc.parent.removeChild(ctrlData.hit_mc); }; delete ctrlDataDict[ctrlData.hit_mc]; ctrlData.hit_mc = null; }; } catch(err:Error) { }; } flvplayback_internal static function getNumberPropSafe(_arg1:Object, _arg2:String):Number{ var numProp:*; var obj = _arg1; var propName = _arg2; try { numProp = obj[propName]; return (Number(numProp)); } catch(re:ReferenceError) { }; return (NaN); } flvplayback_internal static function getBooleanPropSafe(_arg1:Object, _arg2:String):Boolean{ var boolProp:*; var obj = _arg1; var propName = _arg2; try { boolProp = obj[propName]; return (Boolean(boolProp)); } catch(re:ReferenceError) { }; return (false); } flvplayback_internal static function initLayoutNameToIndexMappings():void{ var _local1:int; layoutNameToIndexMappings = new Object(); _local1 = 0; while (_local1 < layoutNameArray.length) { if (layoutNameArray[_local1] != null){ layoutNameToIndexMappings[layoutNameArray[_local1]] = _local1; }; _local1++; }; } } }//package fl.video
Section 33
//VideoAlign (fl.video.VideoAlign) package fl.video { public final class VideoAlign { public static const CENTER:String = "center"; public static const LEFT:String = "left"; public static const BOTTOM_RIGHT:String = "bottomRight"; public static const BOTTOM:String = "bottom"; public static const TOP_LEFT:String = "topLeft"; public static const TOP_RIGHT:String = "topRight"; public static const TOP:String = "top"; public static const BOTTOM_LEFT:String = "bottomLeft"; public static const RIGHT:String = "right"; } }//package fl.video
Section 34
//VideoError (fl.video.VideoError) package fl.video { public class VideoError extends Error { private var _code:uint; public static const INVALID_SOURCE:uint = 1004; flvplayback_internal static const ERROR_MSG:Array = ["Unable to make connection to server or to find FLV on server", "No matching cue point found", "Illegal cue point", "Invalid seek", "Invalid source", "Invalid xml", "No bitrate match, must be no default flv", "Cannot delete default VideoPlayer", "VideoPlayer.iNCManagerClass has not been set or its value is invalid", "Null url parameter sent to load()", "Skin is missing a required style definition or its value is invalid", "Unsupported property", "VideoPlayer.netStreamClientClass has not been set or its value is invalid"]; public static const NULL_URL_LOAD:uint = 1009; public static const INVALID_XML:uint = 1005; flvplayback_internal static const BASE_ERROR_CODE:uint = 1000; public static const DELETE_DEFAULT_PLAYER:uint = 1007; public static const SHORT_VERSION:String = "2.1"; public static const UNSUPPORTED_PROPERTY:uint = 1011; public static const ILLEGAL_CUE_POINT:uint = 1002; public static const INVALID_SEEK:uint = 1003; public static const NO_CONNECTION:uint = 1000; public static const MISSING_SKIN_STYLE:uint = 1010; public static const INCMANAGER_CLASS_UNSET:uint = 1008; public static const NO_BITRATE_MATCH:uint = 1006; public static const NETSTREAM_CLIENT_CLASS_UNSET:uint = 1012; public static const VERSION:String = "2.1.0.14"; public function VideoError(_arg1:uint, _arg2:String=null){ super((((("" + _arg1) + ": ") + ERROR_MSG[(_arg1 - BASE_ERROR_CODE)]) + ((_arg2)==null) ? "" : (": " + _arg2))); name = "VideoError"; _code = _arg1; } public function get code():uint{ return (_code); } } }//package fl.video
Section 35
//VideoEvent (fl.video.VideoEvent) package fl.video { import flash.events.*; public class VideoEvent extends Event implements IVPEvent { private var _vp:uint; private var _playheadTime:Number; private var _state:String; public static const FAST_FORWARD:String = "fastForward"; public static const READY:String = "ready"; public static const SKIN_LOADED:String = "skinLoaded"; public static const SCRUB_FINISH:String = "scrubFinish"; public static const BUFFERING_STATE_ENTERED:String = "bufferingStateEntered"; public static const STOPPED_STATE_ENTERED:String = "stoppedStateEntered"; public static const AUTO_REWOUND:String = "autoRewound"; public static const SCRUB_START:String = "scrubStart"; public static const PLAYHEAD_UPDATE:String = "playheadUpdate"; public static const SEEKED:String = "seeked"; public static const PLAYING_STATE_ENTERED:String = "playingStateEntered"; public static const CLOSE:String = "close"; public static const PAUSED_STATE_ENTERED:String = "pausedStateEntered"; public static const COMPLETE:String = "complete"; public static const REWIND:String = "rewind"; public static const STATE_CHANGE:String = "stateChange"; public function VideoEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false, _arg4:String=null, _arg5:Number=NaN, _arg6:uint=0){ super(_arg1, _arg2, _arg3); _state = _arg4; _playheadTime = _arg5; _vp = _arg6; } public function set playheadTime(_arg1:Number):void{ _playheadTime = _arg1; } public function get playheadTime():Number{ return (_playheadTime); } public function get state():String{ return (_state); } public function get vp():uint{ return (_vp); } override public function clone():Event{ return (new VideoEvent(type, bubbles, cancelable, state, playheadTime, vp)); } public function set state(_arg1:String):void{ _state = _arg1; } public function set vp(_arg1:uint):void{ _vp = _arg1; } } }//package fl.video
Section 36
//VideoPlayer (fl.video.VideoPlayer) package fl.video { import flash.net.*; import flash.events.*; import flash.geom.*; import flash.media.*; import flash.utils.*; public class VideoPlayer extends Video { protected var _align:String; protected var _registrationWidth:Number; flvplayback_internal var _updateProgressTimer:Timer; flvplayback_internal var _atEndCheckPlayhead:Number; flvplayback_internal var _hiddenForResize:Boolean; flvplayback_internal var startProgressTime:Number; protected var _volume:Number; flvplayback_internal var _invalidSeekTime:Boolean; flvplayback_internal var _readyDispatched:Boolean; flvplayback_internal var lastUpdateTimeStuckCount:Number; protected var _ns:NetStream; protected var _isLive:Boolean; flvplayback_internal var _bufferState:String; protected var _streamLength:Number; flvplayback_internal var _rtmpDoSeekTimer:Timer; protected var _contentPath:String; flvplayback_internal var lastUpdateTimeStuckCountMax:int;// = 10 protected var _metadata:Object; protected var __visible:Boolean; flvplayback_internal var autoResizeMetadataDelayMax:Number;// = 5 protected var _scaleMode:String; flvplayback_internal var _lastUpdateTime:Number; flvplayback_internal var _sawPlayStop:Boolean; flvplayback_internal var _atEnd:Boolean; flvplayback_internal var _sawSeekNotify:Boolean; flvplayback_internal var _idleTimeoutTimer:Timer; flvplayback_internal var _prevVideoWidth:int; protected var _registrationX:Number; protected var _registrationY:Number; protected var _bufferTime:Number; flvplayback_internal var _cachedState:String; flvplayback_internal var totalDownloadTime:Number; flvplayback_internal var _cachedPlayheadTime:Number; protected var _autoPlay:Boolean; protected var _autoRewind:Boolean; flvplayback_internal var _invalidSeekRecovery:Boolean; flvplayback_internal var _hiddenRewindPlayheadTime:Number; flvplayback_internal var _prevVideoHeight:int; protected var _ncMgr:INCManager; protected var _soundTransform:SoundTransform; flvplayback_internal var _httpDoSeekCount:Number; flvplayback_internal var oldRegistrationBounds:Rectangle; flvplayback_internal var _cmdQueue:Array; flvplayback_internal var _updateTimeTimer:Timer; flvplayback_internal var httpDoSeekMaxCount:Number;// = 4 flvplayback_internal var _startingPlay:Boolean; flvplayback_internal var baselineProgressTime:Number; flvplayback_internal var _autoResizeTimer:Timer; flvplayback_internal var _autoResizeDone:Boolean; flvplayback_internal var _httpDoSeekTimer:Timer; protected var _state:String; protected var _videoWidth:int; flvplayback_internal var _finishAutoResizeTimer:Timer; flvplayback_internal var _resizeImmediatelyOnMetadata:Boolean; flvplayback_internal var _currentPos:Number; flvplayback_internal var oldBounds:Rectangle; protected var _videoHeight:int; flvplayback_internal var waitingForEnough:Boolean; flvplayback_internal var _delayedBufferingTimer:Timer; protected var _registrationHeight:Number; flvplayback_internal var _hiddenForResizeMetadataDelay:Number; flvplayback_internal var autoResizePlayheadTimeout:Number;// = 0.5 flvplayback_internal var _rtmpDoStopAtEndTimer:Timer; flvplayback_internal var _lastSeekTime:Number; flvplayback_internal var totalProgressTime:Number; flvplayback_internal static const FINISH_AUTO_RESIZE_INTERVAL:Number = 250; flvplayback_internal static const DEFAULT_AUTO_RESIZE_PLAYHEAD_TIMEOUT:Number = 0.5; flvplayback_internal static const DEFAULT_AUTO_RESIZE_METADATA_DELAY_MAX:Number = 5; public static const SHORT_VERSION:String = "2.1"; flvplayback_internal static const HTTP_DO_SEEK_INTERVAL:Number = 250; flvplayback_internal static const DEFAULT_HTTP_DO_SEEK_MAX_COUNT:Number = 4; flvplayback_internal static const RTMP_DO_SEEK_INTERVAL:Number = 100; flvplayback_internal static const HTTP_DELAYED_BUFFERING_INTERVAL:Number = 100; public static const DEFAULT_UPDATE_TIME_INTERVAL:Number = 250; flvplayback_internal static const AUTO_RESIZE_INTERVAL:Number = 100; public static const DEFAULT_IDLE_TIMEOUT_INTERVAL:Number = 300000; flvplayback_internal static const DEFAULT_LAST_UPDATE_TIME_STUCK_COUNT_MAX:int = 10; flvplayback_internal static const RTMP_DO_STOP_AT_END_INTERVAL:Number = 500; public static const VERSION:String = "2.1.0.14"; public static const DEFAULT_UPDATE_PROGRESS_INTERVAL:Number = 250; public static var netStreamClientClass:Object = VideoPlayerClient; public static var iNCManagerClass:Object = "fl.video.NCManager"; flvplayback_internal static var BUFFER_FLUSH:String = "bufferFlush"; flvplayback_internal static var BUFFER_FULL:String = "bufferFull"; flvplayback_internal static var BUFFER_EMPTY:String = "bufferEmpty"; public function VideoPlayer(_arg1:int=320, _arg2:int=240){ autoResizePlayheadTimeout = DEFAULT_AUTO_RESIZE_PLAYHEAD_TIMEOUT; autoResizeMetadataDelayMax = DEFAULT_AUTO_RESIZE_METADATA_DELAY_MAX; httpDoSeekMaxCount = DEFAULT_HTTP_DO_SEEK_MAX_COUNT; lastUpdateTimeStuckCountMax = DEFAULT_LAST_UPDATE_TIME_STUCK_COUNT_MAX; super(_arg1, _arg2); _registrationX = x; _registrationY = y; _registrationWidth = _arg1; _registrationHeight = _arg2; _state = VideoState.DISCONNECTED; _cachedState = _state; _bufferState = BUFFER_EMPTY; _sawPlayStop = false; _cachedPlayheadTime = 0; _metadata = null; _startingPlay = false; _invalidSeekTime = false; _invalidSeekRecovery = false; _currentPos = 0; _atEnd = false; _streamLength = 0; _cmdQueue = new Array(); _readyDispatched = false; _autoResizeDone = false; _lastUpdateTime = NaN; lastUpdateTimeStuckCount = 0; _sawSeekNotify = false; _hiddenForResize = false; _hiddenForResizeMetadataDelay = 0; _resizeImmediatelyOnMetadata = false; _videoWidth = -1; _videoHeight = -1; _prevVideoWidth = 0; _prevVideoHeight = 0; _updateTimeTimer = new Timer(DEFAULT_UPDATE_TIME_INTERVAL); _updateTimeTimer.addEventListener(TimerEvent.TIMER, doUpdateTime); _updateProgressTimer = new Timer(DEFAULT_UPDATE_PROGRESS_INTERVAL); _updateProgressTimer.addEventListener(TimerEvent.TIMER, doUpdateProgress); _idleTimeoutTimer = new Timer(DEFAULT_IDLE_TIMEOUT_INTERVAL, 1); _idleTimeoutTimer.addEventListener(TimerEvent.TIMER, doIdleTimeout); _autoResizeTimer = new Timer(AUTO_RESIZE_INTERVAL); _autoResizeTimer.addEventListener(TimerEvent.TIMER, doAutoResize); _rtmpDoStopAtEndTimer = new Timer(RTMP_DO_STOP_AT_END_INTERVAL); _rtmpDoStopAtEndTimer.addEventListener(TimerEvent.TIMER, rtmpDoStopAtEnd); _rtmpDoSeekTimer = new Timer(RTMP_DO_SEEK_INTERVAL); _rtmpDoSeekTimer.addEventListener(TimerEvent.TIMER, rtmpDoSeek); _httpDoSeekTimer = new Timer(HTTP_DO_SEEK_INTERVAL); _httpDoSeekTimer.addEventListener(TimerEvent.TIMER, httpDoSeek); _httpDoSeekCount = 0; _finishAutoResizeTimer = new Timer(FINISH_AUTO_RESIZE_INTERVAL, 1); _finishAutoResizeTimer.addEventListener(TimerEvent.TIMER, finishAutoResize); _delayedBufferingTimer = new Timer(HTTP_DELAYED_BUFFERING_INTERVAL); _delayedBufferingTimer.addEventListener(TimerEvent.TIMER, doDelayedBuffering); _isLive = false; _align = VideoAlign.CENTER; _scaleMode = VideoScaleMode.MAINTAIN_ASPECT_RATIO; _autoPlay = true; _autoRewind = false; _bufferTime = 0.1; _soundTransform = new SoundTransform(); _volume = _soundTransform.volume; __visible = true; _contentPath = ""; waitingForEnough = false; baselineProgressTime = NaN; startProgressTime = NaN; totalDownloadTime = NaN; totalProgressTime = NaN; } public function get playheadTime():Number{ var _local1:Number; _local1 = ((_ns)==null) ? _currentPos : _ns.time; if (((!((_metadata == null))) && (!((_metadata.audiodelay == undefined))))){ _local1 = (_local1 - _metadata.audiodelay); if (_local1 < 0){ _local1 = 0; }; }; return (_local1); } public function stop():void{ if (!isXnOK()){ if ((((((_state == VideoState.CONNECTION_ERROR)) || ((_ncMgr == null)))) || ((_ncMgr.netConnection == null)))){ throw (new VideoError(VideoError.NO_CONNECTION)); }; return; } else { if (_state == VideoState.EXEC_QUEUED_CMD){ _state = _cachedState; } else { if (!stateResponsive){ queueCmd(QueuedCommand.STOP); return; }; execQueuedCmds(); }; }; if ((((_state == VideoState.STOPPED)) || ((_ns == null)))){ return; }; if (_ncMgr.isRTMP){ if (((_autoRewind) && (!(_isLive)))){ _currentPos = 0; _play(0, 0); _state = VideoState.STOPPED; setState(VideoState.REWINDING); } else { closeNS(true); setState(VideoState.STOPPED); }; } else { _pause(true); if (_autoRewind){ _seek(0); _state = VideoState.STOPPED; setState(VideoState.REWINDING); } else { setState(VideoState.STOPPED); }; }; } flvplayback_internal function execQueuedCmds():void{ var nextCmd:Object; while ((((((_cmdQueue.length > 0)) && (((((stateResponsive) || ((_state == VideoState.DISCONNECTED)))) || ((_state == VideoState.CONNECTION_ERROR)))))) && (((!((_cmdQueue[0].url == null))) || (((!((_state == VideoState.DISCONNECTED))) && (!((_state == VideoState.CONNECTION_ERROR))))))))) { try { nextCmd = _cmdQueue.shift(); _cachedState = _state; _state = VideoState.EXEC_QUEUED_CMD; switch (nextCmd.type){ case QueuedCommand.PLAY: play(nextCmd.url, nextCmd.time, nextCmd.isLive); break; case QueuedCommand.LOAD: load(nextCmd.url, nextCmd.time, nextCmd.isLive); break; case QueuedCommand.PAUSE: pause(); break; case QueuedCommand.STOP: stop(); break; case QueuedCommand.SEEK: seek(nextCmd.time); break; case QueuedCommand.PLAY_WHEN_ENOUGH: playWhenEnoughDownloaded(); break; }; } finally { if (_state == VideoState.EXEC_QUEUED_CMD){ _state = _cachedState; }; }; }; } public function setScale(_arg1:Number, _arg2:Number):void{ super.scaleX = _arg1; super.scaleY = _arg2; _registrationWidth = width; _registrationHeight = height; switch (_scaleMode){ case VideoScaleMode.MAINTAIN_ASPECT_RATIO: case VideoScaleMode.NO_SCALE: startAutoResize(); break; default: super.x = _registrationX; super.y = _registrationY; break; }; } public function set playheadTime(_arg1:Number):void{ seek(_arg1); } override public function get videoWidth():int{ if (_videoWidth > 0){ return (_videoWidth); }; if (((((!((_metadata == null))) && (!(isNaN(_metadata.width))))) && (!(isNaN(_metadata.height))))){ if ((((_metadata.width == _metadata.height)) && (_readyDispatched))){ return (super.videoWidth); }; return (int(_metadata.width)); }; if (_readyDispatched){ return (super.videoWidth); }; return (-1); } public function get scaleMode():String{ return (_scaleMode); } public function get progressInterval():Number{ return (_updateProgressTimer.delay); } public function set align(_arg1:String):void{ if (_align != _arg1){ switch (_arg1){ case VideoAlign.CENTER: case VideoAlign.TOP: case VideoAlign.LEFT: case VideoAlign.BOTTOM: case VideoAlign.RIGHT: case VideoAlign.TOP_LEFT: case VideoAlign.TOP_RIGHT: case VideoAlign.BOTTOM_LEFT: case VideoAlign.BOTTOM_RIGHT: break; default: return; }; _align = _arg1; switch (_scaleMode){ case VideoScaleMode.MAINTAIN_ASPECT_RATIO: case VideoScaleMode.NO_SCALE: startAutoResize(); break; }; }; } public function set scaleMode(_arg1:String):void{ if (_scaleMode != _arg1){ switch (_arg1){ case VideoScaleMode.MAINTAIN_ASPECT_RATIO: case VideoScaleMode.NO_SCALE: case VideoScaleMode.EXACT_FIT: break; default: return; }; if ((((((_scaleMode == VideoScaleMode.EXACT_FIT)) && (_resizeImmediatelyOnMetadata))) && ((((_videoWidth < 0)) || ((_videoHeight < 0)))))){ _resizeImmediatelyOnMetadata = false; }; _scaleMode = _arg1; startAutoResize(); }; } public function get source():String{ return (_contentPath); } flvplayback_internal function doUpdateTime(_arg1:TimerEvent=null):void{ var _local2:Number; _local2 = playheadTime; if (_local2 != _atEndCheckPlayhead){ _atEndCheckPlayhead = NaN; }; switch (_state){ case VideoState.STOPPED: case VideoState.PAUSED: case VideoState.DISCONNECTED: case VideoState.CONNECTION_ERROR: _updateTimeTimer.stop(); break; case VideoState.PLAYING: case VideoState.BUFFERING: if (((((((((!((_ncMgr == null))) && (!(_ncMgr.isRTMP)))) && ((_lastUpdateTime == _local2)))) && (!((_ns == null))))) && ((_ns.bytesLoaded == _ns.bytesTotal)))){ if (lastUpdateTimeStuckCount > lastUpdateTimeStuckCountMax){ lastUpdateTimeStuckCount = 0; httpDoStopAtEnd(); } else { lastUpdateTimeStuckCount++; }; }; }; if (_lastUpdateTime != _local2){ dispatchEvent(new VideoEvent(VideoEvent.PLAYHEAD_UPDATE, false, false, _state, _local2)); _lastUpdateTime = _local2; lastUpdateTimeStuckCount = 0; }; } flvplayback_internal function rtmpNetStatus(_arg1:NetStatusEvent):void{ if (_state == VideoState.CONNECTION_ERROR){ return; }; switch (_arg1.info.code){ case "NetStream.Play.Stop": if (_startingPlay){ return; }; switch (_state){ case VideoState.RESIZING: if (_hiddenForResize){ finishAutoResize(); }; break; case VideoState.LOADING: case VideoState.STOPPED: case VideoState.PAUSED: break; default: _sawPlayStop = true; if (((!(_rtmpDoStopAtEndTimer.running)) && ((((_bufferState == BUFFER_FLUSH)) || ((((_ns.bufferTime <= 0.1)) && ((_ns.bufferLength <= 0.1)))))))){ _cachedPlayheadTime = playheadTime; _rtmpDoStopAtEndTimer.reset(); _rtmpDoStopAtEndTimer.start(); }; break; }; break; case "NetStream.Buffer.Empty": switch (_bufferState){ case BUFFER_FULL: if (_sawPlayStop){ rtmpDoStopAtEnd(); } else { if (_state == VideoState.PLAYING){ setState(VideoState.BUFFERING); }; }; break; }; _bufferState = BUFFER_EMPTY; _sawPlayStop = false; break; case "NetStream.Buffer.Flush": if (((_sawSeekNotify) && ((_state == VideoState.SEEKING)))){ _bufferState = BUFFER_EMPTY; _sawPlayStop = false; setStateFromCachedState(false); doUpdateTime(); execQueuedCmds(); }; if (((((!(_rtmpDoStopAtEndTimer.running)) && (_sawPlayStop))) && ((((_bufferState == BUFFER_EMPTY)) || ((((_ns.bufferTime <= 0.1)) && ((_ns.bufferLength <= 0.1)))))))){ _cachedPlayheadTime = playheadTime; _rtmpDoStopAtEndTimer.reset(); _rtmpDoStopAtEndTimer.start(); }; switch (_bufferState){ case BUFFER_EMPTY: if (!_hiddenForResize){ if ((((((_state == VideoState.LOADING)) && ((_cachedState == VideoState.PLAYING)))) || ((_state == VideoState.BUFFERING)))){ setState(VideoState.PLAYING); } else { if (_cachedState == VideoState.BUFFERING){ _cachedState = VideoState.PLAYING; }; }; }; _bufferState = BUFFER_FLUSH; break; default: if (_state == VideoState.BUFFERING){ setStateFromCachedState(); }; break; }; break; case "NetStream.Buffer.Full": if (((_sawSeekNotify) && ((_state == VideoState.SEEKING)))){ _bufferState = BUFFER_EMPTY; _sawPlayStop = false; setStateFromCachedState(false); doUpdateTime(); execQueuedCmds(); }; switch (_bufferState){ case BUFFER_EMPTY: _bufferState = BUFFER_FULL; if (!_hiddenForResize){ if ((((((_state == VideoState.LOADING)) && ((_cachedState == VideoState.PLAYING)))) || ((_state == VideoState.BUFFERING)))){ setState(VideoState.PLAYING); } else { if (_cachedState == VideoState.BUFFERING){ _cachedState = VideoState.PLAYING; }; }; if (_rtmpDoStopAtEndTimer.running){ _sawPlayStop = true; _rtmpDoStopAtEndTimer.reset(); }; }; break; case BUFFER_FLUSH: _bufferState = BUFFER_FULL; if (_rtmpDoStopAtEndTimer.running){ _sawPlayStop = true; _rtmpDoStopAtEndTimer.reset(); }; break; }; if (_state == VideoState.BUFFERING){ setStateFromCachedState(); }; break; case "NetStream.Pause.Notify": if ((((_state == VideoState.RESIZING)) && (_hiddenForResize))){ finishAutoResize(); }; break; case "NetStream.Unpause.Notify": if (_state == VideoState.PAUSED){ _state = VideoState.PLAYING; setState(VideoState.BUFFERING); } else { _cachedState = VideoState.PLAYING; }; break; case "NetStream.Play.Start": _rtmpDoStopAtEndTimer.reset(); _bufferState = BUFFER_EMPTY; _sawPlayStop = false; if (_startingPlay){ _startingPlay = false; _cachedPlayheadTime = playheadTime; } else { if (_state == VideoState.PLAYING){ setState(VideoState.BUFFERING); }; }; break; case "NetStream.Play.Reset": _rtmpDoStopAtEndTimer.reset(); if (_state == VideoState.REWINDING){ _rtmpDoSeekTimer.reset(); if ((((playheadTime == 0)) || ((playheadTime < _cachedPlayheadTime)))){ setStateFromCachedState(); } else { _cachedPlayheadTime = playheadTime; _rtmpDoSeekTimer.start(); }; }; break; case "NetStream.Seek.Notify": if (playheadTime != _cachedPlayheadTime){ setStateFromCachedState(false); doUpdateTime(); execQueuedCmds(); } else { _sawSeekNotify = true; _rtmpDoSeekTimer.start(); }; break; case "Netstream.Play.UnpublishNotify": break; case "Netstream.Play.PublishNotify": break; case "NetStream.Play.StreamNotFound": if (!_ncMgr.connectAgain()){ setState(VideoState.CONNECTION_ERROR); }; break; case "NetStream.Play.Failed": case "NetStream.Failed": case "NetStream.Play.FileStructureInvalid": case "NetStream.Play.NoSupportedTrackFound": setState(VideoState.CONNECTION_ERROR); break; }; } public function set progressInterval(_arg1:Number):void{ _updateProgressTimer.delay = _arg1; } flvplayback_internal function onCuePoint(_arg1:Object):void{ if (((!(_hiddenForResize)) || (((!(isNaN(_hiddenRewindPlayheadTime))) && ((playheadTime < _hiddenRewindPlayheadTime)))))){ dispatchEvent(new MetadataEvent(MetadataEvent.CUE_POINT, false, false, _arg1)); }; } flvplayback_internal function createINCManager():void{ var theClass:Class; theClass = null; try { if ((iNCManagerClass is String)){ theClass = Class(getDefinitionByName(String(iNCManagerClass))); } else { if ((iNCManagerClass is Class)){ theClass = Class(iNCManagerClass); }; }; } catch(e:Error) { theClass = null; }; if (theClass == null){ throw (new VideoError(VideoError.INCMANAGER_CLASS_UNSET, ((iNCManagerClass)==null) ? "null" : iNCManagerClass.toString())); }; _ncMgr = new (theClass); _ncMgr.videoPlayer = this; } flvplayback_internal function doAutoResize(_arg1:TimerEvent=null):void{ var _local2:Boolean; var _local3:int; var _local4:int; var _local5:Number; var _local6:Number; if (_autoResizeTimer.running){ switch (_state){ case VideoState.RESIZING: case VideoState.LOADING: break; case VideoState.DISCONNECTED: case VideoState.CONNECTION_ERROR: _autoResizeTimer.reset(); return; default: if (!stateResponsive){ return; }; }; if (((((((((!((super.videoWidth == _prevVideoWidth))) || (!((super.videoHeight == _prevVideoHeight))))) || ((_bufferState == BUFFER_FULL)))) || ((_bufferState == BUFFER_FLUSH)))) || ((_ns.time > autoResizePlayheadTimeout)))){ if (((((_hiddenForResize) && (!(_ns.client.ready)))) && ((_hiddenForResizeMetadataDelay < autoResizeMetadataDelayMax)))){ _hiddenForResizeMetadataDelay++; return; }; _autoResizeTimer.reset(); } else { return; }; }; if (_autoResizeDone){ setState(_cachedState); return; }; oldBounds = new Rectangle(x, y, width, height); oldRegistrationBounds = new Rectangle(registrationX, registrationY, registrationWidth, registrationHeight); _autoResizeDone = true; _local2 = _readyDispatched; _readyDispatched = true; _local3 = videoWidth; _local4 = videoHeight; _readyDispatched = _local2; switch (_scaleMode){ case VideoScaleMode.NO_SCALE: super.width = _local3; super.height = _local4; break; case VideoScaleMode.EXACT_FIT: super.width = registrationWidth; super.height = registrationHeight; break; case VideoScaleMode.MAINTAIN_ASPECT_RATIO: default: _local5 = ((_local3 * _registrationHeight) / _local4); _local6 = ((_local4 * _registrationWidth) / _local3); if (_local6 < _registrationHeight){ super.width = _registrationWidth; super.height = _local6; } else { if (_local5 < _registrationWidth){ super.width = _local5; super.height = _registrationHeight; } else { super.width = _registrationWidth; super.height = _registrationHeight; }; }; }; switch (_align){ case VideoAlign.CENTER: case VideoAlign.TOP: case VideoAlign.BOTTOM: default: super.x = (_registrationX + ((_registrationWidth - width) / 2)); break; case VideoAlign.LEFT: case VideoAlign.TOP_LEFT: case VideoAlign.BOTTOM_LEFT: super.x = _registrationX; break; case VideoAlign.RIGHT: case VideoAlign.TOP_RIGHT: case VideoAlign.BOTTOM_RIGHT: super.x = (_registrationX + (_registrationWidth - width)); break; }; switch (_align){ case VideoAlign.CENTER: case VideoAlign.LEFT: case VideoAlign.RIGHT: default: super.y = (_registrationY + ((_registrationHeight - height) / 2)); break; case VideoAlign.TOP: case VideoAlign.TOP_LEFT: case VideoAlign.TOP_RIGHT: super.y = _registrationY; break; case VideoAlign.BOTTOM: case VideoAlign.BOTTOM_LEFT: case VideoAlign.BOTTOM_RIGHT: super.y = (_registrationY + (_registrationHeight - height)); break; }; if (_hiddenForResize){ _hiddenRewindPlayheadTime = playheadTime; if (_state == VideoState.LOADING){ _cachedState = VideoState.PLAYING; }; if (!_ncMgr.isRTMP){ _pause(true); _seek(0); _finishAutoResizeTimer.reset(); _finishAutoResizeTimer.start(); } else { if (!_isLive){ _currentPos = 0; _play(0, 0); setState(VideoState.RESIZING); } else { if (_autoPlay){ _finishAutoResizeTimer.reset(); _finishAutoResizeTimer.start(); } else { finishAutoResize(); }; }; }; } else { dispatchEvent(new AutoLayoutEvent(AutoLayoutEvent.AUTO_LAYOUT, false, false, oldBounds, oldRegistrationBounds)); }; } public function get totalTime():Number{ return (_streamLength); } public function get ncMgr():INCManager{ if (_ncMgr == null){ createINCManager(); }; return (_ncMgr); } public function set volume(_arg1:Number):void{ var _local2:SoundTransform; _local2 = soundTransform; _local2.volume = _arg1; soundTransform = _local2; } flvplayback_internal function _play(_arg1:int=0, _arg2:int=-1):void{ waitingForEnough = false; _rtmpDoStopAtEndTimer.reset(); _startingPlay = true; _ns.play(_ncMgr.streamName, (_isLive) ? -1 : _arg1, _arg2); } flvplayback_internal function finishAutoResize(_arg1:TimerEvent=null):void{ if (stateResponsive){ return; }; _hiddenForResize = false; super.visible = __visible; volume = _volume; dispatchEvent(new AutoLayoutEvent(AutoLayoutEvent.AUTO_LAYOUT, false, false, oldBounds, oldRegistrationBounds)); if (_autoPlay){ if (_ncMgr.isRTMP){ if (!_isLive){ _currentPos = 0; _play(0); }; if (_state == VideoState.RESIZING){ setState(VideoState.LOADING); _cachedState = VideoState.PLAYING; }; } else { waitingForEnough = true; _cachedState = _state; _state = VideoState.PAUSED; checkReadyForPlay(bytesLoaded, bytesTotal); if (waitingForEnough){ _state = _cachedState; setState(VideoState.PAUSED); } else { _cachedState = VideoState.PLAYING; }; }; } else { setState(VideoState.STOPPED); }; } public function set soundTransform(_arg1:SoundTransform):void{ if (_arg1 == null){ return; }; if (_hiddenForResize){ _volume = _arg1.volume; }; _soundTransform = new SoundTransform(); _soundTransform.volume = (_hiddenForResize) ? 0 : _arg1.volume; _soundTransform.leftToLeft = _arg1.leftToLeft; _soundTransform.leftToRight = _arg1.leftToRight; _soundTransform.rightToLeft = _arg1.rightToLeft; _soundTransform.rightToRight = _arg1.rightToRight; if (_ns != null){ _ns.soundTransform = _soundTransform; }; } flvplayback_internal function httpDoSeek(_arg1:TimerEvent):void{ var _local2:Boolean; _local2 = (((_state == VideoState.REWINDING)) || ((_state == VideoState.SEEKING))); if (((((_local2) && ((_httpDoSeekCount < httpDoSeekMaxCount)))) && ((((_cachedPlayheadTime == playheadTime)) || (_invalidSeekTime))))){ _httpDoSeekCount++; return; }; _httpDoSeekCount = 0; _httpDoSeekTimer.reset(); if (!_local2){ return; }; setStateFromCachedState(false); if (_invalidSeekTime){ _invalidSeekTime = false; _invalidSeekRecovery = true; seek(playheadTime); } else { doUpdateTime(); _lastSeekTime = playheadTime; execQueuedCmds(); }; } public function get bytesLoaded():uint{ if ((((_ns == null)) || (_ncMgr.isRTMP))){ return (uint.MIN_VALUE); }; return (_ns.bytesLoaded); } override public function set height(_arg1:Number):void{ super.height = (_registrationHeight = _arg1); switch (_scaleMode){ case VideoScaleMode.MAINTAIN_ASPECT_RATIO: case VideoScaleMode.NO_SCALE: startAutoResize(); break; default: super.height = _arg1; break; }; } flvplayback_internal function httpNetStatus(_arg1:NetStatusEvent):void{ switch (_arg1.info.code){ case "NetStream.Play.Stop": _delayedBufferingTimer.reset(); if (_invalidSeekTime){ _invalidSeekTime = false; _invalidSeekRecovery = true; setState(_cachedState); seek(playheadTime); } else { switch (_state){ case VideoState.SEEKING: httpDoSeek(null); case VideoState.PLAYING: case VideoState.BUFFERING: httpDoStopAtEnd(); break; }; }; break; case "NetStream.Seek.InvalidTime": if (_invalidSeekRecovery){ _invalidSeekTime = false; _invalidSeekRecovery = false; setState(_cachedState); seek(0); } else { _invalidSeekTime = true; _httpDoSeekCount = 0; _httpDoSeekTimer.start(); }; break; case "NetStream.Buffer.Empty": _bufferState = BUFFER_EMPTY; if (_state == VideoState.PLAYING){ _delayedBufferingTimer.reset(); _delayedBufferingTimer.start(); }; break; case "NetStream.Buffer.Full": case "NetStream.Buffer.Flush": _delayedBufferingTimer.reset(); _bufferState = BUFFER_FULL; if (!_hiddenForResize){ if ((((((_state == VideoState.LOADING)) && ((_cachedState == VideoState.PLAYING)))) || ((_state == VideoState.BUFFERING)))){ setState(VideoState.PLAYING); } else { if (_cachedState == VideoState.BUFFERING){ _cachedState = VideoState.PLAYING; }; }; }; break; case "NetStream.Seek.Notify": _invalidSeekRecovery = false; switch (_state){ case VideoState.SEEKING: case VideoState.REWINDING: _httpDoSeekCount = 0; _httpDoSeekTimer.start(); break; }; break; case "NetStream.Play.StreamNotFound": case "NetStream.Play.FileStructureInvalid": case "NetStream.Play.NoSupportedTrackFound": setState(VideoState.CONNECTION_ERROR); break; }; } public function get netConnection():NetConnection{ if (_ncMgr != null){ return (_ncMgr.netConnection); }; return (null); } public function set bufferTime(_arg1:Number):void{ _bufferTime = _arg1; if (_ns != null){ _ns.bufferTime = _bufferTime; }; } flvplayback_internal function onMetaData(_arg1:Object):void{ if (_metadata != null){ return; }; _metadata = _arg1; if (isNaN(_streamLength)){ _streamLength = _arg1.duration; }; if (((_resizeImmediatelyOnMetadata) && (_ns.client.ready))){ _resizeImmediatelyOnMetadata = false; _autoResizeTimer.reset(); _autoResizeDone = false; doAutoResize(); }; dispatchEvent(new MetadataEvent(MetadataEvent.METADATA_RECEIVED, false, false, _arg1)); } flvplayback_internal function queueCmd(_arg1:Number, _arg2:String=null, _arg3:Boolean=false, _arg4:Number=NaN):void{ _cmdQueue.push(new QueuedCommand(_arg1, _arg2, _arg3, _arg4)); } public function set registrationHeight(_arg1:Number):void{ height = _arg1; } override public function get visible():Boolean{ if (!_hiddenForResize){ __visible = super.visible; }; return (__visible); } public function seek(_arg1:Number):void{ if (_invalidSeekTime){ return; }; if (((isNaN(_arg1)) || ((_arg1 < 0)))){ throw (new VideoError(VideoError.INVALID_SEEK)); }; if (!isXnOK()){ if ((((((_state == VideoState.CONNECTION_ERROR)) || ((_ncMgr == null)))) || ((_ncMgr.netConnection == null)))){ throw (new VideoError(VideoError.NO_CONNECTION)); }; flushQueuedCmds(); queueCmd(QueuedCommand.SEEK, null, false, _arg1); setState(VideoState.LOADING); _cachedState = VideoState.LOADING; _ncMgr.reconnect(); return; } else { if (_state == VideoState.EXEC_QUEUED_CMD){ _state = _cachedState; } else { if (!stateResponsive){ queueCmd(QueuedCommand.SEEK, null, false, _arg1); return; }; execQueuedCmds(); }; }; if (_ns == null){ _createStream(); }; if (((_atEnd) && ((_arg1 < playheadTime)))){ _atEnd = false; }; switch (_state){ case VideoState.PLAYING: _state = VideoState.BUFFERING; case VideoState.BUFFERING: case VideoState.PAUSED: _seek(_arg1); setState(VideoState.SEEKING); break; case VideoState.STOPPED: if (_ncMgr.isRTMP){ _play(0); _pause(true); }; _seek(_arg1); _state = VideoState.PAUSED; setState(VideoState.SEEKING); break; }; } public function get state():String{ return (_state); } public function set autoRewind(_arg1:Boolean):void{ _autoRewind = _arg1; } override public function set scaleX(_arg1:Number):void{ super.scaleX = _arg1; _registrationWidth = width; switch (_scaleMode){ case VideoScaleMode.MAINTAIN_ASPECT_RATIO: case VideoScaleMode.NO_SCALE: startAutoResize(); break; }; } override public function set scaleY(_arg1:Number):void{ super.scaleY = _arg1; _registrationHeight = height; switch (_scaleMode){ case VideoScaleMode.MAINTAIN_ASPECT_RATIO: case VideoScaleMode.NO_SCALE: startAutoResize(); break; }; } public function get registrationWidth():Number{ return (_registrationWidth); } flvplayback_internal function flushQueuedCmds():void{ while (_cmdQueue.length > 0) { _cmdQueue.pop(); }; } public function get registrationX():Number{ return (_registrationX); } flvplayback_internal function _setUpStream():void{ if (((!(isNaN(_ncMgr.streamLength))) && ((_ncMgr.streamLength >= 0)))){ _streamLength = _ncMgr.streamLength; }; _videoWidth = ((_ncMgr.streamWidth)>=0) ? _ncMgr.streamWidth : -1; _videoHeight = ((_ncMgr.streamHeight)>=0) ? _ncMgr.streamHeight : -1; _resizeImmediatelyOnMetadata = (((((_videoWidth >= 0)) && ((_videoHeight >= 0)))) || ((_scaleMode == VideoScaleMode.EXACT_FIT))); if (!_hiddenForResize){ __visible = super.visible; super.visible = false; _volume = volume; volume = 0; _hiddenForResize = true; }; _hiddenForResizeMetadataDelay = 0; _play(0); if (_currentPos > 0){ _seek(_currentPos); _currentPos = 0; }; _autoResizeTimer.reset(); _autoResizeTimer.start(); } public function get registrationY():Number{ return (_registrationY); } flvplayback_internal function httpDoStopAtEnd():void{ if ((((((_atEndCheckPlayhead == playheadTime)) && (!((_atEndCheckPlayhead == _lastUpdateTime))))) && (!((playheadTime == 0))))){ _atEnd = false; _seek(0); return; }; _atEndCheckPlayhead = NaN; _atEnd = true; if (isNaN(_streamLength)){ _streamLength = _ns.time; }; _pause(true); setState(VideoState.STOPPED); if (_state != VideoState.STOPPED){ return; }; doUpdateTime(); if (_state != VideoState.STOPPED){ return; }; dispatchEvent(new VideoEvent(VideoEvent.COMPLETE, false, false, _state, playheadTime)); if (_state != VideoState.STOPPED){ return; }; if (_autoRewind){ _atEnd = false; _pause(true); _seek(0); setState(VideoState.REWINDING); }; } public function ncConnected():void{ if ((((_ncMgr == null)) || ((_ncMgr.netConnection == null)))){ setState(VideoState.CONNECTION_ERROR); } else { if (_ns == null){ _createStream(); _setUpStream(); }; }; } override public function set visible(_arg1:Boolean):void{ __visible = _arg1; if (!_hiddenForResize){ super.visible = __visible; }; } public function load(_arg1:String, _arg2:Number=NaN, _arg3:Boolean=false):void{ if (_arg1 == null){ throw (new VideoError(VideoError.NULL_URL_LOAD)); }; if (_state == VideoState.EXEC_QUEUED_CMD){ _state = _cachedState; } else { if (((((!(stateResponsive)) && (!((_state == VideoState.DISCONNECTED))))) && (!((_state == VideoState.CONNECTION_ERROR))))){ queueCmd(QueuedCommand.LOAD, _arg1, _arg3, _arg2); return; }; execQueuedCmds(); }; _autoPlay = false; _load(_arg1, _arg2, _arg3); } override public function set x(_arg1:Number):void{ var _local2:Number; if (this.x != _arg1){ _local2 = (_arg1 - this.x); super.x = _arg1; _registrationX = (_registrationX + _local2); }; } override public function set y(_arg1:Number):void{ var _local2:Number; if (this.y != _arg1){ _local2 = (_arg1 - this.y); super.y = _arg1; _registrationY = (_registrationY + _local2); }; } flvplayback_internal function _pause(_arg1:Boolean):void{ _atEndCheckPlayhead = playheadTime; _rtmpDoStopAtEndTimer.reset(); if (_arg1){ _ns.pause(); } else { _ns.resume(); }; } public function get playheadUpdateInterval():Number{ return (_updateTimeTimer.delay); } flvplayback_internal function doDelayedBuffering(_arg1:TimerEvent):void{ switch (_state){ case VideoState.LOADING: case VideoState.RESIZING: break; case VideoState.PLAYING: _delayedBufferingTimer.reset(); if (((((((((!(isNaN(totalTime))) && ((totalTime > 0)))) && ((bytesLoaded > 0)))) && ((bytesLoaded < uint.MAX_VALUE)))) && ((bytesLoaded < bytesTotal)))){ pause(); if (_state == VideoState.PAUSED){ waitingForEnough = true; playWhenEnoughDownloaded(); }; } else { setState(VideoState.BUFFERING); }; break; default: _delayedBufferingTimer.reset(); break; }; } flvplayback_internal function createNetStreamClient():Object{ var theClass:Class; var theInst:Object; theClass = null; theInst = null; try { if ((netStreamClientClass is String)){ theClass = Class(getDefinitionByName(String(netStreamClientClass))); } else { if ((netStreamClientClass is Class)){ theClass = Class(netStreamClientClass); }; }; if (theClass != null){ theInst = new theClass(this); }; } catch(e:Error) { theClass = null; theInst = null; }; if (theInst == null){ throw (new VideoError(VideoError.NETSTREAM_CLIENT_CLASS_UNSET, ((netStreamClientClass)==null) ? "null" : netStreamClientClass.toString())); }; return (theInst); } public function get align():String{ return (_align); } public function set registrationWidth(_arg1:Number):void{ width = _arg1; } public function get stateResponsive():Boolean{ switch (_state){ case VideoState.STOPPED: case VideoState.PLAYING: case VideoState.PAUSED: case VideoState.BUFFERING: return (true); default: return (false); }; } public function get volume():Number{ return (soundTransform.volume); } public function get soundTransform():SoundTransform{ var _local1:SoundTransform; if (_ns != null){ _soundTransform = _ns.soundTransform; }; _local1 = new SoundTransform(); _local1.volume = (_hiddenForResize) ? _volume : _soundTransform.volume; _local1.leftToLeft = _soundTransform.leftToLeft; _local1.leftToRight = _soundTransform.leftToRight; _local1.rightToLeft = _soundTransform.rightToLeft; _local1.rightToRight = _soundTransform.rightToRight; return (_local1); } public function get bufferTime():Number{ if (_ns != null){ _bufferTime = _ns.bufferTime; }; return (_bufferTime); } public function get metadata():Object{ return (_metadata); } public function play(_arg1:String=null, _arg2:Number=NaN, _arg3:Boolean=false):void{ if (_arg1 != null){ if (_state == VideoState.EXEC_QUEUED_CMD){ _state = _cachedState; } else { if (((((!(stateResponsive)) && (!((_state == VideoState.DISCONNECTED))))) && (!((_state == VideoState.CONNECTION_ERROR))))){ queueCmd(QueuedCommand.PLAY, _arg1, _arg3, _arg2); return; }; execQueuedCmds(); }; _autoPlay = true; _load(_arg1, _arg2, _arg3); return; }; if (!isXnOK()){ if ((((((_state == VideoState.CONNECTION_ERROR)) || ((_ncMgr == null)))) || ((_ncMgr.netConnection == null)))){ throw (new VideoError(VideoError.NO_CONNECTION)); }; flushQueuedCmds(); queueCmd(QueuedCommand.PLAY); setState(VideoState.LOADING); _cachedState = VideoState.LOADING; _ncMgr.reconnect(); return; } else { if (_state == VideoState.EXEC_QUEUED_CMD){ _state = _cachedState; } else { if (!stateResponsive){ queueCmd(QueuedCommand.PLAY); return; }; execQueuedCmds(); }; }; if (_ns == null){ _createStream(); }; switch (_state){ case VideoState.BUFFERING: if (_ncMgr.isRTMP){ _play(0); if (_atEnd){ _atEnd = false; _currentPos = 0; setState(VideoState.REWINDING); } else { if (_currentPos > 0){ _seek(_currentPos); _currentPos = 0; }; }; }; case VideoState.PLAYING: return; case VideoState.STOPPED: if (_ncMgr.isRTMP){ if (_isLive){ _play(-1); setState(VideoState.BUFFERING); } else { _play(0); if (_atEnd){ _atEnd = false; _currentPos = 0; _state = VideoState.BUFFERING; setState(VideoState.REWINDING); } else { if (_currentPos > 0){ _seek(_currentPos); _currentPos = 0; setState(VideoState.BUFFERING); } else { setState(VideoState.BUFFERING); }; }; }; } else { _pause(false); if (_atEnd){ _atEnd = false; _seek(0); _state = VideoState.BUFFERING; setState(VideoState.REWINDING); } else { if (_bufferState == BUFFER_EMPTY){ setState(VideoState.BUFFERING); } else { setState(VideoState.PLAYING); }; }; }; break; case VideoState.PAUSED: _pause(false); if (!_ncMgr.isRTMP){ if (_bufferState == BUFFER_EMPTY){ setState(VideoState.BUFFERING); } else { setState(VideoState.PLAYING); }; } else { setState(VideoState.BUFFERING); }; break; }; } public function get isLive():Boolean{ return (_isLive); } flvplayback_internal function setStateFromCachedState(_arg1:Boolean=true):void{ switch (_cachedState){ case VideoState.PLAYING: case VideoState.PAUSED: case VideoState.BUFFERING: setState(_cachedState, _arg1); break; default: setState(VideoState.STOPPED, _arg1); break; }; } public function get idleTimeout():Number{ return (_idleTimeoutTimer.delay); } public function get registrationHeight():Number{ return (_registrationHeight); } public function ncReconnected():void{ if ((((_ncMgr == null)) || ((_ncMgr.netConnection == null)))){ setState(VideoState.CONNECTION_ERROR); } else { _ns = null; _state = VideoState.STOPPED; execQueuedCmds(); }; } flvplayback_internal function startAutoResize():void{ switch (_state){ case VideoState.DISCONNECTED: case VideoState.CONNECTION_ERROR: return; default: if (_ns == null){ return; }; _autoResizeDone = false; if (((stateResponsive) && (((((((((!((super.videoWidth == 0))) || (!((super.videoHeight == 0))))) || ((_bufferState == BUFFER_FULL)))) || ((_bufferState == BUFFER_FLUSH)))) || ((_ns.time > autoResizePlayheadTimeout)))))){ doAutoResize(); } else { _autoResizeTimer.reset(); _autoResizeTimer.start(); }; break; }; } flvplayback_internal function setState(_arg1:String, _arg2:Boolean=true):void{ var _local3:String; if (_arg1 == _state){ return; }; _hiddenRewindPlayheadTime = NaN; _cachedState = _state; _cachedPlayheadTime = playheadTime; _state = _arg1; _local3 = _state; dispatchEvent(new VideoEvent(VideoEvent.STATE_CHANGE, false, false, _local3, playheadTime)); if (!_readyDispatched){ switch (_local3){ case VideoState.STOPPED: case VideoState.PLAYING: case VideoState.PAUSED: case VideoState.BUFFERING: _readyDispatched = true; dispatchEvent(new VideoEvent(VideoEvent.READY, false, false, _local3, playheadTime)); break; }; }; switch (_cachedState){ case VideoState.REWINDING: dispatchEvent(new VideoEvent(VideoEvent.AUTO_REWOUND, false, false, _local3, playheadTime)); if (((_ncMgr.isRTMP) && ((_local3 == VideoState.STOPPED)))){ closeNS(); }; break; }; switch (_local3){ case VideoState.STOPPED: case VideoState.PAUSED: if (_ncMgr.isRTMP){ _idleTimeoutTimer.reset(); _idleTimeoutTimer.start(); }; break; case VideoState.SEEKING: case VideoState.REWINDING: _bufferState = BUFFER_EMPTY; _sawPlayStop = false; _idleTimeoutTimer.reset(); break; case VideoState.PLAYING: case VideoState.BUFFERING: _updateTimeTimer.start(); _idleTimeoutTimer.reset(); break; case VideoState.LOADING: case VideoState.RESIZING: _idleTimeoutTimer.reset(); break; }; if (_arg2){ execQueuedCmds(); }; } flvplayback_internal function _seek(_arg1:Number):void{ _rtmpDoStopAtEndTimer.reset(); if (((((!((_metadata == null))) && (!((_metadata.audiodelay == undefined))))) && (((isNaN(_streamLength)) || (((_arg1 + _metadata.audiodelay) < _streamLength)))))){ _arg1 = (_arg1 + _metadata.audiodelay); }; _ns.seek(_arg1); _lastSeekTime = _arg1; _invalidSeekTime = false; _bufferState = BUFFER_EMPTY; _sawPlayStop = false; _sawSeekNotify = false; } public function get autoRewind():Boolean{ return (_autoRewind); } flvplayback_internal function doIdleTimeout(_arg1:TimerEvent):void{ close(); } public function playWhenEnoughDownloaded():void{ if (((!((_ncMgr == null))) && (_ncMgr.isRTMP))){ play(); return; }; if (!isXnOK()){ throw (new VideoError(VideoError.NO_CONNECTION)); }; if (_state == VideoState.EXEC_QUEUED_CMD){ _state = _cachedState; } else { if (!stateResponsive){ queueCmd(QueuedCommand.PLAY_WHEN_ENOUGH); return; }; execQueuedCmds(); }; waitingForEnough = true; checkReadyForPlay(bytesLoaded, bytesTotal); } flvplayback_internal function rtmpDoSeek(_arg1:TimerEvent):void{ if (((!((_state == VideoState.REWINDING))) && (!((_state == VideoState.SEEKING))))){ _rtmpDoSeekTimer.reset(); _sawSeekNotify = false; } else { if (playheadTime != _cachedPlayheadTime){ _rtmpDoSeekTimer.reset(); _sawSeekNotify = false; setStateFromCachedState(false); doUpdateTime(); _lastSeekTime = playheadTime; execQueuedCmds(); }; }; } public function get netStream():NetStream{ return (_ns); } override public function get videoHeight():int{ if (_videoHeight > 0){ return (_videoHeight); }; if (((((!((_metadata == null))) && (!(isNaN(_metadata.width))))) && (!(isNaN(_metadata.height))))){ if ((((_metadata.width == _metadata.height)) && (_readyDispatched))){ return (super.videoHeight); }; return (int(_metadata.height)); }; if (_readyDispatched){ return (super.videoHeight); }; return (-1); } public function set registrationX(_arg1:Number):void{ var _local2:Number; if (_registrationX != _arg1){ _local2 = (_arg1 - _registrationX); _registrationX = _arg1; this.x = (this.x + _local2); }; } public function set registrationY(_arg1:Number):void{ var _local2:Number; if (_registrationY != _arg1){ _local2 = (_arg1 - _registrationY); _registrationY = _arg1; this.y = (this.y + _local2); }; } flvplayback_internal function doUpdateProgress(_arg1:TimerEvent):void{ var _local2:uint; var _local3:uint; if (_ns == null){ return; }; _local2 = _ns.bytesLoaded; _local3 = _ns.bytesTotal; if (_local3 < uint.MAX_VALUE){ dispatchEvent(new VideoProgressEvent(VideoProgressEvent.PROGRESS, false, false, _local2, _local3)); }; if ((((((_state == VideoState.DISCONNECTED)) || ((_state == VideoState.CONNECTION_ERROR)))) || ((_local2 >= _local3)))){ _updateProgressTimer.stop(); }; checkEnoughDownloaded(_local2, _local3); } override public function set width(_arg1:Number):void{ super.width = (_registrationWidth = _arg1); switch (_scaleMode){ case VideoScaleMode.MAINTAIN_ASPECT_RATIO: case VideoScaleMode.NO_SCALE: startAutoResize(); break; default: super.width = _arg1; break; }; } public function get isRTMP():Boolean{ if (_ncMgr == null){ return (false); }; return (_ncMgr.isRTMP); } public function get bytesTotal():uint{ if ((((_ns == null)) || (_ncMgr.isRTMP))){ return (uint.MAX_VALUE); }; return (_ns.bytesTotal); } public function setSize(_arg1:Number, _arg2:Number):void{ super.width = (_registrationWidth = _arg1); super.height = (_registrationHeight = _arg2); switch (_scaleMode){ case VideoScaleMode.MAINTAIN_ASPECT_RATIO: case VideoScaleMode.NO_SCALE: startAutoResize(); break; default: super.x = _registrationX; super.y = _registrationY; break; }; } flvplayback_internal function isXnOK():Boolean{ if (_state == VideoState.LOADING){ return (true); }; if (_state == VideoState.CONNECTION_ERROR){ return (false); }; if (_state != VideoState.DISCONNECTED){ if ((((((_ncMgr == null)) || ((_ncMgr.netConnection == null)))) || (((_ncMgr.isRTMP) && (!(_ncMgr.netConnection.connected)))))){ setState(VideoState.DISCONNECTED); return (false); }; return (true); }; return (false); } flvplayback_internal function _createStream():void{ var _local1:NetStream; _ns = null; _local1 = new NetStream(_ncMgr.netConnection); if (_ncMgr.isRTMP){ _local1.addEventListener(NetStatusEvent.NET_STATUS, rtmpNetStatus); } else { _local1.addEventListener(NetStatusEvent.NET_STATUS, httpNetStatus); }; _local1.client = createNetStreamClient(); _local1.bufferTime = _bufferTime; _local1.soundTransform = soundTransform; _ns = _local1; attachNetStream(_ns); } flvplayback_internal function checkReadyForPlay(_arg1:uint, _arg2:uint):void{ var _local3:Number; if (_arg1 >= _arg2){ waitingForEnough = false; _cachedState = _state; _state = VideoState.EXEC_QUEUED_CMD; play(); execQueuedCmds(); return; }; if (isNaN(baselineProgressTime)){ return; }; if (((isNaN(totalTime)) || ((totalTime < 0)))){ waitingForEnough = false; _cachedState = _state; _state = VideoState.EXEC_QUEUED_CMD; play(); execQueuedCmds(); } else { if (totalDownloadTime > 1.5){ _local3 = ((totalProgressTime - baselineProgressTime) / totalDownloadTime); if ((totalTime - playheadTime) > ((totalTime - totalProgressTime) / _local3)){ waitingForEnough = false; _cachedState = _state; _state = VideoState.EXEC_QUEUED_CMD; play(); execQueuedCmds(); }; }; }; } flvplayback_internal function closeNS(_arg1:Boolean=false):void{ if (_ns != null){ if (_arg1){ doUpdateTime(); _currentPos = _ns.time; }; _updateTimeTimer.reset(); _updateProgressTimer.reset(); _idleTimeoutTimer.reset(); _autoResizeTimer.reset(); _rtmpDoStopAtEndTimer.reset(); _rtmpDoSeekTimer.reset(); _httpDoSeekTimer.reset(); _finishAutoResizeTimer.reset(); _delayedBufferingTimer.reset(); _ns.removeEventListener(NetStatusEvent.NET_STATUS, rtmpNetStatus); _ns.removeEventListener(NetStatusEvent.NET_STATUS, httpNetStatus); _ns.close(); _ns = null; }; } flvplayback_internal function _load(_arg1:String, _arg2:Number, _arg3:Boolean):void{ var _local4:Boolean; _prevVideoWidth = super.videoWidth; _prevVideoHeight = super.videoHeight; _autoResizeDone = false; _cachedPlayheadTime = 0; _bufferState = BUFFER_EMPTY; _sawPlayStop = false; _metadata = null; _startingPlay = false; _invalidSeekTime = false; _invalidSeekRecovery = false; _isLive = _arg3; _contentPath = _arg1; _currentPos = 0; _streamLength = (((isNaN(_arg2)) || ((_arg2 <= 0)))) ? NaN : _arg2; _atEnd = false; _readyDispatched = false; _lastUpdateTime = NaN; lastUpdateTimeStuckCount = 0; _sawSeekNotify = false; waitingForEnough = false; baselineProgressTime = NaN; startProgressTime = NaN; totalDownloadTime = NaN; totalProgressTime = NaN; _httpDoSeekCount = 0; _updateTimeTimer.reset(); _updateProgressTimer.reset(); _idleTimeoutTimer.reset(); _autoResizeTimer.reset(); _rtmpDoStopAtEndTimer.reset(); _rtmpDoSeekTimer.reset(); _httpDoSeekTimer.reset(); _finishAutoResizeTimer.reset(); _delayedBufferingTimer.reset(); closeNS(false); if (_ncMgr == null){ createINCManager(); }; _local4 = _ncMgr.connectToURL(_contentPath); setState(VideoState.LOADING); _cachedState = VideoState.LOADING; if (_local4){ _createStream(); _setUpStream(); }; if (!_ncMgr.isRTMP){ _updateProgressTimer.start(); }; } flvplayback_internal function rtmpDoStopAtEnd(_arg1:TimerEvent=null):void{ if (_rtmpDoStopAtEndTimer.running){ switch (_state){ case VideoState.DISCONNECTED: case VideoState.CONNECTION_ERROR: _rtmpDoStopAtEndTimer.reset(); return; }; if ((((_arg1 == null)) || ((_cachedPlayheadTime == playheadTime)))){ _rtmpDoStopAtEndTimer.reset(); } else { _cachedPlayheadTime = playheadTime; return; }; }; if ((((((((_atEndCheckPlayhead == playheadTime)) && (!((_atEndCheckPlayhead == _lastSeekTime))))) && (!(_isLive)))) && (!((playheadTime == 0))))){ _atEnd = false; _currentPos = 0; _play(0); return; }; _atEndCheckPlayhead = NaN; _bufferState = BUFFER_EMPTY; _sawPlayStop = false; _atEnd = true; setState(VideoState.STOPPED); if (_state != VideoState.STOPPED){ return; }; doUpdateTime(); if (_state != VideoState.STOPPED){ return; }; dispatchEvent(new VideoEvent(VideoEvent.COMPLETE, false, false, _state, playheadTime)); if (_state != VideoState.STOPPED){ return; }; if (((((_autoRewind) && (!(_isLive)))) && (!((playheadTime == 0))))){ _atEnd = false; _currentPos = 0; _play(0, 0); setState(VideoState.REWINDING); } else { closeNS(); }; } public function set idleTimeout(_arg1:Number):void{ _idleTimeoutTimer.delay = _arg1; } public function set playheadUpdateInterval(_arg1:Number):void{ _updateTimeTimer.delay = _arg1; } flvplayback_internal function checkEnoughDownloaded(_arg1:uint, _arg2:uint):void{ if ((((_arg1 == 0)) || ((_arg2 == uint.MAX_VALUE)))){ return; }; if (((isNaN(totalTime)) || ((totalTime <= 0)))){ if (((waitingForEnough) && (stateResponsive))){ waitingForEnough = false; _cachedState = _state; _state = VideoState.EXEC_QUEUED_CMD; play(); execQueuedCmds(); }; return; }; if (_arg1 >= _arg2){ if (waitingForEnough){ waitingForEnough = false; _cachedState = _state; _state = VideoState.EXEC_QUEUED_CMD; play(); execQueuedCmds(); }; return; }; if (isNaN(baselineProgressTime)){ baselineProgressTime = ((_arg1 / _arg2) * totalTime); }; if (isNaN(startProgressTime)){ startProgressTime = getTimer(); } else { totalDownloadTime = ((getTimer() - startProgressTime) / 1000); totalProgressTime = ((_arg1 / _arg2) * totalTime); if (waitingForEnough){ checkReadyForPlay(_arg1, _arg2); }; }; } public function close():void{ closeNS(true); if (((!((_ncMgr == null))) && (_ncMgr.isRTMP))){ _ncMgr.close(); }; setState(VideoState.DISCONNECTED); dispatchEvent(new VideoEvent(VideoEvent.CLOSE, false, false, _state, playheadTime)); } public function pause():void{ if (!isXnOK()){ if ((((((_state == VideoState.CONNECTION_ERROR)) || ((_ncMgr == null)))) || ((_ncMgr.netConnection == null)))){ throw (new VideoError(VideoError.NO_CONNECTION)); }; return; } else { if (_state == VideoState.EXEC_QUEUED_CMD){ _state = _cachedState; } else { if (!stateResponsive){ queueCmd(QueuedCommand.PAUSE); return; }; execQueuedCmds(); }; }; if ((((((_state == VideoState.PAUSED)) || ((_state == VideoState.STOPPED)))) || ((_ns == null)))){ return; }; _pause(true); setState(VideoState.PAUSED); } } }//package fl.video
Section 37
//VideoPlayerClient (fl.video.VideoPlayerClient) package fl.video { public dynamic class VideoPlayerClient { protected var _owner:VideoPlayer; protected var gotMetadata:Boolean; public function VideoPlayerClient(_arg1:VideoPlayer){ _owner = _arg1; gotMetadata = false; } public function get ready():Boolean{ return (gotMetadata); } public function onMetaData(_arg1:Object, ... _args):void{ _arg1.duration; _arg1.width; _arg1.height; _owner.onMetaData(_arg1); gotMetadata = true; } public function get owner():VideoPlayer{ return (_owner); } public function onCuePoint(_arg1:Object, ... _args):void{ _arg1.name; _arg1.time; _arg1.type; _owner.onCuePoint(_arg1); } } }//package fl.video
Section 38
//VideoPlayerState (fl.video.VideoPlayerState) package fl.video { public class VideoPlayerState { public var autoPlay:Boolean; public var isWaiting:Boolean; public var isLiveSet:Boolean; public var index:int; public var prevState:String; public var preSeekTime:Number; public var minProgressPercent:Number; public var url:String; public var totalTime:Number; public var owner:VideoPlayer; public var isLive:Boolean; public var cmdQueue:Array; public var totalTimeSet:Boolean; public function VideoPlayerState(_arg1:VideoPlayer, _arg2:int){ this.owner = _arg1; this.index = _arg2; this.url = ""; this.isLive = false; this.isLiveSet = true; this.totalTime = NaN; this.totalTimeSet = true; this.autoPlay = (_arg2 == 0); this.isWaiting = false; this.preSeekTime = NaN; this.cmdQueue = null; } } }//package fl.video
Section 39
//VideoProgressEvent (fl.video.VideoProgressEvent) package fl.video { import flash.events.*; public class VideoProgressEvent extends ProgressEvent implements IVPEvent { private var _vp:uint; public static const PROGRESS:String = "progress"; public function VideoProgressEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false, _arg4:uint=0, _arg5:uint=0, _arg6:uint=0){ super(_arg1, _arg2, _arg3, _arg4, _arg5); _vp = _arg6; } override public function clone():Event{ return (new VideoProgressEvent(type, bubbles, cancelable, bytesLoaded, bytesTotal, vp)); } public function set vp(_arg1:uint):void{ _vp = _arg1; } public function get vp():uint{ return (_vp); } } }//package fl.video
Section 40
//VideoScaleMode (fl.video.VideoScaleMode) package fl.video { public final class VideoScaleMode { public static const EXACT_FIT:String = "exactFit"; public static const MAINTAIN_ASPECT_RATIO:String = "maintainAspectRatio"; public static const NO_SCALE:String = "noScale"; } }//package fl.video
Section 41
//VideoState (fl.video.VideoState) package fl.video { public final class VideoState { public static const CONNECTION_ERROR:String = "connectionError"; public static const BUFFERING:String = "buffering"; public static const SEEKING:String = "seeking"; public static const STOPPED:String = "stopped"; public static const PAUSED:String = "paused"; public static const RESIZING:String = "resizing"; public static const PLAYING:String = "playing"; public static const DISCONNECTED:String = "disconnected"; public static const LOADING:String = "loading"; public static const REWINDING:String = "rewinding"; flvplayback_internal static var EXEC_QUEUED_CMD:String = "execQueuedCmd"; } }//package fl.video
Section 42
//announcerloading02_2 (theospuzzles_fla.announcerloading02_2) package theospuzzles_fla { import flash.net.*; import flash.events.*; import flash.display.*; import flash.geom.*; import flash.media.*; import flash.text.*; import flash.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; import flash.system.*; import flash.ui.*; public dynamic class announcerloading02_2 extends MovieClip { public function announcerloading02_2(){ addFrameScript(56, frame57); } function frame57(){ gotoAndPlay("loop"); } } }//package theospuzzles_fla
Section 43
//Blackboard_38 (theospuzzles_fla.Blackboard_38) package theospuzzles_fla { import flash.display.*; public dynamic class Blackboard_38 extends MovieClip { public var btn_b:SimpleButton; public var btn_f:SimpleButton; public var btn_g:SimpleButton; public var btn_h:SimpleButton; public var btn_d:SimpleButton; public var btn_s:SimpleButton; public var btn_z:SimpleButton; public var btn_w:SimpleButton; public var btn_q:SimpleButton; public var btn_j:SimpleButton; public var btn_n:SimpleButton; public var btn_t:SimpleButton; public var btn_k:SimpleButton; public var btn_v:SimpleButton; public var btn_c:SimpleButton; public var btn_r:SimpleButton; public var btn_l:SimpleButton; public var btn_x:SimpleButton; public var btn_y:SimpleButton; public var btn_p:SimpleButton; public var btn_m:SimpleButton; } }//package theospuzzles_fla
Section 44
//Puzzle1_Piece1_125 (theospuzzles_fla.Puzzle1_Piece1_125) package theospuzzles_fla { import flash.display.*; public dynamic class Puzzle1_Piece1_125 extends MovieClip { public var h1:MovieClip; } }//package theospuzzles_fla
Section 45
//video_placeholder_129 (theospuzzles_fla.video_placeholder_129) package theospuzzles_fla { import fl.video.*; import flash.net.*; import flash.events.*; import flash.display.*; import flash.geom.*; import flash.media.*; import flash.text.*; import com.ncam.*; import flash.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.filters.*; import flash.system.*; import flash.ui.*; public dynamic class video_placeholder_129 extends MovieClip { public var flv_player:FLVPlayback; public var captions:CCforFlashAS3; public function video_placeholder_129(){ __setProp_flv_player_video_placeholder_video_1(); __setProp_captions_video_placeholder_captxt_1(); } function __setProp_captions_video_placeholder_captxt_1(){ try { captions["componentInspectorSetting"] = true; } catch(e:Error) { }; captions.captObjType = "Flash FLVPlayback Component"; captions.captObjPath = "flv_player"; captions.captFrRate = 12; captions.captSrcType = "external"; captions.captSource = "captions/letterb.dfxp.xml"; captions.captDispMode = "pop-on"; captions.captDispLns = 3; captions.captLanguage = "en"; captions.bgPadding = 4; captions.bgAlpha = 100; captions.bgColor = "#000000"; captions.captColor = "#cc33ff"; captions.captFont = "Arial"; captions.captSize = 14; captions.captWeight = "normal"; captions.captAlign = "center"; captions.captOvStyl = false; try { captions["componentInspectorSetting"] = false; } catch(e:Error) { }; } function __setProp_flv_player_video_placeholder_video_1(){ try { flv_player["componentInspectorSetting"] = true; } catch(e:Error) { }; flv_player.align = "center"; flv_player.autoPlay = true; flv_player.scaleMode = "maintainAspectRatio"; flv_player.skin = ""; flv_player.skinAutoHide = false; flv_player.skinBackgroundAlpha = 0.5; flv_player.skinBackgroundColor = 0; flv_player.source = ""; flv_player.volume = 1; try { flv_player["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package theospuzzles_fla
Section 46
//VideoPayOffScreen_127 (theospuzzles_fla.VideoPayOffScreen_127) package theospuzzles_fla { import flash.display.*; public dynamic class VideoPayOffScreen_127 extends MovieClip { public var screen_mc:MovieClip; } }//package theospuzzles_fla
Section 47
//boundingBox_mc (boundingBox_mc) package { import flash.display.*; public dynamic class boundingBox_mc extends MovieClip { } }//package

Library Items

Symbol 1 GraphicUsed by:2
Symbol 2 MovieClip {boundingBox_mc}Uses:1Used by:3
Symbol 3 MovieClip {com.ncam.CCforFlashAS3}Uses:2Used by:442
Symbol 4 GraphicUsed by:5
Symbol 5 MovieClipUses:4Used by:9
Symbol 6 BitmapUsed by:7
Symbol 7 GraphicUses:6Used by:8
Symbol 8 MovieClip {fl.video.Icon}Uses:7Used by:9
Symbol 9 MovieClip {fl.video.FLVPlayback}Uses:5 8Used by:442
Symbol 10 GraphicUsed by:Timeline
Symbol 11 GraphicUsed by:15
Symbol 12 GraphicUsed by:15
Symbol 13 GraphicUsed by:15
Symbol 14 GraphicUsed by:15
Symbol 15 MovieClipUses:11 12 13 14Used by:Timeline
Symbol 16 GraphicUsed by:100
Symbol 17 GraphicUsed by:100
Symbol 18 GraphicUsed by:100
Symbol 19 GraphicUsed by:100
Symbol 20 GraphicUsed by:100
Symbol 21 GraphicUsed by:100
Symbol 22 GraphicUsed by:100
Symbol 23 GraphicUsed by:100
Symbol 24 GraphicUsed by:100
Symbol 25 GraphicUsed by:100
Symbol 26 GraphicUsed by:100
Symbol 27 GraphicUsed by:100
Symbol 28 GraphicUsed by:100
Symbol 29 GraphicUsed by:100
Symbol 30 GraphicUsed by:100
Symbol 31 GraphicUsed by:100
Symbol 32 GraphicUsed by:100
Symbol 33 GraphicUsed by:100
Symbol 34 GraphicUsed by:100
Symbol 35 GraphicUsed by:100
Symbol 36 GraphicUsed by:100
Symbol 37 GraphicUsed by:100
Symbol 38 GraphicUsed by:100
Symbol 39 GraphicUsed by:100
Symbol 40 GraphicUsed by:100
Symbol 41 GraphicUsed by:100
Symbol 42 GraphicUsed by:100
Symbol 43 GraphicUsed by:100
Symbol 44 GraphicUsed by:100
Symbol 45 GraphicUsed by:100
Symbol 46 GraphicUsed by:100
Symbol 47 GraphicUsed by:100
Symbol 48 GraphicUsed by:100
Symbol 49 GraphicUsed by:100
Symbol 50 GraphicUsed by:100
Symbol 51 GraphicUsed by:100
Symbol 52 GraphicUsed by:100
Symbol 53 GraphicUsed by:100
Symbol 54 GraphicUsed by:100
Symbol 55 GraphicUsed by:100
Symbol 56 GraphicUsed by:100
Symbol 57 GraphicUsed by:100
Symbol 58 GraphicUsed by:100
Symbol 59 GraphicUsed by:100
Symbol 60 GraphicUsed by:100
Symbol 61 GraphicUsed by:100
Symbol 62 GraphicUsed by:100
Symbol 63 GraphicUsed by:100
Symbol 64 GraphicUsed by:100
Symbol 65 GraphicUsed by:100
Symbol 66 GraphicUsed by:100
Symbol 67 GraphicUsed by:100
Symbol 68 GraphicUsed by:100
Symbol 69 GraphicUsed by:100
Symbol 70 GraphicUsed by:100
Symbol 71 GraphicUsed by:100
Symbol 72 GraphicUsed by:100
Symbol 73 GraphicUsed by:100
Symbol 74 GraphicUsed by:100
Symbol 75 GraphicUsed by:100
Symbol 76 GraphicUsed by:100
Symbol 77 GraphicUsed by:100
Symbol 78 GraphicUsed by:100
Symbol 79 GraphicUsed by:100
Symbol 80 GraphicUsed by:100
Symbol 81 GraphicUsed by:100
Symbol 82 GraphicUsed by:100
Symbol 83 GraphicUsed by:100
Symbol 84 GraphicUsed by:100
Symbol 85 GraphicUsed by:100
Symbol 86 GraphicUsed by:100
Symbol 87 GraphicUsed by:100
Symbol 88 GraphicUsed by:100
Symbol 89 GraphicUsed by:100
Symbol 90 GraphicUsed by:100
Symbol 91 GraphicUsed by:100
Symbol 92 GraphicUsed by:100
Symbol 93 GraphicUsed by:100
Symbol 94 GraphicUsed by:100
Symbol 95 GraphicUsed by:100
Symbol 96 GraphicUsed by:100
Symbol 97 GraphicUsed by:100
Symbol 98 GraphicUsed by:100
Symbol 99 GraphicUsed by:100
Symbol 100 MovieClip {theospuzzles_fla.announcerloading02_2}Uses:16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 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 99Used by:Timeline
Symbol 101 BitmapUsed by:102
Symbol 102 GraphicUses:101Used by:103
Symbol 103 MovieClipUses:102Used by:Timeline
Symbol 104 GraphicUsed by:Timeline
Symbol 105 FontUsed by:106 113 119 124 132 142 147 156 166 177 190 193 194 195 196 197 198 199 200 201 202 206 207 208 211 212 214 215 217 218 219 221 222 224 225 227 228 229 231 232 234 235 237 238 240 241 243 244 245 247 248 250 251 253 254 256 257 259 260 261 263 264 266 267 269 270 272 273 296 309 315 323 331 336 350 357 358 365 371 372 373 381 387 388 393 399 404
Symbol 106 TextUses:105Used by:Timeline
Symbol 107 GraphicUsed by:108
Symbol 108 MovieClipUses:107Used by:406  Timeline
Symbol 109 GraphicUsed by:114 120 125 133 143 167 310 316 332 337 351 359 374 382 400 405
Symbol 110 GraphicUsed by:114
Symbol 111 GraphicUsed by:112
Symbol 112 MovieClipUses:111Used by:114
Symbol 113 TextUses:105Used by:114
Symbol 114 MovieClipUses:109 110 112 113Used by:406 409 414 417 420 425 430 434 437  Timeline
Symbol 115 GraphicUsed by:120
Symbol 116 GraphicUsed by:117
Symbol 117 MovieClipUses:116Used by:120
Symbol 118 GraphicUsed by:120
Symbol 119 TextUses:105Used by:120
Symbol 120 MovieClipUses:109 115 117 118 119Used by:406 409 414 417 420 425 430 434 437  Timeline
Symbol 121 GraphicUsed by:125
Symbol 122 GraphicUsed by:123
Symbol 123 MovieClipUses:122Used by:125
Symbol 124 TextUses:105Used by:125
Symbol 125 MovieClipUses:109 121 123 124Used by:406 409 414 417 420 425 430 434 437  Timeline
Symbol 126 GraphicUsed by:127
Symbol 127 MovieClipUses:126Used by:406  Timeline
Symbol 128 GraphicUsed by:133
Symbol 129 GraphicUsed by:130
Symbol 130 MovieClipUses:129Used by:133
Symbol 131 GraphicUsed by:133
Symbol 132 TextUses:105Used by:133
Symbol 133 MovieClipUses:109 128 130 131 132Used by:406 409 414 417 420 425 430 434 437  Timeline
Symbol 134 GraphicUsed by:135
Symbol 135 MovieClipUses:134Used by:409  Timeline
Symbol 136 GraphicUsed by:143
Symbol 137 GraphicUsed by:141
Symbol 138 GraphicUsed by:141
Symbol 139 GraphicUsed by:141
Symbol 140 GraphicUsed by:141
Symbol 141 MovieClipUses:137 138 139 140Used by:143
Symbol 142 TextUses:105Used by:143
Symbol 143 MovieClipUses:109 136 141 142Used by:406 409 414 417 420 425 430 434 437  Timeline
Symbol 144 GraphicUsed by:148
Symbol 145 GraphicUsed by:146
Symbol 146 MovieClipUses:145Used by:148
Symbol 147 TextUses:105Used by:148
Symbol 148 MovieClipUses:144 146 147Used by:406 409 414 417 420 425 430 434 437  Timeline
Symbol 149 GraphicUsed by:150
Symbol 150 MovieClipUses:149Used by:420  Timeline
Symbol 151 GraphicUsed by:157
Symbol 152 GraphicUsed by:153
Symbol 153 MovieClipUses:152Used by:157
Symbol 154 GraphicUsed by:155
Symbol 155 MovieClipUses:154Used by:157
Symbol 156 TextUses:105Used by:157
Symbol 157 MovieClipUses:151 153 155 156Used by:406 409 414 417 420 425 430 434 437  Timeline
Symbol 158 GraphicUsed by:159
Symbol 159 MovieClipUses:158Used by:420  Timeline
Symbol 160 GraphicUsed by:167
Symbol 161 GraphicUsed by:163
Symbol 162 GraphicUsed by:163
Symbol 163 MovieClipUses:161 162Used by:167
Symbol 164 GraphicUsed by:165
Symbol 165 MovieClipUses:164Used by:167
Symbol 166 TextUses:105Used by:167
Symbol 167 MovieClipUses:109 160 163 165 166Used by:406 409 414 417 420 425 430 434 437  Timeline
Symbol 168 GraphicUsed by:169
Symbol 169 MovieClipUses:168Used by:417  Timeline
Symbol 170 GraphicUsed by:178
Symbol 171 GraphicUsed by:178 325
Symbol 172 GraphicUsed by:178
Symbol 173 GraphicUsed by:174
Symbol 174 MovieClipUses:173Used by:178
Symbol 175 GraphicUsed by:176
Symbol 176 MovieClipUses:175Used by:178
Symbol 177 TextUses:105Used by:178
Symbol 178 MovieClipUses:170 171 172 174 176 177Used by:406 409 414 417 420 425 430 434 437  Timeline
Symbol 179 GraphicUsed by:180
Symbol 180 MovieClipUses:179Used by:Timeline
Symbol 181 GraphicUsed by:182
Symbol 182 MovieClipUses:181Used by:437  Timeline
Symbol 183 GraphicUsed by:191
Symbol 184 GraphicUsed by:185
Symbol 185 MovieClipUses:184Used by:191
Symbol 186 GraphicUsed by:187
Symbol 187 MovieClipUses:186Used by:191
Symbol 188 GraphicUsed by:189
Symbol 189 MovieClipUses:188Used by:191
Symbol 190 TextUses:105Used by:191
Symbol 191 MovieClipUses:183 185 187 189 190Used by:406 409 414 417 420 425 430 434 437  Timeline
Symbol 192 GraphicUsed by:204
Symbol 193 TextUses:105Used by:204
Symbol 194 TextUses:105Used by:204
Symbol 195 TextUses:105Used by:204
Symbol 196 TextUses:105Used by:204
Symbol 197 TextUses:105Used by:204
Symbol 198 TextUses:105Used by:204
Symbol 199 TextUses:105Used by:204
Symbol 200 TextUses:105Used by:204
Symbol 201 TextUses:105Used by:204
Symbol 202 TextUses:105Used by:204
Symbol 203 GraphicUsed by:204
Symbol 204 ButtonUses:192 193 194 195 196 197 198 199 200 201 202 203Used by:Timeline
Symbol 205 GraphicUsed by:275
Symbol 206 TextUses:105Used by:275
Symbol 207 TextUses:105Used by:210
Symbol 208 TextUses:105Used by:210
Symbol 209 GraphicUsed by:210 213 216 220 223 226 230 233 236 239 242 246 249 252 255 258 262 265 268 271 274
Symbol 210 ButtonUses:207 208 209Used by:275
Symbol 211 TextUses:105Used by:213
Symbol 212 TextUses:105Used by:213
Symbol 213 ButtonUses:211 212 209Used by:275
Symbol 214 TextUses:105Used by:216
Symbol 215 TextUses:105Used by:216
Symbol 216 ButtonUses:214 215 209Used by:275
Symbol 217 TextUses:105Used by:275
Symbol 218 TextUses:105Used by:220
Symbol 219 TextUses:105Used by:220
Symbol 220 ButtonUses:218 219 209Used by:275
Symbol 221 TextUses:105Used by:223
Symbol 222 TextUses:105Used by:223
Symbol 223 ButtonUses:221 222 209Used by:275
Symbol 224 TextUses:105Used by:226
Symbol 225 TextUses:105Used by:226
Symbol 226 ButtonUses:224 225 209Used by:275
Symbol 227 TextUses:105Used by:275
Symbol 228 TextUses:105Used by:230
Symbol 229 TextUses:105Used by:230
Symbol 230 ButtonUses:228 229 209Used by:275
Symbol 231 TextUses:105Used by:233
Symbol 232 TextUses:105Used by:233
Symbol 233 ButtonUses:231 232 209Used by:275
Symbol 234 TextUses:105Used by:236
Symbol 235 TextUses:105Used by:236
Symbol 236 ButtonUses:234 235 209Used by:275
Symbol 237 TextUses:105Used by:239
Symbol 238 TextUses:105Used by:239
Symbol 239 ButtonUses:237 238 209Used by:275
Symbol 240 TextUses:105Used by:242
Symbol 241 TextUses:105Used by:242
Symbol 242 ButtonUses:240 241 209Used by:275
Symbol 243 TextUses:105Used by:275
Symbol 244 TextUses:105Used by:246
Symbol 245 TextUses:105Used by:246
Symbol 246 ButtonUses:244 245 209Used by:275
Symbol 247 TextUses:105Used by:249
Symbol 248 TextUses:105Used by:249
Symbol 249 ButtonUses:247 248 209Used by:275
Symbol 250 TextUses:105Used by:252
Symbol 251 TextUses:105Used by:252
Symbol 252 ButtonUses:250 251 209Used by:275
Symbol 253 TextUses:105Used by:255
Symbol 254 TextUses:105Used by:255
Symbol 255 ButtonUses:253 254 209Used by:275
Symbol 256 TextUses:105Used by:258
Symbol 257 TextUses:105Used by:258
Symbol 258 ButtonUses:256 257 209Used by:275
Symbol 259 TextUses:105Used by:275
Symbol 260 TextUses:105Used by:262
Symbol 261 TextUses:105Used by:262
Symbol 262 ButtonUses:260 261 209Used by:275
Symbol 263 TextUses:105Used by:265
Symbol 264 TextUses:105Used by:265
Symbol 265 ButtonUses:263 264 209Used by:275
Symbol 266 TextUses:105Used by:268
Symbol 267 TextUses:105Used by:268
Symbol 268 ButtonUses:266 267 209Used by:275
Symbol 269 TextUses:105Used by:271
Symbol 270 TextUses:105Used by:271
Symbol 271 ButtonUses:269 270 209Used by:275
Symbol 272 TextUses:105Used by:274
Symbol 273 TextUses:105Used by:274
Symbol 274 ButtonUses:272 273 209Used by:275
Symbol 275 MovieClip {theospuzzles_fla.Blackboard_38}Uses:205 206 210 213 216 217 220 223 226 227 230 233 236 239 242 243 246 249 252 255 258 259 262 265 268 271 274Used by:Timeline
Symbol 276 GraphicUsed by:277
Symbol 277 MovieClipUses:276Used by:437  Timeline
Symbol 278 GraphicUsed by:279
Symbol 279 MovieClipUses:278Used by:409  Timeline
Symbol 280 GraphicUsed by:281
Symbol 281 MovieClipUses:280Used by:414  Timeline
Symbol 282 GraphicUsed by:283
Symbol 283 MovieClipUses:282Used by:417  Timeline
Symbol 284 GraphicUsed by:285
Symbol 285 MovieClipUses:284Used by:425  Timeline
Symbol 286 GraphicUsed by:287
Symbol 287 MovieClipUses:286Used by:430  Timeline
Symbol 288 GraphicUsed by:289 433
Symbol 289 MovieClipUses:288Used by:434  Timeline
Symbol 290 GraphicUsed by:Timeline
Symbol 291 GraphicUsed by:297
Symbol 292 GraphicUsed by:297
Symbol 293 GraphicUsed by:297
Symbol 294 GraphicUsed by:295
Symbol 295 MovieClipUses:294Used by:297
Symbol 296 TextUses:105Used by:297
Symbol 297 MovieClipUses:291 292 293 295 296Used by:406 409 414 417 420 425 430 434 437
Symbol 298 GraphicUsed by:299
Symbol 299 MovieClipUses:298Used by:406
Symbol 300 GraphicUsed by:301
Symbol 301 MovieClipUses:300Used by:310
Symbol 302 GraphicUsed by:310
Symbol 303 GraphicUsed by:306
Symbol 304 GraphicUsed by:306
Symbol 305 GraphicUsed by:306
Symbol 306 MovieClipUses:303 304 305Used by:310
Symbol 307 GraphicUsed by:308
Symbol 308 MovieClipUses:307Used by:310
Symbol 309 TextUses:105Used by:310
Symbol 310 MovieClipUses:109 301 302 306 308 309Used by:406 409 414 417 420 425 430 434 437
Symbol 311 GraphicUsed by:316
Symbol 312 GraphicUsed by:313
Symbol 313 MovieClipUses:312Used by:316
Symbol 314 GraphicUsed by:316
Symbol 315 TextUses:105Used by:316
Symbol 316 MovieClipUses:109 311 313 314 315Used by:406 409 414 417 420 425 430 434 437
Symbol 317 GraphicUsed by:325
Symbol 318 GraphicUsed by:319
Symbol 319 MovieClipUses:318Used by:325
Symbol 320 GraphicUsed by:325
Symbol 321 GraphicUsed by:322
Symbol 322 MovieClipUses:321Used by:325
Symbol 323 TextUses:105Used by:325
Symbol 324 GraphicUsed by:325
Symbol 325 MovieClipUses:171 317 319 320 322 323 324Used by:406 409 414 417 420 425 430 434 437
Symbol 326 GraphicUsed by:332
Symbol 327 GraphicUsed by:328
Symbol 328 MovieClipUses:327Used by:332
Symbol 329 GraphicUsed by:330
Symbol 330 MovieClipUses:329Used by:332
Symbol 331 TextUses:105Used by:332
Symbol 332 MovieClipUses:109 326 328 330 331Used by:406 409 414 417 420 425 430 434 437
Symbol 333 GraphicUsed by:337
Symbol 334 GraphicUsed by:335
Symbol 335 MovieClipUses:334Used by:337
Symbol 336 TextUses:105Used by:337
Symbol 337 MovieClipUses:109 333 335 336Used by:406 409 414 417 420 425 430 434 437
Symbol 338 GraphicUsed by:342
Symbol 339 GraphicUsed by:340
Symbol 340 MovieClipUses:339Used by:342
Symbol 341 GraphicUsed by:342
Symbol 342 MovieClipUses:338 340 341Used by:406 409 414 417 420 425 430 434 437
Symbol 343 GraphicUsed by:351
Symbol 344 GraphicUsed by:345
Symbol 345 MovieClipUses:344Used by:351
Symbol 346 GraphicUsed by:349
Symbol 347 GraphicUsed by:349
Symbol 348 GraphicUsed by:349
Symbol 349 MovieClipUses:346 347 348Used by:351
Symbol 350 TextUses:105Used by:351
Symbol 351 MovieClipUses:109 343 345 349 350Used by:406 409 414 417 420 425 430 434 437
Symbol 352 GraphicUsed by:359
Symbol 353 GraphicUsed by:356
Symbol 354 GraphicUsed by:356
Symbol 355 GraphicUsed by:356
Symbol 356 MovieClipUses:353 354 355Used by:359
Symbol 357 TextUses:105Used by:359
Symbol 358 TextUses:105Used by:359
Symbol 359 MovieClipUses:109 352 356 357 358Used by:406 409 414 417 420 425 430 434 437
Symbol 360 GraphicUsed by:366
Symbol 361 GraphicUsed by:362
Symbol 362 MovieClipUses:361Used by:366
Symbol 363 GraphicUsed by:364
Symbol 364 MovieClipUses:363Used by:366
Symbol 365 TextUses:105Used by:366
Symbol 366 MovieClipUses:360 362 364 365Used by:406 409 414 417 420 425 430 434 437
Symbol 367 GraphicUsed by:374
Symbol 368 GraphicUsed by:369
Symbol 369 MovieClipUses:368Used by:374
Symbol 370 GraphicUsed by:374
Symbol 371 TextUses:105Used by:374
Symbol 372 TextUses:105Used by:374
Symbol 373 TextUses:105Used by:374
Symbol 374 MovieClipUses:109 367 369 370 371 372 373Used by:406 409 414 417 420 425 430 434 437
Symbol 375 GraphicUsed by:382
Symbol 376 GraphicUsed by:377
Symbol 377 MovieClipUses:376Used by:382
Symbol 378 GraphicUsed by:382
Symbol 379 GraphicUsed by:380
Symbol 380 MovieClipUses:379Used by:382
Symbol 381 TextUses:105Used by:382
Symbol 382 MovieClipUses:109 375 377 378 380 381Used by:406 409 414 417 420 425 430 434 437
Symbol 383 GraphicUsed by:389
Symbol 384 GraphicUsed by:385
Symbol 385 MovieClipUses:384Used by:389
Symbol 386 GraphicUsed by:389
Symbol 387 TextUses:105Used by:389
Symbol 388 TextUses:105Used by:389
Symbol 389 MovieClipUses:383 385 386 387 388Used by:406 409 414 417 420 425 430 434 437
Symbol 390 GraphicUsed by:394
Symbol 391 GraphicUsed by:392
Symbol 392 MovieClipUses:391Used by:394
Symbol 393 TextUses:105Used by:394
Symbol 394 MovieClipUses:390 392 393Used by:406 409 414 417 420 425 430 434 437
Symbol 395 GraphicUsed by:400
Symbol 396 GraphicUsed by:400
Symbol 397 GraphicUsed by:400
Symbol 398 GraphicUsed by:400
Symbol 399 TextUses:105Used by:400
Symbol 400 MovieClipUses:109 395 396 397 398 399Used by:406 409 414 417 420 425 430 434 437
Symbol 401 GraphicUsed by:405
Symbol 402 GraphicUsed by:403
Symbol 403 MovieClipUses:402Used by:405
Symbol 404 TextUses:105Used by:405
Symbol 405 MovieClipUses:109 401 403 404Used by:406 409 414 417 420 425 430 434 437
Symbol 406 MovieClipUses:108 297 299 191 127 178 114 310 316 120 143 325 125 332 337 342 351 359 167 157 366 374 382 133 389 394 400 405 148Used by:Timeline
Symbol 407 GraphicUsed by:408
Symbol 408 MovieClipUses:407Used by:409
Symbol 409 MovieClipUses:279 297 135 191 408 178 114 310 316 120 143 325 125 332 337 342 351 359 167 157 366 374 382 133 389 394 400 405 148Used by:Timeline
Symbol 410 GraphicUsed by:411
Symbol 411 MovieClipUses:410Used by:414
Symbol 412 GraphicUsed by:413
Symbol 413 MovieClipUses:412Used by:414
Symbol 414 MovieClipUses:281 297 411 191 413 178 114 310 316 120 143 325 125 332 337 342 351 359 167 157 366 374 382 133 389 394 400 405 148Used by:Timeline
Symbol 415 GraphicUsed by:416
Symbol 416 MovieClipUses:415Used by:417
Symbol 417 MovieClipUses:283 297 416 191 169 178 114 310 316 120 143 325 125 332 337 342 351 359 167 157 366 374 382 133 389 394 400 405 148Used by:Timeline
Symbol 418 GraphicUsed by:419
Symbol 419 MovieClipUses:418Used by:420
Symbol 420 MovieClipUses:159 297 150 191 419 178 114 310 316 120 143 325 125 332 337 342 351 359 167 157 366 374 382 133 389 394 400 405 148Used by:Timeline
Symbol 421 GraphicUsed by:422
Symbol 422 MovieClipUses:421Used by:425
Symbol 423 GraphicUsed by:424
Symbol 424 MovieClipUses:423Used by:425
Symbol 425 MovieClipUses:285 297 422 191 424 178 114 310 316 120 143 325 125 332 337 342 351 359 167 157 366 374 382 133 389 394 400 405 148Used by:Timeline
Symbol 426 GraphicUsed by:427
Symbol 427 MovieClipUses:426Used by:430
Symbol 428 GraphicUsed by:429
Symbol 429 MovieClipUses:428Used by:430
Symbol 430 MovieClipUses:287 297 427 191 429 178 114 310 316 120 143 325 125 332 337 342 351 359 167 157 366 374 382 133 389 394 400 405 148Used by:Timeline
Symbol 431 GraphicUsed by:432
Symbol 432 MovieClipUses:431Used by:434
Symbol 433 MovieClipUses:288Used by:434
Symbol 434 MovieClipUses:289 297 432 191 433 178 114 310 316 120 143 325 125 332 337 342 351 359 167 157 366 374 382 133 389 394 400 405 148Used by:Timeline
Symbol 435 GraphicUsed by:436
Symbol 436 MovieClipUses:435Used by:437
Symbol 437 MovieClip {theospuzzles_fla.Puzzle1_Piece1_125}Uses:277 297 182 191 436 178 114 310 316 120 143 325 125 332 337 342 351 359 167 157 366 374 382 133 389 394 400 405 148Used by:Timeline
Symbol 438 GraphicUsed by:439
Symbol 439 MovieClipUses:438Used by:443
Symbol 440 GraphicUsed by:442
Symbol 441 GraphicUsed by:442
Symbol 442 MovieClip {theospuzzles_fla.video_placeholder_129}Uses:440 9 441 3Used by:443
Symbol 443 MovieClip {theospuzzles_fla.VideoPayOffScreen_127}Uses:439 442Used by:Timeline

Instance Names

"loader_mc"Frame 1Symbol 15 MovieClip
"guy_mc"Frame 1Symbol 100 MovieClip {theospuzzles_fla.announcerloading02_2}
"banner_mc"Frame 1Symbol 103 MovieClip
"h1"Frame 2Symbol 182 MovieClip
"btn_play"Frame 2Symbol 204 Button
"board_mc"Frame 3Symbol 275 MovieClip {theospuzzles_fla.Blackboard_38}
"h1"Frame 4Symbol 277 MovieClip
"h2"Frame 4Symbol 108 MovieClip
"h3"Frame 4Symbol 279 MovieClip
"h4"Frame 4Symbol 281 MovieClip
"h5"Frame 4Symbol 283 MovieClip
"h6"Frame 4Symbol 159 MovieClip
"h7"Frame 4Symbol 285 MovieClip
"h8"Frame 4Symbol 287 MovieClip
"h9"Frame 4Symbol 289 MovieClip
"p2"Frame 4Symbol 406 MovieClip
"p3"Frame 4Symbol 409 MovieClip
"p4"Frame 4Symbol 414 MovieClip
"p5"Frame 4Symbol 417 MovieClip
"p6"Frame 4Symbol 420 MovieClip
"p7"Frame 4Symbol 425 MovieClip
"p8"Frame 4Symbol 430 MovieClip
"p9"Frame 4Symbol 434 MovieClip
"p1"Frame 4Symbol 437 MovieClip {theospuzzles_fla.Puzzle1_Piece1_125}
"video_mc"Frame 4Symbol 443 MovieClip {theospuzzles_fla.VideoPayOffScreen_127}
"boundingBox_mc"Symbol 3 MovieClip {com.ncam.CCforFlashAS3} Frame 1Symbol 2 MovieClip {boundingBox_mc}
"boundingBox_mc"Symbol 9 MovieClip {fl.video.FLVPlayback} Frame 1Symbol 5 MovieClip
"btn_b"Symbol 275 MovieClip {theospuzzles_fla.Blackboard_38} Frame 1Symbol 210 Button
"btn_c"Symbol 275 MovieClip {theospuzzles_fla.Blackboard_38} Frame 1Symbol 213 Button
"btn_d"Symbol 275 MovieClip {theospuzzles_fla.Blackboard_38} Frame 1Symbol 216 Button
"btn_f"Symbol 275 MovieClip {theospuzzles_fla.Blackboard_38} Frame 1Symbol 220 Button
"btn_g"Symbol 275 MovieClip {theospuzzles_fla.Blackboard_38} Frame 1Symbol 223 Button
"btn_h"Symbol 275 MovieClip {theospuzzles_fla.Blackboard_38} Frame 1Symbol 226 Button
"btn_j"Symbol 275 MovieClip {theospuzzles_fla.Blackboard_38} Frame 1Symbol 230 Button
"btn_k"Symbol 275 MovieClip {theospuzzles_fla.Blackboard_38} Frame 1Symbol 233 Button
"btn_l"Symbol 275 MovieClip {theospuzzles_fla.Blackboard_38} Frame 1Symbol 236 Button
"btn_m"Symbol 275 MovieClip {theospuzzles_fla.Blackboard_38} Frame 1Symbol 239 Button
"btn_n"Symbol 275 MovieClip {theospuzzles_fla.Blackboard_38} Frame 1Symbol 242 Button
"btn_p"Symbol 275 MovieClip {theospuzzles_fla.Blackboard_38} Frame 1Symbol 246 Button
"btn_q"Symbol 275 MovieClip {theospuzzles_fla.Blackboard_38} Frame 1Symbol 249 Button
"btn_r"Symbol 275 MovieClip {theospuzzles_fla.Blackboard_38} Frame 1Symbol 252 Button
"btn_s"Symbol 275 MovieClip {theospuzzles_fla.Blackboard_38} Frame 1Symbol 255 Button
"btn_t"Symbol 275 MovieClip {theospuzzles_fla.Blackboard_38} Frame 1Symbol 258 Button
"btn_v"Symbol 275 MovieClip {theospuzzles_fla.Blackboard_38} Frame 1Symbol 262 Button
"btn_w"Symbol 275 MovieClip {theospuzzles_fla.Blackboard_38} Frame 1Symbol 265 Button
"btn_x"Symbol 275 MovieClip {theospuzzles_fla.Blackboard_38} Frame 1Symbol 268 Button
"btn_y"Symbol 275 MovieClip {theospuzzles_fla.Blackboard_38} Frame 1Symbol 271 Button
"btn_z"Symbol 275 MovieClip {theospuzzles_fla.Blackboard_38} Frame 1Symbol 274 Button
"h1"Symbol 437 MovieClip {theospuzzles_fla.Puzzle1_Piece1_125} Frame 1Symbol 277 MovieClip
"h1"Symbol 437 MovieClip {theospuzzles_fla.Puzzle1_Piece1_125} Frame 2Symbol 182 MovieClip
"h1"Symbol 437 MovieClip {theospuzzles_fla.Puzzle1_Piece1_125} Frame 3Symbol 436 MovieClip
"h1"Symbol 437 MovieClip {theospuzzles_fla.Puzzle1_Piece1_125} Frame 4Symbol 277 MovieClip
"h1"Symbol 437 MovieClip {theospuzzles_fla.Puzzle1_Piece1_125} Frame 5Symbol 182 MovieClip
"h1"Symbol 437 MovieClip {theospuzzles_fla.Puzzle1_Piece1_125} Frame 6Symbol 436 MovieClip
"h1"Symbol 437 MovieClip {theospuzzles_fla.Puzzle1_Piece1_125} Frame 7Symbol 277 MovieClip
"h1"Symbol 437 MovieClip {theospuzzles_fla.Puzzle1_Piece1_125} Frame 8Symbol 182 MovieClip
"h1"Symbol 437 MovieClip {theospuzzles_fla.Puzzle1_Piece1_125} Frame 9Symbol 436 MovieClip
"h1"Symbol 437 MovieClip {theospuzzles_fla.Puzzle1_Piece1_125} Frame 10Symbol 277 MovieClip
"h1"Symbol 437 MovieClip {theospuzzles_fla.Puzzle1_Piece1_125} Frame 11Symbol 182 MovieClip
"h1"Symbol 437 MovieClip {theospuzzles_fla.Puzzle1_Piece1_125} Frame 12Symbol 436 MovieClip
"h1"Symbol 437 MovieClip {theospuzzles_fla.Puzzle1_Piece1_125} Frame 13Symbol 277 MovieClip
"h1"Symbol 437 MovieClip {theospuzzles_fla.Puzzle1_Piece1_125} Frame 14Symbol 182 MovieClip
"h1"Symbol 437 MovieClip {theospuzzles_fla.Puzzle1_Piece1_125} Frame 15Symbol 436 MovieClip
"h1"Symbol 437 MovieClip {theospuzzles_fla.Puzzle1_Piece1_125} Frame 16Symbol 277 MovieClip
"h1"Symbol 437 MovieClip {theospuzzles_fla.Puzzle1_Piece1_125} Frame 17Symbol 182 MovieClip
"h1"Symbol 437 MovieClip {theospuzzles_fla.Puzzle1_Piece1_125} Frame 18Symbol 436 MovieClip
"h1"Symbol 437 MovieClip {theospuzzles_fla.Puzzle1_Piece1_125} Frame 19Symbol 277 MovieClip
"h1"Symbol 437 MovieClip {theospuzzles_fla.Puzzle1_Piece1_125} Frame 20Symbol 182 MovieClip
"h1"Symbol 437 MovieClip {theospuzzles_fla.Puzzle1_Piece1_125} Frame 21Symbol 436 MovieClip
"h1"Symbol 437 MovieClip {theospuzzles_fla.Puzzle1_Piece1_125} Frame 22Symbol 277 MovieClip
"h1"Symbol 437 MovieClip {theospuzzles_fla.Puzzle1_Piece1_125} Frame 23Symbol 182 MovieClip
"h1"Symbol 437 MovieClip {theospuzzles_fla.Puzzle1_Piece1_125} Frame 24Symbol 436 MovieClip
"h1"Symbol 437 MovieClip {theospuzzles_fla.Puzzle1_Piece1_125} Frame 25Symbol 277 MovieClip
"h1"Symbol 437 MovieClip {theospuzzles_fla.Puzzle1_Piece1_125} Frame 26Symbol 182 MovieClip
"flv_player"Symbol 442 MovieClip {theospuzzles_fla.video_placeholder_129} Frame 1Symbol 9 MovieClip {fl.video.FLVPlayback}
"captions"Symbol 442 MovieClip {theospuzzles_fla.video_placeholder_129} Frame 1Symbol 3 MovieClip {com.ncam.CCforFlashAS3}
"screen_mc"Symbol 443 MovieClip {theospuzzles_fla.VideoPayOffScreen_127} Frame 1Symbol 442 MovieClip {theospuzzles_fla.video_placeholder_129}

Special Tags

FileAttributes (69)Timeline Frame 1Access local files only, Metadata not present, AS3.
Protect (24)Timeline Frame 10 bytes ""

Labels

"loading"Frame 1
"intro"Frame 2
"select"Frame 3
"game"Frame 4
"video"Frame 5
"loop"Symbol 100 MovieClip {theospuzzles_fla.announcerloading02_2} Frame 1
"finished"Symbol 100 MovieClip {theospuzzles_fla.announcerloading02_2} Frame 58
"done"Symbol 100 MovieClip {theospuzzles_fla.announcerloading02_2} Frame 103
"a"Symbol 406 MovieClip Frame 1
"b"Symbol 406 MovieClip Frame 2
"c"Symbol 406 MovieClip Frame 3
"d"Symbol 406 MovieClip Frame 4
"e"Symbol 406 MovieClip Frame 5
"f"Symbol 406 MovieClip Frame 6
"g"Symbol 406 MovieClip Frame 7
"h"Symbol 406 MovieClip Frame 8
"i"Symbol 406 MovieClip Frame 9
"j"Symbol 406 MovieClip Frame 10
"k"Symbol 406 MovieClip Frame 11
"l"Symbol 406 MovieClip Frame 12
"m"Symbol 406 MovieClip Frame 13
"n"Symbol 406 MovieClip Frame 14
"o"Symbol 406 MovieClip Frame 15
"p"Symbol 406 MovieClip Frame 16
"q"Symbol 406 MovieClip Frame 17
"r"Symbol 406 MovieClip Frame 18
"s"Symbol 406 MovieClip Frame 19
"t"Symbol 406 MovieClip Frame 20
"u"Symbol 406 MovieClip Frame 21
"v"Symbol 406 MovieClip Frame 22
"w"Symbol 406 MovieClip Frame 23
"x"Symbol 406 MovieClip Frame 24
"y"Symbol 406 MovieClip Frame 25
"z"Symbol 406 MovieClip Frame 26
"a"Symbol 409 MovieClip Frame 1
"b"Symbol 409 MovieClip Frame 2
"c"Symbol 409 MovieClip Frame 3
"d"Symbol 409 MovieClip Frame 4
"e"Symbol 409 MovieClip Frame 5
"f"Symbol 409 MovieClip Frame 6
"g"Symbol 409 MovieClip Frame 7
"h"Symbol 409 MovieClip Frame 8
"i"Symbol 409 MovieClip Frame 9
"j"Symbol 409 MovieClip Frame 10
"k"Symbol 409 MovieClip Frame 11
"l"Symbol 409 MovieClip Frame 12
"m"Symbol 409 MovieClip Frame 13
"n"Symbol 409 MovieClip Frame 14
"o"Symbol 409 MovieClip Frame 15
"p"Symbol 409 MovieClip Frame 16
"q"Symbol 409 MovieClip Frame 17
"r"Symbol 409 MovieClip Frame 18
"s"Symbol 409 MovieClip Frame 19
"t"Symbol 409 MovieClip Frame 20
"u"Symbol 409 MovieClip Frame 21
"v"Symbol 409 MovieClip Frame 22
"w"Symbol 409 MovieClip Frame 23
"x"Symbol 409 MovieClip Frame 24
"y"Symbol 409 MovieClip Frame 25
"z"Symbol 409 MovieClip Frame 26
"a"Symbol 414 MovieClip Frame 1
"b"Symbol 414 MovieClip Frame 2
"c"Symbol 414 MovieClip Frame 3
"d"Symbol 414 MovieClip Frame 4
"e"Symbol 414 MovieClip Frame 5
"f"Symbol 414 MovieClip Frame 6
"g"Symbol 414 MovieClip Frame 7
"h"Symbol 414 MovieClip Frame 8
"i"Symbol 414 MovieClip Frame 9
"j"Symbol 414 MovieClip Frame 10
"k"Symbol 414 MovieClip Frame 11
"l"Symbol 414 MovieClip Frame 12
"m"Symbol 414 MovieClip Frame 13
"n"Symbol 414 MovieClip Frame 14
"o"Symbol 414 MovieClip Frame 15
"p"Symbol 414 MovieClip Frame 16
"q"Symbol 414 MovieClip Frame 17
"r"Symbol 414 MovieClip Frame 18
"s"Symbol 414 MovieClip Frame 19
"t"Symbol 414 MovieClip Frame 20
"u"Symbol 414 MovieClip Frame 21
"v"Symbol 414 MovieClip Frame 22
"w"Symbol 414 MovieClip Frame 23
"x"Symbol 414 MovieClip Frame 24
"y"Symbol 414 MovieClip Frame 25
"z"Symbol 414 MovieClip Frame 26
"a"Symbol 417 MovieClip Frame 1
"b"Symbol 417 MovieClip Frame 2
"c"Symbol 417 MovieClip Frame 3
"d"Symbol 417 MovieClip Frame 4
"e"Symbol 417 MovieClip Frame 5
"f"Symbol 417 MovieClip Frame 6
"g"Symbol 417 MovieClip Frame 7
"h"Symbol 417 MovieClip Frame 8
"i"Symbol 417 MovieClip Frame 9
"j"Symbol 417 MovieClip Frame 10
"k"Symbol 417 MovieClip Frame 11
"l"Symbol 417 MovieClip Frame 12
"m"Symbol 417 MovieClip Frame 13
"n"Symbol 417 MovieClip Frame 14
"o"Symbol 417 MovieClip Frame 15
"p"Symbol 417 MovieClip Frame 16
"q"Symbol 417 MovieClip Frame 17
"r"Symbol 417 MovieClip Frame 18
"s"Symbol 417 MovieClip Frame 19
"t"Symbol 417 MovieClip Frame 20
"u"Symbol 417 MovieClip Frame 21
"v"Symbol 417 MovieClip Frame 22
"w"Symbol 417 MovieClip Frame 23
"x"Symbol 417 MovieClip Frame 24
"y"Symbol 417 MovieClip Frame 25
"z"Symbol 417 MovieClip Frame 26
"a"Symbol 420 MovieClip Frame 1
"b"Symbol 420 MovieClip Frame 2
"c"Symbol 420 MovieClip Frame 3
"d"Symbol 420 MovieClip Frame 4
"e"Symbol 420 MovieClip Frame 5
"f"Symbol 420 MovieClip Frame 6
"g"Symbol 420 MovieClip Frame 7
"h"Symbol 420 MovieClip Frame 8
"i"Symbol 420 MovieClip Frame 9
"j"Symbol 420 MovieClip Frame 10
"k"Symbol 420 MovieClip Frame 11
"l"Symbol 420 MovieClip Frame 12
"m"Symbol 420 MovieClip Frame 13
"n"Symbol 420 MovieClip Frame 14
"o"Symbol 420 MovieClip Frame 15
"p"Symbol 420 MovieClip Frame 16
"q"Symbol 420 MovieClip Frame 17
"r"Symbol 420 MovieClip Frame 18
"s"Symbol 420 MovieClip Frame 19
"t"Symbol 420 MovieClip Frame 20
"u"Symbol 420 MovieClip Frame 21
"v"Symbol 420 MovieClip Frame 22
"w"Symbol 420 MovieClip Frame 23
"x"Symbol 420 MovieClip Frame 24
"y"Symbol 420 MovieClip Frame 25
"z"Symbol 420 MovieClip Frame 26
"a"Symbol 425 MovieClip Frame 1
"b"Symbol 425 MovieClip Frame 2
"c"Symbol 425 MovieClip Frame 3
"d"Symbol 425 MovieClip Frame 4
"e"Symbol 425 MovieClip Frame 5
"f"Symbol 425 MovieClip Frame 6
"g"Symbol 425 MovieClip Frame 7
"h"Symbol 425 MovieClip Frame 8
"i"Symbol 425 MovieClip Frame 9
"j"Symbol 425 MovieClip Frame 10
"k"Symbol 425 MovieClip Frame 11
"l"Symbol 425 MovieClip Frame 12
"m"Symbol 425 MovieClip Frame 13
"n"Symbol 425 MovieClip Frame 14
"o"Symbol 425 MovieClip Frame 15
"p"Symbol 425 MovieClip Frame 16
"q"Symbol 425 MovieClip Frame 17
"r"Symbol 425 MovieClip Frame 18
"s"Symbol 425 MovieClip Frame 19
"t"Symbol 425 MovieClip Frame 20
"u"Symbol 425 MovieClip Frame 21
"v"Symbol 425 MovieClip Frame 22
"w"Symbol 425 MovieClip Frame 23
"x"Symbol 425 MovieClip Frame 24
"y"Symbol 425 MovieClip Frame 25
"z"Symbol 425 MovieClip Frame 26
"a"Symbol 430 MovieClip Frame 1
"b"Symbol 430 MovieClip Frame 2
"c"Symbol 430 MovieClip Frame 3
"d"Symbol 430 MovieClip Frame 4
"e"Symbol 430 MovieClip Frame 5
"f"Symbol 430 MovieClip Frame 6
"g"Symbol 430 MovieClip Frame 7
"h"Symbol 430 MovieClip Frame 8
"i"Symbol 430 MovieClip Frame 9
"j"Symbol 430 MovieClip Frame 10
"k"Symbol 430 MovieClip Frame 11
"l"Symbol 430 MovieClip Frame 12
"m"Symbol 430 MovieClip Frame 13
"n"Symbol 430 MovieClip Frame 14
"o"Symbol 430 MovieClip Frame 15
"p"Symbol 430 MovieClip Frame 16
"q"Symbol 430 MovieClip Frame 17
"r"Symbol 430 MovieClip Frame 18
"s"Symbol 430 MovieClip Frame 19
"t"Symbol 430 MovieClip Frame 20
"u"Symbol 430 MovieClip Frame 21
"v"Symbol 430 MovieClip Frame 22
"w"Symbol 430 MovieClip Frame 23
"x"Symbol 430 MovieClip Frame 24
"y"Symbol 430 MovieClip Frame 25
"z"Symbol 430 MovieClip Frame 26
"a"Symbol 434 MovieClip Frame 1
"b"Symbol 434 MovieClip Frame 2
"c"Symbol 434 MovieClip Frame 3
"d"Symbol 434 MovieClip Frame 4
"e"Symbol 434 MovieClip Frame 5
"f"Symbol 434 MovieClip Frame 6
"g"Symbol 434 MovieClip Frame 7
"h"Symbol 434 MovieClip Frame 8
"i"Symbol 434 MovieClip Frame 9
"j"Symbol 434 MovieClip Frame 10
"k"Symbol 434 MovieClip Frame 11
"l"Symbol 434 MovieClip Frame 12
"m"Symbol 434 MovieClip Frame 13
"n"Symbol 434 MovieClip Frame 14
"o"Symbol 434 MovieClip Frame 15
"p"Symbol 434 MovieClip Frame 16
"q"Symbol 434 MovieClip Frame 17
"r"Symbol 434 MovieClip Frame 18
"s"Symbol 434 MovieClip Frame 19
"t"Symbol 434 MovieClip Frame 20
"u"Symbol 434 MovieClip Frame 21
"v"Symbol 434 MovieClip Frame 22
"w"Symbol 434 MovieClip Frame 23
"x"Symbol 434 MovieClip Frame 24
"y"Symbol 434 MovieClip Frame 25
"z"Symbol 434 MovieClip Frame 26
"a"Symbol 437 MovieClip {theospuzzles_fla.Puzzle1_Piece1_125} Frame 1
"b"Symbol 437 MovieClip {theospuzzles_fla.Puzzle1_Piece1_125} Frame 2
"c"Symbol 437 MovieClip {theospuzzles_fla.Puzzle1_Piece1_125} Frame 3
"d"Symbol 437 MovieClip {theospuzzles_fla.Puzzle1_Piece1_125} Frame 4
"e"Symbol 437 MovieClip {theospuzzles_fla.Puzzle1_Piece1_125} Frame 5
"f"Symbol 437 MovieClip {theospuzzles_fla.Puzzle1_Piece1_125} Frame 6
"g"Symbol 437 MovieClip {theospuzzles_fla.Puzzle1_Piece1_125} Frame 7
"h"Symbol 437 MovieClip {theospuzzles_fla.Puzzle1_Piece1_125} Frame 8
"i"Symbol 437 MovieClip {theospuzzles_fla.Puzzle1_Piece1_125} Frame 9
"j"Symbol 437 MovieClip {theospuzzles_fla.Puzzle1_Piece1_125} Frame 10
"k"Symbol 437 MovieClip {theospuzzles_fla.Puzzle1_Piece1_125} Frame 11
"l"Symbol 437 MovieClip {theospuzzles_fla.Puzzle1_Piece1_125} Frame 12
"m"Symbol 437 MovieClip {theospuzzles_fla.Puzzle1_Piece1_125} Frame 13
"n"Symbol 437 MovieClip {theospuzzles_fla.Puzzle1_Piece1_125} Frame 14
"o"Symbol 437 MovieClip {theospuzzles_fla.Puzzle1_Piece1_125} Frame 15
"p"Symbol 437 MovieClip {theospuzzles_fla.Puzzle1_Piece1_125} Frame 16
"q"Symbol 437 MovieClip {theospuzzles_fla.Puzzle1_Piece1_125} Frame 17
"r"Symbol 437 MovieClip {theospuzzles_fla.Puzzle1_Piece1_125} Frame 18
"s"Symbol 437 MovieClip {theospuzzles_fla.Puzzle1_Piece1_125} Frame 19
"t"Symbol 437 MovieClip {theospuzzles_fla.Puzzle1_Piece1_125} Frame 20
"u"Symbol 437 MovieClip {theospuzzles_fla.Puzzle1_Piece1_125} Frame 21
"v"Symbol 437 MovieClip {theospuzzles_fla.Puzzle1_Piece1_125} Frame 22
"w"Symbol 437 MovieClip {theospuzzles_fla.Puzzle1_Piece1_125} Frame 23
"x"Symbol 437 MovieClip {theospuzzles_fla.Puzzle1_Piece1_125} Frame 24
"y"Symbol 437 MovieClip {theospuzzles_fla.Puzzle1_Piece1_125} Frame 25
"z"Symbol 437 MovieClip {theospuzzles_fla.Puzzle1_Piece1_125} Frame 26




http://swfchan.com/51/254593/info.shtml
Created: 17/9 -2023 06:25:04 Last modified: 17/9 -2023 06:25:04 Server time: 22/12 -2024 10:38:12