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

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

Honey cake.swf

This is the info page for
Flash #255702

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


Text
<p align="center"><font face="_sans" size="18" color="#ffffff" letterSpacing="0.000000" kerning="0">MUSIC</font></p>

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

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

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



ActionScript [AS3]

Section 1
//IdleVO (cartoonito.bip.sfx.IdleVO) package cartoonito.bip.sfx { import flash.events.*; import flash.utils.*; public class IdleVO { private var _oSndMgr:VOBase; private var _oTimer:Timer; private var _nType:int; public function IdleVO(_arg1:VOBase){ _oSndMgr = _arg1; _oTimer = new Timer(10000); _oTimer.addEventListener(TimerEvent.TIMER, onTimer, false, 0, true); } public function fDispose():void{ if (_oTimer != null){ fStop(); _oTimer.removeEventListener(TimerEvent.TIMER, onTimer); _oTimer = null; }; _oSndMgr = null; } public function fStop():void{ _oTimer.stop(); } public function fStart(_arg1:int, _arg2:int=10):void{ fStop(); _nType = _arg1; _oTimer.delay = (_arg2 * 1000); _oTimer.start(); } private function onTimer(_arg1:Event):void{ if (!_oSndMgr.voIsPlaying){ _oSndMgr.fPlayType(_nType); }; } } }//package cartoonito.bip.sfx
Section 2
//ShellSnd (cartoonito.bip.sfx.ShellSnd) package cartoonito.bip.sfx { import flash.events.*; import flash.utils.*; import cartoonito.bip.*; import com.cc.utils.*; public class ShellSnd extends VOBase { public static const CLASS_PATH:String = "cartoonito.bip.sfx."; public static const SND_THEME:String = "SndTheme"; public static const SND_GAME_1:String = "SndSwingFling"; public static const SND_GAME_2:String = "SndHoneyCake"; public static const SND_GAME_3:String = "SndBananaMatch"; public static const SND_TITLE_1:String = "SndTitle1"; public static const SND_TITLE_2:String = "SndTitle2"; public static const SND_TITLE_3:String = "SndTitle3"; public static const SND_CHOOSE_GAME_1:String = "SndChooseGame1"; public static const SND_CHOOSE_GAME_2:String = "SndChooseGame2"; public static const SND_CHOOSE_GAME_3:String = "SndChooseGame3"; public static const SND_OVER_HCD:String = "SndOverHCD"; public static const SND_OVER_BM:String = "SndOverBM"; public static const SND_OVER_SF:String = "SndOverSF"; public static const SND_HTP:String = "SndHTP"; public static const SND_CHOOSE_CHAR_1:String = "SndChooseChar1"; public static const SND_CHOOSE_CHAR_2:String = "SndChooseChar2"; public static const SND_PROMPT_CHAR_1:String = "SndPromptChar1"; public static const SND_PROMPT_CHAR_2:String = "SndPromptChar2"; public static const SND_OVER_AGAIN:String = "SndOverAgain"; public static const SND_OVER_OTHER:String = "SndOverOther"; public static const TYPE_TITLE:int = 1; public static const TYPE_CHOOSE_GAME:int = 2; protected static var INST:ShellSnd; public static var ENABLED:Boolean = true; public function ShellSnd(){ if (!_aCurrentSnds){ _aCurrentSnds = []; }; if (!_oSnd){ _oSnd = {}; fAddSnd(SND_THEME); fAddSnd(SND_GAME_1); fAddSnd(SND_GAME_2); fAddSnd(SND_GAME_3); if (Const.VO_LOADED){ fAddVO(CLASS_PATH, SND_TITLE_1); fAddVO(CLASS_PATH, SND_TITLE_2); fAddVO(CLASS_PATH, SND_TITLE_3); fAddVO(CLASS_PATH, SND_CHOOSE_GAME_1); fAddVO(CLASS_PATH, SND_CHOOSE_GAME_2); fAddVO(CLASS_PATH, SND_CHOOSE_GAME_3); fAddVO(CLASS_PATH, SND_OVER_HCD); fAddVO(CLASS_PATH, SND_OVER_BM); fAddVO(CLASS_PATH, SND_OVER_SF); fAddVO(CLASS_PATH, SND_HTP); fCreateItemLists(); }; }; } protected function fAddSnd(_arg1:String):void{ var p_sSnd = _arg1; try { _oSnd[p_sSnd] = (getDefinitionByName((CLASS_PATH + p_sSnd)) as Class); } catch(e:ReferenceError) { trace((("Sorry, the sound " + p_sSnd) + " could not be found!")); }; } override protected function fCreateItemLists():void{ _aLists = []; _aLists[TYPE_TITLE] = new ItemList([SND_TITLE_1, SND_TITLE_2, SND_TITLE_3]); _aLists[TYPE_CHOOSE_GAME] = new ItemList([SND_CHOOSE_GAME_1, SND_CHOOSE_GAME_2, SND_CHOOSE_GAME_3]); } public static function get inst():ShellSnd{ if (!INST){ INST = new (ShellSnd); }; return (INST); } } }//package cartoonito.bip.sfx
Section 3
//SndBananaMatch (cartoonito.bip.sfx.SndBananaMatch) package cartoonito.bip.sfx { import com.cc.snd.*; public dynamic class SndBananaMatch extends SndBase { } }//package cartoonito.bip.sfx
Section 4
//SndHoneyCake (cartoonito.bip.sfx.SndHoneyCake) package cartoonito.bip.sfx { import com.cc.snd.*; public dynamic class SndHoneyCake extends SndBase { } }//package cartoonito.bip.sfx
Section 5
//SndSwingFling (cartoonito.bip.sfx.SndSwingFling) package cartoonito.bip.sfx { import com.cc.snd.*; public dynamic class SndSwingFling extends SndBase { } }//package cartoonito.bip.sfx
Section 6
//SndTheme (cartoonito.bip.sfx.SndTheme) package cartoonito.bip.sfx { import com.cc.snd.*; public dynamic class SndTheme extends SndBase { } }//package cartoonito.bip.sfx
Section 7
//VOBase (cartoonito.bip.sfx.VOBase) package cartoonito.bip.sfx { import com.cc.snd.*; import cartoonito.bip.*; public class VOBase extends SndMgrBase { protected var _oVO:Object; protected var _oIdleVO:IdleVO; protected var _bVOLoaded:Boolean; public function VOBase(){ _oVO = {}; _oIdleVO = new IdleVO(this); _bVOLoaded = Const.VO_LOADED; } override public function fDispose():void{ fDisposeIdle(); super.fDispose(); } public function fDisposeIdle():void{ if (_oIdleVO != null){ _oIdleVO.fDispose(); _oIdleVO = null; }; } public function fVO(_arg1:String):void{ if (_bVOLoaded){ fPlay(_arg1); }; } public function fVOType(_arg1:int):void{ if (_bVOLoaded){ fPlayType(_arg1); }; } override public function fPlay(_arg1:String, _arg2:Number=1, _arg3:int=1):Boolean{ if (isVO(_arg1)){ fStopAllVO(); }; return (super.fPlay(_arg1, _arg2, _arg3)); } public function isVO(_arg1:String):Boolean{ return (_oVO[_arg1]); } public function get voIsPlaying():Boolean{ var _local2:String; var _local1:Boolean; for (_local2 in _aCurrentSnds) { if (_oVO[_local2]){ _local1 = true; break; }; }; return (_local1); } public function fAddVO(_arg1:String, _arg2:String):void{ fAddWithPackage(_arg1, _arg2); _oVO[_arg2] = true; } public function fStopAllVO():void{ var _local1:SndBase; var _local2:String; for (_local2 in _aCurrentSnds) { _local1 = (_aCurrentSnds[_local2] as SndBase); if (_oVO[_local2]){ _local1.fStop(); delete _aCurrentSnds[_local2]; }; }; } public function fStartIdle(_arg1:int, _arg2:int=10):void{ _oIdleVO.fStop(); _oIdleVO.fStart(_arg1, _arg2); } public function fStopIdle():void{ _oIdleVO.fStop(); } } }//package cartoonito.bip.sfx
Section 8
//Const (cartoonito.bip.Const) package cartoonito.bip { public class Const { public static const W:int = 600; public static const H:int = 400; public static const GAME_MUSIC_VOL:Number = 0.6; public static const SHELL_MUSIC_VOL:Number = 0.6; public static var VO_LOADED:Boolean = false; } }//package cartoonito.bip
Section 9
//FlashVars (cartoonito.bip.FlashVars) package cartoonito.bip { public class FlashVars { public static const EVT_CLOSE_GAME:String = "onCloseGame"; public static const EVT_GAME_PLAYED:String = "onGamePlayed"; public static var GAME_1_XML:String = "../xml/en/swing_fling_en.xml"; public static var GAME_2_XML:String = "../xml/en/honey_cake_chase_en.xml"; public static var GAME_3_XML:String = "../xml/en/banana_match_en.xml"; public static var SHELL_XML:String = "xml/en/shell_en.xml"; public static var GAME_1_PRINT:String = ""; public static var GAME_2_PRINT:String = ""; public static var GAME_3_PRINT:String = ""; } }//package cartoonito.bip
Section 10
//ShellBIP (cartoonito.bip.ShellBIP) package cartoonito.bip { import fl.video.*; import flash.display.*; import flash.events.*; import flash.geom.*; import flash.net.*; import flash.text.*; import cartoonito.bip.sfx.*; import com.greensock.*; import com.cc.snd.*; import flash.utils.*; import com.greensock.easing.*; import com.cc.utils.*; import flash.system.*; import flash.printing.*; public class ShellBIP extends MovieClip { public var mcGame3:MovieClip; public var mcHolder:MovieClip; public var btnHelp:MovieClip; public var videoPlayer:FLVPlayback; public var mcLoadBar:MovieClip; public var mcPrintCertificate:MovieClip; public var mcCertificate:MovieClip; public var btnStart:MovieClip; public var mcPrintLinks:MovieClip; public var mcStartScreen:MovieClip; public var mcHelpPanel:MovieClip; public var btnPrint:MovieClip; public var mcPlayVideo:MovieClip; public var txtChoose:TextField; public var mcMute:MovieClip; public var btnFullScreen:MovieClip; public var mcGame1:MovieClip; public var btnBack:MovieClip; public var mcGame2:MovieClip; public var __setPropDict:Dictionary; private var _oXml:TxtParser; private var _oLoader:Loader; private var _oLoaderVO:Loader; private var _sSwf:String; private var _nCurrentGame:int; private var _nMusicVol:Number;// = 0.6 private var _aGamesComplete:Array; private var _oMute:Mute; private static const FR_LOADED:String = "loaded"; private static const FR_MENU:String = "menu"; private static const FR_CURTAIN_MENU:String = "curtain_menu"; private static const FR_INTRO:String = "intro"; private static const FR_START:String = "start"; private static const FR_GAME:String = "game"; private static const FR_CLOSE_GAME:String = "close_game"; private static const FR_REWARD:String = "reward"; private static const FR_EXIT_REWARD:String = "exit_reward"; private static const FR_OVER:String = "over"; private static const FR_OUT:String = "out"; private static const REWARD_SHOWN:String = "reward"; private static const GAME_1_ENABLED:Boolean = true; private static const GAME_2_ENABLED:Boolean = true; private static const GAME_3_ENABLED:Boolean = true; public function ShellBIP(){ __setPropDict = new Dictionary(true); super(); addFrameScript(9, frame10, 87, frame88, 95, frame96, 116, frame117, 121, frame122, 133, frame134, 145, frame146, 149, frame150, 167, frame168, 146, frame147, 147, frame148, 148, frame149, 150, frame151, 151, frame152, 152, frame153, 153, frame154, 154, frame155, 155, frame156, 156, frame157, 157, frame158, 158, frame159, 159, frame160, 160, frame161, 161, frame162, 162, frame163, 163, frame164, 164, frame165, 165, frame166, 166, frame167, 168, frame169, 169, frame170, 170, frame171, 171, frame172, 172, frame173, 173, frame174, 174, frame175, 175, frame176, 176, frame177, 177, frame178, 178, frame179); stop(); addEventListener(Event.ENTER_FRAME, onLoading); } private function onLoaded():void{ XmlLoader.fLoad("xml/config.xml", onConfigLoaded); } private function onConfigLoaded(_arg1:XML):void{ if (_arg1 != null){ FlashVars.SHELL_XML = _arg1.toString(); }; fLoadXML(); } private function fLoadXML():void{ _oXml = new TxtParser(); _oXml.addEventListener(TxtParser.EVT_PARSED, onXmlLoaded, false, 0, true); _oXml.fInit(FlashVars.SHELL_XML); } private function onXmlLoaded(_arg1:Event){ FlashVars.GAME_1_XML = _oXml.fGetTxt("game_1_xml"); FlashVars.GAME_2_XML = _oXml.fGetTxt("game_2_xml"); FlashVars.GAME_3_XML = _oXml.fGetTxt("game_3_xml"); _aGamesComplete = [false, false, false]; _aGamesComplete[REWARD_SHOWN] = false; fLoadVoSwf(); } private function fLoadVoSwf():void{ _oLoaderVO = new Loader(); var _local1:String = _oXml.fGetTxt("vo_swf"); trace(("vo swf: " + _local1)); _oLoaderVO.contentLoaderInfo.addEventListener(Event.COMPLETE, onVoLoaded, false, 0, true); _oLoaderVO.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onVoLoadError, false, 0, true); var _local2:ApplicationDomain = ApplicationDomain.currentDomain; var _local3:LoaderContext = new LoaderContext(false, _local2); mcLoadBar.gotoAndStop(1); addEventListener(Event.ENTER_FRAME, onVOLoading); _oLoaderVO.load(new URLRequest(_local1), _local3); } private function onVoLoaded(_arg1:Event):void{ trace("onVoLoaded"); Const.VO_LOADED = true; removeEventListener(Event.ENTER_FRAME, onVOLoading); gotoAndPlay(FR_LOADED); } private function onVoLoadError(_arg1:Event):void{ trace("onVoLoadError"); Const.VO_LOADED = false; removeEventListener(Event.ENTER_FRAME, onVOLoading); gotoAndPlay(FR_LOADED); } private function onVOLoading(_arg1:Event):void{ var _local2:int = Math.floor(((_oLoaderVO.contentLoaderInfo.bytesLoaded / _oLoaderVO.contentLoaderInfo.bytesTotal) * 100)); mcLoadBar.gotoAndStop(_local2); } private function fPlayTheme():void{ ShellSnd.inst.fPlay(ShellSnd.SND_THEME, _nMusicVol, 999); } private function fInitMainBtns():void{ if (!_oMute){ _oMute = new Mute(mcMute); btnHelp.buttonMode = true; btnHelp.addEventListener(MouseEvent.CLICK, onHelp, false, 0, true); btnFullScreen.buttonMode = true; btnFullScreen.addEventListener(MouseEvent.CLICK, onFullScreen, false, 0, true); }; } private function onHelp(_arg1:MouseEvent):void{ TweenLite.to(mcHelpPanel, 1, {y:0, ease:Elastic.easeOut, onComplete:onHelpShown}); } private function onHelpShown():void{ ShellSnd.inst.fVO(ShellSnd.SND_HTP); } private function onCloseHelp(_arg1:MouseEvent):void{ TweenLite.to(mcHelpPanel, 0.3, {y:-600}); } private function fInitHelp():void{ mcHelpPanel.txtTitle.text = _oXml.fGetTxt("help_title"); ValignTxt.fSetTxt(_oXml.fGetTxt("help_body"), mcHelpPanel.txtBody); mcHelpPanel.btnClose.addEventListener(MouseEvent.CLICK, onCloseHelp, false, 0, true); } private function onFullScreen(_arg1:MouseEvent):void{ if (stage.displayState != StageDisplayState.FULL_SCREEN){ stage.displayState = StageDisplayState.FULL_SCREEN; } else { stage.displayState = StageDisplayState.NORMAL; }; } private function fTimeline():void{ switch (currentLabel){ case FR_LOADED: fLoadedFrame(); break; case FR_START: fStartFrame(); break; case FR_MENU: fMenuFrame(); break; case FR_GAME: fGameFrame(); break; case FR_CLOSE_GAME: fCloseGameFrame(); break; case FR_REWARD: fRewardFrame(); break; case FR_EXIT_REWARD: fExitRewardFrame(); break; }; } private function fLoadedFrame():void{ fPlayTheme(); fInitMainBtns(); fInitHelp(); } private function fStartFrame():void{ mcStartScreen.txtStart.text = _oXml.fGetTxt("start_title"); btnStart.txtLabel.text = _oXml.fGetTxt("start_btn"); btnStart.addEventListener(MouseEvent.CLICK, onClickStart, false, 0, true); ShellSnd.inst.fVOType(ShellSnd.TYPE_TITLE); ShellSnd.inst.fStartIdle(ShellSnd.TYPE_TITLE); } private function onClickStart(_arg1:Event):void{ ShellSnd.inst.fStopIdle(); gotoAndStop(FR_MENU); } private function fMenuFrame():void{ ValignTxt.fSetTxt(_oXml.fGetTxt("pick_game"), txtChoose); fInitBtn(mcGame1, "game_1_title", GAME_1_ENABLED); fInitBtn(mcGame2, "game_2_title", GAME_2_ENABLED); fInitBtn(mcGame3, "game_3_title", GAME_3_ENABLED); fShowProgress(); ShellSnd.inst.fVOType(ShellSnd.TYPE_CHOOSE_GAME); ShellSnd.inst.fStartIdle(ShellSnd.TYPE_CHOOSE_GAME); } private function fShowProgress():void{ var _local6:int; if (Environment.isIDE()){ _aGamesComplete[0] = true; _aGamesComplete[1] = true; _aGamesComplete[2] = true; }; var _local1:Boolean = _aGamesComplete[0]; var _local2:Boolean = _aGamesComplete[1]; var _local3:Boolean = _aGamesComplete[2]; var _local4:Boolean; var _local5:Boolean; if (_local1){ _local5 = true; fEnableLink(mcPrintLinks.mcLink1); } else { _local4 = false; }; if (_local2){ _local5 = true; fEnableLink(mcPrintLinks.mcLink2); } else { _local4 = false; }; if (_local3){ _local5 = true; fEnableLink(mcPrintLinks.mcLink3); } else { _local4 = false; }; if (_local4){ fEnableLink(mcPrintLinks.mcLink4); }; if (_local5){ _local6 = (Const.H - 60); TweenLite.to(mcPrintLinks, 1, {y:_local6, ease:Elastic.easeOut}); }; } private function fEnableLink(_arg1:MovieClip):void{ _arg1.buttonMode = true; _arg1.mouseChildren = false; _arg1.gotoAndStop("_up"); _arg1.addEventListener(MouseEvent.CLICK, onClickLink, false, 0, true); } private function onClickLink(_arg1:Event):void{ var _local2:MovieClip = (_arg1.target as MovieClip); trace(("onClickLink " + _local2)); switch (_local2){ case mcPrintLinks.mcLink1: fPrint(FlashVars.GAME_1_PRINT); break; case mcPrintLinks.mcLink2: fPrint(FlashVars.GAME_2_PRINT); break; case mcPrintLinks.mcLink3: fPrint(FlashVars.GAME_3_PRINT); break; case mcPrintLinks.mcLink4: gotoAndPlay(FR_REWARD); break; }; } private function fPrint(_arg1:String):void{ trace(("fPrint " + _arg1)); var _local2:URLRequest = new URLRequest(_arg1); navigateToURL(_local2, "_blank"); } private function fInitBtn(_arg1:MovieClip, _arg2:String, _arg3:Boolean=true):void{ _arg1.fSetTxt(_oXml.fGetTxt(_arg2)); _arg1.mouseChildren = false; _arg1.buttonMode = true; _arg1.addEventListener(MouseEvent.ROLL_OVER, onOverBtn, false, 0, true); _arg1.addEventListener(MouseEvent.ROLL_OUT, onOutBtn, false, 0, true); if (_arg3){ _arg1.addEventListener(MouseEvent.CLICK, onChooseGame, false, 0, true); }; } private function onOverBtn(_arg1:Event):void{ var _local2:MovieClip = (_arg1.target as MovieClip); if (_local2.currentFrame == 1){ _local2.gotoAndPlay(FR_OVER); switch (_local2){ case mcGame1: ShellSnd.inst.fPlay(ShellSnd.SND_GAME_1); ShellSnd.inst.fVO(ShellSnd.SND_OVER_SF); break; case mcGame2: ShellSnd.inst.fPlay(ShellSnd.SND_GAME_2); ShellSnd.inst.fVO(ShellSnd.SND_OVER_HCD); break; case mcGame3: ShellSnd.inst.fPlay(ShellSnd.SND_GAME_3); ShellSnd.inst.fVO(ShellSnd.SND_OVER_BM); break; }; }; } private function onOutBtn(_arg1:Event):void{ var _local2:MovieClip = (_arg1.target as MovieClip); if (_local2.currentLabel == FR_OVER){ _local2.gotoAndPlay(FR_OUT); }; } private function onChooseGame(_arg1:Event):void{ var _local2:MovieClip = (_arg1.target as MovieClip); var _local3 = ""; switch (_local2){ case mcGame1: _nCurrentGame = 0; _local3 = _oXml.fGetTxt("game_1_swf"); break; case mcGame2: _nCurrentGame = 1; _local3 = _oXml.fGetTxt("game_2_swf"); break; case mcGame3: _nCurrentGame = 2; _local3 = _oXml.fGetTxt("game_3_swf"); break; }; if (_local3 != ""){ trace(("swf URL : " + _local3)); ShellSnd.inst.fFadeSndById(ShellSnd.SND_THEME); ShellSnd.inst.fStopIdle(); _sSwf = _local3; play(); }; } private function fRewardFrame():void{ mcPlayVideo.txtRewardTitle.text = _oXml.fGetTxt("reward_title"); mcPlayVideo.txtRewardMsg.text = _oXml.fGetTxt("reward_body"); btnPrint.txtLabel.text = _oXml.fGetTxt("print_btn"); btnBack.txtLabel.text = _oXml.fGetTxt("menu_btn"); btnBack.addEventListener(MouseEvent.CLICK, onCloseReward, false, 0, true); btnPrint.addEventListener(MouseEvent.CLICK, onPrintReward, false, 0, true); mcPlayVideo.btnVideo.addEventListener(MouseEvent.CLICK, onPlayVideo, false, 0, true); videoPlayer.load(_oXml.fGetTxt("reward_video")); mcCertificate.txtCertificate.text = _oXml.fGetTxt("certificate"); mcPrintCertificate.txtCertificate.text = _oXml.fGetTxt("certificate"); } private function onCloseReward(_arg1:Event):void{ videoPlayer.stop(); gotoAndPlay(FR_EXIT_REWARD); fPlayTheme(); } private function onPrintReward(_arg1:Event):void{ var l_nW:Number; var l_nH:Number; var l_oB:BitmapData; var bmp:Bitmap; var l_sp:Sprite; var l_oPj:PrintJob; var l_bPageAdded:Boolean; var e = _arg1; videoPlayer.stop(); if (mcCertificate.x != 0){ mcCertificate.x = 0; mcCertificate.y = Const.H; (mcCertificate.rotation - 90); stage.focus = mcCertificate.txtName; } else { l_nW = mcPrintCertificate.width; l_nH = mcPrintCertificate.height; mcPrintCertificate.txtName.text = mcCertificate.txtName.text; l_oB = new BitmapData(l_nW, l_nH); l_oB.draw(mcPrintCertificate); bmp = new Bitmap(l_oB); l_sp = new Sprite(); l_sp.addChild(bmp); l_oPj = new PrintJob(); if (l_oPj.start()){ try { l_oPj.addPage(l_sp); l_bPageAdded = true; } catch(e:Error) { trace(("error adding print page >> " + e.toString())); l_bPageAdded = false; }; if (l_bPageAdded){ l_oPj.send(); }; } else { trace("print job wouldn't start!"); }; mcCertificate.x = (Const.W * -1.1); l_oB.dispose(); }; } private function fExitRewardFrame():void{ gotoAndPlay(FR_CURTAIN_MENU); } private function onPlayVideo(_arg1:Event):void{ mcPlayVideo.visible = false; videoPlayer.play(); } private function fGameFrame():void{ fLoadGame(); btnBack.txtLabel.text = _oXml.fGetTxt("menu_btn"); btnBack.addEventListener(MouseEvent.CLICK, onCloseGame, false, 0, true); } private function onCloseGame(_arg1:Event):void{ var _local2:Boolean = fCheckReward(); if (_local2){ fUnloadGame(); _aGamesComplete[REWARD_SHOWN] = true; gotoAndPlay(FR_REWARD); } else { gotoAndPlay(FR_CLOSE_GAME); fPlayTheme(); }; } private function fCloseGameFrame():void{ fUnloadGame(); gotoAndPlay(FR_CURTAIN_MENU); } private function fLoadGame():void{ var _local1:String = _sSwf; _sSwf = ""; _oLoader = new Loader(); var _local2:ApplicationDomain = ApplicationDomain.currentDomain; var _local3:LoaderContext = new LoaderContext(false, _local2); _oLoader.load(new URLRequest(_local1), _local3); mcHolder.addChild(_oLoader); mcHolder.addEventListener(FlashVars.EVT_GAME_PLAYED, onGamePlayed, false, 0, true); mcHolder.addEventListener(FlashVars.EVT_CLOSE_GAME, onCloseGame, false, 0, true); } private function fUnloadGame():void{ mcHolder.removeEventListener(FlashVars.EVT_GAME_PLAYED, onGamePlayed); mcHolder.removeEventListener(FlashVars.EVT_CLOSE_GAME, onCloseGame); var _local1:MovieClip = (_oLoader.content as MovieClip); var _local2 = _local1; _local2["fDispose"](); mcHolder.removeChild(_oLoader); _oLoader.unload(); _oLoader = null; } private function onGamePlayed(_arg1:Event=null):void{ _aGamesComplete[_nCurrentGame] = true; } private function fCheckReward():Boolean{ var _local1:Boolean; if (!_aGamesComplete[REWARD_SHOWN]){ if (((((_aGamesComplete[0]) && (_aGamesComplete[1]))) && (_aGamesComplete[2]))){ _local1 = true; }; }; return (_local1); } private function fGetFlashVars():void{ var _local1:Object = loaderInfo.parameters; if (((!((_local1.xml == undefined))) && (!((_local1.xml == null))))){ FlashVars.SHELL_XML = _local1.xml; }; } private function onLoading(_arg1:Event):void{ var _local2:int; if (loaderInfo.bytesLoaded == loaderInfo.bytesTotal){ removeEventListener(Event.ENTER_FRAME, onLoading); onLoaded(); } else { _local2 = Math.floor(((loaderInfo.bytesLoaded / loaderInfo.bytesTotal) * 100)); mcLoadBar.gotoAndStop(_local2); }; } function __setProp_videoPlayer_Scene1_videoPlayer_145(){ if ((((__setPropDict[videoPlayer] == undefined)) || (!((((int(__setPropDict[videoPlayer]) >= 146)) && ((int(__setPropDict[videoPlayer]) <= 179))))))){ __setPropDict[videoPlayer] = currentFrame; try { videoPlayer["componentInspectorSetting"] = true; } catch(e:Error) { }; videoPlayer.align = "center"; videoPlayer.autoPlay = false; videoPlayer.isLive = false; videoPlayer.scaleMode = "maintainAspectRatio"; videoPlayer.skin = ""; videoPlayer.skinAutoHide = false; videoPlayer.skinBackgroundAlpha = 0.85; videoPlayer.skinBackgroundColor = 4697035; videoPlayer.source = ""; videoPlayer.volume = 1; try { videoPlayer["componentInspectorSetting"] = false; } catch(e:Error) { }; }; } function frame10(){ fTimeline(); } function frame88(){ fTimeline(); } function frame96(){ stop(); } function frame117(){ stop(); fTimeline(); } function frame122(){ stop(); fTimeline(); } function frame134(){ fTimeline(); } function frame146(){ __setProp_videoPlayer_Scene1_videoPlayer_145(); fTimeline(); } function frame150(){ __setProp_videoPlayer_Scene1_videoPlayer_145(); stop(); } function frame168(){ __setProp_videoPlayer_Scene1_videoPlayer_145(); fTimeline(); } function frame147(){ __setProp_videoPlayer_Scene1_videoPlayer_145(); } function frame148(){ __setProp_videoPlayer_Scene1_videoPlayer_145(); } function frame149(){ __setProp_videoPlayer_Scene1_videoPlayer_145(); } function frame151(){ __setProp_videoPlayer_Scene1_videoPlayer_145(); } function frame152(){ __setProp_videoPlayer_Scene1_videoPlayer_145(); } function frame153(){ __setProp_videoPlayer_Scene1_videoPlayer_145(); } function frame154(){ __setProp_videoPlayer_Scene1_videoPlayer_145(); } function frame155(){ __setProp_videoPlayer_Scene1_videoPlayer_145(); } function frame156(){ __setProp_videoPlayer_Scene1_videoPlayer_145(); } function frame157(){ __setProp_videoPlayer_Scene1_videoPlayer_145(); } function frame158(){ __setProp_videoPlayer_Scene1_videoPlayer_145(); } function frame159(){ __setProp_videoPlayer_Scene1_videoPlayer_145(); } function frame160(){ __setProp_videoPlayer_Scene1_videoPlayer_145(); } function frame161(){ __setProp_videoPlayer_Scene1_videoPlayer_145(); } function frame162(){ __setProp_videoPlayer_Scene1_videoPlayer_145(); } function frame163(){ __setProp_videoPlayer_Scene1_videoPlayer_145(); } function frame164(){ __setProp_videoPlayer_Scene1_videoPlayer_145(); } function frame165(){ __setProp_videoPlayer_Scene1_videoPlayer_145(); } function frame166(){ __setProp_videoPlayer_Scene1_videoPlayer_145(); } function frame167(){ __setProp_videoPlayer_Scene1_videoPlayer_145(); } function frame169(){ __setProp_videoPlayer_Scene1_videoPlayer_145(); } function frame170(){ __setProp_videoPlayer_Scene1_videoPlayer_145(); } function frame171(){ __setProp_videoPlayer_Scene1_videoPlayer_145(); } function frame172(){ __setProp_videoPlayer_Scene1_videoPlayer_145(); } function frame173(){ __setProp_videoPlayer_Scene1_videoPlayer_145(); } function frame174(){ __setProp_videoPlayer_Scene1_videoPlayer_145(); } function frame175(){ __setProp_videoPlayer_Scene1_videoPlayer_145(); } function frame176(){ __setProp_videoPlayer_Scene1_videoPlayer_145(); } function frame177(){ __setProp_videoPlayer_Scene1_videoPlayer_145(); } function frame178(){ __setProp_videoPlayer_Scene1_videoPlayer_145(); } function frame179(){ __setProp_videoPlayer_Scene1_videoPlayer_145(); } } }//package cartoonito.bip
Section 11
//TxtParser (cartoonito.bip.TxtParser) package cartoonito.bip { import flash.events.*; import com.cc.utils.*; public class TxtParser extends EventDispatcher { protected var _aTxt:Array; public static const EVT_PARSED:String = "onParsed"; public function fInit(_arg1:String):void{ if (_aTxt != null){ dispatchEvent(new Event(EVT_PARSED)); } else { XmlLoader.fLoad(_arg1, onXmlLoaded); }; } protected function onXmlLoaded(_arg1:XML):void{ var _local2:XMLList; var _local3:int; var _local4:XML; var _local5:String; var _local6:int; if (!_arg1){ trace("TxtParser - null XML!"); } else { _aTxt = []; _local2 = _arg1.children(); _local3 = _local2.length(); _local6 = 0; while (_local6 < _local3) { _local4 = _local2[_local6]; _local5 = _local4.@id; _aTxt[_local5] = _local4.toString(); _local6++; }; }; dispatchEvent(new Event(EVT_PARSED)); } public function fGetTxt(_arg1:String):String{ return (_aTxt[_arg1]); } } }//package cartoonito.bip
Section 12
//ValignTxt (cartoonito.bip.ValignTxt) package cartoonito.bip { import flash.text.*; public class ValignTxt { public static var ENABLED:Boolean = true; public static var BORDER:Boolean = false; public static function fSetTxt(_arg1:String, _arg2:TextField):void{ if (!ENABLED){ _arg2.text = _arg1; return; }; var _local3:Number = _arg2.y; var _local4:Number = _arg2.height; _arg2.wordWrap = true; _arg2.autoSize = TextFieldAutoSize.CENTER; _arg2.text = _arg1; var _local5:Number = _arg2.height; var _local6:Number = (_local3 + (_local4 * 0.5)); _arg2.y = (_local6 - (_local5 * 0.5)); if (BORDER){ _arg2.border = true; _arg2.borderColor = 0xFF0000; }; } } }//package cartoonito.bip
Section 13
//Evt (com.cc.evt.Evt) package com.cc.evt { import flash.events.*; public class Evt extends Event { private var _oParam; public function Evt(_arg1:String, _arg2=null){ super(_arg1, true); _oParam = _arg2; } public function get param(){ return (_oParam); } override public function clone():Event{ return (new Evt(type, _oParam)); } } }//package com.cc.evt
Section 14
//Mute (com.cc.snd.Mute) package com.cc.snd { import flash.display.*; import flash.events.*; import flash.media.*; public class Mute { private var _mc:MovieClip; private var _bOverEnabled:Boolean; private static const FR_SOUND_IS_OFF:String = "off"; private static const FR_OVER_OFF:String = "overOff"; private static const FR_OVER_ON:String = "overOn"; private static const FR_SOUND_IS_ON:String = "on"; public function Mute(_arg1:MovieClip){ _mc = _arg1; var _local2:Boolean = fHasLabel(_mc, FR_OVER_ON); var _local3:Boolean = fHasLabel(_mc, FR_OVER_OFF); if (((_local2) && (_local3))){ _bOverEnabled = true; }; _mc.mouseChildren = false; fEnable(true); onOutBtn(); } public function fEnable(_arg1:Boolean):void{ _mc.removeEventListener(MouseEvent.CLICK, onClickBtn); _mc.removeEventListener(MouseEvent.ROLL_OVER, onOverBtn); _mc.removeEventListener(MouseEvent.ROLL_OUT, onOutBtn); if (_arg1){ _mc.addEventListener(MouseEvent.CLICK, onClickBtn, false, 0, true); _mc.addEventListener(MouseEvent.ROLL_OVER, onOverBtn, false, 0, true); _mc.addEventListener(MouseEvent.ROLL_OUT, onOutBtn, false, 0, true); }; } private function onClickBtn(_arg1:MouseEvent):void{ fToggle(); } private function onOverBtn(_arg1:MouseEvent):void{ if (SoundMixer.soundTransform.volume > 0){ _mc.gotoAndStop(FR_OVER_ON); } else { _mc.gotoAndStop(FR_OVER_OFF); }; } private function onOutBtn(_arg1:MouseEvent=null):void{ if (SoundMixer.soundTransform.volume > 0){ _mc.gotoAndStop(FR_SOUND_IS_ON); } else { _mc.gotoAndStop(FR_SOUND_IS_OFF); }; } public function fToggle():void{ var _local1:Number = SoundMixer.soundTransform.volume; var _local2:Boolean = ((_local1)>0) ? false : true; fSetMute(!(_local2)); } public function fSetMute(_arg1:Boolean):void{ var _local2:String = (_arg1) ? FR_SOUND_IS_OFF : FR_SOUND_IS_ON; _mc.gotoAndStop(_local2); if (_arg1){ SoundMixer.soundTransform = new SoundTransform(0); } else { SoundMixer.soundTransform = new SoundTransform(1); }; } public function fDispose():void{ if (_mc != null){ fEnable(false); _mc = null; }; } private function fHasLabel(_arg1:MovieClip, _arg2:String):Boolean{ var _local3:Array = _arg1.currentLabels; var _local4:int = _local3.length; var _local5:Boolean; var _local6:int; while (_local6 < _local4) { if (_local3[_local6].name){ _local5 = true; break; }; _local6++; }; return (_local5); } } }//package com.cc.snd
Section 15
//SndBase (com.cc.snd.SndBase) package com.cc.snd { import flash.events.*; import flash.net.*; import flash.media.*; import com.greensock.*; public class SndBase extends Sound { protected var _oSndChannel:SoundChannel; protected var _nVol:Number; public var id:String; private var _bIsPlaying:Boolean; public static const EVT_COMPLETE:String = "onSndComplete"; public static const EVT_FADED:String = "onSndFaded"; public function SndBase(_arg1:Number=1){ _nVol = _arg1; } public function get bIsPlaying():Boolean{ return (_bIsPlaying); } public function fStream(_arg1:String):void{ var p_sFile = _arg1; addEventListener(IOErrorEvent.IO_ERROR, onError, false, 0, true); try { load(new URLRequest(p_sFile)); fPlay(); } catch(e:Error) { trace(("SndBase fStream >> " + e.message)); }; } public function fPlay(_arg1:int=1, _arg2:Number=-1):void{ if (_arg2 != -1){ _nVol = _arg2; }; if (_oSndChannel != null){ fStop(); }; _oSndChannel = play(0, _arg1); _oSndChannel.addEventListener(Event.SOUND_COMPLETE, onSndComplete, false, 0, true); var _local3:SoundTransform = _oSndChannel.soundTransform; _local3.volume = _nVol; _oSndChannel.soundTransform = _local3; _bIsPlaying = true; } private function onSndComplete(_arg1:Event):void{ _bIsPlaying = false; dispatchEvent(new Event(EVT_COMPLETE)); } public function fStop():void{ fDisposeSoundChannel(); _bIsPlaying = false; } protected function fDisposeSoundChannel():void{ if (_oSndChannel != null){ _oSndChannel.stop(); _oSndChannel.removeEventListener(Event.SOUND_COMPLETE, onSndComplete); TweenLite.killTweensOf(this); _oSndChannel = null; }; } public function fFadeOut(_arg1:int=1):void{ if (_oSndChannel != null){ TweenLite.to(this, _arg1, {nVol:0, onComplete:fFadeDone}); }; } private function fFadeDone():void{ fStop(); dispatchEvent(new Event(EVT_FADED)); } public function set nVol(_arg1:Number):void{ fSetVol(_arg1); } public function get nVol():Number{ var _local1:Number = 0; if (_oSndChannel != null){ _local1 = _oSndChannel.soundTransform.volume; }; return (_local1); } public function fSetVol(_arg1:Number):void{ var _local2:SoundTransform; if (_arg1 > 1){ _arg1 = 1; }; _nVol = _arg1; if (_oSndChannel != null){ _local2 = _oSndChannel.soundTransform; _local2.volume = _nVol; _oSndChannel.soundTransform = _local2; }; } private function onError(_arg1:IOErrorEvent):void{ trace(("SndBase fStream >> The sound could not be loaded: " + _arg1.text)); } public function get position():Number{ if (_oSndChannel != null){ return (_oSndChannel.position); }; return (0); } public function fDispose():void{ fStop(); } } }//package com.cc.snd
Section 16
//SndMgrBase (com.cc.snd.SndMgrBase) package com.cc.snd { import flash.events.*; import flash.utils.*; import com.cc.utils.*; import com.cc.evt.*; public class SndMgrBase extends EventDispatcher { protected var _oSnd:Object; protected var _aCurrentSnds:Array; protected var _aLists:Array; public static const EVT_SOUND_COMPLETE:String = "onSoundComplete"; protected static var INST; public function fPlay(_arg1:String, _arg2:Number=1, _arg3:int=1):Boolean{ var _local4:Boolean; var _local5:SndBase = fGetSnd(_arg1); if (_local5){ _local5.addEventListener(SndBase.EVT_COMPLETE, onSndComplete, false, 0, true); _local5.addEventListener(SndBase.EVT_FADED, onSndComplete, false, 0, true); if (_aCurrentSnds[_arg1]){ fStopSndById(_arg1); }; _aCurrentSnds[_arg1] = _local5; _local5.nVol = _arg2; _local5.id = _arg1; _local5.fPlay(_arg3); _local4 = true; } else { trace(("SndMgr fPlay > sound not found: " + _arg1)); }; return (_local4); } public function fAddWithPackage(_arg1:String, _arg2:String):void{ var p_sPackage = _arg1; var p_sSnd = _arg2; try { _oSnd[p_sSnd] = (getDefinitionByName((p_sPackage + p_sSnd)) as Class); } catch(e:ReferenceError) { trace(((("Sorry, the sound " + p_sSnd) + " could not be found in package ") + p_sPackage)); }; } public function isPlaying(_arg1:String):Boolean{ return (!((_aCurrentSnds[_arg1] == null))); } public function sndExists(_arg1:String):Boolean{ return (!((_oSnd[_arg1] == null))); } public function fDispose():void{ fStopAllSnds(); _oSnd = null; _aCurrentSnds = null; _aLists = null; INST = null; } protected function fCreateItemLists():void{ _aLists = []; } public function fPlayType(_arg1:int, _arg2:Number=1, _arg3:int=1):void{ var _local5:String; var _local4:ItemList = (_aLists[_arg1] as ItemList); if (_local4 != null){ _local5 = (_local4.fNextItem() as String); fPlay(_local5, _arg2, _arg3); } else { trace(("SndMgr - no itemlist found for type " + _arg1)); }; } public function onSndEvent(_arg1:SndEvent):void{ var _local2:String = _arg1.snd; var _local3:Number = _arg1.volume; fPlay(_local2, _local3); } public function fGetSnd(_arg1:String):SndBase{ var _local2:Class = (_oSnd[_arg1] as Class); if (!_local2){ return (null); }; return ((new (_local2) as SndBase)); } protected function onSndComplete(_arg1:Event):void{ var _local3:String; var _local5:SndBase; var _local2:SndBase = (_arg1.target as SndBase); _local2.fStop(); var _local4:Boolean; for (_local3 in _aCurrentSnds) { _local5 = (_aCurrentSnds[_local3] as SndBase); if (_local5 === _local2){ _local4 = true; delete _aCurrentSnds[_local3]; break; }; }; if (_local4){ dispatchEvent(new Evt(EVT_SOUND_COMPLETE, _local3)); } else { trace(("SndMgr onSndComplete: sound not found..." + _local2.id)); dispatchEvent(new Evt(EVT_SOUND_COMPLETE, _local2.id)); }; } public function fStopSndById(_arg1:String):void{ var _local2:SndBase = _aCurrentSnds[_arg1]; if (_local2){ _local2.fStop(); delete _aCurrentSnds[_arg1]; }; } public function fStopAllSnds():void{ var _local1:String; for (_local1 in _aCurrentSnds) { fStopSndById(_local1); }; } public function fFadeSndById(_arg1:String, _arg2:int=1):void{ var _local3:SndBase = _aCurrentSnds[_arg1]; if (_local3){ _local3.fFadeOut(_arg2); }; } } }//package com.cc.snd
Section 17
//Environment (com.cc.utils.Environment) package com.cc.utils { import flash.system.*; public class Environment { private static var IE:String = "ActiveX"; private static var FIREFOX:String = "PlugIn"; private static var FLASH_PLAYER:String = "StandAlone"; private static var IDE:String = "External"; public static function isBrowser():Boolean{ var _local1:String = getType(); return ((((_local1 == IE)) || ((_local1 == FIREFOX)))); } public static function getType():String{ return (Capabilities.playerType); } public static function isIDE():Boolean{ var _local1:String = getType(); return ((_local1 == IDE)); } public static function isStandAlone():Boolean{ var _local1:String = getType(); return ((_local1 == FLASH_PLAYER)); } } }//package com.cc.utils
Section 18
//ItemList (com.cc.utils.ItemList) package com.cc.utils { public class ItemList { private var _aItems:Array; private var _nItem:int; public function ItemList(_arg1:Array, _arg2:Boolean=true){ _aItems = _arg1.concat(); _nItem = 0; if (_arg2){ fRandomise(); }; } public function fNextItem(){ if (_nItem < (_aItems.length - 1)){ _nItem++; } else { _nItem = 0; }; return (_aItems[_nItem]); } public function fRandomise():void{ _aItems = Randomise.fRandomise(_aItems); } public function fDispose():void{ _aItems = null; } public function fAddItem(_arg1):void{ _aItems[_aItems.length] = _arg1; } public function fAddItemAtStart(_arg1):void{ var _local2:Array = _aItems; var _local3:Array = [_arg1]; _aItems = _local3.concat(_local2); } } }//package com.cc.utils
Section 19
//Randomise (com.cc.utils.Randomise) package com.cc.utils { import flash.display.*; public class Randomise { public static function fRandomise(_arg1:Array):Array{ var _local4:int; var _local2:Array = new Array(); var _local3:Array = _arg1.slice(); while (_local3.length > 0) { _local4 = fRandomInt((_local3.length - 1)); _local2[_local2.length] = _local3.splice(_local4, 1)[0]; }; return (_local2); } public static function fRandomNumber(_arg1:Number):Number{ return ((Math.random() * _arg1)); } public static function fRandomInt(_arg1:int):int{ return (Math.floor((Math.random() * (_arg1 + 1)))); } public static function fPickRandom(_arg1:Array){ var _local2:Number = fRandomInt((_arg1.length - 1)); return (_arg1[_local2]); } public static function fPercChance(_arg1:Number):Boolean{ return ((((fRandomNum(99) + 1))<=_arg1) ? true : false); } public static function fRandomFrame(_arg1:MovieClip):void{ var _local2:int = (fRandomInt((_arg1.totalFrames - 1)) + 1); _arg1.gotoAndStop(_local2); } public static function fRandomNum(_arg1:Number):Number{ return (Math.floor((Math.random() * (_arg1 + 1)))); } } }//package com.cc.utils
Section 20
//XmlLoader (com.cc.utils.XmlLoader) package com.cc.utils { import flash.events.*; import flash.net.*; public class XmlLoader { public static function fLoad(_arg1:String, _arg2:Function):void{ var _local3:URLRequest = new URLRequest(_arg1); var _local4:LoaderX = new LoaderX(_local3, _arg2); _local4.addEventListener(Event.COMPLETE, onXmlLoaded); _local4.addEventListener(IOErrorEvent.IO_ERROR, onLoadErr); _local4.load(_local3); } private static function onXmlLoaded(_arg1:Event):void{ var _local2:LoaderX = (_arg1.target as LoaderX); var _local3:Function = _local2.f; var _local4:String = String(_local2.data); _local2.removeEventListener(Event.COMPLETE, onXmlLoaded); _local2.removeEventListener(IOErrorEvent.IO_ERROR, onLoadErr); _local2 = null; _local3(new XML(_local4)); } private static function onLoadErr(_arg1:IOErrorEvent):void{ var _local2:LoaderX = (_arg1.target as LoaderX); var _local3:Function = _local2.f; _local2.removeEventListener(Event.COMPLETE, onXmlLoaded); _local2.removeEventListener(IOErrorEvent.IO_ERROR, onLoadErr); _local2 = null; _local3(null); } } }//package com.cc.utils import flash.net.*; class LoaderX extends URLLoader { public var f:Function; private function LoaderX(_arg1:URLRequest, _arg2:Function){ super(_arg1); f = _arg2; } }
Section 21
//PropTween (com.greensock.core.PropTween) package com.greensock.core { public class PropTween { public var target:Object; public var property:String; public var start:Number; public var change:Number; public var name:String; public var priority:int; public var isPlugin:Boolean; public var nextNode:PropTween; public var prevNode:PropTween; public function PropTween(_arg1:Object, _arg2:String, _arg3:Number, _arg4:Number, _arg5:String, _arg6:Boolean, _arg7:PropTween=null, _arg8:int=0){ this.target = _arg1; this.property = _arg2; this.start = _arg3; this.change = _arg4; this.name = _arg5; this.isPlugin = _arg6; if (_arg7){ _arg7.prevNode = this; this.nextNode = _arg7; }; this.priority = _arg8; } } }//package com.greensock.core
Section 22
//SimpleTimeline (com.greensock.core.SimpleTimeline) package com.greensock.core { public class SimpleTimeline extends TweenCore { protected var _firstChild:TweenCore; protected var _lastChild:TweenCore; public var autoRemoveChildren:Boolean; public function SimpleTimeline(_arg1:Object=null){ super(0, _arg1); } public function addChild(_arg1:TweenCore):void{ if (((!(_arg1.gc)) && (_arg1.timeline))){ _arg1.timeline.remove(_arg1, true); }; _arg1.timeline = this; if (_arg1.gc){ _arg1.setEnabled(true, true); }; if (_firstChild){ _firstChild.prevNode = _arg1; }; _arg1.nextNode = _firstChild; _firstChild = _arg1; _arg1.prevNode = null; } public function remove(_arg1:TweenCore, _arg2:Boolean=false):void{ if (_arg1.gc){ return; }; if (!_arg2){ _arg1.setEnabled(false, true); }; if (_arg1.nextNode){ _arg1.nextNode.prevNode = _arg1.prevNode; } else { if (_lastChild == _arg1){ _lastChild = _arg1.prevNode; }; }; if (_arg1.prevNode){ _arg1.prevNode.nextNode = _arg1.nextNode; } else { if (_firstChild == _arg1){ _firstChild = _arg1.nextNode; }; }; } override public function renderTime(_arg1:Number, _arg2:Boolean=false, _arg3:Boolean=false):void{ var _local5:Number; var _local6:TweenCore; var _local4:TweenCore = _firstChild; this.cachedTotalTime = _arg1; this.cachedTime = _arg1; while (_local4) { _local6 = _local4.nextNode; if (((_local4.active) || ((((((_arg1 >= _local4.cachedStartTime)) && (!(_local4.cachedPaused)))) && (!(_local4.gc)))))){ if (!_local4.cachedReversed){ _local4.renderTime(((_arg1 - _local4.cachedStartTime) * _local4.cachedTimeScale), _arg2, false); } else { _local5 = (_local4.cacheIsDirty) ? _local4.totalDuration : _local4.cachedTotalDuration; _local4.renderTime((_local5 - ((_arg1 - _local4.cachedStartTime) * _local4.cachedTimeScale)), _arg2, false); }; }; _local4 = _local6; }; } public function get rawTime():Number{ return (this.cachedTotalTime); } } }//package com.greensock.core
Section 23
//TweenCore (com.greensock.core.TweenCore) package com.greensock.core { import com.greensock.*; public class TweenCore { protected var _delay:Number; protected var _hasUpdate:Boolean; protected var _rawPrevTime:Number;// = -1 protected var _pauseTime:Number; public var vars:Object; public var active:Boolean; public var gc:Boolean; public var initted:Boolean; public var timeline:SimpleTimeline; public var cachedStartTime:Number; public var cachedTime:Number; public var cachedTotalTime:Number; public var cachedDuration:Number; public var cachedTotalDuration:Number; public var cachedTimeScale:Number; public var cachedReversed:Boolean; public var nextNode:TweenCore; public var prevNode:TweenCore; public var cacheIsDirty:Boolean; public var cachedPaused:Boolean; public var data; public static const version:Number = 1.13; protected static var _classInitted:Boolean; public function TweenCore(_arg1:Number=0, _arg2:Object=null){ this.vars = ((_arg2) || ({})); this.cachedDuration = (this.cachedTotalDuration = ((_arg1) || (0))); _delay = ((this.vars.delay) || (0)); this.cachedTimeScale = ((this.vars.timeScale) || (1)); this.active = Boolean((((((_arg1 == 0)) && ((_delay == 0)))) && (!((this.vars.immediateRender == false))))); this.cachedTotalTime = (this.cachedTime = 0); this.data = this.vars.data; if (!_classInitted){ if (isNaN(TweenLite.rootFrame)){ TweenLite.initClass(); _classInitted = true; } else { return; }; }; var _local3:SimpleTimeline = ((this.vars.timeline is SimpleTimeline)) ? this.vars.timeline : (this.vars.useFrames) ? TweenLite.rootFramesTimeline : TweenLite.rootTimeline; this.cachedStartTime = (_local3.cachedTotalTime + _delay); _local3.addChild(this); if (this.vars.reversed){ this.cachedReversed = true; }; if (this.vars.paused){ this.paused = true; }; } public function play():void{ this.reversed = false; this.paused = false; } public function pause():void{ this.paused = true; } public function resume():void{ this.paused = false; } public function restart(_arg1:Boolean=false, _arg2:Boolean=true):void{ this.reversed = false; this.paused = false; this.setTotalTime((_arg1) ? -(_delay) : 0, _arg2); } public function reverse(_arg1:Boolean=true):void{ this.reversed = true; if (_arg1){ this.paused = false; } else { if (this.gc){ this.setEnabled(true, false); }; }; } public function renderTime(_arg1:Number, _arg2:Boolean=false, _arg3:Boolean=false):void{ } public function complete(_arg1:Boolean=false, _arg2:Boolean=false):void{ if (!_arg1){ renderTime(this.cachedTotalDuration, _arg2, false); return; }; if (this.timeline.autoRemoveChildren){ this.setEnabled(false, false); } else { this.active = false; }; if (!_arg2){ if (((((this.vars.onComplete) && ((this.cachedTotalTime == this.cachedTotalDuration)))) && (!(this.cachedReversed)))){ this.vars.onComplete.apply(null, this.vars.onCompleteParams); } else { if (((((this.cachedReversed) && ((this.cachedTotalTime == 0)))) && (this.vars.onReverseComplete))){ this.vars.onReverseComplete.apply(null, this.vars.onReverseCompleteParams); }; }; }; } public function invalidate():void{ } public function setEnabled(_arg1:Boolean, _arg2:Boolean=false):Boolean{ if (_arg1){ this.active = Boolean(((((!(this.cachedPaused)) && ((this.cachedTotalTime > 0)))) && ((this.cachedTotalTime < this.cachedTotalDuration)))); if (((!(_arg2)) && (this.gc))){ this.timeline.addChild(this); }; } else { this.active = false; if (!_arg2){ this.timeline.remove(this, true); }; }; this.gc = !(_arg1); return (false); } public function kill():void{ setEnabled(false, false); } protected function setDirtyCache(_arg1:Boolean=true):void{ var _local2:TweenCore = (_arg1) ? this : this.timeline; while (_local2) { _local2.cacheIsDirty = true; _local2 = _local2.timeline; }; } protected function setTotalTime(_arg1:Number, _arg2:Boolean=false):void{ var _local3:Number; var _local4:Number; if (this.timeline){ _local3 = (((_pauseTime) || ((_pauseTime == 0)))) ? _pauseTime : this.timeline.cachedTotalTime; if (this.cachedReversed){ _local4 = (this.cacheIsDirty) ? this.totalDuration : this.cachedTotalDuration; this.cachedStartTime = (_local3 - ((_local4 - _arg1) / this.cachedTimeScale)); } else { this.cachedStartTime = (_local3 - (_arg1 / this.cachedTimeScale)); }; if (!this.timeline.cacheIsDirty){ setDirtyCache(false); }; if (this.cachedTotalTime != _arg1){ renderTime(_arg1, _arg2, false); }; }; } public function get delay():Number{ return (_delay); } public function set delay(_arg1:Number):void{ this.startTime = (this.startTime + (_arg1 - _delay)); _delay = _arg1; } public function get duration():Number{ return (this.cachedDuration); } public function set duration(_arg1:Number):void{ this.cachedDuration = (this.cachedTotalDuration = _arg1); setDirtyCache(false); } public function get totalDuration():Number{ return (this.cachedTotalDuration); } public function set totalDuration(_arg1:Number):void{ this.duration = _arg1; } public function get currentTime():Number{ return (this.cachedTime); } public function set currentTime(_arg1:Number):void{ setTotalTime(_arg1, false); } public function get totalTime():Number{ return (this.cachedTotalTime); } public function set totalTime(_arg1:Number):void{ setTotalTime(_arg1, false); } public function get startTime():Number{ return (this.cachedStartTime); } public function set startTime(_arg1:Number):void{ var _local2:Boolean = Boolean(((!((this.timeline == null))) && (((!((_arg1 == this.cachedStartTime))) || (this.gc))))); this.cachedStartTime = _arg1; if (_local2){ this.timeline.addChild(this); }; } public function get reversed():Boolean{ return (this.cachedReversed); } public function set reversed(_arg1:Boolean):void{ if (_arg1 != this.cachedReversed){ this.cachedReversed = _arg1; setTotalTime(this.cachedTotalTime, true); }; } public function get paused():Boolean{ return (this.cachedPaused); } public function set paused(_arg1:Boolean):void{ if (((!((_arg1 == this.cachedPaused))) && (this.timeline))){ if (_arg1){ _pauseTime = this.timeline.rawTime; } else { this.cachedStartTime = (this.cachedStartTime + (this.timeline.rawTime - _pauseTime)); _pauseTime = NaN; setDirtyCache(false); }; this.cachedPaused = _arg1; this.active = Boolean(((((!(this.cachedPaused)) && ((this.cachedTotalTime > 0)))) && ((this.cachedTotalTime < this.cachedTotalDuration)))); }; if (((!(_arg1)) && (this.gc))){ this.setTotalTime(this.cachedTotalTime, false); this.setEnabled(true, false); }; } } }//package com.greensock.core
Section 24
//Elastic (com.greensock.easing.Elastic) package com.greensock.easing { public class Elastic { private static const _2PI:Number = 6.28318530717959; public static function easeIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=0, _arg6:Number=0):Number{ var _local7:Number; if (_arg1 == 0){ return (_arg2); }; _arg1 = (_arg1 / _arg4); if (_arg1 == 1){ return ((_arg2 + _arg3)); }; if (!_arg6){ _arg6 = (_arg4 * 0.3); }; if (((((!(_arg5)) || ((((_arg3 > 0)) && ((_arg5 < _arg3)))))) || ((((_arg3 < 0)) && ((_arg5 < -(_arg3))))))){ _arg5 = _arg3; _local7 = (_arg6 / 4); } else { _local7 = ((_arg6 / _2PI) * Math.asin((_arg3 / _arg5))); }; --_arg1; return ((-(((_arg5 * Math.pow(2, (10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * _2PI) / _arg6)))) + _arg2)); } public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=0, _arg6:Number=0):Number{ var _local7:Number; if (_arg1 == 0){ return (_arg2); }; _arg1 = (_arg1 / _arg4); if (_arg1 == 1){ return ((_arg2 + _arg3)); }; if (!_arg6){ _arg6 = (_arg4 * 0.3); }; if (((((!(_arg5)) || ((((_arg3 > 0)) && ((_arg5 < _arg3)))))) || ((((_arg3 < 0)) && ((_arg5 < -(_arg3))))))){ _arg5 = _arg3; _local7 = (_arg6 / 4); } else { _local7 = ((_arg6 / _2PI) * Math.asin((_arg3 / _arg5))); }; return (((((_arg5 * Math.pow(2, (-10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * _2PI) / _arg6))) + _arg3) + _arg2)); } public static function easeInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=0, _arg6:Number=0):Number{ var _local7:Number; if (_arg1 == 0){ return (_arg2); }; _arg1 = (_arg1 / (_arg4 * 0.5)); if (_arg1 == 2){ return ((_arg2 + _arg3)); }; if (!_arg6){ _arg6 = (_arg4 * (0.3 * 1.5)); }; if (((((!(_arg5)) || ((((_arg3 > 0)) && ((_arg5 < _arg3)))))) || ((((_arg3 < 0)) && ((_arg5 < -(_arg3))))))){ _arg5 = _arg3; _local7 = (_arg6 / 4); } else { _local7 = ((_arg6 / _2PI) * Math.asin((_arg3 / _arg5))); }; if (_arg1 < 1){ --_arg1; return (((-0.5 * ((_arg5 * Math.pow(2, (10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * _2PI) / _arg6)))) + _arg2)); }; --_arg1; return ((((((_arg5 * Math.pow(2, (-10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * _2PI) / _arg6))) * 0.5) + _arg3) + _arg2)); } } }//package com.greensock.easing
Section 25
//TweenLite (com.greensock.TweenLite) package com.greensock { import flash.display.*; import flash.events.*; import com.greensock.core.*; import flash.utils.*; import com.greensock.plugins.*; public class TweenLite extends TweenCore { public var target:Object; public var propTweenLookup:Object; public var ratio:Number;// = 0 public var cachedPT1:PropTween; protected var _ease:Function; protected var _overwrite:uint; protected var _overwrittenProps:Object; protected var _hasPlugins:Boolean; protected var _notifyPluginsOfEnabled:Boolean; public static const version:Number = 11.32; public static var plugins:Object = {}; public static var fastEaseLookup:Dictionary = new Dictionary(false); public static var onPluginEvent:Function; public static var killDelayedCallsTo:Function = TweenLite.killTweensOf; public static var defaultEase:Function = TweenLite.easeOut; public static var overwriteManager:Object; public static var rootFrame:Number; public static var rootTimeline:SimpleTimeline; public static var rootFramesTimeline:SimpleTimeline; public static var masterList:Dictionary = new Dictionary(false); private static var _shape:Shape = new Shape(); protected static var _reservedProps:Object = {ease:1, delay:1, overwrite:1, onComplete:1, onCompleteParams:1, useFrames:1, runBackwards:1, startAt:1, onUpdate:1, onUpdateParams:1, roundProps:1, onStart:1, onStartParams:1, onInit:1, onInitParams:1, onReverseComplete:1, onReverseCompleteParams:1, onRepeat:1, onRepeatParams:1, proxiedEase:1, easeParams:1, yoyo:1, onCompleteListener:1, onUpdateListener:1, onStartListener:1, onReverseCompleteListener:1, onRepeatListener:1, orientToBezier:1, timeScale:1, immediateRender:1, repeat:1, repeatDelay:1, timeline:1, data:1, paused:1}; public function TweenLite(_arg1:Object, _arg2:Number, _arg3:Object){ var _local5:TweenLite; super(_arg2, _arg3); this.target = _arg1; if ((((this.target is TweenCore)) && (("timeScale" in this.vars)))){ this.cachedTimeScale = 1; }; propTweenLookup = {}; _ease = defaultEase; _overwrite = (((!((Number(_arg3.overwrite) > -1))) || (((!(overwriteManager.enabled)) && ((_arg3.overwrite > 1)))))) ? overwriteManager.mode : int(_arg3.overwrite); var _local4:Array = masterList[_arg1]; if (!_local4){ masterList[_arg1] = [this]; } else { if (_overwrite == 1){ for each (_local5 in _local4) { if (!_local5.gc){ _local5.setEnabled(false, false); }; }; masterList[_arg1] = [this]; } else { _local4[_local4.length] = this; }; }; if (((this.active) || (this.vars.immediateRender))){ renderTime(0, false, true); }; } protected function init():void{ var _local1:String; var _local2:int; var _local3:*; var _local4:Boolean; var _local5:Array; var _local6:PropTween; if (this.vars.onInit){ this.vars.onInit.apply(null, this.vars.onInitParams); }; if (typeof(this.vars.ease) == "function"){ _ease = this.vars.ease; }; if (this.vars.easeParams){ this.vars.proxiedEase = _ease; _ease = easeProxy; }; this.cachedPT1 = null; this.propTweenLookup = {}; for (_local1 in this.vars) { if ((((_local1 in _reservedProps)) && (!((((_local1 == "timeScale")) && ((this.target is TweenCore))))))){ } else { if ((((_local1 in plugins)) && (new ((plugins[_local1] as Class)).onInitTween(this.target, this.vars[_local1], this)))){ this.cachedPT1 = new PropTween(_local3, "changeFactor", 0, 1, ((_local3.overwriteProps.length)==1) ? _local3.overwriteProps[0] : "_MULTIPLE_", true, this.cachedPT1); if (this.cachedPT1.name == "_MULTIPLE_"){ _local2 = _local3.overwriteProps.length; while (--_local2 > -1) { this.propTweenLookup[_local3.overwriteProps[_local2]] = this.cachedPT1; }; } else { this.propTweenLookup[this.cachedPT1.name] = this.cachedPT1; }; if (_local3.priority){ this.cachedPT1.priority = _local3.priority; _local4 = true; }; if (((_local3.onDisable) || (_local3.onEnable))){ _notifyPluginsOfEnabled = true; }; _hasPlugins = true; } else { this.cachedPT1 = new PropTween(this.target, _local1, Number(this.target[_local1]), ((typeof(this.vars[_local1]))=="number") ? (Number(this.vars[_local1]) - this.target[_local1]) : Number(this.vars[_local1]), _local1, false, this.cachedPT1); this.propTweenLookup[_local1] = this.cachedPT1; }; }; }; if (_local4){ onPluginEvent("onInit", this); }; if (this.vars.runBackwards){ _local6 = this.cachedPT1; while (_local6) { _local6.start = (_local6.start + _local6.change); _local6.change = -(_local6.change); _local6 = _local6.nextNode; }; }; _hasUpdate = Boolean(!((this.vars.onUpdate == null))); if (_overwrittenProps){ killVars(_overwrittenProps); if (this.cachedPT1 == null){ this.setEnabled(false, false); }; }; if ((((((((_overwrite > 1)) && (this.cachedPT1))) && (masterList[this.target]))) && ((_local5.length > 1)))){ if (overwriteManager.manageOverwrites(this, this.propTweenLookup, _local5, _overwrite)){ init(); }; }; this.initted = true; } override public function renderTime(_arg1:Number, _arg2:Boolean=false, _arg3:Boolean=false):void{ var _local4:Boolean; var _local5:Number = this.cachedTime; if (_arg1 >= this.cachedDuration){ this.cachedTotalTime = (this.cachedTime = this.cachedDuration); this.ratio = 1; _local4 = true; if (this.cachedDuration == 0){ if ((((((_arg1 == 0)) || ((_rawPrevTime < 0)))) && (!((_rawPrevTime == _arg1))))){ _arg3 = true; }; _rawPrevTime = _arg1; }; } else { if (_arg1 <= 0){ this.cachedTotalTime = (this.cachedTime = (this.ratio = 0)); if (_arg1 < 0){ this.active = false; if (this.cachedDuration == 0){ if (_rawPrevTime > 0){ _arg3 = true; _local4 = true; }; _rawPrevTime = _arg1; }; }; if (((this.cachedReversed) && (!((_local5 == 0))))){ _local4 = true; }; } else { this.cachedTotalTime = (this.cachedTime = _arg1); this.ratio = _ease(_arg1, 0, 1, this.cachedDuration); }; }; if ((((this.cachedTime == _local5)) && (!(_arg3)))){ return; }; if (!this.initted){ init(); if (((!(_local4)) && (this.cachedTime))){ this.ratio = _ease(this.cachedTime, 0, 1, this.cachedDuration); }; }; if (((!(this.active)) && (!(this.cachedPaused)))){ this.active = true; }; if ((((((((_local5 == 0)) && (this.vars.onStart))) && (!((this.cachedTime == 0))))) && (!(_arg2)))){ this.vars.onStart.apply(null, this.vars.onStartParams); }; var _local6:PropTween = this.cachedPT1; while (_local6) { _local6.target[_local6.property] = (_local6.start + (this.ratio * _local6.change)); _local6 = _local6.nextNode; }; if (((_hasUpdate) && (!(_arg2)))){ this.vars.onUpdate.apply(null, this.vars.onUpdateParams); }; if (_local4){ if (((_hasPlugins) && (this.cachedPT1))){ onPluginEvent("onComplete", this); }; complete(true, _arg2); }; } public function killVars(_arg1:Object, _arg2:Boolean=true):Boolean{ var _local3:String; var _local4:PropTween; var _local5:Boolean; if (_overwrittenProps == null){ _overwrittenProps = {}; }; for (_local3 in _arg1) { if ((_local3 in propTweenLookup)){ _local4 = propTweenLookup[_local3]; if (((_local4.isPlugin) && ((_local4.name == "_MULTIPLE_")))){ _local4.target.killProps(_arg1); if (_local4.target.overwriteProps.length == 0){ _local4.name = ""; }; }; if (_local4.name != "_MULTIPLE_"){ if (_local4.nextNode){ _local4.nextNode.prevNode = _local4.prevNode; }; if (_local4.prevNode){ _local4.prevNode.nextNode = _local4.nextNode; } else { if (this.cachedPT1 == _local4){ this.cachedPT1 = _local4.nextNode; }; }; if (((_local4.isPlugin) && (_local4.target.onDisable))){ _local4.target.onDisable(); if (_local4.target.activeDisable){ _local5 = true; }; }; delete propTweenLookup[_local3]; }; }; if (((_arg2) && (!((_arg1 == _overwrittenProps))))){ _overwrittenProps[_local3] = 1; }; }; return (_local5); } override public function invalidate():void{ if (((_notifyPluginsOfEnabled) && (this.cachedPT1))){ onPluginEvent("onDisable", this); }; this.cachedPT1 = null; _overwrittenProps = null; _hasUpdate = (this.initted = (this.active = (_notifyPluginsOfEnabled = false))); this.propTweenLookup = {}; } override public function setEnabled(_arg1:Boolean, _arg2:Boolean=false):Boolean{ var _local3:Array; if (_arg1){ _local3 = TweenLite.masterList[this.target]; if (!_local3){ TweenLite.masterList[this.target] = [this]; } else { _local3[_local3.length] = this; }; }; super.setEnabled(_arg1, _arg2); if (((_notifyPluginsOfEnabled) && (this.cachedPT1))){ return (onPluginEvent((_arg1) ? "onEnable" : "onDisable", this)); }; return (false); } protected function easeProxy(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return (this.vars.proxiedEase.apply(null, arguments.concat(this.vars.easeParams))); } public static function initClass():void{ rootFrame = 0; rootTimeline = new SimpleTimeline(null); rootFramesTimeline = new SimpleTimeline(null); rootTimeline.cachedStartTime = (getTimer() * 0.001); rootFramesTimeline.cachedStartTime = rootFrame; rootTimeline.autoRemoveChildren = true; rootFramesTimeline.autoRemoveChildren = true; _shape.addEventListener(Event.ENTER_FRAME, updateAll, false, 0, true); if (overwriteManager == null){ overwriteManager = {mode:1, enabled:false}; }; } public static function to(_arg1:Object, _arg2:Number, _arg3:Object):TweenLite{ return (new TweenLite(_arg1, _arg2, _arg3)); } public static function from(_arg1:Object, _arg2:Number, _arg3:Object):TweenLite{ _arg3.runBackwards = true; if (!("immediateRender" in _arg3)){ _arg3.immediateRender = true; }; return (new TweenLite(_arg1, _arg2, _arg3)); } public static function delayedCall(_arg1:Number, _arg2:Function, _arg3:Array=null, _arg4:Boolean=false):TweenLite{ return (new TweenLite(_arg2, 0, {delay:_arg1, onComplete:_arg2, onCompleteParams:_arg3, immediateRender:false, useFrames:_arg4, overwrite:0})); } protected static function updateAll(_arg1:Event=null):void{ var _local2:Dictionary; var _local3:Object; var _local4:Array; var _local5:int; rootTimeline.renderTime((((getTimer() * 0.001) - rootTimeline.cachedStartTime) * rootTimeline.cachedTimeScale), false, false); rootFrame++; rootFramesTimeline.renderTime(((rootFrame - rootFramesTimeline.cachedStartTime) * rootFramesTimeline.cachedTimeScale), false, false); if (!(rootFrame % 60)){ _local2 = masterList; for (_local3 in _local2) { _local4 = _local2[_local3]; _local5 = _local4.length; while (--_local5 > -1) { if (TweenLite(_local4[_local5]).gc){ _local4.splice(_local5, 1); }; }; if (_local4.length == 0){ delete _local2[_local3]; }; }; }; } public static function killTweensOf(_arg1:Object, _arg2:Boolean=false, _arg3:Object=null):void{ var _local4:Array; var _local5:int; var _local6:TweenLite; if ((_arg1 in masterList)){ _local4 = masterList[_arg1]; _local5 = _local4.length; while (--_local5 > -1) { _local6 = _local4[_local5]; if (!_local6.gc){ if (_arg2){ _local6.complete(false, false); }; if (_arg3 != null){ _local6.killVars(_arg3); }; if ((((_arg3 == null)) || ((((_local6.cachedPT1 == null)) && (_local6.initted))))){ _local6.setEnabled(false, false); }; }; }; if (_arg3 == null){ delete masterList[_arg1]; }; }; } protected static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (1 - (_arg1 / _arg4)); return ((1 - (_arg1 * _arg1))); } } }//package com.greensock
Section 26
//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; } public function set vp(_arg1:uint):void{ _vp = _arg1; } public function get vp():uint{ return (_vp); } override public function clone():Event{ return (new AutoLayoutEvent(type, bubbles, cancelable, Rectangle(oldBounds.clone()), Rectangle(oldRegistrationBounds.clone()), vp)); } } }//package fl.video
Section 27
//ConnectClient (fl.video.ConnectClient) package fl.video { import flash.net.*; public class ConnectClient { public var owner:NCManager; public var nc:NetConnection; public var connIndex:uint; public var pending:Boolean; 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 close():void{ } public function onBWDone(... _args):void{ var _local2:Number; if (_args.length > 0){ _local2 = _args[0]; }; owner.onConnected(nc, _local2); } } }//package fl.video
Section 28
//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 fullness_mc:DisplayObject; public var state:uint; public var leftMargin:Number; 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 cachedFocusRect:Boolean; public var captureFocus:Boolean; 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 29
//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.20"; 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; switch (typeof(_arg3)){ case "string": _local4 = {name:_arg3}; break; case "number": _local4 = {time:_arg3}; break; case "object": _local4 = _arg3; break; }; var _local5:int = 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{ if ((((_arg1 <= 0)) || ((asCuePoints == null)))){ _asCuePointIndex = 0; return; }; var _local2:int = 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 _local4:Object; _metadataLoaded = true; if ((((_arg1 == null)) || ((_arg1.length < 1)))){ flvCuePoints = null; navCuePoints = null; eventCuePoints = null; return; }; flvCuePoints = _arg1; navCuePoints = new Array(); eventCuePoints = new Array(); var _local3:Number = -1; var _local5:Array = _disabledCuePoints; var _local6:Number = 0; _disabledCuePoints = new Array(); var _local7:int; 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 _local7:int; 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; }; var _local5:Boolean = ((isNaN(_local4.time)) || ((_local4.time < 0))); if (_local5){ throw (new VideoError(VideoError.ILLEGAL_CUE_POINT, "time must be number")); }; var _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); }; var _local8:Number = _owner.getVideoPlayer(_id).playheadTime; if (_local8 > 0){ if (_asCuePointIndex == _local7){ if (_local8 > asCuePoints[_local7].time){ _asCuePointIndex++; }; } else { if (_asCuePointIndex > _local7){ _asCuePointIndex++; }; }; } else { _asCuePointIndex = 0; }; var _local9:Object = 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; _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 = _arg1; var _local3:int; 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 _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; }; var _local4:Boolean = ((isNaN(_local3.time)) || ((_local3.time < 0))); var _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")); }; var _local6:uint; 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 _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; }; var _local3:Boolean = ((isNaN(_local2.time)) || ((_local2.time < 0))); var _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; 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; }; var _local3:int = 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 _local3:uint; var _local4:String; var _local5:String; var _local6:Object; var _local7:Boolean; if ((((_arg1 == null)) || ((_arg1.length == 0)))){ return; }; var _local2:uint; var _local8:int; 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 = _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{ 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")); }; var _local2:int = getNextCuePointIndexWithName(_arg1.name, _arg1.array, _arg1.index); if (_local2 < 0){ return (null); }; var _local3:Object = 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 _local9:int; var _local12:int; var _local13:int; var _local14:int; var _local15:int; if ((((_arg1 == null)) || ((_arg1.length < 1)))){ return (-1); }; var _local7:Boolean = ((isNaN(_arg3)) || ((_arg3 < 0))); var _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); }; var _local10:int = int((_arg6 / 2)); var _local11:int = (_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 _local4:*; if (_arg1 == null){ return (_arg1); }; var _local3:Object = 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 = Math.round((_arg1 * 1000)); var _local5:Number = 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 30
//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 31
//FLVPlayback (fl.video.FLVPlayback) package fl.video { import flash.display.*; import flash.events.*; import flash.geom.*; import flash.net.*; 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; flvplayback_internal var videoPlayerStates:Array; private var _origHeight:Number; private var _progressInterval:Number; private var _origWidth:Number; private var _seekToPrevOffset:Number; private var _scaleMode:String; flvplayback_internal var resizingNow:Boolean; flvplayback_internal var videoPlayers:Array; private var _bufferTime:Number; private var _aspectRatio:Boolean; flvplayback_internal var uiMgr:UIManager; private var previewImage_mc:Loader; private var _autoRewind:Boolean; private var _componentInspectorSetting:Boolean; flvplayback_internal var _firstStreamShown:Boolean; private var _visibleVP:uint; private var _idleTimeout:Number; private var _soundTransform:SoundTransform; flvplayback_internal var skinShowTimer:Timer; public var boundingBox_mc:DisplayObject; 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.20"; flvplayback_internal static const DEFAULT_SKIN_SHOW_TIMER_INTERVAL:Number = 2000; public function FLVPlayback(){ mouseEnabled = false; isLivePreview = ((!((parent == null))) && ((getQualifiedClassName(parent) == "fl.livepreview::LivePreviewParent"))); _componentInspectorSetting = false; var _local1:Number = rotation; rotation = 0; _origWidth = super.width; _origHeight = super.height; super.scaleX = 1; super.scaleY = 1; rotation = _local1; var _local2:VideoPlayer = new VideoPlayer(0, 0); _local2.setSize(_origWidth, _origHeight); videoPlayers = new Array(); videoPlayers[0] = _local2; _align = _local2.align; _autoRewind = _local2.autoRewind; _scaleMode = _local2.scaleMode; _bufferTime = _local2.bufferTime; _idleTimeout = _local2.idleTimeout; _playheadUpdateInterval = _local2.playheadUpdateInterval; _progressInterval = _local2.progressInterval; _soundTransform = _local2.soundTransform; _volume = _local2.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 setScale(_arg1:Number, _arg2:Number):void{ var _local6:VideoPlayer; var _local3:Rectangle = new Rectangle(x, y, width, height); var _local4:Rectangle = new Rectangle(registrationX, registrationY, registrationWidth, registrationHeight); resizingNow = true; var _local5:int; 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{ if (_activeVP == 0){ _align = _arg1; }; var _local2:VideoPlayer = videoPlayers[_activeVP]; _local2.align = _arg1; } public function getVideoPlayer(_arg1:Number):VideoPlayer{ return (videoPlayers[_arg1]); } public function get playheadTime():Number{ var _local1:VideoPlayer = videoPlayers[_activeVP]; return (_local1.playheadTime); } public function get seekBarScrubTolerance():Number{ return (uiMgr.seekBarScrubTolerance); } public function get progressInterval():Number{ var _local1:VideoPlayer = videoPlayers[_activeVP]; return (_local1.progressInterval); } public function set skinFadeTime(_arg1:int):void{ uiMgr.skinFadeTime = _arg1; } public function get scaleMode():String{ var _local1:VideoPlayer = videoPlayers[_activeVP]; return (_local1.scaleMode); } public function get skinFadeTime():int{ return (uiMgr.skinFadeTime); } public function get seekToPrevOffset():Number{ return (_seekToPrevOffset); } public function set scaleMode(_arg1:String):void{ if (_activeVP == 0){ _scaleMode = _arg1; }; var _local2:VideoPlayer = videoPlayers[_activeVP]; _local2.scaleMode = _arg1; } public function get source():String{ var _local1:VideoPlayerState = videoPlayerStates[_activeVP]; if (_local1.isWaiting){ return (_local1.url); }; var _local2:VideoPlayer = videoPlayers[_activeVP]; return (_local2.source); } public function get activeVideoPlayerIndex():uint{ return (_activeVP); } public function set bufferingBar(_arg1:Sprite):void{ uiMgr.setControl(UIManager.BUFFERING_BAR, _arg1); } public function get ncMgr():INCManager{ var _local1:VideoPlayer = videoPlayers[_activeVP]; return (_local1.ncMgr); } public function closeVideoPlayer(_arg1:uint):void{ if (_arg1 == 0){ throw (new VideoError(VideoError.DELETE_DEFAULT_PLAYER)); }; if (videoPlayers[_arg1] == undefined){ return; }; var _local2:VideoPlayer = 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 assignTabIndexes(_arg1:int):int{ if (tabIndex){ tabEnabled = false; tabChildren = true; if (isNaN(_arg1)){ _arg1 = tabIndex; }; }; var _local2:int = uiMgr.assignTabIndexes(_arg1); return (_local2); } public function set progressInterval(_arg1:Number):void{ if (_activeVP == 0){ _progressInterval = _arg1; }; var _local2:VideoPlayer = videoPlayers[_activeVP]; _local2.progressInterval = _arg1; } public function get metadataLoaded():Boolean{ var _local1:CuePointManager = cuePointMgrs[_activeVP]; return (_local1.metadataLoaded); } public function get playing():Boolean{ return ((state == VideoState.PLAYING)); } public function set playheadTime(_arg1:Number):void{ seek(_arg1); } public function get totalTime():Number{ if (isLivePreview){ return (1); }; var _local1:VideoPlayerState = videoPlayerStates[_activeVP]; if (_local1.totalTimeSet){ return (_local1.totalTime); }; var _local2:VideoPlayer = videoPlayers[_activeVP]; return (_local2.totalTime); } public function set seekToPrevOffset(_arg1:Number):void{ _seekToPrevOffset = _arg1; } 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{ 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; var _local2:VideoPlayer = videoPlayers[_activeVP]; _local2.soundTransform = _soundTransform; dispatchEvent(new SoundEvent(SoundEvent.SOUND_UPDATE, false, false, _local2.soundTransform)); } public function get endTabIndex():int{ return (uiMgr.endTabIndex); } public function seekToNavCuePoint(_arg1):void{ var _local2: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; }; var _local3:Object = 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); } override public function set height(_arg1:Number):void{ var _local5:VideoPlayer; if (isLivePreview){ setSize(this.width, _arg1); return; }; var _local2:Rectangle = new Rectangle(x, y, width, height); var _local3:Rectangle = new Rectangle(registrationX, registrationY, registrationWidth, registrationHeight); resizingNow = true; var _local4:int; 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)); } override public function get scaleY():Number{ var _local1:VideoPlayer = videoPlayers[_visibleVP]; return ((_local1.height / _origHeight)); } public function get bytesLoaded():uint{ var _local1:VideoPlayer = videoPlayers[_activeVP]; return (_local1.bytesLoaded); } override public function get scaleX():Number{ var _local1:VideoPlayer = videoPlayers[_visibleVP]; return ((_local1.width / _origWidth)); } public function get forwardButton():Sprite{ return (uiMgr.getControl(UIManager.FORWARD_BUTTON)); } public function get seekBarInterval():Number{ return (uiMgr.seekBarInterval); } public function set bufferTime(_arg1:Number):void{ var _local2:VideoPlayer = videoPlayers[_activeVP]; _local2.bufferTime = _arg1; } public function set totalTime(_arg1:Number):void{ var _local2:VideoPlayerState = videoPlayerStates[_activeVP]; _local2.totalTime = _arg1; _local2.totalTimeSet = true; } public function set skinAutoHide(_arg1:Boolean):void{ if (isLivePreview){ return; }; uiMgr.skinAutoHide = _arg1; } 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)); } public function get fullScreenSkinDelay():int{ return (uiMgr.fullScreenSkinDelay); } public function set isLive(_arg1:Boolean):void{ var _local2:VideoPlayerState = videoPlayerStates[_activeVP]; _local2.isLive = _arg1; _local2.isLiveSet = true; } private function onCompletePreview(_arg1:Event):void{ var e = _arg1; try { previewImage_mc.width = livePreviewWidth; previewImage_mc.height = livePreviewHeight; } catch(e:Error) { }; } flvplayback_internal function showSkinNow(_arg1:TimerEvent):void{ skinShowTimer = null; uiMgr.visible = true; } override public function get y():Number{ var _local1:VideoPlayer = 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 seek(_arg1:Number):void{ var _local3:VideoPlayer; var _local2:VideoPlayerState = videoPlayerStates[_activeVP]; if (!_firstStreamShown){ _local2.preSeekTime = 0; queueCmd(_local2, QueuedCommand.SEEK, _arg1); } else { _local2.preSeekTime = playheadTime; _local3 = videoPlayers[_activeVP]; _local3.seek(_arg1); }; } public function set registrationHeight(_arg1:Number):void{ height = _arg1; } public function get bufferingBarHidesAndDisablesOthers():Boolean{ return (uiMgr.bufferingBarHidesAndDisablesOthers); } flvplayback_internal function skinError(_arg1:String):void{ if (isLivePreview){ return; }; if (((_firstStreamReady) && (!(_firstStreamShown)))){ showFirstStream(); }; dispatchEvent(new SkinErrorEvent(SkinErrorEvent.SKIN_ERROR, false, false, _arg1)); } public function get registrationWidth():Number{ var _local1:VideoPlayer = videoPlayers[_visibleVP]; return (_local1.registrationWidth); } override public function get x():Number{ var _local1:VideoPlayer = videoPlayers[_visibleVP]; return ((super.x + _local1.x)); } public function get state():String{ if (isLivePreview){ return (VideoState.STOPPED); }; var _local1:VideoPlayer = videoPlayers[_activeVP]; if ((((_activeVP == _visibleVP)) && (scrubbing))){ return (VideoState.SEEKING); }; var _local2:String = _local1.state; if (_local2 == VideoState.RESIZING){ return (VideoState.LOADING); }; var _local3:VideoPlayerState = videoPlayerStates[_activeVP]; if ((((((_local3.prevState == VideoState.LOADING)) && (_local3.autoPlay))) && ((_local2 == VideoState.STOPPED)))){ return (VideoState.LOADING); }; return (_local2); } public function set autoRewind(_arg1:Boolean):void{ if (_activeVP == 0){ _autoRewind = _arg1; }; var _local2:VideoPlayer = videoPlayers[_activeVP]; _local2.autoRewind = _arg1; } public function get volumeBar():Sprite{ return (uiMgr.getControl(UIManager.VOLUME_BAR)); } override public function set scaleY(_arg1:Number):void{ var _local5:VideoPlayer; var _local2:Rectangle = new Rectangle(x, y, width, height); var _local3:Rectangle = new Rectangle(registrationX, registrationY, registrationWidth, registrationHeight); resizingNow = true; var _local4:int; 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 skinDepth:int; var index = _arg1; if (isLivePreview){ return; }; var vp:VideoPlayer = 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); var added:Boolean; 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; var vpState:VideoPlayerState = 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); var cpMgr:CuePointManager = new CuePointManager(this, index); cuePointMgrs[index] = cpMgr; cpMgr.playheadUpdateInterval = _playheadUpdateInterval; } public function findNearestCuePoint(_arg1, _arg2:String="all"):Object{ var _local3:CuePointManager = 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)); }; } override public function set scaleX(_arg1:Number):void{ var _local5:VideoPlayer; var _local2:Rectangle = new Rectangle(x, y, width, height); var _local3:Rectangle = new Rectangle(registrationX, registrationY, registrationWidth, registrationHeight); resizingNow = true; var _local4:int; 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)); } public function get muteButton():Sprite{ return (uiMgr.getControl(UIManager.MUTE_BUTTON)); } public function seekPercent(_arg1:Number):void{ var _local2:VideoPlayer = 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); } private function doContentPathConnect(_arg1):void{ if (isLivePreview){ return; }; var _local2:int; if ((_arg1 is int)){ _local2 = int(_arg1); } else { removeEventListener(Event.ENTER_FRAME, doContentPathConnect); }; var _local3:VideoPlayer = videoPlayers[_local2]; var _local4:VideoPlayerState = 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 get registrationY():Number{ return (super.y); } public function bringVideoPlayerToFront(_arg1:uint):void{ var skinDepth:int; var index = _arg1; if (index == _topVP){ return; }; var vp:VideoPlayer = videoPlayers[index]; if (vp == null){ createVideoPlayer(index); vp = videoPlayers[index]; }; var moved:Boolean; 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 startTabIndex():int{ if (uiMgr.startTabIndex){ return (uiMgr.startTabIndex); }; if (tabIndex){ return (tabIndex); }; return (uiMgr.startTabIndex); } public function set seekBarInterval(_arg1:Number):void{ uiMgr.seekBarInterval = _arg1; } public function get pauseButton():Sprite{ return (uiMgr.getControl(UIManager.PAUSE_BUTTON)); } public function addASCuePoint(_arg1, _arg2:String=null, _arg3:Object=null):Object{ var _local4:CuePointManager = cuePointMgrs[_activeVP]; return (_local4.addASCuePoint(_arg1, _arg2, _arg3)); } public function get playheadPercentage():Number{ var _local1:VideoPlayer = videoPlayers[_activeVP]; if (isNaN(_local1.totalTime)){ return (NaN); }; return (((_local1.playheadTime / _local1.totalTime) * 100)); } public function setFLVCuePointEnabled(_arg1:Boolean, _arg2):Number{ var _local3:CuePointManager = cuePointMgrs[_activeVP]; return (_local3.setFLVCuePointEnabled(_arg1, _arg2)); } public function seekToNextNavCuePoint(_arg1:Number=NaN):void{ var _local2:VideoPlayer = videoPlayers[_activeVP]; if (((isNaN(_arg1)) || ((_arg1 < 0)))){ _arg1 = (_local2.playheadTime + 0.001); }; var _local3:Object = findNearestCuePoint(_arg1, CuePointType.NAVIGATION); if (_local3 == null){ seek(_local2.totalTime); return; }; var _local4:Number = _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 set fullScreenSkinDelay(_arg1:int):void{ uiMgr.fullScreenSkinDelay = _arg1; } public function get playheadUpdateInterval():Number{ var _local1:VideoPlayer = videoPlayers[_activeVP]; return (_local1.playheadUpdateInterval); } 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 set componentInspectorSetting(_arg1:Boolean):void{ _componentInspectorSetting = _arg1; } public function get idleTimeout():Number{ var _local1:VideoPlayer = videoPlayers[_activeVP]; return (_local1.idleTimeout); } public function get scrubbing():Boolean{ var _local2:ControlData; var _local1:Sprite = seekBar; if (_local1 != null){ _local2 = uiMgr.ctrlDataDict[_local1]; return (_local2.isDragging); }; return (false); } public function set bitrate(_arg1:Number):void{ ncMgr.bitrate = _arg1; } public function removeASCuePoint(_arg1):Object{ var _local2:CuePointManager = cuePointMgrs[_activeVP]; return (_local2.removeASCuePoint(_arg1)); } public function get playPauseButton():Sprite{ return (uiMgr.getControl(UIManager.PLAY_PAUSE_BUTTON)); } public function get fullScreenTakeOver():Boolean{ return (uiMgr.fullScreenTakeOver); } public function get backButton():Sprite{ return (uiMgr.getControl(UIManager.BACK_BUTTON)); } public function set skin(_arg1:String):void{ uiMgr.skin = _arg1; } public function set fullScreenBackgroundColor(_arg1:uint):void{ uiMgr.fullScreenBackgroundColor = _arg1; } public function get fullScreenButton():Sprite{ return (uiMgr.getControl(UIManager.FULL_SCREEN_BUTTON)); } public function set seekBar(_arg1:Sprite):void{ uiMgr.setControl(UIManager.SEEK_BAR, _arg1); } override public function set x(_arg1:Number):void{ var _local2:VideoPlayer = videoPlayers[_visibleVP]; super.x = (_arg1 - _local2.x); } override public function set y(_arg1:Number):void{ var _local2:VideoPlayer = videoPlayers[_visibleVP]; super.y = (_arg1 - _local2.y); } public function set volumeBarInterval(_arg1:Number):void{ uiMgr.volumeBarInterval = _arg1; } public function get align():String{ var _local1:VideoPlayer = videoPlayers[_activeVP]; return (_local1.align); } public function get preferredHeight():int{ var _local1:VideoPlayer = videoPlayers[_activeVP]; return (_local1.videoHeight); } public function set bufferingBarHidesAndDisablesOthers(_arg1:Boolean):void{ uiMgr.bufferingBarHidesAndDisablesOthers = _arg1; } public function set autoPlay(_arg1:Boolean):void{ var _local2:VideoPlayerState = videoPlayerStates[_activeVP]; _local2.autoPlay = _arg1; } public function set visibleVideoPlayerIndex(_arg1:uint):void{ var _local5:Rectangle; var _local6:Rectangle; if (_visibleVP == _arg1){ return; }; if (videoPlayers[_arg1] == undefined){ createVideoPlayer(_arg1); }; var _local2:VideoPlayer = videoPlayers[_arg1]; var _local3:VideoPlayer = videoPlayers[_visibleVP]; _local3.visible = false; _local3.volume = 0; _visibleVP = _arg1; if (_firstStreamShown){ uiMgr.setupSkinAutoHide(false); _local2.visible = true; _soundTransform.volume = (scrubbing) ? 0 : _volume; _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)); }; var _local4:uint = _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 = playheadTime; var _local2:VideoPlayer = 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 set playButton(_arg1:Sprite):void{ uiMgr.setControl(UIManager.PLAY_BUTTON, _arg1); } flvplayback_internal function handleAutoLayoutEvent(_arg1:AutoLayoutEvent):void{ var _local4:Rectangle; var _local5:Rectangle; var _local2:VideoPlayerState = videoPlayerStateDict[_arg1.currentTarget]; var _local3:AutoLayoutEvent = 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 = cuePointMgrs[_activeVP]; return (_local2.getNextCuePointWithName(_arg1)); } override public function get soundTransform():SoundTransform{ var _local1:VideoPlayer = videoPlayers[_visibleVP]; var _local2:SoundTransform = _local1.soundTransform; if (scrubbing){ _local2.volume = _volume; }; return (_local2); } public function set registrationWidth(_arg1:Number):void{ width = _arg1; } flvplayback_internal function showFirstStream():void{ var _local3:VideoPlayerState; var _local4:int; _firstStreamShown = true; var _local1:VideoPlayer = videoPlayers[_visibleVP]; _local1.visible = true; if (!scrubbing){ _soundTransform.volume = _volume; _local1.soundTransform = _soundTransform; }; var _local2:int; 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 get stateResponsive():Boolean{ var _local1:VideoPlayer = videoPlayers[_activeVP]; return (_local1.stateResponsive); } public function set skinBackgroundAlpha(_arg1:Number):void{ uiMgr.skinBackgroundAlpha = _arg1; } flvplayback_internal function handleVideoEvent(_arg1:VideoEvent):void{ var _local6:Number; var _local2:VideoPlayerState = videoPlayerStateDict[_arg1.currentTarget]; var _local3:CuePointManager = cuePointMgrs[_local2.index]; var _local4:VideoEvent = VideoEvent(_arg1.clone()); _local4.vp = _local2.index; var _local5:String = ((((_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 get volume():Number{ return (_volume); } public function get metadata():Object{ var _local1:VideoPlayer = videoPlayers[_activeVP]; return (_local1.metadata); } public function set skinBackgroundColor(_arg1:uint):void{ uiMgr.skinBackgroundColor = _arg1; } public function set volumeBar(_arg1:Sprite):void{ uiMgr.setControl(UIManager.VOLUME_BAR, _arg1); } 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)); } override public function get height():Number{ if (isLivePreview){ return (livePreviewHeight); }; var _local1:VideoPlayer = videoPlayers[_visibleVP]; return (_local1.height); } public function get isLive():Boolean{ var _local1:VideoPlayerState = videoPlayerStates[_activeVP]; if (_local1.isLiveSet){ return (_local1.isLive); }; var _local2:VideoPlayer = videoPlayers[_activeVP]; return (_local2.isLive); } public function get registrationHeight():Number{ var _local1:VideoPlayer = videoPlayers[_visibleVP]; return (_local1.registrationHeight); } public function get bufferTime():Number{ var _local1:VideoPlayer = videoPlayers[_activeVP]; return (_local1.bufferTime); } public function set volumeBarScrubTolerance(_arg1:Number):void{ uiMgr.volumeBarScrubTolerance = _arg1; } public function set skinScaleMaximum(_arg1:Number):void{ uiMgr.skinScaleMaximum = _arg1; } public function get autoRewind():Boolean{ var _local1:VideoPlayer = videoPlayers[_activeVP]; return (_local1.autoRewind); } public function set muteButton(_arg1:Sprite):void{ uiMgr.setControl(UIManager.MUTE_BUTTON, _arg1); } public function enterFullScreenDisplayState():void{ uiMgr.enterFullScreenDisplayState(); } flvplayback_internal function handleMetadataEvent(_arg1:MetadataEvent):void{ var _local2:VideoPlayerState = videoPlayerStateDict[_arg1.currentTarget]; var _local3:CuePointManager = 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; }; var _local4:MetadataEvent = 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 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 get playButton():Sprite{ return (uiMgr.getControl(UIManager.PLAY_BUTTON)); } public function get visibleVideoPlayerIndex():uint{ return (_visibleVP); } public function setSize(_arg1:Number, _arg2:Number):void{ var _local6:VideoPlayer; var _local3:Rectangle = new Rectangle(x, y, this.width, this.height); var _local4:Rectangle = 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; var _local5:int; 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)); } override public function set width(_arg1:Number):void{ var _local5:VideoPlayer; if (isLivePreview){ setSize(_arg1, this.height); return; }; var _local2:Rectangle = new Rectangle(x, y, width, height); var _local3:Rectangle = new Rectangle(registrationX, registrationY, registrationWidth, registrationHeight); resizingNow = true; var _local4:int; 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 isRTMP():Boolean{ if (isLivePreview){ return (true); }; var _local1:VideoPlayer = 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)); } public function get skinBackgroundAlpha():Number{ return (uiMgr.skinBackgroundAlpha); } public function set pauseButton(_arg1:Sprite):void{ uiMgr.setControl(UIManager.PAUSE_BUTTON, _arg1); } public function get bytesTotal():uint{ var _local1:VideoPlayer = videoPlayers[_activeVP]; return (_local1.bytesTotal); } public function seekToPrevNavCuePoint(_arg1:Number=NaN):void{ var _local4:VideoPlayer; if (((isNaN(_arg1)) || ((_arg1 < 0)))){ _local4 = videoPlayers[_activeVP]; _arg1 = _local4.playheadTime; }; var _local2:Object = findNearestCuePoint(_arg1, CuePointType.NAVIGATION); if (_local2 == null){ seek(0); return; }; var _local3:Number = _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 = videoPlayerStates[_activeVP]; return (_local1.autoPlay); } public function set playheadPercentage(_arg1:Number):void{ seekPercent(_arg1); } public function isFLVCuePointEnabled(_arg1):Boolean{ var _local2:CuePointManager = 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 skinScaleMaximum():Number{ return (uiMgr.skinScaleMaximum); } public function set stopButton(_arg1:Sprite):void{ uiMgr.setControl(UIManager.STOP_BUTTON, _arg1); } public function get preferredWidth():int{ var _local1:VideoPlayer = videoPlayers[_activeVP]; return (_local1.videoWidth); } override public function get width():Number{ if (isLivePreview){ return (livePreviewWidth); }; var _local1:VideoPlayer = videoPlayers[_visibleVP]; return (_local1.width); } public function set playheadUpdateInterval(_arg1:Number):void{ if (_activeVP == 0){ _playheadUpdateInterval = _arg1; }; var _local2:CuePointManager = cuePointMgrs[_activeVP]; _local2.playheadUpdateInterval = _arg1; var _local3:VideoPlayer = videoPlayers[_activeVP]; _local3.playheadUpdateInterval = _arg1; } 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)); } 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{ if (_activeVP == 0){ _idleTimeout = _arg1; }; var _local2:VideoPlayer = videoPlayers[_activeVP]; _local2.idleTimeout = _arg1; } flvplayback_internal function skinLoaded():void{ if (isLivePreview){ return; }; var _local1:VideoPlayer = 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 = playheadTime; var _local2:String = state; var _local3:VideoPlayer = 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 fullScreenTakeOver(_arg1:Boolean):void{ uiMgr.fullScreenTakeOver = _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 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 set seekBarScrubTolerance(_arg1:Number):void{ uiMgr.seekBarScrubTolerance = _arg1; } flvplayback_internal function handleVideoProgressEvent(_arg1:VideoProgressEvent):void{ var _local2:VideoPlayerState = videoPlayerStateDict[_arg1.currentTarget]; var _local3:VideoProgressEvent = VideoProgressEvent(_arg1.clone()); _local3.vp = _local2.index; dispatchEvent(_local3); } public function findCuePoint(_arg1, _arg2:String="all"):Object{ var _local3:CuePointManager = 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)); }; } } }//package fl.video
Section 32
//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 33
//FPADManager (fl.video.FPADManager) package fl.video { import flash.events.*; import flash.net.*; public class FPADManager { flvplayback_internal var _uriParam:String; flvplayback_internal var _parseResults:ParseResults; private var _owner:INCManager; flvplayback_internal var rtmpURL:String; flvplayback_internal var _url:String; flvplayback_internal var xmlLoader:URLLoader; flvplayback_internal var xml:XML; public static const VERSION:String = "2.1.0.20"; 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 34
//Icon (fl.video.Icon) package fl.video { import flash.display.*; public dynamic class Icon extends MovieClip { } }//package fl.video
Section 35
//INCManager (fl.video.INCManager) package fl.video { import flash.net.*; public interface INCManager { function get timeout():uint; function set timeout(_arg1:uint):void; function get streamLength():Number; function get streamHeight():int; function connectToURL(_arg1:String):Boolean; function get streamName():String; function get bitrate():Number; function get isRTMP():Boolean; function helperDone(_arg1:Object, _arg2:Boolean):void; function getProperty(_arg1:String); function get streamWidth():int; function connectAgain():Boolean; function reconnect():void; function close():void; function set bitrate(_arg1:Number):void; function get netConnection():NetConnection; function get videoPlayer():VideoPlayer; function setProperty(_arg1:String, _arg2):void; function set videoPlayer(_arg1:VideoPlayer):void; } }//package fl.video
Section 36
//IVPEvent (fl.video.IVPEvent) package fl.video { public interface IVPEvent { function get vp():uint; function get type():String; function set vp(_arg1:uint):void; } }//package fl.video
Section 37
//LayoutEvent (fl.video.LayoutEvent) package fl.video { import flash.events.*; import flash.geom.*; public class LayoutEvent extends Event { private var _oldRegistrationBounds:Rectangle; private var _oldBounds: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 set oldRegistrationBounds(_arg1:Rectangle):void{ _oldRegistrationBounds = _arg1; } override public function clone():Event{ return (new LayoutEvent(type, bubbles, cancelable, Rectangle(oldBounds.clone()), Rectangle(oldRegistrationBounds.clone()))); } public function get oldRegistrationBounds():Rectangle{ return (_oldRegistrationBounds); } public function set oldBounds(_arg1:Rectangle):void{ _oldBounds = _arg1; } public function get oldBounds():Rectangle{ return (_oldBounds); } } }//package fl.video
Section 38
//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 set info(_arg1:Object):void{ _info = _arg1; } public function get vp():uint{ return (_vp); } public function get info():Object{ return (_info); } public function set vp(_arg1:uint):void{ _vp = _arg1; } override public function clone():Event{ return (new MetadataEvent(type, bubbles, cancelable, info, vp)); } } }//package fl.video
Section 39
//NCManager (fl.video.NCManager) package fl.video { import flash.events.*; import flash.net.*; import flash.utils.*; public class NCManager implements INCManager { public const DEFAULT_TIMEOUT:uint = 60000; flvplayback_internal var _serverName:String; flvplayback_internal var _tryNCTimer:Timer; flvplayback_internal var _autoSenseBW:Boolean; flvplayback_internal var _fpadZone:Number; flvplayback_internal var _appName:String; flvplayback_internal var _ncConnected:Boolean; flvplayback_internal var _fpadMgr:FPADManager; flvplayback_internal var _bitrate:Number; flvplayback_internal var _timeoutTimer:Timer; flvplayback_internal var _wrappedURL:String; flvplayback_internal var _payload:Number; flvplayback_internal var _nc:NetConnection; flvplayback_internal var _streamLength:Number; flvplayback_internal var _connTypeCounter:uint; flvplayback_internal var _streamWidth:int; flvplayback_internal var _proxyType:String; 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 _streams:Array; flvplayback_internal var _owner:VideoPlayer; 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.20"; 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 canReuse:Boolean; var name:String; var url = _arg1; initOtherInfo(); _contentPath = url; if ((((_contentPath == null)) || ((_contentPath == "")))){ throw (new VideoError(VideoError.INVALID_SOURCE)); }; var parseResults: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 helperDone(_arg1:Object, _arg2:Boolean):void{ var _local3:ParseResults; var _local4:String; var _local7:Number; if (!_arg2){ _nc = null; _ncConnected = false; _owner.ncConnected(); _smilMgr = null; _fpadMgr = null; return; }; var _local5:Boolean; 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; var _local6:uint; 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 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{ _timeoutTimer.stop(); _timeoutTimer.start(); _tryNC = new Array(); var _local1:int = ((((_protocol == "rtmp:/")) || ((_protocol == "rtmpe:/")))) ? 2 : 1; var _local2:uint; 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 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); } flvplayback_internal function connectHTTP():Boolean{ _nc = new NetConnection(); _nc.connect(null); _ncConnected = true; return (true); } public function set videoPlayer(_arg1:VideoPlayer):void{ _owner = _arg1; } flvplayback_internal function bitrateMatch():void{ var _local1:Number = _bitrate; if (isNaN(_local1)){ _local1 = 0; }; var _local2:uint = _streams.length; var _local3:uint; 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; 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; }; }; }; var _local4:String = (((_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 = /^(.+)(\?|\&)(uri=)([^&]+)(\&.*)?$/.exec(_arg1); if (_local2 == null){ throw (new VideoError(VideoError.INVALID_SOURCE, ("fpad url must include uri parameter: " + _arg1))); }; var _local3:String = (_local2[1] + _local2[2]); var _local4:String = _local2[4]; var _local5:String = ((_local2[5])==undefined) ? "" : _local2[5]; var _local6:ParseResults = 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)); } public function get isRTMP():Boolean{ return (_isRTMP); } public function get streamLength():Number{ return (_streamLength); } public function connectAgain():Boolean{ var _local1:int = _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); }; var _local2:String = _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 _local5:int; var _local6:int; var _local7:String; var _local8:ParseResults; var _local2:ParseResults = new ParseResults(); var _local3:int; var _local4:int = _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 = _arg1.length; var _local4:int; var _local5:int = _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 40
//ParseResults (fl.video.ParseResults) package fl.video { public class ParseResults { public var portNumber:String; public var streamName:String; public var appName:String; public var serverName:String; public var isRTMP:Boolean; public var wrappedURL:String; public var isRelative:Boolean; public var protocol:String; } }//package fl.video
Section 41
//QueuedCommand (fl.video.QueuedCommand) package fl.video { public class QueuedCommand { public var isLive:Boolean; public var type:uint; public var time:Number; public var url:String; 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 42
//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 43
//SeekBarAccImpl (fl.video.SeekBarAccImpl) package fl.video { import flash.display.*; import flash.events.*; import flash.utils.*; import flash.accessibility.*; public class SeekBarAccImpl extends AccessibilityImplementation { private var _timer:Timer; private var _vc:FLVPlayback; protected var master:Sprite; protected var role:uint; private var _cachedPercentage:Number; private static const ROLE_SYSTEM_INDICATOR:uint = 39; private static const ROLE_SLIDER:uint = 51; private static const STATE_SYSTEM_FOCUSABLE:uint = 0x100000; private static const EVENT_OBJECT_SELECTION:uint = 32774; private static const ROLE_SYSTEM_PUSHBUTTON:uint = 43; private static const STATE_SYSTEM_FOCUSED:uint = 4; private static const STATE_SYSTEM_SELECTABLE:uint = 0x200000; private static const EVENT_OBJECT_FOCUS:uint = 32773; private static const STATE_SYSTEM_SELECTED:uint = 2; private static const EVENT_OBJECT_VALUECHANGE:uint = 32782; private static const EVENT_OBJECT_LOCATIONCHANGE:uint = 32779; private static const STATE_SYSTEM_NORMAL:uint = 0; private static const STATE_SYSTEM_UNAVAILABLE:uint = 1; public function SeekBarAccImpl(_arg1:Sprite){ var n:int; var i:int; var sprite = _arg1; super(); stub = false; master = sprite; if (!master.accessibilityProperties){ master.accessibilityProperties = new AccessibilityProperties(); }; master.accessibilityProperties.forceSimple = true; var events:Array = eventsToHandle; if (events){ n = events.length; i = 0; while (i < n) { master.addEventListener(events[i], eventHandler); i = (i + 1); }; }; master.addEventListener(FocusEvent.FOCUS_IN, focusInHandler); try { _vc = Object(master).uiMgr._vc; _vc.addEventListener(VideoEvent.PLAYHEAD_UPDATE, eventHandler); } catch(e:Error) { }; role = SeekBarAccImpl.ROLE_SLIDER; } protected function getName(_arg1:uint):String{ var _local2 = ""; switch (_arg1){ case 1: _local2 = "Page Left"; break; case 2: _local2 = "Position"; break; case 3: _local2 = "Page Right"; break; case 0: _local2 = ""; break; }; return (_local2); } override public function get_accName(_arg1:uint):String{ var _local2 = ""; if ((((((((_arg1 == 0)) && (master.accessibilityProperties))) && (master.accessibilityProperties.name))) && (!((master.accessibilityProperties.name == ""))))){ _local2 = (_local2 + (master.accessibilityProperties.name + " ")); }; _local2 = (_local2 + (getName(_arg1) + getStatusName())); return ((((!((_local2 == null))) && (!((_local2 == ""))))) ? _local2 : null); } private function secondsToTime(_arg1:Number):String{ var _local2:String; var _local3:String; var _local4:String; var _local5:int; var _local6:int; var _local7:Number; _local5 = ((_arg1)>=3600) ? (_arg1 / 3600) : 0; _local6 = ((_arg1)>=60) ? ((_arg1 / 60) - (_local5 * 60)) : 0; _local7 = (_arg1 - ((_local5 * 3600) + (_local6 * 60))); _local2 = String(_local5); _local3 = ((((String(_local6).length == 1)) && ((_local5 > 0)))) ? ("0" + String(_local6)) : String(_local6); _local4 = ((String(Math.floor(_local7)).length)==1) ? ("0" + String(_local7)) : String(_local7); var _local8:String = ((_local3 + ":") + _local4); if (_local5 > 0){ _local8 = ((((_local2 + ":") + _local3) + ":") + _local4); }; return (_local8); } override public function accDoDefaultAction(_arg1:uint):void{ var nearestCuePoint:Object; var nextCuePoint:Object; var childID = _arg1; var percent:Number = _vc.playheadPercentage; nearestCuePoint = _vc.findNearestCuePoint(_vc.playheadTime); if (childID == 1){ percent = (percent - (_vc.seekBarScrubTolerance * 2)); _vc.playheadPercentage = Math.max(percent, 0); } else { if (childID == 3){ if (_vc.playheadPercentage >= 99){ return; }; if (((!((nearestCuePoint == null))) && ((nearestCuePoint.index < ((nearestCuePoint.array as Array).length - 1))))){ try { nextCuePoint = _vc.findCuePoint(nearestCuePoint.array[(nearestCuePoint.index + 1)]); if (((nextCuePoint) && (_vc.isFLVCuePointEnabled(nextCuePoint)))){ if (isNaN(Number(_vc.metadata.videocodecid))){ _vc.playheadPercentage = Math.max(((nextCuePoint.time / _vc.totalTime) * 100), Math.min(99, (_vc.playheadPercentage + (_vc.seekBarScrubTolerance * 2)))); } else { _vc.playheadTime = nextCuePoint.time; }; }; } catch(err:Error) { }; }; }; }; } protected function eventHandler(_arg1:Event):void{ var _local2:SeekBarAccImpl; if (Accessibility.active){ switch (_arg1.type){ case VideoEvent.PLAYHEAD_UPDATE: _cachedPercentage = _vc.playheadPercentage; _local2 = this; if (Accessibility.active){ Accessibility.sendEvent(master, 0, EVENT_OBJECT_SELECTION); Accessibility.sendEvent(master, 0, EVENT_OBJECT_VALUECHANGE, true); }; if (!_timer){ _timer = new Timer(10); _timer.removeEventListener(TimerEvent.TIMER, sendAccessibilityEvent); _timer.addEventListener(TimerEvent.TIMER, sendAccessibilityEvent); _timer.start(); }; break; }; }; } private function sendAccessibilityEvent(_arg1:TimerEvent):void{ if (_cachedPercentage != _vc.playheadPercentage){ _arg1.target.stop(); _arg1.target.removeEventListener(TimerEvent.TIMER, sendAccessibilityEvent); _timer = undefined; if (Accessibility.active){ Accessibility.sendEvent(master, 0, EVENT_OBJECT_SELECTION); Accessibility.sendEvent(master, 0, EVENT_OBJECT_VALUECHANGE, true); }; }; } override public function accLocation(_arg1:uint){ var _local2:Object = master; var _local3:UIManager = (_vc.uiMgr as UIManager); var _local4:DisplayObject = (_local3.controls[UIManager.SEEK_BAR] as DisplayObject); var _local5:Dictionary = (UIManager(_local3).ctrlDataDict as Dictionary); var _local6:ControlData = _local5[_local4]; switch (_arg1){ case 0: if (_local6.hit_mc){ _local2 = _local6.hit_mc; }; break; case 1: case 3: if (_local6.progress_mc){ _local2 = _local6.progress_mc; }; break; default: break; }; return (_local2); } override public function get_accState(_arg1:uint):uint{ var _local2:uint = getState(_arg1); return (_local2); } private function getStatusName():String{ return (""); } protected function getState(_arg1:uint):uint{ var _local2:uint = STATE_SYSTEM_NORMAL; if (_arg1 == 0){ if (((!(master.mouseEnabled)) || (!(master.tabEnabled)))){ _local2 = (_local2 | STATE_SYSTEM_UNAVAILABLE); } else { _local2 = (_local2 | STATE_SYSTEM_FOCUSABLE); }; if (Sprite(master).stage.focus == master){ _local2 = (_local2 | STATE_SYSTEM_FOCUSED); }; }; return (_local2); } override public function get_accDefaultAction(_arg1:uint):String{ if ((((_arg1 == 1)) || ((_arg1 == 3)))){ return ("Press"); }; return (null); } override public function getChildIDArray():Array{ var _local1:Array = []; var _local2:uint; while (_local2 < 3) { _local1[_local2] = (_local2 + 1); _local2++; }; return (_local1); } private function focusInHandler(_arg1:Event):void{ if (Accessibility.active){ Accessibility.sendEvent(master, 0, EVENT_OBJECT_FOCUS); Accessibility.sendEvent(master, 0, EVENT_OBJECT_VALUECHANGE, true); }; } override public function get_accRole(_arg1:uint):uint{ if (_arg1 == 0){ return (role); }; if (_arg1 == 2){ return (ROLE_SYSTEM_INDICATOR); }; return (ROLE_SYSTEM_PUSHBUTTON); } override public function get_accValue(_arg1:uint):String{ if (_arg1 == 0){ return ((Math.round(_vc.playheadPercentage).toString() + "%")); }; return (null); } protected function get eventsToHandle():Array{ return ([]); } public static function createAccessibilityImplementation(_arg1:Sprite):void{ _arg1.accessibilityImplementation = new SeekBarAccImpl(_arg1); } public static function enableAccessibility():void{ } } }//package fl.video
Section 44
//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 45
//SMILManager (fl.video.SMILManager) package fl.video { import flash.events.*; import flash.net.*; public class SMILManager { flvplayback_internal var width:int; flvplayback_internal var xmlLoader:URLLoader; flvplayback_internal var xml:XML; flvplayback_internal var height:int; private var _url:String; flvplayback_internal var videoTags:Array; flvplayback_internal var baseURLAttr:Array; private var _owner:INCManager; public static const VERSION:String = "2.1.0.20"; public static const SHORT_VERSION:String = "2.1"; public function SMILManager(_arg1:INCManager){ _owner = _arg1; width = -1; height = -1; } 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 parseVideo(_arg1:XML):Object{ var _local2:Object = 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 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 _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]; var _local3:String = _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 _local3:Number; var _local4:Number; var _local2:Object = /^((\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 46
//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 47
//UIManager (fl.video.UIManager) package fl.video { import flash.display.*; import flash.events.*; import flash.geom.*; import flash.net.*; import flash.utils.*; import flash.accessibility.*; import flash.system.*; import flash.ui.*; 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 endTabIndex:int; 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 _bufferingBarHides:Boolean; flvplayback_internal var videoRight:Number; flvplayback_internal var placeholderRight:Number; flvplayback_internal var cachedSoundLevel:Number; flvplayback_internal var videoBottom:Number; flvplayback_internal var border_mc:DisplayObject; flvplayback_internal var _skinFadingTimer:Timer; flvplayback_internal var borderAlpha:Number; flvplayback_internal var borderColorTransform:ColorTransform; flvplayback_internal var borderColor:uint; flvplayback_internal var __visible:Boolean; flvplayback_internal var cacheFLVPlaybackLocation:Rectangle; flvplayback_internal var cacheFLVPlaybackIndex:int; flvplayback_internal var _skinReady:Boolean; flvplayback_internal var hitTarget_mc:Sprite; flvplayback_internal var controls:Array; flvplayback_internal var cacheFLVPlaybackAlign:Array; flvplayback_internal var startTabIndex:int; 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 focusRect:Boolean;// = true 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 accessibilityPropertyNames:Array; 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 SHOW_CONTROLS_BUTTON:Number = 30; public static const FULL_SCREEN_BUTTON:int = 14; public static const BUFFERING_BAR:int = 16; public static const VERSION:String = "2.1.0.20"; 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 CAPTIONS_ON_BUTTON:Number = 28; 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 CAPTIONS_OFF_BUTTON:Number = 29; 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 HIDE_CONTROLS_BUTTON:Number = 31; 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; accessibilityPropertyNames = ["Pause", "Play", "Stop", "Seek Bar", null, "Back", "Forward", "Go Full Screen", "Exit Full Screen", "Volume Mute On", "Volume Mute Off", "Volume", null, null, null, null, "Buffering", null, null, null, null, null, null, null, null, null, null, null, "Captions Off", "Captions On", "Show Video Player Controls", "Hide Video Player Controls"]; 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){ _vc.stage.addEventListener(FocusEvent.MOUSE_FOCUS_CHANGE, handleMouseFocusChangeEvent); 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); }; focusRect = isFocusRectActive(); 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 ctrl = _arg1; var type = _arg2; var percent = _arg3; try { if ((((ctrl["positionBar"] is Function)) && (ctrl["positionBar"](type, percent)))){ return; }; } catch(re2:ReferenceError) { }; var ctrlData:ControlData = ctrlDataDict[ctrl]; var bar:DisplayObject = ctrlData[(type + "_mc")]; if (bar == null){ return; }; var barData:ControlData = 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, _arg2:DisplayObject):Sprite{ var _local3:String = skinClassPrefixes[_arg1]; if (_local3 == null){ return (null); }; var _local4:Sprite = new Sprite(); var _local5:ControlData = new ControlData(this, _local4, null, _arg1); ctrlDataDict[_local4] = _local5; _local5.state_mc = new Array(); _local5.state_mc[NORMAL_STATE] = setupButtonSkinState(_local4, skinTemplate, (_local3 + "NormalState")); _local5.state_mc[NORMAL_STATE].visible = true; _local5.state_mc[OVER_STATE] = setupButtonSkinState(_local4, skinTemplate, (_local3 + "OverState"), _local5.state_mc[NORMAL_STATE]); _local5.state_mc[DOWN_STATE] = setupButtonSkinState(_local4, skinTemplate, (_local3 + "DownState"), _local5.state_mc[NORMAL_STATE]); _local5.disabled_mc = setupButtonSkinState(_local4, skinTemplate, (_local3 + "DisabledState"), _local5.state_mc[NORMAL_STATE]); if ((_arg2 is InteractiveObject)){ _local4.tabIndex = InteractiveObject(_arg2).tabIndex; }; return (_local4); } public function get skinReady():Boolean{ return (_skinReady); } public function get skinAutoHide():Boolean{ return (_skinAutoHide); } flvplayback_internal function dispatchMessage(_arg1:int):void{ var ctrl:Sprite; var ctrlData:ControlData; var handle:Sprite; var index = _arg1; if ((((index == SEEK_BAR_HANDLE)) || ((index == SEEK_BAR_HIT)))){ _vc._scrubStart(); }; var cachedActivePlayerIndex:int = _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))))) || (((_fullScreenAccel) && (((!((_vc.registrationWidth == _vc.stage.fullScreenSourceRect.width))) || (!((_vc.registrationHeight == _vc.stage.fullScreenSourceRect.height))))))))) || (((!(_fullScreenAccel)) && (((!((_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 = _vc.activeVideoPlayerIndex; _vc.activeVideoPlayerIndex = _vc.visibleVideoPlayerIndex; var _local3:Sprite = controls[SEEK_BAR]; if (_local3 == null){ return; }; var _local4:ControlData = ctrlDataDict[_local3]; calcPercentageFromHandle(_local3); var _local5:Number = _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; } private function handleMouseFocusChangeEvent(_arg1:FocusEvent):void{ var ctrlData:ControlData; var focusCtrlData:ControlData; var ctrl:Sprite; var setFocusedControl:Function; var event = _arg1; try { ctrlData = ctrlDataDict[event.relatedObject]; } catch(error:ReferenceError) { }; if (ctrlData == null){ return; }; var index:int = ctrlData.index; var currentFocus:InteractiveObject = (event.target.stage.focus as InteractiveObject); var focusControl:InteractiveObject; switch (index){ case PLAY_BUTTON: focusControl = (controls[PAUSE_BUTTON] as InteractiveObject); break; case PAUSE_BUTTON: focusControl = (controls[PLAY_BUTTON] as InteractiveObject); break; case STOP_BUTTON: case BACK_BUTTON: case FORWARD_BUTTON: case SEEK_BAR_HANDLE: case VOLUME_BAR_HANDLE: focusControl = (controls[event.relatedObject] as InteractiveObject); break; case SEEK_BAR_HIT: focusControl = (controls[SEEK_BAR_HANDLE] as InteractiveObject); break; case VOLUME_BAR_HIT: focusControl = (controls[VOLUME_BAR_HANDLE] as InteractiveObject); break; case MUTE_ON_BUTTON: focusControl = (controls[MUTE_OFF_BUTTON] as InteractiveObject); break; case MUTE_OFF_BUTTON: focusControl = (controls[MUTE_ON_BUTTON] as InteractiveObject); break; case FULL_SCREEN_ON_BUTTON: focusControl = (controls[FULL_SCREEN_OFF_BUTTON] as InteractiveObject); break; case FULL_SCREEN_OFF_BUTTON: focusControl = (controls[FULL_SCREEN_ON_BUTTON] as InteractiveObject); break; }; if (focusControl != null){ try { focusCtrlData = ctrlDataDict[focusControl]; focusCtrlData.cachedFocusRect = focusControl.focusRect; } catch(error:ReferenceError) { }; focusControl.focusRect = false; if (focusControl.visible){ focusControl.stage.focus = focusControl; focusControl.focusRect = focusCtrlData.cachedFocusRect; } else { ctrl = (event.currentTarget as Sprite); setFocusedControl = function (_arg1:Event):void{ if (_arg1.target.visible){ _arg1.target.stage.focus = _arg1.target; _arg1.target.focusRect = focusCtrlData.cachedFocusRect; _arg1.target.removeEventListener(Event.ENTER_FRAME, setFocusedControl); }; }; focusControl.addEventListener(Event.ENTER_FRAME, setFocusedControl); }; }; } 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 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; var dCopy:DisplayObject = new (dispObj["constructor"]); skin_mc.addChild(dCopy); var ctrlData:ControlData = new ControlData(this, dCopy, null, -1); ctrlDataDict[dCopy] = ctrlData; ctrlData.avatar = dispObj; customClips.push(dCopy); dCopy.accessibilityProperties = new AccessibilityProperties(); dCopy.accessibilityProperties.silent = true; 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); }; borderCopy.accessibilityProperties = new AccessibilityProperties(); borderCopy.accessibilityProperties.silent = true; skin_mc.addChild(borderCopy); borderPrevRect = null; }; }; } public function get fullScreenSkinDelay():int{ return (_skinAutoHideMotionTimeout); } flvplayback_internal function doBufferingDelay(_arg1:TimerEvent):void{ _bufferingDelayTimer.reset(); var _local2:int = _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 = controls[VOLUME_BAR]; if (_local2 == null){ return; }; var _local3:ControlData = ctrlDataDict[_local2]; calcPercentageFromHandle(_local2); var _local4:Number = _local3.percentage; var _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 isFocusRectActive():Boolean{ var i:int; var doc:DisplayObjectContainer; var child:DisplayObject; var classReference:Class; var c:*; var o:InteractiveObject = _vc.parent; while (o) { if ((o is DisplayObjectContainer)){ doc = DisplayObjectContainer(o); }; i = 0; while (i < doc.numChildren) { try { child = (doc.getChildAt(i) as DisplayObject); classReference = (getDefinitionByName("fl.core.UIComponent") as Class); if (((((!((child == null))) && (!((child == _vc))))) && ((child is classReference)))){ c = (child as classReference); if (c.focusManager.showFocusIndicator){ return (false); }; break; }; } catch(e:Error) { }; i = (i + 1); }; o = o.parent; }; return (true); } flvplayback_internal function fixUpBar(_arg1:DisplayObject, _arg2:String, _arg3:DisplayObject, _arg4:String):void{ var bar:DisplayObject; var definitionHolder = _arg1; var propPrefix = _arg2; var ctrl = _arg3; var name = _arg4; var ctrlData:ControlData = 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; var barData:ControlData = 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 ctrl = _arg1; var rect:Rectangle = new Rectangle(); if (ctrl == null){ return (rect); }; var ctrlData:ControlData = ctrlDataDict[ctrl]; if (ctrlData == null){ return (rect); }; if (ctrlData.avatar == null){ return (rect); }; var anchorRight:Boolean; var anchorLeft:Boolean; var anchorTop:Boolean; var anchorBottom:Boolean; 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 resetPlayPause():void{ if (controls[PLAY_PAUSE_BUTTON] == undefined){ return; }; var _local1:int = 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 index = _arg1; var ctrl = _arg2; if (ctrl == controls[index]){ return; }; if (ctrl){ ctrl.tabEnabled = false; }; 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; }; var ctrlData:ControlData = 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 bitmapCopyBorder():void{ 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; }; var _local1:Rectangle = 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 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 hookUpCustomComponents():void{ var i:int; var dispObj:DisplayObject; var name:String; var index:int; var ctrl:Sprite; focusRect = isFocusRectActive(); var searchHash:Object = new Object(); var doTheSearch:Boolean; 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 addButtonControl(_arg1:Sprite):void{ if (_arg1 == null){ return; }; var _local2:ControlData = ctrlDataDict[_arg1]; _arg1.buttonMode = true; _arg1.tabEnabled = true; _arg1.tabChildren = true; _arg1.focusRect = focusRect; _arg1.accessibilityProperties = new AccessibilityProperties(); _arg1.accessibilityProperties.forceSimple = true; _arg1.accessibilityProperties.silent = true; if (accessibilityPropertyNames[_local2.index] != null){ _arg1.accessibilityProperties.name = accessibilityPropertyNames[_local2.index]; _arg1.accessibilityProperties.silent = false; }; if ((((_local2.index == VOLUME_BAR_HIT)) || ((_local2.index == SEEK_BAR_HIT)))){ _arg1.buttonMode = false; _arg1.tabEnabled = false; _arg1.tabChildren = false; _arg1.focusRect = false; _arg1.accessibilityProperties.silent = true; }; if ((((_local2.index == VOLUME_BAR_HANDLE)) || ((_local2.index == SEEK_BAR_HANDLE)))){ _arg1.graphics.moveTo(0, -18); _arg1.graphics.lineStyle(0, 0, 0); _arg1.graphics.lineTo(0, -18); _arg1.buttonMode = false; _arg1.focusRect = true; _arg1.accessibilityProperties.silent = false; configureBarAccessibility(_local2.index); }; _arg1.mouseChildren = false; var _local3:int = _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); _arg1.addEventListener(KeyboardEvent.KEY_DOWN, handleKeyEvent); _arg1.addEventListener(KeyboardEvent.KEY_UP, handleKeyEvent); _arg1.addEventListener(FocusEvent.FOCUS_IN, handleFocusEvent); _arg1.addEventListener(FocusEvent.FOCUS_OUT, handleFocusEvent); if (_arg1.parent == skin_mc){ skinButtonControl(_arg1); } else { _arg1.addEventListener(Event.ENTER_FRAME, skinButtonControl); }; _vc.activeVideoPlayerIndex = _local3; } 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 (hitTarget_mc != null){ hitTarget_mc.graphics.clear(); hitTarget_mc.graphics.lineStyle(0, 0, 0); hitTarget_mc.graphics.drawRect(0, 0, _vc.width, _vc.height); }; 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 slideReveal:Boolean; var maskSprite:Sprite; var barData:ControlData; var ctrl = _arg1; var percent = _arg2; if (ctrl == null){ return; }; ctrlData = ctrlDataDict[ctrl]; var fill:DisplayObject = ctrlData.fill_mc; if (fill == null){ return; }; var mask:DisplayObject = 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); }; }; var fillData:ControlData = ctrlDataDict[fill]; var maskData:ControlData = 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{ if (_arg1 == null){ return; }; var _local2:ControlData = ctrlDataDict[_arg1]; if ((((_arg1["calcPercentageFromHandle"] is Function)) && (_arg1["calcPercentageFromHandle"]()))){ if (_local2.percentage < 0){ _local2.percentage = 0; }; if (_local2.percentage > 100){ _local2.percentage = 100; }; return; }; var _local3:Sprite = _local2.handle_mc; if (_local3 == null){ return; }; var _local4:ControlData = ctrlDataDict[_local3]; var _local5:Number = (isNaN(_local2.origWidth)) ? _arg1.width : _local2.origWidth; var _local6:Number = ((_local5 - _local4.rightMargin) - _local4.leftMargin); var _local7:Number = (_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 setTwoButtonHolderSkin(_arg1:int, _arg2:int, _arg3:String, _arg4:int, _arg5:String, _arg6:DisplayObject):Sprite{ var _local7:Sprite; var _local8:Sprite; var _local9:ControlData; _local8 = new Sprite(); _local9 = new ControlData(this, _local8, null, _arg1); ctrlDataDict[_local8] = _local9; skin_mc.addChild(_local8); _local7 = setupButtonSkin(_arg2, _arg6); _local7.name = _arg3; _local7.visible = true; _local8.addChild(_local7); _local7 = setupButtonSkin(_arg4, _arg6); _local7.name = _arg5; _local7.visible = false; _local8.addChild(_local7); return (_local8); } flvplayback_internal function handleRelease(_arg1:int):void{ var _local2:int = _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(); }; } public function set seekBarInterval(_arg1:Number):void{ if (_seekBarTimer.delay == _arg1){ return; }; _seekBarTimer.delay = _arg1; } 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; if (hitTarget_mc){ hitTarget_mc.accessibilityProperties.name = accessibilityPropertyNames[SHOW_CONTROLS_BUTTON]; }; } 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; }; }; if (hitTarget_mc){ hitTarget_mc.accessibilityProperties.name = (hit) ? accessibilityPropertyNames[HIDE_CONTROLS_BUTTON] : accessibilityPropertyNames[SHOW_CONTROLS_BUTTON]; }; }; }; } catch(se:SecurityError) { _skinAutoHideTimer.stop(); _skinFadingTimer.stop(); skin_mc.visible = __visible; skin_mc.alpha = 1; if (hitTarget_mc){ hitTarget_mc.accessibilityProperties.name = accessibilityPropertyNames[HIDE_CONTROLS_BUTTON]; }; }; if (((hitTarget_mc) && (Capabilities.hasAccessibility))){ Accessibility.updateProperties(); }; } flvplayback_internal function layoutControl(_arg1:DisplayObject):void{ var _local4:Sprite; var _local5:Rectangle; if (_arg1 == null){ return; }; var _local2:ControlData = ctrlDataDict[_arg1]; if (_local2 == null){ return; }; if (_local2.avatar == null){ return; }; var _local3:Rectangle = 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 positionHandle(_arg1:Sprite):void{ if (_arg1 == null){ return; }; if ((((_arg1["positionHandle"] is Function)) && (_arg1["positionHandle"]()))){ return; }; var _local2:ControlData = ctrlDataDict[_arg1]; var _local3:Sprite = _local2.handle_mc; if (_local3 == null){ return; }; var _local4:ControlData = ctrlDataDict[_local3]; var _local5:Number = (isNaN(_local2.origWidth)) ? _arg1.width : _local2.origWidth; var _local6:Number = ((_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 handleMouseUp(_arg1:MouseEvent):void{ var _local3:ControlData; var _local2:Sprite = 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; case FULL_SCREEN_OFF_BUTTON: case FULL_SCREEN_ON_BUTTON: dispatchMessage(_local3.index); 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); } flvplayback_internal function handleFocusEvent(_arg1:FocusEvent):void{ var _local2:ControlData = ctrlDataDict[_arg1.currentTarget]; if (_local2 == null){ return; }; switch (_arg1.type){ case FocusEvent.FOCUS_IN: switch (_arg1.target){ case controls[SEEK_BAR_HANDLE]: case controls[VOLUME_BAR_HANDLE]: _arg1.target.focusRect = false; break; }; _local2.state = OVER_STATE; break; case FocusEvent.FOCUS_OUT: switch (_arg1.target){ case controls[SEEK_BAR_HANDLE]: case controls[VOLUME_BAR_HANDLE]: _arg1.target.focusRect = true; break; case controls[STOP_BUTTON]: if (!_local2.enabled){ _arg1.target.tabEnabled = false; }; break; }; _local2.state = NORMAL_STATE; break; }; skinButtonControl(_arg1.currentTarget); } 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, _arg2); 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", _arg2); _local4 = ctrlDataDict[_local3]; break; case FULL_SCREEN_BUTTON: _local3 = setTwoButtonHolderSkin(_arg1, FULL_SCREEN_ON_BUTTON, "on_mc", FULL_SCREEN_OFF_BUTTON, "off_mc", _arg2); _local4 = ctrlDataDict[_local3]; break; case MUTE_BUTTON: _local3 = setTwoButtonHolderSkin(_arg1, MUTE_ON_BUTTON, "on_mc", MUTE_OFF_BUTTON, "off_mc", _arg2); _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; _local3.accessibilityProperties = new AccessibilityProperties(); _local3.accessibilityProperties.silent = true; }; 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; _local4.fill_mc.accessibilityProperties = new AccessibilityProperties(); _local4.fill_mc.accessibilityProperties.silent = true; _local3.accessibilityProperties = new AccessibilityProperties(); _local3.accessibilityProperties.silent = true; }; break; }; }; _local4.avatar = _arg2; ctrlDataDict[_local3] = _local4; delayedControls[_arg1] = _local3; } flvplayback_internal function configureBarAccessibility(_arg1:int):void{ switch (_arg1){ case SEEK_BAR_HANDLE: SeekBarAccImpl.createAccessibilityImplementation(controls[SEEK_BAR_HANDLE]); break; case VOLUME_BAR_HANDLE: VolumeBarAccImpl.createAccessibilityImplementation(controls[VOLUME_BAR_HANDLE]); break; }; } public function set bufferingBarHidesAndDisablesOthers(_arg1:Boolean):void{ _bufferingBarHides = _arg1; } flvplayback_internal function handleSoundEvent(_arg1:SoundEvent):void{ 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]); }; var _local2:Sprite = 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 ctrl = _arg1; if (ctrl == null){ return; }; var ctrlData:ControlData = ctrlDataDict[ctrl]; try { if ((((ctrl["stopHandleDrag"] is Function)) && (ctrl["stopHandleDrag"]()))){ ctrlData.isDragging = false; return; }; } catch(re:ReferenceError) { }; var handle:Sprite = ctrlData.handle_mc; if (handle == null){ return; }; handle.stopDrag(); ctrlData.isDragging = false; handle.stage.focus = handle; } 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; } public function set volumeBarScrubTolerance(_arg1:Number):void{ _volumeBarScrubTolerance = _arg1; } flvplayback_internal function calcBarMargins(_arg1:DisplayObject, _arg2:String, _arg3:Boolean):void{ var ctrl = _arg1; var type = _arg2; var symmetricMargins = _arg3; if (ctrl == null){ return; }; var ctrlData:ControlData = ctrlDataDict[ctrl]; var bar:DisplayObject = ctrlData[(type + "_mc")]; if (bar == null){ try { bar = ctrl[(type + "_mc")]; } catch(re:ReferenceError) { bar = null; }; if (bar == null){ return; }; ctrlData[(type + "_mc")] = bar; }; var barData:ControlData = 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(); }; } 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 finishAddBufferingBar(_arg1:Event=null):void{ if (_arg1 != null){ _arg1.currentTarget.removeEventListener(Event.ENTER_FRAME, finishAddBufferingBar); }; var _local2:Sprite = controls[BUFFERING_BAR]; calcBarMargins(_local2, "fill", true); fixUpBar(_local2, "fill", _local2, "fill_mc"); positionMaskedFill(_local2, 100); } flvplayback_internal function handleButtonEvent(_arg1:MouseEvent):void{ var topLevel:DisplayObject; var e = _arg1; var ctrlData:ControlData = 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: case FULL_SCREEN_OFF_BUTTON: case FULL_SCREEN_ON_BUTTON: 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 = 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 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); }; var ctrlData:ControlData = 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{ if (_controlsEnabled == _arg1){ return; }; _controlsEnabled = _arg1; var _local2:int; while (_local2 < NUM_BUTTONS) { skinButtonControl(controls[_local2]); _local2++; }; } flvplayback_internal function setupSkinAutoHide(_arg1:Boolean):void{ var uiMgr:UIManager; var clickHandler:Function; var doFade = _arg1; if (((_skinAutoHide) && (!((skin_mc == null))))){ if (!hitTarget_mc){ hitTarget_mc = new Sprite(); hitTarget_mc.accessibilityProperties = new AccessibilityProperties(); hitTarget_mc.accessibilityProperties.name = accessibilityPropertyNames[SHOW_CONTROLS_BUTTON]; customClips.push(hitTarget_mc); uiMgr = this; clickHandler = function (_arg1):void{ if (_arg1.type == FocusEvent.FOCUS_IN){ uiMgr._skinAutoHide = false; } else { if (_arg1.type == MouseEvent.CLICK){ uiMgr._skinAutoHide = !(uiMgr._skinAutoHide); }; }; uiMgr.setupSkinAutoHide(true); if (uiMgr._skinAutoHide){ _arg1.target.accessibilityProperties.name = accessibilityPropertyNames[SHOW_CONTROLS_BUTTON]; } else { _arg1.target.accessibilityProperties.name = accessibilityPropertyNames[HIDE_CONTROLS_BUTTON]; }; if (Accessibility.active){ Accessibility.updateProperties(); }; }; hitTarget_mc.useHandCursor = false; hitTarget_mc.buttonMode = true; hitTarget_mc.tabEnabled = true; hitTarget_mc.tabChildren = true; hitTarget_mc.focusRect = true; hitTarget_mc.addEventListener(FocusEvent.FOCUS_IN, clickHandler); hitTarget_mc.addEventListener(MouseEvent.CLICK, clickHandler); hitTarget_mc.accessibilityProperties.silent = _fullScreen; hitTarget_mc.tabEnabled = !(_fullScreen); if (Accessibility.active){ Accessibility.updateProperties(); }; _vc.addChild(hitTarget_mc); }; hitTarget_mc.graphics.clear(); hitTarget_mc.graphics.lineStyle(0, 0xFF0000, 0); hitTarget_mc.graphics.drawRect(0, 0, _vc.width, _vc.height); skinAutoHideHitTest(null, doFade); _skinAutoHideTimer.start(); } else { if (skin_mc != null){ if (((((((doFade) && ((_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 get skin():String{ return (_skin); } flvplayback_internal function finishAddBarControl(_arg1:Object):void{ var ctrl:Sprite; 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); }; var ctrlData:ControlData = 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); ctrl.accessibilityProperties = new AccessibilityProperties(); ctrl.accessibilityProperties.silent = true; } public function get fullScreenBackgroundColor():uint{ return (_fullScreenBgColor); } 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) { }; }; } 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 ((((part is InteractiveObject)) && ((partAvatar is InteractiveObject)))){ InteractiveObject(part).tabIndex = InteractiveObject(partAvatar).tabIndex; }; }; }; }; if (((required) && ((part == null)))){ throw (new VideoError(VideoError.MISSING_SKIN_STYLE, skinName)); }; if (part != null){ part.accessibilityProperties = new AccessibilityProperties(); part.accessibilityProperties.silent = true; }; return (part); } flvplayback_internal function startHandleDrag(_arg1:Sprite):void{ var ctrl = _arg1; if (ctrl == null){ return; }; var ctrlData:ControlData = ctrlDataDict[ctrl]; try { if ((((ctrl["startHandleDrag"] is Function)) && (ctrl["startHandleDrag"]()))){ ctrlData.isDragging = true; return; }; } catch(re:ReferenceError) { }; var handle:Sprite = ctrlData.handle_mc; if (handle == null){ return; }; var handleData:ControlData = ctrlDataDict[handle]; var theY:Number = (ctrl.y + handleData.origY); var theWidth:Number = (isNaN(ctrlData.origWidth)) ? ctrl.width : ctrlData.origWidth; var bounds:Rectangle = new Rectangle((ctrl.x + handleData.leftMargin), theY, (theWidth - handleData.rightMargin), 0); handle.startDrag(false, bounds); ctrlData.isDragging = true; handle.focusRect = false; handle.stage.focus = handle; } 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 handleKeyEvent(_arg1:KeyboardEvent):void{ var ctrlData:ControlData; var focusControl:InteractiveObject; var percent:Number; var nearestCuePoint:Object; var nextCuePoint:Object; var wasMuted:Boolean; var num:Number; var ctrl:Sprite; var setFocusedControl:Function; var event = _arg1; ctrlData = ctrlDataDict[event.currentTarget]; var k:int = event.keyCode; var ka:int = event.charCode; var kaBool:Boolean = (((ka >= 48)) && ((ka <= 57))); ka = int(String.fromCharCode(event.charCode)); switch (event.type){ case KeyboardEvent.KEY_DOWN: switch (event.target){ case controls[SEEK_BAR_HANDLE]: case controls[VOLUME_BAR_HANDLE]: if (((!((k == Keyboard.TAB))) && ((((((((((((((((((k == Keyboard.UP)) || ((k == Keyboard.DOWN)))) || ((k == Keyboard.LEFT)))) || ((k == Keyboard.RIGHT)))) || ((k == Keyboard.PAGE_UP)))) || ((k == Keyboard.PAGE_DOWN)))) || ((k == Keyboard.HOME)))) || ((k == Keyboard.END)))) || (((!(isNaN(ka))) && (kaBool))))))){ focusControl = (event.target as InteractiveObject); focusControl.stage.focus = focusControl; if (event.target == controls[SEEK_BAR_HANDLE]){ percent = _vc.playheadPercentage; nearestCuePoint = _vc.findNearestCuePoint(_vc.playheadTime); if ((((k == Keyboard.LEFT)) || ((k == Keyboard.DOWN)))){ percent = (percent - (_vc.seekBarScrubTolerance * 2)); _vc.playheadPercentage = Math.max(percent, 0); } else { if ((((k == Keyboard.RIGHT)) || ((k == Keyboard.UP)))){ if (_vc.playheadPercentage >= 99){ return; }; if (((!((nearestCuePoint == null))) && ((nearestCuePoint.index < ((nearestCuePoint.array as Array).length - 1))))){ try { nextCuePoint = _vc.findCuePoint(nearestCuePoint.array[(nearestCuePoint.index + 1)]); if (((nextCuePoint) && (_vc.isFLVCuePointEnabled(nextCuePoint)))){ if (isNaN(Number(_vc.metadata.videocodecid))){ _vc.playheadPercentage = Math.max(((nextCuePoint.time / _vc.totalTime) * 100), Math.min(99, (_vc.playheadPercentage + (_vc.seekBarScrubTolerance * 2)))); } else { _vc.playheadTime = nextCuePoint.time; }; }; } catch(err:Error) { }; } else { percent = (percent + _vc.seekBarScrubTolerance); _vc.playheadPercentage = Math.min(99, percent); }; } else { if ((((k == Keyboard.PAGE_UP)) || ((k == Keyboard.HOME)))){ _vc.playheadPercentage = 0; } else { if ((((k == Keyboard.PAGE_DOWN)) || ((k == Keyboard.END)))){ _vc.playheadPercentage = 99; }; }; }; }; } else { wasMuted = _isMuted; num = (_isMuted) ? (Math.round((cachedSoundLevel * 1000)) / 100) : (Math.round((_vc.volume * 1000)) / 100); if ((((k == Keyboard.LEFT)) || ((k == Keyboard.DOWN)))){ if (Math.floor(num) != num){ _vc.volume = (Math.floor(num) / 10); } else { _vc.volume = Math.max(0, ((num - 1) / 10)); }; } else { if ((((k == Keyboard.RIGHT)) || ((k == Keyboard.UP)))){ if (Math.round(num) != num){ _vc.volume = (Math.round(num) / 10); } else { _vc.volume = Math.min(1, ((num + 1) / 10)); }; } else { if ((((k == Keyboard.PAGE_UP)) || ((k == Keyboard.HOME)))){ _vc.volume = 1; } else { if ((((k == Keyboard.PAGE_DOWN)) || ((k == Keyboard.END)))){ _vc.volume = 0; } else { if (((!(isNaN(ka))) && (kaBool))){ _vc.volume = Math.min(1, ((ka + 1) / 10)); }; }; }; }; }; cachedSoundLevel = _vc.volume; if (wasMuted){ _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 controls[PAUSE_BUTTON]: if ((((k == Keyboard.SPACE)) || ((k == Keyboard.ENTER)))){ ctrlData.state = DOWN_STATE; if (!event.target.focusRect){ dispatchMessage(ctrlData.index); }; focusControl = (controls[PLAY_BUTTON] as InteractiveObject); }; break; case controls[PLAY_BUTTON]: if ((((k == Keyboard.SPACE)) || ((k == Keyboard.ENTER)))){ ctrlData.state = DOWN_STATE; if (!event.target.focusRect){ dispatchMessage(ctrlData.index); }; focusControl = (controls[PAUSE_BUTTON] as InteractiveObject); }; break; case controls[STOP_BUTTON]: case controls[BACK_BUTTON]: case controls[FORWARD_BUTTON]: if ((((k == Keyboard.SPACE)) || ((k == Keyboard.ENTER)))){ ctrlData.state = DOWN_STATE; event.target.tabEnabled = true; if (!event.target.focusRect){ dispatchMessage(ctrlData.index); }; focusControl = (event.target as InteractiveObject); }; break; case controls[MUTE_ON_BUTTON]: if ((((k == Keyboard.SPACE)) || ((k == Keyboard.ENTER)))){ ctrlData.state = DOWN_STATE; if (!event.target.focusRect){ dispatchMessage(ctrlData.index); }; focusControl = (controls[MUTE_OFF_BUTTON] as InteractiveObject); }; break; case controls[MUTE_OFF_BUTTON]: if ((((k == Keyboard.SPACE)) || ((k == Keyboard.ENTER)))){ ctrlData.state = DOWN_STATE; if (!event.target.focusRect){ dispatchMessage(ctrlData.index); }; focusControl = (controls[MUTE_ON_BUTTON] as InteractiveObject); }; break; case controls[FULL_SCREEN_ON_BUTTON]: if ((((k == Keyboard.SPACE)) || ((k == Keyboard.ENTER)))){ ctrlData.state = DOWN_STATE; dispatchMessage(FULL_SCREEN_ON_BUTTON); }; break; case controls[FULL_SCREEN_OFF_BUTTON]: if ((((k == Keyboard.SPACE)) || ((k == Keyboard.ENTER)))){ ctrlData.state = DOWN_STATE; dispatchMessage(FULL_SCREEN_OFF_BUTTON); }; break; }; skinButtonControl(event.currentTarget); break; case KeyboardEvent.KEY_UP: switch (event.target){ case controls[SEEK_BAR_HANDLE]: case controls[VOLUME_BAR_HANDLE]: if (((!((k == Keyboard.TAB))) && ((((((((((((((((k == Keyboard.UP)) || ((k == Keyboard.DOWN)))) || ((k == Keyboard.LEFT)))) || ((k == Keyboard.RIGHT)))) || ((k == Keyboard.PAGE_UP)))) || ((k == Keyboard.PAGE_DOWN)))) || ((k == Keyboard.HOME)))) || ((k == Keyboard.END)))))){ focusControl = (event.target as InteractiveObject); focusControl.stage.focus = focusControl; }; break; default: ctrlData.state = OVER_STATE; break; }; break; }; if (focusControl != null){ if (focusControl.visible){ ctrlData.state = NORMAL_STATE; if (!focusControl.tabEnabled){ focusControl.tabEnabled = true; }; focusControl.stage.focus = focusControl; } else { ctrl = (event.currentTarget as Sprite); setFocusedControl = function (_arg1:Event):void{ if (_arg1.target.visible){ ctrlData.state = NORMAL_STATE; if (!_arg1.target.tabEnabled){ _arg1.target.tabEnabled = true; }; _arg1.target.stage.focus = _arg1.target; _arg1.target.removeEventListener(Event.ENTER_FRAME, setFocusedControl); }; }; focusControl.addEventListener(Event.ENTER_FRAME, setFocusedControl); }; }; } flvplayback_internal function handleIVPEvent(_arg1:IVPEvent):void{ 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; }; var _local2:uint = _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 layoutSkin():void{ 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; }; var video_mc:DisplayObject = 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 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 setEnabledAndVisibleForState(_arg1:int, _arg2:String):void{ var _local6:ControlData; var _local7:Boolean; var _local8:ControlData; var _local9:ControlData; var _local10:ControlData; var _local11:ControlData; var _local3:int = _vc.activeVideoPlayerIndex; _vc.activeVideoPlayerIndex = _vc.visibleVideoPlayerIndex; var _local4:String = _arg2; if ((((_local4 == VideoState.BUFFERING)) && (!(_bufferingOn)))){ _local4 = VideoState.PLAYING; }; var _local5:Sprite = 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; _local5.tabEnabled = false; break; case VideoState.PAUSED: case VideoState.PLAYING: case VideoState.BUFFERING: _local6.enabled = true; _local5.tabEnabled = true; break; }; break; case BACK_BUTTON: case FORWARD_BUTTON: switch (_local4){ case VideoState.BUFFERING: _local6.enabled = ((!(_bufferingBarHides)) || ((controls[BUFFERING_BAR] == undefined))); _local5.tabEnabled = ((!(_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; if (_fullScreenAccel){ _vc.setSize(_vc.stage.fullScreenSourceRect.width, _vc.stage.fullScreenSourceRect.height); } else { _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); if (_fullScreenAccel){ fullScreenBG.graphics.drawRect(0, 0, _vc.stage.fullScreenSourceRect.width, _vc.stage.fullScreenSourceRect.height); } else { fullScreenBG.graphics.drawRect(0, 0, _vc.stage.stageWidth, _vc.stage.stageHeight); }; layoutSkin(); setupSkinAutoHide(false); if (hitTarget_mc != null){ hitTarget_mc.graphics.clear(); hitTarget_mc.graphics.lineStyle(0, 0, 0); if (_fullScreenAccel){ hitTarget_mc.graphics.drawRect(0, 0, _vc.stage.fullScreenSourceRect.width, _vc.stage.fullScreenSourceRect.height); } else { hitTarget_mc.graphics.drawRect(0, 0, _vc.stage.stageWidth, _vc.stage.stageHeight); }; }; } 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 function assignTabIndexes(_arg1:int):int{ var controlsSlice:Array; var customSlice:Array; var sortedControls:Array; var i:int; var ctrl:Sprite; var startTabbing = _arg1; if (startTabbing){ startTabIndex = startTabbing; endTabIndex = (startTabIndex + 1); } else { if (_vc.tabIndex){ startTabIndex = _vc.tabIndex; endTabIndex = (startTabIndex + 1); } else { return (endTabIndex); }; }; var sortByPosition:Function = function (_arg1:DisplayObject, _arg2:DisplayObject):int{ var _local3:Rectangle = _arg1.getBounds(_vc); var _local4:Rectangle = _arg2.getBounds(_vc); if (_local3.x > _local4.x){ return (1); }; if (_local3.x < _local4.x){ return (-1); }; if (_local3.y > _local4.y){ return (-1); }; if (_local3.y < _local4.y){ return (1); }; return (0); }; try { controlsSlice = controls.slice(); if (((customClips) && ((customClips.length > 0)))){ customSlice = customClips.slice(); }; sortedControls = (customSlice) ? controlsSlice.concat(customSlice) : controlsSlice; sortedControls.sort(sortByPosition); while (i < sortedControls.length) { ctrl = (sortedControls[i] as Sprite); ctrl.tabIndex = ++endTabIndex; if (!ctrl.tabEnabled){ ctrl.tabEnabled = false; }; i = (i + 1); }; } catch(err:Error) { }; return (++endTabIndex); } 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{ layoutNameToIndexMappings = new Object(); var _local1:int; while (_local1 < layoutNameArray.length) { if (layoutNameArray[_local1] != null){ layoutNameToIndexMappings[layoutNameArray[_local1]] = _local1; }; _local1++; }; } } }//package fl.video
Section 48
//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 49
//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.20"; 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 50
//VideoEvent (fl.video.VideoEvent) package fl.video { import flash.events.*; public class VideoEvent extends Event implements IVPEvent { private var _playheadTime:Number; private var _vp:uint; 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 get playheadTime():Number{ return (_playheadTime); } public function set playheadTime(_arg1:Number):void{ _playheadTime = _arg1; } public function set state(_arg1:String):void{ _state = _arg1; } public function get state():String{ return (_state); } public function set vp(_arg1:uint):void{ _vp = _arg1; } public function get vp():uint{ return (_vp); } override public function clone():Event{ return (new VideoEvent(type, bubbles, cancelable, state, playheadTime, vp)); } } }//package fl.video
Section 51
//VideoPlayer (fl.video.VideoPlayer) package fl.video { import flash.events.*; import flash.geom.*; import flash.net.*; 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; protected var _isLive:Boolean; flvplayback_internal var _readyDispatched:Boolean; flvplayback_internal var lastUpdateTimeStuckCount:Number; protected var _ns:NetStream; protected var _streamLength:Number; flvplayback_internal var _bufferState:String; flvplayback_internal var _rtmpDoSeekTimer:Timer; flvplayback_internal var lastUpdateTimeStuckCountMax:int;// = 10 protected var _contentPath:String; flvplayback_internal var _lastUpdateTime:Number; protected var _metadata:Object; protected var __visible:Boolean; flvplayback_internal var autoResizeMetadataDelayMax:Number;// = 5 protected var _scaleMode:String; 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 _startingPlay:Boolean; flvplayback_internal var httpDoSeekMaxCount:Number;// = 4 flvplayback_internal var _httpDoSeekTimer:Timer; flvplayback_internal var baselineProgressTime:Number; flvplayback_internal var _autoResizeTimer:Timer; flvplayback_internal var _autoResizeDone:Boolean; 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 _delayedBufferingTimer:Timer; flvplayback_internal var waitingForEnough:Boolean; flvplayback_internal var _hiddenForResizeMetadataDelay:Number; protected var _registrationHeight: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.20"; 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){ 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 = ((_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); }; }; } 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 = 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": closeNS(false); 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 get ncMgr():INCManager{ if (_ncMgr == null){ createINCManager(); }; return (_ncMgr); } public function set progressInterval(_arg1:Number):void{ _updateProgressTimer.delay = _arg1; } flvplayback_internal function createINCManager():void{ var theClass:Class; 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 _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; var _local2:Boolean = _readyDispatched; _readyDispatched = true; _local3 = videoWidth; _local4 = videoHeight; _readyDispatched = _local2; switch (_scaleMode){ case VideoScaleMode.NO_SCALE: super.width = Math.round(_local3); super.height = Math.round(_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 = Math.round((_registrationX + ((_registrationWidth - width) / 2))); break; case VideoAlign.LEFT: case VideoAlign.TOP_LEFT: case VideoAlign.BOTTOM_LEFT: super.x = Math.round(_registrationX); break; case VideoAlign.RIGHT: case VideoAlign.TOP_RIGHT: case VideoAlign.BOTTOM_RIGHT: super.x = Math.round((_registrationX + (_registrationWidth - width))); break; }; switch (_align){ case VideoAlign.CENTER: case VideoAlign.LEFT: case VideoAlign.RIGHT: default: super.y = Math.round((_registrationY + ((_registrationHeight - height) / 2))); break; case VideoAlign.TOP: case VideoAlign.TOP_LEFT: case VideoAlign.TOP_RIGHT: super.y = Math.round(_registrationY); break; case VideoAlign.BOTTOM: case VideoAlign.BOTTOM_LEFT: case VideoAlign.BOTTOM_RIGHT: super.y = Math.round((_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 set volume(_arg1:Number):void{ var _local2:SoundTransform = 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 onCuePoint(_arg1:Object):void{ if (((!(_hiddenForResize)) || (((!(isNaN(_hiddenRewindPlayheadTime))) && ((playheadTime < _hiddenRewindPlayheadTime)))))){ dispatchEvent(new MetadataEvent(MetadataEvent.CUE_POINT, false, false, _arg1)); }; } 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; }; } flvplayback_internal function httpDoSeek(_arg1:TimerEvent):void{ var _local2:Boolean = (((_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(); }; } 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; }; } public function get bytesLoaded():uint{ if ((((_ns == null)) || (_ncMgr.isRTMP))){ return (uint.MIN_VALUE); }; return (_ns.bytesLoaded); } public function set bufferTime(_arg1:Number):void{ _bufferTime = _arg1; if (_ns != null){ _ns.bufferTime = _bufferTime; }; } public function get netConnection():NetConnection{ if (_ncMgr != null){ return (_ncMgr.netConnection); }; return (null); } 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 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 set registrationHeight(_arg1:Number):void{ height = _arg1; } override public function get visible():Boolean{ if (!_hiddenForResize){ __visible = super.visible; }; return (__visible); } public function get registrationWidth():Number{ return (_registrationWidth); } 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; }; } 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 get idleTimeout():Number{ return (_idleTimeoutTimer.delay); } public function get playheadUpdateInterval():Number{ return (_updateTimeTimer.delay); } 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); }; } 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); }; } 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 _pause(_arg1:Boolean):void{ _atEndCheckPlayhead = playheadTime; _rtmpDoStopAtEndTimer.reset(); if (_arg1){ _ns.pause(); } else { _ns.resume(); }; } flvplayback_internal function createNetStreamClient():Object{ var theClass:Class; var theInst:Object; 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 soundTransform():SoundTransform{ if (_ns != null){ _soundTransform = _ns.soundTransform; }; var _local1:SoundTransform = 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 volume():Number{ return (soundTransform.volume); } 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 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 ncReconnected():void{ if ((((_ncMgr == null)) || ((_ncMgr.netConnection == null)))){ setState(VideoState.CONNECTION_ERROR); } else { _ns = null; _state = VideoState.STOPPED; execQueuedCmds(); }; } public function get registrationHeight():Number{ return (_registrationHeight); } public function get autoRewind():Boolean{ return (_autoRewind); } 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{ if (_arg1 == _state){ return; }; _hiddenRewindPlayheadTime = NaN; _cachedState = _state; _cachedPlayheadTime = playheadTime; _state = _arg1; var _local3:String = _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; } 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); } public function set registrationX(_arg1:Number):void{ var _local2:Number; if (_registrationX != _arg1){ _local2 = (_arg1 - _registrationX); _registrationX = _arg1; this.x = (this.x + _local2); }; } flvplayback_internal function doUpdateProgress(_arg1:TimerEvent):void{ if (_ns == null){ return; }; var _local2:uint = _ns.bytesLoaded; var _local3:uint = _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); } public function set registrationY(_arg1:Number):void{ var _local2:Number; if (_registrationY != _arg1){ _local2 = (_arg1 - _registrationY); _registrationY = _arg1; this.y = (this.y + _local2); }; } 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 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; }; } public function get isRTMP():Boolean{ if (_ncMgr == null){ return (false); }; return (_ncMgr.isRTMP); } 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 bytesTotal():uint{ if ((((_ns == null)) || (_ncMgr.isRTMP))){ return (uint.MAX_VALUE); }; return (_ns.bytesTotal); } 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{ _ns = null; var _local1:NetStream = 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; }; } public function set playheadUpdateInterval(_arg1:Number):void{ _updateTimeTimer.delay = _arg1; } flvplayback_internal function _load(_arg1:String, _arg2:Number, _arg3:Boolean):void{ _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(); }; var _local4:Boolean = _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; } 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 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); } 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)); } 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; }; }; }; } } }//package fl.video
Section 52
//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 get owner():VideoPlayer{ return (_owner); } public function onCuePoint(_arg1:Object, ... _args):void{ _arg1.name; _arg1.time; _arg1.type; _owner.onCuePoint(_arg1); } public function onMetaData(_arg1:Object, ... _args):void{ _arg1.duration; _arg1.width; _arg1.height; _owner.onMetaData(_arg1); gotMetadata = true; } } }//package fl.video
Section 53
//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 totalTimeSet:Boolean; public var owner:VideoPlayer; public var isLive:Boolean; public var cmdQueue:Array; public var totalTime:Number; 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 54
//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; } public function set vp(_arg1:uint):void{ _vp = _arg1; } public function get vp():uint{ return (_vp); } override public function clone():Event{ return (new VideoProgressEvent(type, bubbles, cancelable, bytesLoaded, bytesTotal, vp)); } } }//package fl.video
Section 55
//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 56
//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 57
//VolumeBarAccImpl (fl.video.VolumeBarAccImpl) package fl.video { import flash.display.*; import flash.events.*; import flash.utils.*; import flash.accessibility.*; public class VolumeBarAccImpl extends AccessibilityImplementation { protected var master:Sprite; protected var role:uint; private var _vc:FLVPlayback; private static const ROLE_SYSTEM_INDICATOR:uint = 39; private static const ROLE_SLIDER:uint = 51; private static const STATE_SYSTEM_FOCUSABLE:uint = 0x100000; private static const EVENT_OBJECT_SELECTION:uint = 32774; private static const ROLE_SYSTEM_PUSHBUTTON:uint = 43; private static const STATE_SYSTEM_FOCUSED:uint = 4; private static const STATE_SYSTEM_SELECTABLE:uint = 0x200000; private static const ROLE_WINDOW:uint = 9; private static const EVENT_OBJECT_FOCUS:uint = 32773; private static const STATE_SYSTEM_SELECTED:uint = 2; private static const EVENT_OBJECT_VALUECHANGE:uint = 32782; private static const EVENT_OBJECT_LOCATIONCHANGE:uint = 32779; private static const STATE_SYSTEM_NORMAL:uint = 0; private static const STATE_SYSTEM_UNAVAILABLE:uint = 1; public function VolumeBarAccImpl(_arg1:Sprite){ var n:int; var i:int; var sprite = _arg1; super(); stub = false; master = sprite; if (!master.accessibilityProperties){ master.accessibilityProperties = new AccessibilityProperties(); }; master.accessibilityProperties.forceSimple = true; var events:Array = eventsToHandle; if (events){ n = events.length; i = 0; while (i < n) { master.addEventListener(events[i], eventHandler); i = (i + 1); }; }; master.addEventListener(FocusEvent.FOCUS_IN, focusInHandler); try { _vc = Object(master).uiMgr._vc; _vc.addEventListener(SoundEvent.SOUND_UPDATE, eventHandler); } catch(e:Error) { }; role = VolumeBarAccImpl.ROLE_SLIDER; } override public function get_accState(_arg1:uint):uint{ var _local2:uint = getState(_arg1); return (_local2); } protected function getName(_arg1:uint):String{ var _local2 = ""; switch (_arg1){ case 1: _local2 = "Page Left"; break; case 2: _local2 = "Position"; break; case 3: _local2 = "Page Right"; break; case 0: _local2 = ""; break; }; return (_local2); } override public function get_accName(_arg1:uint):String{ var _local2 = ""; if ((((((((_arg1 == 0)) && (master.accessibilityProperties))) && (master.accessibilityProperties.name))) && (!((master.accessibilityProperties.name == ""))))){ _local2 = (_local2 + (master.accessibilityProperties.name + " ")); }; _local2 = (_local2 + (getName(_arg1) + getStatusName())); return ((((!((_local2 == null))) && (!((_local2 == ""))))) ? _local2 : null); } override public function get_accDefaultAction(_arg1:uint):String{ if ((((_arg1 == 1)) || ((_arg1 == 3)))){ return ("Press"); }; return (null); } protected function getState(_arg1:uint):uint{ var _local2:uint = STATE_SYSTEM_NORMAL; if (_arg1 == 0){ if (((!(master.mouseEnabled)) || (!(master.tabEnabled)))){ _local2 = (_local2 | STATE_SYSTEM_UNAVAILABLE); } else { _local2 = (_local2 | STATE_SYSTEM_FOCUSABLE); }; if (Sprite(master).stage.focus == master){ _local2 = (_local2 | STATE_SYSTEM_FOCUSED); }; }; return (_local2); } override public function accDoDefaultAction(_arg1:uint):void{ var _local2:UIManager = (_vc.uiMgr as UIManager); var _local3:Boolean = _local2._isMuted; var _local4:Number = (_local3) ? (Math.round((_local2.cachedSoundLevel * 1000)) / 100) : (Math.round((_vc.volume * 1000)) / 100); if (_arg1 == 1){ if (Math.floor(_local4) != _local4){ _vc.volume = (Math.floor(_local4) / 10); } else { _vc.volume = Math.max(0, ((_local4 - 1) / 10)); }; } else { if (_arg1 == 3){ if (Math.round(_local4) != _local4){ _vc.volume = (Math.round(_local4) / 10); } else { _vc.volume = Math.min(1, ((_local4 + 1) / 10)); }; }; }; _local2.cachedSoundLevel = _vc.volume; if (_local3){ _local2._isMuted = true; _local2.cachedSoundLevel = _vc.volume; _vc.volume = 0; _local2.setEnabledAndVisibleForState(UIManager.MUTE_OFF_BUTTON, VideoState.PLAYING); _local2.skinButtonControl(_local2.controls[UIManager.MUTE_OFF_BUTTON]); _local2.setEnabledAndVisibleForState(UIManager.MUTE_ON_BUTTON, VideoState.PLAYING); _local2.skinButtonControl(_local2.controls[UIManager.MUTE_ON_BUTTON]); }; } private function focusInHandler(_arg1:Event):void{ if (Accessibility.active){ Accessibility.sendEvent(master, 0, EVENT_OBJECT_FOCUS); Accessibility.sendEvent(master, 0, EVENT_OBJECT_VALUECHANGE, true); }; } override public function get_accRole(_arg1:uint):uint{ if (_arg1 == 0){ return (role); }; if (_arg1 == 2){ return (ROLE_SYSTEM_INDICATOR); }; return (ROLE_SYSTEM_PUSHBUTTON); } protected function eventHandler(_arg1:Event):void{ if (_arg1.type == SoundEvent.SOUND_UPDATE){ if (Accessibility.active){ Accessibility.sendEvent(master, 0, EVENT_OBJECT_SELECTION); Accessibility.sendEvent(master, 0, EVENT_OBJECT_VALUECHANGE, true); }; }; } override public function get_accValue(_arg1:uint):String{ var _local2:Number; if (_arg1 == 0){ _local2 = (Math.round((_vc.volume * 10000)) / 100); return ((String(_local2) + "%")); }; return (null); } private function getStatusName():String{ return (""); } protected function get eventsToHandle():Array{ return ([]); } override public function accLocation(_arg1:uint){ var _local7:DisplayObject; var _local2:Object = master; var _local3:UIManager = (_vc.uiMgr as UIManager); var _local4:DisplayObject = (_local3.controls[UIManager.VOLUME_BAR] as DisplayObject); var _local5:Dictionary = (UIManager(_local3).ctrlDataDict as Dictionary); var _local6:ControlData = _local5[_local4]; if (_local5[_local6.fullness_mc].mask_mc){ _local7 = DisplayObject(_local5[_local6.fullness_mc].mask_mc); }; switch (_arg1){ case 1: case 3: if (_local7){ _local2 = _local7; }; break; default: break; }; return (_local2); } override public function getChildIDArray():Array{ var _local1:Array = []; var _local2:uint; while (_local2 < 3) { _local1[_local2] = (_local2 + 1); _local2++; }; return (_local1); } public static function createAccessibilityImplementation(_arg1:Sprite):void{ _arg1.accessibilityImplementation = new VolumeBarAccImpl(_arg1); } public static function enableAccessibility():void{ } } }//package fl.video
Section 58
//btnBack_40 (shell_bip_fla.btnBack_40) package shell_bip_fla { import flash.display.*; import flash.text.*; public dynamic class btnBack_40 extends MovieClip { public var txtLabel:TextField; public function btnBack_40(){ addFrameScript(0, frame1); } function frame1(){ stop(); buttonMode = true; mouseChildren = false; } } }//package shell_bip_fla
Section 59
//btnClose_12 (shell_bip_fla.btnClose_12) package shell_bip_fla { import flash.display.*; public dynamic class btnClose_12 extends MovieClip { public function btnClose_12(){ addFrameScript(0, frame1); } function frame1(){ stop(); buttonMode = true; } } }//package shell_bip_fla
Section 60
//btnFull_6 (shell_bip_fla.btnFull_6) package shell_bip_fla { import flash.display.*; public dynamic class btnFull_6 extends MovieClip { public function btnFull_6(){ addFrameScript(0, frame1); } function frame1(){ stop(); buttonMode = true; mouseChildren = false; } } }//package shell_bip_fla
Section 61
//btnGoMc_42 (shell_bip_fla.btnGoMc_42) package shell_bip_fla { import flash.display.*; public dynamic class btnGoMc_42 extends MovieClip { public function btnGoMc_42(){ addFrameScript(0, frame1); } function frame1(){ stop(); buttonMode = true; } } }//package shell_bip_fla
Section 62
//btnHelp_7 (shell_bip_fla.btnHelp_7) package shell_bip_fla { import flash.display.*; public dynamic class btnHelp_7 extends MovieClip { public function btnHelp_7(){ addFrameScript(0, frame1); } function frame1(){ stop(); buttonMode = true; mouseChildren = false; } } }//package shell_bip_fla
Section 63
//btnPrint_45 (shell_bip_fla.btnPrint_45) package shell_bip_fla { import flash.display.*; import flash.text.*; public dynamic class btnPrint_45 extends MovieClip { public var txtLabel:TextField; public function btnPrint_45(){ addFrameScript(0, frame1); } function frame1(){ stop(); buttonMode = true; mouseChildren = false; } } }//package shell_bip_fla
Section 64
//btnSound_8 (shell_bip_fla.btnSound_8) package shell_bip_fla { import flash.display.*; public dynamic class btnSound_8 extends MovieClip { public function btnSound_8(){ addFrameScript(0, frame1); } function frame1(){ stop(); buttonMode = true; mouseChildren = false; } } }//package shell_bip_fla
Section 65
//btnStart_18 (shell_bip_fla.btnStart_18) package shell_bip_fla { import flash.display.*; import flash.text.*; public dynamic class btnStart_18 extends MovieClip { public var txtLabel:TextField; public function btnStart_18(){ addFrameScript(0, frame1); } function frame1(){ stop(); buttonMode = true; mouseChildren = false; } } }//package shell_bip_fla
Section 66
//mcGame1_20 (shell_bip_fla.mcGame1_20) package shell_bip_fla { import flash.display.*; import flash.text.*; public dynamic class mcGame1_20 extends MovieClip { public var txtLabel:TextField; public var sTxt:String; public function mcGame1_20(){ addFrameScript(0, frame1, 4, frame5, 12, frame13, 13, frame14); } public function fSetTxt(_arg1:String):void{ if (txtLabel){ txtLabel.text = _arg1; }; this.sTxt = _arg1; } function frame1(){ stop(); buttonMode = true; mouseChildren = false; if (sTxt != null){ if (txtLabel){ txtLabel.text = sTxt; }; } else { sTxt = ""; }; } function frame5(){ txtLabel.text = sTxt; } function frame13(){ stop(); } function frame14(){ txtLabel.text = sTxt; } } }//package shell_bip_fla
Section 67
//mcGame2_25 (shell_bip_fla.mcGame2_25) package shell_bip_fla { import flash.display.*; import flash.text.*; public dynamic class mcGame2_25 extends MovieClip { public var txtLabel:TextField; public var sTxt:String; public function mcGame2_25(){ addFrameScript(0, frame1, 4, frame5, 16, frame17, 17, frame18); } public function fSetTxt(_arg1:String):void{ if (txtLabel){ txtLabel.text = _arg1; }; this.sTxt = _arg1; } function frame1(){ stop(); buttonMode = true; mouseChildren = false; if (sTxt != null){ if (txtLabel){ txtLabel.text = sTxt; }; } else { sTxt = ""; }; } function frame5(){ txtLabel.text = sTxt; } function frame17(){ stop(); } function frame18(){ txtLabel.text = sTxt; } } }//package shell_bip_fla
Section 68
//mcGame3_28 (shell_bip_fla.mcGame3_28) package shell_bip_fla { import flash.display.*; import flash.text.*; public dynamic class mcGame3_28 extends MovieClip { public var txtLabel:TextField; public var sTxt:String; public function mcGame3_28(){ addFrameScript(0, frame1, 4, frame5, 12, frame13, 13, frame14); } public function fSetTxt(_arg1:String):void{ if (txtLabel){ txtLabel.text = _arg1; }; this.sTxt = _arg1; } function frame1(){ stop(); buttonMode = true; mouseChildren = false; if (sTxt != null){ if (txtLabel){ txtLabel.text = sTxt; }; } else { sTxt = ""; }; } function frame5(){ txtLabel.text = sTxt; } function frame13(){ stop(); } function frame14(){ txtLabel.text = sTxt; } } }//package shell_bip_fla
Section 69
//mcLoadBar_3 (shell_bip_fla.mcLoadBar_3) package shell_bip_fla { import flash.display.*; public dynamic class mcLoadBar_3 extends MovieClip { public function mcLoadBar_3(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package shell_bip_fla
Section 70
//mcPrintLink_36 (shell_bip_fla.mcPrintLink_36) package shell_bip_fla { import flash.display.*; public dynamic class mcPrintLink_36 extends MovieClip { public function mcPrintLink_36(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package shell_bip_fla
Section 71
//mcPrintLink2_37 (shell_bip_fla.mcPrintLink2_37) package shell_bip_fla { import flash.display.*; public dynamic class mcPrintLink2_37 extends MovieClip { public function mcPrintLink2_37(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package shell_bip_fla
Section 72
//mcPrintLink3_34 (shell_bip_fla.mcPrintLink3_34) package shell_bip_fla { import flash.display.*; public dynamic class mcPrintLink3_34 extends MovieClip { public function mcPrintLink3_34(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package shell_bip_fla
Section 73
//mcPrintLink4_38 (shell_bip_fla.mcPrintLink4_38) package shell_bip_fla { import flash.display.*; public dynamic class mcPrintLink4_38 extends MovieClip { public function mcPrintLink4_38(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package shell_bip_fla
Section 74
//mcSound_4 (shell_bip_fla.mcSound_4) package shell_bip_fla { import flash.display.*; public dynamic class mcSound_4 extends MovieClip { public function mcSound_4(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package shell_bip_fla
Section 75
//mcStartScreen_15 (shell_bip_fla.mcStartScreen_15) package shell_bip_fla { import flash.display.*; import flash.text.*; public dynamic class mcStartScreen_15 extends MovieClip { public var txtStart:TextField; public function mcStartScreen_15(){ addFrameScript(18, frame19); } function frame19(){ stop(); } } }//package shell_bip_fla
Section 76
//SndEvent (SndEvent) package { import flash.events.*; public class SndEvent extends Event { public var snd:String; public var volume:Number; public static const PLAY:String = "onPlaySound"; public function SndEvent(_arg1:String, _arg2:String, _arg3:Number=1, _arg4:Boolean=true){ super(_arg1, _arg4); this.snd = _arg2; this.volume = _arg3; } override public function clone():Event{ return (new SndEvent(type, snd, volume, bubbles)); } override public function toString():String{ return (formatToString("SndEvent", "type", "snd", "bubbles")); } } }//package

