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

swfchan turned sixteen years old yesterday! (5may2024)

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

Twins.swf

This is the info page for
Flash #169087

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


ActionScript [AS3]
Section 1
//VideoPlayerEvent (com.conceptualideas.flvplayer.events.VideoPlayerEvent) package com.conceptualideas.flvplayer.events { import flash.events.*; public class VideoPlayerEvent extends Event { private var _data:String; public static const STREAM_STOPED:String = "stream_stoped"; public static const STOP:String = "stop"; public static const VIDEO_FINISHED_PLAYING:String = "video_finished_playing"; public static const VIDEO_PLAYING:String = "video_playing"; public static const BUFFER_FULL:String = "buffer_full"; public static const BUFFER_FLUSHED:String = "buffer_flushed"; public static const BUFFER_EMPTY:String = "buffer_empty"; public static const PAUSE:String = "pause"; public static const VIDEO_LAST_SECOND:String = "video_last_second"; public static const BUFFERING:String = "buffering"; public static const PLAY:String = "play"; public static const FULL_SCREEN:String = "full_screen"; public function VideoPlayerEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false){ super(_arg1, _arg2, _arg3); } public function set data(_arg1:String):void{ _data = _arg1; } public function get data():String{ return (_data); } override public function toString():String{ return (formatToString("VideoPlayerEvent", "type", "bubbles", "cancelable", "eventPhase")); } override public function clone():Event{ return (new VideoPlayerEvent(type, bubbles, cancelable)); } } }//package com.conceptualideas.flvplayer.events
Section 2
//VideoClient (com.conceptualideas.flvplayer.VideoClient) package com.conceptualideas.flvplayer { import flash.events.*; import flash.utils.*; import com.conceptualideas.flvplayer.events.*; public dynamic class VideoClient extends EventDispatcher { public var videoSampleAccess:Boolean;// = true private var _dict:Dictionary; private var mp4:Boolean;// = false public static const METADATA_LOADED:String = "metadata_loaded"; public static const VIDEO_FINISHED:String = "video_finished"; public function VideoClient(){ _dict = new Dictionary(true); } public function onPlayStatus(_arg1:Object):void{ if ((((_arg1.code == "NetStream.Play.Complete")) || ((_arg1.code == "NetStream.Play.Stop")))){ dispatchEvent(new VideoPlayerEvent(VideoPlayerEvent.VIDEO_FINISHED_PLAYING, true)); dispatchEvent(new Event(VideoClient.VIDEO_FINISHED, true)); }; } public function get width():Number{ return (retrive("width")); } public function onCaption(_arg1:String, _arg2:Number):void{ var _local3:Object = {type:"caption", captions:_arg1, speaker:_arg2}; } public function onImageData(_arg1:Object):void{ var _local2:Object = {type:"imagedata"}; } public function onFCSubscribe(_arg1:Object):void{ var _local3:*; var _local2:Object = {type:"fcsubscribe"}; for (_local3 in _arg1) { _local2[_local3] = _arg1[_local3]; }; } public function RtmpSampleAccess(_arg1:Object):void{ var _local2:Object = {type:"rtmpsampleaccess"}; } public function get duration():Number{ return (retrive("duration")); } public function onBWDone(... _args):void{ var _local2:Object; if (_args.length > 0){ _local2 = {type:"bandwidth", bandwidth:_args[0]}; }; } public function onCuePoint(_arg1:Object):void{ trace("--- CUE POINT ---"); dump(_arg1); dump(_arg1.parameters); trace("--- CUE POINT ---"); } public function onMetaData(_arg1:Object):void{ var _local2:String; if (_arg1.seekpoints){ _arg1.keyframes = convertSeekpoints(_arg1.seekpoints); mp4 = true; }; for (_local2 in _arg1) { _dict[_local2] = _arg1[_local2]; }; dispatchEvent(new Event(VideoClient.METADATA_LOADED, true)); } public function retrive(_arg1:String){ return (_dict[_arg1]); } public function isMp4():Boolean{ return (mp4); } public function onLastSecond(_arg1:Object):void{ dispatchEvent(new VideoPlayerEvent(VideoPlayerEvent.VIDEO_LAST_SECOND, true)); } private function convertSeekpoints(_arg1:Object):Object{ var _local3:*; var _local2:Object = new Object(); _local2.times = new Array(); _local2.filepositions = new Array(); for (_local3 in _arg1) { _local2.times[_local3] = Number(_arg1[_local3]["time"]); _local2.filepositions[_local3] = Number(_arg1[_local3]["offset"]); }; return (_local2); } public function onBWCheck(... _args):Number{ return (0); } public function get height():Number{ return (retrive("height")); } public function changeMode(_arg1:Object):void{ } private function dump(_arg1:Object):void{ var _local2:Object; for (_local2 in _arg1) { trace(((_local2 + " :: ") + String(_arg1[_local2]))); }; } public function onTextData(_arg1:Object):void{ var _local3:*; var _local2:Object = {type:"textdata"}; for (_local3 in _arg1) { _local2[_local3] = _arg1[_local3]; }; } } }//package com.conceptualideas.flvplayer
Section 3
//IFlashVars (com.conceptualideas.interfaces.IFlashVars) package com.conceptualideas.interfaces { public interface IFlashVars { function containsValue(_arg1:String):Boolean; function getEither(... _args):String; function hasKey(_arg1:String):Boolean; function getSinglePairKey(... _args):String; function check(_arg1:String, ... _args); function getGroup(_arg1=null, _arg2=null):Array; function getKeys():Array; function addMask(... _args):void; function getPairKey():String; function init(_arg1:Object):void; function getBoolean(_arg1:String):Boolean; function convert(_arg1); function getKeyPairMap(... _args):Object; function extend(_arg1:Object, _arg2:Object=null); function getValue(_arg1:String):String; function getParams():Object; function hasEither(... _args):Boolean; } }//package com.conceptualideas.interfaces
Section 4
//CIArrowButton (com.conceptualideas.utils.CIArrowButton) package com.conceptualideas.utils { import flash.display.*; public class CIArrowButton extends Sprite { private var ICON_WIDTH:Number;// = 7 private var bg:Sprite; private var ICON_HEIGHT:Number;// = 7 private var PADDING:Number;// = 5 private var BUTTON_HEIGHT:Number;// = 13 private var BUTTON_WIDTH:Number;// = 26 private var icon:Sprite; private var BUTTON_RADIUS:Number;// = 8 public function CIArrowButton(_arg1:Array=null, _arg2:Array=null):void{ this.buttonMode = true; this.init(); } public function reverse():void{ if (icon.scaleX >= 0){ icon.x = (((BUTTON_WIDTH / 2) + (BUTTON_RADIUS / 2)) - 2); } else { icon.x = ((BUTTON_WIDTH / 2) - 2); }; icon.scaleX = (icon.scaleX * -1); } private function getIconPoints():Array{ var _local1:Object = {x:0, y:0}; var _local2:Array = [_local1, {x:(_local1.x + ICON_WIDTH), y:(_local1.y + (ICON_HEIGHT / 2))}, {x:_local1.x, y:(_local1.y + ICON_HEIGHT)}]; return (_local2); } private function init():void{ drawButton(); } private function dragArrow():void{ var _local1:* = Drawing.buildMatrix(0.5, 0.5, ICON_WIDTH, ICON_HEIGHT, ((100 / 180) * Math.PI)); var _local2:Object = {colors:[0x545454, 0x333333], type:"linear", alphas:[100, 100], ratios:[0, 0xFF], matrix:_local1}; var _local3:Object = {alpha:0, thickness:0, color:0x595959}; icon = new Sprite(); Drawing.drawPoly(icon, getIconPoints(), _local2, _local3); bg.addChild(icon); icon.x = ((BUTTON_WIDTH / 2) - 2); icon.y = (Math.floor(((BUTTON_WIDTH / 2) - (ICON_HEIGHT / 2))) + 0.5); } private function drawButton():void{ drawBackground(); dragArrow(); } private function drawBackground():void{ bg = new Sprite(); addChild(bg); var _local1:* = Drawing.buildMatrix(0.5, 0.5, BUTTON_WIDTH, BUTTON_HEIGHT, ((90 / 180) * Math.PI)); bg.graphics.beginGradientFill("linear", [0xFFFFFF, 0xBFBFBF], [100, 100], [0, 0xFF], _local1); bg.graphics.lineStyle(0, 0x595959); bg.graphics.drawCircle((BUTTON_WIDTH / 2), (BUTTON_WIDTH / 2), BUTTON_RADIUS); bg.graphics.endFill(); } } }//package com.conceptualideas.utils
Section 5
//CIBannerAd (com.conceptualideas.utils.CIBannerAd) package com.conceptualideas.utils { import flash.events.*; import flash.display.*; import flash.geom.*; import flash.utils.*; import flash.net.*; import flash.text.*; import gs.*; public class CIBannerAd extends Sprite { private var container:Sprite; private var reopenButton:Sprite; private var txtShowAd:TextField; private var currentLink:String; private var txtHeader:TextField; private var isOpen:Boolean;// = false private var txtMiddle:TextField; private var adsBy:TextField; private var navigation:Sprite; private var adMask:Shape; private var overlayMatrix:Matrix; private var button:Sprite; private var txtBottom:TextField; private var timer:Timer;// = null private var _height:Number; private var _width:Number; private var isImage:Boolean;// = false private var firstLink:String; private var image:Sprite; private var _config:Object; private var _ads:Array; private var currentAd:Number;// = -1 public function CIBannerAd():void{ _ads = []; } public function setSize(_arg1:Number, _arg2:Number):void{ _width = _arg1; _height = _arg2; button.x = ((_width - button.width) - 5); button.y = 10; resize(); } private function nextAd():void{ currentAd++; if (currentAd > (_ads.length - 1)){ currentAd = 0; }; displayAd(); } private function fit(_arg1:DisplayObject, _arg2:Number, _arg3:Number, _arg4:String="uniform"):void{ var _local5:Number = (_arg2 / _arg1.width); var _local6:Number = (_arg3 / _arg1.height); switch (_arg4.toLowerCase()){ case "exactfit": _arg1.width = _arg2; _arg1.height = _arg3; break; case "fill": if (_local5 > _local6){ _arg1.width = (_arg1.width * _local5); _arg1.height = (_arg1.height * _local5); } else { _arg1.width = (_arg1.width * _local6); _arg1.height = (_arg1.height * _local6); }; break; case "none": break; case "uniform": if (_local5 > _local6){ _arg1.width = (_arg1.width * _local6); _arg1.height = (_arg1.height * _local6); } else { _arg1.width = (_arg1.width * _local5); _arg1.height = (_arg1.height * _local5); }; break; }; _arg1.x = Math.round(((_arg2 / 2) - (_arg1.width / 2))); _arg1.y = Math.round(((_arg3 / 2) - (_arg1.height / 2))); _arg1.width = Math.ceil(_arg1.width); _arg1.height = Math.ceil(_arg1.height); } private function populateTextField(_arg1:TextField, _arg2:Object, _arg3:Object, _arg4:Boolean=false):void{ var _local6:String; var _local7:String; _arg4 = false; if (((((!((_arg2 is String))) && (_arg2.link))) && (!((_arg2.link == ""))))){ _local7 = ((_arg2.link.indexOf("http://"))==-1) ? ("http://" + _arg2.link) : _arg2.link; if (!firstLink){ firstLink = _local7; }; _arg1.htmlText = (((((("<a href='event:" + _local7) + "' target='") + _arg2.target) + "'>") + _arg2.text) + "</a>"); } else { _arg1.htmlText = ((_arg2 is String)) ? String(_arg2) : _arg2.text; }; var _local5:TextFormat = new TextFormat(); for (_local6 in _arg3) { _local5[_local6] = _arg3[_local6]; }; _local5.font = _config.font; _arg1.visible = true; _arg1.antiAliasType = AntiAliasType.NORMAL; _arg1.setTextFormat(_local5); _arg1.defaultTextFormat = _local5; _arg1.embedFonts = _arg4; } protected function loadImage(_arg1:String, _arg2:Function, ... _args):void{ var url = _arg1; var callback = _arg2; var args = _args; var loader:Loader = new Loader(); var func:Function = function (_arg1:Event):void{ var _local2:Array = [_arg1].concat(args); callback.apply(null, _local2); }; loader.contentLoaderInfo.addEventListener(Event.INIT, func); loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onIOEvent, false, 0, true); loader.load(new URLRequest(url)); } private function text_linkClickedHandler(_arg1:TextEvent):void{ var _local2:String = _arg1.text.split("event:").pop(); openLink(_local2); dispatchEvent(new Event("linkClicked")); } public function initialize(_arg1:Object):void{ _config = _arg1; _width = _arg1.width; _height = _arg1.height; if (!_config.colors){ _config.colors = {}; }; if (!_config.colors.title){ _config.colors.title = 0xFFFFFF; }; if (!_config.colors.desc){ _config.colors.desc = 0xFFFFFF; }; if (!_config.colors.link){ _config.colors.link = 16711519; }; if (!_config.colors.by){ _config.colors.by = 0x999999; }; createChildren(); if (((_config.by) && (_config.by.text))){ populateTextField(adsBy, _arg1.by, {size:13, color:_config.colors.by}, false); }; } private function setTextFieldPlacement(_arg1:Number):void{ txtHeader.x = (txtMiddle.x = (txtBottom.x = _arg1)); } private function createChildren():void{ container = new Sprite(); container.addEventListener(MouseEvent.ROLL_OVER, onRollOver, false, 0, true); container.addEventListener(MouseEvent.ROLL_OUT, onRollOut, false, 0, true); addChild(container); button = new CICloseButton(); button.buttonMode = true; button.addEventListener(MouseEvent.CLICK, onCloseAd, false, 0, true); container.addChild(button); reopenButton = new Sprite(); txtShowAd = getTextField(); var _local1:Object = {size:10, color:0}; if (_config.font){ _local1.font = _config.font; }; populateTextField(txtShowAd, {text:"Show Ad"}, _local1); var _local2:Matrix = new Matrix(); _local2.createGradientBox((txtShowAd.width + 5), txtShowAd.height, (90 * (Math.PI / 180)), 0, 0); reopenButton.graphics.beginGradientFill("linear", [0xBFBFBF, 0xB0B0B0], [1, 1], [0, 0xFF], _local2); reopenButton.graphics.drawRoundRect(0, 0, (txtShowAd.width + 5), txtShowAd.height, 5, 5); reopenButton.graphics.endFill(); reopenButton.buttonMode = true; reopenButton.mouseChildren = false; reopenButton.addEventListener(MouseEvent.CLICK, onReopenRequest, false, 0, true); txtShowAd.y = ((reopenButton.height - txtShowAd.height) / 2); txtShowAd.x = ((reopenButton.width - txtShowAd.width) / 2); reopenButton.addChild(txtShowAd); txtHeader = getTextField(); txtMiddle = getTextField(); txtBottom = getTextField(); adsBy = getTextField(); image = new Sprite(); navigation = new Sprite(); var _local3:CIArrowButton = new CIArrowButton(); var _local4:Sprite = new CIArrowButton(); _local3.addEventListener(MouseEvent.CLICK, onPreviousAd, false, 0, true); _local4.addEventListener(MouseEvent.CLICK, onNextAd, false, 0, true); _local3.reverse(); navigation.addChild(_local3); navigation.addChild(_local4); navigation.visible = false; _local4.x = ((_local3.x + _local3.width) + 5); container.addChild(navigation); container.addChild(txtHeader); container.addChild(txtMiddle); container.addChild(txtBottom); container.addChild(adsBy); container.addChild(image); adMask = new Shape(); adMask.graphics.beginFill(0xFF0000); adMask.graphics.drawRect(0, 0, 10, 10); adMask.graphics.endFill(); addChild(adMask); container.mask = adMask; overlayMatrix = new Matrix(); resize(); } public function has():Boolean{ return ((_ads.length) ? true : false); } public function addAd(_arg1:String, _arg2:String, _arg3:String=null, _arg4:String=null, _arg5:String=null, _arg6:String="text", _arg7:String="_blank"):void{ _ads.push(new CIAd(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7)); } private function resize():void{ drawContainer(); reopenButton.x = ((_width - reopenButton.width) - 5); adsBy.x = ((button.x - adsBy.width) - 2); reopenButton.y = ((_height - reopenButton.height) - 10); adsBy.y = (button.y - 4); txtHeader.width = _width; txtMiddle.width = _width; txtBottom.width = _width; txtHeader.x = (txtMiddle.x = (txtBottom.x = 5)); txtHeader.y = 3; spaceText(txtMiddle, txtHeader); spaceText(txtBottom, txtMiddle); navigation.x = ((_width - navigation.width) - 10); navigation.y = ((_height - navigation.height) - 10); adMask.width = _width; adMask.height = _height; if (((((!(isNaN(currentAd))) && (!((currentAd == -1))))) && (CIAd(_ads[currentAd]).showBoth()))){ setTextFieldPlacement(((image.x + image.width) + 10)); }; } private function onNextAd(_arg1:MouseEvent):void{ nextAd(); } private function onPreviousAd(_arg1:MouseEvent):void{ previousAd(); } private function displayText():void{ var _local1:CIAd = _ads[currentAd]; if (_local1.header){ populateTextField(txtHeader, {link:_local1.link, text:_local1.header, target:_local1.target}, {size:20, color:_config.colors.title, underline:false, bold:true}, true); }; if (_local1.description){ populateTextField(txtMiddle, {link:_local1.link, text:_local1.description, target:_local1.target}, {size:15, color:_config.colors.desc}, true); }; if (_local1.bottom){ populateTextField(txtBottom, {link:_local1.link, text:_local1.bottom, target:_local1.target}, {size:14, color:_config.colors.link, bold:false}, true); }; startRotate(); } private function displayAd():void{ if (_ads.length > 1){ navigation.visible = true; }; var _local1:CIAd = _ads[currentAd]; removeImage(); if (((!(_local1.showImage())) && (_local1.showText()))){ setTextFieldPlacement(0); displayText(); isImage = false; } else { if (_local1.showImage()){ isImage = true; txtHeader.text = (txtMiddle.text = (txtBottom.text = "")); loadImage(_local1.image, onImageLoaded, _local1.link); }; }; resize(); } private function drawContainer():void{ var _local1:Graphics = container.graphics; _local1.clear(); overlayMatrix.createGradientBox(_width, _height, (180 * 0.0174532925199), 0, 0); _local1.beginGradientFill("linear", [0, 0], [0.6, 0], [200, 0xFF], overlayMatrix); _local1.drawRect(0, 2, _width, _height); _local1.endFill(); } private function onRollOut(_arg1:MouseEvent):void{ } private function clearContainer():void{ container.graphics.clear(); } private function getTextField():TextField{ var _local1:TextField = new TextField(); _local1.autoSize = TextFieldAutoSize.LEFT; _local1.selectable = false; _local1.addEventListener(TextEvent.LINK, text_linkClickedHandler); return (_local1); } public function hide(_arg1:Boolean=false):void{ var tween = _arg1; TweenLite.killTweensOf(peak, false); if (tween){ isOpen = false; TweenLite.to(container, 0.5, {y:_height, onComplete:function ():void{ showReopenButton(); }, overwrite:true}); } else { container.y = _height; }; } private function onReopenRequest(_arg1:MouseEvent):void{ show(); } public function clear():void{ _ads = []; } private function removeImage():void{ if (image){ while (image.numChildren > 0) { image.removeChildAt(0); }; }; } private function spaceText(_arg1:TextField, _arg2:TextField):void{ if (_arg1.text != ""){ _arg1.y = ((_arg2.y + _arg2.getLineMetrics(0).height) + 2); }; } private function onIOEvent(_arg1:IOErrorEvent):void{ } private function onCloseAd(_arg1:MouseEvent):void{ hide(true); } private function startRotate():void{ if (timer){ timer.reset(); timer.start(); }; } private function peak():void{ if (!isImage){ isOpen = false; TweenLite.to(container, 1, {y:(_height - txtHeader.height)}); } else { hide(true); }; } private function removeReopenButton():void{ var func:Function = function ():void{ txtShowAd.text = ""; }; TweenLite.to(reopenButton, 0.5, {alpha:0, onComplete:func}); } private function onTimerTick(_arg1:TimerEvent):void{ nextAd(); } private function showReopenButton():void{ addChild(reopenButton); txtShowAd.text = "Show ad"; TweenLite.to(reopenButton, 0.5, {alpha:1}); } private function onImageLoaded(_arg1:Event, _arg2:String, _arg3:String="_self"):void{ var e = _arg1; var link = _arg2; var window = _arg3; var obj:Sprite = new Sprite(); var bmp:Bitmap = (e.target.content as Bitmap); bmp.smoothing = true; obj.addChild(bmp); obj.buttonMode = true; fit(obj, (_width - 20), (_height - 10)); trace("OBJ ::", obj.width, obj.height); obj.x = 5; var func:Function = function ():void{ navigateToURL(new URLRequest(link), window); }; obj.addEventListener(MouseEvent.CLICK, func); image.addChild(obj); image.y = 5; if (CIAd(_ads[currentAd]).showText()){ displayText(); resize(); } else { startRotate(); }; } private function openLink(_arg1:String):void{ navigateToURL(new URLRequest(_arg1), "_blank"); } private function onRollOver(_arg1:MouseEvent):void{ if (!isOpen){ show(); }; } public function invoke():void{ trace("invoke:", firstLink); if (firstLink){ openLink(firstLink); }; } private function previousAd():void{ currentAd--; if (currentAd < 0){ currentAd = (_ads.length - 1); }; displayAd(); } public function show():void{ if (currentAd == -1){ if (_config.auto){ timer = new Timer((_config.auto * 1000), 1); timer.addEventListener(TimerEvent.TIMER, onTimerTick, false, 0, true); }; }; nextAd(); removeReopenButton(); TweenLite.to(container, 1, {y:0, onComplete:function ():void{ isOpen = true; }}); } } }//package com.conceptualideas.utils class CIAd { private var _bottom:String; private var _image:String; private var _show:String; private var _link:String; private var _header:String; private var _target:String; private var _description:String; private function CIAd(_arg1:String, _arg2:String, _arg3:String=null, _arg4:String=null, _arg5:String=null, _arg6:String="text", _arg7:String="_blank"){ this._header = _arg1; this._description = _arg3; this._image = _arg5; this._link = _arg2; this._bottom = _arg4; this._show = _arg6; this._target = _arg7; } public function get header():String{ return (_header); } public function get target():String{ return (_target); } public function showText():Boolean{ return (((((this._show == "text")) || ((this._show == "both")))) ? true : false); } public function get image():String{ return (_image); } public function showBoth():Boolean{ return (((this._show)=="both") ? true : false); } public function showImage():Boolean{ return (((((this._show == "image")) || ((this._show == "both")))) ? true : false); } public function get bottom():String{ return (_bottom); } public function get link():String{ return (_link); } public function get description():String{ return (_description); } }
Section 6
//CICloseButton (com.conceptualideas.utils.CICloseButton) package com.conceptualideas.utils { import flash.display.*; import flash.geom.*; public class CICloseButton extends Sprite { private const X_SHADOW_BOTTOM_Y_OFFSET:Number = 2; private const RATIOS:Array; private const BORDER_WIDTH:Number = 2; private const ALPHAS:Array; private const BUTTON_WIDTH:Number = 15; private const X_SHADOW_TOP_Y_OFFSET:Number = 1; private const X_SHADOW_BOTTOM_X_OFFSET:Number = 1; private const BUTTON_ROUND:Number = 4; private const X_INDENT:Number = 5; private const X_SHADOW_TOP_X_OFFSET:Number = -2; private var outerColors:Array; private var outerMatrix:Matrix; private var g:Graphics; private var innerColors:Array; private var innerMatrix:Matrix; public function CICloseButton(_arg1:Array=null, _arg2:Array=null):void{ ALPHAS = [100, 100]; RATIOS = [0, 0xFF]; super(); this.outerColors = (_arg1) ? _arg1 : [0xBFBFBF, 0xB0B0B0]; this.innerColors = (_arg2) ? _arg2 : [0xFFFFFF, 0xC0C0C0]; this.init(); } private function drawXShadow():void{ g.lineStyle(1, 0xFFFFFF, 100, false, "normal", "square", "bevel"); g.moveTo((X_INDENT + X_SHADOW_TOP_X_OFFSET), (X_INDENT + X_SHADOW_TOP_Y_OFFSET)); g.lineTo(((BUTTON_WIDTH - X_INDENT) - X_SHADOW_BOTTOM_X_OFFSET), ((BUTTON_WIDTH - X_INDENT) + X_SHADOW_BOTTOM_Y_OFFSET)); g.moveTo(((BUTTON_WIDTH - X_INDENT) - X_SHADOW_TOP_X_OFFSET), (X_INDENT + X_SHADOW_TOP_Y_OFFSET)); g.lineTo((X_INDENT + X_SHADOW_BOTTOM_X_OFFSET), ((BUTTON_WIDTH - X_INDENT) + X_SHADOW_BOTTOM_Y_OFFSET)); } private function drawX(_arg1:Array, _arg2:uint):void{ g.lineStyle(3, _arg2, 1, false, "normal", "square", "bevel"); g.lineGradientStyle("linear", _arg1, [100, 100], [0, 0xFF], outerMatrix); g.moveTo(X_INDENT, X_INDENT); g.lineTo((BUTTON_WIDTH - X_INDENT), (BUTTON_WIDTH - X_INDENT)); g.moveTo((BUTTON_WIDTH - X_INDENT), X_INDENT); g.lineTo(X_INDENT, (BUTTON_WIDTH - X_INDENT)); } private function init():void{ this.g = this.graphics; innerMatrix = new Matrix(); innerMatrix.createGradientBox(BUTTON_WIDTH, BUTTON_WIDTH, (Math.PI / 2), 0, 0); outerMatrix = new Matrix(); outerMatrix.createGradientBox((BUTTON_WIDTH - (BORDER_WIDTH * 2)), (BUTTON_WIDTH - (BORDER_WIDTH * 2)), (Math.PI / 2), 0, 0); drawButton(); } private function drawOuterBorder():void{ g.beginGradientFill("linear", outerColors, ALPHAS, RATIOS, outerMatrix); g.drawRoundRect(0, 0, BUTTON_WIDTH, BUTTON_WIDTH, BUTTON_ROUND, BUTTON_ROUND); g.endFill(); } private function drawButton():void{ drawOuterBorder(); drawInnerBorder(); drawXShadow(); drawX([0x5E5E5E, 0xA0A0A0], 0x555555); } private function drawState(_arg1:String="out"):void{ } private function drawInnerBorder():void{ g.beginGradientFill("linear", innerColors, ALPHAS, RATIOS, innerMatrix); g.drawRect(BORDER_WIDTH, BORDER_WIDTH, (BUTTON_WIDTH - (BORDER_WIDTH * 2)), (BUTTON_WIDTH - (BORDER_WIDTH * 2))); g.endFill(); } } }//package com.conceptualideas.utils
Section 7
//CIDimmer (com.conceptualideas.utils.CIDimmer) package com.conceptualideas.utils { import flash.external.*; public class CIDimmer { private var config:Object; private var swfID:String; private static var _instance:CIDimmer; public function CIDimmer(_arg1:Blocker):void{ var _local2:String; config = {areas:["left", "right", "top", "bottom"], leftOpacity:80, rightOpacity:80, topOpacity:80, bottomOpacity:80, backgroundColor:"#000000"}; super(); if (!(_arg1 is Blocker)){ throw (Error("Must use CIDimmer.instance()")); }; if (ExternalInterface.available){ swfID = ExternalInterface.objectID; _local2 = new JS_CIDimmer().toString(); ExternalInterface.call("eval", _local2); init(config); trace("CI DIMMER !!"); }; } public function init(_arg1:Object):void{ var _local2:String; for (_local2 in _arg1) { config[_local2] = _arg1[_local2]; }; config.object = swfID; if (ExternalInterface.available){ ExternalInterface.call("window.CIDimmer.init", config); }; } public function toggle():void{ ExternalInterface.call("window.CIDimmer.toggle"); } public static function instance():CIDimmer{ if (!_instance){ _instance = new CIDimmer(new Blocker()); }; return (_instance); } } }//package com.conceptualideas.utils class Blocker { private function Blocker(){ } }
Section 8
//ColorTools (com.conceptualideas.utils.ColorTools) package com.conceptualideas.utils { import flash.geom.*; public class ColorTools { private static var color_transform:ColorTransform; public static function lightenColor(_arg1:Number, _arg2:Number):Number{ var _local3:ColorTransform = new ColorTransform(); _local3.color = _arg1; _local3.redOffset = (_local3.redOffset + _arg2); _local3.greenOffset = (_local3.greenOffset + _arg2); _local3.blueOffset = (_local3.blueOffset + _arg2); if (_local3.redOffset > 0xFF){ _local3.redOffset = 0xFF; }; if (_local3.greenOffset > 0xFF){ _local3.greenOffset = 0xFF; }; if (_local3.blueOffset > 0xFF){ _local3.blueOffset = 0xFF; }; return ((_local3.color as Number)); } public static function isBright(_arg1:Number):Boolean{ return (((perceivedBrightness(_arg1))<130) ? false : true); } public static function applySolidColor(_arg1:Number, _arg2:Object):void{ if (!isNaN(_arg1)){ color_transform = new ColorTransform(); color_transform.color = _arg1; _arg2.transform.colorTransform = color_transform; }; } public static function applyVariableColor(_arg1:Number, _arg2:Object, _arg3:Number=0):void{ color_transform = new ColorTransform(); color_transform.color = _arg1; color_transform.redMultiplier = ((color_transform.redOffset)>0) ? (color_transform.redOffset / 0xFF) : 0; color_transform.redOffset = (0 + _arg3); color_transform.greenMultiplier = ((color_transform.greenOffset)>0) ? (color_transform.greenOffset / 0xFF) : 0; color_transform.greenOffset = (0 + _arg3); color_transform.blueMultiplier = ((color_transform.blueOffset)>0) ? (color_transform.blueOffset / 0xFF) : 0; color_transform.blueOffset = (0 + _arg3); _arg2.transform.colorTransform = color_transform; } public static function darkenColor(_arg1:Number, _arg2:Number):Number{ var _local3:ColorTransform = new ColorTransform(); _local3.color = _arg1; _local3.redOffset = (_local3.redOffset - _arg2); _local3.greenOffset = (_local3.greenOffset - _arg2); _local3.blueOffset = (_local3.blueOffset - _arg2); if (_local3.redOffset < 0){ _local3.redOffset = 0; }; if (_local3.greenOffset < 0){ _local3.greenOffset = 0; }; if (_local3.blueOffset < 0){ _local3.blueOffset = 0; }; return ((_local3.color as Number)); } public static function perceivedBrightness(_arg1:Number):Number{ var _local2:ColorTransform = new ColorTransform(); _local2.color = _arg1; var _local3:Number = _local2.redOffset; var _local4:Number = _local2.greenOffset; var _local5:Number = _local2.blueOffset; return (Math.sqrt(((((_local3 * _local3) * 0.241) + ((_local4 * _local4) * 0.691)) + ((_local5 * _local5) * 0.068)))); } public static function enhanceStrongestBasicColor(_arg1:Number, _arg2:Object, _arg3:Number):void{ var _local4:Number; color_transform = new ColorTransform(); color_transform.color = _arg1; var _local5:Number = 200; var _local6:Array = new Array(); _local6 = [{color:"red", value:color_transform.redOffset}, {color:"green", value:color_transform.greenOffset}, {color:"blue", value:color_transform.blueOffset}]; _local6.sort(sortByColor); var _local7:int; while (_local7 < _local6.length) { if (_local6[_local7].value <= _local5){ _local4 = _local7; break; }; _local7++; }; if (!isNaN(_local4)){ color_transform.redOffset = (color_transform.redOffset + _arg3); color_transform.greenOffset = (color_transform.greenOffset + _arg3); color_transform.blueOffset = (color_transform.blueOffset + _arg3); } else { color_transform.redOffset = (color_transform.redOffset - _arg3); color_transform.greenOffset = (color_transform.greenOffset - _arg3); color_transform.blueOffset = (color_transform.blueOffset - _arg3); }; _arg2.transform.colorTransform = color_transform; } private static function sortByColor(_arg1:Object, _arg2:Object):Number{ if (_arg1.value > _arg2.value){ return (-1); }; if (_arg1.value < _arg2.value){ return (1); }; return (0); } } }//package com.conceptualideas.utils
Section 9
//DomainTools (com.conceptualideas.utils.DomainTools) package com.conceptualideas.utils { import flash.events.*; import flash.display.*; import flash.utils.*; import flash.net.*; import org.osflash.thunderbolt.*; import flash.system.*; import flash.external.*; public class DomainTools { private var loaders:Dictionary; private var _url:String; private static var _instance:DomainTools; public function DomainTools(){ loaders = new Dictionary(true); super(); } public function get noCache():String{ return (String(Math.ceil((Math.random() * 999)))); } public function setUserSetting(_arg1:String, _arg2):void{ var _local3:SharedObject = SharedObject.getLocal("application_settings"); _local3.data[_arg1] = _arg2; _local3.flush(); } public function get domain():String{ var _local1:String; if (!local){ if (_url.indexOf("www.") != -1){ _local1 = _url.split("www.")[1]; }; _local1 = _url.split("http://")[1]; return (_local1.substr(0, _local1.indexOf("/")).toLowerCase()); }; return (_local1.substr(0, (_local1.lastIndexOf("/") + 1))); } public function get swfPath():String{ return (((_url.indexOf("?"))!=-1) ? _url.substr(0, _url.indexOf("?")) : _url); } public function get http():String{ return ((local) ? ("http://www." + domain) : domain); } private function onSecurityError(_arg1:SecurityErrorEvent):void{ } public function log(_arg1:String="info", _arg2:String=null, ... _args):void{ var _local4:Array = [_arg2].concat(_args); switch (_arg1){ case "info": Logger.info.apply(Logger, _local4); break; case "debug": Logger.debug.apply(Logger, _local4); break; }; } public function sendURL(_arg1:String, _arg2:Object=null, _arg3:String="POST"):void{ var _local5:String; var _local6:URLRequest; var _local4:URLVariables = new URLVariables(); for (_local5 in _arg2) { _local4[_local5] = _arg2[_local5]; }; _arg1 = relToAbsPath(fixUrl(_arg1)); _local6 = new URLRequest(_arg1); _local6.data = _local4; _local6.method = _arg3; sendToURL(_local6); } public function init(_arg1:DisplayObject):void{ FlashVarUtil.instance().init(_arg1); trace("DomainTools!!"); _url = _arg1.root.loaderInfo.url; } public function get base():String{ var _local1:String = _url.split("?")[0]; return (_local1.substr(0, (_local1.lastIndexOf("/") + 1))); } private function onIOEvent(_arg1:IOErrorEvent):void{ } public function loadBinary(_arg1:String, _arg2, _arg3:Object=null, _arg4:String="GET", _arg5:Boolean=false, ... _args):void{ _loadUrl.apply(this, [getUrlLoader(URLLoaderDataFormat.BINARY), _arg1, _arg2, _arg3, _arg4, _arg5].concat(_args)); } public function fixUrl(_arg1:String):String{ var _local2:String; if (_arg1.indexOf("file:///") != -1){ _arg1 = ("file:///" + _arg1.replace("file:///", "").replace("//", "/")); } else { _local2 = ""; if (_arg1.match(/http|https/)){ _local2 = ((_arg1.indexOf("http://"))!=-1) ? "http://" : "https://"; }; _arg1 = (_local2 + _arg1.replace(_local2, "").replace("//", "/")); }; return (_arg1); } public function fixBlur(_arg1:DisplayObject, _arg2:String="x"):void{ var _local3:Number = 0; if (String(_arg1[_arg2]).indexOf(".") != -1){ _local3 = (Number(("0." + String(_arg1[_arg2]).split(".")[1])) % 2); _local3 = (_local3 + (Number(String(_arg1[_arg2]).split(".")[0]) % 2)); } else { _local3 = (_arg1[_arg2] % 2); }; _arg1[_arg2] = (_arg1[_arg2] + _local3); } public function destoryLoader(_arg1:Loader):void{ _arg1.removeEventListener(IOErrorEvent.IO_ERROR, onIOEvent); _arg1.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, onSecurityError); } public function extend(_arg1:Object, ... _args){ var _local3:Object; var _local4:*; var _local5:*; var _local6:*; _arg1 = ((_arg1) || ({})); while (_args.length > 0) { _local3 = _args.shift(); if (_local3 != null){ for (_local4 in _local3) { _local5 = _arg1[_local4]; _local6 = _local3[_local4]; if (_local5 == null){ _local5 = {}; }; if (_arg1 === _local6){ } else { if (((!((_local6 == null))) && ((_local6.toString() == "[object Object]")))){ _arg1[_local4] = extend(_local5, _local6); } else { if (_local6 != undefined){ _arg1[_local4] = _local6; }; }; }; }; }; }; return (_arg1); } public function hasJS():Boolean{ if (ExternalInterface.available){ if (ExternalInterface.call("function(){ return (typeof 'abc' =='string')?true:false;}")){ return (true); }; }; return (false); } public function loadImage(_arg1:String, _arg2, ... _args):Loader{ var loader:Loader; var functions:Object; var ctx:LoaderContext; var url = _arg1; var callback = _arg2; var args = _args; loader = new Loader(); url = relToAbsPath(url); functions = {complete:function (_arg1:Event):void{ loader.removeEventListener(Event.INIT, functions.complete); loaders[loader] = null; var _local2:* = [_arg1].concat(args); if ((callback is Function)){ callback.apply(null, _local2); } else { callback.complete.apply(null, _local2); }; }, io:((callback is Function)) ? onIOEvent : ((callback.io) || (onIOEvent)), security:((callback is Function)) ? onSecurityError : ((callback.security) || (onSecurityError))}; loader.contentLoaderInfo.addEventListener(Event.INIT, functions.complete); loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, functions.io, false, 0, true); loader.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR, functions.security, false, 0, true); if ((((url.indexOf("http") == 0)) && (!(local)))){ ctx = new LoaderContext(true, ApplicationDomain.currentDomain, SecurityDomain.currentDomain); loader.load(new URLRequest(url), ctx); } else { loader.load(new URLRequest(url)); }; loaders[loader] = functions; return (loader); } public function getTopLevel(_arg1:String, _arg2:Number=1):String{ var _local3:Number = 0; while (_local3 < _arg2) { if (_arg1.lastIndexOf("/") == (_arg1.length - 1)){ _arg1 = _arg1.substr(0, _arg1.lastIndexOf("/")); }; _arg1 = _arg1.substr(0, _arg1.lastIndexOf("/")); _local3++; }; return ((_arg1 + "/")); } public function loadURL(_arg1:String, _arg2, _arg3:Object=null, _arg4:String="GET", _arg5:Boolean=false, ... _args):URLLoader{ return (_loadUrl.apply(this, [getUrlLoader(URLLoaderDataFormat.TEXT), _arg1, _arg2, _arg3, _arg4, _arg5].concat(_args))); } public function relToAbsPath(_arg1:String):String{ var _local2:String; if (local){ return (_arg1); }; if (_arg1.indexOf("../") == 0){ _local2 = (getTopLevel(base) + _arg1.substr(3)); } else { if (_arg1.indexOf("/") == 0){ _local2 = ((http + "/") + _arg1.substr(1)); if (_local2.indexOf("http") == -1){ _local2 = ("http://" + _local2); }; } else { if ((((_arg1.indexOf("http") == -1)) && (!(local)))){ _local2 = (base + _arg1); } else { _local2 = _arg1; }; }; }; return (_local2); } public function get local():Boolean{ return (!((_url.indexOf("file://") == -1))); } public function get vars():FlashVarUtil{ return (FlashVarUtil.instance()); } public function get swfName():String{ var _local1:String = swfPath; return (_local1.substr((_local1.lastIndexOf("/") + 1))); } public function getUsersetting(_arg1:String){ var _local2:SharedObject = SharedObject.getLocal("application_settings"); return (_local2.data[_arg1]); } public function navigate(_arg1:String, _arg2:String="_self", _arg3:Object=null, _arg4:String="GET"):void{ var _local6:URLVariables; var _local7:String; var _local5:URLRequest = new URLRequest(_arg1); if (_arg3){ _local6 = new URLVariables(); for (_local7 in _arg3) { _local6[_local7] = _arg3[_local7]; }; _local5.data = _local6; _local5.method = _arg4; }; navigateToURL(_local5, _arg2); } public function get adsense():Object{ var params:Object = {}; try { params["host"] = ExternalInterface.call("document.location.host.toString"); params["referrer"] = ExternalInterface.call("document.referrer.toString"); params["title"] = ExternalInterface.call("document.title.toString"); params["server_url"] = ExternalInterface.call("document.location.toString"); params["keywords"] = ExternalInterface.call("function (){String.prototype.trim = function() { return this.replace(/^s*([Ss]*)\bs*$/, '$1'); };var keywords=[];var meta=document.getElementsByTagName('META');for(var idx in meta){if(meta[idx].name){if(meta[idx].name.toLowerCase()=='keywords'){keywords.push(meta[idx].content.trim());}}}return keywords.join(',');}"); params["ua"] = ExternalInterface.call("function(){return navigator.userAgent;}"); } catch(e:Error) { trace("DomainTools.adsense", e); }; return (params); } public function onExternalSite(_arg1:String):Boolean{ var viewingURL:String; var domain = _arg1; try { if (hasJS()){ viewingURL = ExternalInterface.call("function(){ var loc=\"\";try{ loc=window.location.host.toString()}catch(e){} return loc}"); if (((!((viewingURL == ""))) || (!((viewingURL == null))))){ try { if (viewingURL.indexOf(domain) >= 0){ return (false); } else { trace("onExternal !!"); }; } catch(e:Error) { trace("onExternal !!"); return (true); }; }; }; } catch(e:Error) { return (false); }; return (true); } private function _loadUrl(_arg1:URLLoader, _arg2:String, _arg3, _arg4:Object=null, _arg5:String="GET", _arg6:Boolean=false, ... _args):URLLoader{ var key:String; var functions:Object; var loader = _arg1; var url = _arg2; var callback = _arg3; var params = _arg4; var method = _arg5; var removeNoCache = _arg6; var args = _args; var _params:URLVariables = new URLVariables(); var hasParams:Boolean; for (key in params) { _params[key] = params[key]; hasParams = true; }; url = fixUrl(relToAbsPath(decodeURIComponent(url))); if (((!(local)) && (!(removeNoCache)))){ url = (url + (((((url.indexOf("?"))==-1) ? "?" : "&" + "noCache=") + noCache) + "&")); }; if (((!((method == "POST"))) && (hasParams))){ url = (url + (((url.indexOf("?"))==-1) ? "?" : "&" + _params.toString())); _params = null; }; var request:URLRequest = new URLRequest(url); if (_params){ request.data = _params; }; functions = {complete:function (_arg1:Event):void{ var _local2:* = [_arg1].concat(args); if ((callback is Function)){ callback.apply(null, _local2); } else { callback.complete.apply(null, _local2); }; loader.removeEventListener(Event.COMPLETE, functions.complete); }, io:((callback is Function)) ? onIOEvent : ((callback.io) || (onIOEvent)), security:((callback is Function)) ? onSecurityError : ((callback.security) || (onSecurityError))}; request.method = method; loader.addEventListener(Event.COMPLETE, functions.complete); loader.addEventListener(IOErrorEvent.IO_ERROR, functions.io, false, 0, true); loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, functions.security, false, 0, true); loader.load(request); return (loader); } private function getUrlLoader(_arg1:String):URLLoader{ var _local2:URLLoader = new URLLoader(); _local2.dataFormat = _arg1; return (_local2); } public static function instance():DomainTools{ if (!_instance){ _instance = new (DomainTools); }; return (_instance); } } }//package com.conceptualideas.utils
Section 10
//Drawing (com.conceptualideas.utils.Drawing) package com.conceptualideas.utils { import flash.geom.*; public class Drawing { public static function drawPoly(_arg1, _arg2:Array, _arg3:Object=null, _arg4:Object=null):void{ if (_arg3 != null){ setFill(_arg1, _arg3); }; setLineStyle(_arg1, _arg4); _arg1.graphics.moveTo(_arg2[0].x, _arg2[0].y); var _local5:Number = 1; while (_local5 < _arg2.length) { _arg1.graphics.lineTo(_arg2[_local5].x, _arg2[_local5].y); _local5++; }; if (_arg3 != null){ _arg1.graphics.endFill(); }; } public static function buildFill(_arg1:String, _arg2:Array, _arg3:Array, _arg4:Array, _arg5:Object=null):Object{ return ({type:_arg1, colors:_arg2, alphas:_arg3, ratios:_arg4, matrix:(_arg5 as Matrix)}); } public static function drawCircle(_arg1, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null, _arg6:Object=null, _arg7:Boolean=false):void{ if (_arg5 != null){ setFill(_arg1, _arg5); }; setLineStyle(_arg1, _arg6); _arg1.graphics.drawCircle(_arg2, _arg3, _arg4); if (((!((_arg5 == null))) && (!(_arg7)))){ _arg1.graphics.endFill(); }; } public static function setFill(_arg1, _arg2:Object):void{ if ((_arg2 is Number)){ _arg1.graphics.beginFill(Number(_arg2)); } else { _arg1.graphics.beginGradientFill(_arg2.type, _arg2.colors, _arg2.alphas, _arg2.ratios, _arg2.matrix); }; } public static function buildMatrix(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=0):Matrix{ var _local6:Matrix = new Matrix(); _local6.createGradientBox(_arg3, _arg4, ((_arg5 / 180) * Math.PI), _arg1, _arg2); return (_local6); } public static function drawRect(_arg1, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Object=null, _arg7:Object=null, _arg8:Object=null, _arg9:Boolean=false):void{ if (_arg6){ setFill(_arg1, _arg6); }; setLineStyle(_arg1, _arg7); if (isNaN(Number(_arg8))){ _arg1.graphics.drawRect(_arg2, _arg3, _arg4, _arg5); } else { _arg1.graphics.drawRoundRect(_arg2, _arg3, _arg4, _arg5, Number(_arg8), Number(_arg8)); }; if (((!((_arg6 == null))) && (!(_arg9)))){ _arg1.graphics.endFill(); }; } public static function buildSingleFill(_arg1:uint, _arg2:Number):Object{ return (buildFill("linear", [_arg1, _arg1], [_arg2, _arg2], [0, 225])); } public static function setLineStyle(_arg1, _arg2:Object):void{ if (_arg2 != null){ _arg1.graphics.lineStyle(_arg2.thickness, _arg2.color, _arg2.alpha, _arg2.pixelHinting, _arg2.scaleMode, _arg2.caps, _arg2.joins, _arg2.miterLimit); }; } public static function drawArrow(_arg1, _arg2:Number, _arg3:Number, _arg4:String, _arg5:Object=null, _arg6:Object=null):void{ var _local7:Array = []; switch (_arg4){ case "left": _local7 = [{x:(_arg2 + 10), y:_arg3}, {x:_arg2, y:(_arg3 + 6)}, {x:_arg2, y:(_arg3 + 8)}, {x:(_arg2 + 10), y:(_arg3 + 14)}, {x:(_arg2 + 10), y:(_arg3 + 11)}, {x:(_arg2 + 4), y:(_arg3 + 7)}, {x:(_arg2 + 10), y:(_arg3 + 3)}, {x:(_arg2 + 10), y:_arg3}]; break; case "right": _local7 = [{x:_arg2, y:_arg3}, {x:(_arg2 + 10), y:(_arg3 + 6)}, {x:(_arg2 + 10), y:(_arg3 + 8)}, {x:_arg2, y:(_arg3 + 14)}, {x:_arg2, y:(_arg3 + 11)}, {x:(_arg2 + 6), y:(_arg3 + 7)}, {x:_arg2, y:(_arg3 + 3)}, {x:_arg2, y:_arg3}]; break; }; drawPoly(_arg1, _local7, _arg5); } public static function drawStar(_arg1, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Object=null, _arg8:Object=null):void{ var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; _arg4 = (_arg4 * 2); if (_arg7 != null){ setFill(_arg1, _arg7); }; setLineStyle(_arg1, _arg8); var _local9:Number = (360 / _arg4); var _local10:Number = 0; while (_local10 <= _arg4) { _local11 = (((_local9 * _local10) / 180) * Math.PI); _local12 = (((_local9 * (_local10 + 1)) / 180) * Math.PI); _local13 = (_arg5 * Math.sin(_local11)); _local14 = (_arg5 * Math.cos(_local11)); _local15 = (_arg6 * Math.sin(_local12)); _local16 = (_arg6 * Math.cos(_local12)); if (_local10 == 0){ _arg1.graphics.moveTo(_local13, _local16); _arg1.graphics.moveTo(_local15, _local16); } else { _arg1.graphics.lineTo(_local13, _local16); _arg1.graphics.lineTo(_local15, _local16); }; _local10 = (_local10 + 2); }; if (_arg7 != null){ _arg1.graphics.endFill(); }; if (((!(isNaN(_arg2))) && (!(isNaN(_arg3))))){ _arg1.x = (_arg6 + _arg2); _arg1.y = (_arg6 + _arg3); }; } public static function buildLineStyle(_arg1:Number=NaN, _arg2:uint=0, _arg3:Number=1, _arg4:Boolean=false, _arg5:String="normal", _arg6:String=null, _arg7:String=null, _arg8:Number=3):Object{ return ({thickness:_arg1, color:_arg2, alpha:_arg3, pixelHinting:_arg4, scaleMode:_arg5, caps:_arg6, joints:_arg7, miterLimit:_arg8}); } } }//package com.conceptualideas.utils
Section 11
//FlashVarUtil (com.conceptualideas.utils.FlashVarUtil) package com.conceptualideas.utils { import com.conceptualideas.interfaces.*; public class FlashVarUtil implements IFlashVars { private var currentMask; private var params:Object; private var _dontPickUp:Array; private static var _instance:FlashVarUtil; public function FlashVarUtil():void{ _dontPickUp = []; super(); } public function getKeyPairMap(... _args):Object{ var _local3:String; var _local2:Object = {}; for each (_local3 in _args) { if (hasKey(_local3)){ _local2[_local3] = getValue(_local3); }; }; return (_local2); } public function getParams():Object{ var _local2:String; var _local1:Object = {}; for (_local2 in params) { if (((!((_local2 == "noCache"))) && ((_dontPickUp.indexOf(_local2) == -1)))){ _local1[_local2] = encodeURIComponent(params[_local2]); }; }; return (_local1); } public function getSinglePairKey(... _args):String{ var _local3:String; var _local2 = ""; for each (_local3 in _args) { if (((params[_local3]) && ((_dontPickUp.indexOf(_local3) == -1)))){ _local2 = (_local2 + (((_local3 + "=") + params[_local3]) + "&")); }; }; return (_local2.substr(0, (_local2.length - 1))); } public function check(_arg1:String, ... _args){ return ((hasEither.apply(this, _args)) ? convert(getEither.apply(this, _args)) : convert(_arg1)); } public function getGroup(_arg1=null, _arg2=null):Array{ var selectMask = _arg1; var filterMask = _arg2; var select_filter:Function = function (_arg1:Object, _arg2:int, _arg3:Array):Boolean{ return (!((String(_arg1).match(selectMask) == null))); }; var remove_filter:Function = function (_arg1:Object, _arg2:int, _arg3:Array):Boolean{ return ((String(_arg1).match(filterMask) == null)); }; if (filterMask){ return (((getKeys().filter(select_filter).filter(remove_filter)) || ([]))); }; return (((getKeys().filter(select_filter)) || ([]))); } public function init(_arg1:Object):void{ params = extend(_arg1.stage.loaderInfo.parameters, _arg1.root.loaderInfo.parameters); } public function containsValue(_arg1:String):Boolean{ if (hasKey(_arg1)){ return (((getValue(_arg1))!="") ? true : false); }; return (false); } private function fitsMask(_arg1, _arg2:int, _arg3:Array):Boolean{ return ((_arg1.indexOf(currentMask) >= -1)); } public function getEither(... _args):String{ var _local2:String; for each (_local2 in _args) { if (hasKey(_local2)){ return (getValue(_local2)); }; }; return (null); } public function extend(_arg1:Object, _arg2:Object=null){ var _local3:*; var _local4:*; var _local5:*; if (_arg2 != null){ for (_local3 in _arg2) { _local4 = _arg1[_local3]; _local5 = _arg2[_local3]; if (_arg1 === _local5){ } else { _arg1[_local3] = convert(_local5); }; }; }; return (_arg1); } public function hasKey(_arg1:String):Boolean{ return (((params[_arg1])!=null) ? true : false); } public function getKeys():Array{ var _local2:String; var _local1:Array = []; for (_local2 in params) { _local1.push(_local2); }; return (_local1); } public function getPairKey():String{ var _local2:String; var _local1 = ""; for (_local2 in params) { if (((!((_local2 == "noCache"))) && ((_dontPickUp.indexOf(_local2) == -1)))){ _local1 = (_local1 + (((_local2 + "=") + params[_local2]) + "&")); }; }; return (_local1.substr(0, (_local1.length - 1))); } public function getBoolean(_arg1:String):Boolean{ return ((hasKey(_arg1)) ? (params[_arg1] == "true") : false); } public function convert(_arg1){ if (!isNaN(Number(_arg1))){ return (Number(_arg1)); }; if (_arg1 == "true"){ return (true); }; if (_arg1 == "false"){ return (false); }; return (_arg1); } public function addMask(... _args):void{ _dontPickUp = _dontPickUp.concat(_args); } public function getValue(_arg1:String):String{ return ((hasKey(_arg1)) ? params[_arg1] : ""); } public function hasEither(... _args):Boolean{ var _local2:String; for each (_local2 in _args) { if (hasKey(_local2)){ return (true); }; }; return (false); } public static function instance():FlashVarUtil{ if (!_instance){ _instance = new (FlashVarUtil); }; return (_instance); } } }//package com.conceptualideas.utils
Section 12
//JS_CIDimmer (com.conceptualideas.utils.JS_CIDimmer) package com.conceptualideas.utils { import flash.utils.*; public class JS_CIDimmer extends ByteArray { } }//package com.conceptualideas.utils
Section 13
//JS_MouseWheelManager (com.conceptualideas.utils.JS_MouseWheelManager) package com.conceptualideas.utils { import flash.utils.*; public class JS_MouseWheelManager extends ByteArray { } }//package com.conceptualideas.utils
Section 14
//MouseWatcher (com.conceptualideas.utils.MouseWatcher) package com.conceptualideas.utils { import flash.events.*; import flash.display.*; import flash.external.*; public class MouseWatcher { private var setFocused:Boolean;// = false private var REFOCUS_CODE:String; private var mouseLeft:Boolean;// = true private var _stage:DisplayObjectContainer; public static const MOUSE_LEFT:String = "mouse_left"; public static const MOUSE_RETURN:String = "mouse_return"; private static var _instance:MouseWatcher; public static var doWindowFocus:Boolean = true; public function MouseWatcher(_arg1:DisplayObjectContainer){ _stage = _arg1; init(); } private function init():void{ if (ExternalInterface.available){ REFOCUS_CODE = (("var ___=window.document[\"" + ExternalInterface.objectID) + "\"]; if(___){___.focus();}"); _stage.addEventListener(Event.MOUSE_LEAVE, onMouseOut); _stage.addEventListener(MouseEvent.MOUSE_MOVE, onMouseMove); }; } private function onMouseOut(_arg1:Event):void{ mouseLeft = true; setFocused = false; if (doWindowFocus){ trace("Focus Window"); ExternalInterface.call("eval", "window.focus()"); }; } private function onMouseMove(_arg1:MouseEvent):void{ if (((mouseLeft) && (!(setFocused)))){ trace("onMouseMove"); ExternalInterface.call("eval", REFOCUS_CODE); setFocused = true; mouseLeft = false; }; } public static function setup(_arg1:DisplayObjectContainer):void{ if (!_instance){ _instance = new MouseWatcher(_arg1); }; } } }//package com.conceptualideas.utils
Section 15
//MouseWheelManager (com.conceptualideas.utils.MouseWheelManager) package com.conceptualideas.utils { import flash.events.*; import flash.display.*; import flash.external.*; public class MouseWheelManager { private var _currItem:InteractiveObject; public var loadDynamically:Boolean;// = true private var _clonedEvent:MouseEvent; public var loadDynamicallyInterval:int;// = 0 private var _stage:Stage; private static const EXTERNAL_MOUSE_EVENT:String = "externalMouseEvent"; private static var instance:MouseWheelManager; public function MouseWheelManager(_arg1:SingletonEnforcer=null, _arg2:Stage=null){ if (((_arg1) && (_arg2))){ setupMouseManager(_arg2); }; } private function setupMouseManager(_arg1:Stage):void{ var stage = _arg1; try { _stage = stage; _stage.addEventListener(MouseEvent.MOUSE_MOVE, _getItemUnderCursor); if (ExternalInterface.available){ ExternalInterface.addCallback(EXTERNAL_MOUSE_EVENT, _externalMouseEvent); loadScript(); ExternalInterface.call("eval", (("swfMouseWheel.addItem('" + ExternalInterface.objectID) + "')")); } else { trace("MouseWheelManager Not Loaded"); }; } catch(e:Error) { trace(e); }; } private function _externalMouseEvent(_arg1:Number):void{ if (!_clonedEvent){ return; }; trace("_externalMouseEvent", _arg1); var _local2:MouseEvent = new MouseEvent(MouseEvent.MOUSE_WHEEL, true, false, _clonedEvent.localX, _clonedEvent.localY, _clonedEvent.relatedObject, _clonedEvent.ctrlKey, _clonedEvent.altKey, _clonedEvent.shiftKey, _clonedEvent.buttonDown, int(_arg1)); _stage.stage.dispatchEvent(_local2); } private function isTransparent():Boolean{ var _local2:Array; var _local3:String; var _local1:String = ExternalInterface.call("eval", (("var _el=document.getElementById('" + ExternalInterface.objectID) + "'); if(typeof(_el) !='undefined'){_el.innerHTML;}")); if (_local1){ _local2 = _local1.toLowerCase().match(/<param [\w=#\"\s>]+/ig); for each (_local3 in _local2) { if (((_local3.match(/wmode/i)) && (_local3.match(/transparent/i)))){ return (true); }; }; }; return (false); } private function _getItemUnderCursor(_arg1:MouseEvent):void{ _currItem = InteractiveObject(_arg1.target); _clonedEvent = MouseEvent(_arg1); } private function loadScript():void{ var _local1:String = new JS_MouseWheelManager().toString(); ExternalInterface.call("eval", _local1); } public static function setup(_arg1:Stage):void{ if (instance == null){ instance = new MouseWheelManager(new SingletonEnforcer(), _arg1); }; } } }//package com.conceptualideas.utils class SingletonEnforcer { private function SingletonEnforcer(){ } }
Section 16
//Bootloader (com.conceptualideas.videoplayer.core.bootloader.Bootloader) package com.conceptualideas.videoplayer.core.bootloader { import com.conceptualideas.videoplayer.interfaces.*; public class Bootloader { private static var _callback:Function; public static var stage:Object; private static var _levels:Object = {pre:null, mid:null, post:null}; public static function init(_arg1:Object, _arg2:Function):void{ _slot1.stage = _arg1; _callback = _arg2; _levels["pre"].run(onPreBootFinished); } public static function addBoot(_arg1:String, _arg2:IBootLoader):void{ _levels[_arg1] = _arg2; } private static function onMidBootFinished(_arg1:Object):void{ _slot1._callback.apply(stage, [_arg1.view]); } private static function onPreBootFinished(_arg1:Object):void{ _levels["mid"].run(onMidBootFinished, _arg1); } } }//package com.conceptualideas.videoplayer.core.bootloader
Section 17
//MidBootLoader (com.conceptualideas.videoplayer.core.bootloader.MidBootLoader) package com.conceptualideas.videoplayer.core.bootloader { import flash.events.*; import com.conceptualideas.videoplayer.player.*; import com.conceptualideas.videoplayer.interfaces.*; import flash.display.*; import com.conceptualideas.videoplayer.utils.*; import com.conceptualideas.videoplayer.events.*; import com.conceptualideas.videoplayer.models.*; import com.conceptualideas.videoplayer.modules.advertisement.*; import com.conceptualideas.videoplayer.modules.interfaces.*; import com.conceptualideas.videoplayer.modules.ui.*; import com.conceptualideas.videoplayer.enhancements.*; import com.conceptualideas.videoplayer.modules.*; import com.conceptualideas.videoplayer.modules.analytics.*; public class MidBootLoader extends Sprite implements IBootLoader { protected var view:AbstractView; protected var repo:ModuleRepo; private var _callback:Function; private static var _instance:MidBootLoader; private static var _loaded:Boolean = false; public function MidBootLoader(){ repo = ModuleRepo.getInstance(); super(); repo.add(ControlBarEnhancements, PlayerEnhancements, VideoEnhancements); repo.add(Javascript, JoinScreen, Verify, Detacher, InlineAd); } protected function loadModules():void{ view.loadModule(new Hooker()); view.loadModule(new ControlBar()); view.loadModule(new Watermark()); var settings:Settings = Settings.instance(); if (settings.dtools.vars.getGroup(/overlay\.*[\w]*|image/i).length){ view.loadModule(new ImageOverlay()); }; if (settings.hasAds()){ view.loadModule(new Ads()); }; view.loadModule(new VideoDisplay()); view.loadModule(new RightClickModule()); view.loadModule(new ReplayScreen()); var modules:Array = settings.retrive("").get("modules.load"); modules.push("Javascript"); loadComponent(modules, function (_arg1:Class):void{ view.loadModule(IComponent(new (_arg1))); }); } public function run(_arg1:Function, _arg2:Object=null):void{ var _local3:MovieClip = _arg2.skin; Bootloader.stage.addChild(_local3); var _local4:Object = _arg2.settings; var _local5:BaseController = new BaseController(_local4, _local3); var _local6:Model = new Model(_local4, _local5, _local3); view = new BaseView(_local4, _local3, _local5, _local6); _local5.close(_local6, view); initModels(_local6); loadModules(); loadEnhancements(); _arg1({view:view}); } protected function initModels(_arg1:Model):void{ _arg1.addModel(new RTMPModel(_arg1), "rtmp"); _arg1.addModel(new LighttpdModel(_arg1), "lighttpd"); _arg1.addModel(new HttpModel(_arg1), "http"); _arg1.addModel(new SecureStreaming(_arg1), "cisecure"); } protected function loadEnhancements():void{ var enhancements:Array = ((Settings.instance().retrive("").get("enhancements.load")) || ([])); if (enhancements.indexOf("Video") == -1){ enhancements.push("Video"); }; if (enhancements.length){ loadComponent(enhancements, function (_arg1:Class):void{ view.loadModule(IComponent(new (_arg1))); }); }; } protected function loadComponent(_arg1:Array, _arg2:Function):void{ var _local3:String; for each (_local3 in _arg1) { if (_local3 == ""){ } else { if (repo.has(_local3)){ _arg2((repo.get(_local3) as Class)); }; }; }; } protected function loadPlugins():void{ var _local1:Settings = Settings.instance(); var _local2:Array = _local1.retrive("").get("plugins.load"); } private function onLoadComplete(_arg1:Event):void{ } } }//package com.conceptualideas.videoplayer.core.bootloader
Section 18
//ModuleRepo (com.conceptualideas.videoplayer.core.bootloader.ModuleRepo) package com.conceptualideas.videoplayer.core.bootloader { import flash.utils.*; public class ModuleRepo { private var repo:Dictionary; private var _block:Boolean;// = false private static var _instance:ModuleRepo; public function ModuleRepo(){ repo = new Dictionary(true); super(); } public function has(_arg1:String):Boolean{ if (repo[_arg1]){ return (true); }; if (repo[(_arg1 + "Enhancements")]){ return (true); }; return (false); } public function get(_arg1:String):Class{ var _local2:Object = (repo[_arg1]) ? repo[_arg1] : repo[(_arg1 + "Enhancements")]; if (_local2){ return ((_local2.instance as Class)); }; return (null); } public function add(... _args):ModuleRepo{ var _local2:String; var _local3:Class; if (_block){ return (this); }; for each (_local3 in _args) { _local2 = getQualifiedClassName(_local3); repo[((_local2.indexOf("::"))==-1) ? _local2 : _local2.split("::")[1]] = {instance:_local3, path:_local2.replace("::", ".")}; }; return (this); } public function set block(_arg1:Boolean):void{ _block = _arg1; } public static function getInstance():ModuleRepo{ if (!_instance){ _instance = new (ModuleRepo); }; return (_instance); } } }//package com.conceptualideas.videoplayer.core.bootloader
Section 19
//PreBootLoader (com.conceptualideas.videoplayer.core.bootloader.PreBootLoader) package com.conceptualideas.videoplayer.core.bootloader { import flash.events.*; import com.conceptualideas.videoplayer.interfaces.*; import flash.display.*; import com.conceptualideas.videoplayer.utils.*; import com.conceptualideas.videoplayer.models.*; public class PreBootLoader extends EventDispatcher implements IBootLoader { private var _callback:Function; protected var settings:Settings; public function PreBootLoader(){ settings = Settings.instance(); super(); } private function onSkinLoaded(_arg1:Event):void{ _callback({skin:_arg1.target.skin, settings:settings.retrive("")}); } private function onSettingsLoaded(_arg1:Event):void{ var _local2:PlayerSkin = PlayerSkin.instance(); _local2.addEventListener(PlayerSkin.SKIN_LOADED, onSkinLoaded); _local2.load(settings.retrive("ui.skin")); } public function run(_arg1:Function, _arg2:Object=null):void{ _callback = _arg1; settings.init((Bootloader.stage as DisplayObjectContainer)); settings.addEventListener(Settings.LOADED, onSettingsLoaded); settings.load(); } } }//package com.conceptualideas.videoplayer.core.bootloader
Section 20
//HookRepo (com.conceptualideas.videoplayer.core.hooks.HookRepo) package com.conceptualideas.videoplayer.core.hooks { import com.conceptualideas.videoplayer.interfaces.*; import flash.utils.*; public class HookRepo { private var _lastResults:HookResults; private var _dict:Dictionary; private var pending:Array; private var _type:String; public function HookRepo(_arg1:String):void{ _dict = new Dictionary(true); pending = []; super(); _type = _arg1; } public function add(_arg1:ISystemHook):void{ _dict[_arg1.getHookID()] = _arg1; } public function run(_arg1:Function):void{ var _local2:ISystemHook; if (((_lastResults) && (!(_lastResults.finished())))){ return; }; if (_lastResults){ _lastResults.destroy(); }; _lastResults = new HookResults(_type, _arg1); for each (_local2 in _dict) { _lastResults.add(_local2); }; _lastResults.commit(); } public function remove(_arg1:Function, _arg2:Boolean=false):Boolean{ var _local4:String; var _local3:int; for (_local4 in _dict) { if (((ISystemHook(_dict[_local4]).same(_arg1)) || (_arg2))){ _dict[_local4].destroy(); delete _dict[_local4]; _local3++; }; }; return ((_local3) ? true : false); } } }//package com.conceptualideas.videoplayer.core.hooks
Section 21
//HookResults (com.conceptualideas.videoplayer.core.hooks.HookResults) package com.conceptualideas.videoplayer.core.hooks { import flash.events.*; import com.conceptualideas.videoplayer.interfaces.*; import flash.utils.*; public class HookResults implements IHookResults { private var timer:Timer; private var _finished:Boolean;// = false private var _type:String; private var _callback:Function; private var _hooks:Array; private var _id:int; private var _hasPending:Boolean;// = false private var _results:Object; public function HookResults(_arg1:String, _arg2:Function){ _results = {}; timer = new Timer(500); _hooks = []; _id = new Date().time; super(); _callback = _arg2; _type = _arg1; } private function onCheckPendingRequest(_arg1:TimerEvent):void{ var _local2:ISystemHook; for each (_local2 in _hooks) { if (!_local2.isSync()){ if (_local2.running()){ return; }; }; }; timer.removeEventListener(TimerEvent.TIMER, onCheckPendingRequest); dispatchResults(); } public function isType(_arg1:String):Boolean{ return (((_arg1)==_type) ? true : false); } public function commit():void{ if (_hasPending){ timer.addEventListener(TimerEvent.TIMER, onCheckPendingRequest, false, 0, true); timer.start(); } else { dispatchResults(); }; } public function destroy():void{ timer.stop(); timer.removeEventListener(TimerEvent.TIMER, onCheckPendingRequest); timer = null; _results = null; _callback = null; _hooks = null; } public function isError(_arg1):Boolean{ return (((((_arg1 is String)) && ((_arg1 == "Error")))) ? true : false); } public function get(_arg1:String){ if (has(_arg1)){ return (_results[_arg1]); }; return ("Error"); } public function has(_arg1:String):Boolean{ return ((_results[_arg1]) ? true : false); } private function dispatchResults():void{ var _local1:ISystemHook; for each (_local1 in _hooks) { _results[_local1.getName()] = _local1.answer(); }; if ((_callback is Function)){ _callback.apply(null, [this]); }; _finished = true; } public function add(_arg1:ISystemHook):void{ _finished = false; if (!_arg1.isSync()){ _hasPending = true; }; _arg1.run(); _hooks.push(_arg1); } public function finished():Boolean{ return (_finished); } } }//package com.conceptualideas.videoplayer.core.hooks
Section 22
//Hooks (com.conceptualideas.videoplayer.core.hooks.Hooks) package com.conceptualideas.videoplayer.core.hooks { import com.conceptualideas.videoplayer.interfaces.*; public class Hooks { private static var _hooks:Object = {}; private static var _instance:Hooks; public function Hooks(_arg1:Array, _arg2:Blocker){ init(_arg1); } private function init(_arg1:Array):void{ var _local2:String; for each (_local2 in _arg1) { _hooks[_local2] = new HookRepo(_local2); }; } private function run(_arg1:String, _arg2:Function, _arg3:Object=null):void{ var type = _arg1; var callback = _arg2; var scope = _arg3; var f:Function = function (_arg1:IHookResults):void{ callback.apply(scope, [_arg1]); }; if (_hooks[type]){ HookRepo(_hooks[type]).run(f); }; } private function unhook(_arg1:String, _arg2:Function=null, _arg3:Boolean=false):Boolean{ if (_hooks[_arg1]){ _hooks[_arg1].remove(_arg2); }; return (true); } private function hook(_arg1:String, _arg2:String, _arg3:Function, _arg4:Object=null, _arg5:Boolean=true):ISystemHook{ var _local6:SystemHook = new SystemHook(_arg2, _arg3, _arg4, _arg5); _hooks[_arg1].add(_local6); return (_local6); } public static function init(_arg1:Array):void{ if (!_instance){ _instance = new Hooks(_arg1, new Blocker()); }; } public static function hook(_arg1:String, _arg2:String, _arg3:Function, _arg4:Object=null, _arg5:Boolean=true):ISystemHook{ return (_instance.hook.apply(_instance, arguments)); } public static function run(_arg1:String, _arg2:Function, _arg3:Object=null):void{ _instance.run.apply(_instance, arguments); } public static function unhook(_arg1:String, _arg2:Function=null, _arg3:Boolean=false):Boolean{ return (_instance.unhook.apply(_instance, arguments)); } } }//package com.conceptualideas.videoplayer.core.hooks class Blocker { private function Blocker(){ } }
Section 23
//SystemHook (com.conceptualideas.videoplayer.core.hooks.SystemHook) package com.conceptualideas.videoplayer.core.hooks { import com.conceptualideas.videoplayer.interfaces.*; public class SystemHook implements ISystemHook { private var _running:Boolean;// = false private var _sync:Boolean; private var _scope:Object; private var _hookID:int; private var _func:Function; private var _answer; private var _name:String; public function SystemHook(_arg1:String, _arg2:Function, _arg3:Object=null, _arg4:Boolean=true){ this._hookID = new Date().time; this._func = _arg2; this._sync = _arg4; this._name = _arg1; this._scope = _arg3; } public function getName():String{ return (_name); } public function run():void{ _running = true; this._func.apply(_scope); } public function assert(... _args):void{ _answer = (((((_args) && (_args["length"]))) && ((_args.length == 1)))) ? _args.shift() : _args; _running = false; } public function destory():void{ } public function isSync():Boolean{ return (this._sync); } public function same(_arg1:Function):Boolean{ return (true); } public function getHookID():int{ return (this._hookID); } public function answer(){ return (_answer); } public function running():Boolean{ return (_running); } } }//package com.conceptualideas.videoplayer.core.hooks
Section 24
//ProgressiveTimer (com.conceptualideas.videoplayer.enhancements.views.ProgressiveTimer) package com.conceptualideas.videoplayer.enhancements.views { import flash.events.*; import flash.display.*; import com.conceptualideas.videoplayer.utils.*; import flash.geom.*; import flash.utils.*; import com.conceptualideas.videoplayer.events.*; import com.dougmccune.*; public class ProgressiveTimer extends Sprite { private var config:Object; private var currentItem:Object; private var timer:MovieClip; private var view:AbstractView; private var bar:MovieClip; private var showing:Boolean;// = false private var autoHideID:Number; public function ProgressiveTimer(_arg1:AbstractView){ config = {showHours:false}; super(); this.view = _arg1; init(); } private function onEnterFrame(_arg1:Event):void{ var e = _arg1; clearTimeout(autoHideID); if (HitTester.realHitTest(bar.seek, new Point(mouseX, mouseY))){ updateTimeHead(); } else { autoHideID = setTimeout(function ():void{ hide(); }, 500); }; } private function setupListeners():void{ bar = view.skin.controlbar; timer = view.skin.progress_timer; timer.time.selectable = false; timer.mouseEnabled = false; timer.visible = false; if (bar){ bar.seek.addEventListener(MouseEvent.ROLL_OVER, onBarRollOverRequest, false, 0, true); view.addControllerListener(ControllerEvent.RESIZE, onResizeRequest); view.addControllerListener(ControllerEvent.LOAD, onLoadRequst); }; } private function hide():void{ view.stage.removeEventListener(Event.ENTER_FRAME, onEnterFrame); showing = false; timer.visible = false; bar.seek.addEventListener(MouseEvent.ROLL_OVER, onBarRollOverRequest, false, 0, true); bar.seek.removeEventListener(MouseEvent.ROLL_OUT, onBarRollOutRequest); } private function init():void{ setupListeners(); } private function onBarRollOutRequest(_arg1:MouseEvent):void{ if (showing){ hide(); }; } private function show():void{ showing = true; bar.seek.removeEventListener(MouseEvent.ROLL_OVER, onBarRollOverRequest); bar.seek.addEventListener(MouseEvent.MOUSE_OUT, onBarRollOutRequest, false, 0, true); view.stage.addEventListener(Event.ENTER_FRAME, onEnterFrame, false, 0, true); } private function updateTimeHead():void{ var _local2:Number; var _local3:String; var _local1:Number = currentItem.duration; if (_local1 != 0){ timer.visible = true; _local2 = (((bar.seek.mouseX - bar.seek.bounds.x) / bar.seek.bounds.width) * _local1); _local3 = Strings.digits(_local2, config.showHours); timer.x = (mouseX - (timer.width / 2)); timer.time.text = _local3; } else { hide(); }; } private function onBarRollOverRequest(_arg1:MouseEvent):void{ if (!showing){ show(); }; } private function onResizeRequest(_arg1:ControllerEvent):void{ timer.y = (bar.y + (bar.height / 2)); view.skin.addChildAt(timer, (view.skin.numChildren - 1)); } private function onLoadRequst(_arg1:ControllerEvent):void{ currentItem = view.currentItem; } } }//package com.conceptualideas.videoplayer.enhancements.views
Section 25
//ControlBarEnhancements (com.conceptualideas.videoplayer.enhancements.ControlBarEnhancements) package com.conceptualideas.videoplayer.enhancements { import flash.events.*; import flash.display.*; import com.conceptualideas.utils.*; import flash.geom.*; import flash.utils.*; import com.conceptualideas.videoplayer.events.*; import gs.*; import com.conceptualideas.videoplayer.modules.ui.*; import flash.ui.*; import com.conceptualideas.videoplayer.enhancements.views.*; public class ControlBarEnhancements extends BaseComponent { private var config:Object; private var firstPlay:Boolean;// = false private var autohideTimer:Timer; private var volumeHideTimer:Timer; private var paused:Boolean;// = false private var volumeTween:TweenLite; public function ControlBarEnhancements(){ config = {useAutoHide:false, useProgressiveTimer:false, maxHeight:false, autoHideVolume:true, autohide:{peakDuration:1, fadeDuration:1, hide:false, peak:false, fade:false, delay:5}, seek:{mouse:false, keyboard:false, keyRatio:2, stepSeekTime:20}, extraButtons:[], definitions:{}, moveVideoControlsToTop:false}; super(); } override public function initalize(_arg1:AbstractView):void{ super.initalize(_arg1); var _local2:DomainTools = DomainTools.instance(); config = _local2.extend(config, _arg1.config.get("controlbar", false, true)); addEnhancements(); } public function getName():String{ return ("controlbarEnhancements"); } private function onPlayerLoaded(_arg1:ViewEvent):void{ autohideTimer.start(); } private function layoutVideoControls():void{ var _local1:Sprite = view.skin["controlbar"]; if (!_local1){ return; }; var _local2:DisplayObject = _local1.getChildByName("video"); var _local3:DisplayObject = _local1.getChildByName("fullscreen"); var _local4:Point = _local1.globalToLocal(new Point(0, 10)); if (_local2){ _local2.y = _local4.y; }; if (_local3){ _local3.y = _local4.y; }; } private function onVolumeShowRequest(_arg1:MouseEvent):void{ var e = _arg1; if (volumeTween){ volumeTween.complete(true); }; volumeHideTimer.stop(); volumeHideTimer.reset(); try { view.skin.controlbar.volume.volume_slider.visible = true; view.skin.controlbar.volume.addEventListener(MouseEvent.MOUSE_OUT, onMouseVolumeOut, false, 0, true); } catch(e:Error) { }; } private function addExtraButtons():void{ var _local2:Object; var _local3:String; var _local4:Object; var _local5:String; var _local6:String; trace("extraButtons"); var _local1:ControlBar = view.getModule("ControlBar"); if (_local1){ _local2 = config.definitions; trace("extraButtons::def", config.definitions); for each (_local3 in config.extraButtons) { trace("extraButtons::button", _local3); if (((_local2[_local3]) && (_local1.hasClip(_local3)))){ _local4 = {}; _local4[_local3] = {}; _local5 = _local2[_local3].split("::")[0]; _local6 = _local2[_local3].split("::")[1]; _local4[_local3][_local5] = _local6; if (_local1.addButton(_local3, _local4)){ }; } else { trace("extraButtons::notfound", _local3); }; }; }; } private function onHideControlBar(_arg1:TimerEvent):void{ if (!paused){ hideControlBar(); }; } private function hideControlBar():void{ var bar:Sprite = view.skin.controlbar; var callback:Function = function ():void{ view.sendEvent("CONTROLBAR_HIDE"); }; view.sendEvent("CONTROLBAR_HIDE_START"); if (config.autohide.fade){ TweenLite.to(bar, config.autohide.fadeDuration, {alpha:0, onComplete:callback}); } else { bar.visible = false; callback(); }; } private function onHideVolumeRequest(_arg1:TimerEvent):void{ var e = _arg1; try { volumeTween = TweenLite.to(view.skin.controlbar.volume.volume_slider, 1, {alpha:0, onComplete:function ():void{ view.skin.controlbar.volume.volume_slider.visible = false; view.skin.controlbar.volume.volume_slider.alpha = 1; view.skin.controlbar.volume.volume_slider.removeEventListener(MouseEvent.MOUSE_OUT, onMouseVolumeOut); }}); } catch(e:Error) { }; } private function onResizeRequest(_arg1:ControllerEvent):void{ layoutVideoControls(); } private function onFinishedRequest(_arg1:ControllerEvent):void{ firstPlay = false; } private function onPlayRequest(_arg1:ControllerEvent):void{ firstPlay = true; } private function stepSeek(_arg1:Number):void{ if (((view.currentItem) && (firstPlay))){ view.sendEvent(ViewEvent.STEP_SEEK, {step:config.seek.stepSeekTime, delta:((_arg1)<0) ? -1 : 1}); }; } private function onLoadRequest(_arg1:ControllerEvent):void{ firstPlay = (view.config.get("main.autoPlay")) ? true : false; } private function onMouseEnterStage(_arg1:MouseEvent):void{ var e = _arg1; autohideTimer.stop(); autohideTimer.reset(); var bar:Sprite = view.skin.controlbar; view.sendEvent("CONTROLBAR_SHOW"); var callback:Function = function ():void{ view.sendEvent("CONTROLBAR_SHOW_FINISHED"); }; if (config.autohide.fade){ TweenLite.to(bar, config.autohide.fadeDuration, {alpha:1, onComplete:callback}); } else { bar.visible = true; callback(); }; } public function resume():void{ paused = false; } private function addEnhancements():void{ if (config.useAutoHide){ view.skin.stage.addEventListener(Event.MOUSE_LEAVE, onMouseStageLeave); view.skin.stage.addEventListener(MouseEvent.MOUSE_OVER, onMouseEnterStage); autohideTimer = new Timer((config.autohide.delay * 1000), 1); autohideTimer.addEventListener(TimerEvent.TIMER_COMPLETE, onHideControlBar); view.addViewListener(ViewEvent.INIT, onPlayerLoaded); }; if (((config.useProgressiveTimer) && (view.skin.progress_timer))){ new ProgressiveTimer(view); }; if (config.seek.mouse){ MouseWheelManager.setup(view.skin.stage); view.skin.stage.addEventListener(MouseEvent.MOUSE_WHEEL, onMouseWheel); }; if (config.seek.keyboard){ view.skin.stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDownRequest); }; if (((config.seek.keyboard) || (config.seek.mouse))){ view.addControllerListener(ControllerEvent.LOAD, onLoadRequest); view.addControllerListener(ControllerEvent.FINISHED, onFinishedRequest); view.addControllerListener(ControllerEvent.PLAY, onPlayRequest); }; if (((((view.skin.controlbar.volume) && (view.skin.controlbar.volume.volume_show))) && (config.autoHideVolume))){ view.skin.controlbar.volume.addEventListener(MouseEvent.MOUSE_OVER, onVolumeShowRequest, false, 0, true); volumeHideTimer = new Timer((1 * 1000), 1); volumeHideTimer.addEventListener(TimerEvent.TIMER_COMPLETE, onHideVolumeRequest, false, 0, true); }; if (config.extraButtons["length"]){ addExtraButtons(); }; if (config.moveVideoControlsToTop){ view.addControllerListener(ControllerEvent.RESIZE, onResizeRequest); layoutVideoControls(); }; } private function onKeyDownRequest(_arg1:KeyboardEvent):void{ var _local2:Number = _arg1.keyCode; if (_local2 == Keyboard.LEFT){ stepSeek(-(config.seek.keyRatio)); } else { if (_local2 == Keyboard.RIGHT){ stepSeek(config.seek.keyRatio); }; }; } private function onMouseVolumeOut(_arg1:MouseEvent):void{ volumeHideTimer.start(); } public function pause():void{ if (autohideTimer){ autohideTimer.reset(); autohideTimer.stop(); }; paused = true; } private function onMouseWheel(_arg1:MouseEvent):void{ stepSeek(_arg1.delta); } private function onMouseStageLeave(_arg1:Event):void{ autohideTimer.start(); } } }//package com.conceptualideas.videoplayer.enhancements
Section 26
//PlayerEnhancements (com.conceptualideas.videoplayer.enhancements.PlayerEnhancements) package com.conceptualideas.videoplayer.enhancements { import flash.events.*; import com.conceptualideas.utils.*; import com.conceptualideas.videoplayer.events.*; import flash.ui.*; public class PlayerEnhancements extends BaseComponent { private var config:Object; public function PlayerEnhancements(){ config = {maxWidth:0, keyboardFullScreen:true, showRelatedVideos:false, enableDimMode:false, dim:{}}; super(); } override public function initalize(_arg1:AbstractView):void{ super.initalize(_arg1); addEnhancements(); } private function onDimToggleRequest(_arg1:ViewEvent):void{ CIDimmer.instance().toggle(); } private function addEnhancements():void{ var _local1:DomainTools = DomainTools.instance(); config = _local1.extend(config, view.config.get("player", false, true)); var _local2:Number = Number(_local1.vars.check(config.maxWidth, "enhancements.player.maxWidth")); if (((!(_local2)) || (isNaN(_local2)))){ view.config.remove("player.maxWidth", true); }; if (config.keyboardFullScreen){ view.skin.stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDownRequest); }; if (config.enableDimMode){ CIDimmer.instance().init(config.dim); view.addViewListener(ViewEvent.DIM, onDimToggleRequest); } else { if (view.getModule("ControlBar")){ view.getModule("ControlBar").removeButton("dim"); }; }; } private function onKeyDownRequest(_arg1:KeyboardEvent):void{ if (_arg1.keyCode == Keyboard.F9){ view.sendEvent(ViewEvent.FULLSCREEN); }; } } }//package com.conceptualideas.videoplayer.enhancements
Section 27
//VideoEnhancements (com.conceptualideas.videoplayer.enhancements.VideoEnhancements) package com.conceptualideas.videoplayer.enhancements { import flash.events.*; import com.conceptualideas.utils.*; import com.conceptualideas.videoplayer.events.*; public class VideoEnhancements extends BaseComponent { private var config:Object; private var dtools:DomainTools; public function VideoEnhancements(){ dtools = DomainTools.instance(); config = {displayclick:false, fullHeight:true, maxWidth:640}; super(); } private function onMouseClick(_arg1:MouseEvent):void{ var _local2:Object = view.currentItem; if (((_local2["link"]) && ((view.config["state"] == ModelStates.PAUSED)))){ dtools.navigate(_local2["link"], config.linktarget); }; } private function addEnhancements():void{ if (config.displayclick){ view.skin.display.addEventListener(MouseEvent.CLICK, onMouseClick); view.addControllerListener(ControllerEvent.LOAD, onLoadRequest); }; } override public function initalize(_arg1:AbstractView):void{ super.initalize(_arg1); config = dtools.extend(config, _arg1.config.get("video", false, true)); } private function onLoadRequest(_arg1:ControllerEvent):void{ var _local2:Object = view.currentItem; view.skin.display.buttonMode = (view.skin.display.enabled = true); } } }//package com.conceptualideas.videoplayer.enhancements
Section 28
//AbstractController (com.conceptualideas.videoplayer.events.AbstractController) package com.conceptualideas.videoplayer.events { import flash.events.*; import com.conceptualideas.videoplayer.player.*; public class AbstractController extends EventDispatcher { protected var config:Object; public function AbstractController(_arg1:Object){ config = {}; super(); this.config = _arg1; } public function close(_arg1:Model, _arg2:AbstractView):void{ } } }//package com.conceptualideas.videoplayer.events
Section 29
//AbstractView (com.conceptualideas.videoplayer.events.AbstractView) package com.conceptualideas.videoplayer.events { import flash.events.*; import com.conceptualideas.videoplayer.interfaces.*; import flash.display.*; public class AbstractView extends EventDispatcher { public function loadModule(_arg1:IComponent):void{ } public function get config():Object{ return ({}); } public function addHook(_arg1:String, _arg2:String, _arg3:Function, _arg4:Object=null, _arg5:Boolean=true):ISystemHook{ return (null); } public function getModule(_arg1:String){ } public function track(_arg1:String, _arg2:Object=null):void{ } public function get currentItem():Object{ return ({}); } public function addControllerListener(_arg1:String, _arg2:Function, _arg3:int=0):void{ } public function get playlist():Array{ return (new Array()); } public function removeControllerListener(_arg1:String, _arg2:Function):void{ } public function sendEvent(_arg1:String, _arg2:Object=undefined):void{ } public function addViewListener(_arg1:String, _arg2:Function):void{ } public function addModelListener(_arg1:String, _arg2:Function):void{ } public function get skin():MovieClip{ return (new MovieClip()); } public function get stage():Stage{ return (skin.stage); } } }//package com.conceptualideas.videoplayer.events
Section 30
//BaseComponent (com.conceptualideas.videoplayer.events.BaseComponent) package com.conceptualideas.videoplayer.events { import flash.events.*; import com.conceptualideas.videoplayer.interfaces.*; import flash.display.*; public class BaseComponent implements IComponent { protected var view:AbstractView; protected var _xOffset:Number; protected var _currentDisplayWidth:Number; protected var _currentDisplayHeight:Number; protected var _allowResize:Boolean;// = false protected function merge(_arg1:Object, _arg2:String):Object{ return (view.config.extend(_arg1, getConfig(_arg2))); } protected function setupUserAction():void{ view.addControllerListener(ControllerEvent.PLAY, _onUserAction); view.addControllerListener(ControllerEvent.LOAD, _onUserAction); view.addControllerListener(ControllerEvent.SEEK, _onUserAction); view.addControllerListener(ControllerEvent.LOAD, _onUserAction); view.addViewListener(ViewEvent.REWIND, _onUserAction); } protected function place(_arg1:DisplayObject, _arg2:String="center", _arg3:Boolean=true):void{ switch (_arg2){ case "center": _arg1.x = ((_currentDisplayWidth / 2) - (_arg1.width / 2)); _arg1.y = ((_currentDisplayHeight / 2) - (_arg1.height / 2)); break; case "bottom": _arg1.x = ((_currentDisplayWidth / 2) - (_arg1.width / 2)); _arg1.y = (_currentDisplayHeight - _arg1.height); break; case "top": _arg1.x = ((_arg3) ? _xOffset : 0 + ((_currentDisplayWidth / 2) - (_arg1.width / 2))); _arg1.y = 5; break; }; } protected function getConfig(_arg1:String){ return (view.config.get(_arg1)); } private function onResizeRequest(_arg1:ControllerEvent):void{ _currentDisplayWidth = _arg1.data.width; _currentDisplayHeight = (_arg1.data.height - view.config.barHeight); _xOffset = _arg1.data.leftBounds; arrange(); } public function initalize(_arg1:AbstractView):void{ this.view = _arg1; if (_allowResize){ _arg1.addControllerListener(ControllerEvent.RESIZE, onResizeRequest); }; } protected function mergeConfig(_arg1:Object, _arg2:String):Object{ return (view.config.extend(_arg1, getConfig(("modules." + _arg2)))); } protected function arrange():void{ } protected function _onUserAction(_arg1:Event):void{ } } }//package com.conceptualideas.videoplayer.events
Section 31
//ControllerEvent (com.conceptualideas.videoplayer.events.ControllerEvent) package com.conceptualideas.videoplayer.events { import flash.events.*; public class ControllerEvent extends Event { private var _data:Object; public static const PRE:String = "pre"; public static const META:String = "meta"; public static const LOAD:String = "load"; public static const STOP:String = "stop"; public static const FINISHED:String = "finished"; public static const RESIZE:String = "resize"; public static const PAUSE:String = "pause"; public static const RESIZE_VIDEO:String = "resize_video"; public static const SEEK:String = "seek"; public static const PLAYLIST:String = "playlist"; public static const VOLUME:String = "volume"; public static const PLAY:String = "play"; public function ControllerEvent(_arg1:String, _arg2:Object=null){ super(_arg1, true, true); this._data = _arg2; } public function get data():Object{ return (_data); } override public function toString():String{ return (formatToString("ControllerEvent", "type", "bubbles", "cancelable", "eventPhase")); } override public function clone():Event{ return (new ControllerEvent(type, data)); } } }//package com.conceptualideas.videoplayer.events
Section 32
//HookingEvents (com.conceptualideas.videoplayer.events.HookingEvents) package com.conceptualideas.videoplayer.events { public class HookingEvents { public static const FIRST_PLAY:String = "first_play"; } }//package com.conceptualideas.videoplayer.events
Section 33
//ModelEvent (com.conceptualideas.videoplayer.events.ModelEvent) package com.conceptualideas.videoplayer.events { import flash.events.*; public class ModelEvent extends Event { private var _data:Object; public static const BUFFER:String = "BUFFER"; public static const META:String = "META"; public static const ERROR:String = "ERROR"; public static const LOADED:String = "LOADED"; public static const TIME:String = "TIME"; public static const STATE:String = "STATE"; public function ModelEvent(_arg1:String, _arg2:Object=null){ super(_arg1, true, true); this._data = _arg2; } public function get data():Object{ return (_data); } public function isComplete():Boolean{ return ((((((type == ModelEvent.STATE)) && (_data["state"]))) && ((_data["state"] == "completed")))); } override public function toString():String{ return (formatToString("ModelEvent", "type", "bubbles", "cancelable", "eventPhase")); } override public function clone():Event{ return (new ModelEvent(type, data)); } } }//package com.conceptualideas.videoplayer.events
Section 34
//ModelStates (com.conceptualideas.videoplayer.events.ModelStates) package com.conceptualideas.videoplayer.events { public class ModelStates { public static const LOADED:String = "loaded"; public static const BUFFERING:String = "buffering"; public static const COMPLETED:String = "completed"; public static const PLAYING:String = "playing"; public static const IDLE:String = "idle"; public static const PAUSED:String = "paused"; } }//package com.conceptualideas.videoplayer.events
Section 35
//ViewEvent (com.conceptualideas.videoplayer.events.ViewEvent) package com.conceptualideas.videoplayer.events { import flash.events.*; public class ViewEvent extends Event { private var _data:Object; public static const DIM:String = "DIM"; public static const FULLSCREEN:String = "FULLSCREEN"; public static const UPDATE:String = "UPDATE"; public static const REWIND:String = "REWIND"; public static const STEP_SEEK:String = "STEP_SEEK"; public static const SHOW_MENU:String = "SHOW_MENU"; public static const INIT:String = "INIT"; public static const STOP:String = "STOP"; public static const REDRAW_SCREEN:String = "REDRAW_SCREEN"; public static const MUTE:String = "MUTE"; public static const VOLUME:String = "VOLUME"; public static const PAUSE:String = "PAUSE"; public static const PLAY:String = "PLAY"; public static const LOAD:String = "LOAD"; public static const ORIGINAL_SCREEN:String = "ORIGINAL_SCREEN"; public static const UNMUTE:String = "UNMUTE"; public static const BUFFER_FULL:String = "BUFFER_FULL"; public static const REDRAW:String = "REDRAW"; public static const SEEK:String = "SEEK"; public static const FIT_SCREEN:String = "FIT_SCREEN"; public static const BUFFER_EMPTY:String = "BUFFER_EMPTY"; public function ViewEvent(_arg1:String, _arg2:Object=null){ _data = {}; super(_arg1, true, true); this._data = _arg2; } public function get data():Object{ return (((_data) || ({}))); } override public function toString():String{ return (formatToString("ViewEvent", "type", "bubbles", "cancelable", "eventPhase")); } override public function clone():Event{ return (new ViewEvent(type, data)); } } }//package com.conceptualideas.videoplayer.events
Section 36
//IAdView (com.conceptualideas.videoplayer.interfaces.IAdView) package com.conceptualideas.videoplayer.interfaces { public interface IAdView { function hide():void; function load(_arg1:String):void; function get height():Number; function get name():String; function set width(_arg1:Number):void; function get width():Number; function set height(_arg1:Number):void; function init(_arg1:Object):void; function set y(_arg1:Number):void; function addEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false, _arg4:int=0, _arg5:Boolean=false):void; function set name(_arg1:String):void; function set x(_arg1:Number):void; function get x():Number; function get y():Number; function show():void; } }//package com.conceptualideas.videoplayer.interfaces
Section 37
//IBootLoader (com.conceptualideas.videoplayer.interfaces.IBootLoader) package com.conceptualideas.videoplayer.interfaces { public interface IBootLoader { function run(_arg1:Function, _arg2:Object=null):void; } }//package com.conceptualideas.videoplayer.interfaces
Section 38
//IComponent (com.conceptualideas.videoplayer.interfaces.IComponent) package com.conceptualideas.videoplayer.interfaces { import com.conceptualideas.videoplayer.events.*; public interface IComponent { function initalize(_arg1:AbstractView):void; } }//package com.conceptualideas.videoplayer.interfaces
Section 39
//IHookResults (com.conceptualideas.videoplayer.interfaces.IHookResults) package com.conceptualideas.videoplayer.interfaces { public interface IHookResults { function add(_arg1:ISystemHook):void; function finished():Boolean; function isType(_arg1:String):Boolean; function get(_arg1:String); function commit():void; function destroy():void; function has(_arg1:String):Boolean; function isError(_arg1):Boolean; } }//package com.conceptualideas.videoplayer.interfaces
Section 40
//ISystemHook (com.conceptualideas.videoplayer.interfaces.ISystemHook) package com.conceptualideas.videoplayer.interfaces { public interface ISystemHook { function getName():String; function destory():void; function getHookID():int; function isSync():Boolean; function same(_arg1:Function):Boolean; function run():void; function assert(... _args):void; function answer(); function running():Boolean; } }//package com.conceptualideas.videoplayer.interfaces
Section 41
//BasicModel (com.conceptualideas.videoplayer.models.BasicModel) package com.conceptualideas.videoplayer.models { import flash.events.*; import com.conceptualideas.videoplayer.player.*; import flash.display.*; import flash.utils.*; import com.conceptualideas.videoplayer.events.*; public class BasicModel extends Sprite { protected var interval:Timer; protected var model:Model; protected var position:Number; protected var item:Object; public function BasicModel(_arg1:Model):void{ interval = new Timer(100); super(); this.model = _arg1; interval.addEventListener(TimerEvent.TIMER, onTimerTick, false, 0, true); } public function volume(_arg1:Number):void{ } public function stop():void{ stopInterval(); position = 0; model.sendEvent(ModelEvent.STATE, {state:ModelStates.IDLE}); } private function onTimerTick(_arg1:TimerEvent):void{ positionInterval(); } protected function stopInterval():void{ interval.stop(); interval.reset(); } public function load(_arg1:Object):void{ item = _arg1; item["middle"] = false; position = 0; stopInterval(); } protected function positionInterval():void{ if (position < item["duration"]){ model.sendEvent(ModelEvent.TIME, {time:position, duration:item["duration"]}); } else { if (item["duration"] > 0){ stopInterval(); model.sendEvent(ModelEvent.STATE, {state:ModelStates.COMPLETED}); }; }; } public function resize():void{ } public function pause():void{ stopInterval(); model.sendEvent(ModelEvent.STATE, {state:ModelStates.PAUSED}); } public function seek(_arg1:Number):void{ stopInterval(); position = _arg1; startInterval(); } public function play():void{ startInterval(); model.sendEvent(ModelEvent.STATE, {state:ModelStates.PLAYING}); } protected function startInterval():void{ stopInterval(); interval.start(); } } }//package com.conceptualideas.videoplayer.models
Section 42
//HttpModel (com.conceptualideas.videoplayer.models.HttpModel) package com.conceptualideas.videoplayer.models { import flash.events.*; import com.conceptualideas.videoplayer.player.*; import com.conceptualideas.videoplayer.interfaces.*; import flash.utils.*; import com.conceptualideas.videoplayer.events.*; import flash.net.*; import flash.media.*; import com.conceptualideas.flvplayer.*; public class HttpModel extends BasicModel { protected var stream:NetStream; protected var meta:Boolean;// = false private var loadtimer:Number;// = 0 protected var loadinterval:Number; protected var firstRun:Boolean;// = true protected var timeOffset:Number;// = 0 private var times:Array; protected var client:VideoClient; protected var hookAnswers:Object; private var _soundTransform:SoundTransform; private var connection:NetConnection; protected var currentOffset:Number;// = 0 private var iterator:Number;// = 0 protected var mp4:Boolean;// = false private var filepositions:Array; protected var video:Video; private var fromPlay:Boolean;// = false public function HttpModel(_arg1:Model){ hookAnswers = {}; super(_arg1); video = new Video(320, 240); createConnection(); _soundTransform = new SoundTransform(); } override public function stop():void{ super.stop(); stream.close(); timeOffset = (currentOffset = 0); meta = false; firstRun = true; } protected function loadHandler():void{ var _local1:Number = stream.bytesLoaded; var _local2:Number = (stream.bytesTotal + currentOffset); var _local3:Number = currentOffset; model.sendEvent(ModelEvent.LOADED, {loaded:_local1, total:_local2, offset:_local3}); if (((((_local1 + _local3) >= _local2)) && ((_local1 > 0)))){ clearInterval(loadinterval); }; } override protected function positionInterval():void{ iterator++; if (iterator > 10){ position = (Math.round((stream.time * 10)) / 10); if (mp4){ position = (position + timeOffset); }; }; var _local1:Number = Math.round(((stream.bufferLength / stream.bufferTime) * 100)); if ((((_local1 < 95)) && ((position < Math.abs(((item["duration"] - stream.bufferTime) - 1)))))){ model.sendEvent(ModelEvent.BUFFER, {percentage:_local1}); if (((!((model.config["state"] == ModelStates.BUFFERING))) && ((_local1 < 25)))){ model.sendEvent(ModelEvent.STATE, {state:ModelStates.BUFFERING}); }; } else { if ((((((_local1 > 95)) && (!((model.config["state"] == ModelStates.PLAYING))))) && (!((model.config["state"] == ModelStates.PAUSED))))){ model.sendEvent(ModelEvent.STATE, {state:ModelStates.PLAYING}); }; }; if (position < item["duration"]){ model.sendEvent(ModelEvent.TIME, {time:position, duration:item["duration"]}); } else { if (item["duration"] > 0){ stopInterval(); timeOffset = 0; currentOffset = 0; clearInterval(loadinterval); model.sendEvent(ModelEvent.STATE, {state:ModelStates.COMPLETED}); }; }; } private function _hookResults(_arg1:IHookResults):void{ if (_arg1.isType(HookingEvents.FIRST_PLAY)){ _playFile(); firstRun = false; }; } override public function volume(_arg1:Number):void{ super.volume(_arg1); _soundTransform.volume = _arg1; stream.soundTransform = _soundTransform; } private function createStream():void{ stream = new NetStream(connection); stream.soundTransform = _soundTransform; stream.checkPolicyFile = true; stream.addEventListener(NetStatusEvent.NET_STATUS, onNetStatus, false, 0, true); stream.addEventListener(IOErrorEvent.IO_ERROR, onIOError, false, 0, true); stream.addEventListener(AsyncErrorEvent.ASYNC_ERROR, onAsyncError, false, 0, true); stream.bufferTime = model.config.get("main.bufferTime"); client = new VideoClient(); stream.client = client; client.addEventListener(VideoClient.METADATA_LOADED, onMetaData, false, 0, true); video.attachNetStream(stream); } protected function getSeekOffset(_arg1:Number, _arg2:Boolean=false):Number{ var i:Number; var pos = _arg1; var time = _arg2; var offset:Number = 0; try { i = 0; while (i < (times.length - 1)) { if ((((times[i] <= pos)) && ((times[(i + 1)] >= pos)))){ break; }; i = (i + 1); }; if (time == true){ offset = times[i]; } else { offset = filepositions[i]; }; } catch(e:Error) { }; return (offset); } protected function _playFile():void{ stream.play(getURL()); } private function onAsyncError(_arg1:AsyncErrorEvent):void{ } override public function play():void{ if (position > item["duration"]){ seek(0); }; super.play(); stream.resume(); } protected function getURL():String{ return (item["file"]); } private function onIOError(_arg1:IOErrorEvent):void{ } public function onMetaData(_arg1:Event):void{ if (!meta){ model.sendEvent(ModelEvent.META, {duration:client.duration, height:client.height, width:client.width}); mp4 = client.isMp4(); if (_arg1.target.retrive("keyframes")){ times = _arg1.target.retrive("keyframes").times; filepositions = _arg1.target.retrive("keyframes").filepositions; }; }; } private function onNetStatus(_arg1:NetStatusEvent):void{ trace(_arg1.info.code); switch (_arg1.info.code){ case "NetConnection.Connect.Success": createStream(); break; case "NetStream.Seek.Notify": startInterval(); break; case "NetStream.Play.Start": startInterval(); clearInterval(loadinterval); loadinterval = setInterval(loadHandler, 100); break; }; } override public function load(_arg1:Object):void{ super.load(_arg1); model.placeMedia(video); position = timeOffset; iterator = 0; if (firstRun){ model.runHook(HookingEvents.FIRST_PLAY, _hookResults); } else { _playFile(); }; } override public function pause():void{ super.pause(); stream.pause(); } private function createConnection():void{ if (connection){ connection.removeEventListener(NetStatusEvent.NET_STATUS, onNetStatus); connection.removeEventListener(IOErrorEvent.IO_ERROR, onIOError); connection.close(); }; connection = new NetConnection(); connection.objectEncoding = ObjectEncoding.AMF3; connection.addEventListener(NetStatusEvent.NET_STATUS, onNetStatus, false, 0, true); connection.addEventListener(IOErrorEvent.IO_ERROR, onIOError, false, 0, true); connection.connect(null); } override public function seek(_arg1:Number):void{ super.seek(_arg1); position = getSeekOffset(_arg1, true); stream.seek(position); } } }//package com.conceptualideas.videoplayer.models
Section 43
//LighttpdModel (com.conceptualideas.videoplayer.models.LighttpdModel) package com.conceptualideas.videoplayer.models { import flash.events.*; import com.conceptualideas.videoplayer.player.*; import com.conceptualideas.videoplayer.events.*; public class LighttpdModel extends HttpModel { public function LighttpdModel(_arg1:Model){ super(_arg1); } override public function seek(_arg1:Number):void{ var _local2:Number; _local2 = getSeekOffset(_arg1); stopInterval(); if ((((_local2 < currentOffset)) || ((_local2 >= (currentOffset + stream.bytesLoaded))))){ if (model.config["limitByCached"]){ model.config["limitByCached"] = false; trace("limitByCached"); } else { timeOffset = (position = getSeekOffset(_arg1, true)); currentOffset = _local2; load(item); }; } else { position = getSeekOffset((_arg1 - (mp4) ? timeOffset : 0), true); stream.seek(position); }; } override protected function getURL():String{ var _local1:String = item["file"]; var _local2:String = item["seeking"]; _local1 = (_local1 + _local2); if (mp4){ _local1 = (_local1 + timeOffset); } else { _local1 = (_local1 + currentOffset); }; return (_local1); } override protected function loadHandler():void{ var _local1:Number = stream.bytesLoaded; var _local2:Number = stream.bytesTotal; var _local3:Number = timeOffset; model.config["timeOffset"] = _local3; model.sendEvent(ModelEvent.LOADED, {loaded:_local1, total:_local2, offset:_local3}); } override public function onMetaData(_arg1:Event):void{ if (!meta){ super.onMetaData(_arg1); meta = true; if (item["start"] > 0){ seek(item["start"]); item["start"] = 0; }; }; } } }//package com.conceptualideas.videoplayer.models
Section 44
//PlayerSkin (com.conceptualideas.videoplayer.models.PlayerSkin) package com.conceptualideas.videoplayer.models { import flash.events.*; import flash.display.*; import com.conceptualideas.utils.*; public class PlayerSkin extends EventDispatcher { private var _settings:Object; private var _skin:MovieClip; private var loader:Loader; public static const INVALID_SKIN:String = "invalid_skin"; public static const SKIN_LOADED:String = "skin_loaded"; private static var _instance:PlayerSkin; private function onSkinLoaded(_arg1:Event):void{ var _local3:String; _skin = MovieClip(_arg1.target.content); var _local2:Array = ["timeline", "menu"]; for each (_local3 in _local2) { if (_skin[_local3]){ _skin[_local3].visible = false; }; }; dispatchEvent(new Event(PlayerSkin.SKIN_LOADED)); } private function check(_arg1:Object, _arg2:Object):Boolean{ return (((_arg1) && ((_arg1 == _arg2)))); } public function load(_arg1:Object):void{ if (((!(_arg1)) || (!(_arg1.file)))){ dispatchEvent(new Event(PlayerSkin.INVALID_SKIN)); return; }; if (!check(_arg1.file, "empty")){ loadSwf(_arg1.file); }; } public function getAssetInstance(_arg1:String):Class{ if (loader.contentLoaderInfo.applicationDomain.hasDefinition(_arg1)){ return ((loader.contentLoaderInfo.applicationDomain.getDefinition(_arg1) as Class)); }; return (null); } public function getObject(_arg1:String){ if (_skin[_arg1]){ return (_skin[_arg1]); }; } private function loadSwf(_arg1:String):void{ _arg1 = ((_arg1.indexOf(".swf"))==-1) ? (_arg1 + "_skin.swf") : _arg1; _arg1 = DomainTools.instance().relToAbsPath(_arg1); loader = DomainTools.instance().loadImage(_arg1, onSkinLoaded); } public function get skin():MovieClip{ return (_skin); } public static function instance():PlayerSkin{ if (!_instance){ _instance = new (PlayerSkin); }; return (_instance); } } }//package com.conceptualideas.videoplayer.models
Section 45
//RTMPModel (com.conceptualideas.videoplayer.models.RTMPModel) package com.conceptualideas.videoplayer.models { import flash.events.*; import com.conceptualideas.videoplayer.player.*; import com.conceptualideas.videoplayer.interfaces.*; import com.conceptualideas.videoplayer.events.*; import flash.net.*; import flash.media.*; import com.conceptualideas.flvplayer.*; public class RTMPModel extends BasicModel { protected var stream:NetStream; private var started:Boolean;// = false private var connected:Date; private var video:Video; private var client:VideoClient; private var soundtransform:SoundTransform; private var timeOffset:Number;// = 0 protected var connection:NetConnection; private var start:Date; private var mp4:Boolean;// = false private var unpublished:Boolean;// = false private var firstRun:Boolean;// = true public function RTMPModel(_arg1:Model){ super(_arg1); video = new Video(320, 240); video.smoothing = ((_arg1.config.get("video.smoothing")) || (true)); connection = new NetConnection(); connection.client = new VideoClient(); connection.addEventListener(NetStatusEvent.NET_STATUS, statusHandler); connection.addEventListener(SecurityErrorEvent.SECURITY_ERROR, errorHandler); connection.addEventListener(IOErrorEvent.IO_ERROR, errorHandler); connection.addEventListener(AsyncErrorEvent.ASYNC_ERROR, errorHandler); connection.objectEncoding = ObjectEncoding.AMF3; soundtransform = new SoundTransform(); } override public function pause():void{ if (started){ super.pause(); stream.pause(); if (((started) && ((item["duration"] == 0)))){ stop(); }; }; } private function onMetaData(_arg1:Event):void{ var _local2:VideoClient = VideoClient(_arg1.target); if (!mp4){ model.sendEvent(ModelEvent.META, {duration:_local2.duration, height:_local2.height, width:_local2.width}); mp4 = (_local2.retrive("seekpoints")) ? true : false; }; } override public function seek(_arg1:Number):void{ position = _arg1; stopInterval(); stream.seek(position); if (model.config.get("ui.video.unPauseSeek")){ stream.resume(); }; model.sendEvent(ModelEvent.STATE, {state:ModelStates.PLAYING}); } protected function setStream():void{ stream = new NetStream(connection); stream.checkPolicyFile = true; stream.addEventListener(NetStatusEvent.NET_STATUS, statusHandler); stream.addEventListener(IOErrorEvent.IO_ERROR, errorHandler); stream.addEventListener(AsyncErrorEvent.ASYNC_ERROR, errorHandler); stream.bufferTime = model.config.get("main.bufferTime"); stream.client = new VideoClient(); stream.client.addEventListener(VideoClient.METADATA_LOADED, onMetaData, false, 0, true); stream.client.addEventListener(VideoClient.VIDEO_FINISHED, onVideoFinished, false, 0, true); video.attachNetStream(stream); if ((model.config["mute"] == true)){ volume(0); } else { volume(model.config["volume"]); }; playStream(); startInterval(); } protected function playStream():void{ if (firstRun){ model.runHook(HookingEvents.FIRST_PLAY, _hookResults); } else { _playFile(); }; } override protected function positionInterval():void{ var _local1:Number = (Math.round((stream.time * 10)) / 10); var _local2:Number = Math.round(((stream.bufferLength / stream.bufferTime) * 100)); if ((((_local2 < 95)) && ((position < Math.abs(((item["duration"] - stream.bufferTime) - 1)))))){ model.sendEvent(ModelEvent.BUFFER, {percentage:_local2}); if (((!((model.config["state"] == ModelStates.BUFFERING))) && ((_local2 < 25)))){ model.sendEvent(ModelEvent.STATE, {state:ModelStates.BUFFERING}); }; } else { if ((((_local2 > 95)) && (!((model.config["state"] == ModelStates.PLAYING))))){ model.sendEvent(ModelEvent.STATE, {state:ModelStates.PLAYING}); }; }; if (_local1 < item["duration"]){ if (_local1 != position){ model.sendEvent(ModelEvent.TIME, {time:position, duration:item["duration"]}); position = _local1; }; } else { if (((!(isNaN(position))) && ((item["duration"] > 0)))){ _stop(); }; }; } override public function volume(_arg1:Number):void{ var vol = _arg1; soundtransform.volume = vol; if (((stream) && (stream))){ try { stream.soundTransform = soundtransform; } catch(e:Error) { }; }; } protected function errorHandler(_arg1:ErrorEvent):void{ stop(); trace(("RTMP ERROR :" + _arg1.text)); model.sendEvent(ModelEvent.ERROR, {message:_arg1.text}); } private function _stop():void{ stopInterval(); timeOffset = 0; model.sendEvent(ModelEvent.STATE, {state:ModelStates.COMPLETED}); } private function _hookResults(_arg1:IHookResults):void{ if (_arg1.isType(HookingEvents.FIRST_PLAY)){ _playFile(); firstRun = false; }; } override public function stop():void{ if (stream){ stream.close(); }; connection.close(); started = false; stopInterval(); position = 0; firstRun = true; } override public function load(_arg1:Object):void{ super.load(_arg1); position = 0; model.placeMedia(video); start = new Date(); if (_arg1["connection_params"]){ connection.connect.apply(connection, _arg1["connection_params"]); } else { connection.connect(_arg1["host"]); }; } private function onAsyncError(_arg1:AsyncErrorEvent):void{ } private function onVideoFinished(_arg1:Event):void{ _stop(); } private function _playFile():void{ if (model.config.get("modules.limitplayback.enabled")){ stream.play(getID(item["file"]), 0, model.config.get("modules.limitplayback.limit")); } else { stream.play(getID(item["file"])); }; } override public function play():void{ if (!started){ setStream(); } else { if (position >= item["duration"]){ seek(0); }; super.play(); stream.resume(); }; } protected function getID(_arg1:String):String{ var _local2:String = _arg1.substr(-4); if (_local2 == ".mp3"){ return (("mp3:" + _arg1.substr(0, (_arg1.length - 4)))); }; if ((((((((((_local2 == ".mp4")) || ((_local2 == ".mov")))) || ((_local2 == ".aac")))) || ((_local2 == ".m4a")))) || ((_local2 == ".f4v")))){ return (("mp4:" + _arg1)); }; if (_local2 == ".flv"){ return (_arg1.substr(0, (_arg1.length - 4))); }; return (_arg1); } protected function statusHandler(_arg1:NetStatusEvent):void{ var _local2:String; trace(_arg1.info.code); switch (_arg1.info.code){ case "NetConnection.Connect.Success": if (_arg1.info.secureToken != undefined){ }; setStream(); break; case "NetStream.Play.Start": if ((((item["start"] > 0)) && (!(started)))){ seek(item["start"]); }; if (!started){ volume(model.config["volume"]); }; started = true; break; case "NetStream.Seek.Notify": startInterval(); break; case "NetConnection.Connect.Rejected": if (((_arg1.info.ex) && ((_arg1.info.ex.code == 302)))){ item["streamer"] = _arg1.info.ex.redirect; connection.connect(item["streamer"]); } else { _local2 = _arg1.info.code; if (_arg1.info["description"]){ _local2 = _arg1.info["description"]; }; trace("NetConnection.Connect.Rejected -", _local2); }; break; case "NetStream.Failed": case "NetStream.Play.StreamNotFound": if (unpublished){ unpublished = false; } else { stop(); model.sendEvent(ModelEvent.ERROR, {message:("Stream not found: " + item["file"])}); }; break; case "NetConnection.Connect.Failed": stop(); model.sendEvent(ModelEvent.ERROR, {message:("Server not found: " + item["streamer"])}); break; case "NetStream.Play.UnpublishNotify": unpublished = true; break; }; } } }//package com.conceptualideas.videoplayer.models
Section 46
//SecureStreaming (com.conceptualideas.videoplayer.models.SecureStreaming) package com.conceptualideas.videoplayer.models { import flash.events.*; import com.conceptualideas.videoplayer.player.*; import flash.net.*; public class SecureStreaming extends RTMPModel { private var pendingEvent:NetStatusEvent;// = null private var decoded:Boolean;// = false public function SecureStreaming(_arg1:Model){ super(_arg1); } override protected function playStream():void{ if (model.config.get("modules.limitplayback.enabled")){ stream.play(getID(item["file"]), 0, model.config.get("modules.limitplayback.limit")); } else { super.playStream(); }; } override protected function statusHandler(_arg1:NetStatusEvent):void{ if ((((_arg1.info.code == "NetConnection.Connect.Success")) && (!(decoded)))){ pendingEvent = _arg1; connection.call("CI_DecodeStream", new Responder(onDecodeResponse), decodeURIComponent(item["file"])); } else { super.statusHandler(_arg1); }; } private function onDecodeResponse(_arg1:String):void{ item["file"] = _arg1; super.statusHandler(pendingEvent); pendingEvent = null; } } }//package com.conceptualideas.videoplayer.models
Section 47
//Ads (com.conceptualideas.videoplayer.modules.advertisement.Ads) package com.conceptualideas.videoplayer.modules.advertisement { import flash.events.*; import com.conceptualideas.videoplayer.interfaces.*; import flash.display.*; import flash.utils.*; import com.conceptualideas.videoplayer.events.*; import com.conceptualideas.videoplayer.views.ads.*; public class Ads extends BaseComponent { private var config:Object; private var showMiddleButton:Boolean; private var showWaterMark:Boolean; private var dim:Shape; private var ads:Dictionary; private var isShowing:Boolean;// = false private var adContainer:Sprite; public function Ads(){ ads = new Dictionary(); config = {showMiddleButton:false, showWaterMark:false, dimOnShow:false, dimColor:0, dimOpacity:0.5, maxHeight:false}; super(); } private function onResizeRequest(_arg1:ControllerEvent):void{ center(); } private function getAdView(_arg1:String):IAdView{ var _local2:IAdView; var _local3 = ""; switch (_arg1){ case "text": _local2 = (ads[_arg1]) ? ads[_arg1] : new TextAdContainerView(); ads[_arg1] = _local2; break; case "image": _local2 = (ads[_arg1]) ? ads[_arg1] : new ImageAdContainerView(); ads[_arg1] = _local2; break; default: _local2 = (ads[_arg1]) ? ads[_arg1] : CustomAdContainer.retrive(_arg1); ads[_arg1] = _local2; break; }; return (_local2); } private function hide():void{ var _local1:String; var _local2:IAdView; isShowing = false; for (_local1 in ads) { _local2 = ads[_local1]; _local2.hide(); if (((config.showWaterMark) && (view.config.getModule("watermarks")))){ view.config.getModule("watermarks").hide(); }; if (dim){ dim.visible = false; }; }; } private function buildAd(_arg1:String):void{ var adConfig:Object; var adView:IAdView; var adPlacement = _arg1; adPlacement = String(adPlacement.split("show")[1]).toLowerCase(); if ((((adPlacement == "pre")) && (view.config.main.autoPlay))){ return; }; adConfig = view.config.ads.display[adPlacement]; if (!adConfig){ return; }; adView = getAdView(adConfig.type); adView.init(adConfig); adView.name = ((adPlacement + "_") + adView.name); adView.addEventListener("ad_loaded", onAdsLoaded, false, 0, true); view.skin.addChild((adView as DisplayObject)); var func:Function = function (_arg1:ControllerEvent):void{ if (!isShowing){ isShowing = true; if (!config.showMiddleButton){ view.config.getModule("display").setIcon(); }; adView.load(adConfig.url); }; }; var eventType:String = ((adPlacement)=="post") ? "FINISHED" : adPlacement.toUpperCase(); view.addControllerListener(ControllerEvent[eventType], func); } private function center():void{ var _local1:IAdView; for each (_local1 in ads) { _local1.x = ((view.stage.stageWidth - _local1.width) / 2); _local1.y = (((view.stage.stageHeight - view.config.barHeight) - _local1.height) / 2); }; if (dim){ dim.graphics.clear(); dim.graphics.beginFill(config.dimColor, config.dimOpacity); dim.graphics.drawRect(0, 0, view.stage.stageWidth, view.skin.display.width); dim.graphics.endFill(); }; } private function onUserAction(_arg1:Event):void{ hide(); } override public function initalize(_arg1:AbstractView):void{ var _local3:String; super.initalize(_arg1); config = _arg1.config.extend(config, _arg1.config.ads.settings); if (config.dimOnShow){ dim = new Shape(); }; var _local2:Object = _arg1.config.ads; for (_local3 in _local2) { if (((((!((_local3 == "display"))) && ((_local2[_local3] == true)))) && (!((_local3 == "settings"))))){ buildAd(_local3); }; }; _arg1.addControllerListener(ControllerEvent.PLAY, onUserAction); _arg1.addControllerListener(ControllerEvent.LOAD, onUserAction); _arg1.addControllerListener(ControllerEvent.SEEK, onUserAction); _arg1.addControllerListener(ControllerEvent.LOAD, onUserAction); _arg1.addViewListener(ViewEvent.REWIND, onUserAction); _arg1.addControllerListener(ControllerEvent.RESIZE, onResizeRequest); } private function onAdsLoaded(_arg1:Event):void{ if (isShowing){ _arg1.target.show(); if (config.maxHeight){ }; if (dim){ dim.visible = true; view.skin.addChildAt(dim, view.skin.getChildIndex((_arg1.target as DisplayObject))); }; if (((config.showWaterMark) && (view.config.getModule("watermarks")))){ view.config.getModule("watermarks").show(); }; center(); view.sendEvent("AD_LOADED", {ad:_arg1.target.name, target:_arg1.target}); view.track(("ads." + _arg1.target.name.split("_")[0])); } else { _arg1.target.hide(); }; } } }//package com.conceptualideas.videoplayer.modules.advertisement
Section 48
//ClickDirect (com.conceptualideas.videoplayer.modules.advertisement.ClickDirect) package com.conceptualideas.videoplayer.modules.advertisement { import com.conceptualideas.videoplayer.utils.*; import com.conceptualideas.utils.*; import com.conceptualideas.videoplayer.events.*; public class ClickDirect extends BaseComponent { private var config:Object; private var dtools:DomainTools; private var clickedOnce:Boolean;// = false public function ClickDirect(){ config = {url:null, onPlay:true, firstClickOnly:true, target:"_blank", restrictSites:[], enabled:true, params:{}}; dtools = DomainTools.instance(); super(); } override public function initalize(_arg1:AbstractView):void{ super.initalize(_arg1); config = merge(config, "modules.clickdirect"); if (!config.enabled){ return; }; var _local2:Object = dtools.adsense; var _local3:String = Strings.trim(_local2.host); if (!_local3.length){ _local3 = "11111asdasdadadasdasdasdasdasdasdasdasdasdsdasdas"; }; if (((config.url) && (config.onPlay))){ if (((!(config.restrictSites.length)) || ((config.restrictSites.indexOf(_local3) == -1)))){ trace("init"); _arg1.addControllerListener(ControllerEvent.LOAD, onPlayRequest); }; }; } private function onPlayRequest(_arg1:ControllerEvent):void{ if (config.firstClickOnly){ _arg1.target.removeEventListener(ControllerEvent.LOAD, onPlayRequest); }; DomainTools.instance().navigate(config.url, config.target, config.params); } } }//package com.conceptualideas.videoplayer.modules.advertisement
Section 49
//HoverAd (com.conceptualideas.videoplayer.modules.advertisement.HoverAd) package com.conceptualideas.videoplayer.modules.advertisement { import flash.events.*; import flash.display.*; import com.conceptualideas.videoplayer.utils.*; import com.conceptualideas.utils.*; import flash.utils.*; import com.conceptualideas.videoplayer.events.*; import gs.*; public class HoverAd extends BaseComponent { private var imageLoaded:Boolean;// = false private var container:Sprite; private var config:Object; private var showing:Boolean;// = false private var timer:Timer; private var closeButtonClass:Class; private var loader:ImageLoader; private var dtools:DomainTools; private var link:String; public function HoverAd(){ closeButtonClass = HoverAd_closeButtonClass; config = {usePercentage:false, showDuration:10, target:"_blank", url:null, show:10, method:"GET", maxWidth:NaN, usePrecentWidth:false}; dtools = DomainTools.instance(); super(); _allowResize = true; } private function startTimer():void{ timer.start(); } override public function initalize(_arg1:AbstractView):void{ super.initalize(_arg1); config = _arg1.config.extend(config, _arg1.config.get("modules.hoverad")); if (config.url){ if (config.usePercentage){ _arg1.addControllerListener(ControllerEvent.META, onMetaUpdate); }; config.params = ((config.params is Array)) ? config.params : []; dtools.loadURL(config.url, onAdFeedLoaded, dtools.vars.getKeyPairMap.apply(null, config.params), config.method); _arg1.addModelListener(ModelEvent.TIME, onTimeUpdate); }; } private function onAdFeedLoaded(_arg1:Event):void{ var xml:XML; var image:String; var e = _arg1; try { xml = new XML(e.target.data); image = String(xml.ad.image); link = String(xml.ad.link); loader = new ImageLoader(); loader.load(image, true); loader.addEventListener(Event.COMPLETE, onImageLoaded); } catch(er:Error) { trace(er); trace(e.target.data); }; } private function onCloseClicked(_arg1:MouseEvent):void{ if (config.navigateOnClosePressed){ navigate(); }; timer.stop(); hide(); } private function debug(_arg1:Sprite, _arg2:uint=0xFF0000):void{ } private function onAdImageClicked(_arg1:MouseEvent):void{ navigate(); hide(); } private function onImageLoaded(_arg1:Event):void{ container = new Sprite(); view.skin.addChild(container); container.visible = false; loader.addEventListener(MouseEvent.CLICK, onAdImageClicked); container.buttonMode = true; var _local2:Sprite = new Sprite(); _local2.addChild((new closeButtonClass() as DisplayObject)); _local2.buttonMode = true; _local2.addEventListener(MouseEvent.CLICK, onCloseClicked); var _local3:Number = (config.maxWidth) ? (config.usePrecentWidth) ? (_currentDisplayWidth * (config.maxWidth / 100)) : config.maxWidth : _currentDisplayWidth; PlayerUtils.fit(loader, _local3, _currentDisplayHeight); loader.x = (loader.y = 0); container.addChild(loader); container.addChild(_local2); container.width = loader.width; container.height = loader.height; _local2.x = ((loader.width - loader.x) - (_local2.width / 2)); _local2.y = (loader.y - (_local2.height / 2)); imageLoaded = true; timer = new Timer((config.showDuration * 1000), 1); timer.addEventListener(TimerEvent.TIMER_COMPLETE, onTimerCompleted); arrange(); } private function hide():void{ TweenLite.to(container, 1, {alpha:0, onComplete:function ():void{ container.visible = false; }}); } private function onTimerCompleted(_arg1:TimerEvent):void{ timer.removeEventListener(TimerEvent.TIMER_COMPLETE, onTimerCompleted); hide(); } override protected function arrange():void{ if (container){ place(container, "center"); }; } private function onMetaUpdate(_arg1:ControllerEvent):void{ var _local2:Number; if (view.currentItem["duration"] > 0){ _local2 = view.currentItem["duration"]; config.show = (_local2 * (config.show / 100)); }; } private function navigate():void{ if (link){ dtools.navigate(link, config.target); }; } private function onTimeUpdate(_arg1:ModelEvent):void{ if ((((((_arg1.data.time >= config.show)) && (!(showing)))) && (imageLoaded))){ showing = true; show(); }; } private function show():void{ container.visible = true; TweenLite.from(container, 1, {alpha:0, onComplete:startTimer}); } } }//package com.conceptualideas.videoplayer.modules.advertisement
Section 50
//HoverAd_closeButtonClass (com.conceptualideas.videoplayer.modules.advertisement.HoverAd_closeButtonClass) package com.conceptualideas.videoplayer.modules.advertisement { import mx.core.*; public class HoverAd_closeButtonClass extends BitmapAsset { } }//package com.conceptualideas.videoplayer.modules.advertisement
Section 51
//InlineAd (com.conceptualideas.videoplayer.modules.advertisement.InlineAd) package com.conceptualideas.videoplayer.modules.advertisement { import flash.events.*; import com.conceptualideas.utils.*; import com.conceptualideas.videoplayer.events.*; public class InlineAd extends BaseComponent { private var barHeight:Number; private var config:Object; private var ad:CIBannerAd; private var linkClicked:Boolean; private var reached:Boolean;// = false public function InlineAd(){ config = {occurance:1, time:0, text:{by:"Conceptual Ideas", title:"Conceptual Ideas", desc:"Check out these videos", link:"http://conceptual-ideas.com", bottom:"Check out more at cum.com"}, height:75, useExternal:false, external:{url:"", params:["id"], method:"GET"}, colors:{title:0xFF0000, desc:0xFF00, link:0xCC00FF, bottom:8978380}, font:"Arail", pauseOnClick:false}; super(); } private function onLoadRequest(_arg1:ControllerEvent):void{ reset(); if (!config.useExternal){ ad.clear(); ad.addAd(config.text.title, config.text.link, config.text.desc, config.text.bottom); } else { DomainTools.instance().loadURL(config.external.url, onAdsLoaded, {id:DomainTools.instance().vars.getValue("id")}, config.external.method); }; ad.hide(false); } private function positionAd():void{ ad.x = 0; ad.y = ((view.stage.stageHeight - barHeight) - config.height); } private function view_pauseHandler(_arg1:ViewEvent):void{ if (!linkClicked){ _arg1.target.removeEventListener(_arg1.type, view_pauseHandler); ad.invoke(); }; linkClicked = false; } private function reset():void{ reached = false; } private function onFinished(_arg1:ControllerEvent):void{ ad.hide(); } private function onAdsLoaded(_arg1:Event):void{ var _local3:XML; var _local4:String; var _local5:String; var _local2:XML = new XML(_arg1.target.data); for each (_local3 in _local2.ads.children()) { _local4 = ((_local3.@show)=="") ? "text" : _local3.@show; _local5 = ((_local3.@target)=="") ? "_blank" : _local3.@target; ad.addAd(_local3.title.text(), _local3.link.text(), _local3.description.text(), _local3.bottom.text(), _local3.image.text(), _local4); }; positionAd(); } override public function initalize(_arg1:AbstractView):void{ var _local3:String; var _local4:Object; var _local5:String; super.initalize(_arg1); ad = new CIBannerAd(); _arg1.skin.addChild(ad); this.view = _arg1; barHeight = _arg1.config.get("barHeight"); config = _arg1.config.extend(config, _arg1.config.get("modules.inlinead")); var _local2:Array = DomainTools.instance().vars.getGroup(/inlinead.[\w\W]+/i); for each (_local3 in _local2) { _local5 = _local3.split(".").pop(); config.text[_local5] = DomainTools.instance().vars.getValue(_local3); }; _arg1.addModelListener(ModelEvent.TIME, onTimeRequest); _arg1.addControllerListener(ControllerEvent.LOAD, onLoadRequest); _arg1.addControllerListener(ControllerEvent.FINISHED, onFinished); _arg1.addControllerListener(ControllerEvent.RESIZE, onResizeRequest); _local4 = {colors:config.colors, by:{text:config.text.by}, width:_arg1.stage.stageWidth, height:config.height, underline:{title:false}, font:config.font}; ad.initialize(_local4); positionAd(); reset(); ad.hide(false); if (config.pauseOnClick){ ad.addEventListener("linkClicked", ad_clickedHandler); _arg1.addViewListener(ViewEvent.PAUSE, view_pauseHandler); }; } private function onTimeRequest(_arg1:ModelEvent):void{ if ((((((_arg1.data.time >= config.time)) && (!(reached)))) && (ad.has()))){ reached = true; ad.show(); view.track("ads.inline.show"); }; } private function onResizeRequest(_arg1:ControllerEvent):void{ ad.setSize(_arg1.data.width, config.height); positionAd(); } private function ad_clickedHandler(_arg1:Event):void{ linkClicked = true; view.sendEvent(ViewEvent.PAUSE); } } }//package com.conceptualideas.videoplayer.modules.advertisement
Section 52
//JoinScreen (com.conceptualideas.videoplayer.modules.advertisement.JoinScreen) package com.conceptualideas.videoplayer.modules.advertisement { import flash.events.*; import flash.display.*; import com.conceptualideas.videoplayer.utils.*; import com.conceptualideas.utils.*; import com.conceptualideas.videoplayer.events.*; import gs.*; import com.conceptualideas.videoplayer.modules.*; public class JoinScreen extends BaseComponent { private var config:Object; private var timer:LimitPlayback; private var dtools:DomainTools; public function JoinScreen(){ config = {target:"_self", useTimeLimit:false, timelimit:30}; super(); } private function onImageLoaded(_arg1:Event, _arg2:String):void{ var e = _arg1; var link = _arg2; if (view.skin.getChildByName("controlbar")){ MovieClip(view.skin.getChildByName("controlbar")).enabled = false; }; var s:Sprite = PlayerUtils.createSpriteHolder(view.stage.stageWidth, view.stage.stageHeight, 0, 1); view.stage.addChild(s); s.name = "JoinScreen"; var tmp:Bitmap = (e.target.content as Bitmap); tmp.smoothing = true; s.addChild(tmp); PlayerUtils.fit(tmp, view.stage.stageWidth, view.stage.stageHeight); TweenLite.from(tmp, 1, {alpha:0}); s.buttonMode = true; s.addEventListener(MouseEvent.CLICK, function (_arg1:MouseEvent):void{ dtools.navigate(link, config.target); }); } override public function initalize(_arg1:AbstractView):void{ super.initalize(_arg1); dtools = DomainTools.instance(); config = dtools.extend(config, _arg1.config.get("modules.joinscreen")); _arg1.addControllerListener(ControllerEvent.FINISHED, onFinishedRequest); if (config.useTimeLimit){ timer = new LimitPlayback(config.timelimit); timer.initalize(_arg1); }; } private function onFinishedRequest(_arg1:ControllerEvent):void{ var _local2:String = (dtools.vars.hasKey("join.image")) ? dtools.vars.getValue("join.image") : config.image; var _local3:String = (dtools.vars.hasKey("join.link")) ? dtools.vars.getValue("join.link") : config.link; trace("JoinScreen", _local2, _local3); if (((_local2) && (_local3))){ dtools.loadImage(_local2, onImageLoaded, _local3); }; } } }//package com.conceptualideas.videoplayer.modules.advertisement
Section 53
//Detacher (com.conceptualideas.videoplayer.modules.interfaces.Detacher) package com.conceptualideas.videoplayer.modules.interfaces { import flash.events.*; import com.conceptualideas.utils.*; import com.conceptualideas.videoplayer.events.*; import com.conceptualideas.videoplayer.modules.ui.*; import flash.external.*; public class Detacher extends BaseComponent { private var config:Object; public function Detacher(){ config = {method:"javascript", params:["id"], url:"ci_DetachPlayer"}; super(); } override public function initalize(_arg1:AbstractView):void{ var _local3:ControlBar; super.initalize(_arg1); var _local2:DomainTools = DomainTools.instance(); if (!_local2.vars.hasKey("detach")){ config = _local2.extend(config, _arg1.config.get("modules.detacher")); _arg1.addViewListener("DETACH_PLAYER", onDetachRequest); } else { _local3 = _arg1.getModule("ControlBar"); if (_local3){ _local3.removeButton("detach"); }; }; } private function onDetachRequest(_arg1:Event):void{ var _local3:Object; var _local2:DomainTools = DomainTools.instance(); if (config.method == "javascript"){ if (ExternalInterface.available){ _local3 = ((_local2.vars.getKeyPairMap(config.params)) || ({})); ExternalInterface.call(config.url, _local3); AbstractView(_arg1.target).sendEvent(ViewEvent.PAUSE); }; }; } } }//package com.conceptualideas.videoplayer.modules.interfaces
Section 54
//Hooker (com.conceptualideas.videoplayer.modules.interfaces.Hooker) package com.conceptualideas.videoplayer.modules.interfaces { import com.conceptualideas.videoplayer.interfaces.*; import com.conceptualideas.videoplayer.utils.*; import flash.utils.*; import com.conceptualideas.videoplayer.events.*; import com.conceptualideas.videoplayer.core.hooks.*; public class Hooker extends BaseComponent { private var _hooks:Dictionary; public function Hooker(){ _hooks = new Dictionary(); super(); } public function getName():String{ return ("hooker"); } override public function initalize(_arg1:AbstractView):void{ super.initalize(_arg1); Hooks.init(Reflection.getClassConst(HookingEvents, true)); } public function hook(_arg1:String, _arg2:String, _arg3:Function, _arg4:Object=null, _arg5:Boolean=true):ISystemHook{ return (Hooks.hook(_arg1, _arg2, _arg3, _arg4, _arg5)); } public function run(_arg1:String, _arg2:Function, _arg3:Object=null):void{ Hooks.run(_arg1, _arg2, _arg3); } public function unhook(_arg1:String, _arg2:Function=null, _arg3:Boolean=false):Boolean{ return (Hooks.unhook(_arg1, _arg2, _arg3)); } } }//package com.conceptualideas.videoplayer.modules.interfaces
Section 55
//Javascript (com.conceptualideas.videoplayer.modules.interfaces.Javascript) package com.conceptualideas.videoplayer.modules.interfaces { import com.conceptualideas.videoplayer.utils.*; import flash.utils.*; import com.conceptualideas.videoplayer.events.*; import flash.external.*; public class Javascript extends BaseComponent { private const EVENTS:Object; private var ignore:Array; private var subscribers:Object; private var isPlayerPaused:Boolean;// = false public function Javascript(){ subscribers = {}; EVENTS = {Controller:{instance:ControllerEvent, uppercase:false}, Model:{instance:ModelEvent, uppercase:false}, View:{instance:ViewEvent, uppercase:true}}; ignore = ["TRACK"]; super(); } override public function initalize(_arg1:AbstractView):void{ var jsClassLoaded:Boolean; var view = _arg1; super.initalize(view); try { if (ExternalInterface.available){ jsClassLoaded = Boolean(ExternalInterface.call("eval", "(typeof CIPlayer =='undefined')?false:true;")); ExternalInterface.addCallback("sendEvent", onJsFunctonCall); if (jsClassLoaded){ ExternalInterface.addCallback("jsAction", onJsFunctonCall); if (!ExternalInterface.call("CIPlayer.dontSubscribe")){ ExternalInterface.addCallback("subscribe", onSubscribeRequest); ExternalInterface.addCallback("unsubscribe", onUnSubscribeRequest); setupSubscription(); } else { trace("Not Subscribing to js events"); }; }; }; } catch(e:Error) { }; } private function onJsFunctonCall(_arg1:String, ... _args):Boolean{ var _local3:Number; var _local4:Boolean; var _local5:Object; var _local6:PlaylistBuilder; var _local7:Object; var _local8:String; if (view.currentItem){ _arg1 = _arg1.toLowerCase(); switch (_arg1){ case "play": if (((_args.length) && (!((_args[0] is String))))){ _local5 = _args[0]; _local6 = PlaylistBuilder.instance(); _local7 = _local6.parseVideoString(_local5.file); delete _local5.file; for (_local8 in _local5) { if (_local5[_local8] != null){ _local7[_local8] = _local5[_local8]; }; }; view.sendEvent(ViewEvent.LOAD, [_local7]); } else { view.sendEvent(ViewEvent.PLAY); }; break; case "pause": view.sendEvent(ViewEvent.PAUSE); break; case "stop": view.sendEvent(ViewEvent.STOP); break; case "togglePlayPause": if (isPlayerPaused){ view.sendEvent(ViewEvent.PLAY); } else { view.sendEvent(ViewEvent.PAUSE); }; break; case "seek": _local4 = (((_args[1]) && ((String(_args[1]).toLowerCase() == "true")))) ? true : false; _local3 = (_local4) ? (Number(_args[0]) * view.currentItem["duration"]) : Number(_args[0]); view.sendEvent(ViewEvent.SEEK, _local3); break; case "next": break; case "prev": break; case "enterFullScreen": view.sendEvent(ViewEvent.FULLSCREEN); break; case "isFullScreen": return ((view.stage.displayState == "fullScreen")); }; }; return (true); } private function onForwardViewEvent(_arg1:ViewEvent):void{ forwardEvent("View", _arg1.type, _arg1.data); if ((((_arg1.type == ViewEvent.PLAY)) || ((_arg1.type == ViewEvent.PAUSE)))){ isPlayerPaused = ((_arg1.type)==ViewEvent.PAUSE) ? true : false; }; } private function forwardEvent(_arg1:String, _arg2:String, _arg3:Object):void{ var _local5:String; if (ignore.indexOf(_arg2) != -1){ return; }; var _local4:String = ((_arg1 + "::") + _arg2.toUpperCase()); if (!_arg3){ _arg3 = {}; }; if ((((_arg1.toUpperCase() == "VIEW")) && ((_arg2.toUpperCase() == "INIT")))){ _arg3.playerID = ExternalInterface.objectID; _arg3.type = _local4; ExternalInterface.call("CIPlayer.global.broadcast", _local4, _arg3); return; }; for each (_local5 in subscribers[_local4]) { _arg3.type = _local4; ExternalInterface.call("CIPlayer.global.broadcast", _local4, _arg3, _local5); }; } private function onForwardModelEvent(_arg1:ModelEvent):void{ forwardEvent("Model", _arg1.type, _arg1.data); } private function onForwardControllerEvent(_arg1:ControllerEvent):void{ var _local2:Object = _arg1.data; if (_arg1.type == ControllerEvent.LOAD){ isPlayerPaused = !(view.currentItem["autoplay"]); _local2 = view.currentItem; }; forwardEvent("Controller", _arg1.type, _local2); } private function setupSubscription():void{ var _local1:*; var _local2:String; var _local3:String; var _local4:Array; var _local5:String; for (_local3 in EVENTS) { _local1 = EVENTS[_local3].instance; _local4 = getClassEvents(_local1); _local2 = (("add" + _local3) + "Listener"); for each (_local5 in _local4) { if (ignore.indexOf(_local1[_local5]) == -1){ view[_local2].apply(this, [_local1[_local5], this[(("onForward" + _local3) + "Event")]]); }; }; }; } private function getClassEvents(_arg1:Class):Array{ var _local4:XML; var _local2:XML = describeType(_arg1); var _local3:Array = []; for each (_local4 in _local2.constant) { _local3.push(String(_local4.@name)); }; return (_local3); } private function onSubscribeRequest(_arg1:String, _arg2:String):Boolean{ if (!subscribers[_arg2]){ subscribers[_arg2] = []; }; subscribers[_arg2].push(_arg1); return (true); } private function onUnSubscribeRequest(_arg1:String, _arg2:String):void{ var _local3:Number; if (subscribers[_arg2]){ _local3 = subscribers[_arg2].indexOf(_arg1); subscribers[_arg2].splice(_local3, 1); }; } } }//package com.conceptualideas.videoplayer.modules.interfaces
Section 56
//Verify (com.conceptualideas.videoplayer.modules.interfaces.Verify) package com.conceptualideas.videoplayer.modules.interfaces { import flash.events.*; import com.conceptualideas.videoplayer.interfaces.*; import com.conceptualideas.utils.*; import com.conceptualideas.videoplayer.events.*; public class Verify extends BaseComponent { private var config:Object; private var hook:ISystemHook; private var _lastAnswer;// = null private var dtools:DomainTools; public function Verify(){ config = {endpoint:"", redirect:"http://www.google.com", bounce:"http://www.google.com", action:"redirect"}; dtools = DomainTools.instance(); super(); } override public function initalize(_arg1:AbstractView):void{ super.initalize(_arg1); config = dtools.extend(config, _arg1.config.get("modules.verify")); hook = _arg1.addHook(HookingEvents.FIRST_PLAY, "verify", verify, this, false); _arg1.addControllerListener(ControllerEvent.LOAD, onLoadRequest); } private function forward(_arg1:Boolean):void{ hook.assert(_arg1); _lastAnswer = _arg1; } private function onVerified(_arg1:Event):void{ if (_arg1.target.data == "false"){ handleAction(); } else { if (_arg1.target.data == "bounce"){ dtools.navigate(config.bounce); } else { if (_arg1.target.data == "limit"){ forward(false); } else { forward(true); }; }; }; } public function verify():void{ var _local1:Object; if (_lastAnswer == null){ if (((config.endpoint) && (!((config.endpoint == ""))))){ _local1 = dtools.adsense; dtools.loadURL(config.endpoint, onVerified, {site:_local1["server_url"]}, "POST", false); } else { forward(true); }; } else { forward(_lastAnswer); }; } private function onLoadRequest(_arg1:ControllerEvent):void{ } private function onPlayerRequest(_arg1:ControllerEvent):void{ if (config.verify == "block"){ view.sendEvent("STOP"); }; } private function handleAction():void{ switch (config.action){ case "redirect": dtools.navigate(config.redirect); break; case "bounce": dtools.navigate(config.bounce); break; case "end": view.sendEvent(ViewEvent.STOP); break; }; } } }//package com.conceptualideas.videoplayer.modules.interfaces
Section 57
//ControlBar (com.conceptualideas.videoplayer.modules.ui.ControlBar) package com.conceptualideas.videoplayer.modules.ui { import flash.events.*; import flash.display.*; import com.conceptualideas.videoplayer.utils.*; import flash.geom.*; import flash.utils.*; import com.conceptualideas.videoplayer.events.*; public class ControlBar extends BaseComponent { private var currentPixelOffset:Number; private var firstPlay:Boolean;// = true private var stepSeekActive:Boolean;// = false private var SLIDERS:Object; private var bar:MovieClip; private var barHeight:Number; private var realtimeVolumeTimeout:Number; private var progress_mask:Sprite; public var stacker:Stacker; private var GROUPS:Array; private var stepSeekTimeout:Number; private var slider:MovieClip; private var BUTTONS:Object; private var invalidateCurrentOffset:Boolean;// = true private var SLIDER_GROUPS:Array; private var seeking:Boolean;// = false private var skin:MovieClip; public function ControlBar():void{ GROUPS = ["playpause", "video", "volume", "rewind", "fullscreen", "dim", "menu"]; SLIDER_GROUPS = ["seek"]; BUTTONS = {playpause:{playButton:"PLAY", pauseButton:"PAUSE"}, rewind:{rewindButton:"REWIND"}, video:{fit:"REDRAW_SCREEN", original:"REDRAW_SCREEN"}, volume:{volume_on:"MUTE", volume_off:"UNMUTE", volume_show:""}, fullscreen:{fullscreen_enter:"FULLSCREEN", fullscreen_exit:"FULLSCREEN"}, dim:{dimButton:"DIM"}}; SLIDERS = {seek:"SEEK", volume:"VOLUME", volume_slider:"VOLUME"}; super(); } public function getName():String{ return ("ControlBar"); } private function toggleVisible(_arg1:Object, _arg2:Boolean):void{ if (_arg1){ _arg1.visible = _arg2; }; } private function onScreenChanged(_arg1:ViewEvent):void{ if (_arg1.type == ViewEvent.FIT_SCREEN){ bar.video.fit.visible = false; bar.video.original.visible = true; } else { bar.video.fit.visible = true; bar.video.original.visible = false; }; } private function setupButton(_arg1:MovieClip):void{ _arg1.buttonMode = true; _arg1.mouseChildren = false; _arg1.addEventListener(MouseEvent.CLICK, onClickHandler, false, 0, true); _arg1.addEventListener(MouseEvent.ROLL_OVER, onRollOverHandler, false, 0, true); _arg1.addEventListener(MouseEvent.ROLL_OUT, onRollOutHandler, false, 0, true); } private function onUpHandler(_arg1:MouseEvent):void{ var _local2:Number; slider.dragger.stopDrag(); bar.stage.removeEventListener(MouseEvent.MOUSE_UP, onUpHandler); if (bar.stage.hasEventListener(MouseEvent.MOUSE_MOVE)){ bar.stage.removeEventListener(MouseEvent.MOUSE_MOVE, onMoveHandler); }; if (slider.name == "seek"){ _local2 = view.currentItem["duration"]; view.config["limitByCached"] = false; } else { _local2 = 100; }; calculateSliderValue(slider, _local2); } public function hasClip(_arg1:String):Boolean{ var _local4:String; var _local2:Array = _arg1.split("."); var _local3:Object = bar; for each (_local4 in _local2) { if (!_local3[_local4]){ return (false); }; _local3 = _local3[_local4]; }; if (Boolean(_local3)){ return (true); }; return (false); } private function onResizeRequest(_arg1:ControllerEvent):void{ var _local2:Number = 5; var _local3:Object = _arg1.data; bar.y = (_local3.height - barHeight); bar.x = _local3.leftBounds; invalidateLayout(_local3.width); view.skin.addChildAt(bar, (view.skin.numChildren - 1)); if (((view.config["lastTime"]) && (!((view.currentItem == null))))){ updateTimeBarPosition(view.config["lastTime"], view.currentItem["duration"]); }; } private function toggleState(_arg1:MovieClip, _arg2:Boolean, _arg3:Boolean):void{ if (((_arg1["over"]) && (_arg1["out"]))){ _arg1["over"].visible = _arg2; _arg1["out"].visible = _arg3; }; } private function setupPlayerListeners():void{ view.config.barHeight = barHeight; view.addModelListener(ModelEvent.STATE, onStateRequest); view.addModelListener(ModelEvent.TIME, onTimeRequest); view.addModelListener(ModelEvent.LOADED, onLoadProgress); view.addViewListener(ViewEvent.STEP_SEEK, onStepSeekRequest); view.addControllerListener(ControllerEvent.LOAD, onLoadRequest); view.addControllerListener(ControllerEvent.PLAYLIST, onLoadRequest); view.addControllerListener(ControllerEvent.VOLUME, onVolumeRequest); view.addViewListener(ViewEvent.REWIND, onRewindRequest); view.addControllerListener(ControllerEvent.RESIZE, onResizeRequest); view.addControllerListener(ControllerEvent.RESIZE_VIDEO, onResizeVideo); view.addControllerListener(ControllerEvent.FINISHED, onFinishRequest); if (bar["video"]){ view.addViewListener(ViewEvent.ORIGINAL_SCREEN, onScreenChanged); view.addViewListener(ViewEvent.FIT_SCREEN, onScreenChanged); }; } private function onTimeRequest(_arg1:ModelEvent):void{ updateTime(_arg1.data); updateTimeBarPosition(_arg1.data.time, _arg1.data.duration); } private function setupColorScheme():void{ if (view.config.get("ui.skin.useColors")){ Colorer.recursiveColor(bar, view.config.get("ui.skin.colors")); Colorer.recursiveAlpha(bar, view.config.get("ui.skin.opacity")); }; } private function onStepSeekRequest(_arg1:ViewEvent):void{ var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local2:Number = bar.seek.dragger.width; var _local3:DisplayObject = ((bar.seek["rail"]) || (bar.seek["done"])); var _local4:Boolean = view.config.get("controlbar.seek.onlySectionCached", false, true); var _local5:Boolean = view.config.get("controlbar.seek.realTime", false, true); if (view.currentItem["seekable"]){ _local6 = bar.seek.bounds.width; _local7 = view.currentItem["duration"]; if (_local7 == -1){ return; }; _local8 = ((_local7 / 100) * _arg1.data.step); _local9 = getValueOfSlider(bar.seek, _local7, false); _local10 = (_local9 + (_local8 * _arg1.data.delta)); if (_local10 > _local7){ _local10 = _local7; } else { if (_local10 < 0){ _local10 = 0; }; }; _local11 = (_local10 / _local7); if (isNaN(_local11)){ _local11 = 1; }; _local12 = Math.round((_local11 * (_local6 - _local2))); if (_local12 < 0){ return; }; _local13 = Math.round(_local3.x); _local14 = Math.round(((_local13 + _local3.width) - _local2)); if (((_local4) && ((((_local12 <= _local13)) || ((_local12 >= _local14)))))){ return; }; seeking = true; clearTimeout(stepSeekTimeout); bar.seek.dragger.x = _local12; bar.seek.progress.width = _local12; view.config["limitByCached"] = true; stepSeekTimeout = setTimeout(calculateSliderValue, (_local5) ? 0 : 500, bar.seek, _local7); }; } private function onClickHandler(_arg1:MouseEvent):void{ var _local5:String; var _local2:Object = _arg1.target.parent; var _local3:MovieClip = MovieClip(_arg1.target); var _local4:Object = {fromControlBar:true}; if (_local3.name == "volume_show"){ if (((_local2.volume_on) && (_local2.volume_on.visible))){ _local3 = _local2.volume_on; } else { if (((_local2.volume_off) && (_local2.volume_off.visible))){ _local3 = _local2.volume_off; }; }; }; if (_local2.name){ _local5 = BUTTONS[_local2.name][_local3.name]; switch (_local3.name){ case "fit": bar.video.fit.visible = false; bar.video.original.visible = true; _local4.type = ViewEvent.FIT_SCREEN; break; case "original": _local4.type = ViewEvent.ORIGINAL_SCREEN; bar.video.fit.visible = true; bar.video.original.visible = false; break; }; view.sendEvent(_local5, _local4); }; } private function onLoadProgress(_arg1:ModelEvent):void{ var _local3:Object; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local2:Number = bar.seek.bounds.width; if ((((view.currentItem["type"] == "http")) || (view.config.get("ui.downloadbar")))){ _local3 = ((bar.seek["rail"]) || (bar.seek["done"])); if (invalidateCurrentOffset){ currentPixelOffset = timeToPixels(_arg1.data.offset); if (isNaN(currentPixelOffset)){ return; }; if (_local3){ _local3.visible = true; }; invalidateCurrentOffset = false; }; _local4 = _arg1.data.loaded; _local5 = _arg1.data.total; _local6 = bar.seek.dragger.width; _local7 = bar.seek.bounds.width; _local2 = (_local6 + ((_local4 / _local5) * ((_local7 - _local6) - currentPixelOffset))); _local3.width = _local2; _local3.x = currentPixelOffset; }; } public function addButton(_arg1, _arg2:Object, _arg3:Boolean=false):Boolean{ var _local6:String; var _local7:String; var _local8:String; var _local4:Boolean; var _local5:MovieClip = ((_arg1 is String)) ? bar[_arg1] : MovieClip(_arg1); if (!_local5){ return (false); }; for (_local6 in _arg2) { if (BUTTONS[_local6]){ } else { BUTTONS[_local6] = _arg2[_local6]; _local4 = true; }; }; if (_arg3){ setupSlider(_local5); } else { for (_local7 in _arg2) { for (_local8 in _arg2[_local7]) { setupButton(_local5[_local8]); }; }; }; return (_local4); } private function onRewindRequest(_arg1:ViewEvent):void{ invalidateCurrentOffset = true; } protected function updateTime(_arg1:Object):void{ if (bar["time"]){ bar.time.elaspedText["text"] = Strings.digits(_arg1.time); bar.time.totalText["text"] = Strings.digits(_arg1.duration); }; } private function onRollOutHandler(_arg1:MouseEvent):void{ toggleState((_arg1.target as MovieClip), false, true); } override public function initalize(_arg1:AbstractView):void{ super.initalize(_arg1); this.skin = _arg1.skin; this.bar = skin["controlbar"]; if (((_arg1.config.hasEnhancement("ControlBar")) && (_arg1.config.get("enhancements.controlbar.maxHeight")))){ barHeight = _arg1.config.get("enhancements.controlbar.maxHeight"); } else { barHeight = this.bar.back.height; }; _arg1.config["barHeight"] = barHeight; _arg1.config["lastTime"] = 0; stacker = new Stacker(bar); setupPlayerListeners(); setupRemoveButtons(); setupButtons(); setupColorScheme(); updateTimeBarPosition(-1, 0); bar.enabled = false; ((bar.seek["rail"]) || (bar.seek["done"])).visible = false; } private function onStateRequest(_arg1:ModelEvent):void{ var e = _arg1; switch (e.data["state"]){ case ModelStates.PLAYING: try { if (bar.playpause.playButton.x == bar.playpause.pauseButton.x){ bar.playpause.playButton.visible = false; bar.playpause.pauseButton.visible = true; }; } catch(e:Error) { trace(e); }; if (firstPlay){ bar.enabled = true; firstPlay = false; if (view.currentItem["seekable"]){ bar.seek.mouseEnabled = true; bar.seek.buttonMode = true; }; }; break; case ModelStates.PAUSED: try { if (bar.playpause.playButton.x == bar.playpause.pauseButton.x){ bar.playpause.playButton.visible = true; bar.playpause.pauseButton.visible = false; }; } catch(e:Error) { trace(e); }; break; }; } private function onRollOverHandler(_arg1:MouseEvent):void{ toggleState((_arg1.target as MovieClip), true, false); } private function invalidateLayout(_arg1:Number=undefined):void{ var _local4:Number; var _local5:Number; var _local6:Boolean; var _local2:Number = bar.seek.rail.width; stacker.rearrange(_arg1); var _local3:Object = stacker.findNext("seek"); if (_local3){ _local4 = bar.seek.scaleX; bar.seek.scaleX = 1; _local5 = (_local3.x - bar.seek.x); _local6 = view.config.get("controlbar.seek.onlySectionCached", false, true); if (!_local6){ bar.seek.rail.width = _local5; }; bar.seek.bounds.width = _local5; bar.seek.progress.width = _local5; }; invalidateCurrentOffset = true; skin.stage.invalidate(); } protected function updateTimeBarPosition(_arg1:Number, _arg2:Number):void{ var _local3:Number; var _local4:Number; var _local5:Number; if (!seeking){ _local3 = bar.seek.bounds.width; _local4 = ((_arg2)==-1) ? 0 : (_arg1 / _arg2); if (isNaN(_local4)){ _local4 = 1; }; _local5 = Math.ceil((_local4 * (_local3 - bar.seek.dragger.width))); bar.seek.dragger.x = _local5; bar.seek.progress.width = _local5; if (_arg2 != 0){ view.config["lastTime"] = _arg1; }; }; } private function onResizeVideo(_arg1:ControllerEvent):void{ setVideoIcons(_arg1.data.type); } private function calculateSliderValue(_arg1:Object, _arg2:Number):void{ if (seeking){ invalidateCurrentOffset = true; }; view.sendEvent(SLIDERS[_arg1.name], getValueOfSlider(_arg1, _arg2)); seeking = false; } private function setupSlider(_arg1:MovieClip):void{ _arg1.buttonMode = true; _arg1.mouseChildren = false; _arg1.addEventListener(MouseEvent.MOUSE_DOWN, onDownHandler, false, 0, true); _arg1.addEventListener(MouseEvent.ROLL_OVER, onRollOverHandler, false, 0, true); _arg1.addEventListener(MouseEvent.ROLL_OUT, onRollOutHandler, false, 0, true); } private function setupButtons():void{ var btn:MovieClip; var group:String; var slider:String; var button:String; if (((bar["video"]) && (bar["video"]["fit"]))){ bar["video"]["fit"]["visible"] = false; }; if (bar.playpause.playButton.x == bar.playpause.pauseButton.x){ bar.playpause.playButton.visible = true; bar.playpause.pauseButton.visible = false; }; var hooked:Object = {}; var hide:Array = ["fullscreen_exit"]; for each (group in GROUPS) { if (bar[group]){ for (button in BUTTONS[group]) { if (bar[group][button]){ btn = MovieClip(bar[group][button]); if (hide.indexOf(button) != -1){ btn.visible = false; }; if (btn.over){ btn.over.visible = false; }; setupButton(btn); }; }; }; }; for (slider in SLIDERS) { if (bar[slider]){ if (bar[slider][(slider + "_slider")]){ btn = bar[slider][(slider + "_slider")]; } else { btn = bar[slider]; }; setupSlider(btn); }; }; try { if (bar.volume.volume_show){ bar.volume.volume_slider.visible = false; }; } catch(e:Error) { }; } public function removeButton(_arg1:String):void{ if (!bar[_arg1]){ return; }; bar[_arg1].visible = false; stacker.addRemove(_arg1); invalidateLayout(); } private function onMoveHandler(_arg1:MouseEvent):void{ clearTimeout(realtimeVolumeTimeout); realtimeVolumeTimeout = setTimeout(calculateSliderValue, 50, slider, 100); } private function setupRemoveButtons():void{ var _local1:Object; var _local2:String; if (view.config.hasEnhancement("ControlBar")){ _local1 = view.config.get("controlbar", false, true); if (((((((!(_local1)) || (!(_local1["remove"])))) || ((!(_local1["remove"]) is Array)))) || (!(_local1["remove"].length)))){ return; }; for each (_local2 in _local1.remove) { if (bar[_local2]){ bar[_local2].visible = false; stacker.addRemove(_local2); }; }; }; } private function onDownHandler(_arg1:MouseEvent):void{ slider = MovieClip(_arg1.target); if ((((slider.name == "seek")) && (((!(view.currentItem["seekable"])) || (!(view.currentItem["duration"])))))){ return; }; var _local2:Rectangle = new Rectangle(slider.bounds.x, slider.dragger.y, (slider.bounds.width - slider.dragger.width), 0); slider.dragger.startDrag(true, _local2); if (slider.name == "seek"){ seeking = true; }; bar.stage.addEventListener(MouseEvent.MOUSE_UP, onUpHandler); if (slider.name != "seek"){ bar.stage.addEventListener(MouseEvent.MOUSE_MOVE, onMoveHandler); }; } private function onLoadRequest(_arg1:ControllerEvent):void{ var _local2:Object = ((bar.seek["rail"]) || (bar.seek["done"])); if (_local2){ _local2.visible = false; }; invalidateCurrentOffset = true; firstPlay = true; bar.seek.mouseEnabled = false; bar.seek.buttonMode = false; updateTimeBarPosition(0, 100); view.config["lastTime"] = 0; } private function onFinishRequest(_arg1:ControllerEvent):void{ bar.playpause.playButton.visible = true; bar.playpause.pauseButton.visible = false; } private function setVideoIcons(_arg1:String):void{ var videoSize = _arg1; try { if (videoSize == "FIT_SCREEN"){ bar.video.fit.visible = false; bar.video.original.visible = true; } else { bar.video.fit.visible = true; bar.video.original.visible = false; }; } catch(e:Error) { }; } private function getValueOfSlider(_arg1:Object, _arg2:Number, _arg3:Boolean=true):Number{ var _local4:Number = (((_arg1.dragger.x - _arg1.bounds.x) / (_arg1.bounds.width - _arg1.dragger.width)) * _arg2); return ((_arg3) ? Math.floor(_local4) : _local4); } private function timeToPixels(_arg1:Number):Number{ return (Math.floor(((_arg1 / view.currentItem["duration"]) * (bar.seek.bounds.width - bar.seek.dragger.width)))); } private function onVolumeRequest(_arg1:ControllerEvent):void{ if (bar.volume.volume_on){ if (_arg1.data.volume > 0){ bar.volume.volume_off.visible = false; bar.volume.volume_on.visible = true; } else { bar.volume.volume_off.visible = true; bar.volume.volume_on.visible = false; }; }; var _local2:MovieClip = (bar.volume.volume_slider) ? bar.volume.volume_slider : bar.volume; var _local3:Number = ((_arg1.data.volume * (_local2.bounds.width - _local2.dragger.width)) + _local2.bounds.x); _local2.progress.width = _local3; _local2.dragger.x = _local3; } private function onPlaylistRequest(_arg1:ControllerEvent):void{ } } }//package com.conceptualideas.videoplayer.modules.ui
Section 58
//ImageOverlay (com.conceptualideas.videoplayer.modules.ui.ImageOverlay) package com.conceptualideas.videoplayer.modules.ui { import flash.events.*; import flash.display.*; import com.conceptualideas.videoplayer.utils.*; import com.conceptualideas.utils.*; import com.conceptualideas.videoplayer.events.*; import gs.*; public class ImageOverlay extends BaseComponent { private var container:Sprite; private var config:Object; private var _playing:Boolean;// = false private var dtools:DomainTools; public function ImageOverlay(){ config = {start:null, end:null}; super(); } private function resizeImage(_arg1:DisplayObject):void{ var _local2:Number = view.stage.stageHeight; if (!view.config.get("ui.overlay.fullHeight")){ _local2 = (_local2 - view.config.barHeight); }; PlayerUtils.fit(_arg1, view.stage.stageWidth, _local2); } private function onImageLoaded(_arg1:Event):void{ if (_playing){ return; }; var _local2:DisplayObject = _arg1.target.content; container.addChild(_local2); container.visible = true; view.skin.display.addChild(view.skin.display.icons); resizeImage(_local2); TweenLite.from(_local2, 1, {alpha:0}); } private function loadOverlay(_arg1:String):void{ if (((config[_arg1]) && (!((config[_arg1] == ""))))){ _playing = false; dtools.loadImage(config[_arg1], onImageLoaded); }; } private function onVideoFinished(_arg1:ControllerEvent):void{ loadOverlay("end"); } private function onPlayerAction(_arg1:Event):void{ while (container.numChildren > 0) { Bitmap(container.removeChildAt(0)).bitmapData.dispose(); }; _playing = true; container.visible = false; } private function onPlaylistLoadRequest(_arg1:ControllerEvent):void{ if (!view.config.get("main.autoPlay")){ loadOverlay("start"); }; view.removeControllerListener(ControllerEvent.PLAYLIST, onPlaylistLoadRequest); } override public function initalize(_arg1:AbstractView):void{ super.initalize(_arg1); container = (_arg1.skin.display.addChild(new Sprite()) as Sprite); dtools = DomainTools.instance(); config.start = dtools.vars.getEither("overlay.start", "overlay", "image"); config.end = dtools.vars.getValue("overlay.end"); if (((((config.start) && (!((config.start == ""))))) || (((config.end) && (!((config.end == ""))))))){ _arg1.addControllerListener(ControllerEvent.SEEK, onPlayerAction); _arg1.addControllerListener(ControllerEvent.PLAY, onPlayerAction); _arg1.addControllerListener(ControllerEvent.LOAD, onPlayerAction); _arg1.addControllerListener(ControllerEvent.PLAYLIST, onPlaylistLoadRequest); _arg1.addViewListener("REWIND", onPlayerAction); }; _arg1.addControllerListener(ControllerEvent.RESIZE, onResizeRequest); _arg1.addControllerListener(ControllerEvent.FINISHED, onVideoFinished); } private function onResizeRequest(_arg1:ControllerEvent):void{ if (container.numChildren){ resizeImage(container.getChildAt(0)); }; } } }//package com.conceptualideas.videoplayer.modules.ui
Section 59
//ReplayScreen (com.conceptualideas.videoplayer.modules.ui.ReplayScreen) package com.conceptualideas.videoplayer.modules.ui { import flash.events.*; import flash.display.*; import com.conceptualideas.videoplayer.events.*; public class ReplayScreen extends BaseComponent { private var button:InteractiveObject; private var yOffset:Number;// = 0 public function ReplayScreen(){ _allowResize = true; } private function onFinished(_arg1:ControllerEvent):void{ arrange(); button.visible = true; var _local2:Sprite = (view.skin.controlbar as Sprite); } private function onReplay(_arg1:MouseEvent):void{ view.sendEvent(ViewEvent.REWIND); var _local2:Sprite = (view.skin.controlbar as Sprite); button.visible = false; } private function onUserAction(_arg1:ControllerEvent):void{ button.visible = false; } override public function initalize(_arg1:AbstractView):void{ super.initalize(_arg1); button = (_arg1.skin.getChildByName("replayButton") as InteractiveObject); if (button){ button.visible = false; button.addEventListener(MouseEvent.CLICK, onReplay); _arg1.addControllerListener(ControllerEvent.FINISHED, onFinished); _arg1.addControllerListener(ControllerEvent.LOAD, onUserAction); _arg1.addControllerListener(ControllerEvent.PAUSE, onUserAction); _arg1.addControllerListener(ControllerEvent.PLAY, onUserAction); _arg1.addControllerListener(ControllerEvent.SEEK, onUserAction); _arg1.addViewListener("AD_LOADED", onAdLoaded); }; } override protected function arrange():void{ if (button){ if (yOffset){ place(button, "bottom"); button.y = (yOffset + 10); } else { place(button, "center"); }; }; } private function onAdLoaded(_arg1:ViewEvent):void{ var _local2:DisplayObject = _arg1.data.target; if (_local2){ yOffset = (_local2.y + _local2.height); arrange(); }; } } }//package com.conceptualideas.videoplayer.modules.ui
Section 60
//RightClickModule (com.conceptualideas.videoplayer.modules.ui.RightClickModule) package com.conceptualideas.videoplayer.modules.ui { import flash.display.*; import flash.utils.*; import com.conceptualideas.videoplayer.events.*; import flash.net.*; import com.reyco1.events.*; import com.reyco1.manager.*; public class RightClickModule extends BaseComponent { private var managerList:Dictionary; private var ctxManager:ContextMenuManager; private static const REPORT_LABEL:String = "Report Bug"; public function RightClickModule(){ managerList = new Dictionary(); super(); } override public function initalize(_arg1:AbstractView):void{ var _local2:Object; super.initalize(_arg1); ctxManager = new ContextMenuManager(_arg1.skin.display); for each (_local2 in _arg1.config.ui.rightclick) { managerList[_local2.display] = _local2; ctxManager.addMenuItem(_local2.display, _local2.sepratorBefore); }; ctxManager.addEventListener(ContextMenuManagerEvent.MENU_SELECTED, onContextMenuSelected); } private function onContextMenuSelected(_arg1:ContextMenuManagerEvent):void{ var _local3:Array; var _local4:int; var _local5:Array; var _local6:String; var _local2:Object = managerList[_arg1.params.label]; trace(_arg1.params.label); if (_local2 != null){ switch (_local2.action){ case "quality": view.skin.stage.quality = StageQuality[_local2.setting]; break; case "url": navigateToURL(new URLRequest(_local2.setting), _local2.target); break; case "bug": break; }; _local3 = ctxManager.arrMenuItems; _local4 = 0; while (_local4 < _local3.length) { _local5 = _local3[_local4].label.split("> "); trace("Check:", _local5); _local6 = ""; if (!_local5.length){ return; }; _local6 = ((_local5.length)==2) ? _local5[1] : _local5[0]; if (managerList[_local6].action == "quality"){ _local3[_local4].label = ((_local6)==_arg1.params.label) ? ("> " + _local6) : _local6; }; _local4++; }; }; } } }//package com.conceptualideas.videoplayer.modules.ui
Section 61
//Watermark (com.conceptualideas.videoplayer.modules.ui.Watermark) package com.conceptualideas.videoplayer.modules.ui { import flash.events.*; import com.conceptualideas.utils.*; import flash.utils.*; import com.conceptualideas.videoplayer.events.*; import flash.net.*; import com.conceptualideas.videoplayer.views.*; public class Watermark extends BaseComponent { private var config:Object; private var watermarks:Dictionary; private var defaults:Object; public function Watermark(){ watermarks = new Dictionary(true); defaults = {url:"", placement:"BR", link:"", target:"_self", opacity:70, paddingBottom:0, paddingTop:0, paddingRight:0, paddingLeft:0}; config = {showWatermark:true, alwaysShowWatermark:true, display:{}}; super(); } public function getName():String{ return ("watermarks"); } public function hide():void{ var _local1:Object; for each (_local1 in watermarks) { _local1.display.hide(); }; } private function onWatermarkClicked(_arg1:Event):void{ var _local2:Object = watermarks[_arg1.target.name].config; if (_local2.link == "nats"){ } else { if (_local2.activePlay){ view.sendEvent(ViewEvent.PLAY); } else { navigateToURL(new URLRequest(_local2.link), _local2.target); }; }; } public function toggle():void{ var _local1:String; for each (_local1 in config.watermarks.toggle) { _local1[_local1].toggle(); }; } override public function initalize(_arg1:AbstractView):void{ var _local4:DomainTools; var _local5:Object; var _local6:String; var _local7:Object; var _local8:WatermarkView; super.initalize(_arg1); config = _arg1.config.extend(config, _arg1.config.get("ui.watermarks")); var _local2:Boolean = _arg1.config.get("ui.watermarks.showWatermark"); var _local3:Boolean = _arg1.config.get("ui.watermarks.alwaysShowWatermark"); if (((config.showWatermark) || (config.alwaysShowWatermark))){ if (((((config.showWatermark) && (!(config.alwaysShowWatermark)))) && (!(_arg1.config.externalSite)))){ return; }; _local4 = DomainTools.instance(); _local5 = config.display; for (_local6 in _local5) { trace(_local6); _local7 = _local4.extend(defaults, _local5[_local6]); _local8 = new WatermarkView(_local7, _arg1.config.barHeight); _local8.addEventListener(WatermarkView.CLICKED, onWatermarkClicked); _local8.name = _local6; _arg1.skin.addChild(_local8); watermarks[_local6] = {display:_local8, config:_local7}; }; _arg1.addControllerListener(ControllerEvent.RESIZE, onResizeRequest); }; } private function onResizeRequest(_arg1:ControllerEvent):void{ var _local2:Object; for each (_local2 in watermarks) { WatermarkView(_local2.display).arrange(); }; } public function show():void{ var _local1:Object; for each (_local1 in watermarks) { _local1.display.show(); }; } } }//package com.conceptualideas.videoplayer.modules.ui
Section 62
//VideoDisplay (com.conceptualideas.videoplayer.modules.ui.VideoDisplay) package com.conceptualideas.videoplayer.modules.ui { import flash.events.*; import flash.display.*; import com.conceptualideas.videoplayer.utils.*; import com.conceptualideas.utils.*; import com.conceptualideas.videoplayer.events.*; public class VideoDisplay extends BaseComponent { private var config:Object; private var ICONS:Array; private var overlay:Sprite; private var icons:MovieClip; private var linkOnce:Boolean; private var activeIcon:String;// = "playIcon" private var dtools:DomainTools; public function VideoDisplay(){ ICONS = ["bufferIcon", "playIcon", "replayIcon"]; config = {align:"center", disableBufferView:false, removeBackgroundFill:false, displayClick:false}; dtools = DomainTools.instance(); super(); } override public function initalize(_arg1:AbstractView):void{ var _local2:String; super.initalize(_arg1); icons = _arg1.skin.display["icons"]; config = merge(config, "ui.video.display"); _arg1.addControllerListener(ControllerEvent.RESIZE, onResizeRequest); _arg1.addControllerListener(ControllerEvent.RESIZE_VIDEO, onResizeRequest); _arg1.addModelListener(ModelEvent.STATE, onModelEventRequest); _arg1.addModelListener(ModelEvent.BUFFER, onModelEventRequest); _arg1.addControllerListener(ControllerEvent.FINISHED, onFinsihedRequest); overlay = new Sprite(); overlay.buttonMode = true; overlay.name = "overlay"; overlay.useHandCursor = true; overlay.mouseChildren = true; _arg1.skin.display.useHandCursor = true; onResizeRequest(null); _arg1.skin.display.addEventListener(MouseEvent.CLICK, onClickRequest, false, 0, true); MovieClip(_arg1.skin.display).mouseChildren = true; if (_arg1.config.get("ui.skin.useColors")){ if (((icons["playIcon"]) && (icons["playIcon"]["icon"]))){ icons["playIcon"].addEventListener(MouseEvent.ROLL_OVER, onDefaultButtonOver, false, 0, true); icons["playIcon"].addEventListener(MouseEvent.ROLL_OUT, onDefaultButtonOut, false, 0, true); setupPlayIconColor(icons["playIcon"]); }; if (((icons["replayIcon"]) && (icons["replayIcon"]["icon"]))){ icons["replayIcon"].addEventListener(MouseEvent.ROLL_OVER, onDefaultButtonOver, false, 0, true); icons["replayIcon"].addEventListener(MouseEvent.ROLL_OUT, onDefaultButtonOut, false, 0, true); setupPlayIconColor(icons["replayIcon"]); }; }; for each (_local2 in ICONS) { if (icons[_local2]){ icons[_local2].buttonMode = true; }; }; icons.visible = true; if (_arg1.config.get("main.autoPlay")){ setIcon(""); } else { setIcon("playIcon"); }; } public function getName():String{ return ("display"); } private function centerIcons():void{ var _local1:Number = view.skin.display.media.x; var _local2:Number = view.skin.display.media.y; var _local3:Number = view.skin.display.media.width; var _local4:Number = view.skin.display.media.height; var _local5:Object = icons[activeIcon]; if (_local5){ switch (config.align){ case "center": icons.x = (_local1 + ((_local3 - _local5.width) / 2)); icons.y = (_local2 + ((_local4 - _local5.height) / 2)); break; }; }; } private function onFinsihedRequest(_arg1:ControllerEvent):void{ setIcon("replayIcon"); } public function setIcon(_arg1:String=null):void{ var _local2:String; activeIcon = _arg1; if (icons[_arg1]){ icons[_arg1].visible = true; }; for each (_local2 in ICONS) { if (((((!((_local2 == _arg1))) || ((((_local2 == "bufferIcon")) && (config.disableBufferView))))) && (icons[_local2]))){ icons[_local2].visible = false; }; }; centerIcons(); } private function setupPlayIconColor(_arg1:DisplayObject, _arg2:String="up"):void{ Colorer.colorPlayButton(_arg1, view.config.get("ui.skin"), _arg2); } private function onResizeRequest(_arg1:ControllerEvent):void{ view.skin.display.x = (view.skin.display.y = 0); view.skin.graphics.clear(); if (!config.removeBackgroundFill){ view.skin.graphics.beginFill(view.config.ui.background); view.skin.graphics.drawRect(0, 0, view.stage.stageWidth, (view.stage.stageHeight - view.config.barHeight)); view.skin.graphics.endFill(); }; overlay.graphics.clear(); overlay.graphics.beginFill(0xFF0000, 0); overlay.graphics.drawRect(0, 0, view.stage.stageWidth, (view.stage.stageHeight - view.config.barHeight)); overlay.graphics.endFill(); view.skin.display.addChildAt(overlay, (view.skin.display.getChildIndex(icons) - 1)); centerIcons(); } private function onClickRequest(_arg1:MouseEvent):void{ var _local2:String; if (((((((!(linkOnce)) && ((_arg1.target.name == "overlay")))) && (!((view.config["state"] == ModelStates.COMPLETED))))) && (config.displayClick))){ if (((view.currentItem) && (view.currentItem["link"]))){ _local2 = view.currentItem["link"]; }; if (!_local2){ _local2 = config.link; }; if (((_local2) && (view.config.externalSite))){ linkOnce = true; dtools.navigate(_local2, "_blank"); }; }; if (view.config["state"] == ModelStates.IDLE){ view.sendEvent("PLAY"); } else { if (view.config["state"] == ModelStates.PAUSED){ view.sendEvent("PLAY"); } else { if (view.config["state"] == ModelStates.COMPLETED){ view.sendEvent("REWIND"); } else { view.sendEvent("PAUSE"); }; }; }; } private function onDefaultButtonOver(_arg1:MouseEvent):void{ trace("onDefaultButtonOver"); setupPlayIconColor(DisplayObject(_arg1.target), "over"); } private function onDefaultButtonOut(_arg1:MouseEvent):void{ setupPlayIconColor(DisplayObject(_arg1.target), "up"); } private function onModelEventRequest(_arg1:ModelEvent):void{ var _local2:*; switch (_arg1.data["state"]){ case ModelStates.PAUSED: _local2 = view.config.get("ui.showMiddlePlayOnPause"); setIcon(((((_local2 == null)) || (_local2))) ? "playIcon" : null); break; case ModelStates.PLAYING: setIcon(); break; case ModelStates.BUFFERING: setIcon("bufferIcon"); break; default: if ((((((_arg1.type == ModelEvent.BUFFER)) && (icons["bufferIcon"]))) && (icons["bufferIcon"].percent))){ icons["bufferIcon"].percent.text = _arg1.data.percentage; }; }; } } }//package com.conceptualideas.videoplayer.modules.ui
Section 63
//LimitPlayback (com.conceptualideas.videoplayer.modules.LimitPlayback) package com.conceptualideas.videoplayer.modules { import com.conceptualideas.videoplayer.utils.*; import com.conceptualideas.videoplayer.events.*; import com.conceptualideas.vodplayer.utils.*; public class LimitPlayback extends BaseComponent { private var tracker:TimeTracker; private var limit:Number; public function LimitPlayback(_arg1:Number=NaN){ tracker = new TimeTracker(); super(); this.limit = _arg1; } private function onPauseRequest(_arg1:ControllerEvent):void{ tracker.stopTimer(); } override public function initalize(_arg1:AbstractView):void{ super.initalize(_arg1); tracker.setDelay(limit); tracker.addEventListener(TimeTrackerEvent.LIMIT_REACHED, onLimitReached); _arg1.addModelListener(ModelEvent.TIME, onTimeRequest); _arg1.addControllerListener(ControllerEvent.SEEK, onSeekRequest); _arg1.addControllerListener(ControllerEvent.PAUSE, onPauseRequest); } private function onTimeRequest(_arg1:ModelEvent):void{ tracker.setTime(_arg1.data.time, true); } private function onLimitReached(_arg1:TimeTrackerEvent):void{ tracker.stopTimer(); view.sendEvent(ViewEvent.STOP); } private function onSeekRequest(_arg1:ControllerEvent):void{ tracker.setScrub(_arg1.data.position); } } }//package com.conceptualideas.videoplayer.modules
Section 64
//BaseController (com.conceptualideas.videoplayer.player.BaseController) package com.conceptualideas.videoplayer.player { import flash.display.*; import com.conceptualideas.utils.*; import com.conceptualideas.videoplayer.events.*; import com.conceptualideas.videoplayer.utils.parsers.*; public class BaseController extends AbstractController { private var goodVolume:Number; private var currentIndex:Number;// = NAN private var allowStoreSettings:Boolean; private var _skin:MovieClip; private var _playlist:Array; private var domainTools:DomainTools; public function BaseController(_arg1:Object, _arg2:MovieClip){ domainTools = DomainTools.instance(); super(_arg1); this._skin = _arg2; allowStoreSettings = ((_arg1.get("main.storeSettings") == null)) ? true : _arg1.get("main.storeSettings"); } private function onScreenRedraw(_arg1:ViewEvent):void{ var _local3:Number; var _local4:Number; var _local7:int; var _local8:Number; var _local2:Object = (_arg1) ? ((_arg1.data) || ({})) : {}; var _local5:String = (((_arg1) && (_arg1.data.type))) ? _arg1.data.type : ((config.get("ui.video.defaultSize")) || (ViewEvent.FIT_SCREEN)); var _local6:Object = getVideoSize(); if ((((_local5 == ViewEvent.ORIGINAL_SCREEN)) && (!((skin.stage.displayState == "fullScreen"))))){ _local3 = _local6.width; _local4 = _local6.height; } else { _local3 = skin.stage.stageWidth; _local4 = (skin.stage.stageHeight - config.barHeight); if (!isNaN(currentIndex)){ _local7 = (skin.stage.stageHeight - (config.get("video.useFullHeight", false, true)) ? config.get("video.useFullHeight", false, true) : config.barHeight); _local8 = Math.min((skin.stage.stageWidth / _local6.width), (_local7 / _local6.height)); _local3 = (_local6.width * _local8); _local4 = (_local6.height * _local8); }; }; resizeVideo(_local3, _local4, _local5, _local2["fromControlBar"]); } public function get skin():MovieClip{ return (_skin); } private function onVolumeRequest(_arg1:ViewEvent):void{ setVolume(_arg1.data.volume); } private function onPauseRequest(_arg1:ViewEvent):void{ dispatchEvent(new ControllerEvent(ControllerEvent.PAUSE)); } private function playItem(_arg1:Number=0):void{ currentIndex = _arg1; if (currentItem["autoplay"] == null){ currentItem["autoplay"] = (((!(config.main.autoPlay)) && ((currentIndex == 0)))) ? false : true; }; currentItem["duration"] = 0; dispatchEvent(new ControllerEvent(ControllerEvent.LOAD, {index:_arg1})); setVolume(); track("video.load"); } public function track(_arg1:String, _arg2:Object=null):void{ dispatchEvent(new ControllerEvent("TRACK", {action:_arg1, extra:_arg2})); } private function getModelType(_arg1:Object):String{ if (!_arg1["file"]){ return (null); }; if (_arg1.host.substr(0, 4) == "rtmp"){ return ((config.main.useSecure) ? "cisecure" : "rtmp"); } else { }; return (!NULL!); } private function onStopRequest(_arg1:ViewEvent):void{ dispatchEvent(new ControllerEvent(ControllerEvent.STOP)); dispatchEvent(new ControllerEvent(ControllerEvent.FINISHED)); } public function get playlist():Array{ return (_playlist); } private function onFullScreenRequest(_arg1:ViewEvent):void{ if (skin.stage.displayState == "fullScreen"){ skin.stage.displayState = "normal"; } else { skin.stage.displayState = "fullScreen"; track("clicks.fullscreen"); }; onRedrawRequest(null); } private function onMuteRequest(_arg1:ViewEvent):void{ setVolume(0); } private function onSeekRequest(_arg1:ViewEvent):void{ var _local2:Number; if (currentItem["duration"] > 0){ _local2 = _arg1.data.position; if (_local2 < 2){ _local2 = 0; } else { if (_local2 > (currentItem["duration"] - 2)){ _local2 = (currentItem["duration"] - 2); }; }; dispatchEvent(new ControllerEvent(ControllerEvent.SEEK, {position:_local2})); }; } private function setVolume(_arg1:Number=NaN, _arg2:Boolean=true):void{ if (isNaN(_arg1)){ if (allowStoreSettings){ _arg1 = domainTools.getUsersetting("volume"); }; _arg1 = (isNaN(_arg1)) ? 1 : _arg1; }; _arg1 = ((_arg1)>1) ? (_arg1 / 100) : _arg1; if (_arg1 < 0){ _arg1 = 0; }; config["volume"] = _arg1; if (allowStoreSettings){ domainTools.setUserSetting("volume", _arg1); }; if ((((_arg1 > 0)) && (allowStoreSettings))){ domainTools.setUserSetting("goodvolume", _arg1); }; dispatchEvent(new ControllerEvent(ControllerEvent.VOLUME, {volume:_arg1})); } private function playlistHandler(_arg1:Array):void{ var _local2:Number = 0; while (_local2 < _arg1.length) { if (!_arg1[_local2]["host"]){ _arg1[_local2]["host"] = ""; }; _arg1[_local2]["type"] = getModelType(_arg1[_local2]); _arg1[_local2]["seeking"] = ((config.get("main.seekingParamater")) || (config.get("main.seekingParameter"))); _arg1[_local2]["seeking"] = (_arg1[_local2]["seeking"]) ? _arg1[_local2]["seeking"] : "?start="; _local2++; }; _playlist = _arg1; dispatchEvent(new ControllerEvent(ControllerEvent.PLAYLIST, {playlist:_arg1})); if (config.main.autoPlay){ playItem(); } else { dispatchEvent(new ControllerEvent(ControllerEvent.PRE)); }; } private function getVideoSize():Object{ if (((((!(isNaN(currentIndex))) && (currentItem["width"]))) && (currentItem["height"]))){ return ({width:currentItem["width"], height:currentItem["height"]}); }; return ({width:skin.stage.stageWidth, height:(skin.stage.stageHeight - ((config.get("barHeight")) || (0)))}); } private function resizeVideo(_arg1:Number, _arg2:Number, _arg3:String, _arg4:Boolean=false):void{ var _local5:Object = {}; _local5.type = _arg3; _local5.resize = ((_arg3)==ViewEvent.FIT_SCREEN) ? "fill" : "uniform"; _local5.width = _arg1; _local5.height = _arg2; _local5.maxWidth = skin.stage.stageWidth; _local5.fromControlBar = _arg4; if (config.get("video.useFullHeight", false, true)){ _local5.maxHeight = skin.stage.stageHeight; } else { _local5.maxHeight = (skin.stage.stageHeight - config.barHeight); }; dispatchEvent(new ControllerEvent(ControllerEvent.RESIZE_VIDEO, _local5)); } private function onModelStateRequest(_arg1:ModelEvent):void{ if (((((!(isNaN(currentIndex))) && ((currentIndex == (playlist.length - 1))))) && (_arg1.isComplete()))){ trace("Controller::FINISHED"); dispatchEvent(new ControllerEvent(ControllerEvent.FINISHED)); track("video.complete"); } else { if (_arg1.isComplete()){ playItem((currentIndex + 1)); track("video.next"); }; }; } private function onLoadRequest(_arg1:ViewEvent):void{ var _local3:Object; var _local2:Array = []; if ((_arg1.data.object is Array)){ for each (_local3 in _arg1.data.object) { _local2.push(ObjectParser.parse(_local3)); }; }; playlistHandler(_local2); } private function onPlayRequest(_arg1:ViewEvent):void{ if (!isNaN(currentIndex)){ if (config["state"] == ModelStates.COMPLETED){ playItem(currentIndex); } else { dispatchEvent(new ControllerEvent(ControllerEvent.PLAY)); }; } else { playItem(); }; } public function get currentItem():Object{ return ((_playlist) ? playlist[currentIndex] : null); } private function onMetadata(_arg1:ModelEvent):void{ if (!currentItem["duration"]){ currentItem["duration"] = ((Math.round((_arg1.data.duration * 10)) / 10) - 0.1); currentItem["width"] = Math.max(0, _arg1.data.width); currentItem["height"] = Math.max(0, _arg1.data.height); onScreenRedraw(null); dispatchEvent(new ControllerEvent(ControllerEvent.META)); }; } private function onRewindRequest(_arg1:ViewEvent):void{ if (((((!(isNaN(currentIndex))) && (currentItem["isad"]))) && (!((currentIndex == 0))))){ playItem((currentIndex - 1)); } else { if (config["timeOffset"] == 0){ onSeekRequest(new ViewEvent(ViewEvent.SEEK, {position:0})); } else { playItem(currentIndex); }; }; } private function onRedrawRequest(_arg1:ViewEvent):void{ var _local2:Object = {width:skin.stage.stageWidth, height:skin.stage.stageHeight, x:0, y:0}; if (((((config.hasEnhancement("Player")) && (config.get("player.maxWidth", false, true)))) && (!((skin.stage.displayState == "fullScreen"))))){ _local2.width = config.get("player.maxWidth", false, true); }; _local2.leftBounds = ((skin.stage.stageWidth - _local2.width) / 2); _local2.topBounds = ((skin.stage.stageHeight - _local2.height) / 2); _local2.fullScreen = ((skin.stage.displayState == "fullScreen")) ? true : false; onScreenRedraw(null); dispatchEvent(new ControllerEvent(ControllerEvent.RESIZE, _local2)); } private function onUnMuteRequest(_arg1:ViewEvent):void{ var _local2:Number; if (allowStoreSettings){ _local2 = domainTools.getUsersetting("goodvolume"); if (isNaN(_local2)){ _local2 = domainTools.getUsersetting("volume"); }; } else { _local2 = config["volume"]; }; if (((isNaN(_local2)) || ((_local2 == 0)))){ _local2 = 100; }; setVolume(_local2); } override public function close(_arg1:Model, _arg2:AbstractView):void{ _arg2.addViewListener(ViewEvent.LOAD, onLoadRequest); _arg2.addViewListener(ViewEvent.VOLUME, onVolumeRequest); _arg2.addViewListener(ViewEvent.PLAY, onPlayRequest); _arg2.addViewListener(ViewEvent.SEEK, onSeekRequest); _arg2.addViewListener(ViewEvent.FULLSCREEN, onFullScreenRequest); _arg2.addViewListener(ViewEvent.PAUSE, onPauseRequest); _arg2.addEventListener(ViewEvent.REDRAW, onRedrawRequest, false, 1, false); _arg2.addViewListener(ViewEvent.REDRAW_SCREEN, onScreenRedraw); _arg2.addViewListener(ViewEvent.MUTE, onMuteRequest); _arg2.addViewListener(ViewEvent.UNMUTE, onUnMuteRequest); _arg2.addViewListener(ViewEvent.REWIND, onRewindRequest); _arg2.addViewListener(ViewEvent.STOP, onStopRequest); _arg2.addModelListener(ModelEvent.STATE, onModelStateRequest); _arg2.addModelListener(ModelEvent.META, onMetadata); _arg2.addViewListener(ViewEvent.INIT, onRedrawRequest); _arg2.sendEvent(ViewEvent.PAUSE); _arg1.sendEvent(ModelEvent.STATE, {state:ModelStates.IDLE}); } } }//package com.conceptualideas.videoplayer.player
Section 65
//BaseView (com.conceptualideas.videoplayer.player.BaseView) package com.conceptualideas.videoplayer.player { import flash.events.*; import com.conceptualideas.videoplayer.interfaces.*; import flash.display.*; import com.conceptualideas.videoplayer.events.*; import com.conceptualideas.videoplayer.modules.interfaces.*; public class BaseView extends AbstractView { private var _trackingHash:Object; private var _modules:Object; private var _skin:MovieClip; private var _plugins:Object; private var _config:Object; private var model:Model; private var controller:BaseController; public function BaseView(_arg1:Object, _arg2:MovieClip, _arg3:BaseController, _arg4:Model){ _modules = {}; _trackingHash = {}; super(); this._config = _arg1; this._skin = _arg2; this.controller = _arg3; this.model = _arg4; _skin.stage.scaleMode = "noScale"; _skin.stage.align = "TL"; _skin.stage.addEventListener(Event.RESIZE, onResizeRequest, false, 1, false); _config.getModule = getModule; } public function loaded():void{ sendEvent(ViewEvent.INIT); } override public function track(_arg1:String, _arg2:Object=null):void{ controller.track(_arg1, _arg2); } override public function get config():Object{ return (_config); } override public function removeControllerListener(_arg1:String, _arg2:Function):void{ controller.removeEventListener(_arg1, _arg2); } override public function get playlist():Array{ return (controller.playlist); } override public function getModule(_arg1:String){ if (!_modules[_arg1]){ return (null); }; return (_modules[_arg1]); } private function onResizeRequest(_arg1:Event):void{ dispatchEvent(new ViewEvent(ViewEvent.REDRAW)); } override public function addHook(_arg1:String, _arg2:String, _arg3:Function, _arg4:Object=null, _arg5:Boolean=true):ISystemHook{ return (Hooker(_modules["hooker"]).hook(_arg1, _arg2, _arg3, _arg4, _arg5)); } override public function get currentItem():Object{ return (controller.currentItem); } override public function addControllerListener(_arg1:String, _arg2:Function, _arg3:int=0):void{ controller.addEventListener(_arg1, _arg2, false, _arg3); } override public function loadModule(_arg1:IComponent):void{ if (_modules[Object(_arg1).toString()]){ return; }; if (Object(_arg1).hasOwnProperty("getName")){ _modules[Object(_arg1).getName()] = _arg1; } else { _modules[Object(_arg1).toString()] = _arg1; }; _arg1.initalize(this); } override public function addModelListener(_arg1:String, _arg2:Function):void{ model.addEventListener(_arg1.toUpperCase(), _arg2); } override public function sendEvent(_arg1:String, _arg2:Object=undefined):void{ _arg1 = _arg1.toUpperCase(); var _local3:Object = {}; switch (_arg1){ case "LOAD": dispatchEvent(new ViewEvent(ViewEvent.REDRAW)); dispatchEvent(new ViewEvent(ViewEvent.FIT_SCREEN)); _local3["object"] = _arg2; break; case "SEEK": _local3["position"] = _arg2; break; case "VOLUME": _local3["volume"] = _arg2; break; default: _local3 = _arg2; }; dispatchEvent(new ViewEvent(_arg1, _local3)); } override public function addViewListener(_arg1:String, _arg2:Function):void{ this.addEventListener(_arg1, _arg2); } override public function get skin():MovieClip{ return (_skin); } } }//package com.conceptualideas.videoplayer.player
Section 66
//Model (com.conceptualideas.videoplayer.player.Model) package com.conceptualideas.videoplayer.player { import flash.events.*; import flash.display.*; import com.conceptualideas.videoplayer.events.*; import com.conceptualideas.videoplayer.models.*; public class Model extends EventDispatcher { private var _config:Object; private var models:Object; private var item:Object; private var controller:BaseController; private var skin:MovieClip; public function Model(_arg1:Object, _arg2:BaseController, _arg3:MovieClip){ this.controller = _arg2; this._config = _arg1; this.skin = _arg3; models = {}; _arg2.addEventListener(ControllerEvent.PLAY, onPlayRequest); _arg2.addEventListener(ControllerEvent.LOAD, onLoadRequest); _arg2.addEventListener(ControllerEvent.PAUSE, onPauseRequest); _arg2.addEventListener(ControllerEvent.SEEK, onSeekRequest); _arg2.addEventListener(ControllerEvent.RESIZE_VIDEO, onResizeVideo); _arg2.addEventListener(ControllerEvent.VOLUME, onVolumeRequest); _arg2.addEventListener(ControllerEvent.STOP, onStopRequest); _arg2.addEventListener(ControllerEvent.VOLUME, onVolumeRequest); } private function onPlayRequest(_arg1:ControllerEvent):void{ models[item["type"]].play(); } public function placeMedia(_arg1:DisplayObject):void{ while (skin.display.media.numChildren > 0) { skin.display.media.removeChildAt(0); }; skin.display.media.addChildAt(_arg1, 0); } private function onPauseRequest(_arg1:ControllerEvent):void{ processModel("pause"); } private function onResizeVideo(_arg1:ControllerEvent):void{ skin.display.media.width = _arg1.data.width; skin.display.media.height = _arg1.data.height; skin.display.media.x = ((_arg1.data.maxWidth / 2) - (_arg1.data.width / 2)); skin.display.media.y = ((_arg1.data.maxHeight / 2) - (_arg1.data.height / 2)); } private function processModel(_arg1:String, _arg2=null):void{ var _local3:Function; if (((item) && (models[item["type"]]))){ _local3 = models[item["type"]][_arg1]; if (_arg2 == null){ _local3.call(); } else { _local3.call(null, _arg2); }; }; } private function onStopRequest(_arg1:ControllerEvent):void{ models[item["type"]].stop(); } public function addModel(_arg1:BasicModel, _arg2:String):void{ models[_arg2] = _arg1; } private function onLoadRequest(_arg1:ControllerEvent):void{ if (item){ models[item["type"]].stop(); }; item = controller.playlist[_arg1.data.index]; if (models[item["type"]]){ models[item["type"]].load(item); }; } public function sendEvent(_arg1:String, _arg2:Object):void{ switch (_arg1){ case ModelEvent.STATE: _arg2["oldstate"] = config["state"]; config["state"] = _arg2["state"]; switch (_arg2["state"]){ case ModelStates.IDLE: sendEvent(ModelStates.LOADED, {loaded:0, total:0, offset:0}); break; case ModelStates.PLAYING: break; }; case ModelEvent.TIME: config["time"] = _arg2.position; break; }; dispatchEvent(new ModelEvent(_arg1, _arg2)); } public function runHook(_arg1:String, _arg2:Function, _arg3:Object=null):void{ _config.getModule("hooker").run(_arg1, _arg2, _arg3); } private function onVolumeRequest(_arg1:ControllerEvent):void{ processModel("volume", _arg1.data.volume); } public function get config():Object{ return (_config); } private function onSeekRequest(_arg1:ControllerEvent):void{ models[item["type"]].seek(_arg1.data.position); } } }//package com.conceptualideas.videoplayer.player
Section 67
//ConfigParser (com.conceptualideas.videoplayer.utils.parsers.ConfigParser) package com.conceptualideas.videoplayer.utils.parsers { import flash.text.*; public class ConfigParser { private var _config:Object; private var raw:String; private var index:Number;// = 0 public function ConfigParser(_arg1:String){ raw = _arg1; } private static function convertCSSToObject(_arg1:StyleSheet):Object{ var _local5:Object; var _local6:Object; var _local7:String; var _local2:Object = new Object(); var _local3:Array = _arg1.styleNames; var _local4:Number = 0; while (_local4 < _local3.length) { _local5 = {}; _local6 = _arg1.getStyle(_local3[_local4]); for (_local7 in _local6) { _local5[_local7] = checkType(_local6[_local7]); }; _local3[_local4] = _local3[_local4].split(/\.|:|#/); if (_local3[_local4][0] == ""){ _local3[_local4].shift(); }; _local3[_local4].push(_local5); createObjectFromString(_local2, _local3[_local4], 0); _local4++; }; return (_local2); } public static function parse(_arg1:String){ var _local2:StyleSheet = new StyleSheet(); _local2.parseCSS(_arg1); return (convertCSSToObject(_local2)); } private static function checkType(_arg1){ var _local2:String; if (!isNaN(Number(_arg1))){ return (Number(_arg1)); }; if (_arg1 == "true"){ return (true); }; if (_arg1 == "false"){ return (false); }; if ((((_arg1.indexOf("[") == 0)) && ((_arg1.indexOf("]") == (_arg1.length - 1))))){ _arg1 = _arg1.replace("[", "").replace("]", "").split(","); for (_local2 in _arg1) { _arg1[_local2] = _arg1[_local2].replace(/^\s+|\s+$/g, ""); }; }; return (_arg1); } private static function createObjectFromString(_arg1:Object, _arg2:Array, _arg3:Number):void{ var _local4:String; if (_arg1[_arg2[_arg3]] == undefined){ _arg1[_arg2[_arg3]] = new Object(); }; if (_arg3 < (_arg2.length - 2)){ createObjectFromString(_arg1[_arg2[_arg3]], _arg2, (_arg3 + 1)); } else { for (_local4 in _arg2[(_arg3 + 1)]) { _arg1[_arg2[_arg3]][_local4] = _arg2[(_arg3 + 1)][_local4]; }; }; } } }//package com.conceptualideas.videoplayer.utils.parsers
Section 68
//ObjectParser (com.conceptualideas.videoplayer.utils.parsers.ObjectParser) package com.conceptualideas.videoplayer.utils.parsers { import com.conceptualideas.videoplayer.utils.*; public class ObjectParser { private static var replacements:Object = {}; private static var ELEMENTS:Object = {file:undefined, host:undefined, seekingParamater:"?start=", isad:false, middle:false, site:"", link:null, seekable:true, autoplay:true, streamer:null, id:"", page:"", start:0, connection_params:null}; public static function parse(_arg1:Object):Object{ var _local3:String; var _local2:Object = {}; for (_local3 in ObjectParser.ELEMENTS) { if (_arg1[_local3] != undefined){ _local2[_local3] = ((_arg1[_local3] is String)) ? Strings.serialize(_arg1[_local3]) : _arg1[_local3]; } else { _local2[_local3] = ObjectParser.ELEMENTS[_local3]; }; }; return (_local2); } public static function addReplacements(_arg1:String, _arg2:String):void{ } } }//package com.conceptualideas.videoplayer.utils.parsers
Section 69
//AssetManager (com.conceptualideas.videoplayer.utils.AssetManager) package com.conceptualideas.videoplayer.utils { import flash.display.*; import flash.text.*; public class AssetManager { public static const ARIAL:Class = AssetManager_ARIAL; public static function getFontName(_arg1:Class):String{ return ((new (_arg1) as Font).fontName); } public static function getSprite(_arg1:Class):Sprite{ var _local2:Sprite = new Sprite(); _local2.addChild((new (_arg1) as DisplayObject)); return (_local2); } } }//package com.conceptualideas.videoplayer.utils
Section 70
//AssetManager_ARIAL (com.conceptualideas.videoplayer.utils.AssetManager_ARIAL) package com.conceptualideas.videoplayer.utils { import mx.core.*; public class AssetManager_ARIAL extends FontAsset { } }//package com.conceptualideas.videoplayer.utils
Section 71
//Colorer (com.conceptualideas.videoplayer.utils.Colorer) package com.conceptualideas.videoplayer.utils { import flash.display.*; import com.conceptualideas.utils.*; import flash.geom.*; public class Colorer { protected function setGradientFill(_arg1:Sprite, _arg2:Array, _arg3:Array, _arg4:Object, _arg5:Object, _arg6:Array=null):void{ PlayerUtils.setGradientFill(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6); } public static function recursiveColor(_arg1:DisplayObject, _arg2:Object):void{ var _local3:DisplayObject; var _local4:String; var _local5:String; for (_local4 in _arg2) { for (_local5 in _arg2[_local4]) { if (_arg2[_local4][_local5] == "default"){ } else { _local3 = findElement(_arg1, _local4, _local5); if (_local3){ setColorTransForm(_local3, _arg2[_local4][_local5]); }; }; }; }; } private static function findElement(_arg1:Object, _arg2:String, _arg3:String):DisplayObject{ var found:DisplayObject; var base = _arg1; var section = _arg2; var element = _arg3; try { found = base[section][element]; if (section != "time"){ if (((base[section][element]) && (base[section][element]["overlay"]))){ found = base[section][element]["overlay"]; } else { if (((base[section][(section + "_slider")]) && (((base[section][(section + "_slider")][element]) || (base[section][(section + "_slider")][element]["overlay"]))))){ found = ((base[section][(section + "_slider")][element]["overlay"]) || (base[section][(section + "_slider")][element])); }; }; }; } catch(e:Error) { }; return (found); } protected static function setAlpha(_arg1:DisplayObject, _arg2:Number):void{ _arg2 = ((_arg2)>1) ? (_arg2 / 100) : _arg2; _arg1.alpha = _arg2; } public static function colorPlayButton(_arg1:DisplayObject, _arg2:Object, _arg3:String):void{ var _local8:uint; var _local4:ColorTransform = new ColorTransform(); var _local5:uint = _arg2.colors.icons.playicon.base; var _local6:uint = _arg2.colors.icons.playicon.inner; if (!_local6){ _local6 = 0; }; var _local7:Boolean = ColorTools.isBright(_local5); if (_arg3 == "up"){ if (_local7){ if (_arg1["background"]){ setColorTransForm(_arg1["background"], ColorTools.darkenColor(_local5, 10)); }; if (_arg1["outlineShadow"]){ setColorTransForm(_arg1["outlineShadow"], ColorTools.darkenColor(_local5, 40)); _arg1["outlineShadow"].alpha = 0.3; }; if (_arg1["outlineBorder"]){ setColorTransForm(_arg1["outlineBorder"], ColorTools.darkenColor(_local5, 100)); }; } else { if (_arg1["background"]){ setColorTransForm(_arg1["background"], ColorTools.lightenColor(_local5, 40)); }; if (_arg1["fill"]){ _arg1["fill"].transform.colorTransform = new ColorTransform(); _arg1["fill"].transform.colorTransform.alphaMultiplier = 0.4; }; if (_arg1["outlineShadow"]){ setColorTransForm(_arg1["outlineShadow"], ColorTools.lightenColor(_local5, 15)); setAlpha(_arg1["outlineShadow"], 30); }; if (_arg1["outlineBorder"]){ setColorTransForm(_arg1["outlineBorder"], ColorTools.darkenColor(_local5, 30)); }; }; setColorTransForm(_arg1["icon"], _local6); } else { if (_arg1["background"]){ setColorTransForm(_arg1["background"], ColorTools.lightenColor(_local5, (_local7) ? 40 : 100)); }; if (_arg1["outlineBorder"]){ _local8 = _arg1["outlineBorder"].transform.colorTransform.color; setColorTransForm(_arg1["outlineBorder"], ColorTools.lightenColor(_local8, 20)); }; }; } public static function setColorTransForm(_arg1:DisplayObject, _arg2:uint, _arg3:String=null):void{ if (_arg1 != null){ PlayerUtils.setColorTransForm(_arg1, _arg2); if (_arg3){ _arg1.blendMode = _arg3; }; }; } public static function recursiveAlpha(_arg1:DisplayObject, _arg2:Object):void{ var _local3:DisplayObject; var _local4:String; var _local5:String; for (_local4 in _arg2) { for (_local5 in _arg2[_local4]) { if (_arg2[_local4][_local5] == "default"){ } else { _local3 = findElement(_arg1, _local4, _local5); if (_local3){ setAlpha(_local3, _arg2[_local4][_local5]); }; }; }; }; } } }//package com.conceptualideas.videoplayer.utils
Section 72
//ImageLoader (com.conceptualideas.videoplayer.utils.ImageLoader) package com.conceptualideas.videoplayer.utils { import flash.events.*; import flash.display.*; import flash.geom.*; import flash.net.*; import org.bytearray.gif.events.*; import org.bytearray.gif.player.*; import flash.system.*; public class ImageLoader extends Sprite { private var image:DisplayObject; private var url:String; private function onImageLoaded(_arg1:Event):void{ image = (_arg1.target.content as Bitmap); Bitmap(image).smoothing = true; addChild(image); dispatchEvent(new Event(Event.COMPLETE)); } private function onIOError(_arg1:IOErrorEvent):void{ trace(_arg1); } private function onGifLoadFail(_arg1:Event):void{ load(url, true); } private function onGifLoaded(_arg1:GIFPlayerEvent):void{ var _local2:Rectangle = _arg1.rect; image = (_arg1.target as DisplayObject); image.x = (-(_local2.width) / 2); image.y = (-(_local2.height) / 2); addChild(image); dispatchEvent(new Event(Event.COMPLETE, true)); } public function destroy():void{ if (image){ if ((image is Bitmap)){ Bitmap(image).bitmapData.dispose(); } else { if ((image is GIFPlayer)){ GIFPlayer(image).stop(); GIFPlayer(image).bitmapData.dispose(); }; }; removeChild(image); image = null; }; } public function load(_arg1:String, _arg2:Boolean=false):void{ var _local4:GIFPlayer; var _local5:Loader; this.url = _arg1; var _local3:URLRequest = new URLRequest(_arg1); if (((!((_arg1.indexOf(".gif") == -1))) && (!(_arg2)))){ _local4 = new GIFPlayer(true); _local4.addEventListener(GIFPlayerEvent.COMPLETE, onGifLoaded, false, 0, true); _local4.addEventListener(FileTypeEvent.INVALID, onGifLoadFail, false, 0, true); _local4.addEventListener(TimeoutEvent.TIME_OUT, onGifLoadFail, false, 0, true); _local4.addEventListener(IOErrorEvent.IO_ERROR, onGifLoadFail, false, 0, true); _local4.load(_local3); } else { _local5 = new Loader(); _local5.contentLoaderInfo.addEventListener(Event.INIT, onImageLoaded, false, 0, true); _local5.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onIOError, false, 0, true); _local5.load(_local3, new LoaderContext(true)); }; } } }//package com.conceptualideas.videoplayer.utils
Section 73
//PlayerUtils (com.conceptualideas.videoplayer.utils.PlayerUtils) package com.conceptualideas.videoplayer.utils { import flash.display.*; import flash.geom.*; import flash.text.*; import gs.*; import flash.filters.*; import com.gskinner.geom.*; import gs.plugins.*; public class PlayerUtils { private static function getTextColor(_arg1:uint):TextFormat{ var _local2:TextFormat = new TextFormat(); _local2.color = _arg1; return (_local2); } public static function deg2rad(_arg1:Number):Number{ return ((_arg1 * (Math.PI / 180))); } public static function createGRoundedRect(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=NaN, _arg6:Number=2, _arg7:Number=1):Shape{ var _local8:Shape = new Shape(); var _local9:Matrix = new Matrix(); _local9.createGradientBox(_arg1, _arg2, PlayerUtils.deg2rad(90)); if (!isNaN(_arg5)){ _local8.graphics.lineStyle(_arg6, _arg5, _arg7, true); }; _local8.graphics.beginGradientFill(GradientType.LINEAR, [_arg3, _arg4], [1, 1], [0, 0xFF], _local9); _local8.graphics.drawRoundRect(0, 0, _arg1, _arg2, 10, 10); _local8.graphics.endFill(); return (_local8); } public static function addDropShadow(_arg1:Sprite, _arg2:Boolean=true, _arg3:Boolean=false):void{ _arg1.filters = [new DropShadowFilter(2, 45, 0, 0.5, 4, 4, 1, 1, _arg3), new DropShadowFilter(2, 225, 0, 0.5, 4, 4, 1, 1, _arg3)]; } public static function removeGlow(_arg1:Sprite):void{ TweenPlugin.activate([VisiblePlugin, GlowFilterPlugin, AutoAlphaPlugin]); TweenLite.to(_arg1, 1, {glowFilter:{alpha:0, blurX:0, blurY:0}}); } public static function setColorTransForm(_arg1:DisplayObject, _arg2:uint):void{ var _local3:TextField; if ((_arg1 is TextField)){ _local3 = (_arg1 as TextField); _local3.textColor = _arg2; _local3.defaultTextFormat = getTextColor(_arg2); _local3.setTextFormat(getTextColor(_arg2)); } else { if (_arg1["transform"] != null){ _arg1.transform.colorTransform = PlayerUtils.getColorTransform(_arg2); }; }; } public static function createSpriteHolder(_arg1:Number, _arg2:Number, _arg3:uint=0xFF0000, _arg4:Number=0):Sprite{ var _local5:Sprite = new Sprite(); _local5.graphics.beginFill(_arg3, _arg4); _local5.graphics.drawRect(0, 0, _arg1, _arg2); _local5.graphics.endFill(); return (_local5); } public static function addGlow(_arg1:Sprite, _arg2:uint):void{ TweenPlugin.activate([VisiblePlugin, GlowFilterPlugin, AutoAlphaPlugin]); TweenLite.to(_arg1, 1, {glowFilter:{color:_arg2, alpha:1, blurX:6, blurY:6}}); } public static function toGreyScale(_arg1:DisplayObject):void{ var _local2:ColorMatrix = new ColorMatrix(); _local2.adjustColor(0, 0, -100, 0); _arg1.filters = [new ColorMatrixFilter(_local2)]; } public static function fit(_arg1:DisplayObject, _arg2:Number, _arg3:Number, _arg4:String="uniform"):void{ var _local5:Number = (_arg2 / _arg1.width); var _local6:Number = (_arg3 / _arg1.height); switch (_arg4.toLowerCase()){ case "exactfit": _arg1.width = _arg2; _arg1.height = _arg3; break; case "fill": if (_local5 > _local6){ _arg1.width = (_arg1.width * _local5); _arg1.height = (_arg1.height * _local5); } else { _arg1.width = (_arg1.width * _local6); _arg1.height = (_arg1.height * _local6); }; break; case "none": break; case "uniform": if (_local5 > _local6){ _arg1.width = (_arg1.width * _local6); _arg1.height = (_arg1.height * _local6); } else { _arg1.width = (_arg1.width * _local5); _arg1.height = (_arg1.height * _local5); }; break; }; _arg1.x = Math.round(((_arg2 / 2) - (_arg1.width / 2))); _arg1.y = Math.round(((_arg3 / 2) - (_arg1.height / 2))); _arg1.width = Math.ceil(_arg1.width); _arg1.height = Math.ceil(_arg1.height); } public static function convertPercent(_arg1:Number):Number{ return (((_arg1)>1) ? (_arg1 / 100) : _arg1); } public static function setGradientFill(_arg1:Sprite, _arg2:Array, _arg3:Array, _arg4:Object, _arg5:Object, _arg6:Array=null):void{ var _local7:Sprite = (_arg1.getChildByName("overlay") as Sprite); if (_local7 == null){ _local7 = new Sprite(); _arg1.addChild(_local7); }; _local7.graphics.clear(); var _local8:Number = _arg2.length; if (_arg2.length != _arg3.length){ _arg3 = _arg3.splice((_arg2.length - 1)); }; var _local9:int; while (_local9 < _arg3.length) { _arg3[_local9] = convertPercent(_arg3[_local9]); _local9++; }; var _local10:Matrix = new Matrix(); _arg6 = ((_arg6)!=null) ? _arg6 : generateRatios((_local8 - 1)); var _local11:Number = ((_arg5.x)!=null) ? _arg5.x : 0; var _local12:Number = ((_arg5.y)!=null) ? _arg5.y : 0; _local10.createGradientBox(_arg5.width, _arg5.height, PlayerUtils.deg2rad(90), _local11, _local12); _local7.graphics.beginGradientFill(GradientType.LINEAR, _arg2, _arg3, _arg6, _local10); _local7.graphics.drawRect(0, 0, _arg4.width, _arg4.height); _local7.graphics.endFill(); } public static function _setGradientFill(_arg1:Graphics, _arg2:Array, _arg3:Array, _arg4:Object, _arg5:Object, _arg6:Array=null, _arg7:Number=0):void{ _arg1.clear(); var _local8:Number = _arg2.length; if (_arg2.length != _arg3.length){ _arg3 = _arg3.splice((_arg2.length - 1)); }; var _local9:int; while (_local9 < _arg3.length) { _arg3[_local9] = convertPercent(_arg3[_local9]); _local9++; }; var _local10:Matrix = new Matrix(); _arg6 = ((_arg6)!=null) ? _arg6 : generateRatios((_local8 - 1)); var _local11:Number = ((_arg5.x)!=null) ? _arg5.x : 0; var _local12:Number = ((_arg5.y)!=null) ? _arg5.y : 0; _local10.createGradientBox(_arg5.width, _arg5.height, PlayerUtils.deg2rad(90), _local11, _local12); _arg1.beginGradientFill(GradientType.LINEAR, _arg2, _arg3, _arg6, _local10); if (!_arg7){ _arg1.drawRect(0, 0, _arg4.width, _arg4.height); } else { _arg1.drawRoundRect(0, 0, _arg4.width, _arg4.height, _arg7, _arg7); }; _arg1.endFill(); } public static function removeNameSpace(_arg1:String):String{ _arg1 = _arg1.replace(/xmlns[^\"]*\"[^\"]*\"/gi, ""); _arg1 = _arg1.replace(/([\w]{2,}):([\w]{2,})/g, "$2"); return (_arg1); } public static function createTextField(_arg1:Number, _arg2:Number, _arg3:String, _arg4:Boolean=true, _arg5:String="", _arg6:Object=null):TextField{ var _local10:String; var _local7:TextField = new TextField(); var _local8:TextFormat = new TextFormat(); _arg6 = ((_arg6) || ({})); _local8.color = 0xFFFFFF; _local8.align = _arg3; var _local9:Boolean = (((_arg6.font) && ((((_arg6.embed == null)) || ((_arg6.embed == false)))))) ? false : true; delete _arg6["embed"]; for (_local10 in _arg6) { _local8[_local10] = _arg6[_local10]; }; _local7.wordWrap = _arg4; if (_arg4){ _local7.multiline = true; }; if ((((_arg1 == 0)) && ((_arg2 == 0)))){ _local7.autoSize = TextFieldAutoSize.LEFT; }; _local7.antiAliasType = AntiAliasType.ADVANCED; if (_arg5.match(/<a[^>]+href/i)){ _local7.htmlText = _arg5; } else { _local7.text = _arg5; }; _local7.selectable = false; if (_arg5 == ""){ _local7.width = _arg1; _local7.height = _arg2; }; if (((((_arg6) && (_arg6.font))) && (_local9))){ _local7.embedFonts = true; }; _local7.defaultTextFormat = _local8; _local7.setTextFormat(_local8); if (_arg5 != ""){ _local7.height = _local7.textHeight; _local7.width = _local7.textWidth; }; return (_local7); } public static function createRoundedRect(_arg1:Number, _arg2:Number):void{ } private static function generateRatios(_arg1:Number):Array{ var _local2:Number = (225 / _arg1); var _local3:Array = new Array(); var _local4:int; while (_local4 < _arg1) { _local3.push((_local4 * _local2)); _local4++; }; return (_local3); } public static function getColorTransform(_arg1:uint):ColorTransform{ var _local2:ColorTransform = new ColorTransform(); _local2.color = _arg1; return (_local2); } } }//package com.conceptualideas.videoplayer.utils
Section 74
//PlaylistBuilder (com.conceptualideas.videoplayer.utils.PlaylistBuilder) package com.conceptualideas.videoplayer.utils { import flash.events.*; import com.conceptualideas.utils.*; import flash.utils.*; import com.conceptualideas.videoplayer.utils.parsers.*; public class PlaylistBuilder extends EventDispatcher { private var masks:Dictionary; private var post_ads:Array; private var pre_ads:Array; private var videos:Array; public static const LOADED:String = "LOADED"; private static var extensions:Object = {3g2:"video", 3gp:"video", aac:"video", f4b:"video", f4p:"video", f4v:"video", flv:"video", gif:"image", jpg:"image", jpeg:"image", m4a:"video", m4v:"video", mov:"video", mp3:"sound", mp4:"video", png:"image", rbs:"sound", sdp:"video", swf:"image", vp6:"video"}; private static var _instance:PlaylistBuilder; public function PlaylistBuilder(){ pre_ads = []; post_ads = []; videos = []; masks = new Dictionary(false); super(); } public function load(_arg1:String):void{ var _local2:DomainTools = DomainTools.instance(); _local2.loadURL(_arg1, onPlaylistLoaded); } public function addMask(_arg1:String, _arg2:String, _arg3:Object):void{ var _local4:VideoMask = new VideoMask(_arg2); _local4.add(_arg3); masks[_arg1] = _local4; } public function getPlaylist():Array{ var _local1:Array = []; return (_local1.concat(pre_ads, videos, post_ads)); } private function onPlaylistLoaded(_arg1:Event):void{ var _local3:XML; var _local4:Object; var _local2:XML = new XML(_arg1.target.data); for each (_local3 in _local2..videos.children()) { if (((!((_local3.@ad == ""))) && (String(_local3.@ad).match(/pre|post/i)))){ this.addRollVideo(_local3.@ad, _local3.url.text(), _local3.link.text()); } else { _local4 = parseVideoString(_local3.url.text(), false); _local4.link = ((_local3.link.text())=="") ? null : _local3.link.text(); _local4.seekable = ((_local3.@seekable)=="false") ? false : true; _local4.page = (((!(_local3.page)) || ((_local3.page.text() == "")))) ? "" : encodeURIComponent(_local3.page.text()); _local4.id = ((_local3.@id)=="") ? null : _local3.@id; _local4.streamer = ((_local3.streamer.text())!="") ? _local3.streamer.text() : null; _local4.start = ((_local3.start.text())!="") ? Number(_local3.start.text()) : 0; videos[videos.length] = _local4; }; }; dispatchEvent(new Event(PlaylistBuilder.LOADED)); } public function parseVideoString(_arg1:String, _arg2:Boolean=true):Object{ var _local4:int; var _local5:String; var _local3:Object = {}; if (_arg1.indexOf("rtmp") != -1){ _local4 = (_arg1.indexOf("/", 8) + 1); _local5 = _arg1.substr(0, (_arg1.indexOf("/", _local4) + 1)); _arg1 = _arg1.substr((_arg1.indexOf("/", _local4) + 1)); _local3.host = _local5; }; if (_arg2){ if (((!(extensions.hasOwnProperty(extension(_arg1)))) && (!(_local3.host)))){ if (((masks.http) && ((_arg1.indexOf("http") == -1)))){ _arg1 = VideoMask(masks.http).build({id:_arg1}); }; }; if (((!(_local3.host)) && (masks.rtmp))){ _local3.host = VideoMask(masks.rtmp).build(); }; }; _local3.file = _arg1; return (ObjectParser.parse(_local3)); } public function addVideo(_arg1:String, _arg2:String=null, _arg3:Boolean=true, _arg4:Boolean=true, _arg5:String=""):Object{ var _local6:Object = parseVideoString(_arg1, _arg3); _local6.link = ((_arg2)=="") ? null : _arg2; _local6.seekable = ((_arg4)=="") ? true : _arg4; _local6.id = ((_arg5)=="") ? null : _arg5; videos[videos.length] = _local6; return (_local6); } public function addRollVideo(_arg1:String, _arg2:String, _arg3:String=null, _arg4:String="http"):void{ var _local5:Object = parseVideoString(_arg2, false); _local5.link = ((_arg3)=="") ? null : _arg3; _local5.seekable = false; _local5.streamer = _arg4; _local5.isad = true; _local5.autoplay = true; if (_arg1 == "pre"){ pre_ads[pre_ads.length] = _local5; } else { post_ads[post_ads.length] = _local5; }; } private function extension(_arg1:String):String{ if (_arg1.lastIndexOf(".") > 0){ if (_arg1.lastIndexOf("?") > 0){ return (_arg1.substring((_arg1.lastIndexOf(".") + 1), _arg1.lastIndexOf("?")).toLowerCase()); }; return (_arg1.substring((_arg1.lastIndexOf(".") + 1), _arg1.length).toLowerCase()); //unresolved jump }; return (""); } public static function instance():PlaylistBuilder{ if (!_instance){ _instance = new (PlaylistBuilder); }; return (_instance); } } }//package com.conceptualideas.videoplayer.utils import flash.utils.*; class VideoMask { private var _base:String; private var replacements:Dictionary; private function VideoMask(_arg1:String):void{ replacements = new Dictionary(true); super(); this._base = _arg1; } public function add(... _args):void{ var _local2:Object; var _local3:String; if (_args.length == 1){ _local2 = _args.shift(); for (_local3 in _local2) { this._add(_local3, _local2[_local3]); }; } else { this._add(_args.shift(), _args.shift()); }; } private function _add(_arg1:String, _arg2:String):void{ replacements[_arg1] = _arg2; } public function build(_arg1:Object=null):String{ return (_build(_build(_base, _arg1), replacements)); } private function _build(_arg1:String, _arg2:Object):String{ var _local4:String; var _local5:String; var _local3:String = _arg1; for (_local4 in _arg2) { _local5 = _arg2[_local4]; _local3 = _local3.replace((("[" + _local4) + "]"), _local5); }; return (_local3); } }
Section 75
//Reflection (com.conceptualideas.videoplayer.utils.Reflection) package com.conceptualideas.videoplayer.utils { import flash.utils.*; public class Reflection { public static function getClassConst(_arg1:Class, _arg2:Boolean=false):Array{ var _local5:XML; var _local3:XML = describeType(_arg1); var _local4:Array = []; for each (_local5 in _local3.constant) { if (_arg2){ _local4.push(_arg1[_local5.@name]); } else { _local4.push(String(_local5.@name)); }; }; return (_local4); } } }//package com.conceptualideas.videoplayer.utils
Section 76
//Settings (com.conceptualideas.videoplayer.utils.Settings) package com.conceptualideas.videoplayer.utils { import flash.events.*; import flash.display.*; import com.conceptualideas.utils.*; import com.conceptualideas.videoplayer.utils.parsers.*; public class Settings extends EventDispatcher { private var config:Object; private var _cleanURL:String; private var _playlist:Array; private var _videoLink:String; private var _videoID:String; private var _dtools:DomainTools; public static const LOADED:String = "loaded"; private static var _instance:Settings; public function Settings(){ _playlist = []; super(); } public function load():void{ var _local1:String = (dtools.vars.containsValue("settings")) ? dtools.vars.getValue("settings") : ((dtools.base + "/") + "settings.css"); dtools.loadURL(_local1, onSettingsLoaded); } public function retrive(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false, _arg4:Boolean=false){ var parts:Array; var index:int; var current:*; var memeber:String; var selector = _arg1; var remove = _arg2; var enhancement = _arg3; var returnObject = _arg4; if (selector == ""){ return (config); }; try { if (enhancement){ return (retrive(("enhancements." + selector), remove)); }; parts = selector.split("."); index = 0; current = config; for each (memeber in parts) { if ((((index == (parts.length - 1))) && (remove))){ delete current[memeber]; } else { if (((returnObject) && ((index == parts.length)))){ return (current[memeber]); }; current = current[memeber]; }; index = (index + 1); }; return (current); } catch(e:Error) { }; return (null); } private function createVideoMasks():void{ var _local1:PlaylistBuilder = PlaylistBuilder.instance(); var _local2:Object = {domain:retrive("main.currentDomain"), site:dtools.vars.check("media", "site"), subdomain:dtools.vars.check("media", "site")}; if (retrive("main.streaming") != "rtmp"){ _local1.addMask("http", config.main.flvMask, _local2); } else { _local1.addMask("rtmp", config.rtmp.conn, _local2); }; } private function getSettingsFromVars():void{ config.ui.skin.file = dtools.vars.check(config.ui.skin.file, "skin", "styleCSS"); config.main.autoPlay = dtools.vars.check(config.main.autoPlay, "autoplay"); trace(dtools.vars.getValue("seekingParamater"), "seekingParamater"); config.main.seekingParamater = dtools.vars.check(config.main.seekingParamater, "seekingParamater"); if (config.get("video", false, true)){ config.enhancements.video.displayclick = dtools.vars.check(config.enhancements.video.displayclick, "displayclick"); }; var omitList:Array = ["overlay", "image", "link", "id", "file", "videoPath", "playlist"]; var filter:RegExp = new RegExp(omitList.join("|")); var colors:Array = dtools.vars.getGroup(/colors.[\w\W]+/i); colors.forEach(function (_arg1, _arg2:int, _arg3:Array):void{ trace(retrive(("ui.skin." + _arg1), false, false, true)); }); } public function init(_arg1:DisplayObjectContainer):void{ _dtools = DomainTools.instance(); dtools.init(_arg1); } public function get playlist():Array{ return (_playlist); } public function hasAds():Boolean{ var _local1:String; for (_local1 in retrive("ads")) { if (((!((_local1 == "display"))) && ((config.ads[_local1] === true)))){ return (true); }; }; return (false); } public function get dtools():DomainTools{ return (_dtools); } private function onSettingsLoaded(_arg1:Event):void{ var e = _arg1; config = ConfigParser.parse(e.target.data); config.externalSite = dtools.onExternalSite(config.main.currentDomain); config.get = retrive; config.isModuleLoaded = function (_arg1:String):Boolean{ var _local2:Array = ((retrive("modules.load")) || ([])); return (!((_local2.indexOf(_arg1) == -1))); }; config.log = dtools.log; config.hasEnhancement = function (_arg1:String):Boolean{ var _local2:Array = ((retrive("enhancements.load")) || ([])); return (!((_local2.indexOf(_arg1) == -1))); }; config.center = function (_arg1:Object, _arg2:Number, _arg3:Number, _arg4:Number=0, _arg5:Number=0):void{ if (_arg1){ _arg1.x = (_arg4 + ((_arg2 - _arg1.width) / 2)); _arg1.y = (_arg5 + ((_arg3 - _arg1.height) / 2)); }; }; config.remove = function (_arg1:String, _arg2:Boolean=false):void{ retrive(_arg1, true, _arg2); }; config.extend = _dtools.extend; createVideoMasks(); getSettingsFromVars(); dispatchEvent(new Event(Settings.LOADED)); } public static function instance():Settings{ if (!_instance){ _instance = new (Settings); }; return (_instance); } } }//package com.conceptualideas.videoplayer.utils
Section 77
//Stacker (com.conceptualideas.videoplayer.utils.Stacker) package com.conceptualideas.videoplayer.utils { import flash.display.*; public class Stacker { private var _compress:Boolean;// = false private var _remove:Array; private var _width:Number; private var stack:Array; public var clip:MovieClip; private var latest:Number;// = 0 public function Stacker(_arg1:MovieClip){ _remove = []; super(); clip = _arg1; analyze(); } public function set compress(_arg1:Boolean):void{ _compress = _arg1; } public function addRemove(_arg1:String):void{ _remove.push(_arg1); } public function analyze():void{ var _local2:DisplayObject; _width = clip.width; stack = new Array(); var _local1:Number = 0; while (_local1 < clip.numChildren) { _local2 = clip.getChildAt(_local1); stack.push({c:_local2, x:_local2.x, n:_local2.name, w:_local2.width}); _local1++; }; stack.sortOn(["x", "n"], [Array.NUMERIC, Array.CASEINSENSITIVE]); } public function get width():Number{ return (_width); } public function rearrange(_arg1:Number=undefined):void{ var _local6:Number; if (_arg1){ latest = _arg1; }; var _local2:Number = (latest - width); var _local3:Number = 0; var _local4:Number = 0; while (_local4 < stack.length) { if ((((stack[_local4].x > (width / 2))) && (!(_compress)))){ stack[_local4].c.x = (stack[_local4].x + _local2); if ((((stack[_local4].c.visible == false)) && ((overlaps(_local4) == false)))){ _local2 = (_local2 - (((stack[_local4].w + stack[_local4].x) - stack[(_local4 - 1)].x) - stack[(_local4 - 1)].w)); }; } else { stack[_local4].c.x = (stack[_local4].x - _local3); if ((((stack[_local4].c.visible == false)) && ((overlaps(_local4) == false)))){ if (stack[(_local4 - 1)].w > (width / 4)){ _local3 = (_local3 + (stack[_local4].w + stack[_local4].x)); } else { _local3 = (_local3 + (((stack[_local4].w + stack[_local4].x) - stack[(_local4 - 1)].x) - stack[(_local4 - 1)].w)); }; }; }; if ((((stack[_local4].w > (width / 4))) && (!(_compress)))){ stack[_local4].c.width = Math.abs(((stack[_local4].w + _local2) + _local3)); }; _local4++; }; var _local5:Number = ((latest - width) - _local2); if (_local5 > 0){ _local6 = 0; while (_local6 < stack.length) { if (stack[_local6].x > (width / 2)){ stack[_local6].c.x = (stack[_local6].c.x + _local5); }; if ((((stack[_local6].w > (width / 4))) && ((stack[_local6].w < width)))){ stack[_local6].c.width = (stack[_local6].c.width + _local5); }; _local6++; }; }; } public function insert(_arg1:MovieClip, _arg2:MovieClip):void{ var _local3:Number = 0; var _local4:Number = 0; while (_local4 < stack.length) { if (stack[_local4].w >= _width){ stack[_local4].w = (stack[_local4].w + _arg1.width); }; if ((((stack[_local4].c == _arg2)) && (!(_local3)))){ _local3 = _local4; stack.splice(_local4, 0, {c:_arg1, x:stack[_local4].x, n:_arg1.name, w:_arg1.width}); } else { if (_local3){ stack[_local4].x = (stack[_local4].x + _arg1.width); }; }; _local4++; }; _width = (_width + _arg1.width); rearrange(); } private function overlaps(_arg1:Number):Boolean{ var _local2:Number = stack[_arg1].x; var _local3:Number = (stack[_arg1].x + stack[_arg1].w); if (_remove.indexOf(stack[_arg1].n) != -1){ return (false); }; var _local4:Number = 0; while (_local4 < stack.length) { if (((((((((!((_local4 == _arg1))) && ((stack[_local4].c.visible == true)))) && ((stack[_local4].w < _width)))) && ((stack[_local4].x < _local3)))) && (((stack[_local4].x + stack[_local4].w) > _local2)))){ return (true); }; _local4++; }; return (false); } public function findNext(_arg1:String):DisplayObject{ var _local3:Object; var _local2:Boolean; for each (_local3 in stack) { if (_local2){ return (_local3.c); }; if (_local3.n == _arg1){ _local2 = true; }; }; return (null); } } }//package com.conceptualideas.videoplayer.utils
Section 78
//Strings (com.conceptualideas.videoplayer.utils.Strings) package com.conceptualideas.videoplayer.utils { public class Strings { public static function serialize(_arg1:String):Object{ if (_arg1 == null){ return (null); }; if (_arg1 == "true"){ return (true); }; if (_arg1 == "false"){ return (false); }; if (((isNaN(Number(_arg1))) || ((_arg1.length > 5)))){ return (Strings.decode(_arg1)); }; return (Number(_arg1)); } public static function trim(_arg1:String):String{ if (_arg1 == null){ return (""); }; return (_arg1.replace(/^\s+|\s+$/g, "")); } public static function digits(_arg1:Number, _arg2:Boolean=false):String{ var _local3:Number; var _local4:Number; var _local5:Number; if (_arg2){ _local5 = Math.floor((_arg1 / 3600)); _local3 = Math.floor(((_arg1 - (_local5 * 3600)) / 60)); _local4 = Math.floor(((_arg1 - (_local3 * 60)) - (_local5 * 3600))); } else { _local3 = Math.floor((_arg1 / 60)); _local4 = Math.floor((_arg1 % 60)); }; return (((((_arg2) ? Strings.zero(_local5) : "" + Strings.zero(_local3)) + ":") + Strings.zero(_local4))); } public static function decode(_arg1:String):String{ if (_arg1.indexOf("asfunction") == -1){ return (unescape(_arg1)); }; return (""); } public static function zero(_arg1:Number):String{ if (_arg1 < 10){ return (("0" + _arg1)); }; return (("" + _arg1)); } } }//package com.conceptualideas.videoplayer.utils
Section 79
//TimeTracker (com.conceptualideas.videoplayer.utils.TimeTracker) package com.conceptualideas.videoplayer.utils { import flash.events.*; import flash.utils.*; import com.conceptualideas.vodplayer.utils.*; public class TimeTracker extends EventDispatcher { private var delay:Number;// = 10 private var timer:Timer; private var config:Object; private var user:String; private var diff:Number;// = 0 private var trackMode:Boolean; private var currFreq:Number;// = 0 private var currTime:Number; private var returnValue:String; private var remainingTime:Number; private var scrubTime:Number; private var trackingUrl:String; public static const OUT_OF_TIME:String = "outoftime"; private static var _instance:TimeTracker; public function TimeTracker(){ config = new Object(); timer = new Timer(1000, 0); timer.addEventListener(TimerEvent.TIMER, count); } public function setDelay(_arg1:Number):void{ delay = _arg1; } public function setParams(_arg1:Object):void{ config = _arg1; } public function setTime(_arg1:Number, _arg2:Boolean):void{ if (((((!(timer.running)) && (!((_arg1 == 0))))) && (_arg2))){ startTimer(); }; currTime = Math.ceil((_arg1 - diff)); } public function getTime():Number{ return (Number(currTime)); } private function calc():void{ var _local1:Number = Math.floor(scrubTime); var _local2:Number = Math.floor(currTime); diff = (_local1 - _local2); } public function rest():void{ timer.stop(); timer.reset(); currFreq = 0; currTime = 0; diff = 0; remainingTime = 0; } private function count(_arg1:Event):void{ if (currTime == delay){ dispatchEvent(new TimeTrackerEvent(TimeTrackerEvent.LIMIT_REACHED)); }; var _local2:TimeTrackerEvent = new TimeTrackerEvent(TimeTrackerEvent.COUNT); _local2.setStatus(currTime); dispatchEvent(_local2); } private function startTimer():void{ timer.start(); } public function stopTimer():void{ timer.stop(); } public function setScrub(_arg1:Number):void{ scrubTime = _arg1; calc(); } public function setTrackingURL(_arg1:String):void{ trackingUrl = _arg1; } public static function get_instance():TimeTracker{ if (_instance == null){ _instance = new (TimeTracker); }; return (_instance); } } }//package com.conceptualideas.videoplayer.utils
Section 80
//CustomAdContainer (com.conceptualideas.videoplayer.views.ads.CustomAdContainer) package com.conceptualideas.videoplayer.views.ads { import com.conceptualideas.videoplayer.interfaces.*; import flash.utils.*; public class CustomAdContainer { private var _hash:Dictionary; private static var _instance:CustomAdContainer; public function CustomAdContainer(){ _hash = new Dictionary(); super(); } private function add(_arg1:String, _arg2:IAdView):void{ _hash[_arg1] = _arg2; } private function retrive(_arg1:String):IAdView{ return (_hash[_arg1]); } public static function add(_arg1:String, _arg2:IAdView):void{ instance().add(_arg1, _arg2); } private static function instance():CustomAdContainer{ if (!_instance){ _instance = new (CustomAdContainer); }; return (_instance); } public static function retrive(_arg1:String):IAdView{ return (instance().retrive(_arg1)); } } }//package com.conceptualideas.videoplayer.views.ads
Section 81
//ImageAdContainerView (com.conceptualideas.videoplayer.views.ads.ImageAdContainerView) package com.conceptualideas.videoplayer.views.ads { import flash.events.*; import com.conceptualideas.videoplayer.interfaces.*; import flash.display.*; import com.conceptualideas.videoplayer.utils.*; import com.conceptualideas.utils.*; import flash.text.*; public class ImageAdContainerView extends Sprite implements IAdView { protected var sets:Array; protected var adsLoaded:Number;// = 0 protected var _imgGroup:Sprite; protected var _header:TextField; protected var _set2:ImageSet; protected var _set1:ImageSet; protected var dtools:DomainTools; protected var AD_LIMIT:Number;// = 2 public static const AD_LOADED:String = "ad_loaded"; public function ImageAdContainerView():void{ dtools = DomainTools.instance(); super(); } private function setupImageGroup():void{ _imgGroup = new Sprite(); addChild(_imgGroup); } public function hide():void{ this.visible = false; removeImageSets(); } protected function positionAds():void{ sets[0].x = 0; var _local1 = 1; while (_local1 < sets.length) { sets[_local1].x = ((sets[(_local1 - 1)].x + sets[(_local1 - 1)].width) + 100); _local1++; }; _imgGroup.y = ((_header.y + _header.height) + 10); _imgGroup.visible = true; _imgGroup.x = 0; _header.x = 0; if (_header.width > _imgGroup.width){ _imgGroup.x = ((_header.width - _imgGroup.width) / 2); } else { _header.x = ((_imgGroup.width - _header.width) / 2); }; } public function init(_arg1:Object):void{ this.visible = false; sets = new Array(); var _local2:Object = {size:16, font:AssetManager.getFontName(AssetManager.ARIAL)}; _header = PlayerUtils.createTextField(345, 22, "center", true, "", _local2); addChild(_header); setupImageGroup(); } private function onAdLoaded(_arg1:Event):void{ var xml:XML; var count:Number; var currentCount:Number; var node:XML; var e = _arg1; try { xml = new XML(e.target.data); this.removeImageSets(); count = 1; _header.text = String(xml.ad.@header); currentCount = xml.ad.image.children(); for each (node in xml.ad.image) { if (count <= AD_LIMIT){ this.createImageSet(node.@width, node.@height, node.@src, ((node.@location + "\n") + node.@age), ((node.@url) || (xml.ad.@targeturl))); count = (count + 1); } else { break; }; }; } catch(e:Error) { }; } private function onImageLoaded(_arg1:Event):void{ adsLoaded++; _arg1.target.addEventListener(ImageSet.LOADED, onImageLoaded, false, 0, true); if (adsLoaded == sets.length){ this.positionAds(); adsLoaded = 0; dispatchEvent(new Event(ImageAdContainerView.AD_LOADED)); }; } private function createImageSet(_arg1:Number, _arg2:Number, _arg3:String, _arg4:String, _arg5:String):void{ var _local6:ImageSet = new ImageSet(_arg1, _arg2); _local6.addEventListener(ImageSet.LOADED, onImageLoaded, false, 0, true); _imgGroup.addChild(_local6); sets.push(_local6); _local6.load(_arg3, _arg4, _arg5); } public function load(_arg1:String):void{ _imgGroup.visible = false; adsLoaded = 0; dtools.loadURL(_arg1, onAdLoaded); } private function removeImageSets():void{ var _local1:ImageSet; for each (_local1 in sets) { _imgGroup.removeChild(_local1); _local1.dispose(); _local1 = null; }; sets = null; sets = new Array(); } public function show():void{ this.visible = true; } } }//package com.conceptualideas.videoplayer.views.ads
Section 82
//ImageSet (com.conceptualideas.videoplayer.views.ads.ImageSet) package com.conceptualideas.videoplayer.views.ads { import flash.events.*; import flash.display.*; import com.conceptualideas.videoplayer.utils.*; import flash.net.*; import flash.text.*; public class ImageSet extends Sprite { protected var link:String; private var imageHeight:Number; private var imageWidth:Number; protected var _info:TextField; protected var _img:Sprite; protected static const TEXT_HIGHT:Number = 54; protected static const TEXT_WIDTH:Number = 100; public static const LOADED:String = "loaded"; public function ImageSet(_arg1:Number, _arg2:Number){ imageWidth = _arg1; imageHeight = _arg2; init(); } public function load(_arg1:String, _arg2:String, _arg3:String):void{ var _local4:Loader = new Loader(); var _local5:DisplayObject = _img.getChildByName("content"); if (_local5 != null){ _img.removeChild(_local5); _local5 = null; }; var _local6:URLRequest = new URLRequest(_arg1); _info.width = ImageSet.TEXT_WIDTH; _info.height = ImageSet.TEXT_HIGHT; _info.text = _arg2; _img.addChildAt(_local4, 0); this.link = _arg3; _img.addEventListener(MouseEvent.CLICK, onImageClicked, false, 0, true); _img.buttonMode = true; _local4.load(_local6); _local4.contentLoaderInfo.addEventListener(Event.INIT, onAdLoaded, false, 0, true); } private function onAdLoaded(_arg1:Event):void{ this.visible = true; PlayerUtils.fit(_img, imageWidth, imageHeight); _info.x = (_img.x + ((_img.width - _info.width) / 2)); _info.y = ((_img.y + _img.height) + 5); dispatchEvent(new Event(ImageSet.LOADED)); } private function update():void{ _info.x = 0; _img.x = ((_info.width - _img.width) / 2); _info.y = (_img.height + 10); } public function reset():void{ _info.x = (_info.y = 1); _info.width = (_info.height = 1); this.visible = false; } protected function init():void{ var _local1:Object = {size:12, font:AssetManager.getFontName(AssetManager.ARIAL)}; _info = PlayerUtils.createTextField(imageWidth, ImageSet.TEXT_HIGHT, "center", true, "", _local1); _img = PlayerUtils.createSpriteHolder(imageWidth, imageHeight); addChild(_img); addChild(_info); this.visible = false; } private function onImageClicked(_arg1:MouseEvent):void{ navigateToURL(new URLRequest(this.link), "_blank"); } public function close():void{ var loader:Loader; try { loader = (_img.getChildAt(0) as Loader); if (loader != null){ loader.close(); }; } catch(e:Error) { }; } public function dispose():void{ var loader:Loader; if (_img.numChildren == 1){ try { loader = (_img.removeChildAt(0) as Loader); Bitmap(loader.content).bitmapData.dispose(); } catch(err:Error) { }; }; } } }//package com.conceptualideas.videoplayer.views.ads
Section 83
//TextAdContainerView (com.conceptualideas.videoplayer.views.ads.TextAdContainerView) package com.conceptualideas.videoplayer.views.ads { import flash.events.*; import com.conceptualideas.videoplayer.interfaces.*; import flash.display.*; import com.conceptualideas.videoplayer.utils.*; import com.conceptualideas.utils.*; import flash.net.*; import flash.text.*; public class TextAdContainerView extends Sprite implements IAdView { private const SPACING:Number = 10; private var _info1:TextField; private var _info2:TextField; private var dtools:DomainTools; private static const TEXT_HEIGHT:Number = 55; public static const AD_LOADED:String = "ad_loaded"; private static const TEXT_WIDTH:Number = 206; public function TextAdContainerView():void{ dtools = DomainTools.instance(); super(); } private function onTextLinkClicked(_arg1:TextEvent):void{ navigateToURL(new URLRequest(_arg1.text)); } public function hide():void{ this.visible = false; if (_info1 != null){ removeChild(_info1); removeChild(_info2); _info1 = null; _info2 = null; }; } public function init(_arg1:Object):void{ var _local2:Object = {size:12, font:AssetManager.getFontName(AssetManager.ARIAL)}; _info1 = PlayerUtils.createTextField(TEXT_WIDTH, TEXT_HEIGHT, "center", true, "", _local2); _info2 = PlayerUtils.createTextField(TEXT_WIDTH, TEXT_HEIGHT, "center", true, "", _local2); addChild(_info1); addChild(_info2); _info2.x = (_info1.width + SPACING); _info1.addEventListener(TextEvent.LINK, onTextLinkClicked, false, 0, true); _info2.addEventListener(TextEvent.LINK, onTextLinkClicked, false, 0, true); this.visible = false; } private function onXMLFeedLoaded(_arg1:Event):void{ var xml:XML; var count:Number; var ad:XML; var txt:TextField; var e = _arg1; try { xml = new XML(e.target.data); count = 1; for each (ad in xml.children()) { txt = this[("_info" + count)]; txt.width = TEXT_WIDTH; txt.height = TEXT_HEIGHT; txt.htmlText = (((((("<a href='event:" + ad.@targeturl) + "'>") + ad.@title) + "\n") + ad.@description) + "</a>"); count = (count + 1); }; if (_info1.height < _info2.height){ _info1.y = (((_info2.y + _info2.height) - _info1.height) / 2); }; if (_info2.height < _info2.height){ _info2.y = (((_info1.y + _info1.height) - _info2.height) / 2); }; dispatchEvent(new Event(TextAdContainerView.AD_LOADED)); } catch(e:Error) { }; } public function load(_arg1:String):void{ dtools.loadURL(_arg1, onXMLFeedLoaded, dtools.adsense); } public function show():void{ this.visible = true; } } }//package com.conceptualideas.videoplayer.views.ads
Section 84
//WatermarkView (com.conceptualideas.videoplayer.views.WatermarkView) package com.conceptualideas.videoplayer.views { import flash.events.*; import flash.display.*; import flash.net.*; import flash.system.*; public class WatermarkView extends Sprite { private var selfToggle:Boolean; private var paddingTop:Number;// = 0 private var _height:Number; private var opacity:Number; private var target:String; private var paddingRight:Number;// = 0 private var paddingBottom:Number;// = 0 private var placement:String; private var _distanceFromBottom:Number; private var defaults:Object; private var _watermark:Sprite; private var url:String; private var link:String; private var paddingLeft:Number;// = 0 public static const CLICKED:String = "clicked"; public function WatermarkView(_arg1:Object, _arg2:Number):void{ defaults = {url:"", placement:"BR", link:"", target:"_self", opacity:70, paddingBottom:0, paddingTop:0, paddingRight:0, paddingLeft:0, selfToggle:false}; super(); _distanceFromBottom = _arg2; this.update(_arg1); this.addEventListener(Event.ADDED_TO_STAGE, onAddedToStage, false, 0, true); this.mouseEnabled = false; this.mouseChildren = true; _watermark = new Sprite(); } public function hide():void{ this.visible = false; } private function onIOError(_arg1:IOErrorEvent):void{ } public function update(_arg1:Object):void{ url = _arg1.url; placement = _arg1.placement; link = (_arg1.useNats) ? "nats" : _arg1.link; target = _arg1.target; opacity = _arg1.opacity; paddingBottom = _arg1.paddingBottom; paddingTop = _arg1.paddingTop; paddingLeft = _arg1.paddingLeft; paddingRight = _arg1.paddingRight; selfToggle = _arg1.selfToggle; } private function setMaxViewingHeight():void{ _height = (stage.stageHeight - _distanceFromBottom); } private function init():void{ if (((!((link == null))) && (!((link == ""))))){ _watermark.addEventListener(MouseEvent.CLICK, onWatermarkClicked, false, 0, true); }; loadWatermark(url); } private function onWatermarkClicked(_arg1:MouseEvent):void{ dispatchEvent(new Event(WatermarkView.CLICKED)); } private function setWatermarkPlacement():void{ if (_watermark != null){ switch (placement.toUpperCase()){ case "TL": _watermark.y = paddingTop; _watermark.x = paddingLeft; break; case "TR": _watermark.x = ((stage.stageWidth - _watermark.width) - paddingRight); _watermark.y = paddingRight; break; case "BL": _watermark.x = paddingLeft; _watermark.y = ((_height - _watermark.height) - paddingBottom); break; case "BR": _watermark.x = ((stage.stageWidth - _watermark.width) - paddingRight); _watermark.y = ((_height - _watermark.height) - paddingBottom); break; default: _watermark.x = ((stage.stageWidth - _watermark.width) - paddingRight); _watermark.y = paddingTop; }; }; } private function loadWatermark(_arg1:String):void{ var loader:Loader; var request:URLRequest; var url = _arg1; try { loader = new Loader(); request = new URLRequest(url); loader.contentLoaderInfo.addEventListener(Event.INIT, onWatermarkLoaded, false, 0, true); loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onIOError, false, 0, true); loader.load(request, new LoaderContext(true)); } catch(e:Error) { trace(e); }; } private function onAddedToStage(_arg1:Event):void{ this.removeEventListener(Event.ADDED_TO_STAGE, onAddedToStage); this.setMaxViewingHeight(); init(); } private function onWatermarkLoaded(_arg1:Event):void{ if (_watermark.numChildren != 0){ _watermark.removeChildAt(0); }; _watermark.addChild(LoaderInfo(_arg1.target).content); _watermark.alpha = (opacity / 100); _watermark.buttonMode = true; addChild(_watermark); arrange(); if (selfToggle){ hide(); }; } public function arrange():void{ _height = (stage.stageHeight - _distanceFromBottom); setWatermarkPlacement(); } public function show():void{ this.visible = true; } } }//package com.conceptualideas.videoplayer.views
Section 85
//CIVideoPlayer (com.conceptualideas.videoplayer.CIVideoPlayer) package com.conceptualideas.videoplayer { import flash.events.*; import com.conceptualideas.videoplayer.player.*; import flash.display.*; import com.conceptualideas.videoplayer.utils.*; import com.conceptualideas.utils.*; import com.conceptualideas.videoplayer.events.*; import com.conceptualideas.videoplayer.core.bootloader.*; import com.conceptualideas.videoplayer.modules.*; import flash.system.*; public class CIVideoPlayer extends Sprite { protected var settings:Settings; protected var view:AbstractView; protected var playlist:PlaylistBuilder; protected var show_console:Boolean;// = false private var loadingClass:Class; private var skin:MovieClip; public function CIVideoPlayer(_arg1:Number=10):void{ settings = Settings.instance(); loadingClass = CIVideoPlayer_loadingClass; playlist = PlaylistBuilder.instance(); super(); if (stage){ init(); } else { addEventListener(Event.ADDED_TO_STAGE, init); }; } private function onExternalPlayListLoaded(_arg1:Event):void{ start(); } protected function setupBootLoader():void{ Bootloader.addBoot("pre", new PreBootLoader()); Bootloader.addBoot("mid", new MidBootLoader()); Bootloader.init(this, onBootLoaderComplete); } protected function overrides():void{ } protected function addVideo(_arg1:String, _arg2:String=null):Object{ return (playlist.addVideo(_arg1, _arg2, true)); } protected function get maxHeight():Number{ return ((conf("main.maxHeight")) ? conf("main.maxHeight") : stage.stageHeight); } protected function onBootLoaderComplete(_arg1:BaseView):void{ this.view = _arg1; overrides(); BaseView(this.view).loaded(); MouseWatcher.setup(_arg1.skin.stage); MouseWatcher.doWindowFocus = _arg1.config.get("main.windowFocus"); createPlaylist(); } private function createPlaylist():void{ var _local1:String; var _local2:Object; if (!settings.dtools.vars.hasEither("videoPath", "playlist")){ _local1 = getVideoFromVars(); _local2 = this.addVideo(_local1, settings.dtools.vars.getValue("link")); if (settings.dtools.vars.hasKey("start")){ _local2.start = Number(settings.dtools.vars.getValue("start")); }; if (conf("ads.showPreroll")){ playlist.addRollVideo("pre", conf("ads.rolls.preroll.url"), null, conf("ads.rolls.preroll.type")); }; if (conf("ads.showPostroll")){ playlist.addRollVideo("post", conf("ads.rolls.postroll.url"), null, conf("ads.rolls.preroll.type")); }; start(); } else { playlist.addEventListener(PlaylistBuilder.LOADED, onExternalPlayListLoaded, false, 0, true); playlist.load(settings.dtools.vars.getEither("videoPath", "playlist")); }; } protected function start():void{ view.sendEvent("LOAD", playlist.getPlaylist()); } private function init(_arg1:Event=null):void{ removeEventListener(Event.ADDED_TO_STAGE, init); Security.allowDomain("*"); Security.allowInsecureDomain("*"); setupBootLoader(); } protected function getVideoVarsName(_arg1:Boolean=false):Array{ return ((_arg1) ? ["videoPath", "playlist"] : ["file", "id"]); } protected function conf(_arg1:String){ return (settings.retrive(_arg1)); } protected function getVideoFromVars():String{ return (settings.dtools.vars.check(conf("main.defaultVideo"), "file")); } } }//package com.conceptualideas.videoplayer
Section 86
//CIVideoPlayer_loadingClass (com.conceptualideas.videoplayer.CIVideoPlayer_loadingClass) package com.conceptualideas.videoplayer { import mx.core.*; import flash.utils.*; public class CIVideoPlayer_loadingClass extends MovieClipLoaderAsset { public var dataClass:Class; private static var bytes:ByteArray = null; public function CIVideoPlayer_loadingClass(){ dataClass = CIVideoPlayer_loadingClass_dataClass; super(); initialWidth = (640 / 20); initialHeight = (640 / 20); } override public function get movieClipData():ByteArray{ if (bytes == null){ bytes = ByteArray(new dataClass()); }; return (bytes); } } }//package com.conceptualideas.videoplayer
Section 87
//CIVideoPlayer_loadingClass_dataClass (com.conceptualideas.videoplayer.CIVideoPlayer_loadingClass_dataClass) package com.conceptualideas.videoplayer { import mx.core.*; public class CIVideoPlayer_loadingClass_dataClass extends ByteArrayAsset { } }//package com.conceptualideas.videoplayer
Section 88
//TimeTrackerEvent (com.conceptualideas.vodplayer.utils.TimeTrackerEvent) package com.conceptualideas.vodplayer.utils { import flash.events.*; public class TimeTrackerEvent extends Event { private var _status;// = "" public static const CURRENT_STATUS:String = "current_status"; public static const LIMIT_REACHED:String = "limitReached"; public static const COUNT:String = "count"; public function TimeTrackerEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false){ super(_arg1, true, _arg3); } public function setStatus(_arg1):void{ _status = _arg1; } public function get status(){ return (_status); } override public function clone():Event{ var _local1:TimeTrackerEvent = new TimeTrackerEvent(type, true, cancelable); _local1.setStatus(_status); return (_local1); } } }//package com.conceptualideas.vodplayer.utils
Section 89
//HitTester (com.dougmccune.HitTester) package com.dougmccune { import flash.display.*; import flash.geom.*; import flash.utils.*; public class HitTester { private static var cache:Dictionary = new Dictionary(); public static function realHitTest(_arg1:DisplayObject, _arg2:Point):Boolean{ var _local3:BitmapData; var _local4:Boolean; var _local5:Rectangle; var _local6:Matrix; if ((_arg1 is BitmapData)){ return ((_arg1 as BitmapData).hitTest(new Point(0, 0), 0, _arg1.globalToLocal(_arg2))); }; if (!_arg1.hitTestPoint(_arg2.x, _arg2.y, true)){ return (false); }; if (((((!(cache[_arg1])) || (!((cache[_arg1].width == _arg1.width))))) || (!((cache[_arg1].height == _arg1.height))))){ if (cache[_arg1]){ cache[_arg1].dispose(); }; _local3 = new BitmapData(_arg1.width, _arg1.height, true, 0); _local5 = _arg1.getBounds(_arg1.parent); _local6 = _arg1.transform.matrix; _local6.tx = (_arg1.x - _local5.x); _local6.ty = (_arg1.y - _local5.y); _local3.draw(_arg1, new Matrix()); } else { _local3 = cache[_arg1]; }; _local4 = ((_local3.getPixel32(_arg2.x, _arg2.y))<4278190080) ? true : false; cache[_arg1] = _local3; return (_local4); } } }//package com.dougmccune
Section 90
//ColorMatrix (com.gskinner.geom.ColorMatrix) package com.gskinner.geom { public dynamic class ColorMatrix extends Array { private static const IDENTITY_MATRIX:Array = [1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1]; private static const LENGTH:Number = IDENTITY_MATRIX.length; private static const DELTA_INDEX:Array = [0, 0.01, 0.02, 0.04, 0.05, 0.06, 0.07, 0.08, 0.1, 0.11, 0.12, 0.14, 0.15, 0.16, 0.17, 0.18, 0.2, 0.21, 0.22, 0.24, 0.25, 0.27, 0.28, 0.3, 0.32, 0.34, 0.36, 0.38, 0.4, 0.42, 0.44, 0.46, 0.48, 0.5, 0.53, 0.56, 0.59, 0.62, 0.65, 0.68, 0.71, 0.74, 0.77, 0.8, 0.83, 0.86, 0.89, 0.92, 0.95, 0.98, 1, 1.06, 1.12, 1.18, 1.24, 1.3, 1.36, 1.42, 1.48, 1.54, 1.6, 1.66, 1.72, 1.78, 1.84, 1.9, 1.96, 2, 2.12, 2.25, 2.37, 2.5, 2.62, 2.75, 2.87, 3, 3.2, 3.4, 3.6, 3.8, 4, 4.3, 4.7, 4.9, 5, 5.5, 6, 6.5, 6.8, 7, 7.3, 7.5, 7.8, 8, 8.4, 8.7, 9, 9.4, 9.6, 9.8, 10]; public function ColorMatrix(_arg1:Array=null){ _arg1 = fixMatrix(_arg1); copyMatrix(((_arg1.length)==LENGTH) ? _arg1 : IDENTITY_MATRIX); } public function adjustBrightness(_arg1:Number):void{ _arg1 = cleanValue(_arg1, 100); if ((((_arg1 == 0)) || (isNaN(_arg1)))){ return; }; multiplyMatrix([1, 0, 0, 0, _arg1, 0, 1, 0, 0, _arg1, 0, 0, 1, 0, _arg1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1]); } public function adjustSaturation(_arg1:Number):void{ _arg1 = cleanValue(_arg1, 100); if ((((_arg1 == 0)) || (isNaN(_arg1)))){ return; }; var _local2:Number = (1 + ((_arg1)>0) ? ((3 * _arg1) / 100) : (_arg1 / 100)); var _local3:Number = 0.3086; var _local4:Number = 0.6094; var _local5:Number = 0.082; multiplyMatrix([((_local3 * (1 - _local2)) + _local2), (_local4 * (1 - _local2)), (_local5 * (1 - _local2)), 0, 0, (_local3 * (1 - _local2)), ((_local4 * (1 - _local2)) + _local2), (_local5 * (1 - _local2)), 0, 0, (_local3 * (1 - _local2)), (_local4 * (1 - _local2)), ((_local5 * (1 - _local2)) + _local2), 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1]); } protected function multiplyMatrix(_arg1:Array):void{ var _local4:uint; var _local5:Number; var _local6:Number; var _local2:Array = []; var _local3:uint; while (_local3 < 5) { _local4 = 0; while (_local4 < 5) { _local2[_local4] = this[(_local4 + (_local3 * 5))]; _local4++; }; _local4 = 0; while (_local4 < 5) { _local5 = 0; _local6 = 0; while (_local6 < 5) { _local5 = (_local5 + (_arg1[(_local4 + (_local6 * 5))] * _local2[_local6])); _local6++; }; this[(_local4 + (_local3 * 5))] = _local5; _local4++; }; _local3++; }; } protected function cleanValue(_arg1:Number, _arg2:Number):Number{ return (Math.min(_arg2, Math.max(-(_arg2), _arg1))); } public function adjustHue(_arg1:Number):void{ _arg1 = ((cleanValue(_arg1, 180) / 180) * Math.PI); if ((((_arg1 == 0)) || (isNaN(_arg1)))){ return; }; var _local2:Number = Math.cos(_arg1); var _local3:Number = Math.sin(_arg1); var _local4:Number = 0.213; var _local5:Number = 0.715; var _local6:Number = 0.072; multiplyMatrix([((_local4 + (_local2 * (1 - _local4))) + (_local3 * -(_local4))), ((_local5 + (_local2 * -(_local5))) + (_local3 * -(_local5))), ((_local6 + (_local2 * -(_local6))) + (_local3 * (1 - _local6))), 0, 0, ((_local4 + (_local2 * -(_local4))) + (_local3 * 0.143)), ((_local5 + (_local2 * (1 - _local5))) + (_local3 * 0.14)), ((_local6 + (_local2 * -(_local6))) + (_local3 * -0.283)), 0, 0, ((_local4 + (_local2 * -(_local4))) + (_local3 * -((1 - _local4)))), ((_local5 + (_local2 * -(_local5))) + (_local3 * _local5)), ((_local6 + (_local2 * (1 - _local6))) + (_local3 * _local6)), 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1]); } public function toString():String{ return ((("ColorMatrix [ " + this.join(" , ")) + " ]")); } protected function fixMatrix(_arg1:Array=null):Array{ if (_arg1 == null){ return (IDENTITY_MATRIX); }; if ((_arg1 is _slot1)){ _arg1 = _arg1.slice(0); }; if (_arg1.length < LENGTH){ _arg1 = _arg1.slice(0, _arg1.length).concat(IDENTITY_MATRIX.slice(_arg1.length, LENGTH)); } else { if (_arg1.length > LENGTH){ _arg1 = _arg1.slice(0, LENGTH); }; }; return (_arg1); } public function reset():void{ var _local1:uint; while (_local1 < LENGTH) { this[_local1] = IDENTITY_MATRIX[_local1]; _local1++; }; } public function adjustContrast(_arg1:Number):void{ var _local2:Number; _arg1 = cleanValue(_arg1, 100); if ((((_arg1 == 0)) || (isNaN(_arg1)))){ return; }; if (_arg1 < 0){ _local2 = (127 + ((_arg1 / 100) * 127)); } else { _local2 = (_arg1 % 1); if (_local2 == 0){ _local2 = DELTA_INDEX[_arg1]; } else { _local2 = ((DELTA_INDEX[(_arg1 << 0)] * (1 - _local2)) + (DELTA_INDEX[((_arg1 << 0) + 1)] * _local2)); }; _local2 = ((_local2 * 127) + 127); }; multiplyMatrix([(_local2 / 127), 0, 0, 0, (0.5 * (127 - _local2)), 0, (_local2 / 127), 0, 0, (0.5 * (127 - _local2)), 0, 0, (_local2 / 127), 0, (0.5 * (127 - _local2)), 0, 0, 0, 1, 0, 0, 0, 0, 0, 1]); } public function adjustColor(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):void{ adjustHue(_arg4); adjustContrast(_arg2); adjustBrightness(_arg1); adjustSaturation(_arg3); } protected function copyMatrix(_arg1:Array):void{ var _local2:Number = LENGTH; var _local3:uint; while (_local3 < _local2) { this[_local3] = _arg1[_local3]; _local3++; }; } public function concat(_arg1:Array):void{ _arg1 = fixMatrix(_arg1); if (_arg1.length != LENGTH){ return; }; multiplyMatrix(_arg1); } public function clone():ColorMatrix{ return (new ColorMatrix(this)); } public function toArray():Array{ return (slice(0, 20)); } } }//package com.gskinner.geom
Section 91
//BaseEvent (com.reyco1.events.BaseEvent) package com.reyco1.events { import flash.events.*; import com.reyco1.util.*; public class BaseEvent extends Event { public var params:Object; public function BaseEvent(_arg1:String, _arg2:Object=null){ super(_arg1, true, true); this.params = _arg2; } override public function toString():String{ return (ClassUtil.className(this)); } override public function clone():Event{ return (new BaseEvent(this.type, this.params)); } } }//package com.reyco1.events
Section 92
//ContextMenuManagerEvent (com.reyco1.events.ContextMenuManagerEvent) package com.reyco1.events { public class ContextMenuManagerEvent extends BaseEvent { public static const MENU_SELECTED:String = "ContextMenuManagerEvent.onMeuSelected"; public static const RIGHT_CLICK:String = "ContextMenuManagerEvent.onRightClik"; public function ContextMenuManagerEvent(_arg1:String, _arg2:Object){ super(_arg1, _arg2); } } }//package com.reyco1.events
Section 93
//DispatchExtension (com.reyco1.extension.DispatchExtension) package com.reyco1.extension { import flash.events.*; import com.reyco1.util.*; public class DispatchExtension extends EventDispatcher { private var strClassName:String; private var bolOutputSilenced:Boolean;// = false public function DispatchExtension():void{ this.strClassName = ClassUtil.displayClassName(this); trace((this.strClassName + "constructed")); } override public function dispatchEvent(_arg1:Event):Boolean{ return (super.dispatchEvent(_arg1)); } public function output(_arg1):void{ var _local2:String; var _local3:*; if (!this.bolOutputSilenced){ switch (typeof(_arg1)){ case "object": _local2 = (_arg1.length) ? "Array" : "Object"; trace((this.strClassName + _local2)); trace("----------------------------------------------"); for (_local3 in _arg1) { trace((((((" - [" + typeof(_arg1[_local3])) + "] ") + _local3) + " : ") + _arg1[_local3])); }; break; default: trace((this.strClassName + _arg1)); break; }; }; } public function set outputSilenced(_arg1:Boolean):void{ this.bolOutputSilenced = _arg1; } } }//package com.reyco1.extension
Section 94
//ContextMenuManager (com.reyco1.manager.ContextMenuManager) package com.reyco1.manager { import flash.events.*; import flash.display.*; import com.reyco1.events.*; import com.reyco1.extension.*; import flash.ui.*; import com.reyco1.util.*; public class ContextMenuManager extends DispatchExtension { private var myContextMenu:ContextMenu; private var objScope:DisplayObject; private var _arrMenuItems:Array; public function ContextMenuManager(_arg1:DisplayObject):void{ this.myContextMenu = new ContextMenu(); this.objScope = _arg1; this._arrMenuItems = new Array(); this.removeDefaultItems(); this.myContextMenu.addEventListener(ContextMenuEvent.MENU_SELECT, this.menuSelectHandler); this.objScope["contextMenu"] = this.myContextMenu; trace(this.objScope); } public function get arrMenuItems():Array{ return (_arrMenuItems); } private function removeDefaultItems():void{ this.myContextMenu.hideBuiltInItems(); this.myContextMenu.customItems = []; } public function removeMenuItem(_arg1:String):void{ var _local2:Array = new Array(); var _local3:uint; while (_local3 < this._arrMenuItems.length) { if (this._arrMenuItems[_local3].label != _arg1){ _local2.push(this._arrMenuItems[_local3]); }; _local3++; }; this._arrMenuItems = _local2; this.addCustomMenuItems(); } public function menuItemEnabled(_arg1:String, _arg2:Boolean):void{ this.removeDefaultItems(); var _local3:uint; while (_local3 < this._arrMenuItems.length) { if (this._arrMenuItems[_local3].label != _arg1){ this._arrMenuItems[_local3].enabled = _arg2; }; _local3++; }; this.addCustomMenuItems(); } private function addSingleCustomItem(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=true):void{ var _local4:ContextMenuItem = new ContextMenuItem(_arg1, _arg2, _arg3); this.myContextMenu.customItems.push(_local4); _local4.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, ProxyUtil.create(this.menuItemSelectHandler, _arg1)); } private function menuSelectHandler(_arg1:ContextMenuEvent):void{ this.removeDefaultItems(); if ((((_arg1.mouseTarget == this.objScope)) || ((_arg1.mouseTarget.parent == this.objScope)))){ this.addCustomMenuItems(); }; this.dispatchEvent(new ContextMenuManagerEvent(ContextMenuManagerEvent.RIGHT_CLICK, {})); } private function addCustomMenuItems():void{ var _local1:uint; if (this._arrMenuItems.length > 0){ _local1 = 0; while (_local1 < this._arrMenuItems.length) { this.addSingleCustomItem(this._arrMenuItems[_local1].label, this._arrMenuItems[_local1].separate, this._arrMenuItems[_local1].enabled); _local1++; }; }; } public function addMenuItem(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=true):void{ this.removeDefaultItems(); this._arrMenuItems.push({label:_arg1, separate:_arg2, enabled:_arg3}); this.addCustomMenuItems(); } private function menuItemSelectHandler(_arg1:ContextMenuEvent, _arg2:String):void{ this.dispatchEvent(new ContextMenuManagerEvent(ContextMenuManagerEvent.MENU_SELECTED, {label:_arg2, target:this.objScope})); } } }//package com.reyco1.manager
Section 95
//ClassUtil (com.reyco1.util.ClassUtil) package com.reyco1.util { public class ClassUtil { public static function displayClassName(_arg1:Object):String{ return ((("[" + ClassUtil.className(_arg1)) + "] : ")); } public static function className(_arg1:Object):String{ return (_arg1.toString().substring((_arg1.toString().indexOf(" ") + 1), (_arg1.toString().length - 1))); } } }//package com.reyco1.util
Section 96
//ProxyUtil (com.reyco1.util.ProxyUtil) package com.reyco1.util { public class ProxyUtil { public static function create(_arg1:Function, ... _args):Function{ var $function = _arg1; var $rest = _args; return (function (... _args):void{ $function.apply(this, _args.concat($rest)); }); } } }//package com.reyco1.util
Section 97
//AutoAlphaPlugin (gs.plugins.AutoAlphaPlugin) package gs.plugins { import flash.display.*; import gs.*; public class AutoAlphaPlugin extends TweenPlugin { protected var _tweenVisible:Boolean; protected var _target:Object; protected var _visible:Boolean; protected var _tween:TweenLite; public static const VERSION:Number = 1; public static const API:Number = 1; public function AutoAlphaPlugin(){ this.propName = "autoAlpha"; this.overwriteProps = ["alpha", "visible"]; this.onComplete = onCompleteTween; } override public function killProps(_arg1:Object):void{ super.killProps(_arg1); _tweenVisible = !(Boolean(("visible" in _arg1))); } public function onCompleteTween():void{ if (((((_tweenVisible) && (!((_tween.vars.runBackwards == true))))) && ((_tween.ease == _tween.vars.ease)))){ _target.visible = _visible; }; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ _target = _arg1; _tween = _arg3; _visible = Boolean(!((_arg2 == 0))); _tweenVisible = true; addTween(_arg1, "alpha", _arg1.alpha, _arg2, "alpha"); return (true); } override public function set changeFactor(_arg1:Number):void{ updateTweens(_arg1); if (((!((_target.visible == true))) && (_tweenVisible))){ _target.visible = true; }; } } }//package gs.plugins
Section 98
//EndArrayPlugin (gs.plugins.EndArrayPlugin) package gs.plugins { import flash.display.*; import gs.*; import gs.utils.tween.*; public class EndArrayPlugin extends TweenPlugin { protected var _a:Array; protected var _info:Array; public static const VERSION:Number = 1.01; public static const API:Number = 1; public function EndArrayPlugin(){ _info = []; super(); this.propName = "endArray"; this.overwriteProps = ["endArray"]; } public function init(_arg1:Array, _arg2:Array):void{ _a = _arg1; var _local3:int = (_arg2.length - 1); while (_local3 > -1) { if (((!((_arg1[_local3] == _arg2[_local3]))) && (!((_arg1[_local3] == null))))){ _info[_info.length] = new ArrayTweenInfo(_local3, _a[_local3], (_arg2[_local3] - _a[_local3])); }; _local3--; }; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ if (((!((_arg1 is Array))) || (!((_arg2 is Array))))){ return (false); }; init((_arg1 as Array), _arg2); return (true); } override public function set changeFactor(_arg1:Number):void{ var _local2:int; var _local3:ArrayTweenInfo; var _local4:Number; var _local5:int; if (this.round){ _local2 = (_info.length - 1); while (_local2 > -1) { _local3 = _info[_local2]; _local4 = (_local3.start + (_local3.change * _arg1)); _local5 = ((_local4)<0) ? -1 : 1; _a[_local3.index] = ((((_local4 % 1) * _local5))>0.5) ? (int(_local4) + _local5) : int(_local4); _local2--; }; } else { _local2 = (_info.length - 1); while (_local2 > -1) { _local3 = _info[_local2]; _a[_local3.index] = (_local3.start + (_local3.change * _arg1)); _local2--; }; }; } } }//package gs.plugins
Section 99
//FilterPlugin (gs.plugins.FilterPlugin) package gs.plugins { import flash.display.*; import gs.*; import flash.filters.*; import gs.utils.tween.*; public class FilterPlugin extends TweenPlugin { protected var _remove:Boolean; protected var _target:Object; protected var _index:int; protected var _filter:BitmapFilter; protected var _type:Class; public static const VERSION:Number = 1.03; public static const API:Number = 1; public function onCompleteTween():void{ var _local1:int; var _local2:Array; if (_remove){ _local2 = _target.filters; if (!(_local2[_index] is _type)){ _local1 = (_local2.length - 1); while (_local1 > -1) { if ((_local2[_local1] is _type)){ _local2.splice(_local1, 1); break; }; _local1--; }; } else { _local2.splice(_index, 1); }; _target.filters = _local2; }; } protected function initFilter(_arg1:Object, _arg2:BitmapFilter):void{ var _local4:String; var _local5:int; var _local6:HexColorsPlugin; var _local3:Array = _target.filters; _index = -1; if (_arg1.index != null){ _index = _arg1.index; } else { _local5 = (_local3.length - 1); while (_local5 > -1) { if ((_local3[_local5] is _type)){ _index = _local5; break; }; _local5--; }; }; if ((((((_index == -1)) || ((_local3[_index] == null)))) || ((_arg1.addFilter == true)))){ _index = ((_arg1.index)!=null) ? _arg1.index : _local3.length; _local3[_index] = _arg2; _target.filters = _local3; }; _filter = _local3[_index]; _remove = Boolean((_arg1.remove == true)); if (_remove){ this.onComplete = onCompleteTween; }; var _local7:Object = ((_arg1.isTV)==true) ? _arg1.exposedVars : _arg1; for (_local4 in _local7) { if (((((((((!((_local4 in _filter))) || ((_filter[_local4] == _local7[_local4])))) || ((_local4 == "remove")))) || ((_local4 == "index")))) || ((_local4 == "addFilter")))){ } else { if ((((((_local4 == "color")) || ((_local4 == "highlightColor")))) || ((_local4 == "shadowColor")))){ _local6 = new HexColorsPlugin(); _local6.initColor(_filter, _local4, _filter[_local4], _local7[_local4]); _tweens[_tweens.length] = new TweenInfo(_local6, "changeFactor", 0, 1, _local4, false); } else { if ((((((((_local4 == "quality")) || ((_local4 == "inner")))) || ((_local4 == "knockout")))) || ((_local4 == "hideObject")))){ _filter[_local4] = _local7[_local4]; } else { addTween(_filter, _local4, _filter[_local4], _local7[_local4], _local4); }; }; }; }; } override public function set changeFactor(_arg1:Number):void{ var _local2:int; var _local3:TweenInfo; var _local4:Array = _target.filters; _local2 = (_tweens.length - 1); while (_local2 > -1) { _local3 = _tweens[_local2]; _local3.target[_local3.property] = (_local3.start + (_local3.change * _arg1)); _local2--; }; if (!(_local4[_index] is _type)){ _index = (_local4.length - 1); _local2 = (_local4.length - 1); while (_local2 > -1) { if ((_local4[_local2] is _type)){ _index = _local2; break; }; _local2--; }; }; _local4[_index] = _filter; _target.filters = _local4; } } }//package gs.plugins
Section 100
//FramePlugin (gs.plugins.FramePlugin) package gs.plugins { import flash.display.*; import gs.*; public class FramePlugin extends TweenPlugin { protected var _target:MovieClip; public var frame:int; public static const VERSION:Number = 1.01; public static const API:Number = 1; public function FramePlugin(){ this.propName = "frame"; this.overwriteProps = ["frame"]; this.round = true; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ if (((!((_arg1 is MovieClip))) || (isNaN(_arg2)))){ return (false); }; _target = (_arg1 as MovieClip); this.frame = _target.currentFrame; addTween(this, "frame", this.frame, _arg2, "frame"); return (true); } override public function set changeFactor(_arg1:Number):void{ updateTweens(_arg1); _target.gotoAndStop(this.frame); } } }//package gs.plugins
Section 101
//GlowFilterPlugin (gs.plugins.GlowFilterPlugin) package gs.plugins { import flash.display.*; import gs.*; import flash.filters.*; public class GlowFilterPlugin extends FilterPlugin { public static const VERSION:Number = 1; public static const API:Number = 1; public function GlowFilterPlugin(){ this.propName = "glowFilter"; this.overwriteProps = ["glowFilter"]; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ _target = _arg1; _type = GlowFilter; initFilter(_arg2, new GlowFilter(0xFFFFFF, 0, 0, 0, ((_arg2.strength) || (1)), ((_arg2.quality) || (2)), _arg2.inner, _arg2.knockout)); return (true); } } }//package gs.plugins
Section 102
//HexColorsPlugin (gs.plugins.HexColorsPlugin) package gs.plugins { import flash.display.*; import gs.*; public class HexColorsPlugin extends TweenPlugin { protected var _colors:Array; public static const VERSION:Number = 1.01; public static const API:Number = 1; public function HexColorsPlugin(){ this.propName = "hexColors"; this.overwriteProps = []; _colors = []; } override public function killProps(_arg1:Object):void{ var _local2:int = (_colors.length - 1); while (_local2 > -1) { if (_arg1[_colors[_local2][1]] != undefined){ _colors.splice(_local2, 1); }; _local2--; }; super.killProps(_arg1); } public function initColor(_arg1:Object, _arg2:String, _arg3:uint, _arg4:uint):void{ var _local5:Number; var _local6:Number; var _local7:Number; if (_arg3 != _arg4){ _local5 = (_arg3 >> 16); _local6 = ((_arg3 >> 8) & 0xFF); _local7 = (_arg3 & 0xFF); _colors[_colors.length] = [_arg1, _arg2, _local5, ((_arg4 >> 16) - _local5), _local6, (((_arg4 >> 8) & 0xFF) - _local6), _local7, ((_arg4 & 0xFF) - _local7)]; this.overwriteProps[this.overwriteProps.length] = _arg2; }; } override public function set changeFactor(_arg1:Number):void{ var _local2:int; var _local3:Array; _local2 = (_colors.length - 1); while (_local2 > -1) { _local3 = _colors[_local2]; _local3[0][_local3[1]] = ((((_local3[2] + (_arg1 * _local3[3])) << 16) | ((_local3[4] + (_arg1 * _local3[5])) << 8)) | (_local3[6] + (_arg1 * _local3[7]))); _local2--; }; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ var _local4:String; for (_local4 in _arg2) { initColor(_arg1, _local4, uint(_arg1[_local4]), uint(_arg2[_local4])); }; return (true); } } }//package gs.plugins
Section 103
//RemoveTintPlugin (gs.plugins.RemoveTintPlugin) package gs.plugins { public class RemoveTintPlugin extends TintPlugin { public static const VERSION:Number = 1.01; public static const API:Number = 1; public function RemoveTintPlugin(){ this.propName = "removeTint"; } } }//package gs.plugins
Section 104
//TintPlugin (gs.plugins.TintPlugin) package gs.plugins { import flash.display.*; import flash.geom.*; import gs.*; import gs.utils.tween.*; public class TintPlugin extends TweenPlugin { protected var _target:DisplayObject; protected var _ct:ColorTransform; protected var _ignoreAlpha:Boolean; public static const VERSION:Number = 1.1; public static const API:Number = 1; protected static var _props:Array = ["redMultiplier", "greenMultiplier", "blueMultiplier", "alphaMultiplier", "redOffset", "greenOffset", "blueOffset", "alphaOffset"]; public function TintPlugin(){ this.propName = "tint"; this.overwriteProps = ["tint"]; } public function init(_arg1:DisplayObject, _arg2:ColorTransform):void{ var _local3:int; var _local4:String; _target = _arg1; _ct = _target.transform.colorTransform; _local3 = (_props.length - 1); while (_local3 > -1) { _local4 = _props[_local3]; if (_ct[_local4] != _arg2[_local4]){ _tweens[_tweens.length] = new TweenInfo(_ct, _local4, _ct[_local4], (_arg2[_local4] - _ct[_local4]), "tint", false); }; _local3--; }; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ if (!(_arg1 is DisplayObject)){ return (false); }; var _local4:ColorTransform = new ColorTransform(); if (((!((_arg2 == null))) && (!((_arg3.exposedVars.removeTint == true))))){ _local4.color = uint(_arg2); }; _ignoreAlpha = true; init((_arg1 as DisplayObject), _local4); return (true); } override public function set changeFactor(_arg1:Number):void{ var _local2:ColorTransform; updateTweens(_arg1); if (_ignoreAlpha){ _local2 = _target.transform.colorTransform; _ct.alphaMultiplier = _local2.alphaMultiplier; _ct.alphaOffset = _local2.alphaOffset; }; _target.transform.colorTransform = _ct; } } }//package gs.plugins
Section 105
//TweenPlugin (gs.plugins.TweenPlugin) package gs.plugins { import gs.*; import gs.utils.tween.*; public class TweenPlugin { public var overwriteProps:Array; protected var _tweens:Array; public var propName:String; public var onComplete:Function; public var round:Boolean; protected var _changeFactor:Number;// = 0 public static const VERSION:Number = 1.03; public static const API:Number = 1; public function TweenPlugin(){ _tweens = []; super(); } protected function updateTweens(_arg1:Number):void{ var _local2:int; var _local3:TweenInfo; var _local4:Number; var _local5:int; if (this.round){ _local2 = (_tweens.length - 1); while (_local2 > -1) { _local3 = _tweens[_local2]; _local4 = (_local3.start + (_local3.change * _arg1)); _local5 = ((_local4)<0) ? -1 : 1; _local3.target[_local3.property] = ((((_local4 % 1) * _local5))>0.5) ? (int(_local4) + _local5) : int(_local4); _local2--; }; } else { _local2 = (_tweens.length - 1); while (_local2 > -1) { _local3 = _tweens[_local2]; _local3.target[_local3.property] = (_local3.start + (_local3.change * _arg1)); _local2--; }; }; } public function set changeFactor(_arg1:Number):void{ updateTweens(_arg1); _changeFactor = _arg1; } protected function addTween(_arg1:Object, _arg2:String, _arg3:Number, _arg4, _arg5:String=null):void{ var _local6:Number; if (_arg4 != null){ _local6 = ((typeof(_arg4))=="number") ? (_arg4 - _arg3) : Number(_arg4); if (_local6 != 0){ _tweens[_tweens.length] = new TweenInfo(_arg1, _arg2, _arg3, _local6, ((_arg5) || (_arg2)), false); }; }; } public function killProps(_arg1:Object):void{ var _local2:int; _local2 = (this.overwriteProps.length - 1); while (_local2 > -1) { if ((this.overwriteProps[_local2] in _arg1)){ this.overwriteProps.splice(_local2, 1); }; _local2--; }; _local2 = (_tweens.length - 1); while (_local2 > -1) { if ((_tweens[_local2].name in _arg1)){ _tweens.splice(_local2, 1); }; _local2--; }; } public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ addTween(_arg1, this.propName, _arg1[this.propName], _arg2, this.propName); return (true); } public function get changeFactor():Number{ return (_changeFactor); } public static function activate(_arg1:Array):Boolean{ var _local2:int; var _local3:Object; _local2 = (_arg1.length - 1); while (_local2 > -1) { _local3 = new (_arg1[_local2]); TweenLite.plugins[_local3.propName] = _arg1[_local2]; _local2--; }; return (true); } } }//package gs.plugins
Section 106
//VisiblePlugin (gs.plugins.VisiblePlugin) package gs.plugins { import flash.display.*; import gs.*; public class VisiblePlugin extends TweenPlugin { protected var _target:Object; protected var _visible:Boolean; protected var _tween:TweenLite; public static const VERSION:Number = 1; public static const API:Number = 1; public function VisiblePlugin(){ this.propName = "visible"; this.overwriteProps = ["visible"]; this.onComplete = onCompleteTween; } public function onCompleteTween():void{ if (((!((_tween.vars.runBackwards == true))) && ((_tween.ease == _tween.vars.ease)))){ _target.visible = _visible; }; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ _target = _arg1; _tween = _arg3; _visible = Boolean(_arg2); return (true); } override public function set changeFactor(_arg1:Number):void{ if (_target.visible != true){ _target.visible = true; }; } } }//package gs.plugins
Section 107
//VolumePlugin (gs.plugins.VolumePlugin) package gs.plugins { import flash.display.*; import gs.*; import flash.media.*; public class VolumePlugin extends TweenPlugin { protected var _target:Object; protected var _st:SoundTransform; public static const VERSION:Number = 1.01; public static const API:Number = 1; public function VolumePlugin(){ this.propName = "volume"; this.overwriteProps = ["volume"]; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ if (((isNaN(_arg2)) || (!(_arg1.hasOwnProperty("soundTransform"))))){ return (false); }; _target = _arg1; _st = _target.soundTransform; addTween(_st, "volume", _st.volume, _arg2, "volume"); return (true); } override public function set changeFactor(_arg1:Number):void{ updateTweens(_arg1); _target.soundTransform = _st; } } }//package gs.plugins
Section 108
//ArrayTweenInfo (gs.utils.tween.ArrayTweenInfo) package gs.utils.tween { public class ArrayTweenInfo { public var change:Number; public var start:Number; public var index:uint; public function ArrayTweenInfo(_arg1:uint, _arg2:Number, _arg3:Number){ this.index = _arg1; this.start = _arg2; this.change = _arg3; } } }//package gs.utils.tween
Section 109
//TweenInfo (gs.utils.tween.TweenInfo) package gs.utils.tween { public class TweenInfo { public var start:Number; public var name:String; public var change:Number; public var target:Object; public var property:String; public var isPlugin:Boolean; public function TweenInfo(_arg1:Object, _arg2:String, _arg3:Number, _arg4:Number, _arg5:String, _arg6:Boolean){ this.target = _arg1; this.property = _arg2; this.start = _arg3; this.change = _arg4; this.name = _arg5; this.isPlugin = _arg6; } } }//package gs.utils.tween
Section 110
//TweenLite (gs.TweenLite) package gs { import flash.events.*; import flash.display.*; import flash.utils.*; import gs.plugins.*; import gs.utils.tween.*; public class TweenLite { public var started:Boolean; public var delay:Number; protected var _hasUpdate:Boolean; protected var _hasPlugins:Boolean; public var initted:Boolean; public var active:Boolean; public var startTime:Number; public var target:Object; public var duration:Number; public var gc:Boolean; public var tweens:Array; public var vars:Object; public var ease:Function; public var exposedVars:Object; public var initTime:Number; public var combinedTimeScale:Number; public static const version:Number = 10.091; private static var _timer:Timer = new Timer(2000); public static var defaultEase:Function = TweenLite.easeOut; public static var plugins:Object = {}; public static var currentTime:uint; public static var masterList:Dictionary = new Dictionary(false); protected static var _reservedProps:Object = {ease:1, delay:1, overwrite:1, onComplete:1, onCompleteParams:1, runBackwards:1, startAt:1, onUpdate:1, onUpdateParams:1, roundProps:1, onStart:1, onStartParams:1, persist:1, renderOnStart:1, proxiedEase:1, easeParams:1, yoyo:1, loop:1, onCompleteListener:1, onUpdateListener:1, onStartListener:1, orientToBezier:1, timeScale:1}; public static var killDelayedCallsTo:Function = TweenLite.killTweensOf; public static var timingSprite:Sprite = new Sprite(); public static var overwriteManager:Object; private static var _tlInitted:Boolean; public function TweenLite(_arg1:Object, _arg2:Number, _arg3:Object){ if (_arg1 == null){ return; }; if (!_tlInitted){ TweenPlugin.activate([TintPlugin, RemoveTintPlugin, FramePlugin, AutoAlphaPlugin, VisiblePlugin, VolumePlugin, EndArrayPlugin]); currentTime = getTimer(); timingSprite.addEventListener(Event.ENTER_FRAME, updateAll, false, 0, true); if (overwriteManager == null){ overwriteManager = {mode:1, enabled:false}; }; _timer.addEventListener("timer", killGarbage, false, 0, true); _timer.start(); _tlInitted = true; }; this.vars = _arg3; this.duration = ((_arg2) || (0.001)); this.delay = ((_arg3.delay) || (0)); this.combinedTimeScale = ((_arg3.timeScale) || (1)); this.active = Boolean((((_arg2 == 0)) && ((this.delay == 0)))); this.target = _arg1; if (typeof(this.vars.ease) != "function"){ this.vars.ease = defaultEase; }; if (this.vars.easeParams != null){ this.vars.proxiedEase = this.vars.ease; this.vars.ease = easeProxy; }; this.ease = this.vars.ease; this.exposedVars = ((this.vars.isTV)==true) ? this.vars.exposedVars : this.vars; this.tweens = []; this.initTime = currentTime; this.startTime = (this.initTime + (this.delay * 1000)); var _local4:int = ((((_arg3.overwrite == undefined)) || (((!(overwriteManager.enabled)) && ((_arg3.overwrite > 1)))))) ? overwriteManager.mode : int(_arg3.overwrite); if (((!((_arg1 in masterList))) || ((_local4 == 1)))){ masterList[_arg1] = [this]; } else { masterList[_arg1].push(this); }; if ((((((this.vars.runBackwards == true)) && (!((this.vars.renderOnStart == true))))) || (this.active))){ initTweenVals(); if (this.active){ render((this.startTime + 1)); } else { render(this.startTime); }; if (((((!((this.exposedVars.visible == null))) && ((this.vars.runBackwards == true)))) && ((this.target is DisplayObject)))){ this.target.visible = this.exposedVars.visible; }; }; } public function get enabled():Boolean{ return ((this.gc) ? false : true); } public function set enabled(_arg1:Boolean):void{ var _local2:Array; var _local3:Boolean; var _local4:int; if (_arg1){ if (!(this.target in masterList)){ masterList[this.target] = [this]; } else { _local2 = masterList[this.target]; _local4 = (_local2.length - 1); while (_local4 > -1) { if (_local2[_local4] == this){ _local3 = true; break; }; _local4--; }; if (!_local3){ _local2[_local2.length] = this; }; }; }; this.gc = (_arg1) ? false : true; if (this.gc){ this.active = false; } else { this.active = this.started; }; } public function clear():void{ this.tweens = []; this.vars = (this.exposedVars = {ease:this.vars.ease}); _hasUpdate = false; } public function render(_arg1:uint):void{ var _local3:Number; var _local4:TweenInfo; var _local5:int; var _local2:Number = ((_arg1 - this.startTime) * 0.001); if (_local2 >= this.duration){ _local2 = this.duration; _local3 = ((((this.ease == this.vars.ease)) || ((this.duration == 0.001)))) ? 1 : 0; } else { _local3 = this.ease(_local2, 0, 1, this.duration); }; _local5 = (this.tweens.length - 1); while (_local5 > -1) { _local4 = this.tweens[_local5]; _local4.target[_local4.property] = (_local4.start + (_local3 * _local4.change)); _local5--; }; if (_hasUpdate){ this.vars.onUpdate.apply(null, this.vars.onUpdateParams); }; if (_local2 == this.duration){ complete(true); }; } public function activate():void{ this.started = (this.active = true); if (!this.initted){ initTweenVals(); }; if (this.vars.onStart != null){ this.vars.onStart.apply(null, this.vars.onStartParams); }; if (this.duration == 0.001){ this.startTime = (this.startTime - 1); }; } public function initTweenVals():void{ var _local1:String; var _local2:int; var _local3:*; var _local4:TweenInfo; if (((!((this.exposedVars.timeScale == undefined))) && (this.target.hasOwnProperty("timeScale")))){ this.tweens[this.tweens.length] = new TweenInfo(this.target, "timeScale", this.target.timeScale, (this.exposedVars.timeScale - this.target.timeScale), "timeScale", false); }; for (_local1 in this.exposedVars) { if ((_local1 in _reservedProps)){ } else { if ((_local1 in plugins)){ _local3 = new (plugins[_local1]); if (_local3.onInitTween(this.target, this.exposedVars[_local1], this) == false){ this.tweens[this.tweens.length] = new TweenInfo(this.target, _local1, this.target[_local1], ((typeof(this.exposedVars[_local1]))=="number") ? (this.exposedVars[_local1] - this.target[_local1]) : Number(this.exposedVars[_local1]), _local1, false); } else { this.tweens[this.tweens.length] = new TweenInfo(_local3, "changeFactor", 0, 1, ((_local3.overwriteProps.length)==1) ? _local3.overwriteProps[0] : "_MULTIPLE_", true); _hasPlugins = true; }; } else { this.tweens[this.tweens.length] = new TweenInfo(this.target, _local1, this.target[_local1], ((typeof(this.exposedVars[_local1]))=="number") ? (this.exposedVars[_local1] - this.target[_local1]) : Number(this.exposedVars[_local1]), _local1, false); }; }; }; if (this.vars.runBackwards == true){ _local2 = (this.tweens.length - 1); while (_local2 > -1) { _local4 = this.tweens[_local2]; this.tweens[_local2].start = (_local4.start + _local4.change); _local4.change = -(_local4.change); _local2--; }; }; if (this.vars.onUpdate != null){ _hasUpdate = true; }; if (((TweenLite.overwriteManager.enabled) && ((this.target in masterList)))){ overwriteManager.manageOverwrites(this, masterList[this.target]); }; this.initted = true; } protected function easeProxy(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return (this.vars.proxiedEase.apply(null, arguments.concat(this.vars.easeParams))); } public function killVars(_arg1:Object):void{ if (overwriteManager.enabled){ overwriteManager.killVars(_arg1, this.exposedVars, this.tweens); }; } public function complete(_arg1:Boolean=false):void{ var _local2:int; if (!_arg1){ if (!this.initted){ initTweenVals(); }; this.startTime = (currentTime - ((this.duration * 1000) / this.combinedTimeScale)); render(currentTime); return; }; if (_hasPlugins){ _local2 = (this.tweens.length - 1); while (_local2 > -1) { if (((this.tweens[_local2].isPlugin) && (!((this.tweens[_local2].target.onComplete == null))))){ this.tweens[_local2].target.onComplete(); }; _local2--; }; }; if (this.vars.persist != true){ this.enabled = false; }; if (this.vars.onComplete != null){ this.vars.onComplete.apply(null, this.vars.onCompleteParams); }; } public static function updateAll(_arg1:Event=null):void{ var _local4:Array; var _local5:int; var _local6:TweenLite; var _local2:uint = (currentTime = getTimer()); var _local3:Dictionary = masterList; for each (_local4 in _local3) { _local5 = (_local4.length - 1); while (_local5 > -1) { _local6 = _local4[_local5]; if (_local6.active){ _local6.render(_local2); } else { if (_local6.gc){ _local4.splice(_local5, 1); } else { if (_local2 >= _local6.startTime){ _local6.activate(); _local6.render(_local2); }; }; }; _local5--; }; }; } public static function removeTween(_arg1:TweenLite, _arg2:Boolean=true):void{ if (_arg1 != null){ if (_arg2){ _arg1.clear(); }; _arg1.enabled = false; }; } public static function killTweensOf(_arg1:Object=null, _arg2:Boolean=false):void{ var _local3:Array; var _local4:int; var _local5:TweenLite; if (((!((_arg1 == null))) && ((_arg1 in masterList)))){ _local3 = masterList[_arg1]; _local4 = (_local3.length - 1); while (_local4 > -1) { _local5 = _local3[_local4]; if (((_arg2) && (!(_local5.gc)))){ _local5.complete(false); }; _local5.clear(); _local4--; }; delete masterList[_arg1]; }; } public static function from(_arg1:Object, _arg2:Number, _arg3:Object):TweenLite{ _arg3.runBackwards = true; return (new TweenLite(_arg1, _arg2, _arg3)); } public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / _arg4); return ((((-(_arg3) * _arg1) * (_arg1 - 2)) + _arg2)); } protected static function killGarbage(_arg1:TimerEvent):void{ var _local3:Object; var _local2:Dictionary = masterList; for (_local3 in _local2) { if (_local2[_local3].length == 0){ delete _local2[_local3]; }; }; } public static function delayedCall(_arg1:Number, _arg2:Function, _arg3:Array=null):TweenLite{ return (new TweenLite(_arg2, 0, {delay:_arg1, onComplete:_arg2, onCompleteParams:_arg3, overwrite:0})); } public static function to(_arg1:Object, _arg2:Number, _arg3:Object):TweenLite{ return (new TweenLite(_arg1, _arg2, _arg3)); } } }//package gs
Section 111
//BitmapAsset (mx.core.BitmapAsset) package mx.core { import flash.display.*; public class BitmapAsset extends FlexBitmap implements IFlexAsset, IFlexDisplayObject { mx_internal static const VERSION:String = "3.5.0.12683"; public function BitmapAsset(_arg1:BitmapData=null, _arg2:String="auto", _arg3:Boolean=false){ super(_arg1, _arg2, _arg3); } public function get measuredWidth():Number{ if (bitmapData){ return (bitmapData.width); }; return (0); } public function get measuredHeight():Number{ if (bitmapData){ return (bitmapData.height); }; return (0); } public function setActualSize(_arg1:Number, _arg2:Number):void{ width = _arg1; height = _arg2; } public function move(_arg1:Number, _arg2:Number):void{ this.x = _arg1; this.y = _arg2; } } }//package mx.core
Section 112
//ByteArrayAsset (mx.core.ByteArrayAsset) package mx.core { import flash.utils.*; public class ByteArrayAsset extends ByteArray implements IFlexAsset { mx_internal static const VERSION:String = "3.5.0.12683"; } }//package mx.core
Section 113
//EdgeMetrics (mx.core.EdgeMetrics) package mx.core { public class EdgeMetrics { public var top:Number; public var left:Number; public var bottom:Number; public var right:Number; mx_internal static const VERSION:String = "3.5.0.12683"; public static const EMPTY:EdgeMetrics = new EdgeMetrics(0, 0, 0, 0); ; public function EdgeMetrics(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0, _arg4:Number=0){ this.left = _arg1; this.top = _arg2; this.right = _arg3; this.bottom = _arg4; } public function clone():EdgeMetrics{ return (new EdgeMetrics(left, top, right, bottom)); } } }//package mx.core
Section 114
//FlexBitmap (mx.core.FlexBitmap) package mx.core { import flash.display.*; import mx.utils.*; public class FlexBitmap extends Bitmap { mx_internal static const VERSION:String = "3.5.0.12683"; public function FlexBitmap(_arg1:BitmapData=null, _arg2:String="auto", _arg3:Boolean=false){ var bitmapData = _arg1; var pixelSnapping = _arg2; var smoothing = _arg3; super(bitmapData, pixelSnapping, smoothing); try { name = NameUtil.createUniqueName(this); } catch(e:Error) { }; } override public function toString():String{ return (NameUtil.displayObjectToString(this)); } } }//package mx.core
Section 115
//FlexMovieClip (mx.core.FlexMovieClip) package mx.core { import flash.display.*; import mx.utils.*; public class FlexMovieClip extends MovieClip { mx_internal static const VERSION:String = "3.5.0.12683"; public function FlexMovieClip(){ super(); try { name = NameUtil.createUniqueName(this); } catch(e:Error) { }; } override public function toString():String{ return (NameUtil.displayObjectToString(this)); } } }//package mx.core
Section 116
//FontAsset (mx.core.FontAsset) package mx.core { import flash.text.*; public class FontAsset extends Font implements IFlexAsset { mx_internal static const VERSION:String = "3.5.0.12683"; } }//package mx.core
Section 117
//IBorder (mx.core.IBorder) package mx.core { public interface IBorder { function get borderMetrics():EdgeMetrics; } }//package mx.core
Section 118
//IFlexAsset (mx.core.IFlexAsset) package mx.core { public interface IFlexAsset { } }//package mx.core
Section 119
//IFlexDisplayObject (mx.core.IFlexDisplayObject) package mx.core { import flash.events.*; import flash.display.*; import flash.geom.*; import flash.accessibility.*; public interface IFlexDisplayObject extends IBitmapDrawable, IEventDispatcher { function get visible():Boolean; function get rotation():Number; function localToGlobal(_arg1:Point):Point; function get name():String; function set width(_arg1:Number):void; function get measuredHeight():Number; function get blendMode():String; function get scale9Grid():Rectangle; function set name(_arg1:String):void; function set scaleX(_arg1:Number):void; function set scaleY(_arg1:Number):void; function get measuredWidth():Number; function get accessibilityProperties():AccessibilityProperties; function set scrollRect(_arg1:Rectangle):void; function get cacheAsBitmap():Boolean; function globalToLocal(_arg1:Point):Point; function get height():Number; function set blendMode(_arg1:String):void; function get parent():DisplayObjectContainer; function getBounds(_arg1:DisplayObject):Rectangle; function get opaqueBackground():Object; function set scale9Grid(_arg1:Rectangle):void; function setActualSize(_arg1:Number, _arg2:Number):void; function set alpha(_arg1:Number):void; function set accessibilityProperties(_arg1:AccessibilityProperties):void; function get width():Number; function hitTestPoint(_arg1:Number, _arg2:Number, _arg3:Boolean=false):Boolean; function set cacheAsBitmap(_arg1:Boolean):void; function get scaleX():Number; function get scaleY():Number; function get scrollRect():Rectangle; function get mouseX():Number; function get mouseY():Number; function set height(_arg1:Number):void; function set mask(_arg1:DisplayObject):void; function getRect(_arg1:DisplayObject):Rectangle; function get alpha():Number; function set transform(_arg1:Transform):void; function move(_arg1:Number, _arg2:Number):void; function get loaderInfo():LoaderInfo; function get root():DisplayObject; function hitTestObject(_arg1:DisplayObject):Boolean; function set opaqueBackground(_arg1:Object):void; function set visible(_arg1:Boolean):void; function get mask():DisplayObject; function set x(_arg1:Number):void; function set y(_arg1:Number):void; function get transform():Transform; function set filters(_arg1:Array):void; function get x():Number; function get y():Number; function get filters():Array; function set rotation(_arg1:Number):void; function get stage():Stage; } }//package mx.core
Section 120
//IRepeaterClient (mx.core.IRepeaterClient) package mx.core { public interface IRepeaterClient { function get instanceIndices():Array; function set instanceIndices(_arg1:Array):void; function get isDocument():Boolean; function set repeaters(_arg1:Array):void; function initializeRepeaterArrays(_arg1:IRepeaterClient):void; function get repeaters():Array; function set repeaterIndices(_arg1:Array):void; function get repeaterIndices():Array; } }//package mx.core
Section 121
//MovieClipAsset (mx.core.MovieClipAsset) package mx.core { public class MovieClipAsset extends FlexMovieClip implements IFlexAsset, IFlexDisplayObject, IBorder { private var _measuredHeight:Number; private var _measuredWidth:Number; mx_internal static const VERSION:String = "3.5.0.12683"; public function MovieClipAsset(){ _measuredWidth = width; _measuredHeight = height; } public function get measuredWidth():Number{ return (_measuredWidth); } public function get measuredHeight():Number{ return (_measuredHeight); } public function setActualSize(_arg1:Number, _arg2:Number):void{ width = _arg1; height = _arg2; } public function move(_arg1:Number, _arg2:Number):void{ this.x = _arg1; this.y = _arg2; } public function get borderMetrics():EdgeMetrics{ if (scale9Grid == null){ return (EdgeMetrics.EMPTY); }; return (new EdgeMetrics(scale9Grid.left, scale9Grid.top, Math.ceil((measuredWidth - scale9Grid.right)), Math.ceil((measuredHeight - scale9Grid.bottom)))); } } }//package mx.core
Section 122
//MovieClipLoaderAsset (mx.core.MovieClipLoaderAsset) package mx.core { import flash.events.*; import flash.display.*; import flash.utils.*; import flash.system.*; public class MovieClipLoaderAsset extends MovieClipAsset implements IFlexAsset, IFlexDisplayObject { protected var initialHeight:Number;// = 0 private var loader:Loader;// = null private var initialized:Boolean;// = false protected var initialWidth:Number;// = 0 private var requestedHeight:Number; private var requestedWidth:Number; mx_internal static const VERSION:String = "3.5.0.12683"; public function MovieClipLoaderAsset(){ var _local1:LoaderContext = new LoaderContext(); _local1.applicationDomain = new ApplicationDomain(ApplicationDomain.currentDomain); if (("allowLoadBytesCodeExecution" in _local1)){ _local1["allowLoadBytesCodeExecution"] = true; }; loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler); loader.loadBytes(movieClipData, _local1); addChild(loader); } override public function get width():Number{ if (!initialized){ return (initialWidth); }; return (super.width); } override public function set width(_arg1:Number):void{ if (!initialized){ requestedWidth = _arg1; } else { loader.width = _arg1; }; } override public function get measuredHeight():Number{ return (initialHeight); } private function completeHandler(_arg1:Event):void{ initialized = true; initialWidth = loader.width; initialHeight = loader.height; if (!isNaN(requestedWidth)){ loader.width = requestedWidth; }; if (!isNaN(requestedHeight)){ loader.height = requestedHeight; }; dispatchEvent(_arg1); } override public function set height(_arg1:Number):void{ if (!initialized){ requestedHeight = _arg1; } else { loader.height = _arg1; }; } override public function get measuredWidth():Number{ return (initialWidth); } override public function get height():Number{ if (!initialized){ return (initialHeight); }; return (super.height); } public function get movieClipData():ByteArray{ return (null); } } }//package mx.core
Section 123
//mx_internal (mx.core.mx_internal) package mx.core { public namespace mx_internal = "http://www.adobe.com/2006/flex/mx/internal"; }//package mx.core
Section 124
//NameUtil (mx.utils.NameUtil) package mx.utils { import flash.display.*; import mx.core.*; import flash.utils.*; public class NameUtil { mx_internal static const VERSION:String = "3.5.0.12683"; private static var counter:int = 0; public static function displayObjectToString(_arg1:DisplayObject):String{ var result:String; var o:DisplayObject; var s:String; var indices:Array; var displayObject = _arg1; try { o = displayObject; while (o != null) { if (((((o.parent) && (o.stage))) && ((o.parent == o.stage)))){ break; }; s = o.name; if ((o is IRepeaterClient)){ indices = IRepeaterClient(o).instanceIndices; if (indices){ s = (s + (("[" + indices.join("][")) + "]")); }; }; result = ((result == null)) ? s : ((s + ".") + result); o = o.parent; }; } catch(e:SecurityError) { }; return (result); } public static function createUniqueName(_arg1:Object):String{ if (!_arg1){ return (null); }; var _local2:String = getQualifiedClassName(_arg1); var _local3:int = _local2.indexOf("::"); if (_local3 != -1){ _local2 = _local2.substr((_local3 + 2)); }; var _local4:int = _local2.charCodeAt((_local2.length - 1)); if ((((_local4 >= 48)) && ((_local4 <= 57)))){ _local2 = (_local2 + "_"); }; return ((_local2 + counter++)); } } }//package mx.utils
Section 125
//GIFDecoder (org.bytearray.gif.decoder.GIFDecoder) package org.bytearray.gif.decoder { import flash.display.*; import flash.geom.*; import flash.utils.*; import org.bytearray.gif.frames.*; import org.bytearray.gif.errors.*; public class GIFDecoder { private var inStream:ByteArray; private var transIndex:int; private var gct:Array; private var bgColor:int; private var ih:int; private var dispose:int;// = 0 private var height:int; private var iw:int; private var bitmap:BitmapData; private var blockSize:int;// = 0 private var ix:int; private var iy:int; private var gctSize:int; private var suffix:Array; private var transparency:Boolean;// = false private var image:BitmapData; private var lastImage:BitmapData; private var interlace:Boolean; private var pixelAspect:int; private var delay:int;// = 0 private var lctSize:int; private var bgIndex:int; private var act:Array; private var block:ByteArray; private var prefix:Array; private var lastRect:Rectangle; private var gctFlag:Boolean; private var frames:Array; private var lastBgColor:int; private var pixelStack:Array; private var pixels:Array; private var lastDispose:int;// = 0 private var frameCount:int; private var width:int; private var loopCount:int;// = 1 private var lct:Array; private var lctFlag:Boolean; private var status:int; private static var STATUS_OPEN_ERROR:int = 2; private static var MaxStackSize:int = 0x1000; private static var frameRect:Rectangle = new Rectangle(); private static var STATUS_OK:int = 0; private static var STATUS_FORMAT_ERROR:int = 1; public function GIFDecoder(){ block = new ByteArray(); } private function init():void{ status = STATUS_OK; frameCount = 0; frames = new Array(); gct = null; lct = null; } public function getLoopCount():int{ return (loopCount); } private function readLSD():void{ width = readShort(); height = readShort(); var _local1:int = readSingleByte(); gctFlag = !(((_local1 & 128) == 0)); gctSize = (2 << (_local1 & 7)); bgIndex = readSingleByte(); pixelAspect = readSingleByte(); } private function decodeImageData():void{ var _local3:int; var _local4:int; var _local5:int; var _local6:int; var _local7:int; var _local8:int; var _local9:int; var _local10:int; var _local11:int; var _local12:int; var _local13:int; var _local14:int; var _local15:int; var _local16:int; var _local17:int; var _local18:int; var _local19:int; var _local1 = -1; var _local2:int = (iw * ih); if ((((pixels == null)) || ((pixels.length < _local2)))){ pixels = new Array(_local2); }; if (prefix == null){ prefix = new Array(MaxStackSize); }; if (suffix == null){ suffix = new Array(MaxStackSize); }; if (pixelStack == null){ pixelStack = new Array((MaxStackSize + 1)); }; _local15 = readSingleByte(); _local4 = (1 << _local15); _local7 = (_local4 + 1); _local3 = (_local4 + 2); _local9 = _local1; _local6 = (_local15 + 1); _local5 = ((1 << _local6) - 1); _local11 = 0; while (_local11 < _local4) { prefix[int(_local11)] = 0; suffix[int(_local11)] = _local11; _local11++; }; _local18 = 0; _local19 = _local18; _local17 = _local19; _local16 = _local17; _local12 = _local16; _local10 = _local12; _local14 = _local10; _local13 = 0; while (_local13 < _local2) { if (_local17 == 0){ if (_local10 < _local6){ if (_local12 == 0){ _local12 = readBlock(); if (_local12 <= 0){ break; }; _local18 = 0; }; _local14 = (_local14 + ((int(block[int(_local18)]) & 0xFF) << _local10)); _local10 = (_local10 + 8); _local18++; _local12--; continue; }; _local11 = (_local14 & _local5); _local14 = (_local14 >> _local6); _local10 = (_local10 - _local6); if ((((_local11 > _local3)) || ((_local11 == _local7)))){ break; }; if (_local11 == _local4){ _local6 = (_local15 + 1); _local5 = ((1 << _local6) - 1); _local3 = (_local4 + 2); _local9 = _local1; continue; }; if (_local9 == _local1){ var _temp1 = _local17; _local17 = (_local17 + 1); pixelStack[int(_temp1)] = suffix[int(_local11)]; _local9 = _local11; _local16 = _local11; continue; }; _local8 = _local11; if (_local11 == _local3){ var _temp2 = _local17; _local17 = (_local17 + 1); pixelStack[int(_temp2)] = _local16; _local11 = _local9; }; while (_local11 > _local4) { var _temp3 = _local17; _local17 = (_local17 + 1); pixelStack[int(_temp3)] = suffix[int(_local11)]; _local11 = prefix[int(_local11)]; }; _local16 = (suffix[int(_local11)] & 0xFF); if (_local3 >= MaxStackSize){ break; }; var _temp4 = _local17; _local17 = (_local17 + 1); pixelStack[int(_temp4)] = _local16; prefix[int(_local3)] = _local9; suffix[int(_local3)] = _local16; _local3++; if (((((_local3 & _local5) == 0)) && ((_local3 < MaxStackSize)))){ _local6++; _local5 = (_local5 + _local3); }; _local9 = _local8; }; _local17--; var _temp5 = _local19; _local19 = (_local19 + 1); pixels[int(_temp5)] = pixelStack[int(_local17)]; _local13++; }; _local13 = _local19; while (_local13 < _local2) { pixels[int(_local13)] = 0; _local13++; }; } private function resetFrame():void{ lastDispose = dispose; lastRect = new Rectangle(ix, iy, iw, ih); lastImage = image; lastBgColor = bgColor; var _local1:Boolean; var _local2:int; lct = null; } public function getFrameSize():Rectangle{ var _local1:Rectangle = GIFDecoder.frameRect; _local1.x = (_local1.y = 0); _local1.width = width; _local1.height = height; return (_local1); } private function readColorTable(_arg1:int):Array{ var i:int; var j:int; var r:int; var g:int; var b:int; var ncolors = _arg1; var nbytes:int = (3 * ncolors); var tab:Array; var c:ByteArray = new ByteArray(); var n:int; try { inStream.readBytes(c, 0, nbytes); n = nbytes; } catch(e:Error) { }; if (n < nbytes){ status = STATUS_FORMAT_ERROR; } else { tab = new Array(0x0100); i = 0; j = 0; while (i < ncolors) { j = (j + 1); r = (c[j] & 0xFF); j = (j + 1); g = (c[j] & 0xFF); j = (j + 1); b = (c[j] & 0xFF); i = (i + 1); var _local3 = i; tab[_local3] = (((4278190080 | (r << 16)) | (g << 8)) | b); }; }; return (tab); } private function readImage():void{ ix = readShort(); iy = readShort(); iw = readShort(); ih = readShort(); var _local1:int = readSingleByte(); lctFlag = !(((_local1 & 128) == 0)); interlace = !(((_local1 & 64) == 0)); lctSize = (2 << (_local1 & 7)); if (lctFlag){ lct = readColorTable(lctSize); act = lct; } else { act = gct; if (bgIndex == transIndex){ bgColor = 0; }; }; var _local2:int; if (transparency){ _local2 = act[transIndex]; act[transIndex] = 0; }; if (act == null){ status = STATUS_FORMAT_ERROR; }; if (hasError()){ return; }; decodeImageData(); skip(); if (hasError()){ return; }; frameCount++; bitmap = new BitmapData(width, height); image = bitmap; transferPixels(); frames.push(new GIFFrame(bitmap, delay)); if (transparency){ act[transIndex] = _local2; }; resetFrame(); } private function transferPixels():void{ var _local6:int; var _local7:Array; var _local8:Number; var _local9:int; var _local10:int; var _local11:int; var _local12:int; var _local13:int; var _local14:int; var _local15:int; var _local1:Array = getPixels(bitmap); if (lastDispose > 0){ if (lastDispose == 3){ _local6 = (frameCount - 2); lastImage = ((_local6 > 0)) ? getFrame((_local6 - 1)).bitmapData : null; }; if (lastImage != null){ _local7 = getPixels(lastImage); _local1 = _local7.slice(); if (lastDispose == 2){ _local8 = (transparency) ? 0 : lastBgColor; image.fillRect(lastRect, _local8); }; }; }; var _local2 = 1; var _local3 = 8; var _local4:int; var _local5:int; while (_local5 < ih) { _local9 = _local5; if (interlace){ if (_local4 >= ih){ _local2++; switch (_local2){ case 2: _local4 = 4; break; case 3: _local4 = 2; _local3 = 4; break; case 4: _local4 = 1; _local3 = 2; break; }; }; _local9 = _local4; _local4 = (_local4 + _local3); }; _local9 = (_local9 + iy); if (_local9 < height){ _local10 = (_local9 * width); _local11 = (_local10 + ix); _local12 = (_local11 + iw); if ((_local10 + width) < _local12){ _local12 = (_local10 + width); }; _local13 = (_local5 * iw); while (_local11 < _local12) { var _temp1 = _local13; _local13 = (_local13 + 1); _local14 = (pixels[_temp1] & 0xFF); _local15 = act[_local14]; if (_local15 != 0){ _local1[_local11] = _local15; }; _local11++; }; }; _local5++; }; setPixels(_local1); } private function skip():void{ do { readBlock(); } while ((((blockSize > 0)) && (!(hasError())))); } private function readShort():int{ return ((readSingleByte() | (readSingleByte() << 8))); } private function hasError():Boolean{ return (!((status == STATUS_OK))); } private function readBlock():int{ var count:int; blockSize = readSingleByte(); var n:int; if (blockSize > 0){ try { count = 0; while (n < blockSize) { inStream.readBytes(block, n, (blockSize - n)); if ((blockSize - n) == -1){ break; }; n = (n + (blockSize - n)); }; } catch(e:Error) { }; if (n < blockSize){ status = STATUS_FORMAT_ERROR; }; }; return (n); } public function getFrameCount():int{ return (frameCount); } public function read(_arg1:ByteArray):int{ init(); if (_arg1 != null){ this.inStream = _arg1; readHeader(); if (!hasError()){ readContents(); if (frameCount < 0){ status = STATUS_FORMAT_ERROR; }; }; } else { status = STATUS_OPEN_ERROR; }; return (status); } public function get disposeValue():int{ return (dispose); } private function getPixels(_arg1:BitmapData):Array{ var _local6:int; var _local8:int; var _local2:Array = new Array(((4 * image.width) * image.height)); var _local3:int; var _local4:int = image.width; var _local5:int = image.height; var _local7:int; while (_local7 < _local5) { _local8 = 0; while (_local8 < _local4) { _local6 = _arg1.getPixel(_local7, _local8); var _temp1 = _local3; _local3 = (_local3 + 1); var _local9 = _temp1; _local2[_local9] = ((_local6 & 0xFF0000) >> 16); var _temp2 = _local3; _local3 = (_local3 + 1); var _local10 = _temp2; _local2[_local10] = ((_local6 & 0xFF00) >> 8); var _temp3 = _local3; _local3 = (_local3 + 1); var _local11 = _temp3; _local2[_local11] = (_local6 & 0xFF); _local8++; }; _local7++; }; return (_local2); } public function getImage():GIFFrame{ return (getFrame(0)); } private function readGraphicControlExt():void{ readSingleByte(); var _local1:int = readSingleByte(); dispose = ((_local1 & 28) >> 2); if (dispose == 0){ dispose = 1; }; transparency = !(((_local1 & 1) == 0)); delay = (readShort() * 10); transIndex = readSingleByte(); readSingleByte(); } private function setPixels(_arg1:Array):void{ var _local3:int; var _local7:int; var _local2:int; _arg1.position = 0; var _local4:int = image.width; var _local5:int = image.height; bitmap.lock(); var _local6:int; while (_local6 < _local5) { _local7 = 0; while (_local7 < _local4) { var _temp1 = _local2; _local2 = (_local2 + 1); _local3 = _arg1[int(_temp1)]; bitmap.setPixel32(_local7, _local6, _local3); _local7++; }; _local6++; }; bitmap.unlock(); } private function readSingleByte():int{ var curByte:int; try { curByte = inStream.readUnsignedByte(); } catch(e:Error) { status = STATUS_FORMAT_ERROR; }; return (curByte); } public function getFrame(_arg1:int):GIFFrame{ var _local2:GIFFrame; if ((((_arg1 >= 0)) && ((_arg1 < frameCount)))){ _local2 = frames[_arg1]; } else { throw (new RangeError("Wrong frame number passed")); }; return (_local2); } private function readHeader():void{ var _local1 = ""; var _local2:int; while (_local2 < 6) { _local1 = (_local1 + String.fromCharCode(readSingleByte())); _local2++; }; if (_local1.indexOf("GIF") != 0){ status = STATUS_FORMAT_ERROR; throw (new FileTypeError("Invalid file type")); }; readLSD(); if (((gctFlag) && (!(hasError())))){ gct = readColorTable(gctSize); bgColor = gct[bgIndex]; }; } private function readNetscapeExt():void{ var _local1:*; var _local2:*; do { readBlock(); if (block[0] == 1){ _local1 = (block[1] & 0xFF); _local2 = (block[2] & 0xFF); loopCount = ((_local2 << 8) | _local1); }; } while ((((blockSize > 0)) && (!(hasError())))); } public function getDelay(_arg1:int):int{ delay = -1; if ((((_arg1 >= 0)) && ((_arg1 < frameCount)))){ delay = frames[_arg1].delay; }; return (delay); } private function readContents():void{ var _local2:int; var _local3:String; var _local4:int; var _local1:Boolean; while (!(((_local1) || (hasError())))) { _local2 = readSingleByte(); switch (_local2){ case 44: readImage(); break; case 33: _local2 = readSingleByte(); switch (_local2){ case 249: readGraphicControlExt(); break; case 0xFF: readBlock(); _local3 = ""; _local4 = 0; while (_local4 < 11) { _local3 = (_local3 + block[int(_local4)]); _local4++; }; if (_local3 == "NETSCAPE2.0"){ readNetscapeExt(); } else { skip(); }; break; default: skip(); break; }; break; case 59: _local1 = true; break; case 0: break; default: status = STATUS_FORMAT_ERROR; break; }; }; } } }//package org.bytearray.gif.decoder
Section 126
//FileTypeError (org.bytearray.gif.errors.FileTypeError) package org.bytearray.gif.errors { public class FileTypeError extends Error { public function FileTypeError(_arg1:String){ super(_arg1); } } }//package org.bytearray.gif.errors
Section 127
//FileTypeEvent (org.bytearray.gif.events.FileTypeEvent) package org.bytearray.gif.events { import flash.events.*; public class FileTypeEvent extends Event { public static const INVALID:String = "invalid"; public function FileTypeEvent(_arg1:String){ super(_arg1, false, false); } } }//package org.bytearray.gif.events
Section 128
//FrameEvent (org.bytearray.gif.events.FrameEvent) package org.bytearray.gif.events { import flash.events.*; import org.bytearray.gif.frames.*; public class FrameEvent extends Event { public var frame:GIFFrame; public static const FRAME_RENDERED:String = "rendered"; public function FrameEvent(_arg1:String, _arg2:GIFFrame){ super(_arg1, false, false); frame = _arg2; } } }//package org.bytearray.gif.events
Section 129
//GIFPlayerEvent (org.bytearray.gif.events.GIFPlayerEvent) package org.bytearray.gif.events { import flash.events.*; import flash.geom.*; public class GIFPlayerEvent extends Event { public var rect:Rectangle; public static const COMPLETE:String = "complete"; public function GIFPlayerEvent(_arg1:String, _arg2:Rectangle){ super(_arg1, false, false); rect = _arg2; } } }//package org.bytearray.gif.events
Section 130
//TimeoutEvent (org.bytearray.gif.events.TimeoutEvent) package org.bytearray.gif.events { import flash.events.*; public class TimeoutEvent extends Event { public static const TIME_OUT:String = "timeout"; public function TimeoutEvent(_arg1:String){ super(_arg1, false, false); } } }//package org.bytearray.gif.events
Section 131
//GIFFrame (org.bytearray.gif.frames.GIFFrame) package org.bytearray.gif.frames { import flash.display.*; public class GIFFrame { public var bitmapData:BitmapData; public var delay:int; public function GIFFrame(_arg1:BitmapData, _arg2:int){ bitmapData = _arg1; delay = _arg2; } } }//package org.bytearray.gif.frames
Section 132
//GIFPlayer (org.bytearray.gif.player.GIFPlayer) package org.bytearray.gif.player { import flash.events.*; import flash.display.*; import flash.utils.*; import flash.net.*; import org.bytearray.gif.events.*; import org.bytearray.gif.frames.*; import org.bytearray.gif.decoder.*; import org.bytearray.gif.errors.*; import flash.errors.*; public class GIFPlayer extends Bitmap { private var myTimer:Timer; private var arrayLng:uint; private var gifDecoder:GIFDecoder; private var urlLoader:URLLoader; private var aFrames:Array; private var iIndex:int; private var auto:Boolean; private var iInc:int; private var _textRepresentation:String; public function GIFPlayer(_arg1:Boolean=true){ auto = _arg1; iIndex = (iInc = 0); myTimer = new Timer(0, 0); aFrames = new Array(); urlLoader = new URLLoader(); urlLoader.dataFormat = URLLoaderDataFormat.BINARY; urlLoader.addEventListener(Event.COMPLETE, onComplete); urlLoader.addEventListener(IOErrorEvent.IO_ERROR, onIOError); myTimer.addEventListener(TimerEvent.TIMER, update); gifDecoder = new GIFDecoder(); } public function stop():void{ if (myTimer.running){ myTimer.stop(); }; } private function onIOError(_arg1:IOErrorEvent):void{ dispatchEvent(_arg1); } private function update(_arg1:TimerEvent):void{ var _local2:int = aFrames[int((iIndex = (iInc++ % arrayLng)))].delay; _arg1.target.delay = ((_local2)>0) ? _local2 : 100; switch (gifDecoder.disposeValue){ case 1: if (!iIndex){ bitmapData = aFrames[0].bitmapData.clone(); }; bitmapData.draw(aFrames[iIndex].bitmapData); break; case 2: bitmapData = aFrames[iIndex].bitmapData; break; }; dispatchEvent(new FrameEvent(FrameEvent.FRAME_RENDERED, aFrames[iIndex])); } public function get totalFrames():int{ return (aFrames.length); } public function get loopCount():int{ return (gifDecoder.getLoopCount()); } public function getDelay(_arg1:int):int{ var _local2:int; if ((((_arg1 >= 1)) && ((_arg1 <= aFrames.length)))){ _local2 = aFrames[(_arg1 - 1)].delay; } else { throw (new RangeError(("Frame out of range, please specify a frame between 1 and " + aFrames.length))); }; return (_local2); } public function gotoAndPlay(_arg1:int):void{ if ((((_arg1 >= 1)) && ((_arg1 <= aFrames.length)))){ if (_arg1 == currentFrame){ return; }; iIndex = (iInc = int((int(_arg1) - 1))); switch (gifDecoder.disposeValue){ case 1: bitmapData = aFrames[0].bitmapData.clone(); bitmapData.draw(aFrames[concat(iInc)].bitmapData); break; case 2: bitmapData = aFrames[iInc].bitmapData; break; }; if (!myTimer.running){ myTimer.start(); }; } else { throw (new RangeError(("Frame out of range, please specify a frame between 1 and " + aFrames.length))); }; } private function concat(_arg1:int):int{ bitmapData.lock(); var _local2:int; while (_local2 < _arg1) { bitmapData.draw(aFrames[_local2].bitmapData); _local2++; }; bitmapData.unlock(); return (_local2); } public function get currentFrame():int{ return ((iIndex + 1)); } public function get autoPlay():Boolean{ return (auto); } public function gotoAndStop(_arg1:int):void{ if ((((_arg1 >= 1)) && ((_arg1 <= aFrames.length)))){ if (_arg1 == currentFrame){ return; }; iIndex = (iInc = int((int(_arg1) - 1))); switch (gifDecoder.disposeValue){ case 1: bitmapData = aFrames[0].bitmapData.clone(); bitmapData.draw(aFrames[concat(iInc)].bitmapData); break; case 2: bitmapData = aFrames[iInc].bitmapData; break; }; if (myTimer.running){ myTimer.stop(); }; } else { throw (new RangeError(("Frame out of range, please specify a frame between 1 and " + aFrames.length))); }; } public function dispose():void{ stop(); var _local1:int = aFrames.length; var _local2:int; while (_local2 < _local1) { aFrames[int(_local2)].bitmapData.dispose(); _local2++; }; } public function loadBytes(_arg1:ByteArray):void{ readStream(_arg1); } public function load(_arg1:URLRequest):void{ stop(); urlLoader.load(_arg1); } override public function toString():String{ return ((_textRepresentation) ? _textRepresentation : super.toString()); } public function get frames():Array{ return (aFrames); } public function set textRepresentation(_arg1:String):void{ _textRepresentation = _arg1; } private function readStream(_arg1:ByteArray):void{ var lng:int; var i:int; var pBytes = _arg1; var gifStream:ByteArray = pBytes; aFrames = new Array(); iInc = 0; try { gifDecoder.read(gifStream); lng = gifDecoder.getFrameCount(); i = 0; while (i < lng) { aFrames[int(i)] = gifDecoder.getFrame(i); i = (i + 1); }; arrayLng = aFrames.length; if (auto){ play(); } else { gotoAndStop(1); }; dispatchEvent(new GIFPlayerEvent(GIFPlayerEvent.COMPLETE, aFrames[0].bitmapData.rect)); } catch(e:ScriptTimeoutError) { dispatchEvent(new TimeoutEvent(TimeoutEvent.TIME_OUT)); } catch(e:FileTypeError) { dispatchEvent(new FileTypeEvent(FileTypeEvent.INVALID)); } catch(e:Error) { throw (new Error(("An unknown error occured, make sure the GIF file contains at least one frame\nNumber of frames : " + aFrames.length))); }; } public function getFrame(_arg1:int):GIFFrame{ var _local2:GIFFrame; if ((((_arg1 >= 1)) && ((_arg1 <= aFrames.length)))){ _local2 = aFrames[(_arg1 - 1)]; } else { throw (new RangeError(("Frame out of range, please specify a frame between 1 and " + aFrames.length))); }; return (_local2); } private function onComplete(_arg1:Event):void{ readStream(_arg1.target.data); } public function play():void{ if (aFrames.length > 0){ if (!myTimer.running){ myTimer.start(); }; } else { throw (new Error("Nothing to play")); }; } } }//package org.bytearray.gif.player
Section 133
//Logger (org.osflash.thunderbolt.Logger) package org.osflash.thunderbolt { import flash.utils.*; import flash.system.*; import flash.external.*; public class Logger { public static const WARN:String = "warn"; private static const AUTHOR:String = "Jens Krause [www.websector.de]"; public static const FIELD_SEPERATOR:String = " :: "; public static const LOG:String = "log"; public static const INFO:String = "info"; private static const VERSION:String = "2.2"; private static const GROUP_END:String = "groupEnd"; private static const GROUP_START:String = "group"; public static const ERROR:String = "error"; private static const MAX_DEPTH:int = 0xFF; public static var includeTime:Boolean = true; private static var _firstRun:Boolean = true; private static var _hide:Boolean = false; private static var _stopLog:Boolean = false; private static var _firebug:Boolean = false; private static var _depth:int; public static var showCaller:Boolean = true; private static var _logLevel:String; public static function set hide(_arg1:Boolean):void{ _hide = _arg1; } public static function about():void{ var _local1 = (((("+++ Welcome to ThunderBolt AS3 | VERSION: " + Logger.VERSION) + " | AUTHOR: ") + Logger.AUTHOR) + " | Happy logging +++"); Logger.info(_local1); } public static function error(_arg1:String=null, ... _args):void{ Logger.log(Logger.ERROR, _arg1, _args); } public static function warn(_arg1:String=null, ... _args):void{ Logger.log(Logger.WARN, _arg1, _args); } private static function getCurrentTime():String{ var _local1:Date = new Date(); var _local2:String = (((((((("time " + timeToValidString(_local1.getHours())) + ":") + timeToValidString(_local1.getMinutes())) + ":") + timeToValidString(_local1.getSeconds())) + ".") + timeToValidString(_local1.getMilliseconds())) + FIELD_SEPERATOR); return (_local2); } private static function logObject(_arg1, _arg2:String=null):void{ var _local3:String; var _local4:XML; var _local5:String; var _local6:String; var _local7:String; var _local8:int; var _local9:int; var _local10:XMLList; var _local11:XML; var _local12:String; var _local13:String; var _local14:String; var _local15:*; if (_depth < Logger.MAX_DEPTH){ _depth++; _local3 = ((_arg2) || ("")); _local4 = describeType(_arg1); _local5 = _local4.@name; if (primitiveType(_local5)){ _local6 = (_local3.length) ? ((((("[" + _local5) + "] ") + _local3) + " = ") + _arg1) : ((("[" + _local5) + "] ") + _arg1); Logger.call(_local6); } else { if (_local5 == "Object"){ Logger.callGroupAction(GROUP_START, ("[Object] " + _local3)); for (_local7 in _arg1) { logObject(_arg1[_local7], _local7); }; Logger.callGroupAction(GROUP_END); } else { if (_local5 == "Array"){ Logger.callGroupAction(GROUP_START, ("[Array] " + _local3)); _local8 = 0; _local9 = _arg1.length; while (_local8 < _local9) { logObject(_arg1[_local8]); _local8++; }; Logger.callGroupAction(GROUP_END); } else { _local10 = _local4..accessor; if (_local10.length()){ for each (_local11 in _local10) { _local12 = _local11.@name; _local13 = _local11.@type; _local14 = _local11.@access; if (((_local14) && (!((_local14 == "writeonly"))))){ _local15 = _arg1[_local12]; Logger.logObject(_local15, _local12); }; }; } else { Logger.logObject(_arg1, _local5); }; }; }; }; } else { if (!_stopLog){ Logger.call((("STOP LOGGING: More than " + _depth) + " nested objects or properties.")); _stopLog = true; }; }; } public static function info(_arg1:String=null, ... _args):void{ Logger.log(Logger.INFO, _arg1, _args); } public static function set console(_arg1:Boolean):void{ _firstRun = false; _firebug = !(_arg1); } private static function primitiveType(_arg1:String):Boolean{ var _local2:Boolean; switch (_arg1){ case "Boolean": case "void": case "int": case "uint": case "Number": case "String": case "undefined": case "null": _local2 = true; break; default: _local2 = false; }; return (_local2); } public static function debug(_arg1:String=null, ... _args):void{ Logger.log(Logger.LOG, _arg1, _args); } private static function stackDataFromStackTrace(_arg1:String):StackData{ var _local2:Array = ((_arg1.match(/^\tat (?:(.+)::)?(.+)\/(.+)\(\)\[(?:(.+)\:(\d+))?\]$/)) || (new Array())); var _local3:StackData = new StackData(); _local3.packageName = ((_local2[1]) || ("")); _local3.className = ((_local2[2]) || ("")); _local3.methodName = ((_local2[3]) || ("")); _local3.fileName = ((_local2[4]) || ("")); _local3.lineNumber = ((int(_local2[5])) || (0)); return (_local3); } private static function call(_arg1:String=""):void{ if (_firebug){ ExternalInterface.call(("console." + _logLevel), _arg1); } else { trace(((_logLevel + " ") + _arg1)); }; } public static function memorySnapshot():String{ var _local1:uint = System.totalMemory; var _local2 = (((("Memory Snapshot: " + (Math.round((((_local1 / 0x0400) / 0x0400) * 100)) / 100)) + " MB (") + Math.round((_local1 / 0x0400))) + " kb)"); return (_local2); } public static function log(_arg1:String, _arg2:String="", _arg3:Array=null):void{ var _local4:String; var _local5:Boolean; var _local6:int; var _local7:int; if (!_hide){ if (_firstRun){ _local5 = (((Capabilities.playerType == "ActiveX")) || ((Capabilities.playerType == "PlugIn"))); trace(("isBrowser " + _local5)); if (((_local5) && (ExternalInterface.available))){ if (ExternalInterface.call("function(){ return typeof window.console == 'object' && typeof console.firebug == 'string'}")){ _firebug = true; }; }; _firstRun = false; }; _depth = 0; _logLevel = _arg1; _local4 = ""; if (includeTime){ _local4 = (_local4 + getCurrentTime()); }; if (showCaller){ _local4 = (_local4 + logCaller()); }; _local4 = (_local4 + _arg2); Logger.call(_local4); if (_arg3 != null){ _local6 = 0; _local7 = _arg3.length; _local6 = 0; while (_local6 < _local7) { Logger.logObject(_arg3[_local6]); _local6++; }; }; }; } private static function timeToValidString(_arg1:Number):String{ return (((_arg1 > 9)) ? _arg1.toString() : ("0" + _arg1.toString())); } private static function logCaller():String{ var debugError:Error; var errorObject:Object; var stackTrace:String; var stacks:Array; var stackData:StackData; var message = ""; try { errorObject.halli = "galli"; } catch(error:Error) { debugError = new Error(); } finally { stackTrace = debugError.getStackTrace(); if (stackTrace != null){ stacks = stackTrace.split("\n"); if (stacks != null){ if (stacks.length >= 5){ stackData = Logger.stackDataFromStackTrace(stacks[4]); }; if ((((stackData.className == "AbstractTarget")) && ((stacks.length >= 9)))){ stackData = Logger.stackDataFromStackTrace(stacks[8]); }; if (stackData != null){ message = (message + ((stackData.packageName)!="") ? (stackData.packageName + ".") : stackData.packageName); message = (message + stackData.className); if (stackData.lineNumber > 0){ message = (message + (((" [" + stackData.lineNumber) + "]") + Logger.FIELD_SEPERATOR)); }; }; }; }; }; return (message); } private static function callGroupAction(_arg1:String, _arg2:String=""):void{ if (_firebug){ if (_arg1 == GROUP_START){ ExternalInterface.call("console.group", _arg2); } else { if (_arg1 == GROUP_END){ ExternalInterface.call("console.groupEnd"); } else { ExternalInterface.call(("console." + Logger.ERROR), "group type has not defined"); }; }; } else { if (_arg1 == GROUP_START){ trace(((((_logLevel + ".") + GROUP_START) + " ") + _arg2)); } else { if (_arg1 == GROUP_END){ trace(((((_logLevel + ".") + GROUP_END) + " ") + _arg2)); } else { trace((ERROR + "group type has not defined")); }; }; }; } } }//package org.osflash.thunderbolt class StackData { public var className:String; public var fileName:String; public var packageName:String; public var methodName:String; public var lineNumber:int; private function StackData(){ } public function toString():String{ var _local1:String = ((((((((("packageName " + packageName) + " // className ") + className) + " // methodName ") + methodName) + " // fileName ") + fileName) + "// lineNumber ") + lineNumber); return (_local1); } }
Section 134
//MechBunny (MechBunny) package { import com.conceptualideas.videoplayer.core.bootloader.*; import com.conceptualideas.videoplayer.*; import com.conceptualideas.videoplayer.modules.advertisement.*; public class MechBunny extends CIVideoPlayer { public function MechBunny():void{ ModuleRepo.getInstance().add(HoverAd, ClickDirect); } } }//package

Library Items

Symbol 1 Bitmap {com.conceptualideas.videoplayer.modules.advertisement.HoverAd_closeButtonClass}
Symbol 2 BinaryData {com.conceptualideas.utils.JS_CIDimmer}
Symbol 3 Font {com.conceptualideas.videoplayer.utils.AssetManager_ARIAL}
Symbol 4 BinaryData {com.conceptualideas.utils.JS_MouseWheelManager}
Symbol 5 MovieClip {com.conceptualideas.videoplayer.CIVideoPlayer_loadingClass}
Symbol 6 BinaryData {com.conceptualideas.videoplayer.CIVideoPlayer_loadingClass_dataClass}

Special Tags

FileAttributes (69)Timeline Frame 1Access network only, Metadata present, AS3.
SWFMetaData (77)Timeline Frame 1458 bytes "<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'><rdf:Description rdf:about='' xmlns ..."
ScriptLimits (65)Timeline Frame 1MaxRecursionDepth: 1000, ScriptTimeout: 60 seconds
SerialNumber (41)Timeline Frame 1

Labels

"MechBunny"Frame 1




http://swfchan.com/34/169087/info.shtml
Created: 18/10 -2018 05:12:54 Last modified: 18/10 -2018 05:12:54 Server time: 06/05 -2024 22:54:19