Library Items

Symbol 1 GraphicUsed by:2
Symbol 2 MovieClipUses:1Used by:6
Symbol 3 BitmapUsed by:4
Symbol 4 GraphicUses:3Used by:5
Symbol 5 MovieClip {fl.video.Icon}Uses:4Used by:6
Symbol 6 MovieClip {fl.video.FLVPlayback}Uses:2 5Used by:Timeline
Symbol 7 GraphicUsed by:8
Symbol 8 MovieClipUses:7Used by:152 156  Timeline
Symbol 9 GraphicUsed by:10
Symbol 10 MovieClipUses:9Used by:152 156  Timeline
Symbol 11 GraphicUsed by:15
Symbol 12 GraphicUsed by:15
Symbol 13 GraphicUsed by:15
Symbol 14 GraphicUsed by:15
Symbol 15 MovieClip {shell_bip_fla.mcLoadBar_3}Uses:11 12 13 14Used by:Timeline
Symbol 16 BitmapUsed by:17
Symbol 17 GraphicUses:16Used by:Timeline
Symbol 18 FontUsed by:19
Symbol 19 EditableTextUses:18Used by:24
Symbol 20 Sound {cartoonito.bip.sfx.SndSwingFling}Used by:24
Symbol 21 Sound {cartoonito.bip.sfx.SndHoneyCake}Used by:24
Symbol 22 Sound {cartoonito.bip.sfx.SndBananaMatch}Used by:24
Symbol 23 Sound {cartoonito.bip.sfx.SndTheme}Used by:24
Symbol 24 MovieClip {shell_bip_fla.mcSound_4}Uses:19 20 21 22 23Used by:Timeline
Symbol 25 GraphicUsed by:26
Symbol 26 MovieClipUses:25Used by:66 152 156  Timeline
Symbol 27 GraphicUsed by:29
Symbol 28 GraphicUsed by:29
Symbol 29 MovieClip {shell_bip_fla.btnFull_6}Uses:27 28Used by:Timeline
Symbol 30 GraphicUsed by:32 37
Symbol 31 GraphicUsed by:32
Symbol 32 MovieClip {shell_bip_fla.btnHelp_7}Uses:30 31Used by:Timeline
Symbol 33 GraphicUsed by:37
Symbol 34 GraphicUsed by:37
Symbol 35 GraphicUsed by:37
Symbol 36 GraphicUsed by:37
Symbol 37 MovieClip {shell_bip_fla.btnSound_8}Uses:30 33 34 35 36Used by:Timeline
Symbol 38 GraphicUsed by:39
Symbol 39 MovieClipUses:38Used by:48
Symbol 40 GraphicUsed by:41
Symbol 41 MovieClipUses:40Used by:48 152 156
Symbol 42 FontUsed by:43 44 62 69 77 79 86 88 90 97 99 103 111 115 136 142 143 150 151 154 155 157
Symbol 43 EditableTextUses:42Used by:48
Symbol 44 EditableTextUses:42Used by:48
Symbol 45 GraphicUsed by:47
Symbol 46 GraphicUsed by:47
Symbol 47 MovieClip {shell_bip_fla.btnClose_12}Uses:45 46Used by:48
Symbol 48 MovieClipUses:39 41 43 44 47Used by:Timeline
Symbol 49 GraphicUsed by:Timeline
Symbol 50 BitmapUsed by:51 149 153
Symbol 51 GraphicUses:50Used by:52
Symbol 52 MovieClipUses:51Used by:Timeline
Symbol 53 BitmapUsed by:54 149 153
Symbol 54 GraphicUses:53Used by:55
Symbol 55 MovieClipUses:54Used by:Timeline
Symbol 56 GraphicUsed by:66
Symbol 57 BitmapUsed by:58 140
Symbol 58 GraphicUses:57Used by:66
Symbol 59 BitmapUsed by:60
Symbol 60 GraphicUses:59Used by:61
Symbol 61 MovieClipUses:60Used by:66
Symbol 62 EditableTextUses:42Used by:66
Symbol 63 BitmapUsed by:64
Symbol 64 GraphicUses:63Used by:65
Symbol 65 MovieClipUses:64Used by:66
Symbol 66 MovieClip {shell_bip_fla.mcStartScreen_15}Uses:56 58 61 26 62 65Used by:Timeline
Symbol 67 GraphicUsed by:68
Symbol 68 MovieClipUses:67Used by:70
Symbol 69 EditableTextUses:42Used by:70
Symbol 70 MovieClip {shell_bip_fla.btnStart_18}Uses:68 69Used by:Timeline
Symbol 71 BitmapUsed by:72
Symbol 72 GraphicUses:71Used by:Timeline
Symbol 73 GraphicUsed by:87 98 112
Symbol 74 GraphicUsed by:75
Symbol 75 MovieClipUses:74Used by:76
Symbol 76 MovieClipUses:75Used by:87
Symbol 77 EditableTextUses:42Used by:87
Symbol 78 GraphicUsed by:87
Symbol 79 EditableTextUses:42Used by:87
Symbol 80 BitmapUsed by:81
Symbol 81 GraphicUses:80Used by:82
Symbol 82 MovieClipUses:81Used by:87
Symbol 83 BitmapUsed by:84
Symbol 84 GraphicUses:83Used by:85
Symbol 85 MovieClipUses:84Used by:87
Symbol 86 EditableTextUses:42Used by:87
Symbol 87 MovieClip {shell_bip_fla.mcGame1_20}Uses:73 76 77 78 79 82 85 86Used by:Timeline
Symbol 88 EditableTextUses:42Used by:98
Symbol 89 GraphicUsed by:98
Symbol 90 EditableTextUses:42Used by:98
Symbol 91 BitmapUsed by:92
Symbol 92 GraphicUses:91Used by:93
Symbol 93 MovieClipUses:92Used by:98
Symbol 94 BitmapUsed by:95
Symbol 95 GraphicUses:94Used by:96
Symbol 96 MovieClipUses:95Used by:98
Symbol 97 EditableTextUses:42Used by:98
Symbol 98 MovieClip {shell_bip_fla.mcGame2_25}Uses:73 88 89 90 93 96 97Used by:Timeline
Symbol 99 EditableTextUses:42Used by:112
Symbol 100 BitmapUsed by:101
Symbol 101 GraphicUses:100Used by:102
Symbol 102 MovieClipUses:101Used by:112
Symbol 103 EditableTextUses:42Used by:112
Symbol 104 GraphicUsed by:112
Symbol 105 BitmapUsed by:106
Symbol 106 GraphicUses:105Used by:107
Symbol 107 MovieClipUses:106Used by:112
Symbol 108 BitmapUsed by:109
Symbol 109 GraphicUses:108Used by:110
Symbol 110 MovieClipUses:109Used by:112
Symbol 111 EditableTextUses:42Used by:112
Symbol 112 MovieClip {shell_bip_fla.mcGame3_28}Uses:73 99 102 103 104 107 110 111Used by:Timeline
Symbol 113 GraphicUsed by:114
Symbol 114 MovieClipUses:113Used by:Timeline
Symbol 115 EditableTextUses:42Used by:Timeline
Symbol 116 GraphicUsed by:133
Symbol 117 GraphicUsed by:123 126 130 132
Symbol 118 GraphicUsed by:119
Symbol 119 MovieClipUses:118Used by:123 126 130 132
Symbol 120 GraphicUsed by:123 126 130 132
Symbol 121 GraphicUsed by:123
Symbol 122 GraphicUsed by:123
Symbol 123 MovieClip {shell_bip_fla.mcPrintLink3_34}Uses:117 119 120 121 122Used by:133
Symbol 124 GraphicUsed by:126
Symbol 125 GraphicUsed by:126
Symbol 126 MovieClip {shell_bip_fla.mcPrintLink_36}Uses:117 119 120 124 125Used by:133
Symbol 127 BitmapUsed by:128 129
Symbol 128 GraphicUses:127Used by:130
Symbol 129 GraphicUses:127Used by:130
Symbol 130 MovieClip {shell_bip_fla.mcPrintLink2_37}Uses:117 119 120 128 129Used by:133
Symbol 131 GraphicUsed by:132
Symbol 132 MovieClip {shell_bip_fla.mcPrintLink4_38}Uses:117 119 120 131Used by:133
Symbol 133 MovieClipUses:116 123 126 130 132Used by:Timeline
Symbol 134 GraphicUsed by:135
Symbol 135 MovieClipUses:134Used by:Timeline
Symbol 136 EditableTextUses:42Used by:139
Symbol 137 GraphicUsed by:139
Symbol 138 GraphicUsed by:139
Symbol 139 MovieClip {shell_bip_fla.btnBack_40}Uses:136 137 138Used by:Timeline
Symbol 140 GraphicUses:57Used by:Timeline
Symbol 141 GraphicUsed by:Timeline
Symbol 142 EditableTextUses:42Used by:148
Symbol 143 EditableTextUses:42Used by:148
Symbol 144 GraphicUsed by:147
Symbol 145 GraphicUsed by:147
Symbol 146 GraphicUsed by:147
Symbol 147 MovieClip {shell_bip_fla.btnGoMc_42}Uses:144 145 146Used by:148
Symbol 148 MovieClipUses:142 143 147Used by:Timeline
Symbol 149 GraphicUses:53 50Used by:152
Symbol 150 EditableTextUses:42Used by:152
Symbol 151 EditableTextUses:42Used by:152
Symbol 152 MovieClipUses:8 10 41 26 149 150 151Used by:Timeline
Symbol 153 GraphicUses:53 50Used by:156
Symbol 154 EditableTextUses:42Used by:156
Symbol 155 EditableTextUses:42Used by:156
Symbol 156 MovieClipUses:8 10 41 26 153 154 155Used by:Timeline
Symbol 157 EditableTextUses:42Used by:160
Symbol 158 GraphicUsed by:160
Symbol 159 GraphicUsed by:160
Symbol 160 MovieClip {shell_bip_fla.btnPrint_45}Uses:157 158 159Used by:Timeline

Instance Names

"mcLoadBar"Frame 1Symbol 15 MovieClip {shell_bip_fla.mcLoadBar_3}
"btnFullScreen"Frame 10Symbol 29 MovieClip {shell_bip_fla.btnFull_6}
"btnHelp"Frame 10Symbol 32 MovieClip {shell_bip_fla.btnHelp_7}
"mcMute"Frame 10Symbol 37 MovieClip {shell_bip_fla.btnSound_8}
"mcHelpPanel"Frame 10Symbol 48 MovieClip
"mcStartScreen"Frame 88Symbol 66 MovieClip {shell_bip_fla.mcStartScreen_15}
"btnStart"Frame 88Symbol 70 MovieClip {shell_bip_fla.btnStart_18}
"mcGame1"Frame 107Symbol 87 MovieClip {shell_bip_fla.mcGame1_20}
"mcGame2"Frame 107Symbol 98 MovieClip {shell_bip_fla.mcGame2_25}
"mcGame3"Frame 107Symbol 112 MovieClip {shell_bip_fla.mcGame3_28}
"txtChoose"Frame 117Symbol 115 EditableText
"mcPrintLinks"Frame 117Symbol 133 MovieClip
"mcHolder"Frame 122Symbol 135 MovieClip
"btnBack"Frame 122Symbol 139 MovieClip {shell_bip_fla.btnBack_40}
"videoPlayer"Frame 146Symbol 6 MovieClip {fl.video.FLVPlayback}
"mcPlayVideo"Frame 146Symbol 148 MovieClip
"mcCertificate"Frame 146Symbol 152 MovieClip
"mcPrintCertificate"Frame 146Symbol 156 MovieClip
"btnPrint"Frame 146Symbol 160 MovieClip {shell_bip_fla.btnPrint_45}
"btnBack"Frame 146Symbol 139 MovieClip {shell_bip_fla.btnBack_40}
"boundingBox_mc"Symbol 6 MovieClip {fl.video.FLVPlayback} Frame 1Symbol 2 MovieClip
"txtTitle"Symbol 48 MovieClip Frame 1Symbol 43 EditableText
"txtBody"Symbol 48 MovieClip Frame 1Symbol 44 EditableText
"btnClose"Symbol 48 MovieClip Frame 1Symbol 47 MovieClip {shell_bip_fla.btnClose_12}
"txtStart"Symbol 66 MovieClip {shell_bip_fla.mcStartScreen_15} Frame 1Symbol 62 EditableText
"txtLabel"Symbol 70 MovieClip {shell_bip_fla.btnStart_18} Frame 1Symbol 69 EditableText
"txtLabel"Symbol 87 MovieClip {shell_bip_fla.mcGame1_20} Frame 1Symbol 77 EditableText
"txtLabel"Symbol 87 MovieClip {shell_bip_fla.mcGame1_20} Frame 5Symbol 79 EditableText
"txtLabel"Symbol 87 MovieClip {shell_bip_fla.mcGame1_20} Frame 14Symbol 86 EditableText
"txtLabel"Symbol 98 MovieClip {shell_bip_fla.mcGame2_25} Frame 1Symbol 88 EditableText
"txtLabel"Symbol 98 MovieClip {shell_bip_fla.mcGame2_25} Frame 5Symbol 90 EditableText
"txtLabel"Symbol 98 MovieClip {shell_bip_fla.mcGame2_25} Frame 18Symbol 97 EditableText
"txtLabel"Symbol 112 MovieClip {shell_bip_fla.mcGame3_28} Frame 1Symbol 99 EditableText
"txtLabel"Symbol 112 MovieClip {shell_bip_fla.mcGame3_28} Frame 5Symbol 103 EditableText
"txtLabel"Symbol 112 MovieClip {shell_bip_fla.mcGame3_28} Frame 14Symbol 111 EditableText
"mcLink1"Symbol 133 MovieClip Frame 1Symbol 123 MovieClip {shell_bip_fla.mcPrintLink3_34}
"mcLink2"Symbol 133 MovieClip Frame 1Symbol 126 MovieClip {shell_bip_fla.mcPrintLink_36}
"mcLink3"Symbol 133 MovieClip Frame 1Symbol 130 MovieClip {shell_bip_fla.mcPrintLink2_37}
"mcLink4"Symbol 133 MovieClip Frame 1Symbol 132 MovieClip {shell_bip_fla.mcPrintLink4_38}
"txtLabel"Symbol 139 MovieClip {shell_bip_fla.btnBack_40} Frame 1Symbol 136 EditableText
"txtRewardTitle"Symbol 148 MovieClip Frame 1Symbol 142 EditableText
"txtRewardMsg"Symbol 148 MovieClip Frame 1Symbol 143 EditableText
"btnVideo"Symbol 148 MovieClip Frame 1Symbol 147 MovieClip {shell_bip_fla.btnGoMc_42}
"txtCertificate"Symbol 152 MovieClip Frame 1Symbol 150 EditableText
"txtName"Symbol 152 MovieClip Frame 1Symbol 151 EditableText
"txtCertificate"Symbol 156 MovieClip Frame 1Symbol 154 EditableText
"txtName"Symbol 156 MovieClip Frame 1Symbol 155 EditableText
"txtLabel"Symbol 160 MovieClip {shell_bip_fla.btnPrint_45} Frame 1Symbol 157 EditableText

Special Tags

FileAttributes (69)Timeline Frame 1Access local files only, Metadata not present, AS3.

Labels

"loading"Frame 1
"loaded"Frame 10
"start"Frame 88
"curtain_menu"Frame 107
"menu"Frame 117
"game"Frame 122
"close_game"Frame 130
"reward"Frame 146
"exit_reward"Frame 164
"_up"Symbol 29 MovieClip {shell_bip_fla.btnFull_6} Frame 1
"_over"Symbol 29 MovieClip {shell_bip_fla.btnFull_6} Frame 6
"_up"Symbol 32 MovieClip {shell_bip_fla.btnHelp_7} Frame 1
"_over"Symbol 32 MovieClip {shell_bip_fla.btnHelp_7} Frame 6
"on"Symbol 37 MovieClip {shell_bip_fla.btnSound_8} Frame 1
"overOn"Symbol 37 MovieClip {shell_bip_fla.btnSound_8} Frame 6
"off"Symbol 37 MovieClip {shell_bip_fla.btnSound_8} Frame 11
"overOff"Symbol 37 MovieClip {shell_bip_fla.btnSound_8} Frame 16
"_up"Symbol 47 MovieClip {shell_bip_fla.btnClose_12} Frame 1
"_over"Symbol 47 MovieClip {shell_bip_fla.btnClose_12} Frame 5
"_up"Symbol 70 MovieClip {shell_bip_fla.btnStart_18} Frame 1
"_over"Symbol 70 MovieClip {shell_bip_fla.btnStart_18} Frame 6
"over"Symbol 87 MovieClip {shell_bip_fla.mcGame1_20} Frame 5
"out"Symbol 87 MovieClip {shell_bip_fla.mcGame1_20} Frame 14
"over"Symbol 98 MovieClip {shell_bip_fla.mcGame2_25} Frame 5
"out"Symbol 98 MovieClip {shell_bip_fla.mcGame2_25} Frame 18
"over"Symbol 112 MovieClip {shell_bip_fla.mcGame3_28} Frame 5
"out"Symbol 112 MovieClip {shell_bip_fla.mcGame3_28} Frame 14
"_up"Symbol 123 MovieClip {shell_bip_fla.mcPrintLink3_34} Frame 3
"_over"Symbol 123 MovieClip {shell_bip_fla.mcPrintLink3_34} Frame 8
"_up"Symbol 126 MovieClip {shell_bip_fla.mcPrintLink_36} Frame 3
"_over"Symbol 126 MovieClip {shell_bip_fla.mcPrintLink_36} Frame 8
"_up"Symbol 130 MovieClip {shell_bip_fla.mcPrintLink2_37} Frame 3
"_over"Symbol 130 MovieClip {shell_bip_fla.mcPrintLink2_37} Frame 8
"_up"Symbol 132 MovieClip {shell_bip_fla.mcPrintLink4_38} Frame 3
"_over"Symbol 132 MovieClip {shell_bip_fla.mcPrintLink4_38} Frame 8
"_up"Symbol 139 MovieClip {shell_bip_fla.btnBack_40} Frame 1
"_over"Symbol 139 MovieClip {shell_bip_fla.btnBack_40} Frame 6
"_up"Symbol 147 MovieClip {shell_bip_fla.btnGoMc_42} Frame 1
"_over"Symbol 147 MovieClip {shell_bip_fla.btnGoMc_42} Frame 2
"_up"Symbol 160 MovieClip {shell_bip_fla.btnPrint_45} Frame 1
"_over"Symbol 160 MovieClip {shell_bip_fla.btnPrint_45} Frame 6




http://swfchan.com/52/255702/info.shtml
Created: 28/2 -2024 13:03:30 Last modified: 28/2 -2024 13:03:30 Server time: 20/05 -2024 02:05:41