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

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

Player.swf

This is the info page for
Flash #83059

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


Text
Title Text

Some description here.

Related Video Title

Related Video Description

replay

Check out these related videos

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

00:00

00:00

ActionScript [AS3]

Section 1
//AbstractView (com.jeroenwijering.events.AbstractView) package com.jeroenwijering.events { import flash.display.*; import flash.events.*; public class AbstractView extends EventDispatcher { public function loadPlugin(_arg1:String, _arg2:String=null):Boolean{ return (true); } public function sendEvent(_arg1:String, _arg2:Object=undefined):void{ } public function get config():Object{ return (new Object()); } public function get skin():MovieClip{ return (new MovieClip()); } public function getPlugin(_arg1:String):Object{ return ({}); } public function getPluginConfig(_arg1:Object):Object{ return ({}); } public function addControllerListener(_arg1:String, _arg2:Function):void{ } public function get playlist():Array{ return (new Array()); } public function removeControllerListener(_arg1:String, _arg2:Function):void{ } public function removeModelListener(_arg1:String, _arg2:Function):void{ } public function addViewListener(_arg1:String, _arg2:Function):void{ } public function addModelListener(_arg1:String, _arg2:Function):void{ } public function removeViewListener(_arg1:String, _arg2:Function):void{ } } }//package com.jeroenwijering.events
Section 2
//ControllerEvent (com.jeroenwijering.events.ControllerEvent) package com.jeroenwijering.events { import flash.events.*; public class ControllerEvent extends Event { private var _data:Object; public static var PLAYLIST:String = "PLAYLIST"; public static var ERROR:String = "ERROR"; public static var STOP:String = "STOP"; public static var ITEM:String = "ITEM"; public static var PLAY:String = "PLAY"; public static var SEEK:String = "SEEK"; public static var MUTE:String = "MUTE"; public static var VOLUME:String = "VOLUME"; public static var RESIZE:String = "RESIZE"; public function ControllerEvent(_arg1:String, _arg2:Object=undefined, _arg3:Boolean=false, _arg4:Boolean=false):void{ super(_arg1, _arg3, _arg4); _data = _arg2; } public function get data():Object{ return (_data); } } }//package com.jeroenwijering.events
Section 3
//ModelEvent (com.jeroenwijering.events.ModelEvent) package com.jeroenwijering.events { import flash.events.*; public class ModelEvent extends Event { private var _data:Object; public static var BUFFER:String = "BUFFER"; public static var LOADED:String = "LOADED"; public static var ERROR:String = "ERROR"; public static var META:String = "META"; public static var TIME:String = "TIME"; public static var STATE:String = "STATE"; public function ModelEvent(_arg1:String, _arg2:Object=undefined, _arg3:Boolean=false, _arg4:Boolean=false):void{ super(_arg1, _arg3, _arg4); _data = _arg2; } public function get data():Object{ return (_data); } } }//package com.jeroenwijering.events
Section 4
//ModelStates (com.jeroenwijering.events.ModelStates) package com.jeroenwijering.events { public class ModelStates { public static var BUFFERING:String = "BUFFERING"; public static var PAUSED:String = "PAUSED"; public static var COMPLETED:String = "COMPLETED"; public static var IDLE:String = "IDLE"; public static var PLAYING:String = "PLAYING"; } }//package com.jeroenwijering.events
Section 5
//PlayerEvent (com.jeroenwijering.events.PlayerEvent) package com.jeroenwijering.events { import flash.events.*; public class PlayerEvent extends Event { public static var READY:String = "READY"; public function PlayerEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false):void{ super(_arg1, _arg2, _arg3); } } }//package com.jeroenwijering.events
Section 6
//PluginInterface (com.jeroenwijering.events.PluginInterface) package com.jeroenwijering.events { public interface PluginInterface { function initializePlugin(_arg1:AbstractView):void; } }//package com.jeroenwijering.events
Section 7
//SPLoaderEvent (com.jeroenwijering.events.SPLoaderEvent) package com.jeroenwijering.events { import flash.events.*; public class SPLoaderEvent extends Event { public static var PLUGINS:String = "PLUGINS"; public static var SKIN:String = "SKIN"; public function SPLoaderEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false):void{ super(_arg1, _arg2, _arg3); } } }//package com.jeroenwijering.events
Section 8
//ViewEvent (com.jeroenwijering.events.ViewEvent) package com.jeroenwijering.events { import flash.events.*; public class ViewEvent extends Event { private var _data:Object; public static var STOP:String = "STOP"; public static var NEXT:String = "NEXT"; public static var ITEM:String = "ITEM"; public static var MUTE:String = "MUTE"; public static var VOLUME:String = "VOLUME"; public static var FULLSCREEN:String = "FULLSCREEN"; public static var TRACE:String = "TRACE"; public static var LOAD:String = "LOAD"; public static var PREV:String = "PREV"; public static var PLAY:String = "PLAY"; public static var REDRAW:String = "REDRAW"; public static var SEEK:String = "SEEK"; public static var LINK:String = "LINK"; public function ViewEvent(_arg1:String, _arg2:Object=undefined, _arg3:Boolean=false, _arg4:Boolean=false):void{ super(_arg1, _arg3, _arg4); _data = _arg2; } public function get data():Object{ return (_data); } } }//package com.jeroenwijering.events
Section 9
//AbstractModel (com.jeroenwijering.models.AbstractModel) package com.jeroenwijering.models { import com.jeroenwijering.player.*; public class AbstractModel { protected var model:Model; protected var position:Number; protected var item:Object; public function AbstractModel(_arg1:Model):void{ model = _arg1; } public function volume(_arg1:Number):void{ } public function stop():void{ } public function load(_arg1:Object):void{ item = _arg1; position = 0; } public function play():void{ } public function pause():void{ } public function seek(_arg1:Number):void{ position = _arg1; } } }//package com.jeroenwijering.models
Section 10
//HTTPModel (com.jeroenwijering.models.HTTPModel) package com.jeroenwijering.models { import com.jeroenwijering.events.*; import com.jeroenwijering.player.*; import flash.events.*; import flash.media.*; import com.tubemogul.inplay.*; import flash.utils.*; import flash.net.*; import com.jeroenwijering.utils.*; public class HTTPModel extends AbstractModel { private var stream:NetStream_IP; protected var interval:Number; protected var keyframes:Object; protected var meta:Boolean; protected var byteoffset:Number; protected var connection:NetConnection; protected var loadtimer:Number; protected var timeoffset:Number; protected var loadinterval:Number; protected var transform:SoundTransform; protected var iterator:Number; protected var mp4:Boolean; protected var video:Video; public function HTTPModel(_arg1:Model):void{ super(_arg1); connection = new NetConnection(); connection.connect(null); stream = new NetStream_IP({connection:connection, videoID:(("" + model.config["mediaid"]) + ""), publisherID:model.config["username"], displayName:model.config["title"]}); stream.addEventListener(NetStatusEvent.NET_STATUS, statusHandler); stream.addEventListener(IOErrorEvent.IO_ERROR, errorHandler); stream.addEventListener(AsyncErrorEvent.ASYNC_ERROR, errorHandler); stream.bufferTime = model.config["bufferlength"]; stream.checkPolicyFile = true; stream.add_client(new NetClient(this)); video = new Video(320, 240); video.smoothing = model.config["smoothing"]; video.attachNetStream(stream); transform = new SoundTransform(); byteoffset = (timeoffset = 0); } override public function stop():void{ if ((stream.bytesLoaded + byteoffset) < stream.bytesTotal){ stream.close(); } else { stream.pause(); }; clearInterval(interval); clearInterval(loadinterval); byteoffset = (timeoffset = (position = 0)); keyframes = undefined; meta = false; model.sendEvent(ModelEvent.STATE, {newstate:ModelStates.IDLE}); } protected function loadHandler():void{ var _local1:Number = stream.bytesLoaded; var _local2:Number = (stream.bytesTotal + byteoffset); var _local3:Number = byteoffset; model.sendEvent(ModelEvent.LOADED, {loaded:_local1, total:_local2, offset:_local3}); if (((((_local1 + _local3) >= _local2)) && ((_local1 > 0)))){ clearInterval(loadinterval); }; if (!loadtimer){ loadtimer = setTimeout(loadTimeout, 3000); }; } protected function getOffset(_arg1:Number, _arg2:Boolean=false):Number{ if (!keyframes){ return (0); }; var _local3:Number = 0; while (_local3 < (keyframes.times.length - 1)) { if ((((keyframes.times[_local3] <= _arg1)) && ((keyframes.times[(_local3 + 1)] >= _arg1)))){ break; }; _local3++; }; if (_arg2 == true){ return (keyframes.times[_local3]); }; return (keyframes.filepositions[_local3]); } override public function pause():void{ stream.pause(); clearInterval(interval); model.sendEvent(ModelEvent.STATE, {newstate:ModelStates.PAUSED}); } 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, {newstate:ModelStates.BUFFERING}); }; } else { if ((((_local1 > 95)) && (!((model.config["state"] == ModelStates.PLAYING))))){ model.sendEvent(ModelEvent.STATE, {newstate:ModelStates.PLAYING}); }; }; if (position < item["duration"]){ model.sendEvent(ModelEvent.TIME, {position:position, duration:item["duration"]}); } else { if ((((item["duration"] > 0)) && (model.config["respectduration"]))){ pause(); model.sendEvent(ModelEvent.STATE, {newstate:ModelStates.COMPLETED}); }; }; } override public function volume(_arg1:Number):void{ transform.volume = (_arg1 / 100); stream.soundTransform = transform; } override public function load(_arg1:Object):void{ item = _arg1; position = timeoffset; if ((stream.bytesLoaded + byteoffset) < stream.bytesTotal){ stream.close(); }; model.mediaHandler(video); stream.newStream({videoID:(("" + model.config["mediaid"]) + ""), publisherID:model.config["username"], displayName:model.config["title"]}); stream.play(getURL()); iterator = 0; clearInterval(interval); interval = setInterval(positionInterval, 100); clearInterval(loadinterval); loadinterval = setInterval(loadHandler, 200); if ((model.config["mute"] == true)){ volume(0); } else { volume(model.config["volume"]); }; model.sendEvent(ModelEvent.BUFFER, {percentage:0}); model.sendEvent(ModelEvent.STATE, {newstate:ModelStates.BUFFERING}); } protected function errorHandler(_arg1:ErrorEvent):void{ stop(); model.sendEvent(ModelEvent.ERROR, {message:_arg1.text}); } protected function loadTimeout():void{ var _local1:Object = new Object(); _local1["bandwidth"] = Math.round((((stream.bytesLoaded / 0x0400) / 3) * 8)); if (item["duration"]){ _local1["bitrate"] = Math.round((((stream.bytesTotal / 0x0400) * 8) / item["duration"])); }; model.sendEvent("META", _local1); } public function onData(_arg1:Object):void{ if (_arg1.width){ video.width = _arg1.width; video.height = _arg1.height; }; if ((((_arg1["type"] == "metadata")) && (!(meta)))){ meta = true; if (_arg1.seekpoints){ mp4 = true; keyframes = convertSeekpoints(_arg1.seekpoints); } else { mp4 = false; keyframes = _arg1.keyframes; }; if (item["start"] > 0){ seek(item["start"]); }; }; model.sendEvent(ModelEvent.META, _arg1); } override public function play():void{ stream.resume(); interval = setInterval(positionInterval, 100); model.sendEvent(ModelEvent.STATE, {newstate:ModelStates.PLAYING}); } protected 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); } override public function seek(_arg1:Number):void{ var _local2:Number = getOffset(_arg1); clearInterval(interval); if ((((_local2 < byteoffset)) || ((_local2 >= (byteoffset + stream.bytesLoaded))))){ timeoffset = (position = getOffset(_arg1, true)); byteoffset = _local2; load(item); } else { position = _arg1; if (mp4){ stream.seek(getOffset((position - timeoffset), true)); } else { stream.seek(getOffset(position, true)); }; interval = setInterval(positionInterval, 100); model.sendEvent(ModelEvent.STATE, {newstate:ModelStates.PLAYING}); }; } protected function getURL():String{ var _local1:String = item["streamer"]; var _local2:Number = byteoffset; if (mp4){ _local2 = timeoffset; }; if (_local1.indexOf("?") > -1){ _local1 = (_local1 + ((("&file=" + item["file"]) + "&start=") + _local2)); } else { _local1 = (_local1 + ((("?file=" + item["file"]) + "&start=") + _local2)); }; if (model.config["token"]){ _local1 = (_local1 + ("&token=" + model.config["token"])); }; return (_local1); } protected function statusHandler(_arg1:NetStatusEvent):void{ switch (_arg1.info.code){ case "NetStream.Play.Stop": if (model.config["state"] != ModelStates.COMPLETED){ clearInterval(interval); model.sendEvent(ModelEvent.STATE, {newstate:ModelStates.COMPLETED}); }; break; case "NetStream.Play.StreamNotFound": stop(); model.sendEvent(ModelEvent.ERROR, {message:("Video not found: " + item["file"])}); break; }; model.sendEvent(ModelEvent.META, {info:_arg1.info.code}); } } }//package com.jeroenwijering.models
Section 11
//ImageModel (com.jeroenwijering.models.ImageModel) package com.jeroenwijering.models { import com.jeroenwijering.events.*; import flash.display.*; import com.jeroenwijering.player.*; import flash.events.*; import flash.utils.*; import flash.system.*; import flash.net.*; public class ImageModel extends AbstractModel { private var interval:Number; private var loader:Loader; public function ImageModel(_arg1:Model):void{ super(_arg1); loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loaderHandler); loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, progressHandler); loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, errorHandler); } private function errorHandler(_arg1:ErrorEvent):void{ stop(); model.sendEvent(ModelEvent.ERROR, {message:_arg1.text}); } override public function stop():void{ if (loader.contentLoaderInfo.bytesLoaded != loader.contentLoaderInfo.bytesTotal){ loader.close(); } else { loader.unload(); }; clearInterval(interval); position = 0; model.sendEvent(ModelEvent.STATE, {newstate:ModelStates.IDLE}); } override public function load(_arg1:Object):void{ item = _arg1; position = 0; loader.load(new URLRequest(item["file"]), new LoaderContext(true)); model.sendEvent(ModelEvent.STATE, {newstate:ModelStates.BUFFERING}); model.sendEvent(ModelEvent.BUFFER, {percentage:0}); } protected function positionInterval():void{ position = (Math.round(((position * 10) + 1)) / 10); if (position < item["duration"]){ model.sendEvent(ModelEvent.TIME, {position:position, duration:item["duration"]}); } else { if (item["duration"] > 0){ pause(); model.sendEvent(ModelEvent.STATE, {newstate:ModelStates.COMPLETED}); }; }; } override public function play():void{ model.sendEvent(ModelEvent.STATE, {newstate:ModelStates.PLAYING}); interval = setInterval(positionInterval, 100); } override public function pause():void{ clearInterval(interval); model.sendEvent(ModelEvent.STATE, {newstate:ModelStates.PAUSED}); } private function loaderHandler(_arg1:Event):void{ var evt = _arg1; model.mediaHandler(loader); try { Bitmap(loader.content).smoothing = true; } catch(err:Error) { }; model.sendEvent(ModelEvent.META, {height:evt.target.height, width:evt.target.width}); play(); } override public function seek(_arg1:Number):void{ clearInterval(interval); position = _arg1; play(); } private function progressHandler(_arg1:ProgressEvent):void{ var _local2:* = Math.round(((_arg1.bytesLoaded / _arg1.bytesTotal) * 100)); model.sendEvent(ModelEvent.BUFFER, {percentage:_local2}); } } }//package com.jeroenwijering.models
Section 12
//SoundModel (com.jeroenwijering.models.SoundModel) package com.jeroenwijering.models { import com.jeroenwijering.events.*; import com.jeroenwijering.player.*; import flash.events.*; import flash.media.*; import flash.utils.*; import flash.net.*; public class SoundModel extends AbstractModel { private var channel:SoundChannel; protected var interval:Number; private var sound:Sound; private var loadinterval; private var transform:SoundTransform; private var context:SoundLoaderContext; public function SoundModel(_arg1:Model):void{ super(_arg1); transform = new SoundTransform(); context = new SoundLoaderContext((model.config["bufferlength"] * 1000), true); } private function errorHandler(_arg1:ErrorEvent):void{ stop(); model.sendEvent(ModelEvent.ERROR, {message:_arg1.text}); } private function loadHandler():void{ var _local1:* = sound.bytesLoaded; var _local2:* = sound.bytesTotal; model.sendEvent(ModelEvent.LOADED, {loaded:_local1, total:_local2}); if (((((_local1 / _local2) > 0.1)) && ((item["duration"] == 0)))){ model.sendEvent(ModelEvent.META, {duration:(((sound.length / 1000) / _local1) * _local2)}); }; if ((((_local1 == _local2)) && ((_local1 > 0)))){ clearInterval(loadinterval); }; } override public function stop():void{ if (channel){ channel.stop(); }; try { sound.close(); } catch(err:Error) { }; clearInterval(loadinterval); clearInterval(interval); position = 0; model.sendEvent(ModelEvent.STATE, {newstate:ModelStates.IDLE}); } protected function positionInterval():void{ var _local1:Number; position = (Math.round((channel.position / 100)) / 10); if ((((sound.isBuffering == true)) && ((sound.bytesTotal > sound.bytesLoaded)))){ if (model.config["state"] != ModelStates.BUFFERING){ model.sendEvent(ModelEvent.STATE, {newstate:ModelStates.BUFFERING}); } else { _local1 = Math.floor(((sound.length / (channel.position + (model.config["bufferlength"] * 1000))) * 100)); model.sendEvent(ModelEvent.BUFFER, {percentage:_local1}); }; } else { if ((((model.config["state"] == ModelStates.BUFFERING)) && ((sound.isBuffering == false)))){ model.sendEvent(ModelEvent.STATE, {newstate:ModelStates.PLAYING}); }; }; if (position < item["duration"]){ model.sendEvent(ModelEvent.TIME, {position:position, duration:item["duration"]}); } else { if ((((item["duration"] > 0)) && (model.config["respectduration"]))){ pause(); model.sendEvent(ModelEvent.STATE, {newstate:ModelStates.COMPLETED}); }; }; } private function completeHandler(_arg1:Event):void{ clearInterval(interval); model.sendEvent(ModelEvent.STATE, {newstate:ModelStates.COMPLETED}); } private function id3Handler(_arg1:Event):void{ var id3:ID3Info; var obj:Object; var evt = _arg1; try { id3 = sound.id3; obj = {type:"id3", album:id3.album, artist:id3.artist, comment:id3.comment, genre:id3.genre, name:id3.songName, track:id3.track, year:id3.year}; model.sendEvent(ModelEvent.META, obj); } catch(err:Error) { }; } override public function play():void{ channel = sound.play((position * 1000), 0, transform); channel.addEventListener(Event.SOUND_COMPLETE, completeHandler); interval = setInterval(positionInterval, 100); model.sendEvent(ModelEvent.STATE, {newstate:ModelStates.PLAYING}); } override public function load(_arg1:Object):void{ item = _arg1; position = 0; sound = new Sound(); sound.addEventListener(IOErrorEvent.IO_ERROR, errorHandler); sound.addEventListener(Event.ID3, id3Handler); sound.load(new URLRequest(item["file"]), context); play(); if (item["start"] > 0){ seek(item["start"]); }; loadinterval = setInterval(loadHandler, 200); if ((model.config["mute"] == true)){ volume(0); } else { volume(model.config["volume"]); }; model.sendEvent(ModelEvent.STATE, {newstate:ModelStates.BUFFERING}); model.sendEvent(ModelEvent.BUFFER, {percentage:0}); } override public function volume(_arg1:Number):void{ transform.volume = (_arg1 / 100); if (channel){ channel.soundTransform = transform; }; } override public function pause():void{ channel.stop(); clearInterval(interval); model.sendEvent(ModelEvent.STATE, {newstate:ModelStates.PAUSED}); } override public function seek(_arg1:Number):void{ position = _arg1; clearInterval(interval); channel.stop(); play(); } } }//package com.jeroenwijering.models
Section 13
//VideoModel (com.jeroenwijering.models.VideoModel) package com.jeroenwijering.models { import com.jeroenwijering.events.*; import com.jeroenwijering.player.*; import flash.events.*; import flash.media.*; import com.tubemogul.inplay.*; import flash.utils.*; import flash.net.*; import com.jeroenwijering.utils.*; public class VideoModel extends AbstractModel { private var stream:NetStream_IP; protected var interval:Number; protected var connection:NetConnection; protected var loadtimer:Number; protected var loadinterval:Number; protected var transform:SoundTransform; protected var video:Video; public function VideoModel(_arg1:Model):void{ super(_arg1); connection = new NetConnection(); connection.connect(null); stream = new NetStream_IP({connection:connection, videoID:(("" + model.config["mediaid"]) + ""), publisherID:model.config["username"], displayName:model.config["title"]}); 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["bufferlength"]; stream.add_client(new NetClient(this)); video = new Video(320, 240); video.smoothing = model.config["smoothing"]; video.attachNetStream(stream); transform = new SoundTransform(); } override public function stop():void{ if (stream.bytesLoaded < stream.bytesTotal){ stream.close(); } else { stream.pause(); }; loadtimer = undefined; clearInterval(loadinterval); clearInterval(interval); position = 0; model.sendEvent(ModelEvent.STATE, {newstate:ModelStates.IDLE}); } protected function loadHandler():void{ var _local1:Number = stream.bytesLoaded; var _local2:Number = stream.bytesTotal; model.sendEvent(ModelEvent.LOADED, {loaded:_local1, total:_local2}); if ((((_local1 == _local2)) && ((_local1 > 0)))){ clearInterval(loadinterval); }; if (!loadtimer){ loadtimer = setTimeout(loadTimeout, 3000); }; } protected function positionInterval():void{ position = (Math.round((stream.time * 10)) / 10); 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, {newstate:ModelStates.BUFFERING}); }; } else { if ((((_local1 > 95)) && (!((model.config["state"] == ModelStates.PLAYING))))){ model.sendEvent(ModelEvent.STATE, {newstate:ModelStates.PLAYING}); }; }; if (position < item["duration"]){ model.sendEvent(ModelEvent.TIME, {position:position, duration:item["duration"]}); } else { if ((((item["duration"] > 0)) && (model.config["respectduration"]))){ pause(); model.sendEvent(ModelEvent.STATE, {newstate:ModelStates.COMPLETED}); }; }; } override public function volume(_arg1:Number):void{ transform.volume = (_arg1 / 100); stream.soundTransform = transform; } protected function loadTimeout():void{ var _local1:Object = new Object(); _local1["bandwidth"] = Math.round((((stream.bytesLoaded / 0x0400) / 3) * 8)); if (item["duration"]){ _local1["bitrate"] = Math.round((((stream.bytesTotal / 0x0400) * 8) / item["duration"])); }; model.sendEvent("META", _local1); } protected function errorHandler(_arg1:ErrorEvent):void{ stop(); model.sendEvent(ModelEvent.ERROR, {message:_arg1.text}); } override public function load(_arg1:Object):void{ item = _arg1; position = 0; model.mediaHandler(video); stream.newStream({videoID:(("" + model.config["mediaid"]) + ""), publisherID:model.config["username"], displayName:model.config["title"]}); stream.play(item["file"]); interval = setInterval(positionInterval, 100); loadinterval = setInterval(loadHandler, 200); if ((model.config["mute"] == true)){ volume(0); } else { volume(model.config["volume"]); }; model.sendEvent(ModelEvent.BUFFER, {percentage:0}); model.sendEvent(ModelEvent.STATE, {newstate:ModelStates.BUFFERING}); } public function onData(_arg1:Object):void{ if (_arg1.width){ video.width = _arg1.width; video.height = _arg1.height; }; model.sendEvent(ModelEvent.META, _arg1); } override public function play():void{ stream.resume(); interval = setInterval(positionInterval, 100); model.sendEvent(ModelEvent.STATE, {newstate:ModelStates.PLAYING}); } override public function pause():void{ stream.pause(); clearInterval(interval); model.sendEvent(ModelEvent.STATE, {newstate:ModelStates.PAUSED}); } override public function seek(_arg1:Number):void{ position = _arg1; clearInterval(interval); stream.seek(position); play(); } protected function statusHandler(_arg1:NetStatusEvent):void{ switch (_arg1.info.code){ case "NetStream.Play.Stop": clearInterval(interval); model.sendEvent(ModelEvent.STATE, {newstate:ModelStates.COMPLETED}); break; case "NetStream.Play.StreamNotFound": stop(); model.sendEvent(ModelEvent.ERROR, {message:("Video not found: " + item["file"])}); break; default: model.sendEvent(ModelEvent.META, {info:_arg1.info.code}); break; }; } } }//package com.jeroenwijering.models
Section 14
//ASXParser (com.jeroenwijering.parsers.ASXParser) package com.jeroenwijering.parsers { import com.jeroenwijering.utils.*; public class ASXParser { public static function parse(_arg1:XML):Array{ var _local3:XML; var _local2:Array = new Array(); for each (_local3 in _arg1.children()) { if (_local3.localName() == "entry"){ _local2.push(ASXParser.parseItem(_local3)); }; }; return (_local2); } public static function parseItem(_arg1:XML):Object{ var _local3:XML; var _local2:Object = new Object(); for each (_local3 in _arg1.children()) { if (!_local3.localName()){ break; }; switch (_local3.localName().toLowerCase()){ case "ref": _local2["file"] = _local3.@href.toString(); break; case "title": _local2["title"] = _local3.text().toString(); break; case "moreinfo": _local2["link"] = _local3.@href.toString(); break; case "abstract": _local2["description"] = _local3.text().toString(); break; case "author": _local2["author"] = _local3.text().toString(); break; case "duration": _local2["duration"] = Strings.seconds(_local3.@value.toString()); break; case "starttime": _local2["start"] = Strings.seconds(_local3.@value.toString()); break; case "param": _local2[_local3.@name] = _local3.@value.toString(); break; }; }; _local2 = JWParser.parseEntry(_arg1, _local2); return (_local2); } } }//package com.jeroenwijering.parsers
Section 15
//ATOMParser (com.jeroenwijering.parsers.ATOMParser) package com.jeroenwijering.parsers { public class ATOMParser { public static function parse(_arg1:XML):Array{ var _local3:XML; var _local2:Array = new Array(); for each (_local3 in _arg1.children()) { if (_local3.localName() == "entry"){ _local2.push(ATOMParser.parseItem(_local3)); }; }; return (_local2); } public static function parseItem(_arg1:XML):Object{ var _local3:XML; var _local2:* = new Object(); for each (_local3 in _arg1.children()) { switch (_local3.localName().toLowerCase()){ case "author": _local2["author"] = _local3.children()[0].text().toString(); break; case "title": _local2["title"] = _local3.text().toString(); break; case "summary": _local2["description"] = _local3.text().toString(); break; case "link": if (_local3.@rel == "alternate"){ _local2["link"] = _local3.@href.toString(); } else { if (_local3.@rel == "enclosure"){ _local2["file"] = _local3.@href.toString(); }; }; break; case "published": _local2["date"] = _local3.text().toString(); break; }; }; _local2 = MediaParser.parseGroup(_arg1, _local2); _local2 = JWParser.parseEntry(_arg1, _local2); return (_local2); } } }//package com.jeroenwijering.parsers
Section 16
//ItunesParser (com.jeroenwijering.parsers.ItunesParser) package com.jeroenwijering.parsers { import com.jeroenwijering.utils.*; public class ItunesParser { private static var PREFIX = "itunes"; public static function parseEntry(_arg1:XML, _arg2:Object):Object{ var _local3:XML; for each (_local3 in _arg1.children()) { if (_local3.namespace().prefix == ItunesParser.PREFIX){ switch (_local3.localName().toLowerCase()){ case "author": _arg2["author"] = _local3.text().toString(); break; case "duration": _arg2["duration"] = Strings.seconds(_local3.text().toString()); break; case "summary": _arg2["description"] = _local3.text().toString(); break; case "keywords": _arg2["tags"] = _local3.text().toString(); break; }; }; }; return (_arg2); } } }//package com.jeroenwijering.parsers
Section 17
//JWParser (com.jeroenwijering.parsers.JWParser) package com.jeroenwijering.parsers { import com.jeroenwijering.utils.*; public class JWParser { private static var PREFIX = "jwplayer"; public static function parseEntry(_arg1:XML, _arg2:Object):Object{ var _local3:XML; for each (_local3 in _arg1.children()) { if (_local3.namespace().prefix == JWParser.PREFIX){ _arg2[_local3.localName()] = Strings.serialize(_local3.text().toString()); }; }; return (_arg2); } } }//package com.jeroenwijering.parsers
Section 18
//MediaParser (com.jeroenwijering.parsers.MediaParser) package com.jeroenwijering.parsers { import com.jeroenwijering.utils.*; public class MediaParser { private static var PREFIX = "media"; public static function parseGroup(_arg1:XML, _arg2:Object):Object{ var _local3:XML; var _local4:Boolean; for each (_local3 in _arg1.children()) { if (_local3.namespace().prefix == MediaParser.PREFIX){ switch (_local3.localName().toLowerCase()){ case "content": if (!_local4){ _arg2["file"] = _local3.@url.toString(); }; if (_local3.@duration){ _arg2["duration"] = Strings.seconds(_local3.@duration.toString()); }; if (_local3.@start){ _arg2["start"] = Strings.seconds(_local3.@start.toString()); }; if (_local3.children().length() > 0){ _arg2 = MediaParser.parseGroup(_local3, _arg2); }; break; case "title": _arg2["title"] = _local3.text().toString(); break; case "description": _arg2["description"] = _local3.text().toString(); break; case "keywords": _arg2["tags"] = _local3.text().toString(); break; case "thumbnail": _arg2["image"] = _local3.@url.toString(); break; case "credit": _arg2["author"] = _local3.text().toString(); break; case "player": if (_local3.@url.indexOf("youtube.com") > 0){ _local4 = true; _arg2["file"] = _local3.@url.toString(); }; break; case "group": _arg2 = MediaParser.parseGroup(_local3, _arg2); break; }; }; }; return (_arg2); } } }//package com.jeroenwijering.parsers
Section 19
//RSSParser (com.jeroenwijering.parsers.RSSParser) package com.jeroenwijering.parsers { public class RSSParser { public static function parse(_arg1:XML):Array{ var _local3:XML; var _local4:XML; var _local2:Array = new Array(); for each (_local3 in _arg1.children()) { if (_local3.localName() == "channel"){ for each (_local4 in _local3.children()) { if (_local4.name() == "item"){ _local2.push(RSSParser.parseItem(_local4)); }; }; }; }; return (_local2); } public static function parseItem(_arg1:XML):Object{ var _local3:XML; var _local2:Object = new Object(); for each (_local3 in _arg1.children()) { switch (_local3.localName().toLowerCase()){ case "enclosure": _local2["file"] = _local3.@url.toString(); break; case "title": _local2["title"] = _local3.text().toString(); break; case "pubDate": _local2["date"] = _local3.text().toString(); break; case "description": _local2["description"] = _local3.text().toString(); break; case "link": _local2["link"] = _local3.text().toString(); break; case "category": if (_local2["tags"]){ _local2["tags"] = (_local2["tags"] + _local3.text().toString()); } else { _local2["tags"] = _local3.text().toString(); }; break; }; }; _local2 = ItunesParser.parseEntry(_arg1, _local2); _local2 = MediaParser.parseGroup(_arg1, _local2); _local2 = JWParser.parseEntry(_arg1, _local2); return (_local2); } } }//package com.jeroenwijering.parsers
Section 20
//SMILParser (com.jeroenwijering.parsers.SMILParser) package com.jeroenwijering.parsers { import com.jeroenwijering.utils.*; public class SMILParser { public static function parseAttributes(_arg1:Object, _arg2:Object):Object{ var _local4:String; var _local3:Number = 0; while (_local3 < _arg1.attributes().length()) { _local4 = _arg1.attributes()[_local3].name().toString(); switch (_local4){ case "begin": _arg2["start"] = Strings.seconds(_arg1.@begin.toString()); break; case "src": _arg2["file"] = _arg1.@src.toString(); break; case "dur": _arg2["duration"] = Strings.seconds(_arg1.@dur.toString()); break; case "alt": _arg2["description"] = _arg1.@alt.toString(); break; default: _arg2[_local4] = _arg1.attributes()[_local3].toString(); break; }; _local3++; }; return (_arg2); } public static function parse(_arg1:XML):Array{ var _local4:XML; var _local2:Array = new Array(); var _local3:XML = _arg1.children()[1].children()[0]; if (_local3.localName().toLowerCase() == "seq"){ for each (_local4 in _local3.children()) { _local2.push(SMILParser.parseSeq(_local4)); }; } else { _local2.push(SMILParser.parsePar(_local3)); }; return (_local2); } public static function parseSeq(_arg1:XML):Object{ var _local2:Object = new Object(); switch (_arg1.localName().toLowerCase()){ case "par": _local2 = SMILParser.parsePar(_arg1); break; case "img": case "video": case "audio": _local2 = SMILParser.parseAttributes(_arg1, _local2); break; default: break; }; return (_local2); } public static function parsePar(_arg1:XML):Object{ var _local3:XML; var _local2:Object = new Object(); for each (_local3 in _arg1.children()) { switch (_local3.localName().toLowerCase()){ case "anchor": _local2["link"] = _local3.@href.toString(); break; case "img": if (_local2["file"]){ _local2["image"] = _local3.@src.toString(); break; } else { _local2 = SMILParser.parseAttributes(_local3, _local2); }; break; case "video": case "audio": _local2 = SMILParser.parseAttributes(_local3, _local2); break; default: break; }; }; _local2 = JWParser.parseEntry(_arg1, _local2); return (_local2); } } }//package com.jeroenwijering.parsers
Section 21
//XSPFParser (com.jeroenwijering.parsers.XSPFParser) package com.jeroenwijering.parsers { import com.jeroenwijering.utils.*; public class XSPFParser { public static function parse(_arg1:XML):Array{ var _local3:XML; var _local4:XML; var _local2:Array = new Array(); for each (_local3 in _arg1.children()) { if (_local3.localName().toLowerCase() == "tracklist"){ for each (_local4 in _local3.children()) { _local2.push(XSPFParser.parseItem(_local4)); }; }; }; return (_local2); } public static function parseItem(_arg1:XML):Object{ var _local3:XML; var _local2:Object = new Object(); for each (_local3 in _arg1.children()) { if (!_local3.localName()){ break; }; switch (_local3.localName().toLowerCase()){ case "location": _local2["file"] = _local3.text().toString(); break; case "title": _local2["title"] = _local3.text().toString(); break; case "annotation": _local2["description"] = _local3.text().toString(); break; case "info": _local2["link"] = _local3.text().toString(); break; case "image": _local2["image"] = _local3.text().toString(); break; case "creator": _local2["author"] = _local3.text().toString(); break; case "duration": _local2["duration"] = Strings.seconds(_local3.text()); break; case "meta": _local2[_local3.@rel] = _local3.text().toString(); break; }; }; _local2 = JWParser.parseEntry(_arg1, _local2); return (_local2); } } }//package com.jeroenwijering.parsers
Section 22
//Controller (com.jeroenwijering.player.Controller) package com.jeroenwijering.player { import com.jeroenwijering.events.*; import flash.display.*; import flash.events.*; import flash.system.*; import flash.net.*; import com.jeroenwijering.utils.*; import com.jeroenwijering.parsers.*; import flash.geom.*; public class Controller extends EventDispatcher { private var config:Object; private var loader:URLLoader; private var EXTENSIONS:Object; public var playlist:Array; private var randomizer:Randomizer; private var view:View; private var model:Model; private var sploader:SPLoader; private var ELEMENTS:Object; private var skin:MovieClip; public function Controller(_arg1:Object, _arg2:MovieClip, _arg3:SPLoader):void{ EXTENSIONS = {3g2:"video", 3gp:"video", aac:"video", f4b:"video", f4p:"video", f4v:"video", flv:"video", gif:"image", jpg:"image", m4a:"video", m4v:"video", mov:"video", mp3:"sound", mp4:"video", png:"image", rbs:"sound", sdp:"video", swf:"image", vp6:"video"}; ELEMENTS = {author:undefined, date:undefined, description:undefined, duration:0, file:undefined, image:undefined, link:undefined, start:0, streamer:undefined, tags:undefined, title:undefined, type:undefined}; super(); config = _arg1; skin = _arg2; sploader = _arg3; loader = new URLLoader(); loader.addEventListener(Event.COMPLETE, loaderHandler); loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, errorHandler); loader.addEventListener(IOErrorEvent.IO_ERROR, errorHandler); } private function metaHandler(_arg1:ModelEvent):void{ if (((_arg1.data.duration) && ((playlist[config["item"]]["duration"] == 0)))){ playlist[config["item"]]["duration"] = _arg1.data.duration; }; if (_arg1.data.width){ playlist[config["item"]]["width"] = _arg1.data.width; playlist[config["item"]]["height"] = _arg1.data.height; }; } private function loaderHandler(_arg1:Event):void{ var dat:XML; var fmt:String; var evt = _arg1; try { dat = XML(evt.target.data); fmt = dat.localName().toLowerCase(); } catch(err:Error) { dispatchEvent(new ControllerEvent(ControllerEvent.ERROR, {message:"This playlist is not a valid XML file."})); return; }; switch (fmt){ case "rss": playlistHandler(RSSParser.parse(dat)); break; case "playlist": playlistHandler(XSPFParser.parse(dat)); break; case "asx": playlistHandler(ASXParser.parse(dat)); break; case "smil": playlistHandler(SMILParser.parse(dat)); break; case "feed": playlistHandler(ATOMParser.parse(dat)); break; default: dispatchEvent(new ControllerEvent(ControllerEvent.ERROR, {message:("Unknown playlist format: " + fmt)})); return; }; } public function closeMVC(_arg1:Model, _arg2:View):void{ model = _arg1; model.addEventListener(ModelEvent.META, metaHandler); model.addEventListener(ModelEvent.STATE, stateHandler); view = _arg2; view.addEventListener(ViewEvent.FULLSCREEN, fullscreenHandler); view.addEventListener(ViewEvent.ITEM, itemHandler); view.addEventListener(ViewEvent.LINK, linkHandler); view.addEventListener(ViewEvent.LOAD, loadHandler); view.addEventListener(ViewEvent.MUTE, muteHandler); view.addEventListener(ViewEvent.NEXT, nextHandler); view.addEventListener(ViewEvent.PLAY, playHandler); view.addEventListener(ViewEvent.PREV, prevHandler); view.addEventListener(ViewEvent.REDRAW, redrawHandler); view.addEventListener(ViewEvent.SEEK, seekHandler); view.addEventListener(ViewEvent.STOP, stopHandler); view.addEventListener(ViewEvent.VOLUME, volumeHandler); } private function loadHandler(_arg1:ViewEvent):void{ var _local3:String; var _local4:Array; var _local5:Object; if (config["state"] != "IDLE"){ stopHandler(); }; var _local2:Object = new Object(); if (typeof(_arg1.data.object) == "array"){ playlistHandler(_arg1.data.object); } else { if (typeof(_arg1.data.object) == "string"){ _local2["file"] = _arg1.data.object; } else { if (_arg1.data.object["file"]){ for (_local3 in ELEMENTS) { if (_arg1.data.object[_local3]){ _local2[_local3] = Strings.serialize(_arg1.data.object[_local3]); }; }; }; }; }; if (_local2["file"]){ if (getModelType(_local2, false) == null){ loader.load(new URLRequest(_local2["file"])); return; }; playlistHandler(new Array(_local2)); } else { _local4 = new Array(); for each (_local5 in _arg1.data.object) { _local4.push(_local5); }; playlistHandler(_local4); }; } private function getModelType(_arg1:Object, _arg2:Boolean):String{ if (!_arg1["file"]){ return (null); }; if (_arg1["type"]){ return (_arg1["type"]); }; if (((_arg1["streamer"]) && (_arg2))){ if (_arg1["streamer"].substr(0, 4) == "rtmp"){ return ("rtmp"); }; if (_arg1["streamer"].indexOf("/") != -1){ return ("http"); }; return (_arg1["streamer"]); //unresolved jump }; if ((((_arg1["file"].indexOf("youtube.com/w") > -1)) || ((_arg1["file"].indexOf("youtube.com/v") > -1)))){ return ("youtube"); }; return (EXTENSIONS[_arg1["file"].substr(-3).toLowerCase()]); } private function fullscreenHandler(_arg1:ViewEvent):void{ var evt = _arg1; if (skin.stage["displayState"] == "fullScreen"){ skin.stage["displayState"] = "normal"; } else { try { fullscreenrect(); } catch(err:Error) { }; skin.stage["displayState"] = "fullScreen"; }; } private function volumeHandler(_arg1:ViewEvent):void{ var _local2:Number = _arg1.data.percentage; if (_local2 < 1){ muteHandler(new ViewEvent(ViewEvent.MUTE, {state:true})); } else { if (((!(isNaN(_local2))) && ((_local2 < 101)))){ if (config["mute"] == true){ muteHandler(new ViewEvent(ViewEvent.MUTE, {state:false})); }; config["volume"] = _local2; Configger.saveCookie("volume", config["volume"]); dispatchEvent(new ControllerEvent(ControllerEvent.VOLUME, {percentage:_local2})); }; }; } private function nextHandler(_arg1:ViewEvent=null):void{ if (((playlist) && ((config["shuffle"] == true)))){ playItem(randomizer.pick()); } else { if (((playlist) && ((config["item"] == (playlist.length - 1))))){ playItem(0); } else { if (playlist){ playItem((config["item"] + 1)); }; }; }; } private function playlistHandler(_arg1:Array):void{ var _local3:Array; var _local2:Number = (_arg1.length - 1); while (_local2 > -1) { if (!_arg1[_local2]["duration"]){ _arg1[_local2]["duration"] = 0; }; if (!_arg1[_local2]["start"]){ _arg1[_local2]["start"] = 0; }; if (((!(_arg1[_local2]["streamer"])) && (config["streamer"]))){ _arg1[_local2]["streamer"] = config["streamer"]; }; if (config["replace"]){ _local3 = config["replace"].split("|"); _arg1[_local2]["file"] = _arg1[_local2]["file"].replace(RegExp(_local3[0]), _local3[1]); }; _arg1[_local2]["type"] = getModelType(_arg1[_local2], true); if (!_arg1[_local2]["type"]){ _arg1.splice(_local2, 1); }; _local2--; }; if (_arg1.length > 0){ playlist = _arg1; } else { dispatchEvent(new ControllerEvent(ControllerEvent.ERROR, {message:"No valid filetypes found in this playlist"})); return; }; if (config["shuffle"] == true){ randomizer = new Randomizer(playlist.length); config["item"] = randomizer.pick(); } else { if (config["item"] >= playlist.length){ config["item"] = (playlist.length - 1); }; }; dispatchEvent(new ControllerEvent(ControllerEvent.PLAYLIST, {playlist:playlist})); if (config["autostart"] == true){ playItem(); }; } private function redrawHandler(_arg1:ViewEvent=null):void{ var dps:String; var evt = _arg1; try { dps = skin.stage["displayState"]; } catch(err:Error) { }; if ((((dps == "fullScreen")) && (config["resizing"]))){ config["fullscreen"] = true; sploader.layoutFullscreen(); } else { if (config["resizing"]){ config["width"] = skin.stage.stageWidth; config["height"] = skin.stage.stageHeight; }; config["fullscreen"] = false; sploader.layoutNormal(); }; dispatchEvent(new ControllerEvent(ControllerEvent.RESIZE, {fullscreen:config["fullscreen"], width:config["width"], height:config["height"]})); } private function prevHandler(_arg1:ViewEvent):void{ if (config["item"] == 0){ playItem((playlist.length - 1)); } else { playItem((config["item"] - 1)); }; } private function fullscreenrect():void{ var wid:Number; var srx:Number = Capabilities.screenResolutionX; var asr:Number = (srx / Capabilities.screenResolutionY); var pnt:Point = skin.parent.localToGlobal(new Point(skin.x, skin.y)); try { wid = playlist[config["item"]]["width"]; } catch(err:Error) { }; if (((wid) && ((wid > srx)))){ skin.stage["fullScreenSourceRect"] = new Rectangle(pnt.x, pnt.y, srx, Capabilities.screenResolutionY); } else { if (((wid) && ((wid > (srx / 2))))){ skin.stage["fullScreenSourceRect"] = new Rectangle(pnt.x, pnt.y, wid, Math.round((wid / asr))); } else { skin.stage["fullScreenSourceRect"] = new Rectangle(pnt.x, pnt.y, (srx / 2), (Capabilities.screenResolutionY / 2)); }; }; } private function errorHandler(_arg1:ErrorEvent):void{ dispatchEvent(new ControllerEvent(ControllerEvent.ERROR, {message:_arg1.text})); } private function playItem(_arg1:Number=undefined):void{ if (!isNaN(_arg1)){ config["item"] = _arg1; }; dispatchEvent(new ControllerEvent(ControllerEvent.ITEM, {index:config["item"]})); } private function stopHandler(_arg1:ViewEvent=undefined):void{ dispatchEvent(new ControllerEvent(ControllerEvent.STOP)); } private function muteHandler(_arg1:ViewEvent):void{ if ((((_arg1.data.state == true)) || ((_arg1.data.state == false)))){ if (_arg1.data.state == config["mute"]){ return; }; config["mute"] = _arg1.data.state; } else { config["mute"] = !(config["mute"]); }; Configger.saveCookie("mute", config["mute"]); dispatchEvent(new ControllerEvent(ControllerEvent.MUTE, {state:config["mute"]})); } private function seekHandler(_arg1:ViewEvent):void{ var _local2:Number; if (((!((config["state"] == ModelStates.IDLE))) && ((playlist[config["item"]]["duration"] > 0)))){ _local2 = _arg1.data.position; if (_local2 < 1){ _local2 = 0; } else { if (_local2 > (playlist[config["item"]]["duration"] - 1)){ _local2 = (playlist[config["item"]]["duration"] - 1); }; }; dispatchEvent(new ControllerEvent(ControllerEvent.SEEK, {position:_local2})); }; } private function playHandler(_arg1:ViewEvent):void{ if (playlist){ if (((!((_arg1.data.state == false))) && ((config["state"] == ModelStates.PAUSED)))){ dispatchEvent(new ControllerEvent(ControllerEvent.PLAY, {state:true})); } else { if (((!((_arg1.data.state == false))) && ((config["state"] == ModelStates.COMPLETED)))){ dispatchEvent(new ControllerEvent(ControllerEvent.SEEK, {position:0})); } else { if (((!((_arg1.data.state == false))) && ((config["state"] == ModelStates.IDLE)))){ playItem(); } else { if (((!((_arg1.data.state == true))) && ((((config["state"] == ModelStates.PLAYING)) || ((config["state"] == ModelStates.BUFFERING)))))){ dispatchEvent(new ControllerEvent(ControllerEvent.PLAY, {state:false})); }; }; }; }; }; } private function stateHandler(_arg1:ModelEvent):void{ if (_arg1.data.newstate == ModelStates.COMPLETED){ switch (config["repeat"]){ case "single": playHandler(new ViewEvent(ViewEvent.PLAY, {state:true})); break; case "always": if (playlist.length == 1){ playHandler(new ViewEvent(ViewEvent.PLAY, {state:true})); } else { nextHandler(); }; break; case "list": if ((((((config["shuffle"] == true)) && ((randomizer.length > 0)))) || ((((config["shuffle"] == false)) && ((config["item"] < (playlist.length - 1))))))){ nextHandler(); }; break; }; }; } private function itemHandler(_arg1:ViewEvent):void{ var _local2:Number = _arg1.data.index; if (_local2 < 0){ playItem(0); } else { if (_local2 > (playlist.length - 1)){ playItem((playlist.length - 1)); } else { if (!isNaN(_local2)){ playItem(_local2); }; }; }; } private function linkHandler(_arg1:ViewEvent):void{ var _local2:Number = config["item"]; if (_arg1.data.index){ _local2 = _arg1.data.index; }; var _local3:String = playlist[_local2]["link"]; if (_local3 != null){ navigateToURL(new URLRequest(_local3), config["linktarget"]); }; playHandler(new ViewEvent(ViewEvent.PLAY, {state:false})); } } }//package com.jeroenwijering.player
Section 23
//Model (com.jeroenwijering.player.Model) package com.jeroenwijering.player { import com.jeroenwijering.events.*; import flash.display.*; import flash.events.*; import com.jeroenwijering.models.*; import flash.system.*; import flash.net.*; import com.jeroenwijering.utils.*; public class Model extends EventDispatcher { public var display:MovieClip; public var config:Object; private var item:Object; private var thumb:Loader; private var image:String; private var controller:Controller; private var models:Object; private var sploader:SPLoader; public function Model(_arg1:Object, _arg2:MovieClip, _arg3:SPLoader, _arg4:Controller):void{ config = _arg1; display = MovieClip(_arg2.getChildByName("display")); sploader = _arg3; controller = _arg4; controller.addEventListener(ControllerEvent.ITEM, itemHandler); controller.addEventListener(ControllerEvent.MUTE, muteHandler); controller.addEventListener(ControllerEvent.PLAY, playHandler); controller.addEventListener(ControllerEvent.PLAYLIST, playlistHandler); controller.addEventListener(ControllerEvent.RESIZE, resizeHandler); controller.addEventListener(ControllerEvent.SEEK, seekHandler); controller.addEventListener(ControllerEvent.STOP, stopHandler); controller.addEventListener(ControllerEvent.VOLUME, volumeHandler); thumb = new Loader(); thumb.contentLoaderInfo.addEventListener(Event.COMPLETE, thumbHandler); thumb.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, thumbHandler); Draw.clear(display.media); display.addChildAt(thumb, (display.getChildIndex(display.media) + 1)); display.media.visible = false; models = new Object(); } public function mediaHandler(_arg1:DisplayObject=undefined):void{ Draw.clear(display.media); display.media.addChild(_arg1); resizeHandler(); } public function addModel(_arg1:AbstractModel, _arg2:String):void{ models[_arg2] = _arg1; } private function volumeHandler(_arg1:ControllerEvent):void{ if (item){ models[item["type"]].volume(_arg1.data.percentage); }; } private function playlistHandler(_arg1:ControllerEvent):void{ var _local2:String = controller.playlist[config["item"]]["image"]; if (((_local2) && (!((_local2 == image))))){ image = _local2; thumb.load(new URLRequest(_local2), new LoaderContext(true)); }; } private function thumbHandler(_arg1:Event){ var evt = _arg1; try { Bitmap(thumb.content).smoothing = true; } catch(err:Error) { }; resizeHandler(); } private function stopHandler(_arg1:ControllerEvent=undefined):void{ if (item){ models[item["type"]].stop(); }; } private function muteHandler(_arg1:ControllerEvent):void{ if (item){ if (_arg1.data.state == true){ models[item["type"]].volume(0); } else { models[item["type"]].volume(config["volume"]); }; }; } private function seekHandler(_arg1:ControllerEvent):void{ if (item){ models[item["type"]].seek(_arg1.data.position); }; } private function playHandler(_arg1:ControllerEvent):void{ if (item){ if (_arg1.data.state == true){ models[item["type"]].play(); } else { models[item["type"]].pause(); }; }; } private function itemHandler(_arg1:ControllerEvent):void{ if (item){ models[item["type"]].stop(); }; item = controller.playlist[config["item"]]; if (models[item["type"]]){ models[item["type"]].load(item); } else { sendEvent(ModelEvent.ERROR, {message:"No suiteable model found for playback of this file."}); }; if (item["image"]){ if (item["image"] != image){ image = item["image"]; thumb.load(new URLRequest(item["image"]), new LoaderContext(true)); }; } else { if (image){ image = undefined; thumb.unload(); }; }; } public function sendEvent(_arg1:String, _arg2:Object):void{ switch (_arg1){ case ModelEvent.STATE: _arg2["oldstate"] = config["state"]; config["state"] = _arg2.newstate; switch (_arg2["newstate"]){ case ModelStates.IDLE: sendEvent(ModelEvent.LOADED, {loaded:0, offset:0, total:0}); case ModelStates.COMPLETED: thumb.visible = true; display.media.visible = false; sendEvent(ModelEvent.TIME, {position:0, duration:item["duration"]}); break; case ModelStates.PLAYING: if ((((((item["file"].indexOf("m4a") == -1)) && ((item["file"].indexOf("mp3") == -1)))) && ((item["file"].indexOf("aac") == -1)))){ thumb.visible = false; display.media.visible = true; } else { thumb.visible = true; display.media.visible = false; }; break; }; dispatchEvent(new ModelEvent(_arg1, _arg2)); break; case ModelEvent.META: if (_arg2.width){ resizeHandler(); }; default: dispatchEvent(new ModelEvent(_arg1, _arg2)); break; }; } private function resizeHandler(_arg1:Event=null):void{ var _local2:Number = sploader.getPlugin("display").config["width"]; var _local3:Number = sploader.getPlugin("display").config["height"]; Stretcher.stretch(display.media, _local2, _local3, config["stretching"]); if (thumb.width > 10){ Stretcher.stretch(thumb, _local2, _local3, config["stretching"]); }; } } }//package com.jeroenwijering.player
Section 24
//Player (com.jeroenwijering.player.Player) package com.jeroenwijering.player { import com.jeroenwijering.events.*; import flash.display.*; import flash.events.*; import com.jeroenwijering.models.*; import com.tubemogul.inplay.*; import com.jeroenwijering.utils.*; import com.jeroenwijering.plugins.*; public class Player extends MovieClip { public var player:MovieClip; public var view:View; public var config:Object; protected var sploader:SPLoader; protected var configger:Configger; protected var model:Model; protected var controller:Controller; public var skin:MovieClip; public function Player():void{ var data_IP:Object; config = {author:undefined, date:undefined, description:undefined, duration:0, file:undefined, image:undefined, link:undefined, start:0, streamer:undefined, tags:undefined, title:undefined, type:undefined, backcolor:undefined, frontcolor:undefined, lightcolor:undefined, screencolor:undefined, controlbar:"bottom", height:300, playlist:"none", playlistsize:180, skin:undefined, width:400, autostart:false, bufferlength:1, displayclick:"play", fullscreen:false, icons:true, item:0, logo:undefined, mute:false, replace:undefined, repeat:"none", resizing:true, respectduration:false, shuffle:false, smoothing:true, state:"IDLE", stretching:"uniform", volume:90, abouttext:undefined, aboutlink:"http://www.longtailvideo.com/players/jw-flv-player/", client:undefined, id:undefined, linktarget:"_blank", plugins:undefined, token:undefined, tracecall:undefined, version:"4.4.198", zid:"embed", tmPlayerID:"P-MGN-5NM", tmTrackers:undefined}; super(); skin = this["player"]; var i:Number = 0; while (i < skin.numChildren) { skin.getChildAt(i).visible = false; i = (i + 1); }; try { addEventListener(Event.ADDED_TO_STAGE, loadConfig); data_IP = {display:this, playerID:config["tmPlayerID"]}; if (config["tmTrackers"]){ data_IP.trackerIDs = config["tmTrackers"]; }; NetStream_IP.startPlayer(data_IP); } catch(err:Error) { loadConfig(); }; } protected function loadSkin(_arg1:Event=null):void{ sploader = new SPLoader(this); sploader.addEventListener(SPLoaderEvent.SKIN, loadMVC); sploader.loadSkin(); } protected function loadConfig(_arg1:Event=null):void{ var evt = _arg1; try { removeEventListener(Event.ADDED_TO_STAGE, loadConfig); } catch(err:Error) { loadConfig(); }; configger = new Configger(this); configger.addEventListener(Event.COMPLETE, loadSkin); configger.load(config); } protected function addModels():void{ model.addModel(new HTTPModel(model), "http"); model.addModel(new ImageModel(model), "image"); model.addModel(new SoundModel(model), "sound"); model.addModel(new VideoModel(model), "video"); } protected function loadMVC(_arg1:SPLoaderEvent=null):void{ controller = new Controller(config, skin, sploader); model = new Model(config, skin, sploader, controller); view = new View(config, skin, sploader, controller, model); controller.closeMVC(model, view); addModels(); addPlugins(); sploader.addEventListener(SPLoaderEvent.PLUGINS, startPlayer); sploader.loadPlugins(); } protected function startPlayer(_arg1:SPLoaderEvent=null){ view.sendEvent(ViewEvent.REDRAW); dispatchEvent(new PlayerEvent(PlayerEvent.READY)); view.playerReady(); if (((config["file"]) && ((view.getPlugin("liverail") == null)))){ view.sendEvent(ViewEvent.LOAD, config); }; } protected function addPlugins():void{ sploader.addPlugin(new RelatedVideos(), "relatedvideos"); sploader.addPlugin(new Display(), "display"); sploader.addPlugin(new Rightclick(), "rightclick"); sploader.addPlugin(new Controlbar(), "controlbar"); sploader.addPlugin(new Liverail(), "liverail", true); } } }//package com.jeroenwijering.player
Section 25
//SPLoader (com.jeroenwijering.player.SPLoader) package com.jeroenwijering.player { import com.jeroenwijering.events.*; import flash.display.*; import flash.events.*; import flash.system.*; import flash.net.*; import com.jeroenwijering.utils.*; public class SPLoader extends EventDispatcher { private var config:Object; private var done:Number;// = 0 private var loader:Loader; private var basedir:String;// = "http://plugins.longtailvideo.com/" private var plugins:Array; private var player:Player; private var skin:MovieClip; public function SPLoader(_arg1:Player):void{ config = _arg1.config; skin = _arg1.skin; player = _arg1; plugins = new Array(); } public function loadSkin():void{ if (config["skin"]){ loadSWF(config["skin"], true); } else { dispatchEvent(new SPLoaderEvent(SPLoaderEvent.SKIN)); }; } public function layoutFullscreen(){ var _local1:Number = 0; while (_local1 < plugins.length) { if ((((((plugins[_local1]["position"] == "over")) || ((plugins[_local1]["position"] == undefined)))) || ((((plugins[_local1]["name"] == "controlbar")) && (!((plugins[_local1]["position"] == "none"))))))){ plugins[_local1]["x"] = 0; plugins[_local1]["y"] = 0; plugins[_local1]["width"] = skin.stage.stageWidth; plugins[_local1]["height"] = skin.stage.stageHeight; plugins[_local1]["visible"] = true; } else { plugins[_local1]["visible"] = false; }; _local1++; }; if (config["resizing"]){ config["width"] = skin.stage.stageWidth; config["height"] = skin.stage.stageHeight; }; } private function skinHandler(_arg1:Event):void{ var skn:MovieClip; var chd:DisplayObject; var idx:Number; var evt = _arg1; try { skn = evt.target.content["player"]; while (skn.numChildren > 0) { chd = skin.getChildByName(skn.getChildAt(0).name); if (chd){ idx = skin.getChildIndex(chd); skin.removeChild(chd); skin.addChildAt(skn.getChildAt(0), idx); skin.getChildByName(chd.name).visible = false; } else { skin.addChild(skn.getChildAt(0)); }; }; dispatchEvent(new SPLoaderEvent(SPLoaderEvent.SKIN)); } catch(err:Error) { }; } public function getPluginConfig(_arg1:Object):Object{ var _local2:Number = 0; while (_local2 < plugins.length) { if (plugins[_local2]["reference"] == _arg1){ return (plugins[_local2]); }; _local2++; }; return (null); } private function pluginError(_arg1:IOErrorEvent):void{ done--; if (done == 0){ dispatchEvent(new SPLoaderEvent(SPLoaderEvent.PLUGINS)); }; } private function pluginHandler(_arg1:Event):void{ var idx:Number; var end:Number; var nam:String; var evt = _arg1; try { idx = evt.target.url.lastIndexOf("/"); end = (evt.target.url.length - 4); if (evt.target.url.indexOf("-", (end - 5)) > -1){ end = evt.target.url.indexOf("-", (end - 5)); }; nam = evt.target.url.substring((idx + 1), end).toLowerCase(); addPlugin(evt.target.content, nam, true); evt.target.loader.visible = true; } catch(err:Error) { }; done--; if (done == 0){ dispatchEvent(new SPLoaderEvent(SPLoaderEvent.PLUGINS)); } else { if (done < 0){ player.view.sendEvent("REDRAW"); }; }; } public function loadPlugins():void{ var _local1:Array; var _local2:Number; if (config["plugins"]){ _local1 = config["plugins"].split(","); done = _local1.length; _local2 = 0; while (_local2 < _local1.length) { loadSWF(_local1[_local2], false); _local2++; }; } else { dispatchEvent(new SPLoaderEvent(SPLoaderEvent.PLUGINS)); }; } private function skinError(_arg1:IOErrorEvent=null):void{ dispatchEvent(new SPLoaderEvent(SPLoaderEvent.SKIN)); } public function getPlugin(_arg1:String):Object{ var _local2:Number = 0; while (_local2 < plugins.length) { if (plugins[_local2]["name"] == _arg1){ return (plugins[_local2]["reference"]); }; _local2++; }; return (null); } public function layoutNormal():void{ var _local1:Object = {x:0, y:0, width:config["width"], height:config["height"]}; var _local2:Array = new Array(); var _local3:Number = (plugins.length - 1); while (_local3 >= 0) { switch (plugins[_local3]["position"]){ case "left": plugins[_local3]["x"] = _local1.x; plugins[_local3]["y"] = _local1.y; plugins[_local3]["width"] = plugins[_local3]["size"]; plugins[_local3]["height"] = _local1.height; plugins[_local3]["visible"] = true; _local1.x = (_local1.x + plugins[_local3]["size"]); _local1.width = (_local1.width - plugins[_local3]["size"]); break; case "top": plugins[_local3]["x"] = _local1.x; plugins[_local3]["y"] = _local1.y; plugins[_local3]["width"] = _local1.width; plugins[_local3]["height"] = plugins[_local3]["size"]; plugins[_local3]["visible"] = true; _local1.y = (_local1.y + plugins[_local3]["size"]); _local1.height = (_local1.height - plugins[_local3]["size"]); break; case "right": plugins[_local3]["x"] = ((_local1.x + _local1.width) - plugins[_local3]["size"]); plugins[_local3]["y"] = _local1.y; plugins[_local3]["width"] = plugins[_local3]["size"]; plugins[_local3]["height"] = _local1.height; plugins[_local3]["visible"] = true; _local1.width = (_local1.width - plugins[_local3]["size"]); break; case "bottom": plugins[_local3]["x"] = _local1.x; plugins[_local3]["y"] = ((_local1.y + _local1.height) - plugins[_local3]["size"]); plugins[_local3]["width"] = _local1.width; plugins[_local3]["height"] = plugins[_local3]["size"]; plugins[_local3]["visible"] = true; _local1.height = (_local1.height - plugins[_local3]["size"]); break; case "none": plugins[_local3]["visible"] = false; break; default: _local2.push(_local3); break; }; _local3--; }; var _local4:Number = 0; while (_local4 < _local2.length) { plugins[_local2[_local4]]["x"] = _local1.x; plugins[_local2[_local4]]["y"] = _local1.y; plugins[_local2[_local4]]["width"] = _local1.width; plugins[_local2[_local4]]["height"] = _local1.height; plugins[_local2[_local4]]["visible"] = true; _local4++; }; if (config["resizing"]){ config["width"] = _local1.width; config["height"] = _local1.height; }; } public function addPlugin(_arg1:Object, _arg2:String, _arg3:Boolean=false):void{ var str:String; var clp:DisplayObject; var org:String; var pgi = _arg1; var nam = _arg2; var ext = _arg3; var obj:Object = {reference:pgi, name:nam, x:0, y:0, width:400, height:300}; var cbr:DisplayObject = skin.getChildByName("controlbar"); if (nam == "controlbar"){ config["controlbar.position"] = config["controlbar"]; Debug.log(("Height: " + cbr.height)); config["controlbar.size"] = cbr.height; config["controlbar.margin"] = cbr.x; } else { if (nam == "playlist"){ config["playlist.position"] = config["playlist"]; config["playlist.size"] = config["playlistsize"]; }; }; try { for (org in pgi.config) { obj[org] = pgi.config[org]; }; } catch(err:Error) { }; for (str in config) { if (str.indexOf((nam + ".")) == 0){ obj[str.substring((nam.length + 1))] = config[str]; }; }; if (ext == true){ clp = DisplayObject(pgi); skin.addChild(clp); } else { if (skin.getChildByName(nam)){ clp = skin.getChildByName(nam); } else { clp = new MovieClip(); clp.name = nam; skin.addChildAt(clp, 1); }; }; plugins.push(obj); try { pgi.config = obj; pgi.clip = clp; } catch(err:Error) { }; skin.setChildIndex(cbr, (skin.numChildren - 1)); pgi.initializePlugin(player.view); } public function loadPlugin(_arg1:String, _arg2:String=null){ var _local3:Array; var _local4:String; var _local5:Array; if (((!((_arg2 == null))) && (!((_arg2 == ""))))){ _local3 = _arg2.split("&"); for (_local4 in _local3) { _local5 = _local3[_local4].split("="); config[_local5[0]] = Strings.serialize(_local5[1]); }; }; loadSWF(_arg1, false); } private function loadSWF(_arg1:String, _arg2:Boolean):void{ var _local4:LoaderContext; if (_arg1.substr(-4) == ".swf"){ _arg1 = _arg1.substr(0, (_arg1.length - 4)); }; var _local3:Loader = new Loader(); if (_arg2){ _local3.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, skinError); _local3.contentLoaderInfo.addEventListener(Event.COMPLETE, skinHandler); } else { _local3.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, pluginError); _local3.contentLoaderInfo.addEventListener(Event.COMPLETE, pluginHandler); }; _arg1 = (_arg1 + ".swf"); if (skin.loaderInfo.url.indexOf("http") == 0){ _local4 = new LoaderContext(true, ApplicationDomain.currentDomain, SecurityDomain.currentDomain); if (_arg2){ _local3.load(new URLRequest(_arg1), _local4); } else { _local3.load(new URLRequest((basedir + _arg1)), _local4); }; } else { _local3.load(new URLRequest(_arg1)); }; } } }//package com.jeroenwijering.player
Section 26
//View (com.jeroenwijering.player.View) package com.jeroenwijering.player { import com.jeroenwijering.events.*; import flash.display.*; import flash.events.*; import flash.ui.*; import flash.utils.*; import flash.system.*; import com.jeroenwijering.utils.*; import flash.external.*; public class View extends AbstractView { private var _skin:MovieClip; private var _config:Object; private var ready:Boolean; private var model:Model; private var context:ContextMenu; private var sploader:SPLoader; private var controller:Controller; private var listeners:Array; public function View(_arg1:Object, _arg2:MovieClip, _arg3:SPLoader, _arg4:Controller, _arg5:Model):void{ Security.allowDomain("*"); _config = _arg1; _config["client"] = ("FLASH " + Capabilities.version); _skin = _arg2; if (_config["resizing"]){ _skin.stage.scaleMode = "noScale"; _skin.stage.align = "TL"; _skin.stage.addEventListener(Event.RESIZE, resizeHandler); } else { _skin.stage.addEventListener(FullScreenEvent.FULL_SCREEN, resizeHandler); }; sploader = _arg3; controller = _arg4; model = _arg5; setListening(); listeners = new Array(); } private function setListening():void{ if (config["tracecall"] == "arthropod"){ Debug.clear(); }; addControllerListener(ControllerEvent.ERROR, setController); addControllerListener(ControllerEvent.ITEM, setController); addControllerListener(ControllerEvent.MUTE, setController); addControllerListener(ControllerEvent.PLAY, setController); addControllerListener(ControllerEvent.PLAYLIST, setController); addControllerListener(ControllerEvent.RESIZE, setController); addControllerListener(ControllerEvent.SEEK, setController); addControllerListener(ControllerEvent.STOP, setController); addControllerListener(ControllerEvent.VOLUME, setController); addModelListener(ModelEvent.BUFFER, setModel); addModelListener(ModelEvent.ERROR, setModel); addModelListener(ModelEvent.LOADED, setModel); addModelListener(ModelEvent.META, setModel); addModelListener(ModelEvent.STATE, setModel); addModelListener(ModelEvent.TIME, setModel); addViewListener(ViewEvent.FULLSCREEN, setView); addViewListener(ViewEvent.ITEM, setView); addViewListener(ViewEvent.LINK, setView); addViewListener(ViewEvent.LOAD, setView); addViewListener(ViewEvent.MUTE, setView); addViewListener(ViewEvent.NEXT, setView); addViewListener(ViewEvent.PLAY, setView); addViewListener(ViewEvent.PREV, setView); addViewListener(ViewEvent.REDRAW, setView); addViewListener(ViewEvent.SEEK, setView); addViewListener(ViewEvent.STOP, setView); addViewListener(ViewEvent.TRACE, setView); addViewListener(ViewEvent.VOLUME, setView); } private function addJSControllerListener(_arg1:String, _arg2:String):Boolean{ listeners.push({target:"CONTROLLER", type:_arg1.toUpperCase(), callee:_arg2}); return (true); } private function addJSViewListener(_arg1:String, _arg2:String):Boolean{ listeners.push({target:"VIEW", type:_arg1.toUpperCase(), callee:_arg2}); return (true); } private function forward(_arg1:String, _arg2:String, _arg3:Object):void{ var _local5:String; var _local6:String; var _local7:Object; var _local4 = ""; for (_local5 in _arg3) { _local4 = (_local4 + (((_local5 + ":") + _arg3[_local5]) + ",")); }; if (_local4.length > 0){ _local4 = (("(" + _local4.substr(0, (_local4.length - 1))) + ")"); }; if (config["tracecall"] == "arthropod"){ _local7 = {CONTROLLER:"0xFF6666", VIEW:"0x66FF66", MODEL:"0x6666FF"}; Debug.log(((_arg2 + " ") + _local4), _local7[_arg1]); } else { if (config["tracecall"] == "flash"){ trace(((((_arg1 + ": ") + _arg2) + " ") + _local4)); } else { if (((config["tracecall"]) && (ready))){ ExternalInterface.call(config["tracecall"], ((((_arg1 + ": ") + _arg2) + " ") + _local4)); }; }; }; if (!_arg3){ _arg3 = new Object(); }; _arg3.id = config["id"]; _arg3.client = config["client"]; _arg3.version = config["version"]; for (_local6 in listeners) { if ((((listeners[_local6]["target"] == _arg1)) && ((listeners[_local6]["type"] == _arg2)))){ ExternalInterface.call(listeners[_local6]["callee"], _arg3); }; }; } private function getPlaylist():Array{ var _local4:String; var _local1:Array = new Array(); var _local2:Object = new Object(); var _local3:Number = 0; while (_local3 < controller.playlist.length) { _local2 = new Object(); for (_local4 in controller.playlist[_local3]) { if (_local4.indexOf(".") == -1){ _local2[_local4] = controller.playlist[_local3][_local4]; }; }; _local1.push(_local2); _local3++; }; return (_local1); } override public function get config():Object{ return (_config); } private function addJSModelListener(_arg1:String, _arg2:String):Boolean{ listeners.push({target:"MODEL", type:_arg1.toUpperCase(), callee:_arg2}); return (true); } private function removeJSListener(_arg1:String, _arg2:String, _arg3:String):void{ var _local4:Number = 0; while (_local4 < listeners.length) { if ((((((listeners[_local4]["target"] == _arg1)) && ((listeners[_local4]["type"] == _arg2)))) && ((listeners[_local4]["callee"] == _arg3)))){ listeners.splice(_local4, 1); return; }; _local4++; }; } private function getConfig():Object{ var _local2:String; var _local1:Object = new Object(); for (_local2 in _config) { if ((((_local2.indexOf(".") == -1)) && (!((_config[_local2] == undefined))))){ _local1[_local2] = _config[_local2]; }; }; return (_local1); } public function playerReady(){ if (((((ExternalInterface.available) && ((_skin.loaderInfo.url.indexOf("http") == 0)))) && (!((ready == true))))){ ready = true; setTimeout(playerReadyPing, 50); }; } public function getJSPluginConfig(_arg1:String):Object{ var s:String; var plg:*; var cfg:Object; var nam = _arg1; try { plg = getPlugin(nam); cfg = getPluginConfig(plg); } catch(err:Error) { return ({error:"plugin not loaded"}); }; var obj:Object = new Object(); for (s in cfg) { if ((((((cfg[s] is String)) || ((cfg[s] is Boolean)))) || ((cfg[s] is Number)))){ obj[s] = cfg[s]; }; }; return (obj); } override public function getPlugin(_arg1:String):Object{ return (sploader.getPlugin(_arg1)); } override public function get playlist():Array{ return (controller.playlist); } override public function getPluginConfig(_arg1:Object):Object{ return (sploader.getPluginConfig(_arg1)); } private function playerReadyPing(){ try { if (((ExternalInterface.objectID) && (!(_config["id"])))){ _config["id"] = ExternalInterface.objectID; }; if (_config["id"]){ ExternalInterface.addCallback("addControllerListener", addJSControllerListener); ExternalInterface.addCallback("addModelListener", addJSModelListener); ExternalInterface.addCallback("addViewListener", addJSViewListener); ExternalInterface.addCallback("removeControllerListener", removeJSControllerListener); ExternalInterface.addCallback("removeModelListener", removeJSModelListener); ExternalInterface.addCallback("removeViewListener", removeJSViewListener); ExternalInterface.addCallback("getConfig", getConfig); ExternalInterface.addCallback("getPlaylist", getPlaylist); ExternalInterface.addCallback("getPluginConfig", getJSPluginConfig); ExternalInterface.addCallback("loadPlugin", loadPlugin); ExternalInterface.addCallback("sendEvent", sendEvent); ExternalInterface.call("playerReady", {id:config["id"], client:config["client"], version:config["version"]}); }; } catch(err:Error) { }; } private function removeJSControllerListener(_arg1:String, _arg2:String):Boolean{ removeJSListener("CONTROLLER", _arg1.toUpperCase(), _arg2); return (true); } override public function removeViewListener(_arg1:String, _arg2:Function):void{ this.removeEventListener(_arg1.toUpperCase(), _arg2); } private function setController(_arg1:ControllerEvent):void{ forward("CONTROLLER", _arg1.type, _arg1.data); } private function removeJSViewListener(_arg1:String, _arg2:String):Boolean{ removeJSListener("VIEW", _arg1.toUpperCase(), _arg2); return (true); } private function setModel(_arg1:ModelEvent):void{ forward("MODEL", _arg1.type, _arg1.data); } override public function removeModelListener(_arg1:String, _arg2:Function):void{ model.removeEventListener(_arg1.toUpperCase(), _arg2); } override public function addModelListener(_arg1:String, _arg2:Function):void{ model.addEventListener(_arg1.toUpperCase(), _arg2); } override public function removeControllerListener(_arg1:String, _arg2:Function):void{ controller.removeEventListener(_arg1.toUpperCase(), _arg2); } private function setView(_arg1:ViewEvent):void{ forward("VIEW", _arg1.type, _arg1.data); } override public function addControllerListener(_arg1:String, _arg2:Function):void{ controller.addEventListener(_arg1.toUpperCase(), _arg2); } override public function sendEvent(_arg1:String, _arg2:Object=undefined):void{ _arg1 = _arg1.toUpperCase(); var _local3:Object = new Object(); switch (_arg1){ case "ITEM": _local3["index"] = _arg2; break; case "LINK": _local3["index"] = _arg2; break; case "LOAD": _local3["object"] = _arg2; break; case "SEEK": _local3["position"] = _arg2; break; case "VOLUME": _local3["percentage"] = _arg2; break; default: if ((((_arg2 == true)) || ((_arg2 == "true")))){ _local3["state"] = true; } else { if ((((_arg2 == false)) || ((_arg2 == "false")))){ _local3["state"] = false; }; }; break; }; dispatchEvent(new ViewEvent(_arg1, _local3)); } private function resizeHandler(_arg1:Event=undefined):void{ dispatchEvent(new ViewEvent(ViewEvent.REDRAW)); } private function removeJSModelListener(_arg1:String, _arg2:String):Boolean{ removeJSListener("MODEL", _arg1.toUpperCase(), _arg2); return (true); } override public function loadPlugin(_arg1:String, _arg2:String=null):Boolean{ sploader.loadPlugin(_arg1, _arg2); return (true); } override public function addViewListener(_arg1:String, _arg2:Function):void{ this.addEventListener(_arg1.toUpperCase(), _arg2); } override public function get skin():MovieClip{ return (_skin); } } }//package com.jeroenwijering.player
Section 27
//Controlbar (com.jeroenwijering.plugins.Controlbar) package com.jeroenwijering.plugins { import com.jeroenwijering.events.*; import flash.display.*; import flash.events.*; import flash.ui.*; import flash.utils.*; import com.jeroenwijering.utils.*; import flash.geom.*; import flash.accessibility.*; public class Controlbar implements PluginInterface { private var scrubber:MovieClip; public var config:Object; public var clip:MovieClip; private var light:ColorTransform; private var SLIDERS; private var BUTTONS; private var view:AbstractView; private var clonee:MovieClip; private var front:ColorTransform; private var stacker:Stacker; private var blocking:Boolean; private var hiding:Number; public function Controlbar():void{ config = {}; BUTTONS = {playButton:"PLAY", pauseButton:"PLAY", stopButton:"STOP", prevButton:"PREV", nextButton:"NEXT", linkButton:"LINK", fullscreenButton:"FULLSCREEN", normalscreenButton:"FULLSCREEN", muteButton:"MUTE", unmuteButton:"MUTE"}; SLIDERS = {timeSlider:"SEEK", volumeSlider:"VOLUME"}; super(); } private function setColors():void{ var clr:ColorTransform; var btn:String; var sld:String; if (((view.config["backcolor"]) && (clip["playButton"].icon))){ clr = new ColorTransform(); clr.color = uint(("0x" + view.config["backcolor"].substr(-6))); clip.back.transform.colorTransform = clr; }; if (view.config["frontcolor"]){ try { front = new ColorTransform(); front.color = uint(("0x" + view.config["frontcolor"].substr(-6))); for (btn in BUTTONS) { if (clip[btn]){ clip[btn]["icon"].transform.colorTransform = front; }; }; for (sld in SLIDERS) { if (clip[sld]){ clip[sld]["mark"].transform.colorTransform = front; clip[sld]["rail"].transform.colorTransform = front; }; }; clip.elapsedText.textColor = front.color; clip.totalText.textColor = front.color; } catch(err:Error) { }; }; if (view.config["lightcolor"]){ light = new ColorTransform(); light.color = uint(("0x" + view.config["lightcolor"].substr(-6))); } else { light = new ColorTransform(); light.color = 222873; }; if (light){ try { clip["timeSlider"]["done"].transform.colorTransform = light; } catch(err:Error) { }; }; } private function volumeHandler(_arg1:ControllerEvent=null):void{ var vsl:MovieClip; var evt = _arg1; try { vsl = clip.volumeSlider; vsl.mark.width = ((view.config["volume"] * (vsl.rail.width - (vsl.icon.width / 2))) / 100); vsl.icon.x = (vsl.mark.x + ((view.config["volume"] * (vsl.rail.width - vsl.icon.width)) / 100)); } catch(err:Error) { }; } private function loadedHandler(_arg1:ModelEvent=null):void{ var wid:Number; var icw:Number; var evt = _arg1; var pc1:Number = 0; if (((evt) && ((evt.data.total > 0)))){ pc1 = (evt.data.loaded / evt.data.total); }; var pc2:Number = 0; if (((evt) && (evt.data.offset))){ pc2 = (evt.data.offset / evt.data.total); }; try { wid = clip.timeSlider.rail.width; clip.timeSlider.mark.x = (pc2 * wid); clip.timeSlider.mark.width = (pc1 * wid); icw = (clip.timeSlider.icon.x + clip.timeSlider.icon.width); } catch(err:Error) { }; } private function setButtons():void{ var _local1:String; var _local2:String; for (_local1 in BUTTONS) { if (clip[_local1]){ clip[_local1].mouseChildren = false; clip[_local1].buttonMode = true; clip[_local1].addEventListener(MouseEvent.CLICK, clickHandler); clip[_local1].addEventListener(MouseEvent.MOUSE_OVER, overHandler); clip[_local1].addEventListener(MouseEvent.MOUSE_OUT, outHandler); }; }; for (_local2 in SLIDERS) { if (clip[_local2]){ clip[_local2].mouseChildren = false; clip[_local2].buttonMode = true; clip[_local2].addEventListener(MouseEvent.MOUSE_DOWN, downHandler); clip[_local2].addEventListener(MouseEvent.MOUSE_OVER, overHandler); clip[_local2].addEventListener(MouseEvent.MOUSE_OUT, outHandler); }; }; } private function downHandler(_arg1:MouseEvent):void{ var _local2:Rectangle; scrubber = MovieClip(_arg1.target); if (((!((blocking == true))) || ((scrubber.name == "volumeSlider")))){ _local2 = new Rectangle(scrubber.rail.x, scrubber.icon.y, (scrubber.rail.width - scrubber.icon.width), 0); scrubber.icon.startDrag(true, _local2); clip.stage.addEventListener(MouseEvent.MOUSE_UP, upHandler); } else { scrubber = undefined; }; } public function block(_arg1:Boolean):void{ blocking = _arg1; timeHandler(); } private function fixTime():void{ var scp:Number; try { scp = clip.timeSlider.scaleX; clip.timeSlider.scaleX = 1; clip.timeSlider.icon.x = (scp * clip.timeSlider.icon.x); clip.timeSlider.mark.x = (scp * clip.timeSlider.mark.x); clip.timeSlider.mark.width = (scp * clip.timeSlider.mark.width); clip.timeSlider.rail.width = (scp * clip.timeSlider.rail.width); clip.timeSlider.done.x = (scp * clip.timeSlider.done.x); clip.timeSlider.done.width = (scp * clip.timeSlider.done.width); } catch(err:Error) { }; } private function stateHandler(_arg1:ModelEvent=undefined):void{ var dps:String; var evt = _arg1; clearTimeout(hiding); view.skin.removeEventListener(MouseEvent.MOUSE_MOVE, moveHandler); try { dps = clip.stage["displayState"]; } catch(err:Error) { }; switch (view.config["state"]){ case ModelStates.PLAYING: case ModelStates.BUFFERING: try { clip.playButton.visible = false; clip.pauseButton.visible = true; } catch(err:Error) { }; if ((((config["position"] == "over")) || ((view.config["fullscreen"] == true)))){ hiding = setTimeout(moveTimeout, 1000); view.skin.addEventListener(MouseEvent.MOUSE_MOVE, moveHandler); } else { Animations.fade(clip, 1); }; break; default: try { clip.playButton.visible = true; clip.pauseButton.visible = false; } catch(err:Error) { }; if ((((config["position"] == "over")) || ((view.config["fullscreen"] == true)))){ Mouse.show(); Animations.fade(clip, 1); }; }; } private function outHandler(_arg1:MouseEvent):void{ if (((front) && (_arg1.target["icon"]))){ } else { _arg1.target.gotoAndPlay("out"); }; } private function overHandler(_arg1:MouseEvent):void{ if (((front) && (_arg1.target["icon"]))){ } else { _arg1.target.gotoAndPlay("over"); }; } private function moveTimeout():void{ if ((((((clip.mouseY < 3)) || ((clip.mouseY > (clip.height - 5))))) && ((clip.alpha == 1)))){ Animations.fade(clip, 0); Mouse.hide(); }; } private function clickHandler(_arg1:MouseEvent):void{ var _local2:String = BUTTONS[_arg1.target.name]; if (((((!((blocking == true))) || ((_local2 == "FULLSCREEN")))) || ((_local2 == "MUTE")))){ view.sendEvent(_local2); }; } public function initializePlugin(_arg1:AbstractView):void{ view = _arg1; view.addControllerListener(ControllerEvent.RESIZE, resizeHandler); view.addModelListener(ModelEvent.LOADED, loadedHandler); view.addModelListener(ModelEvent.STATE, stateHandler); view.addModelListener(ModelEvent.TIME, timeHandler); view.addControllerListener(ControllerEvent.PLAYLIST, itemHandler); view.addControllerListener(ControllerEvent.ITEM, itemHandler); view.addControllerListener(ControllerEvent.MUTE, muteHandler); view.addControllerListener(ControllerEvent.VOLUME, volumeHandler); stacker = new Stacker(clip); clip.stopButton.visible = false; stacker.rearrange(); setButtons(); setColors(); itemHandler(); loadedHandler(); muteHandler(); stateHandler(); timeHandler(); volumeHandler(); } private function upHandler(_arg1:MouseEvent):void{ var _local2:Number = 0; clip.stage.removeEventListener(MouseEvent.MOUSE_UP, upHandler); scrubber.icon.stopDrag(); if ((((scrubber.name == "timeSlider")) && (view.playlist))){ _local2 = view.playlist[view.config["item"]]["duration"]; } else { if (scrubber.name == "volumeSlider"){ _local2 = 100; }; }; var _local3:Number = (((scrubber.icon.x - scrubber.rail.x) / (scrubber.rail.width - scrubber.icon.width)) * _local2); view.sendEvent(SLIDERS[scrubber.name], Math.round(_local3)); scrubber = undefined; } private function resizeHandler(_arg1:ControllerEvent=null):void{ var evt = _arg1; var wid:Number = config["width"]; clip.x = config["x"]; clip.y = config["y"]; clip.visible = config["visible"]; if (config["position"] == "over"){ clip.x = (config["x"] + config["margin"]); clip.y = (((config["y"] + config["height"]) - config["margin"]) - config["size"]); wid = (config["width"] - (2 * config["margin"])); clip.back.alpha = 0.75; } else { if (view.config["fullscreen"] == true){ clip.x = config["x"]; clip.y = (config["height"] - clip.height); wid = config["width"]; clip.back.alpha = 0.75; } else { if (config["position"] != "none"){ clip.back.alpha = 1; }; }; }; try { clip.fullscreenButton.visible = false; clip.normalscreenButton.visible = false; if (((clip.stage["displayState"]) && ((view.config["height"] > 40)))){ if (view.config["fullscreen"]){ clip.fullscreenButton.visible = false; clip.normalscreenButton.visible = true; } else { clip.fullscreenButton.visible = true; clip.normalscreenButton.visible = false; }; }; } catch(err:Error) { }; stacker.rearrange(wid); stateHandler(); fixTime(); Mouse.show(); } private function itemHandler(_arg1:ControllerEvent=null):void{ var evt = _arg1; try { if (((view.playlist) && ((view.playlist.length > 1)))){ clip.prevButton.visible = (clip.nextButton.visible = true); } else { clip.prevButton.visible = (clip.nextButton.visible = false); }; } catch(err:Error) { }; try { if (((view.playlist) && (view.playlist[view.config["item"]]["link"]))){ clip.linkButton.visible = true; } else { clip.linkButton.visible = false; }; } catch(err:Error) { }; timeHandler(); stacker.rearrange(); fixTime(); loadedHandler(new ModelEvent(ModelEvent.LOADED, {loaded:0, total:0})); } private function muteHandler(_arg1:ControllerEvent=null):void{ var evt = _arg1; if (view.config["mute"] == true){ try { clip.muteButton.visible = false; clip.unmuteButton.visible = true; } catch(err:Error) { }; try { clip.volumeSlider.mark.visible = false; clip.volumeSlider.icon.x = clip.volumeSlider.rail.x; } catch(err:Error) { }; } else { try { clip.muteButton.visible = true; clip.unmuteButton.visible = false; } catch(err:Error) { }; try { clip.volumeSlider.mark.visible = true; volumeHandler(); } catch(err:Error) { }; }; } private function moveHandler(_arg1:MouseEvent=null):void{ if (clip.alpha == 0){ Animations.fade(clip, 1); }; clearTimeout(hiding); hiding = setTimeout(moveTimeout, 1000); Mouse.show(); } public function addButton(_arg1:DisplayObject, _arg2:String, _arg3:Function):void{ var _local4:*; var _local5:AccessibilityProperties; var _local6:Number; if (clip["linkButton"].back){ _local4 = Draw.clone(clip["linkButton"]); _local4.name = (_arg2 + "Button"); _local4.visible = true; _local4.tabEnabled = true; _local4.tabIndex = 6; _local5 = new AccessibilityProperties(); _local5.name = (_arg2 + "Button"); _local4.accessibilityProperties = _local5; clip.addChild(_local4); _local6 = Math.round(((_local4.height - _arg1.height) / 2)); Draw.clear(_local4.icon); _local4.icon.addChild(_arg1); _arg1.x = (_arg1.y = 0); _local4.icon.x = (_local4.icon.y = _local6); _local4.back.width = (_arg1.width + (2 * _local6)); _local4.buttonMode = true; _local4.mouseChildren = false; _local4.addEventListener(MouseEvent.CLICK, _arg3); if (front){ _local4.icon.transform.colorTransform = front; _local4.addEventListener(MouseEvent.MOUSE_OVER, overHandler); _local4.addEventListener(MouseEvent.MOUSE_OUT, outHandler); }; stacker.insert(_local4, clip["linkButton"]); }; } private function timeHandler(_arg1:ModelEvent=null):void{ var tsl:MovieClip; var xps:Number; var evt = _arg1; var dur:Number = 0; var pos:Number = 0; if (evt){ dur = evt.data.duration; pos = evt.data.position; } else { if (view.playlist){ dur = view.playlist[view.config["item"]]["duration"]; pos = 0; }; }; var pct:Number = (pos / dur); if (isNaN(pct)){ pct = 1; }; try { clip.elapsedText.text = Strings.digits(pos); clip.totalText.text = Strings.digits(dur); } catch(err:Error) { }; try { tsl = clip.timeSlider; xps = Math.round((pct * (tsl.rail.width - tsl.icon.width))); if (dur > 0){ clip.timeSlider.icon.visible = true; clip.timeSlider.mark.visible = true; if (!scrubber){ clip.timeSlider.icon.x = xps; clip.timeSlider.done.width = xps; }; clip.timeSlider.done.visible = true; } else { clip.timeSlider.icon.visible = false; clip.timeSlider.mark.visible = false; clip.timeSlider.done.visible = false; }; } catch(err:Error) { }; } } }//package com.jeroenwijering.plugins
Section 28
//Display (com.jeroenwijering.plugins.Display) package com.jeroenwijering.plugins { import com.jeroenwijering.events.*; import flash.display.*; import flash.events.*; import flash.utils.*; import flash.net.*; import com.jeroenwijering.utils.*; import flash.geom.*; public class Display implements PluginInterface { public var config:Object; private var margins:Array; public var clip:MovieClip; private var state:String; private var loader:Loader; private var timeout:Number; private var view:AbstractView; private var blocking:Boolean;// = false private var ICONS:Array; public function Display():void{ config = {}; ICONS = new Array("playIcon", "errorIcon", "bufferIcon", "linkIcon", "muteIcon", "fullscreenIcon", "nextIcon"); super(); } private function stateHandler(_arg1:Event=null):void{ switch (view.config["state"]){ case ModelStates.PLAYING: setIcon(); break; case ModelStates.BUFFERING: if (((_arg1) && ((_arg1["data"].oldstate == ModelStates.PLAYING)))){ timeout = setTimeout(setIcon, 1500, "bufferIcon"); } else { setIcon("bufferIcon"); }; break; case ModelStates.IDLE: if ((((view.config.displayclick == "none")) || (!(view.playlist)))){ setIcon(); } else { setIcon("playIcon"); }; break; default: setIcon((view.config.displayclick.toLowerCase() + "Icon")); break; }; } public function block(_arg1:Boolean):void{ blocking = _arg1; } private function clickHandler(_arg1:MouseEvent):void{ if ((((view.config["state"] == ModelStates.IDLE)) && ((blocking == false)))){ setIcon("bufferIcon"); view.getPlugin("liverail").contentStart(); } else { if (blocking == false){ view.sendEvent(view.config["displayclick"]); } else { if ((((view.config["state"] == ModelStates.IDLE)) && ((view.config["autostart"] == true)))){ setIcon("bufferIcon"); }; }; }; } private function errorHandler(_arg1:Object):void{ if (view.config["icons"] == true){ setIcon("errorIcon"); Draw.set(clip.errorIcon.txt, "text", _arg1.data.message); }; } public function initializePlugin(_arg1:AbstractView):void{ var _local2:ColorTransform; view = _arg1; view.addControllerListener(ControllerEvent.ERROR, errorHandler); view.addControllerListener(ControllerEvent.MUTE, stateHandler); view.addControllerListener(ControllerEvent.PLAYLIST, stateHandler); view.addControllerListener(ControllerEvent.RESIZE, resizeHandler); view.addModelListener(ModelEvent.BUFFER, bufferHandler); view.addModelListener(ModelEvent.ERROR, errorHandler); view.addModelListener(ModelEvent.STATE, stateHandler); clip.media.mask = clip.masker; if (view.config["screencolor"]){ _local2 = new ColorTransform(); _local2.color = uint(("0x" + view.config["screencolor"].substr(-6))); clip.back.transform.colorTransform = _local2; }; if (view.config["displayclick"] != "none"){ clip.addEventListener(MouseEvent.CLICK, clickHandler); clip.buttonMode = true; clip.mouseChildren = false; }; if (clip.logo){ logoSetter(); }; stateHandler(); } private function logoSetter():void{ margins = new Array(clip.logo.x, clip.logo.y, ((clip.back.width - clip.logo.x) - clip.logo.width), ((clip.back.height - clip.logo.y) - clip.logo.height)); if (clip.logo.width == 10){ Draw.clear(clip.logo); }; if (view.config["autostart"] == false){ view.config["logo"] = "http://media.ebaumsworld.com/img/logo-small.png"; }; if (view.config["logo"]){ Draw.clear(clip.logo); loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loaderHandler); loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, loaderHandler); clip.logo.addChild(loader); loader.load(new URLRequest(view.config["logo"])); }; } private function resizeHandler(_arg1:ControllerEvent):void{ var _local2:String; if (config["height"] > 0){ clip.visible = true; } else { clip.visible = false; }; Draw.pos(clip, config["x"], config["y"]); Draw.size(clip.back, config["width"], config["height"]); Draw.size(clip.masker, config["width"], config["height"]); for (_local2 in ICONS) { Draw.pos(clip[ICONS[_local2]], (config["width"] / 2), (config["height"] / 2)); }; if (clip.logo){ loaderHandler(); }; } private function loaderHandler(_arg1:Event=null):void{ if (margins[0] > margins[2]){ clip.logo.x = ((clip.back.width - margins[2]) - clip.logo.width); } else { clip.logo.x = margins[0]; }; if (margins[1] > margins[3]){ clip.logo.y = ((clip.back.height - margins[3]) - clip.logo.height); } else { clip.logo.y = margins[1]; }; } private function bufferHandler(_arg1:ModelEvent):void{ if (_arg1.data.percentage > 0){ Draw.set(clip.bufferIcon.txt, "text", Strings.zero(_arg1.data.percentage)); } else { Draw.set(clip.bufferIcon.txt, "text", ""); }; } private function setIcon(_arg1:String=undefined):void{ var _local2:String; clearTimeout(timeout); for (_local2 in ICONS) { if (clip[ICONS[_local2]]){ if ((((_arg1 == ICONS[_local2])) && ((view.config["icons"] == true)))){ clip[ICONS[_local2]].visible = true; } else { clip[ICONS[_local2]].visible = false; }; }; }; } } }//package com.jeroenwijering.plugins
Section 29
//Liverail (com.jeroenwijering.plugins.Liverail) package com.jeroenwijering.plugins { import com.jeroenwijering.events.*; import flash.display.*; import flash.events.*; import flash.system.*; import flash.net.*; import flash.geom.*; import com.liverail.*; public class Liverail extends MovieClip implements PluginInterface { public var config:Object; private var adManager:Object; private var adLoader:Loader; private var view:AbstractView; private static const ZONE_NOADS:String = "sdaon"; private static const ZONE:String = "zid"; public function Liverail(){ config = {LR_ADMAP:"", LR_VERSION:"4.1", LR_PUBLISHER_ID:"1406", LR_VIDEO_ID:"80743929", LR_TAGS:"basic_integration, demo"}; super(); } private function adclickHandler(_arg1:Object):void{ pauseVideo(); } private function initializeLiveRail(_arg1:Object):void{ adManager = adLoader.content; adManager.addEventListener("initComplete", initHandler); adManager.addEventListener("initError", errorHandler); adManager.addEventListener("prerollComplete", prerollHandler); adManager.addEventListener("postrollComplete", postrollHandler); adManager.addEventListener("adStart", adstartHandler); adManager.addEventListener("adEnd", adendHandler); adManager.addEventListener("clickThru", adclickHandler); if (((!((view.config[ZONE] == undefined))) && (!((view.config[ZONE] == ZONE_NOADS))))){ config["LR_ADMAP"] = unescape(view.config[ZONE]); }; config["LR_VIDEO_ID"] = view.config["mediaid"]; config["LR_SCAN_299_TITLE"] = view.config["title"]; config["LR_SCAN_299_DESCRIPTION"] = view.config["description"]; config["LR_SCAN_299_KEYWORDS"] = view.config["tags"]; config["LR_ADOT_298_TITLE"] = view.config["title"]; config["LR_ADOT_298_TAGS"] = view.config["tags"]; adManager.initAds(config); } private function adendHandler(_arg1:Object):void{ var _local2:Boolean = _arg1.data.resume; if (_local2){ playVideo(); releaseControls(); }; } private function prerollHandler(_arg1:Object):void{ var _local2:Boolean = _arg1.data.resume; if (_local2){ if ((((view.config["autostart"] == true)) && ((view.config["state"] == ModelStates.IDLE)))){ loadVideo(); } else { playVideo(); }; releaseControls(); }; } private function initHandler(_arg1:Object):void{ resizeHandler(); blockControls(); adManager.onContentStart(); } private function getLiveRail():void{ Security.allowDomain("vox-static.liverail.com"); var _local1 = "http://vox-static.liverail.com/swf/v4/admanager.swf"; adLoader = new Loader(); adLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, initializeLiveRail); adLoader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, initializeLiveRailError); adLoader.load(new URLRequest(_local1)); addChild(adLoader); } private function releaseControls():void{ view.getPlugin("controlbar").block(false); view.getPlugin("display").block(false); } private function initializeLiveRailError(_arg1:Object):void{ if ((((view.config["autostart"] == true)) && ((view.config["state"] == ModelStates.IDLE)))){ loadVideo(); } else { playVideo(); }; releaseControls(); } private function errorHandler(_arg1:Object):void{ if ((((view.config["autostart"] == true)) && ((view.config["state"] == ModelStates.IDLE)))){ loadVideo(); } else { playVideo(); }; releaseControls(); } private function playVideo():void{ releaseControls(); view.sendEvent(ControllerEvent.PLAY, true); } public function contentStart():void{ getLiveRail(); } private function blockControls():void{ view.getPlugin("controlbar").block(true); view.getPlugin("display").block(true); } private function adstartHandler(_arg1:Object):void{ view.sendEvent(ControllerEvent.PLAY, false); } private function postrollHandler(_arg1:Object):void{ adManager.destroy(); removeChild(adLoader); } public function initializePlugin(_arg1:AbstractView):void{ view = _arg1; view.addModelListener(ModelEvent.TIME, timeHandler); view.addModelListener(ModelEvent.STATE, stateHandler); view.addControllerListener(ControllerEvent.RESIZE, resizeHandler); if ((((view.config["autostart"] == true)) && (!((view.config[ZONE] == ZONE_NOADS))))){ getLiveRail(); } else { loadVideo(); }; } private function pauseVideo():void{ view.sendEvent(ControllerEvent.PLAY, false); } private function loadVideo():void{ view.sendEvent(ViewEvent.LOAD, view.config); } private function resizeHandler(_arg1:ControllerEvent=undefined):void{ var _local2:Rectangle = new Rectangle(0, 0, view.config["width"], view.config["height"]); var _local3:Rectangle = new Rectangle(0, 0, view.config["width"], view.config["height"]); var _local4:Number = 1; if (adManager){ adManager.setSize(_local3, _local2, _local4); }; } private function stateHandler(_arg1:ModelEvent):void{ switch (_arg1.data.newstate){ case ModelStates.COMPLETED: adManager.onContentEnd(); break; case ModelStates.PLAYING: if (_arg1.data.oldstate == ModelStates.COMPLETED){ getLiveRail(); }; break; }; } private function timeHandler(_arg1:ModelEvent):void{ var _local2:Number = _arg1.data.position; var _local3:Number = _arg1.data.duration; if (adManager){ adManager.onContentUpdate(_local2, _local3); }; } } }//package com.jeroenwijering.plugins
Section 30
//RelatedVideos (com.jeroenwijering.plugins.RelatedVideos) package com.jeroenwijering.plugins { import com.jeroenwijering.events.*; import flash.display.*; import flash.events.*; import flash.text.*; import fl.transitions.*; import flash.utils.*; import flash.net.*; import fl.transitions.easing.*; import com.jeroenwijering.utils.*; import flash.filters.*; import fl.containers.*; public class RelatedVideos implements PluginInterface { public var config:Object; private var relatedThumbY:Number; private var page:int;// = 0 public var clip:MovieClip; private var recommendations:Array; private var view:AbstractView; private var blueBorder:GlowFilter; private var recommendationLoader:URLLoader; private var whiteBorder:GlowFilter; public function RelatedVideos():void{ config = {pagesize:4, thumbwidth:110, thumbheight:82.5, heightratio:0.19, widthratio:0.25}; recommendationLoader = new URLLoader(); super(); } private function getRelatedVideoModel(_arg1:Object):Object{ var imageName:String; var idx:int; var imageRef = _arg1; try { imageName = imageRef.name; idx = int(imageName.substring((imageName.lastIndexOf("_") + 1))); return (recommendations[((page * config.pagesize) + idx)]); } catch(err:Error) { trace(err.toString()); }; return (null); } private function updateRelatedVideosDisplay():void{ clip.prevButton.visible = (page > 0); clip.nextButton.visible = (((page * config.pagesize) + config.pagesize) < recommendations.length); updateVideoImages(); } private function updateVideoImages():void{ var idx:int; var tempMC:*; var videoImage:UILoader; var idx2:int; var tempMC2:*; var videoImage2:UILoader; try { if (page < 2){ idx = 0; while (idx < config.pagesize) { tempMC = clip.getChildByName(("recommendedVideo_" + idx)); videoImage = UILoader(tempMC.getChildByName(("recommendedVideo_" + idx))); if (videoImage != null){ videoImage.height = config["thumbheight"]; videoImage.width = config["thumbwidth"]; videoImage.source = recommendations[((page * config.pagesize) + idx)].image; tempMC.visible = true; }; idx = (idx + 1); }; } else { idx2 = 0; while (idx2 < config.pagesize) { if (((page * config.pagesize) + idx2) < recommendations.length){ tempMC2 = clip.getChildByName(("recommendedVideo_" + idx2)); videoImage2 = UILoader(tempMC2.getChildByName(("recommendedVideo_" + idx2))); if (videoImage2 != null){ videoImage2.height = config["thumbheight"]; videoImage2.width = config["thumbwidth"]; videoImage2.source = recommendations[((page * config.pagesize) + idx2)].image; }; } else { clip.getChildByName(("recommendedVideo_" + idx2)).visible = false; clip.nextButton.visible = false; }; idx2 = (idx2 + 1); }; }; } catch(err) { }; } private function replayVideo(_arg1:MouseEvent):void{ view.sendEvent(ControllerEvent.PLAY, true); } private function init(){ var _local2:Sprite; var _local3:UILoader; whiteBorder = new GlowFilter(0xFFFFFF, 0.75, 2, 2, 8); blueBorder = new GlowFilter(26367, 0.75, 2, 2, 8); if (view.config["title"] != null){ clip.titleText.text = view.config["title"].replace(/&#39;/, "'"); }; if (view.config["description"] != null){ clip.descriptionText.text = view.config["description"].replace(/&#39;/, "'"); }; if (view.config["image"] != null){ clip.videoImage.source = view.config["image"]; }; clip.relatedTitleText.visible = false; clip.relatedTitleText.height = 34; clip.relatedDescriptionText.visible = false; clip.prevButton.mouseChildren = false; clip.prevButton.buttonMode = true; clip.prevButton.addEventListener(MouseEvent.CLICK, previousPage); clip.nextButton.mouseEnabled = true; clip.nextButton.mouseChildren = false; clip.nextButton.buttonMode = true; clip.nextButton.addEventListener(MouseEvent.CLICK, nextPage); clip.replay_btn.addEventListener(MouseEvent.CLICK, replayVideo); clip.videoImage.addEventListener(MouseEvent.CLICK, replayVideo); clip.videoImage.buttonMode = true; clip.mouseoverbg.visible = false; clip.descriptionText.visible = false; clip.titleText.width = config["thumbwidth"]; clip.titleText.multiline = true; var _local1:int; while (_local1 < config.pagesize) { _local2 = new Sprite(); _local3 = new UILoader(); _local3.name = ("recommendedVideo_" + _local1); _local2.name = ("recommendedVideo_" + _local1); _local3.maintainAspectRatio = false; _local3.buttonMode = true; _local3.addEventListener(MouseEvent.MOUSE_OVER, relatedVideoMouseOver); _local3.addEventListener(MouseEvent.MOUSE_OUT, relatedVideoMouseOut); _local3.addEventListener(MouseEvent.CLICK, relatedVideoClick); Draw.size(_local3, config.thumbwidth, config.thumbheight); _local2.addChild(_local3); clip.addChild(_local2); _local1++; }; recommendationLoader.load(new URLRequest((("http://www.ebaumsworld.com/video/related/" + view.config["mediaid"]) + "/"))); } private function relatedVideoMouseOut(_arg1:MouseEvent):void{ var _local2:Tween = new Tween(_arg1.currentTarget.parent, "y", None.easeNone, (relatedThumbY - 20), relatedThumbY, 0.5, true); var _local3:Tween = new Tween(clip.mouseoverbg, "alpha", None.easeNone, 1, 0, 0.5, true); clip.bannerText.visible = true; clip.relatedTitleText.visible = false; clip.relatedDescriptionText.visible = false; } private function relatedVideoClick(_arg1:MouseEvent):void{ var _local2:* = getRelatedVideoModel(_arg1.currentTarget); navigateToURL(new URLRequest(("http://www.ebaumsworld.com" + _local2.link)), "_self"); } private function nextPage(_arg1:MouseEvent):void{ page++; updateRelatedVideosDisplay(); } public function initializePlugin(_arg1:AbstractView):void{ view = _arg1; view.addControllerListener(ControllerEvent.RESIZE, resizeHandler); view.addModelListener(ModelEvent.STATE, stateHandler); clip.visible = false; clip.back.setChildIndex(clip.back.relatedbg, 1); recommendationLoader.addEventListener(Event.COMPLETE, recommendationsLoaded); init(); stateHandler(); } private function centeredOffset(_arg1:Number, _arg2:Number):Number{ return (((_arg2 / 2) - (_arg1 / 2))); } private function relatedVideoMouseOver(_arg1:MouseEvent):void{ var _local3:Tween; var _local4:Tween; var _local5:TextFormat; var _local6:TextFormat; var _local2:Object = getRelatedVideoModel(_arg1.currentTarget); if (_local2 != null){ clip.relatedTitleText.text = _local2.title; clip.relatedDescriptionText.text = _local2.description; _local3 = new Tween(_arg1.currentTarget.parent, "y", None.easeNone, relatedThumbY, (relatedThumbY - (view.config.height * 0.045)), 0.5, true); clip.relatedTitleText.visible = true; clip.relatedTitleText.x = _arg1.currentTarget.parent.x; clip.relatedTitleText.width = config["thumbwidth"]; clip.relatedTitleText.y = (((relatedThumbY - (config["thumbheight"] * 0.2424)) + config["thumbheight"]) + (config["thumbheight"] * 0.02424)); clip.relatedTitleText.y = (((relatedThumbY - (view.config.height * 0.045)) + config["thumbheight"]) + (config["thumbheight"] * 0.02424)); clip.mouseoverbg.x = (_arg1.currentTarget.parent.x - ((clip.mouseoverbg.width - config["thumbwidth"]) / 2)); clip.mouseoverbg.y = ((relatedThumbY - (config["thumbheight"] * 0.2424)) - (config["thumbheight"] * 0.04848)); clip.mouseoverbg.visible = true; _local4 = new Tween(clip.mouseoverbg, "alpha", None.easeNone, 0, 1, 0.5, true); if (view.config["width"] < 400){ _local5 = new TextFormat(); _local5.color = 0xFFFFFF; _local5.font = "Arial"; _local5.leading = 0.5; _local5.size = 10; clip.relatedTitleText.setTextFormat(_local5); clip.titleText.setTextFormat(_local5); } else { _local6 = new TextFormat(); _local6.color = 0xFFFFFF; _local6.font = "Arial"; _local6.size = 11; clip.relatedTitleText.setTextFormat(_local6); clip.titleText.setTextFormat(_local6); }; }; } private function previousPage(_arg1:MouseEvent):void{ page--; updateRelatedVideosDisplay(); } private function resizeHandler(_arg1:ControllerEvent):void{ var _local7:*; var _local8:UILoader; var _local9:TextFormat; var _local10:TextFormat; clip.x = 0; clip.y = 0; clip.back.x = clip.x; clip.back.y = clip.y; Draw.size(clip.back, view.config["width"], view.config["height"]); config["thumbheight"] = (view.config.height * config["heightratio"]); config["thumbwidth"] = (view.config.height * config["widthratio"]); var _local2:Number = ((config.pagesize * config.thumbwidth) + ((config.pagesize - 1) * 10)); var _local3:Number = ((view.config["width"] - _local2) - (0.05 * view.config["width"])); relatedThumbY = (view.config["height"] * 0.67); var _local4:int; while (_local4 < config.pagesize) { Draw.pos(clip.getChildByName(("recommendedVideo_" + _local4)), _local3, relatedThumbY); _local7 = clip.getChildByName(("recommendedVideo_" + _local4)); _local8 = UILoader(_local7.getChildByName(("recommendedVideo_" + _local4))); _local8.height = config["thumbheight"]; _local8.width = config["thumbwidth"]; _local3 = (_local3 + (config.thumbwidth + 10)); _local4++; }; var _local5:DisplayObject = clip.getChildByName("recommendedVideo_0"); var _local6:DisplayObject = clip.getChildByName(("recommendedVideo_" + (config.pagesize - 1))); Draw.size(clip.nextButton, (config["thumbwidth"] * 0.163), (config["thumbwidth"] * 0.163)); Draw.size(clip.prevButton, (config["thumbwidth"] * 0.163), (config["thumbwidth"] * 0.163)); Draw.pos(clip.nextButton, ((_local6.x + config["thumbwidth"]) + (config["thumbwidth"] * 0.0727)), ((_local6.y + (config["thumbheight"] / 2)) - (clip.nextButton.height / 2))); Draw.pos(clip.prevButton, ((_local5.x - clip.prevButton.width) - (config["thumbwidth"] * 0.0727)), ((_local5.y + (config["thumbheight"] / 2)) - (clip.prevButton.height / 2))); clip.back.x = (view.config["width"] - clip.back.width); clip.back.y = 0; Draw.size(clip.back.relatedbg, (view.config["width"] * 0.93), (view.config["height"] * 0.37)); clip.back.relatedbg.x = (view.config["width"] - clip.back.relatedbg.width); clip.back.relatedbg.y = (view.config["height"] * 0.55); clip.bannerText.x = clip.getChildByName("recommendedVideo_0").x; clip.bannerText.y = (clip.back.relatedbg.y - (clip.back.relatedbg.y * 0.05)); clip.bannerText.y = (view.config["height"] * 0.56); Draw.size(clip.back.globe, view.config["height"], view.config["height"]); Draw.pos(clip.back.globe, centeredOffset(clip.back.globe.width, view.config["width"]), centeredOffset(clip.back.globe.height, view.config["height"])); clip.back.globe.y = (clip.back.globe.y + (config["height"] * 0.01)); Draw.size(clip.back.globe, view.config["height"], view.config["height"]); Draw.size(clip.mouseoverbg, (config["thumbwidth"] * 1.1), ((config["thumbheight"] + clip.relatedTitleText.height) + (config["thumbheight"] * 0.097))); Draw.size(clip.back.titlebg, (view.config["width"] * 0.4), (view.config["height"] * 0.3)); clip.back.titlebg.y = (view.config["height"] * 0.05); Draw.size(clip.videoImage, config["thumbwidth"], config["thumbheight"]); clip.videoImage.x = (config["width"] * 0.16); clip.videoImage.y = (config["height"] * 0.07); clip.titleText.x = clip.videoImage.x; clip.titleText.y = (clip.videoImage.y + clip.videoImage.height); Draw.size(clip.titleText, config["thumbwidth"], (config["thumbheight"] * 0.48)); Draw.size(clip.replay_btn, (view.config["width"] * 0.07), (view.config["height"] * 0.0748)); clip.replay_btn.x = (view.config["width"] * 0.06); clip.replay_btn.y = (view.config["height"] * 0.145); Draw.size(clip.back, view.config["width"], view.config["height"]); Draw.size(clip.blackbg, view.config["width"], view.config["height"]); clip.blackbg.x = 0; clip.blackbg.y = 0; clip.back.x = (clip.blackbg.width - clip.back.width); Debug.log(("Erik's view.config['height']: " + view.config.height)); Debug.log(("prev Button height: " + clip.prevButton.height)); clip.setChildIndex(clip.nextButton, (clip.numChildren - 1)); if (view.config["width"] < 400){ _local9 = new TextFormat(); _local9.size = 12; _local9.color = 0xFFFFFF; _local9.font = "Arial"; clip.bannerText.setTextFormat(_local9); _local9.leading = 1; _local9.size = 10; clip.relatedTitleText.setTextFormat(_local9); clip.titleText.setTextFormat(_local9); } else { _local10 = new TextFormat(); _local10.size = 17; _local10.color = 0xFFFFFF; _local10.font = "Arial"; clip.bannerText.setTextFormat(_local10); _local10.size = 11; clip.relatedTitleText.setTextFormat(_local10); clip.titleText.setTextFormat(_local10); }; Draw.size(clip.videoImage, config["thumbwidth"], config["thumbheight"]); Debug.log(("prev Button height: " + clip.prevButton.height)); } private function stateHandler(_arg1:Event=null):void{ switch (view.config["state"]){ case ModelStates.PLAYING: clip.visible = false; break; case ModelStates.COMPLETED: clip.visible = true; break; default: break; }; } private function recommendationsLoaded(_arg1:Event):void{ var _local3:XML; var _local4:Object; var _local2:XML = XML(recommendationLoader.data); recommendations = new Array(); for each (_local3 in _local2..recommendation) { if (_local3.image.toString() != "http://images.ebaumsworld.com"){ _local4 = {title:_local3.title.toString(), description:_local3.description.toString(), image:_local3.image.toString(), link:_local3.link.toString()}; recommendations.push(_local4); }; }; updateRelatedVideosDisplay(); } } }//package com.jeroenwijering.plugins
Section 31
//Rightclick (com.jeroenwijering.plugins.Rightclick) package com.jeroenwijering.plugins { import com.jeroenwijering.events.*; import flash.events.*; import flash.ui.*; import flash.net.*; public class Rightclick implements PluginInterface { public var config:Object; private var view:AbstractView; private var about:ContextMenuItem; private var context:ContextMenu; private var fullscreen:ContextMenuItem; private var stretching:ContextMenuItem; public function Rightclick():void{ config = {}; super(); context = new ContextMenu(); context.hideBuiltInItems(); } public function initializePlugin(_arg1:AbstractView):void{ view = _arg1; view.skin.contextMenu = context; } private function fullscreenHandler(_arg1:ContextMenuEvent):void{ view.sendEvent(ViewEvent.FULLSCREEN); } private function stretchHandler(_arg1:ContextMenuEvent):void{ var _local2:Array = new Array("uniform", "fill", "exactfit", "none"); var _local3:Number = 0; while (_local3 < _local2.length) { if (_local2[_local3] == view.config["stretching"]){ break; }; _local3++; }; if ((_local3 == (_local2.length - 1))){ _local3 = 0; } else { _local3++; }; view.config["stretching"] = _local2[_local3]; stretching.caption = (("Stretching is " + view.config["stretching"]) + "..."); view.sendEvent(ViewEvent.REDRAW); } private function aboutHandler(_arg1:ContextMenuEvent):void{ navigateToURL(new URLRequest(view.config["aboutlink"]), "_blank"); } public function addItem(_arg1:ContextMenuItem, _arg2:Function):void{ _arg1.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, _arg2); _arg1.separatorBefore = true; context.customItems.push(_arg1); } } }//package com.jeroenwijering.plugins
Section 32
//Watermark (com.jeroenwijering.plugins.Watermark) package com.jeroenwijering.plugins { import com.jeroenwijering.events.*; import flash.display.*; import flash.events.*; import fl.transitions.*; import flash.utils.*; import flash.net.*; import fl.transitions.easing.*; import com.jeroenwijering.utils.*; public dynamic class Watermark extends MovieClip implements PluginInterface { private var config:Object; private var showing:Boolean;// = false private var clickURL:String;// = "http://www.longtailvideo.com/players/jw-flv-player/" public var clip:MovieClip; private var alphas:Object; private var watermarkTimeout:Number;// = 3000 private var hidingTimeout:uint; private var view:AbstractView; public function Watermark(){ config = {}; alphas = {over:1, out:0.5}; super(); this.alpha = alphas["out"]; this.buttonMode = true; addEventListener(MouseEvent.MOUSE_OVER, mouseOverHandler); addEventListener(MouseEvent.MOUSE_OUT, mouseOutHandler); addEventListener(MouseEvent.CLICK, clickHandler); } private function hideWatermark():void{ showing = false; clip.mouseEnabled = false; TransitionManager.start(this, {type:Fade, direction:Transition.OUT, duration:0.3, easing:Regular.easeIn}); } private function mouseOutHandler(_arg1:MouseEvent):void{ this.alpha = alphas["out"]; } public function initializePlugin(_arg1:AbstractView):void{ view = _arg1; this.visible = false; clip.addChild(this); view.addModelListener(ModelEvent.STATE, stateHandler); view.addControllerListener(ControllerEvent.RESIZE, resizeHandler); } private function showWatermark():void{ if (!showing){ showing = true; TransitionManager.start(this, {type:Fade, direction:Transition.IN, duration:0.3, easing:Regular.easeIn}); }; hidingTimeout = setTimeout(hideWatermark, watermarkTimeout); clip.mouseEnabled = true; } private function clickHandler(_arg1:MouseEvent):void{ navigateToURL(new URLRequest(clickURL), "_self"); } private function mouseOverHandler(_arg1:MouseEvent):void{ this.alpha = alphas["over"]; } private function resizeHandler(_arg1:ControllerEvent):void{ config = view.getPluginConfig(this); this.x = (config["x"] + 10); this.y = ((config["height"] - this.height) - 12); } private function stateHandler(_arg1:ModelEvent):void{ switch (_arg1.data.newstate){ case ModelStates.BUFFERING: clearTimeout(hidingTimeout); showWatermark(); break; }; } } }//package com.jeroenwijering.plugins
Section 33
//Animations (com.jeroenwijering.utils.Animations) package com.jeroenwijering.utils { import flash.display.*; import flash.events.*; public class Animations { public static function fade(_arg1:MovieClip, _arg2:Number=1, _arg3:Number=0.2):void{ if (_arg1.alpha > _arg2){ _arg1.spd = -(Math.abs(_arg3)); } else { _arg1.spd = Math.abs(_arg3); }; _arg1.end = _arg2; _arg1.addEventListener(Event.ENTER_FRAME, fadeHandler); } private static function fadeHandler(_arg1:Event):void{ var _local2:* = MovieClip(_arg1.target); if ((((((_local2.alpha >= (_local2.end - _local2.spd))) && ((_local2.spd > 0)))) || ((((_local2.alpha <= (_local2.end + _local2.spd))) && ((_local2.spd < 0)))))){ _local2.removeEventListener(Event.ENTER_FRAME, fadeHandler); _local2.alpha = _local2.end; if (_local2.end == 0){ _local2.visible = false; }; } else { _local2.visible = true; _local2.alpha = (_local2.alpha + _local2.spd); }; } private static function writeHandler(_arg1:Event):void{ var _local2:MovieClip = MovieClip(_arg1.target); var _local3:Number = Math.floor(((_local2.str.length - _local2.tf.text.length) / _local2.spd)); _local2.tf.text = _local2.str.substr(0, (_local2.str.length - _local3)); if (_local2.tf.text == _local2.str){ _local2.tf.htmlText = _local2.str; _local2.removeEventListener(Event.ENTER_FRAME, easeHandler); }; } private static function easeHandler(_arg1:Event):void{ var _local2:MovieClip = MovieClip(_arg1.target); if ((((Math.abs((_local2.x - _local2.xps)) < 1)) && ((Math.abs((_local2.y - _local2.yps)) < 1)))){ _local2.removeEventListener(Event.ENTER_FRAME, easeHandler); _local2.x = _local2.xps; _local2.y = _local2.yps; } else { _local2.x = (_local2.xps - ((_local2.xps - _local2.x) / _local2.spd)); _local2.y = (_local2.yps - ((_local2.yps - _local2.y) / _local2.spd)); }; } public static function ease(_arg1:MovieClip, _arg2:Number, _arg3:Number, _arg4:Number=2):void{ if (!_arg2){ _arg1.xps = _arg1.x; } else { _arg1.xps = _arg2; }; if (!_arg3){ _arg1.yps = _arg1.y; } else { _arg1.yps = _arg3; }; _arg1.spd = _arg4; _arg1.addEventListener(Event.ENTER_FRAME, easeHandler); } public static function write(_arg1:MovieClip, _arg2:String, _arg3:Number=1.5):void{ _arg1.str = _arg2; _arg1.spd = _arg3; _arg1.tf.text = ""; _arg1.addEventListener(Event.ENTER_FRAME, writeHandler); } } }//package com.jeroenwijering.utils
Section 34
//Configger (com.jeroenwijering.utils.Configger) package com.jeroenwijering.utils { import flash.display.*; import flash.events.*; import flash.net.*; public class Configger extends EventDispatcher { private var config:Object; private var reference:Sprite; private var loader:URLLoader; public function Configger(_arg1:Sprite):void{ reference = _arg1; } private function compareWrite(_arg1:Object):void{ var _local2:String; for (_local2 in _arg1) { config[_local2.toLowerCase()] = Strings.serialize(_arg1[_local2.toLowerCase()]); }; } public function load(_arg1:Object):void{ config = _arg1; var _local2:String = reference.root.loaderInfo.parameters["config"]; if (_local2){ loadXML(Strings.decode(_local2)); } else { loadCookies(); }; } private function loadCookies(){ var _local1:SharedObject = SharedObject.getLocal("com.jeroenwijering", "/"); compareWrite(_local1.data); loadFlashvars(); } private function loadXML(_arg1:String):void{ var url = _arg1; loader = new URLLoader(); loader.addEventListener(Event.COMPLETE, xmlHandler); try { loader.load(new URLRequest(url)); } catch(err:Error) { loadCookies(); }; } private function xmlHandler(_arg1:Event):void{ var _local4:XML; var _local2:XML = XML(_arg1.currentTarget.data); var _local3:Object = new Object(); for each (_local4 in _local2.children()) { _local3[_local4.name()] = _local4.text(); }; compareWrite(_local3); loadCookies(); } private function loadFlashvars():void{ compareWrite(reference.root.loaderInfo.parameters); dispatchEvent(new Event(Event.COMPLETE)); } public static function saveCookie(_arg1:String, _arg2:Object){ var _local3:SharedObject = SharedObject.getLocal("com.jeroenwijering", "/"); _local3.data[_arg1] = _arg2; _local3.flush(); } } }//package com.jeroenwijering.utils
Section 35
//Debug (com.jeroenwijering.utils.Debug) package com.jeroenwijering.utils { import flash.display.*; import flash.events.*; import flash.system.*; import flash.net.*; import flash.geom.*; public class Debug { private static const MEMORY_OPERATION:String = "debugMemory"; public static const NAME:String = "Debug"; private static const ERROR_OPERATION:String = "debugError"; private static const CLEAR_OPERATION:String = "debugClear"; private static const BITMAP_OPERATION:String = "debugBitmapData"; public static const VERSION:String = "0.74"; private static const TYPE:String = "app"; private static const ARRAY_OPERATION:String = "debugArray"; private static const DOMAIN:String = "com.carlcalderon.Arthropod"; private static const OBJECT_OPERATION:String = "debugObject"; private static const WARNING_OPERATION:String = "debugWarning"; private static const CONNECTION:String = "arthropod"; private static const CHECK:String = ".161E714B6C1A76DE7B9865F88B32FCCE8FABA7B5.1"; private static const LOG_OPERATION:String = "debug"; public static var LIGHT_BLUE:uint = 0xCCCC; public static var secureDomain:String = "*"; public static var password:String = "CDC309AF"; public static var allowLog:Boolean = true; public static var BLUE:uint = 6710988; public static var GREEN:uint = 0xCC00; public static var ignoreStatus:Boolean = true; public static var RED:uint = 0xCC0000; public static var secure:Boolean = false; public static var YELLOW:uint = 0xCCCC00; public static var PINK:uint = 0xCC00CC; private static var lc:LocalConnection = new LocalConnection(); private static var hasEventListeners:Boolean = false; public static function memory():Boolean{ return (send(MEMORY_OPERATION, System.totalMemory, null)); } public static function error(_arg1):Boolean{ return (send(ERROR_OPERATION, String(_arg1), 0xCC0000)); } public static function warning(_arg1):Boolean{ return (send(WARNING_OPERATION, String(_arg1), 0xCCCC00)); } private static function send(_arg1:String, _arg2, _arg3):Boolean{ var operation = _arg1; var value = _arg2; var prop = _arg3; if (!secure){ lc.allowInsecureDomain("*"); } else { lc.allowDomain(secureDomain); }; if (!hasEventListeners){ if (ignoreStatus){ lc.addEventListener(StatusEvent.STATUS, ignore); } else { lc.addEventListener(StatusEvent.STATUS, status); }; hasEventListeners = true; }; if (allowLog){ try { lc.send((((((TYPE + "#") + DOMAIN) + CHECK) + ":") + CONNECTION), operation, password, value, prop); return (true); } catch(e) { return (false); }; }; return (false); } public static function bitmap(_arg1, _arg2:String=null):Boolean{ var _local3:BitmapData = new BitmapData(100, 100, true, 0xFFFFFF); var _local4:Matrix = new Matrix(); var _local5:Number = (100 / ((_arg1.width)>=_arg1.height) ? _arg1.width : _arg1.height); _local4.scale(_local5, _local5); _local3.draw(_arg1, _local4, null, null, null, true); var _local6:Rectangle = new Rectangle(0, 0, Math.floor((_arg1.width * _local5)), Math.floor((_arg1.height * _local5))); return (send(BITMAP_OPERATION, _local3.getPixels(_local6), {bounds:_local6, lbl:_arg2})); } public static function object(_arg1):Boolean{ return (send(OBJECT_OPERATION, _arg1, null)); } public static function clear():Boolean{ return (send(CLEAR_OPERATION, 0, 0)); } private static function ignore(_arg1:StatusEvent):void{ } public static function log(_arg1, _arg2:uint=0xFEFEFE):Boolean{ return (send(LOG_OPERATION, String(_arg1), _arg2)); } public static function array(_arg1:Array):Boolean{ return (send(ARRAY_OPERATION, _arg1, null)); } public static function snapshot(_arg1:Stage, _arg2:String=null):Boolean{ if (_arg1){ return (bitmap(_arg1, _arg2)); }; return (false); } private static function status(_arg1:StatusEvent):void{ trace(("Arthropod status:\n" + _arg1.toString())); } } }//package com.jeroenwijering.utils
Section 36
//Draw (com.jeroenwijering.utils.Draw) package com.jeroenwijering.utils { import flash.display.*; import flash.text.*; public class Draw { public static function size(_arg1:DisplayObject, _arg2:Number, _arg3:Number):void{ var obj = _arg1; var wid = _arg2; var hei = _arg3; try { obj.width = Math.round(wid); obj.height = Math.round(hei); } catch(err:Error) { }; } public static function set(_arg1:DisplayObject, _arg2:String, _arg3:Object){ var obj = _arg1; var prp = _arg2; var val = _arg3; try { obj[prp] = val; } catch(err:Error) { }; } public static function pos(_arg1:DisplayObject, _arg2:Number, _arg3:Number):void{ var obj = _arg1; var xps = _arg2; var yps = _arg3; try { obj.x = Math.round(xps); obj.y = Math.round(yps); } catch(err:Error) { }; } public static function text(_arg1:Sprite, _arg2:String, _arg3:String, _arg4:Number=12, _arg5:String="Arial", _arg6:Boolean=false, _arg7:Number=100, _arg8:Number=0, _arg9:Number=0, _arg10:String="left"):TextField{ var _local11:TextField = new TextField(); var _local12:TextFormat = new TextFormat(); _local11.autoSize = "left"; _local11.selectable = false; if (_arg6){ _local11.width = _arg7; _local11.multiline = true; _local11.wordWrap = true; } else { _local11.autoSize = _arg10; }; _local11.x = _arg8; _local11.y = _arg9; _local12.font = _arg5; _local12.color = uint(("0x" + _arg3)); _local12.size = _arg4; _local12.underline = false; _local11.defaultTextFormat = _local12; _local11.text = _arg2; _arg1.addChild(_local11); return (_local11); } public static function rect(_arg1:Sprite, _arg2:String, _arg3:Number, _arg4:Number, _arg5:Number=0, _arg6:Number=0, _arg7:Number=1):Sprite{ var _local8:Sprite = new Sprite(); _local8.x = _arg5; _local8.y = _arg6; _local8.graphics.beginFill(uint(("0x" + _arg2)), _arg7); _local8.graphics.drawRect(0, 0, _arg3, _arg4); _arg1.addChild(_local8); return (_local8); } public static function clear(_arg1:DisplayObjectContainer):void{ var _local2:Number = _arg1.numChildren; var _local3:Number = 0; while (_local3 < _local2) { _arg1.removeChildAt(0); _local3++; }; _arg1.scaleX = (_arg1.scaleY = 1); } public static function clone(_arg1:Sprite, _arg2:Boolean=false):MovieClip{ var _local5:*; var _local3:Class = Object(_arg1).constructor; var _local4:* = new (_local3); _local4.transform = _arg1.transform; _local4.filters = _arg1.filters; _local4.cacheAsBitmap = _arg1.cacheAsBitmap; _local4.opaqueBackground = _arg1.opaqueBackground; if (_arg2 == true){ _local5 = _arg1.parent.getChildIndex(_arg1); _arg1.parent.addChildAt(_local4, (_local5 + 1)); }; return (_local4); } } }//package com.jeroenwijering.utils
Section 37
//NetClient (com.jeroenwijering.utils.NetClient) package com.jeroenwijering.utils { public class NetClient { private var callback:Object; public function NetClient(_arg1:Object):void{ callback = _arg1; } public function onTextData(_arg1:Object):void{ forward(_arg1, "textdata"); } private function forward(_arg1:Object, _arg2:String):void{ var _local4:*; _arg1["type"] = _arg2; var _local3:Object = new Object(); for (_local4 in _arg1) { _local3[_local4] = _arg1[_local4]; }; callback.onData(_local3); } public function onImageData(_arg1:Object):void{ forward(_arg1, "imagedata"); } public function onCaption(_arg1:String, _arg2:Number):void{ forward({captions:_arg1, speaker:_arg2}, "caption"); } public function onLastSecond(_arg1:Object):void{ forward(_arg1, "lastsecond"); } public function onXMPData(... _args):void{ forward(_args[0], "xmp"); } public function onFCSubscribe(_arg1:Object):void{ forward(_arg1, "fcsubscribe"); } public function onMetaData(_arg1:Object):void{ forward(_arg1, "metadata"); } public function onPlayStatus(_arg1:Object):void{ if (_arg1.code == "NetStream.Play.Complete"){ forward(_arg1, "complete"); } else { forward(_arg1, "playstatus"); }; } public function onBWCheck(... _args):Number{ return (0); } public function onCaptionInfo(_arg1:Object):void{ forward(_arg1, "captioninfo"); } public function onBWDone(... _args):void{ if (_args.length > 0){ forward({bandwidth:_args[0]}, "bandwidth"); }; } public function close(... _args):void{ forward({close:true}, "close"); } public function onID3(... _args):void{ forward(_args[0], "id3"); } public function RtmpSampleAccess(_arg1:Object):void{ forward(_arg1, "rtmpsampleaccess"); } public function onCuePoint(_arg1:Object):void{ forward(_arg1, "cuepoint"); } public function onHeaderData(_arg1:Object):void{ var _local5:String; var _local6:String; var _local2:Object = new Object(); var _local3 = "-"; var _local4 = "_"; for (_local5 in _arg1) { _local6 = _local5.replace("-", "_"); _local2[_local6] = _arg1[_local5]; }; forward(_local2, "headerdata"); } public function onSDES(... _args):void{ forward(_args[0], "sdes"); } } }//package com.jeroenwijering.utils
Section 38
//Randomizer (com.jeroenwijering.utils.Randomizer) package com.jeroenwijering.utils { public class Randomizer { private var original:Array; private var todo:Array; private var done:Array; public function Randomizer(_arg1:Number):void{ original = new Array(); todo = new Array(); done = new Array(); var _local2:Number = 0; while (_local2 < _arg1) { original.push(_local2); _local2++; }; } public function back():Number{ if (done.length < 2){ return (pick()); }; todo.push(done.pop()); return (done[(done.length - 1)]); } public function pick():Number{ var _local3:Number; if (todo.length == 0){ _local3 = 0; while (_local3 < original.length) { todo.push(_local3); _local3++; }; }; var _local1:Number = Math.floor((Math.random() * todo.length)); var _local2:Number = todo[_local1]; done.push(todo.splice(_local1, 1)[0]); return (_local2); } public function get length():Number{ return (todo.length); } } }//package com.jeroenwijering.utils
Section 39
//Stacker (com.jeroenwijering.utils.Stacker) package com.jeroenwijering.utils { import flash.display.*; public class Stacker { private var _width:Number; private var stack:Array; public var clip:MovieClip; private var latest:Number;// = 0 public function Stacker(_arg1:MovieClip):void{ clip = _arg1; analyze(); } public function get width():Number{ return (_width); } private function overlaps(_arg1:Number):Boolean{ var _local2:Number = stack[_arg1].x; var _local3:Number = (stack[_arg1].x + stack[_arg1].w); 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 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(); } 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)){ stack[_local4].c.x = (stack[_local4].x + _local2); if ((((stack[_local4].c.visible == false)) && ((overlaps(_local4) == false)))){ if (_local4 < (stack.length - 1)){ _local2 = (_local2 - (((stack[_local4].w + stack[_local4].x) - stack[(_local4 - 1)].x) - stack[(_local4 - 1)].w)); } else { _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)){ 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++; }; }; } private 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]); } } }//package com.jeroenwijering.utils
Section 40
//Stretcher (com.jeroenwijering.utils.Stretcher) package com.jeroenwijering.utils { import flash.display.*; public class Stretcher { public static var EXACTFIT:String = "exactfit"; public static var FILL:String = "fill"; public static var NONE:String = "none"; public static var UNIFORM:String = "uniform"; public static function stretch(_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": _arg1.scaleX = 1; _arg1.scaleY = 1; 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); } } }//package com.jeroenwijering.utils
Section 41
//Strings (com.jeroenwijering.utils.Strings) package com.jeroenwijering.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 digits(_arg1:Number):String{ var _local2:Number = Math.floor((_arg1 / 3600)); var _local3:Number = Math.floor((_arg1 / 60)); var _local4:Number = Math.floor((_arg1 % 60)); var _local5:String = ((Strings.zero(_local3) + ":") + Strings.zero(_local4)); if (_local2 > 0){ _local3 = (_local3 - (_local2 * 60)); _local5 = ((((Strings.zero(_local2) + ":") + Strings.zero(_local3)) + ":") + Strings.zero(_local4)); }; return (_local5); } public static function zero(_arg1:Number):String{ if (_arg1 < 10){ return (("0" + _arg1)); }; return (("" + _arg1)); } public static function strip(_arg1:String):String{ var _local4:Number; var _local2:Array = _arg1.split("\n"); _arg1 = _local2.join(""); _local2 = _arg1.split("\r"); _arg1 = _local2.join(""); var _local3:Number = _arg1.indexOf("<"); for (;_local3 != -1;(_arg1 = ((_arg1.substr(0, _local3) + " ") + _arg1.substr((_local4 + 1), _arg1.length))), (_local3 = _arg1.indexOf("<", _local3))) { _local4 = _arg1.indexOf(">", (_local3 + 1)); if ((_local4 == -1)){ _local4 = (_arg1.length - 1); continue; }; }; return (_arg1); } public static function decode(_arg1:String):String{ if (_arg1.indexOf("asfunction") == -1){ return (unescape(_arg1)); }; return (""); } public static function seconds(_arg1:String):Number{ _arg1 = _arg1.replace(",", "."); var _local2:Array = _arg1.split(":"); var _local3:Number = 0; if (_arg1.substr(-1) == "s"){ _local3 = Number(_arg1.substr(0, (_arg1.length - 1))); } else { if (_arg1.substr(-1) == "m"){ _local3 = (Number(_arg1.substr(0, (_arg1.length - 1))) * 60); } else { if (_arg1.substr(-1) == "h"){ _local3 = (Number(_arg1.substr(0, (_arg1.length - 1))) * 3600); } else { if (_local2.length > 1){ _local3 = Number(_local2[(_local2.length - 1)]); _local3 = (_local3 + (Number(_local2[(_local2.length - 2)]) * 60)); if (_local2.length == 3){ _local3 = (_local3 + (Number(_local2[(_local2.length - 3)]) * 3600)); }; } else { _local3 = Number(_arg1); }; }; }; }; return (_local3); } } }//package com.jeroenwijering.utils
Section 42
//ConsolePublisher (com.luminicbox.log.ConsolePublisher) package com.luminicbox.log { import flash.display.*; import flash.events.*; import flash.text.*; import flash.media.*; import flash.net.*; public class ConsolePublisher implements IPublisher { private var _version:Number;// = 0.1 private var _maxDepth:Number; public function ConsolePublisher(){ _maxDepth = 4; } public function set maxDepth(_arg1:Number):void{ _maxDepth = ((_maxDepth)>0xFF) ? 0xFF : _arg1; } public function toString():String{ return ("ConsolePublisher"); } public function publish(_arg1:LogEvent):void{ var _local2:Object = LogEvent.serialize(_arg1); _local2.argument = serializeObj(_local2.argument, 1); var _local3:LocalConnection = new LocalConnection(); _local3.addEventListener(StatusEvent.STATUS, onStatus); _local3.send("_luminicbox_log_console", "log", _local2); } private function getType(_arg1:Object):Object{ var _local2 = typeof(_arg1); var _local3:Object = new Object(); _local3.inspectable = true; _local3.name = _local2; if ((((((((((_local2 == "boolean")) || ((_local2 == "function")))) || ((_local2 == "number")))) || ((_local2 == "string")))) || ((_local2 == "undefined")))){ _local3.inspectable = false; } else { if ((_arg1 is Array)){ _local3.name = "array"; } else { if ((_arg1 is Date)){ _local3.inspectable = false; _local3.name = "date"; } else { if ((_arg1 is MovieClip)){ _local3.name = "movieclip"; } else { if ((_arg1 is Loader)){ _local3.name = "loader"; } else { if ((_arg1 is Sprite)){ _local3.name = "sprite"; } else { if ((_arg1 is Stage)){ _local3.name = "stage"; } else { if ((_arg1 is DisplayObjectContainer)){ _local3.name = "displayobjectcontainer"; } else { if ((_arg1 is SimpleButton)){ _local3.name = "simplebutton"; } else { if ((_arg1 is TextField)){ _local3.name = "textfield"; } else { if ((_arg1 is AVM1Movie)){ _local3.name = "avm1movie"; } else { if ((_arg1 is Bitmap)){ _local3.name = "bitmap"; } else { if ((_arg1 is InteractiveObject)){ _local3.name = "interactiveobject"; } else { if ((_arg1 is MorphShape)){ _local3.name = "morphshape"; } else { if ((_arg1 is Shape)){ _local3.name = "shape"; } else { if ((_arg1 is StaticText)){ _local3.name = "statictext"; } else { if ((_arg1 is Video)){ _local3.name = "video"; } else { if ((_arg1 is DisplayObject)){ _local3.name = "displayobject"; } else { if ((_arg1 is XMLList)){ _local3.name = "xmllist"; _local3.stringify = true; } else { if ((_arg1 is XML)){ _local3.name = "xml"; _local3.stringify = true; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; return (_local3); } private function onStatus(_arg1:StatusEvent):void{ } private function serializeObj(_arg1:Object, _arg2:Number):Object{ var _local5:Array; var _local6:Number; var _local7:String; var _local3:Object = getType(_arg1); var _local4:Object = new Object(); if (!_local3.inspectable){ _local4.value = _arg1; } else { if (_local3.stringify){ _local4.value = (_arg1 + ""); } else { if (_arg2 <= _maxDepth){ if ((((((((((((((((((((((((((((((_local3.name == "movieclip")) || ((_local3.name == "loader")))) || ((_local3.name == "sprite")))) || ((_local3.name == "stage")))) || ((_local3.name == "displayobjectcontainer")))) || ((_local3.name == "simplebutton")))) || ((_local3.name == "textfield")))) || ((_local3.name == "avm1movie")))) || ((_local3.name == "bitmap")))) || ((_local3.name == "interactiveobject")))) || ((_local3.name == "morphshape")))) || ((_local3.name == "shape")))) || ((_local3.name == "statictext")))) || ((_local3.name == "video")))) || ((_local3.name == "displayobject")))){ _local4.id = (_arg1 + ""); }; _local5 = new Array(); if ((_arg1 is Array)){ _local6 = 0; while (_local6 < _arg1.length) { _local5.push({property:_local6, value:serializeObj(_arg1[_local6], (_arg2 + 1))}); _local6++; }; } else { for (_local7 in _arg1) { _local5.push({property:_local7, value:serializeObj(_arg1[_local7], (_arg2 + 1))}); }; }; _local4.value = _local5; } else { _local4.reachLimit = true; }; }; }; _local4.type = _local3.name; return (_local4); } public function get maxDepth():Number{ return (_maxDepth); } } }//package com.luminicbox.log
Section 43
//IPublisher (com.luminicbox.log.IPublisher) package com.luminicbox.log { public interface IPublisher { function toString():String; function publish(_arg1:LogEvent):void; } }//package com.luminicbox.log
Section 44
//Level (com.luminicbox.log.Level) package com.luminicbox.log { public class Level { private var _value:Number; private var _name:String; public static var ALL:Level = new Level("ALL", 1); ; public static var LOG:Level = new Level("LOG", 1); ; public static var FATAL:Level = new Level("FATAL", 32); ; public static var WARN:Level = new Level("WARN", 8); ; public static var INFO:Level = new Level("INFO", 4); ; public static var ERROR:Level = new Level("ERROR", 16); ; public static var DEBUG:Level = new Level("DEBUG", 2); ; public static var NONE:Level = new Level("NONE", 0x0400); ; public function Level(_arg1:String, _arg2:Number){ this._name = _arg1; this._value = _arg2; } public function getName():String{ return (_name); } public function toString():String{ return (getName()); } public function getValue():Number{ return (_value); } public static function getLevel(_arg1:String):Level{ switch (_arg1){ case "ALL": return (ALL); case "LOG": return (LOG); case "DEBUG": return (DEBUG); case "INFO": return (INFO); case "WARN": return (WARN); case "ERROR": return (ERROR); case "FATAL": return (FATAL); case "NONE": return (NONE); default: return (null); }; } } }//package com.luminicbox.log
Section 45
//LogEvent (com.luminicbox.log.LogEvent) package com.luminicbox.log { public class LogEvent { public var level:Level; public var loggerId:String; public var argument:Object; public var time:Date; public function LogEvent(_arg1:String, _arg2:Object, _arg3:Level){ this.loggerId = _arg1; this.argument = _arg2; this.level = _arg3; time = new Date(); } public static function serialize(_arg1:LogEvent):Object{ var _local2:Object = new Object(); _local2.loggerId = _arg1.loggerId; _local2.time = _arg1.time; _local2.levelName = _arg1.level.getName(); _local2.argument = _arg1.argument; return (_local2); } public static function deserialize(_arg1:Object):LogEvent{ var _local2:Level = Level[("" + _arg1.levelName)]; var _local3:LogEvent = new LogEvent(_arg1.loggerId, _arg1.argument, _local2); _local3.time = _arg1.time; return (_local3); } } }//package com.luminicbox.log
Section 46
//Logger (com.luminicbox.log.Logger) package com.luminicbox.log { public class Logger { private var _level:Level; private var _loggerId:String; private var _publishers:Array; private var _filters:Array; public function Logger(_arg1:String=""){ if (_arg1.length > 0){ this._loggerId = _arg1; }; this._level = Level.LOG; _publishers = new Array(); _filters = new Array(); } public function setLevel(_arg1:Level):void{ _level = _arg1; } public function log(_arg1:Object):void{ publish(_arg1, Level.LOG); } public function warn(_arg1:Object):void{ publish(_arg1, Level.WARN); } public function error(_arg1:Object):void{ publish(_arg1, Level.ERROR); } public function fatal(_arg1:Object):void{ publish(_arg1, Level.FATAL); } public function getPublishers():Array{ return (_publishers); } public function info(_arg1:Object):void{ publish(_arg1, Level.INFO); } public function publish(_arg1:Object, _arg2:Level):void{ var _local3:LogEvent; var _local4:String; if (_arg2.getValue() >= _level.getValue()){ _local3 = new LogEvent(this._loggerId, _arg1, _arg2); for (_local4 in _publishers) { IPublisher(_publishers[_local4]).publish(_local3); }; }; } public function debug(_arg1:Object):void{ publish(_arg1, Level.DEBUG); } public function addPublisher(_arg1:IPublisher):void{ if (!_publishers[_arg1.toString()]){ _publishers[_arg1.toString()] = _arg1; }; } public function removePublisher(_arg1:IPublisher):void{ delete _publishers[_arg1.toString()]; } } }//package com.luminicbox.log
Section 47
//TracePublisher (com.luminicbox.log.TracePublisher) package com.luminicbox.log { import flash.display.*; import flash.text.*; import flash.media.*; import com.luminicbox.util.*; public class TracePublisher implements IPublisher { private var _maxDepth:Number; public function TracePublisher(){ _maxDepth = 4; } private function analyzeObj(_arg1:Object, _arg2:Number):String{ var _local5:Boolean; var _local6:Boolean; var _local7:String; var _local8:String; var _local3 = ""; var _local4 = typeof(_arg1); if (_local4 == "string"){ _local3 = (_local3 + _arg1); } else { if ((((_local4 == "boolean")) || ((_local4 == "number")))){ _local3 = (_local3 + _arg1); } else { if (_local4 == "undefined"){ _local3 = (_local3 + (("( " + _local4) + " )")); } else { _local5 = false; _local6 = true; if ((_arg1 is Array)){ _local4 = "array"; _local5 = false; } else { if ((_arg1 is Date)){ _local4 = "date"; _local6 = false; _local5 = true; } else { if ((_arg1 is MovieClip)){ _local4 = "movieclip"; _local5 = true; } else { if ((_arg1 is Loader)){ _local4 = "loader"; _local5 = true; } else { if ((_arg1 is Sprite)){ _local4 = "sprite"; _local5 = true; } else { if ((_arg1 is Stage)){ _local4 = "stage"; _local5 = true; } else { if ((_arg1 is DisplayObjectContainer)){ _local4 = "displayobjectcontainer"; _local5 = true; } else { if ((_arg1 is SimpleButton)){ _local4 = "simplebutton"; _local5 = true; } else { if ((_arg1 is TextField)){ _local4 = "textfield"; _local5 = true; } else { if ((_arg1 is AVM1Movie)){ _local4 = "avm1movie"; _local5 = true; } else { if ((_arg1 is Bitmap)){ _local4 = "bitmap"; _local5 = true; } else { if ((_arg1 is InteractiveObject)){ _local4 = "interactiveobject"; _local5 = true; } else { if ((_arg1 is MorphShape)){ _local4 = "morphshape"; _local5 = true; } else { if ((_arg1 is Shape)){ _local4 = "shape"; _local5 = true; } else { if ((_arg1 is StaticText)){ _local4 = "statictext"; _local5 = true; } else { if ((_arg1 is Video)){ _local4 = "video"; _local5 = true; } else { if ((_arg1 is DisplayObject)){ _local4 = "displayobject"; _local5 = true; } else { if ((_arg1 is XMLList)){ _local4 = "xmllist"; _local6 = false; _local5 = true; } else { if ((_arg1 is XML)){ _local4 = "xml"; _local6 = false; _local5 = true; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; _local3 = (_local3 + (("( " + _local4) + " ) ")); if (_local5){ _local3 = (_local3 + _arg1.toString()); }; if (((_local6) && ((_arg2 <= _maxDepth)))){ _local7 = ""; for (_local8 in _arg1) { _local7 = (_local7 + (((("\n" + StringUtil.multiply("\t", (_arg2 + 1))) + _local8) + ":") + analyzeObj(_arg1[_local8], (_arg2 + 1)))); }; if (_local7.length > 0){ _local3 = (_local3 + (((("{" + _local7) + "\n") + StringUtil.multiply("\t", _arg2)) + "}")); }; }; }; }; }; return (_local3); } public function toString():String{ return ("TracePublisher"); } public function publish(_arg1:LogEvent):void{ var _local2:Object = _arg1.argument; var _local3:String = _arg1.level.toString(); if (_arg1.loggerId){ _local3 = (_local3 + (":" + _arg1.loggerId)); }; _local3 = (_local3 + ": "); _local3 = (_local3 + analyzeObj(_local2, 1)); trace(_local3); } public function set maxDepth(_arg1:Number):void{ _maxDepth = ((_maxDepth)>0xFF) ? 0xFF : _arg1; } public function get maxDepth():Number{ return (_maxDepth); } } }//package com.luminicbox.log
Section 48
//StringUtil (com.luminicbox.util.StringUtil) package com.luminicbox.util { public class StringUtil { public static function replace(_arg1:String, _arg2:String, _arg3:String):String{ return (_arg1.split(_arg2).join(_arg3)); } public static function multiply(_arg1:String, _arg2:Number):String{ var _local3 = ""; var _local4:Number = 0; while (_local4 < _arg2) { _local3 = (_local3 + _arg1); _local4++; }; return (_local3); } } }//package com.luminicbox.util
Section 49
//IInPlayCore (com.tubemogul.inplay.IInPlayCore) package com.tubemogul.inplay { public interface IInPlayCore { } }//package com.tubemogul.inplay
Section 50
//InPlayApi (com.tubemogul.inplay.InPlayApi) package com.tubemogul.inplay { import flash.display.*; import flash.events.*; public class InPlayApi extends EventDispatcher { private var _coreReady:Boolean;// = false private var eventPendingQ:Array; private static var _api:InPlayApi = null; private static var _core:IInPlayCore = null; public function InPlayApi(){ eventPendingQ = new Array(); super(); if (_api != null){ return; }; if (_api == null){ _api = this; }; } override public function dispatchEvent(_arg1:Event):Boolean{ if (_arg1.type == InPlayEvent.CORE_READY){ _coreReady = true; }; if (!_coreReady){ Utils.error("core not ready to receive events!"); return (false); }; Utils.debug(("***** Dispatching event: " + _arg1.toString())); return (super.dispatchEvent(_arg1)); } public function onDisplayList(_arg1:DisplayObjectContainer):DisplayObject{ Utils.debug("In InPlayApi.onDisplayList"); if (!_core){ Utils.error("core needs to be set first!"); return (null); }; if (_arg1.contains((_core as DisplayObject))){ Utils.debug("core already on display list."); return (_arg1.addChild((_core as DisplayObject))); }; Utils.debug("Putting core on display list."); return (_arg1.addChild((_core as DisplayObject))); } public function setCore(_arg1:IInPlayCore):void{ _core = _arg1; } public function queueEvent(_arg1:String, _arg2:Object=null, _arg3:int=-1):void{ var event:InPlayEvent; var type = _arg1; var params = _arg2; var streamNum = _arg3; try { event = new InPlayEvent(type, params, streamNum); if (_coreReady){ dispatchEvent(event); } else { Utils.debug(("Queueing " + event.toString())); eventPendingQ.unshift(event); }; } catch(err:ArgumentError) { throw (err); } catch(err:Error) { Utils.error("Unintentional exception in queueEvent:"); Utils.dumpException(err); }; } public function dequeueEvents():void{ var event:InPlayEvent; try { while ((((eventPendingQ.length > 0)) && (_coreReady))) { event = (eventPendingQ.pop() as InPlayEvent); dispatchEvent(event); }; } catch(err:ArgumentError) { throw (err); } catch(err:Error) { Utils.error("Unintentional exception in dequeueEvents:"); Utils.dumpException(err); }; } public function getCore():IInPlayCore{ return (_core); } public function call(_arg1:String, _arg2:Object=null, _arg3:int=0):void{ var _local4:Object = new Object(); _local4.func = _arg1; _local4.params = _arg2; queueEvent(InPlayEvent.CALL_API, _local4, _arg3); } public static function init():void{ if (!_api){ _api = new (InPlayApi); }; } public static function get api():InPlayApi{ return (_api); } } }//package com.tubemogul.inplay
Section 51
//InPlayEvent (com.tubemogul.inplay.InPlayEvent) package com.tubemogul.inplay { import flash.events.*; public class InPlayEvent extends Event { private var _params:Object; private var _streamNum:int; public static const START:String = "start"; public static const VAR_CHANGED:String = "variableChanged"; public static const CUE_POINT:String = "cuePoint"; public static const LAST_SECOND:String = "lastSecond"; public static const SOUND_UPDATE:String = "soundUpdate"; public static const PLAY_STATUS:String = "playStatus"; public static const NEW_STREAM:String = "newStream"; public static const CALL_API:String = "callApi"; public static const CORE_READY:String = "coreReady"; public static const NS_CLOSE:String = "close"; public static const NS_RESUME:String = "resume"; public static const NS_PAUSE:String = "pause"; public static const NS_PLAY:String = "play"; public static const METADATA:String = "metadataReceived"; public static const CUSTOM:String = "custom"; public static const NET_STATUS:String = "netStatus"; public static const UPDATE_STREAM:String = "updateStream"; public static const STREAM_NUM_PLAYER:int = -1; public static const NS_TOGGLE_PAUSE:String = "togglePause"; public static const STATE_CHANGE:String = "stateChange"; public function InPlayEvent(_arg1:String, _arg2:Object=null, _arg3:int=-1){ super(_arg1); _params = _arg2; _streamNum = _arg3; } public function get streamNum():uint{ return (_streamNum); } override public function toString():String{ return (((("InPlayEvent: " + this.type) + ", streamNum: ") + _streamNum)); } public function get params():Object{ return (_params); } } }//package com.tubemogul.inplay
Section 52
//InPlayLoader (com.tubemogul.inplay.InPlayLoader) package com.tubemogul.inplay { import flash.display.*; import flash.events.*; import flash.system.*; import flash.net.*; import flash.external.*; public class InPlayLoader extends Sprite { private var _params:Object;// = null private var loadURL:String;// = "http://load.tubemogul.com/core" private var loader:Loader;// = null private var usingLoader:Boolean;// = true private var playerID:String;// = "" private var isStarted:Boolean;// = false private static const PROTO_VERSION:uint = 3; private static var inPlayLoader:InPlayLoader = null; public function InPlayLoader(_arg1:Object):void{ Utils.debug("In InPlayLoader constructor"); Utils.assert(_arg1, "No params passed in!"); Utils.assert(_arg1.display, "No display:DisplayObject passed in!"); Utils.assert(_arg1.bootloaderID, "No bootloaderID passed in!"); if (inPlayLoader != null){ return; }; if (inPlayLoader == null){ inPlayLoader = this; }; _arg1.bootloader = this; _params = _arg1; InPlayApi.init(); InPlayApi.api.addEventListener(InPlayEvent.CORE_READY, launchInPlay); _params.display.addEventListener(Event.ADDED_TO_STAGE, onStage); Utils.dumpObject("_params.display.stage", _params.display.stage); if (_params.display.stage){ onStage(new Event(Event.ADDED_TO_STAGE)); }; } private function loadInPlay():void{ var urlReq:URLRequest; var loadCtx:LoaderContext; try { Utils.info(("InPlayLoader: Attempting to load " + loadURL)); Security.allowDomain(loadURL); urlReq = new URLRequest(loadURL); loadCtx = new LoaderContext(false, ApplicationDomain.currentDomain, SecurityDomain.currentDomain); loader = new Loader(); addChild(loader); loader.load(urlReq, loadCtx); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoaded); loader.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); } catch(err:Error) { Utils.error("Unintentional exception in loadInPlay:"); Utils.dumpException(err); }; } private function onLoaded(_arg1:Event):void{ var core:IInPlayCore; var event = _arg1; Utils.debug("In InPlayLoader.onLoaded"); try { core = (loader.content as IInPlayCore); InPlayApi.api.setCore(core); InPlayApi.api.onDisplayList(this); } catch(err:ArgumentError) { throw (err); } catch(err:Error) { Utils.error("Unintentional exception in onLoaded:"); Utils.dumpException(err); }; } private function ioErrorHandler(_arg1:Event):void{ Utils.fatal("Failed server response. Event details:"); Utils.fatal(_arg1.toString()); } private function launchInPlay(_arg1:Event):void{ var event = _arg1; try { if (!isStarted){ Utils.info("Launching InPlay."); InPlayApi.api.dispatchEvent(new InPlayEvent(InPlayEvent.START, _params)); InPlayApi.api.dequeueEvents(); isStarted = true; }; } catch(err:ArgumentError) { throw (err); } catch(err:Error) { Utils.error("Unintentional exception in launchInPlay:"); Utils.dumpException(err); }; } public function extInterfaceCallRelay(_arg1:String):Object{ var str = _arg1; try { Utils.debug("In extInterfaceCallRelay"); return (ExternalInterface.call(str)); } catch(err:Error) { Utils.error("Unintentional exception in extInterfaceCallRelay:"); Utils.dumpException(err); }; return (null); } public function onStage(_arg1:Event):void{ var event = _arg1; try { _params.display.removeEventListener(Event.ADDED_TO_STAGE, onStage); Utils.debug("In InPlayLoader.onStage"); if (((!(_params.playerURL)) && (!((_params.display.root == null))))){ _params.playerURL = _params.display.root.loaderInfo.url; }; Utils.initParams(_params.display, _params); Utils.initDebug(); playerID = Utils.checkForParam("playerID", ""); loadURL = Utils.checkForParam("loadURL", loadURL); usingLoader = ((Utils.checkForParam("usingLoader", String(usingLoader)) == "true")) ? true : false; Utils.assertarg(Utils.isSpecified(playerID), "No playerID passed in!"); if (usingLoader){ loadURL = (loadURL + (((("?" + "playerID=") + playerID) + "&bootloaderID=") + _params.bootloaderID)); loadInPlay(); } else { Utils.debug("Not using bootloader."); InPlayApi.api.setCore(null); InPlayApi.api.onDisplayList(this); }; } catch(err:ArgumentError) { throw (err); } catch(err:Error) { Utils.error("Unintentional exception in onDisplayList:"); Utils.dumpException(err); }; } public static function init(_arg1:Object):void{ if (!inPlayLoader){ inPlayLoader = new InPlayLoader(_arg1); }; } public static function getInPlayLoader():InPlayLoader{ return (inPlayLoader); } } }//package com.tubemogul.inplay
Section 53
//NetStream_IP (com.tubemogul.inplay.NetStream_IP) package com.tubemogul.inplay { import flash.display.*; import flash.events.*; import flash.utils.*; import flash.net.*; public class NetStream_IP extends NetStream { private var volume:Number;// = 0 private var volInt:uint; private var streamNum:int;// = -1 private var savedClient:Object; private static const BOOTLOADER_ID:String = "B-RJ3-CNM"; private static var streams:Array = new Array(); private static var display:DisplayObject = null; public function NetStream_IP(_arg1:Object):void{ var params = _arg1; try { Utils.info("In NetStream_IP constructor"); Utils.assertarg(params, "No params passed in!"); Utils.assertarg(params.connection, "No connection:NetConnection passed in!"); super(params.connection); Utils.assertarg(((params.display) || (NetStream_IP.display)), "No display:DisplayObject passed in!"); createStream(params); } catch(err:ArgumentError) { throw (err); } catch(err:Error) { Utils.error("Unintentional exception in NetStream_IP constructor:"); Utils.dumpException(err); }; } public function newStream(_arg1:Object):void{ Utils.debug("In newStream. Reusing existing NetStream."); deleteStream(); createStream(_arg1); } public function checkVolume():void{ var event:SoundEvent_IP; var params:Object; try { if (this.soundTransform.volume == this.volume){ return; }; Utils.debug(((("Volume changed from " + this.volume) + " to ") + this.soundTransform.volume)); this.volume = this.soundTransform.volume; event = new SoundEvent_IP(SoundEvent_IP.SOUND_UPDATE, false, false, this.soundTransform); params = new Object(); params.event = event; InPlayApi.api.queueEvent(InPlayEvent.SOUND_UPDATE, params, streamNum); } catch(err:Error) { Utils.error("Unintentional exception in checkVolume:"); Utils.dumpException(err); }; } public function onPlayStatus(_arg1:Object):void{ var params:Object; var info = _arg1; try { Utils.debug("Got onPlayStatus event"); params = new Object(); params.info = info; params.playheadTime = this.time; InPlayApi.api.queueEvent(InPlayEvent.PLAY_STATUS, params, streamNum); } catch(err:Error) { Utils.error("Unintentional exception in onPlayStatus:"); Utils.dumpException(err); } finally { if (((savedClient) && (savedClient.onPlayStatus))){ Utils.debug("Calling savedClient.onPlayStatus"); savedClient.onPlayStatus(info); }; }; } override public function togglePause():void{ var params:Object; try { Utils.debug("In togglePause"); params = new Object(); params.playheadTime = this.time; InPlayApi.api.queueEvent(InPlayEvent.NS_TOGGLE_PAUSE, params, streamNum); } catch(err:Error) { Utils.error("Unintentional exception in togglePause:"); Utils.dumpException(err); } finally { Utils.debug("Calling super.togglePause"); super.togglePause(); }; } public function deleteStream():void{ try { if (!streams[streamNum]){ return; }; streams[streamNum].removeEventHandlers(); streams[streamNum] = null; streamNum = -1; } catch(err:Error) { Utils.error("Unintentional exception in deleteStream:"); Utils.dumpException(err); }; } public function onMetaData(_arg1:Object):void{ var params:Object; var info = _arg1; try { Utils.info("Got metadata"); params = new Object(); params.info = info; params.playheadTime = this.time; InPlayApi.api.queueEvent(InPlayEvent.METADATA, params, streamNum); } catch(err:Error) { Utils.error("Unintentional exception in onMetaData:"); Utils.dumpException(err); } finally { if (((savedClient) && (savedClient.onMetaData))){ Utils.debug("Calling savedClient.onMetaData"); savedClient.onMetaData(info); }; }; } public function getStreamID():int{ try { if (!streams[streamNum]){ return (-1); }; return (streamNum); } catch(err:Error) { Utils.error("Unintentional exception in getStreamID:"); Utils.dumpException(err); }; return (-1); } public function onStatusCallback(_arg1:NetStatusEvent):void{ var params:Object; var event = _arg1; try { Utils.debug("In onStatusCallback"); params = new Object(); params.info = event.info; params.playheadTime = this.time; InPlayApi.api.queueEvent(InPlayEvent.NET_STATUS, params, streamNum); } catch(err:Error) { Utils.error("Unintentional exception in onStatusCallback:"); Utils.dumpException(err); }; } private function createStream(_arg1:Object):void{ var reuseStream:Boolean; var params = _arg1; try { if (!params.display){ params.display = NetStream_IP.display; }; startPlayer(params); reuseStream = ((((!((params.streamID == undefined))) && ((params.streamID >= 0)))) && (streams[params.streamID])); if (reuseStream){ Utils.debug((("Got streamID of " + params.streamID) + ". Re-using existing streamID!")); streamNum = params.streamID; } else { Utils.debug(("Creating new streamID of " + streams.length)); streamNum = streams.length; }; params.ns = (streams[streamNum] = this); setupEventHandlers(); if (reuseStream){ InPlayApi.api.queueEvent(InPlayEvent.UPDATE_STREAM, params, streamNum); } else { InPlayApi.api.queueEvent(InPlayEvent.NEW_STREAM, params, streamNum); }; } catch(err:ArgumentError) { throw (err); } catch(err:Error) { Utils.error("Unintentional exception in NetStream_IP createStream:"); Utils.dumpException(err); }; } public function add_client(_arg1:Object):void{ var client = _arg1; Utils.debug("In add_client"); try { savedClient = client; } catch(err:Error) { Utils.error("Unintentional exception in add_client:"); Utils.dumpException(err); }; } public function onCuePoint(_arg1:Object):void{ var params:Object; var info = _arg1; try { Utils.debug("Got onCuePoint event"); params = new Object(); params.info = info; params.playheadTime = this.time; InPlayApi.api.queueEvent(InPlayEvent.CUE_POINT, params, streamNum); } catch(err:Error) { Utils.error("Unintentional exception in onCuePoint:"); Utils.dumpException(err); } finally { if (((savedClient) && (savedClient.onCuePoint))){ savedClient.onCuePoint(info); }; }; } override public function resume():void{ var params:Object; try { Utils.debug("In resume"); params = new Object(); params.playheadTime = this.time; InPlayApi.api.queueEvent(InPlayEvent.NS_RESUME, params, streamNum); } catch(err:Error) { Utils.error("Unintentional exception in resume:"); Utils.dumpException(err); } finally { Utils.debug("Calling super.resume"); super.resume(); }; } public function onLastSecond(_arg1:Object):void{ var params:Object; var info = _arg1; try { Utils.debug("Got onLastSecond event"); params = new Object(); params.info = info; params.playheadTime = this.time; InPlayApi.api.queueEvent(InPlayEvent.LAST_SECOND, params, streamNum); } catch(err:Error) { Utils.error("Unintentional exception in onLastSecond:"); Utils.dumpException(err); } finally { if (((savedClient) && (savedClient.onLastSecond))){ savedClient.onLastSecond(info); }; }; } private function setupEventHandlers():void{ try { this.addEventListener(NetStatusEvent.NET_STATUS, onStatusCallback); volInt = setInterval(this.checkVolume, 1000); Utils.debug(("this.client = " + this.client)); if (this.client){ this.savedClient = this.client; }; this.client = this; Utils.debug(("this.client = " + this.client)); } catch(err:Error) { Utils.error("Unintentional exception in setupEventHandlers:"); Utils.dumpException(err); }; } override public function pause():void{ var params:Object; try { Utils.debug("In pause"); params = new Object(); params.playheadTime = this.time; InPlayApi.api.queueEvent(InPlayEvent.NS_PAUSE, params, streamNum); } catch(err:Error) { Utils.error("Unintentional exception in pause:"); Utils.dumpException(err); } finally { Utils.debug("Calling super.pause"); super.pause(); }; } override public function play(... _args):void{ var params:Object; var args = _args; try { Utils.debug(("In play. Got filename: " + args[0])); params = new Object(); params.args = args; params.playheadTime = this.time; InPlayApi.api.queueEvent(InPlayEvent.NS_PLAY, params, streamNum); } catch(err:Error) { Utils.error("Unintentional exception in play:"); Utils.dumpException(err); } finally { Utils.debug("Calling saveOldPlay"); //unresolved jump super.play(); //unresolved jump super.play(args[0]); //unresolved jump super.play(args[0], args[1]); //unresolved jump super.play(args[0], args[1], args[2]); //unresolved jump super.play(args[0], args[1], args[2], args[3]); //unresolved jump Utils.error(("Invalid number of arguments passed to play! args.length = " + args.length)); //unresolved jump //unresolved jump var _local5 = args.length; if (0 === _local5){ } else { if (1 === _local5){ } else { if (2 === _local5){ } else { if (3 === _local5){ } else { if (4 === _local5){ } else { //unresolved jump //unresolved jump }; }; }; }; }; }; //unexpected switch } private function removeEventHandlers():void{ try { this.removeEventListener(NetStatusEvent.NET_STATUS, onStatusCallback); clearInterval(volInt); if (this.savedClient){ this.client = this.savedClient; }; this.savedClient = null; } catch(err:Error) { Utils.error("Unintentional exception in removeEventHandlers:"); Utils.dumpException(err); }; } public static function startPlayer(_arg1:Object):void{ var params = _arg1; try { if (!InPlayLoader.getInPlayLoader()){ Utils.assertarg(params, "No params passed in!"); Utils.assertarg(params.display, "No display:DisplayObject passed in!"); params.playerType = "NetStream"; params.bootloaderID = NetStream_IP.BOOTLOADER_ID; NetStream_IP.display = params.display; InPlayLoader.init(params); }; } catch(err:ArgumentError) { throw (err); } catch(err:Error) { Utils.error("Unintentional exception in NetStream_IP.startPlayer:"); Utils.dumpException(err); }; } } }//package com.tubemogul.inplay
Section 54
//SoundEvent_IP (com.tubemogul.inplay.SoundEvent_IP) package com.tubemogul.inplay { import flash.events.*; import flash.media.*; public class SoundEvent_IP extends Event { private var _soundTransform:SoundTransform; public static const SOUND_UPDATE:String = "soundUpdate"; public function SoundEvent_IP(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false, _arg4:SoundTransform=null){ super(_arg1, _arg2, _arg3); _soundTransform = _arg4; } public function get soundTransform():SoundTransform{ return (_soundTransform); } } }//package com.tubemogul.inplay
Section 55
//Utils (com.tubemogul.inplay.Utils) package com.tubemogul.inplay { import flash.display.*; import com.luminicbox.log.*; public class Utils { public static const WARN = "WARN"; public static const FATAL = "FATAL"; public static const ERROR = "ERROR"; public static const LOG = "LOG"; public static const INFO = "INFO"; public static const DEBUG = "DEBUG"; private static var timeOffset = 0; private static var display = null; private static var _log = null; private static var lc_params = null; private static var _debugOn = false; private static var lc_extParams = null; public static function getLCExtParams():Object{ return (lc_extParams); } public static function log(_arg1:Object):void{ tlog(LOG, _arg1); } public static function assert(_arg1:Boolean, _arg2:String):void{ if (!_arg1){ throw (new Error(_arg2)); }; } public static function get debugOn():Boolean{ return (_debugOn); } public static function warn(_arg1:Object):void{ tlog(WARN, _arg1); } public static function assertarg(_arg1:Boolean, _arg2:String):void{ if (!_arg1){ throw (new ArgumentError(_arg2)); }; } public static function paramsToLC(_arg1:Object):Object{ var _local3:*; if (!_arg1){ return (null); }; var _local2:* = new Object(); for (_local3 in _arg1) { _local2[_local3.toLowerCase()] = unescape(_arg1[_local3]); }; return (_local2); } public static function dumpObject(_arg1:String, _arg2:Object):void{ var _local3:*; if (!_arg2){ Utils.debug((("--------</" + _arg1) + ">--------")); return; }; Utils.debug((("--------<" + _arg1) + ">--------")); for (_local3 in _arg2) { Utils.debug(((_local3 + " = ") + _arg2[_local3])); }; Utils.debug((("--------</" + _arg1) + ">--------")); } public static function debug(_arg1:Object):void{ tlog(DEBUG, _arg1); } public static function tlog(_arg1:String, _arg2:Object):void{ var _local3:*; var _local4:*; if (((!(_arg2)) || ((_arg2 == "")))){ return; }; if (timeOffset == 0){ timeOffset = new Date().getTime(); }; if ((typeof(_arg2) as String) == "string"){ _local3 = (new Date().getTime() - timeOffset); _local4 = ((_local3 + ": ") + _arg2.toString()); Utils.llog(_arg1, _local4); } else { Utils.llog(_arg1, _arg2); }; } public static function error(_arg1:Object):void{ tlog(ERROR, _arg1); } private static function llog(_arg1:String, _arg2:Object):void{ if (debugOn){ if (!_log){ _log = new Logger(); _log.addPublisher(new ConsolePublisher()); _log.addPublisher(new TracePublisher()); }; _log.publish(_arg2, Level.getLevel(_arg1)); }; } public static function initDebug():void{ debugOn = ((Utils.checkForParam("debugOn", String(debugOn)) == "true")) ? true : false; Utils.debug("If you see this, debugging is on."); } public static function checkForParam(_arg1:String, _arg2:String):String{ Utils.assert(((Utils.display) && (Utils.lc_params)), "checkForParam called before initParams!"); var _local3:* = _arg1.toLowerCase(); var _local4:* = ("tm_" + _local3); var _local5:* = false; var _local6:* = 0; while ((((_local6 < 2)) && ((_local5 == false)))) { if (_local6 == 1){ _local4 = _local3; }; if (((lc_extParams) && (isSpecified(lc_extParams[_local4])))){ Utils.debug((((("Found " + _local4) + " = ") + lc_extParams[_local4]) + " on root timeline.")); lc_params[_local3] = lc_extParams[_local4]; _local5 = true; } else { if (((lc_params) && (isSpecified(lc_params[_local4])))){ Utils.debug((((("Got " + _local4) + " = ") + lc_params[_local4]) + " passed in via params.")); lc_params[_local3] = lc_params[_local4]; _local5 = true; }; }; _local6++; }; if (!_local5){ Utils.debug((((("Setting " + _local3) + " = ") + _arg2) + " based on default.")); lc_params[_local3] = _arg2; }; return (lc_params[_local3]); } public static function fatal(_arg1:Object):void{ tlog(FATAL, _arg1); } public static function isSpecified(_arg1:String):Boolean{ if (((((!(_arg1)) || ((_arg1 == "null")))) || ((_arg1 == "undefined")))){ return (false); }; return (true); } public static function initParams(_arg1:DisplayObject, _arg2:Object):void{ var _local4:*; Utils.display = _arg1; lc_params = paramsToLC(_arg2); Utils.dumpObject("lc_params", lc_params); var _local3:* = ((((_arg1) && (_arg1.root))) && (_arg1.root.loaderInfo)); if (_local3){ _local4 = _arg1.root.loaderInfo.parameters; lc_extParams = paramsToLC(_local4); Utils.dumpObject("lc_extParams", lc_extParams); }; } public static function getLCParams():Object{ return (lc_params); } public static function dumpException(_arg1:Error):void{ Utils.error((" errorID = " + _arg1.errorID)); Utils.error((" message = " + _arg1.message)); Utils.error((" name = " + _arg1.name)); } public static function set debugOn(_arg1:Boolean):void{ _debugOn = _arg1; } public static function info(_arg1:Object):void{ tlog(INFO, _arg1); } try { LOG = "LOG"; DEBUG = "DEBUG"; INFO = "INFO"; WARN = "WARN"; ERROR = "ERROR"; FATAL = "FATAL"; display = null; lc_params = null; lc_extParams = null; _debugOn = false; _log = null; timeOffset = 0; } catch(err:Error) { Utils.error("Unintentional exception at the class level:"); Utils.dumpException(err); }; } }//package com.tubemogul.inplay
Section 56
//BaseScrollPane (fl.containers.BaseScrollPane) package fl.containers { import fl.core.*; import fl.controls.*; import flash.display.*; import flash.events.*; import fl.events.*; import flash.geom.*; public class BaseScrollPane extends UIComponent { protected var defaultLineScrollSize:Number;// = 4 protected var _maxHorizontalScrollPosition:Number;// = 0 protected var vScrollBar:Boolean; protected var disabledOverlay:Shape; protected var hScrollBar:Boolean; protected var availableWidth:Number; protected var _verticalPageScrollSize:Number;// = 0 protected var vOffset:Number;// = 0 protected var _verticalScrollBar:ScrollBar; protected var useFixedHorizontalScrolling:Boolean;// = false protected var contentWidth:Number;// = 0 protected var contentHeight:Number;// = 0 protected var _horizontalPageScrollSize:Number;// = 0 protected var background:DisplayObject; protected var _useBitmpScrolling:Boolean;// = false protected var contentPadding:Number;// = 0 protected var availableHeight:Number; protected var _horizontalScrollBar:ScrollBar; protected var contentScrollRect:Rectangle; protected var _horizontalScrollPolicy:String; protected var _verticalScrollPolicy:String; protected static const SCROLL_BAR_STYLES:Object = {upArrowDisabledSkin:"upArrowDisabledSkin", upArrowDownSkin:"upArrowDownSkin", upArrowOverSkin:"upArrowOverSkin", upArrowUpSkin:"upArrowUpSkin", downArrowDisabledSkin:"downArrowDisabledSkin", downArrowDownSkin:"downArrowDownSkin", downArrowOverSkin:"downArrowOverSkin", downArrowUpSkin:"downArrowUpSkin", thumbDisabledSkin:"thumbDisabledSkin", thumbDownSkin:"thumbDownSkin", thumbOverSkin:"thumbOverSkin", thumbUpSkin:"thumbUpSkin", thumbIcon:"thumbIcon", trackDisabledSkin:"trackDisabledSkin", trackDownSkin:"trackDownSkin", trackOverSkin:"trackOverSkin", trackUpSkin:"trackUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval"}; private static var defaultStyles:Object = {repeatDelay:500, repeatInterval:35, skin:"ScrollPane_upSkin", contentPadding:0, disabledAlpha:0.5}; public function BaseScrollPane(){ contentWidth = 0; contentHeight = 0; contentPadding = 0; vOffset = 0; _maxHorizontalScrollPosition = 0; _horizontalPageScrollSize = 0; _verticalPageScrollSize = 0; defaultLineScrollSize = 4; useFixedHorizontalScrolling = false; _useBitmpScrolling = false; super(); } protected function handleWheel(_arg1:MouseEvent):void{ if (((((!(enabled)) || (!(_verticalScrollBar.visible)))) || ((contentHeight <= availableHeight)))){ return; }; _verticalScrollBar.scrollPosition = (_verticalScrollBar.scrollPosition - (_arg1.delta * verticalLineScrollSize)); setVerticalScrollPosition(_verticalScrollBar.scrollPosition); dispatchEvent(new ScrollEvent(ScrollBarDirection.VERTICAL, _arg1.delta, horizontalScrollPosition)); } public function get verticalScrollPosition():Number{ return (_verticalScrollBar.scrollPosition); } protected function drawDisabledOverlay():void{ if (enabled){ if (contains(disabledOverlay)){ removeChild(disabledOverlay); }; } else { disabledOverlay.x = (disabledOverlay.y = contentPadding); disabledOverlay.width = availableWidth; disabledOverlay.height = availableHeight; disabledOverlay.alpha = (getStyleValue("disabledAlpha") as Number); addChild(disabledOverlay); }; } public function set verticalScrollPosition(_arg1:Number):void{ drawNow(); _verticalScrollBar.scrollPosition = _arg1; setVerticalScrollPosition(_verticalScrollBar.scrollPosition, false); } protected function setContentSize(_arg1:Number, _arg2:Number):void{ if ((((((contentWidth == _arg1)) || (useFixedHorizontalScrolling))) && ((contentHeight == _arg2)))){ return; }; contentWidth = _arg1; contentHeight = _arg2; invalidate(InvalidationType.SIZE); } public function get horizontalScrollPosition():Number{ return (_horizontalScrollBar.scrollPosition); } public function get horizontalScrollBar():ScrollBar{ return (_horizontalScrollBar); } override public function set enabled(_arg1:Boolean):void{ if (enabled == _arg1){ return; }; _verticalScrollBar.enabled = _arg1; _horizontalScrollBar.enabled = _arg1; super.enabled = _arg1; } public function get verticalLineScrollSize():Number{ return (_verticalScrollBar.lineScrollSize); } public function get horizontalScrollPolicy():String{ return (_horizontalScrollPolicy); } protected function calculateAvailableSize():void{ var _local1:Number; var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; _local1 = ScrollBar.WIDTH; _local2 = (contentPadding = Number(getStyleValue("contentPadding"))); _local3 = ((height - (2 * _local2)) - vOffset); vScrollBar = (((_verticalScrollPolicy == ScrollPolicy.ON)) || ((((_verticalScrollPolicy == ScrollPolicy.AUTO)) && ((contentHeight > _local3))))); _local4 = ((width - (vScrollBar) ? _local1 : 0) - (2 * _local2)); _local5 = (useFixedHorizontalScrolling) ? _maxHorizontalScrollPosition : (contentWidth - _local4); hScrollBar = (((_horizontalScrollPolicy == ScrollPolicy.ON)) || ((((_horizontalScrollPolicy == ScrollPolicy.AUTO)) && ((_local5 > 0))))); if (hScrollBar){ _local3 = (_local3 - _local1); }; if (((((((hScrollBar) && (!(vScrollBar)))) && ((_verticalScrollPolicy == ScrollPolicy.AUTO)))) && ((contentHeight > _local3)))){ vScrollBar = true; _local4 = (_local4 - _local1); }; availableHeight = (_local3 + vOffset); availableWidth = _local4; } public function get maxVerticalScrollPosition():Number{ drawNow(); return (Math.max(0, (contentHeight - availableHeight))); } public function set horizontalScrollPosition(_arg1:Number):void{ drawNow(); _horizontalScrollBar.scrollPosition = _arg1; setHorizontalScrollPosition(_horizontalScrollBar.scrollPosition, false); } public function get horizontalLineScrollSize():Number{ return (_horizontalScrollBar.lineScrollSize); } public function set verticalPageScrollSize(_arg1:Number):void{ _verticalPageScrollSize = _arg1; invalidate(InvalidationType.SIZE); } public function get verticalScrollPolicy():String{ return (_verticalScrollPolicy); } protected function setHorizontalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{ } public function get useBitmapScrolling():Boolean{ return (_useBitmpScrolling); } protected function handleScroll(_arg1:ScrollEvent):void{ if (_arg1.target == _verticalScrollBar){ setVerticalScrollPosition(_arg1.position); } else { setHorizontalScrollPosition(_arg1.position); }; } public function set verticalLineScrollSize(_arg1:Number):void{ _verticalScrollBar.lineScrollSize = _arg1; } public function get verticalScrollBar():ScrollBar{ return (_verticalScrollBar); } protected function setVerticalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{ } public function set horizontalPageScrollSize(_arg1:Number):void{ _horizontalPageScrollSize = _arg1; invalidate(InvalidationType.SIZE); } override protected function draw():void{ if (isInvalid(InvalidationType.STYLES)){ setStyles(); drawBackground(); if (contentPadding != getStyleValue("contentPadding")){ invalidate(InvalidationType.SIZE, false); }; }; if (isInvalid(InvalidationType.SIZE, InvalidationType.STATE)){ drawLayout(); }; updateChildren(); super.draw(); } public function set horizontalScrollPolicy(_arg1:String):void{ _horizontalScrollPolicy = _arg1; invalidate(InvalidationType.SIZE); } override protected function configUI():void{ var _local1:Graphics; super.configUI(); contentScrollRect = new Rectangle(0, 0, 85, 85); _verticalScrollBar = new ScrollBar(); _verticalScrollBar.addEventListener(ScrollEvent.SCROLL, handleScroll, false, 0, true); _verticalScrollBar.visible = false; _verticalScrollBar.lineScrollSize = defaultLineScrollSize; addChild(_verticalScrollBar); copyStylesToChild(_verticalScrollBar, SCROLL_BAR_STYLES); _horizontalScrollBar = new ScrollBar(); _horizontalScrollBar.direction = ScrollBarDirection.HORIZONTAL; _horizontalScrollBar.addEventListener(ScrollEvent.SCROLL, handleScroll, false, 0, true); _horizontalScrollBar.visible = false; _horizontalScrollBar.lineScrollSize = defaultLineScrollSize; addChild(_horizontalScrollBar); copyStylesToChild(_horizontalScrollBar, SCROLL_BAR_STYLES); disabledOverlay = new Shape(); _local1 = disabledOverlay.graphics; _local1.beginFill(0xFFFFFF); _local1.drawRect(0, 0, width, height); _local1.endFill(); addEventListener(MouseEvent.MOUSE_WHEEL, handleWheel, false, 0, true); } protected function calculateContentWidth():void{ } public function get verticalPageScrollSize():Number{ if (isNaN(availableHeight)){ drawNow(); }; return (((((_verticalPageScrollSize == 0)) && (!(isNaN(availableHeight))))) ? availableHeight : _verticalPageScrollSize); } protected function drawLayout():void{ calculateAvailableSize(); calculateContentWidth(); background.width = width; background.height = height; if (vScrollBar){ _verticalScrollBar.visible = true; _verticalScrollBar.x = ((width - ScrollBar.WIDTH) - contentPadding); _verticalScrollBar.y = contentPadding; _verticalScrollBar.height = availableHeight; } else { _verticalScrollBar.visible = false; }; _verticalScrollBar.setScrollProperties(availableHeight, 0, (contentHeight - availableHeight), verticalPageScrollSize); setVerticalScrollPosition(_verticalScrollBar.scrollPosition, false); if (hScrollBar){ _horizontalScrollBar.visible = true; _horizontalScrollBar.x = contentPadding; _horizontalScrollBar.y = ((height - ScrollBar.WIDTH) - contentPadding); _horizontalScrollBar.width = availableWidth; } else { _horizontalScrollBar.visible = false; }; _horizontalScrollBar.setScrollProperties(availableWidth, 0, (useFixedHorizontalScrolling) ? _maxHorizontalScrollPosition : (contentWidth - availableWidth), horizontalPageScrollSize); setHorizontalScrollPosition(_horizontalScrollBar.scrollPosition, false); drawDisabledOverlay(); } protected function drawBackground():void{ var _local1:DisplayObject; _local1 = background; background = getDisplayObjectInstance(getStyleValue("skin")); background.width = width; background.height = height; addChildAt(background, 0); if (((!((_local1 == null))) && (!((_local1 == background))))){ removeChild(_local1); }; } public function set horizontalLineScrollSize(_arg1:Number):void{ _horizontalScrollBar.lineScrollSize = _arg1; } public function get horizontalPageScrollSize():Number{ if (isNaN(availableWidth)){ drawNow(); }; return (((((_horizontalPageScrollSize == 0)) && (!(isNaN(availableWidth))))) ? availableWidth : _horizontalPageScrollSize); } public function get maxHorizontalScrollPosition():Number{ drawNow(); return (Math.max(0, (contentWidth - availableWidth))); } protected function setStyles():void{ copyStylesToChild(_verticalScrollBar, SCROLL_BAR_STYLES); copyStylesToChild(_horizontalScrollBar, SCROLL_BAR_STYLES); } protected function updateChildren():void{ _verticalScrollBar.enabled = (_horizontalScrollBar.enabled = enabled); _verticalScrollBar.drawNow(); _horizontalScrollBar.drawNow(); } public function set verticalScrollPolicy(_arg1:String):void{ _verticalScrollPolicy = _arg1; invalidate(InvalidationType.SIZE); } public function set useBitmapScrolling(_arg1:Boolean):void{ _useBitmpScrolling = _arg1; invalidate(InvalidationType.STATE); } public static function getStyleDefinition():Object{ return (mergeStyles(defaultStyles, ScrollBar.getStyleDefinition())); } } }//package fl.containers
Section 57
//UILoader (fl.containers.UILoader) package fl.containers { import fl.core.*; import flash.display.*; import flash.events.*; import flash.utils.*; import flash.system.*; import flash.net.*; import fl.events.*; public class UILoader extends UIComponent { protected var loader:Loader; protected var _autoLoad:Boolean;// = true protected var _source:Object; protected var contentClip:Sprite; protected var _maintainAspectRatio:Boolean;// = true protected var contentInited:Boolean;// = false protected var _scaleContent:Boolean;// = true private static var defaultStyles:Object = {}; public function UILoader(){ _scaleContent = true; _autoLoad = true; contentInited = false; _maintainAspectRatio = true; super(); } public function get maintainAspectRatio():Boolean{ return (_maintainAspectRatio); } public function set maintainAspectRatio(_arg1:Boolean):void{ _maintainAspectRatio = _arg1; invalidate(InvalidationType.SIZE); } public function get source():Object{ return (_source); } protected function _unload(_arg1:Boolean=false):void{ var throwError = _arg1; if (loader != null){ clearLoadEvents(); contentClip.removeChild(loader); try { loader.close(); } catch(e:Error) { }; try { loader.unload(); } catch(e) { if (throwError){ throw (e); }; }; loader = null; return; }; contentInited = false; if (contentClip.numChildren){ contentClip.removeChildAt(0); }; } public function get bytesLoaded():uint{ return (((((loader == null)) || ((loader.contentLoaderInfo == null)))) ? 0 : loader.contentLoaderInfo.bytesLoaded); } public function set source(_arg1:Object):void{ if (_arg1 == ""){ return; }; _source = _arg1; _unload(); if (((_autoLoad) && (!((_source == null))))){ load(); }; } public function set autoLoad(_arg1:Boolean):void{ _autoLoad = _arg1; if (((((((_autoLoad) && ((loader == null)))) && (!((_source == null))))) && (!((_source == ""))))){ load(); }; } public function get content():DisplayObject{ if (loader != null){ return (loader.content); }; if (contentClip.numChildren){ return (contentClip.getChildAt(0)); }; return (null); } public function get percentLoaded():Number{ return (((bytesTotal)<=0) ? 0 : ((bytesLoaded / bytesTotal) * 100)); } protected function handleError(_arg1:Event):void{ passEvent(_arg1); clearLoadEvents(); loader.contentLoaderInfo.removeEventListener(Event.INIT, handleInit); } public function load(_arg1:URLRequest=null, _arg2:LoaderContext=null):void{ var _local3:DisplayObject; _unload(); if ((((((_arg1 == null)) || ((_arg1.url == null)))) && ((((_source == null)) || ((_source == "")))))){ return; }; _local3 = getDisplayObjectInstance(source); if (_local3 != null){ contentClip.addChild(_local3); contentInited = true; invalidate(InvalidationType.SIZE); return; }; if (_arg1 == null){ _arg1 = new URLRequest(_source.toString()); }; if (_arg2 == null){ _arg2 = new LoaderContext(false, ApplicationDomain.currentDomain); }; initLoader(); loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, handleError, false, 0, true); loader.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR, handleError, false, 0, true); loader.contentLoaderInfo.addEventListener(Event.OPEN, passEvent, false, 0, true); loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, passEvent, false, 0, true); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, handleComplete, false, 0, true); loader.contentLoaderInfo.addEventListener(Event.INIT, handleInit, false, 0, true); loader.contentLoaderInfo.addEventListener(HTTPStatusEvent.HTTP_STATUS, passEvent, false, 0, true); loader.load(_arg1, _arg2); } public function unload():void{ _source = null; _unload(true); } protected function passEvent(_arg1:Event):void{ dispatchEvent(_arg1); } public function loadBytes(_arg1:ByteArray, _arg2:LoaderContext=null):void{ var bytes = _arg1; var context = _arg2; _unload(); initLoader(); try { loader.loadBytes(bytes, context); } catch(error) { throw (error); }; } public function get autoLoad():Boolean{ return (_autoLoad); } protected function sizeContent(_arg1:DisplayObject, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number):void{ var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; _local6 = _arg4; _local7 = _arg5; if (_maintainAspectRatio){ _local8 = (_arg4 / _arg5); _local9 = (_arg2 / _arg3); if (_local8 < _local9){ _local7 = (_local6 / _local9); } else { _local6 = (_local7 * _local9); }; }; _arg1.width = _local6; _arg1.height = _local7; _arg1.x = ((_arg4 / 2) - (_local6 / 2)); _arg1.y = ((_arg5 / 2) - (_local7 / 2)); } protected function initLoader():void{ loader = new Loader(); contentClip.addChild(loader); } override protected function draw():void{ if (isInvalid(InvalidationType.SIZE)){ drawLayout(); }; super.draw(); } override protected function configUI():void{ super.configUI(); contentClip = new Sprite(); addChild(contentClip); } protected function handleInit(_arg1:Event):void{ loader.contentLoaderInfo.removeEventListener(Event.INIT, handleInit); contentInited = true; passEvent(_arg1); invalidate(InvalidationType.SIZE); } protected function handleComplete(_arg1:Event):void{ clearLoadEvents(); passEvent(_arg1); } override public function setSize(_arg1:Number, _arg2:Number):void{ if (((!(_scaleContent)) && ((_width > 0)))){ return; }; super.setSize(_arg1, _arg2); } protected function drawLayout():void{ var _local1:Boolean; var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:LoaderInfo; if (!contentInited){ return; }; _local1 = false; if (loader){ _local6 = loader.contentLoaderInfo; _local2 = _local6.width; _local3 = _local6.height; } else { _local2 = contentClip.width; _local3 = contentClip.height; }; _local4 = _width; _local5 = _height; if (!_scaleContent){ _width = contentClip.width; _height = contentClip.height; } else { sizeContent(contentClip, _local2, _local3, _width, _height); }; if (((!((_local4 == _width))) || (!((_local5 == _height))))){ dispatchEvent(new ComponentEvent(ComponentEvent.RESIZE, true)); }; } public function get bytesTotal():uint{ return (((((loader == null)) || ((loader.contentLoaderInfo == null)))) ? 0 : loader.contentLoaderInfo.bytesTotal); } public function set scaleContent(_arg1:Boolean):void{ if (_scaleContent == _arg1){ return; }; _scaleContent = _arg1; invalidate(InvalidationType.SIZE); } protected function clearLoadEvents():void{ loader.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, handleError); loader.contentLoaderInfo.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, handleError); loader.contentLoaderInfo.removeEventListener(Event.OPEN, passEvent); loader.contentLoaderInfo.removeEventListener(ProgressEvent.PROGRESS, passEvent); loader.contentLoaderInfo.removeEventListener(HTTPStatusEvent.HTTP_STATUS, passEvent); loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, handleComplete); } public function get scaleContent():Boolean{ return (_scaleContent); } public function close():void{ try { loader.close(); } catch(error) { throw (error); }; } public static function getStyleDefinition():Object{ return (defaultStyles); } } }//package fl.containers
Section 58
//CellRenderer (fl.controls.listClasses.CellRenderer) package fl.controls.listClasses { import fl.controls.*; import flash.events.*; public class CellRenderer extends LabelButton implements ICellRenderer { protected var _data:Object; protected var _listData:ListData; private static var defaultStyles:Object = {upSkin:"CellRenderer_upSkin", downSkin:"CellRenderer_downSkin", overSkin:"CellRenderer_overSkin", disabledSkin:"CellRenderer_disabledSkin", selectedDisabledSkin:"CellRenderer_selectedDisabledSkin", selectedUpSkin:"CellRenderer_selectedUpSkin", selectedDownSkin:"CellRenderer_selectedDownSkin", selectedOverSkin:"CellRenderer_selectedOverSkin", textFormat:null, disabledTextFormat:null, embedFonts:null, textPadding:5}; public function CellRenderer():void{ toggle = true; focusEnabled = false; } override protected function toggleSelected(_arg1:MouseEvent):void{ } override public function get selected():Boolean{ return (super.selected); } public function set listData(_arg1:ListData):void{ _listData = _arg1; label = _listData.label; setStyle("icon", _listData.icon); } override public function set selected(_arg1:Boolean):void{ super.selected = _arg1; } public function set data(_arg1:Object):void{ _data = _arg1; } public function get listData():ListData{ return (_listData); } override public function setSize(_arg1:Number, _arg2:Number):void{ super.setSize(_arg1, _arg2); } override protected function drawLayout():void{ var _local1:Number; var _local2:Number; var _local3:Number; _local1 = Number(getStyleValue("textPadding")); _local2 = 0; if (icon != null){ icon.x = _local1; icon.y = Math.round(((height - icon.height) >> 1)); _local2 = (icon.width + _local1); }; if (label.length > 0){ textField.visible = true; _local3 = Math.max(0, ((width - _local2) - (_local1 * 2))); textField.width = _local3; textField.height = (textField.textHeight + 4); textField.x = (_local2 + _local1); textField.y = Math.round(((height - textField.height) >> 1)); } else { textField.visible = false; }; background.width = width; background.height = height; } public function get data():Object{ return (_data); } public static function getStyleDefinition():Object{ return (defaultStyles); } } }//package fl.controls.listClasses
Section 59
//ICellRenderer (fl.controls.listClasses.ICellRenderer) package fl.controls.listClasses { public interface ICellRenderer { function setSize(_arg1:Number, _arg2:Number):void; function get listData():ListData; function get data():Object; function setMouseState(_arg1:String):void; function set x(_arg1:Number):void; function set y(_arg1:Number):void; function set data(_arg1:Object):void; function set selected(_arg1:Boolean):void; function set listData(_arg1:ListData):void; function get selected():Boolean; } }//package fl.controls.listClasses
Section 60
//ImageCell (fl.controls.listClasses.ImageCell) package fl.controls.listClasses { import flash.display.*; import flash.events.*; import fl.containers.*; public class ImageCell extends CellRenderer implements ICellRenderer { protected var loader:UILoader; protected var textOverlay:Shape; private static var defaultStyles:Object = {imagePadding:1, textOverlayAlpha:0.7}; public function ImageCell(){ loader = new UILoader(); loader.addEventListener(IOErrorEvent.IO_ERROR, handleErrorEvent, false, 0, true); loader.autoLoad = true; loader.scaleContent = true; addChild(loader); } public function get source():Object{ return (loader.source); } public function set source(_arg1:Object):void{ loader.source = _arg1; } override public function set listData(_arg1:ListData):void{ var _local2:Object; _listData = _arg1; label = _listData.label; _local2 = (_listData as TileListData).source; if (source != _local2){ source = _local2; }; } override protected function draw():void{ super.draw(); } override protected function configUI():void{ var _local1:Graphics; super.configUI(); textOverlay = new Shape(); _local1 = textOverlay.graphics; _local1.beginFill(0xFFFFFF); _local1.drawRect(0, 0, 100, 100); _local1.endFill(); } override public function get listData():ListData{ return (_listData); } override protected function drawLayout():void{ var _local1:Number; var _local2:Number; var _local3:Number; var _local4:Number; _local1 = (getStyleValue("imagePadding") as Number); loader.move(_local1, _local1); _local2 = (width - (_local1 * 2)); _local3 = (height - (_local1 * 2)); if (((!((loader.width == _local2))) && (!((loader.height == _local3))))){ loader.setSize(_local2, _local3); }; loader.drawNow(); if ((((_label == "")) || ((_label == null)))){ if (contains(textField)){ removeChild(textField); }; if (contains(textOverlay)){ removeChild(textOverlay); }; } else { _local4 = (getStyleValue("textPadding") as Number); textField.width = Math.min((width - (_local4 * 2)), (textField.textWidth + 5)); textField.height = (textField.textHeight + 5); textField.x = Math.max(_local4, ((width / 2) - (textField.width / 2))); textField.y = ((height - textField.height) - _local4); textOverlay.x = _local1; textOverlay.height = (textField.height + (_local4 * 2)); textOverlay.y = ((height - textOverlay.height) - _local1); textOverlay.width = (width - (_local1 * 2)); textOverlay.alpha = (getStyleValue("textOverlayAlpha") as Number); addChild(textOverlay); addChild(textField); }; background.width = width; background.height = height; } protected function handleErrorEvent(_arg1:IOErrorEvent):void{ dispatchEvent(_arg1); } public static function getStyleDefinition():Object{ return (mergeStyles(defaultStyles, CellRenderer.getStyleDefinition())); } } }//package fl.controls.listClasses
Section 61
//ListData (fl.controls.listClasses.ListData) package fl.controls.listClasses { import fl.core.*; public class ListData { protected var _index:uint; protected var _owner:UIComponent; protected var _label:String; protected var _icon:Object;// = null protected var _row:uint; protected var _column:uint; public function ListData(_arg1:String, _arg2:Object, _arg3:UIComponent, _arg4:uint, _arg5:uint, _arg6:uint=0){ _icon = null; super(); _label = _arg1; _icon = _arg2; _owner = _arg3; _index = _arg4; _row = _arg5; _column = _arg6; } public function get owner():UIComponent{ return (_owner); } public function get label():String{ return (_label); } public function get row():uint{ return (_row); } public function get index():uint{ return (_index); } public function get icon():Object{ return (_icon); } public function get column():uint{ return (_column); } } }//package fl.controls.listClasses
Section 62
//TileListData (fl.controls.listClasses.TileListData) package fl.controls.listClasses { import fl.core.*; public class TileListData extends ListData { protected var _source:Object; public function TileListData(_arg1:String, _arg2:Object, _arg3:Object, _arg4:UIComponent, _arg5:uint, _arg6:uint, _arg7:uint=0){ super(_arg1, _arg2, _arg4, _arg5, _arg6, _arg7); _source = _arg3; } public function get source():Object{ return (_source); } } }//package fl.controls.listClasses
Section 63
//BaseButton (fl.controls.BaseButton) package fl.controls { import fl.core.*; import flash.display.*; import flash.events.*; import flash.utils.*; import fl.events.*; public class BaseButton extends UIComponent { protected var _selected:Boolean;// = false private var unlockedMouseState:String; protected var pressTimer:Timer; protected var mouseState:String; protected var background:DisplayObject; private var _mouseStateLocked:Boolean;// = false protected var _autoRepeat:Boolean;// = false private static var defaultStyles:Object = {upSkin:"Button_upSkin", downSkin:"Button_downSkin", overSkin:"Button_overSkin", disabledSkin:"Button_disabledSkin", selectedDisabledSkin:"Button_selectedDisabledSkin", selectedUpSkin:"Button_selectedUpSkin", selectedDownSkin:"Button_selectedDownSkin", selectedOverSkin:"Button_selectedOverSkin", focusRectSkin:null, focusRectPadding:null, repeatDelay:500, repeatInterval:35}; public function BaseButton(){ _selected = false; _autoRepeat = false; _mouseStateLocked = false; super(); buttonMode = true; mouseChildren = false; useHandCursor = false; setupMouseEvents(); setMouseState("up"); pressTimer = new Timer(1, 0); pressTimer.addEventListener(TimerEvent.TIMER, buttonDown, false, 0, true); } protected function endPress():void{ pressTimer.reset(); } public function set mouseStateLocked(_arg1:Boolean):void{ _mouseStateLocked = _arg1; if (_arg1 == false){ setMouseState(unlockedMouseState); } else { unlockedMouseState = mouseState; }; } public function get autoRepeat():Boolean{ return (_autoRepeat); } public function set autoRepeat(_arg1:Boolean):void{ _autoRepeat = _arg1; } override public function set enabled(_arg1:Boolean):void{ super.enabled = _arg1; mouseEnabled = _arg1; } public function get selected():Boolean{ return (_selected); } protected function mouseEventHandler(_arg1:MouseEvent):void{ if (_arg1.type == MouseEvent.MOUSE_DOWN){ setMouseState("down"); startPress(); } else { if ((((_arg1.type == MouseEvent.ROLL_OVER)) || ((_arg1.type == MouseEvent.MOUSE_UP)))){ setMouseState("over"); endPress(); } else { if (_arg1.type == MouseEvent.ROLL_OUT){ setMouseState("up"); endPress(); }; }; }; } public function setMouseState(_arg1:String):void{ if (_mouseStateLocked){ unlockedMouseState = _arg1; return; }; if (mouseState == _arg1){ return; }; mouseState = _arg1; invalidate(InvalidationType.STATE); } protected function startPress():void{ if (_autoRepeat){ pressTimer.delay = Number(getStyleValue("repeatDelay")); pressTimer.start(); }; dispatchEvent(new ComponentEvent(ComponentEvent.BUTTON_DOWN, true)); } protected function buttonDown(_arg1:TimerEvent):void{ if (!_autoRepeat){ endPress(); return; }; if (pressTimer.currentCount == 1){ pressTimer.delay = Number(getStyleValue("repeatInterval")); }; dispatchEvent(new ComponentEvent(ComponentEvent.BUTTON_DOWN, true)); } public function set selected(_arg1:Boolean):void{ if (_selected == _arg1){ return; }; _selected = _arg1; invalidate(InvalidationType.STATE); } override public function get enabled():Boolean{ return (super.enabled); } override protected function draw():void{ if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){ drawBackground(); invalidate(InvalidationType.SIZE, false); }; if (isInvalid(InvalidationType.SIZE)){ drawLayout(); }; super.draw(); } protected function setupMouseEvents():void{ addEventListener(MouseEvent.ROLL_OVER, mouseEventHandler, false, 0, true); addEventListener(MouseEvent.MOUSE_DOWN, mouseEventHandler, false, 0, true); addEventListener(MouseEvent.MOUSE_UP, mouseEventHandler, false, 0, true); addEventListener(MouseEvent.ROLL_OUT, mouseEventHandler, false, 0, true); } protected function drawLayout():void{ background.width = width; background.height = height; } protected function drawBackground():void{ var _local1:String; var _local2:DisplayObject; _local1 = (enabled) ? mouseState : "disabled"; if (selected){ _local1 = (("selected" + _local1.substr(0, 1).toUpperCase()) + _local1.substr(1)); }; _local1 = (_local1 + "Skin"); _local2 = background; background = getDisplayObjectInstance(getStyleValue(_local1)); addChildAt(background, 0); if (((!((_local2 == null))) && (!((_local2 == background))))){ removeChild(_local2); }; } public static function getStyleDefinition():Object{ return (defaultStyles); } } }//package fl.controls
Section 64
//Button (fl.controls.Button) package fl.controls { import fl.core.*; import flash.display.*; import fl.managers.*; public class Button extends LabelButton implements IFocusManagerComponent { protected var emphasizedBorder:DisplayObject; protected var _emphasized:Boolean;// = false private static var defaultStyles:Object = {emphasizedSkin:"Button_emphasizedSkin", emphasizedPadding:2}; public static var createAccessibilityImplementation:Function; public function Button(){ _emphasized = false; super(); } override public function drawFocus(_arg1:Boolean):void{ var _local2:Number; var _local3:*; super.drawFocus(_arg1); if (_arg1){ _local2 = Number(getStyleValue("emphasizedPadding")); if ((((_local2 < 0)) || (!(_emphasized)))){ _local2 = 0; }; _local3 = getStyleValue("focusRectPadding"); _local3 = ((_local3)==null) ? 2 : _local3; _local3 = (_local3 + _local2); uiFocusRect.x = -(_local3); uiFocusRect.y = -(_local3); uiFocusRect.width = (width + (_local3 * 2)); uiFocusRect.height = (height + (_local3 * 2)); }; } public function set emphasized(_arg1:Boolean):void{ _emphasized = _arg1; invalidate(InvalidationType.STYLES); } override protected function draw():void{ if (((isInvalid(InvalidationType.STYLES)) || (isInvalid(InvalidationType.SIZE)))){ drawEmphasized(); }; super.draw(); if (emphasizedBorder != null){ setChildIndex(emphasizedBorder, (numChildren - 1)); }; } public function get emphasized():Boolean{ return (_emphasized); } override protected function initializeAccessibility():void{ if (Button.createAccessibilityImplementation != null){ Button.createAccessibilityImplementation(this); }; } protected function drawEmphasized():void{ var _local1:Object; var _local2:Number; if (emphasizedBorder != null){ removeChild(emphasizedBorder); }; emphasizedBorder = null; if (!_emphasized){ return; }; _local1 = getStyleValue("emphasizedSkin"); if (_local1 != null){ emphasizedBorder = getDisplayObjectInstance(_local1); }; if (emphasizedBorder != null){ addChildAt(emphasizedBorder, 0); _local2 = Number(getStyleValue("emphasizedPadding")); emphasizedBorder.x = (emphasizedBorder.y = -(_local2)); emphasizedBorder.width = (width + (_local2 * 2)); emphasizedBorder.height = (height + (_local2 * 2)); }; } public static function getStyleDefinition():Object{ return (UIComponent.mergeStyles(LabelButton.getStyleDefinition(), defaultStyles)); } } }//package fl.controls
Section 65
//ButtonLabelPlacement (fl.controls.ButtonLabelPlacement) package fl.controls { public class ButtonLabelPlacement { public static const TOP:String = "top"; public static const LEFT:String = "left"; public static const BOTTOM:String = "bottom"; public static const RIGHT:String = "right"; } }//package fl.controls
Section 66
//LabelButton (fl.controls.LabelButton) package fl.controls { import fl.core.*; import flash.display.*; import flash.events.*; import flash.text.*; import flash.ui.*; import fl.managers.*; import fl.events.*; public class LabelButton extends BaseButton implements IFocusManagerComponent { protected var _labelPlacement:String;// = "right" protected var _toggle:Boolean;// = false protected var icon:DisplayObject; protected var oldMouseState:String; protected var mode:String;// = "center" public var textField:TextField; protected var _label:String;// = "Label" private static var defaultStyles:Object = {icon:null, upIcon:null, downIcon:null, overIcon:null, disabledIcon:null, selectedDisabledIcon:null, selectedUpIcon:null, selectedDownIcon:null, selectedOverIcon:null, textFormat:null, disabledTextFormat:null, textPadding:5, embedFonts:false}; public static var createAccessibilityImplementation:Function; public function LabelButton(){ _labelPlacement = ButtonLabelPlacement.RIGHT; _toggle = false; _label = "Label"; mode = "center"; super(); } protected function toggleSelected(_arg1:MouseEvent):void{ selected = !(selected); dispatchEvent(new Event(Event.CHANGE, true)); } public function get labelPlacement():String{ return (_labelPlacement); } override protected function keyDownHandler(_arg1:KeyboardEvent):void{ if (!enabled){ return; }; if (_arg1.keyCode == Keyboard.SPACE){ if (oldMouseState == null){ oldMouseState = mouseState; }; setMouseState("down"); startPress(); }; } protected function setEmbedFont(){ var _local1:Object; _local1 = getStyleValue("embedFonts"); if (_local1 != null){ textField.embedFonts = _local1; }; } override protected function keyUpHandler(_arg1:KeyboardEvent):void{ if (!enabled){ return; }; if (_arg1.keyCode == Keyboard.SPACE){ setMouseState(oldMouseState); oldMouseState = null; endPress(); dispatchEvent(new MouseEvent(MouseEvent.CLICK)); }; } override public function get selected():Boolean{ return ((_toggle) ? _selected : false); } public function set labelPlacement(_arg1:String):void{ _labelPlacement = _arg1; invalidate(InvalidationType.SIZE); } public function set toggle(_arg1:Boolean):void{ if (((!(_arg1)) && (super.selected))){ selected = false; }; _toggle = _arg1; if (_toggle){ addEventListener(MouseEvent.CLICK, toggleSelected, false, 0, true); } else { removeEventListener(MouseEvent.CLICK, toggleSelected); }; invalidate(InvalidationType.STATE); } public function get label():String{ return (_label); } override public function set selected(_arg1:Boolean):void{ _selected = _arg1; if (_toggle){ invalidate(InvalidationType.STATE); }; } override protected function draw():void{ if (textField.text != _label){ label = _label; }; if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){ drawBackground(); drawIcon(); drawTextFormat(); invalidate(InvalidationType.SIZE, false); }; if (isInvalid(InvalidationType.SIZE)){ drawLayout(); }; if (isInvalid(InvalidationType.SIZE, InvalidationType.STYLES)){ if (((isFocused) && (focusManager.showFocusIndicator))){ drawFocus(true); }; }; validate(); } public function get toggle():Boolean{ return (_toggle); } override protected function configUI():void{ super.configUI(); textField = new TextField(); textField.type = TextFieldType.DYNAMIC; textField.selectable = false; addChild(textField); } override protected function drawLayout():void{ var _local1:Number; var _local2:String; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; _local1 = Number(getStyleValue("textPadding")); _local2 = ((((icon == null)) && ((mode == "center")))) ? ButtonLabelPlacement.TOP : _labelPlacement; textField.height = (textField.textHeight + 4); _local3 = (textField.textWidth + 4); _local4 = (textField.textHeight + 4); _local5 = ((icon)==null) ? 0 : (icon.width + _local1); _local6 = ((icon)==null) ? 0 : (icon.height + _local1); textField.visible = (label.length > 0); if (icon != null){ icon.x = Math.round(((width - icon.width) / 2)); icon.y = Math.round(((height - icon.height) / 2)); }; if (textField.visible == false){ textField.width = 0; textField.height = 0; } else { if ((((_local2 == ButtonLabelPlacement.BOTTOM)) || ((_local2 == ButtonLabelPlacement.TOP)))){ _local7 = Math.max(0, Math.min(_local3, (width - (2 * _local1)))); if ((height - 2) > _local4){ _local8 = _local4; } else { _local8 = (height - 2); }; _local3 = _local7; textField.width = _local3; _local4 = _local8; textField.height = _local4; textField.x = Math.round(((width - _local3) / 2)); textField.y = Math.round(((((height - textField.height) - _local6) / 2) + ((_local2)==ButtonLabelPlacement.BOTTOM) ? _local6 : 0)); if (icon != null){ icon.y = Math.round(((_local2)==ButtonLabelPlacement.BOTTOM) ? (textField.y - _local6) : ((textField.y + textField.height) + _local1)); }; } else { _local7 = Math.max(0, Math.min(_local3, ((width - _local5) - (2 * _local1)))); _local3 = _local7; textField.width = _local3; textField.x = Math.round(((((width - _local3) - _local5) / 2) + ((_local2)!=ButtonLabelPlacement.LEFT) ? _local5 : 0)); textField.y = Math.round(((height - textField.height) / 2)); if (icon != null){ icon.x = Math.round(((_local2)!=ButtonLabelPlacement.LEFT) ? (textField.x - _local5) : ((textField.x + _local3) + _local1)); }; }; }; super.drawLayout(); } override protected function initializeAccessibility():void{ if (LabelButton.createAccessibilityImplementation != null){ LabelButton.createAccessibilityImplementation(this); }; } protected function drawIcon():void{ var _local1:DisplayObject; var _local2:String; var _local3:Object; _local1 = icon; _local2 = (enabled) ? mouseState : "disabled"; if (selected){ _local2 = (("selected" + _local2.substr(0, 1).toUpperCase()) + _local2.substr(1)); }; _local2 = (_local2 + "Icon"); _local3 = getStyleValue(_local2); if (_local3 == null){ _local3 = getStyleValue("icon"); }; if (_local3 != null){ icon = getDisplayObjectInstance(_local3); }; if (icon != null){ addChildAt(icon, 1); }; if (((!((_local1 == null))) && (!((_local1 == icon))))){ removeChild(_local1); }; } public function set label(_arg1:String):void{ _label = _arg1; if (textField.text != _label){ textField.text = _label; dispatchEvent(new ComponentEvent(ComponentEvent.LABEL_CHANGE)); }; invalidate(InvalidationType.SIZE); invalidate(InvalidationType.STYLES); } protected function drawTextFormat():void{ var _local1:Object; var _local2:TextFormat; var _local3:TextFormat; _local1 = UIComponent.getStyleDefinition(); _local2 = (enabled) ? (_local1.defaultTextFormat as TextFormat) : (_local1.defaultDisabledTextFormat as TextFormat); textField.setTextFormat(_local2); _local3 = (getStyleValue((enabled) ? "textFormat" : "disabledTextFormat") as TextFormat); if (_local3 != null){ textField.setTextFormat(_local3); } else { _local3 = _local2; }; textField.defaultTextFormat = _local3; setEmbedFont(); } public static function getStyleDefinition():Object{ return (mergeStyles(defaultStyles, BaseButton.getStyleDefinition())); } } }//package fl.controls
Section 67
//ScrollBar (fl.controls.ScrollBar) package fl.controls { import fl.core.*; import flash.events.*; import fl.events.*; public class ScrollBar extends UIComponent { private var _direction:String;// = "vertical" protected var inDrag:Boolean;// = false protected var upArrow:BaseButton; private var _pageScrollSize:Number;// = 0 protected var downArrow:BaseButton; private var _pageSize:Number;// = 10 private var thumbScrollOffset:Number; private var _maxScrollPosition:Number;// = 0 private var _scrollPosition:Number;// = 0 protected var track:BaseButton; private var _minScrollPosition:Number;// = 0 private var _lineScrollSize:Number;// = 1 protected var thumb:LabelButton; protected static const THUMB_STYLES:Object = {disabledSkin:"thumbDisabledSkin", downSkin:"thumbDownSkin", overSkin:"thumbOverSkin", upSkin:"thumbUpSkin", icon:"thumbIcon", textPadding:0}; public static const WIDTH:Number = 15; protected static const DOWN_ARROW_STYLES:Object = {disabledSkin:"downArrowDisabledSkin", downSkin:"downArrowDownSkin", overSkin:"downArrowOverSkin", upSkin:"downArrowUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval"}; protected static const UP_ARROW_STYLES:Object = {disabledSkin:"upArrowDisabledSkin", downSkin:"upArrowDownSkin", overSkin:"upArrowOverSkin", upSkin:"upArrowUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval"}; protected static const TRACK_STYLES:Object = {disabledSkin:"trackDisabledSkin", downSkin:"trackDownSkin", overSkin:"trackOverSkin", upSkin:"trackUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval"}; private static var defaultStyles:Object = {downArrowDisabledSkin:"ScrollArrowDown_disabledSkin", downArrowDownSkin:"ScrollArrowDown_downSkin", downArrowOverSkin:"ScrollArrowDown_overSkin", downArrowUpSkin:"ScrollArrowDown_upSkin", thumbDisabledSkin:"ScrollThumb_upSkin", thumbDownSkin:"ScrollThumb_downSkin", thumbOverSkin:"ScrollThumb_overSkin", thumbUpSkin:"ScrollThumb_upSkin", trackDisabledSkin:"ScrollTrack_skin", trackDownSkin:"ScrollTrack_skin", trackOverSkin:"ScrollTrack_skin", trackUpSkin:"ScrollTrack_skin", upArrowDisabledSkin:"ScrollArrowUp_disabledSkin", upArrowDownSkin:"ScrollArrowUp_downSkin", upArrowOverSkin:"ScrollArrowUp_overSkin", upArrowUpSkin:"ScrollArrowUp_upSkin", thumbIcon:"ScrollBar_thumbIcon", repeatDelay:500, repeatInterval:35}; public function ScrollBar(){ _pageSize = 10; _pageScrollSize = 0; _lineScrollSize = 1; _minScrollPosition = 0; _maxScrollPosition = 0; _scrollPosition = 0; _direction = ScrollBarDirection.VERTICAL; inDrag = false; super(); setStyles(); focusEnabled = false; } public function get minScrollPosition():Number{ return (_minScrollPosition); } public function set minScrollPosition(_arg1:Number):void{ setScrollProperties(_pageSize, _arg1, _maxScrollPosition); } public function setScrollPosition(_arg1:Number, _arg2:Boolean=true):void{ var _local3:Number; _local3 = scrollPosition; _scrollPosition = Math.max(_minScrollPosition, Math.min(_maxScrollPosition, _arg1)); if (_local3 == _scrollPosition){ return; }; if (_arg2){ dispatchEvent(new ScrollEvent(_direction, (scrollPosition - _local3), scrollPosition)); }; updateThumb(); } public function set scrollPosition(_arg1:Number):void{ setScrollPosition(_arg1, true); } public function get pageScrollSize():Number{ return (((_pageScrollSize)==0) ? _pageSize : _pageScrollSize); } public function set pageSize(_arg1:Number):void{ if (_arg1 > 0){ _pageSize = _arg1; }; } public function setScrollProperties(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number=0):void{ this.pageSize = _arg1; _minScrollPosition = _arg2; _maxScrollPosition = _arg3; if (_arg4 >= 0){ _pageScrollSize = _arg4; }; enabled = (_maxScrollPosition > _minScrollPosition); setScrollPosition(_scrollPosition, false); updateThumb(); } override public function set enabled(_arg1:Boolean):void{ super.enabled = _arg1; downArrow.enabled = (track.enabled = (thumb.enabled = (upArrow.enabled = ((enabled) && ((_maxScrollPosition > _minScrollPosition)))))); updateThumb(); } protected function updateThumb():void{ var _local1:Number; _local1 = ((_maxScrollPosition - _minScrollPosition) + _pageSize); if ((((((track.height <= 12)) || ((_maxScrollPosition <= _minScrollPosition)))) || ((((_local1 == 0)) || (isNaN(_local1)))))){ thumb.height = 12; thumb.visible = false; } else { thumb.height = Math.max(13, ((_pageSize / _local1) * track.height)); thumb.y = (track.y + ((track.height - thumb.height) * ((_scrollPosition - _minScrollPosition) / (_maxScrollPosition - _minScrollPosition)))); thumb.visible = enabled; }; } protected function thumbPressHandler(_arg1:MouseEvent):void{ inDrag = true; thumbScrollOffset = (mouseY - thumb.y); thumb.mouseStateLocked = true; mouseChildren = false; stage.addEventListener(MouseEvent.MOUSE_MOVE, handleThumbDrag, false, 0, true); stage.addEventListener(MouseEvent.MOUSE_UP, thumbReleaseHandler, false, 0, true); } protected function thumbReleaseHandler(_arg1:MouseEvent):void{ inDrag = false; mouseChildren = true; thumb.mouseStateLocked = false; stage.removeEventListener(MouseEvent.MOUSE_MOVE, handleThumbDrag); stage.removeEventListener(MouseEvent.MOUSE_UP, thumbReleaseHandler); } public function set pageScrollSize(_arg1:Number):void{ if (_arg1 >= 0){ _pageScrollSize = _arg1; }; } protected function handleThumbDrag(_arg1:MouseEvent):void{ var _local2:Number; _local2 = Math.max(0, Math.min((track.height - thumb.height), ((mouseY - track.y) - thumbScrollOffset))); setScrollPosition((((_local2 / (track.height - thumb.height)) * (_maxScrollPosition - _minScrollPosition)) + _minScrollPosition)); } public function set direction(_arg1:String):void{ var _local2:Boolean; if (_direction == _arg1){ return; }; _direction = _arg1; if (isLivePreview){ return; }; setScaleY(1); _local2 = (_direction == ScrollBarDirection.HORIZONTAL); if (((_local2) && (componentInspectorSetting))){ if (rotation == 90){ return; }; setScaleX(-1); rotation = -90; }; if (!componentInspectorSetting){ if (((_local2) && ((rotation == 0)))){ rotation = -90; setScaleX(-1); } else { if (((!(_local2)) && ((rotation == -90)))){ rotation = 0; setScaleX(1); }; }; }; invalidate(InvalidationType.SIZE); } public function set lineScrollSize(_arg1:Number):void{ if (_arg1 > 0){ _lineScrollSize = _arg1; }; } override public function get height():Number{ return (((_direction)==ScrollBarDirection.HORIZONTAL) ? super.width : super.height); } protected function scrollPressHandler(_arg1:ComponentEvent):void{ var _local2:Number; var _local3:Number; _arg1.stopImmediatePropagation(); if (_arg1.currentTarget == upArrow){ setScrollPosition((_scrollPosition - _lineScrollSize)); } else { if (_arg1.currentTarget == downArrow){ setScrollPosition((_scrollPosition + _lineScrollSize)); } else { _local2 = (((track.mouseY / track.height) * (_maxScrollPosition - _minScrollPosition)) + _minScrollPosition); _local3 = ((pageScrollSize)==0) ? pageSize : pageScrollSize; if (_scrollPosition < _local2){ setScrollPosition(Math.min(_local2, (_scrollPosition + _local3))); } else { if (_scrollPosition > _local2){ setScrollPosition(Math.max(_local2, (_scrollPosition - _local3))); }; }; }; }; } public function get pageSize():Number{ return (_pageSize); } public function set maxScrollPosition(_arg1:Number):void{ setScrollProperties(_pageSize, _minScrollPosition, _arg1); } public function get scrollPosition():Number{ return (_scrollPosition); } override public function get enabled():Boolean{ return (super.enabled); } override protected function draw():void{ var _local1:Number; if (isInvalid(InvalidationType.SIZE)){ _local1 = super.height; downArrow.move(0, Math.max(upArrow.height, (_local1 - downArrow.height))); track.setSize(WIDTH, Math.max(0, (_local1 - (downArrow.height + upArrow.height)))); updateThumb(); }; if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){ setStyles(); }; downArrow.drawNow(); upArrow.drawNow(); track.drawNow(); thumb.drawNow(); validate(); } override protected function configUI():void{ super.configUI(); track = new BaseButton(); track.move(0, 14); track.useHandCursor = false; track.autoRepeat = true; track.focusEnabled = false; addChild(track); thumb = new LabelButton(); thumb.label = ""; thumb.setSize(WIDTH, 15); thumb.move(0, 15); thumb.focusEnabled = false; addChild(thumb); downArrow = new BaseButton(); downArrow.setSize(WIDTH, 14); downArrow.autoRepeat = true; downArrow.focusEnabled = false; addChild(downArrow); upArrow = new BaseButton(); upArrow.setSize(WIDTH, 14); upArrow.move(0, 0); upArrow.autoRepeat = true; upArrow.focusEnabled = false; addChild(upArrow); upArrow.addEventListener(ComponentEvent.BUTTON_DOWN, scrollPressHandler, false, 0, true); downArrow.addEventListener(ComponentEvent.BUTTON_DOWN, scrollPressHandler, false, 0, true); track.addEventListener(ComponentEvent.BUTTON_DOWN, scrollPressHandler, false, 0, true); thumb.addEventListener(MouseEvent.MOUSE_DOWN, thumbPressHandler, false, 0, true); enabled = false; } public function get direction():String{ return (_direction); } public function get lineScrollSize():Number{ return (_lineScrollSize); } override public function setSize(_arg1:Number, _arg2:Number):void{ if (_direction == ScrollBarDirection.HORIZONTAL){ super.setSize(_arg2, _arg1); } else { super.setSize(_arg1, _arg2); }; } public function get maxScrollPosition():Number{ return (_maxScrollPosition); } override public function get width():Number{ return (((_direction)==ScrollBarDirection.HORIZONTAL) ? super.height : super.width); } protected function setStyles():void{ copyStylesToChild(downArrow, DOWN_ARROW_STYLES); copyStylesToChild(thumb, THUMB_STYLES); copyStylesToChild(track, TRACK_STYLES); copyStylesToChild(upArrow, UP_ARROW_STYLES); } public static function getStyleDefinition():Object{ return (defaultStyles); } } }//package fl.controls
Section 68
//ScrollBarDirection (fl.controls.ScrollBarDirection) package fl.controls { public class ScrollBarDirection { public static const HORIZONTAL:String = "horizontal"; public static const VERTICAL:String = "vertical"; } }//package fl.controls
Section 69
//ScrollPolicy (fl.controls.ScrollPolicy) package fl.controls { public class ScrollPolicy { public static const OFF:String = "off"; public static const ON:String = "on"; public static const AUTO:String = "auto"; } }//package fl.controls
Section 70
//SelectableList (fl.controls.SelectableList) package fl.controls { import fl.controls.listClasses.*; import fl.core.*; import flash.display.*; import flash.events.*; import flash.ui.*; import fl.data.*; import fl.managers.*; import flash.utils.*; import fl.events.*; import fl.containers.*; public class SelectableList extends BaseScrollPane implements IFocusManagerComponent { protected var invalidItems:Dictionary; protected var renderedItems:Dictionary; protected var listHolder:Sprite; protected var _allowMultipleSelection:Boolean;// = false protected var lastCaretIndex:int;// = -1 protected var _selectedIndices:Array; protected var availableCellRenderers:Array; protected var list:Sprite; protected var caretIndex:int;// = -1 protected var updatedRendererStyles:Object; protected var preChangeItems:Array; protected var activeCellRenderers:Array; protected var rendererStyles:Object; protected var _verticalScrollPosition:Number; protected var _dataProvider:DataProvider; protected var _horizontalScrollPosition:Number; private var collectionItemImport:SimpleCollectionItem; protected var _selectable:Boolean;// = true private static var defaultStyles:Object = {skin:"List_skin", cellRenderer:CellRenderer, contentPadding:null, disabledAlpha:null}; public static var createAccessibilityImplementation:Function; public function SelectableList(){ _allowMultipleSelection = false; _selectable = true; caretIndex = -1; lastCaretIndex = -1; super(); activeCellRenderers = []; availableCellRenderers = []; invalidItems = new Dictionary(true); renderedItems = new Dictionary(true); _selectedIndices = []; if (dataProvider == null){ dataProvider = new DataProvider(); }; verticalScrollPolicy = ScrollPolicy.AUTO; rendererStyles = {}; updatedRendererStyles = {}; } protected function drawList():void{ } public function set allowMultipleSelection(_arg1:Boolean):void{ if (_arg1 == _allowMultipleSelection){ return; }; _allowMultipleSelection = _arg1; if (((!(_arg1)) && ((_selectedIndices.length > 1)))){ _selectedIndices = [_selectedIndices.pop()]; invalidate(InvalidationType.DATA); }; } public function sortItemsOn(_arg1:String, _arg2:Object=null){ return (_dataProvider.sortOn(_arg1, _arg2)); } public function removeItemAt(_arg1:uint):Object{ return (_dataProvider.removeItemAt(_arg1)); } public function get selectedItem():Object{ return (((_selectedIndices.length)==0) ? null : _dataProvider.getItemAt(selectedIndex)); } override protected function keyDownHandler(_arg1:KeyboardEvent):void{ if (!selectable){ return; }; switch (_arg1.keyCode){ case Keyboard.UP: case Keyboard.DOWN: case Keyboard.END: case Keyboard.HOME: case Keyboard.PAGE_UP: case Keyboard.PAGE_DOWN: moveSelectionVertically(_arg1.keyCode, ((_arg1.shiftKey) && (_allowMultipleSelection)), ((_arg1.ctrlKey) && (_allowMultipleSelection))); _arg1.stopPropagation(); break; case Keyboard.LEFT: case Keyboard.RIGHT: moveSelectionHorizontally(_arg1.keyCode, ((_arg1.shiftKey) && (_allowMultipleSelection)), ((_arg1.ctrlKey) && (_allowMultipleSelection))); _arg1.stopPropagation(); break; }; } public function get selectable():Boolean{ return (_selectable); } public function itemToCellRenderer(_arg1:Object):ICellRenderer{ var _local2:*; var _local3:ICellRenderer; if (_arg1 != null){ for (_local2 in activeCellRenderers) { _local3 = (activeCellRenderers[_local2] as ICellRenderer); if (_local3.data == _arg1){ return (_local3); }; }; }; return (null); } public function getNextIndexAtLetter(_arg1:String, _arg2:int=-1):int{ var _local3:int; var _local4:Number; var _local5:Number; var _local6:Object; var _local7:String; if (length == 0){ return (-1); }; _arg1 = _arg1.toUpperCase(); _local3 = (length - 1); _local4 = 0; while (_local4 < _local3) { _local5 = ((_arg2 + 1) + _local4); if (_local5 > (length - 1)){ _local5 = (_local5 - length); }; _local6 = getItemAt(_local5); if (_local6 == null){ break; }; _local7 = itemToLabel(_local6); if (_local7 == null){ } else { if (_local7.charAt(0).toUpperCase() == _arg1){ return (_local5); }; }; _local4++; }; return (-1); } public function invalidateList():void{ _invalidateList(); invalidate(InvalidationType.DATA); } override public function set enabled(_arg1:Boolean):void{ super.enabled = _arg1; list.mouseChildren = _enabled; } public function get selectedIndices():Array{ return (_selectedIndices.concat()); } public function set selectable(_arg1:Boolean):void{ if (_arg1 == _selectable){ return; }; if (!_arg1){ selectedIndices = []; }; _selectable = _arg1; } public function itemToLabel(_arg1:Object):String{ return (_arg1["label"]); } public function addItemAt(_arg1:Object, _arg2:uint):void{ _dataProvider.addItemAt(_arg1, _arg2); invalidateList(); } public function replaceItemAt(_arg1:Object, _arg2:uint):Object{ return (_dataProvider.replaceItemAt(_arg1, _arg2)); } protected function handleDataChange(_arg1:DataChangeEvent):void{ var _local2:int; var _local3:int; var _local4:String; var _local5:uint; _local2 = _arg1.startIndex; _local3 = _arg1.endIndex; _local4 = _arg1.changeType; if (_local4 == DataChangeType.INVALIDATE_ALL){ clearSelection(); invalidateList(); } else { if (_local4 == DataChangeType.INVALIDATE){ _local5 = 0; while (_local5 < _arg1.items.length) { invalidateItem(_arg1.items[_local5]); _local5++; }; } else { if (_local4 == DataChangeType.ADD){ _local5 = 0; while (_local5 < _selectedIndices.length) { if (_selectedIndices[_local5] >= _local2){ _selectedIndices[_local5] = (_selectedIndices[_local5] + (_local2 - _local3)); }; _local5++; }; } else { if (_local4 == DataChangeType.REMOVE){ _local5 = 0; while (_local5 < _selectedIndices.length) { if (_selectedIndices[_local5] >= _local2){ if (_selectedIndices[_local5] <= _local3){ delete _selectedIndices[_local5]; } else { _selectedIndices[_local5] = (_selectedIndices[_local5] - ((_local2 - _local3) + 1)); }; }; _local5++; }; } else { if (_local4 == DataChangeType.REMOVE_ALL){ clearSelection(); } else { if (_local4 == DataChangeType.REPLACE){ } else { selectedItems = preChangeItems; preChangeItems = null; }; }; }; }; }; }; invalidate(InvalidationType.DATA); } protected function _invalidateList():void{ availableCellRenderers = []; while (activeCellRenderers.length > 0) { list.removeChild((activeCellRenderers.pop() as DisplayObject)); }; } protected function updateRendererStyles():void{ var _local1:Array; var _local2:uint; var _local3:uint; var _local4:String; _local1 = availableCellRenderers.concat(activeCellRenderers); _local2 = _local1.length; _local3 = 0; while (_local3 < _local2) { if (_local1[_local3].setStyle == null){ } else { for (_local4 in updatedRendererStyles) { _local1[_local3].setStyle(_local4, updatedRendererStyles[_local4]); }; _local1[_local3].drawNow(); }; _local3++; }; updatedRendererStyles = {}; } public function set selectedItem(_arg1:Object):void{ var _local2:int; _local2 = _dataProvider.getItemIndex(_arg1); selectedIndex = _local2; } public function sortItems(... _args){ return (_dataProvider.sort.apply(_dataProvider, _args)); } public function removeAll():void{ _dataProvider.removeAll(); } protected function handleCellRendererChange(_arg1:Event):void{ var _local2:ICellRenderer; var _local3:uint; _local2 = (_arg1.currentTarget as ICellRenderer); _local3 = _local2.listData.index; _dataProvider.invalidateItemAt(_local3); } protected function moveSelectionVertically(_arg1:uint, _arg2:Boolean, _arg3:Boolean):void{ } override protected function setHorizontalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{ var _local3:Number; if (_arg1 == _horizontalScrollPosition){ return; }; _local3 = (_arg1 - _horizontalScrollPosition); _horizontalScrollPosition = _arg1; if (_arg2){ dispatchEvent(new ScrollEvent(ScrollBarDirection.HORIZONTAL, _local3, _arg1)); }; } public function scrollToSelected():void{ scrollToIndex(selectedIndex); } public function invalidateItem(_arg1:Object):void{ if (renderedItems[_arg1] == null){ return; }; invalidItems[_arg1] = true; invalidate(InvalidationType.DATA); } protected function handleCellRendererClick(_arg1:MouseEvent):void{ var _local2:ICellRenderer; var _local3:uint; var _local4:int; var _local5:int; var _local6:uint; if (!_enabled){ return; }; _local2 = (_arg1.currentTarget as ICellRenderer); _local3 = _local2.listData.index; if (((!(dispatchEvent(new ListEvent(ListEvent.ITEM_CLICK, false, true, _local2.listData.column, _local2.listData.row, _local3, _local2.data)))) || (!(_selectable)))){ return; }; _local4 = selectedIndices.indexOf(_local3); if (!_allowMultipleSelection){ if (_local4 != -1){ return; }; _local2.selected = true; _selectedIndices = [_local3]; lastCaretIndex = (caretIndex = _local3); } else { if (_arg1.shiftKey){ _local6 = ((_selectedIndices.length)>0) ? _selectedIndices[0] : _local3; _selectedIndices = []; if (_local6 > _local3){ _local5 = _local6; while (_local5 >= _local3) { _selectedIndices.push(_local5); _local5--; }; } else { _local5 = _local6; while (_local5 <= _local3) { _selectedIndices.push(_local5); _local5++; }; }; caretIndex = _local3; } else { if (_arg1.ctrlKey){ if (_local4 != -1){ _local2.selected = false; _selectedIndices.splice(_local4, 1); } else { _local2.selected = true; _selectedIndices.push(_local3); }; caretIndex = _local3; } else { _selectedIndices = [_local3]; lastCaretIndex = (caretIndex = _local3); }; }; }; dispatchEvent(new Event(Event.CHANGE)); invalidate(InvalidationType.DATA); } public function get length():uint{ return (_dataProvider.length); } public function get allowMultipleSelection():Boolean{ return (_allowMultipleSelection); } protected function onPreChange(_arg1:DataChangeEvent):void{ switch (_arg1.changeType){ case DataChangeType.REMOVE: case DataChangeType.ADD: case DataChangeType.INVALIDATE: case DataChangeType.REMOVE_ALL: case DataChangeType.REPLACE: case DataChangeType.INVALIDATE_ALL: break; default: preChangeItems = selectedItems; break; }; } public function getRendererStyle(_arg1:String, _arg2:int=-1):Object{ return (rendererStyles[_arg1]); } override protected function setVerticalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{ var _local3:Number; if (_arg1 == _verticalScrollPosition){ return; }; _local3 = (_arg1 - _verticalScrollPosition); _verticalScrollPosition = _arg1; if (_arg2){ dispatchEvent(new ScrollEvent(ScrollBarDirection.VERTICAL, _local3, _arg1)); }; } protected function moveSelectionHorizontally(_arg1:uint, _arg2:Boolean, _arg3:Boolean):void{ } public function set selectedIndices(_arg1:Array):void{ if (!_selectable){ return; }; _selectedIndices = ((_arg1)==null) ? [] : _arg1.concat(); invalidate(InvalidationType.SELECTED); } public function get selectedIndex():int{ return (((_selectedIndices.length)==0) ? -1 : _selectedIndices[(_selectedIndices.length - 1)]); } override protected function draw():void{ super.draw(); } override protected function configUI():void{ super.configUI(); listHolder = new Sprite(); addChild(listHolder); listHolder.scrollRect = contentScrollRect; list = new Sprite(); listHolder.addChild(list); } public function addItem(_arg1:Object):void{ _dataProvider.addItem(_arg1); invalidateList(); } protected function handleCellRendererMouseEvent(_arg1:MouseEvent):void{ var _local2:ICellRenderer; var _local3:String; _local2 = (_arg1.target as ICellRenderer); _local3 = ((_arg1.type)==MouseEvent.ROLL_OVER) ? ListEvent.ITEM_ROLL_OVER : ListEvent.ITEM_ROLL_OUT; dispatchEvent(new ListEvent(_local3, false, false, _local2.listData.column, _local2.listData.row, _local2.listData.index, _local2.data)); } public function clearRendererStyle(_arg1:String, _arg2:int=-1):void{ delete rendererStyles[_arg1]; updatedRendererStyles[_arg1] = null; invalidate(InvalidationType.RENDERER_STYLES); } protected function handleCellRendererDoubleClick(_arg1:MouseEvent):void{ var _local2:ICellRenderer; var _local3:uint; if (!_enabled){ return; }; _local2 = (_arg1.currentTarget as ICellRenderer); _local3 = _local2.listData.index; dispatchEvent(new ListEvent(ListEvent.ITEM_DOUBLE_CLICK, false, true, _local2.listData.column, _local2.listData.row, _local3, _local2.data)); } public function get rowCount():uint{ return (0); } public function isItemSelected(_arg1:Object):Boolean{ return ((selectedItems.indexOf(_arg1) > -1)); } public function set dataProvider(_arg1:DataProvider):void{ if (_dataProvider != null){ _dataProvider.removeEventListener(DataChangeEvent.DATA_CHANGE, handleDataChange); _dataProvider.removeEventListener(DataChangeEvent.PRE_DATA_CHANGE, onPreChange); }; _dataProvider = _arg1; _dataProvider.addEventListener(DataChangeEvent.DATA_CHANGE, handleDataChange, false, 0, true); _dataProvider.addEventListener(DataChangeEvent.PRE_DATA_CHANGE, onPreChange, false, 0, true); clearSelection(); invalidateList(); } override protected function drawLayout():void{ super.drawLayout(); contentScrollRect = listHolder.scrollRect; contentScrollRect.width = availableWidth; contentScrollRect.height = availableHeight; listHolder.scrollRect = contentScrollRect; } public function getItemAt(_arg1:uint):Object{ return (_dataProvider.getItemAt(_arg1)); } override protected function initializeAccessibility():void{ if (SelectableList.createAccessibilityImplementation != null){ SelectableList.createAccessibilityImplementation(this); }; } public function scrollToIndex(_arg1:int):void{ } public function removeItem(_arg1:Object):Object{ return (_dataProvider.removeItem(_arg1)); } public function get dataProvider():DataProvider{ return (_dataProvider); } public function set maxHorizontalScrollPosition(_arg1:Number):void{ _maxHorizontalScrollPosition = _arg1; invalidate(InvalidationType.SIZE); } public function setRendererStyle(_arg1:String, _arg2:Object, _arg3:uint=0):void{ if (rendererStyles[_arg1] == _arg2){ return; }; updatedRendererStyles[_arg1] = _arg2; rendererStyles[_arg1] = _arg2; invalidate(InvalidationType.RENDERER_STYLES); } public function invalidateItemAt(_arg1:uint):void{ var _local2:Object; _local2 = _dataProvider.getItemAt(_arg1); if (_local2 != null){ invalidateItem(_local2); }; } public function set selectedItems(_arg1:Array):void{ var _local2:Array; var _local3:uint; var _local4:int; if (_arg1 == null){ selectedIndices = null; return; }; _local2 = []; _local3 = 0; while (_local3 < _arg1.length) { _local4 = _dataProvider.getItemIndex(_arg1[_local3]); if (_local4 != -1){ _local2.push(_local4); }; _local3++; }; selectedIndices = _local2; } public function clearSelection():void{ selectedIndex = -1; } override public function get maxHorizontalScrollPosition():Number{ return (_maxHorizontalScrollPosition); } public function get selectedItems():Array{ var _local1:Array; var _local2:uint; _local1 = []; _local2 = 0; while (_local2 < _selectedIndices.length) { _local1.push(_dataProvider.getItemAt(_selectedIndices[_local2])); _local2++; }; return (_local1); } public function set selectedIndex(_arg1:int):void{ selectedIndices = ((_arg1)==-1) ? null : [_arg1]; } public static function getStyleDefinition():Object{ return (mergeStyles(defaultStyles, BaseScrollPane.getStyleDefinition())); } } }//package fl.controls
Section 71
//TileList (fl.controls.TileList) package fl.controls { import fl.controls.listClasses.*; import fl.core.*; import flash.display.*; import flash.events.*; import flash.ui.*; import fl.data.*; import fl.managers.*; import flash.utils.*; public class TileList extends SelectableList implements IFocusManagerComponent { protected var _labelField:String;// = "label" protected var _scrollPolicy:String;// = "auto" protected var _labelFunction:Function; protected var _scrollDirection:String;// = "horizontal" protected var _iconFunction:Function; private var collectionItemImport:TileListCollectionItem; protected var _rowHeight:Number;// = 50 protected var _cellRenderer:Object; protected var _columnWidth:Number;// = 50 protected var _iconField:String;// = "icon" protected var _sourceFunction:Function; protected var __rowCount:uint;// = 0 protected var __columnCount:uint;// = 0 protected var _sourceField:String;// = "source" protected var oldLength:uint;// = 0 private static var defaultStyles:Object = {cellRenderer:ImageCell, focusRectSkin:null, focusRectPadding:null, skin:"TileList_skin"}; public static var createAccessibilityImplementation:Function; public function TileList(){ _rowHeight = 50; _columnWidth = 50; _scrollDirection = ScrollBarDirection.HORIZONTAL; _scrollPolicy = ScrollPolicy.AUTO; oldLength = 0; _labelField = "label"; _iconField = "icon"; _sourceField = "source"; __rowCount = 0; __columnCount = 0; super(); } public function get iconField():String{ return (_iconField); } override protected function drawList():void{ var _local1:uint; var _local2:uint; var _local3:Object; var _local4:ICellRenderer; var _local5:uint; var _local6:uint; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:uint; var _local12:uint; var _local13:Array; var _local14:Dictionary; var _local15:Dictionary; var _local16:uint; var _local17:uint; var _local18:uint; var _local19:uint; var _local20:Boolean; var _local21:String; var _local22:Object; var _local23:Object; var _local24:Sprite; var _local25:String; var _local26:UIComponent; _local5 = rowCount; _local6 = columnCount; _local7 = columnWidth; _local8 = rowHeight; _local9 = 0; _local10 = 0; listHolder.x = (listHolder.y = contentPadding); contentScrollRect = listHolder.scrollRect; contentScrollRect.x = (Math.floor(_horizontalScrollPosition) % _local7); contentScrollRect.y = (Math.floor(_verticalScrollPosition) % _local8); listHolder.scrollRect = contentScrollRect; listHolder.cacheAsBitmap = useBitmapScrolling; _local13 = []; if (_scrollDirection == ScrollBarDirection.HORIZONTAL){ _local16 = ((availableWidth / _local7) << 0); _local17 = Math.max(_local16, Math.ceil((length / _local5))); _local9 = ((_horizontalScrollPosition / _local7) << 0); _local6 = Math.max(_local16, Math.min((_local17 - _local9), (_local6 + 1))); _local12 = 0; while (_local12 < _local5) { _local11 = 0; while (_local11 < _local6) { _local2 = (((_local12 * _local17) + _local9) + _local11); if (_local2 >= length){ break; }; _local13.push(_local2); _local11++; }; _local12++; }; } else { _local5++; _local10 = ((_verticalScrollPosition / _local8) << 0); _local18 = Math.floor((_local10 * _local6)); _local19 = Math.min(length, (_local18 + (_local5 * _local6))); _local1 = _local18; while (_local1 < _local19) { _local13.push(_local1); _local1++; }; }; _local14 = (renderedItems = new Dictionary(true)); for each (_local2 in _local13) { _local14[_dataProvider.getItemAt(_local2)] = true; }; _local15 = new Dictionary(true); while (activeCellRenderers.length > 0) { _local4 = activeCellRenderers.pop(); _local3 = _local4.data; if ((((_local14[_local3] == null)) || ((invalidItems[_local3] == true)))){ availableCellRenderers.push(_local4); } else { _local15[_local3] = _local4; invalidItems[_local3] = true; }; list.removeChild((_local4 as DisplayObject)); }; invalidItems = new Dictionary(true); _local1 = 0; for each (_local2 in _local13) { _local11 = (_local1 % _local6); _local12 = ((_local1 / _local6) << 0); _local20 = false; _local3 = _dataProvider.getItemAt(_local2); if (_local15[_local3] != null){ _local20 = true; _local4 = _local15[_local3]; delete _local15[_local3]; } else { if (availableCellRenderers.length > 0){ _local4 = (availableCellRenderers.pop() as ICellRenderer); } else { _local4 = (getDisplayObjectInstance(getStyleValue("cellRenderer")) as ICellRenderer); _local24 = (_local4 as Sprite); if (_local24 != null){ _local24.addEventListener(MouseEvent.CLICK, handleCellRendererClick, false, 0, true); _local24.addEventListener(MouseEvent.ROLL_OVER, handleCellRendererMouseEvent, false, 0, true); _local24.addEventListener(MouseEvent.ROLL_OUT, handleCellRendererMouseEvent, false, 0, true); _local24.addEventListener(Event.CHANGE, handleCellRendererChange, false, 0, true); _local24.doubleClickEnabled = true; _local24.addEventListener(MouseEvent.DOUBLE_CLICK, handleCellRendererDoubleClick, false, 0, true); if (_local24["setStyle"] != null){ for (_local25 in rendererStyles) { var _local31 = _local24; _local31["setStyle"](_local25, rendererStyles[_local25]); }; }; }; }; }; list.addChild((_local4 as Sprite)); activeCellRenderers.push(_local4); _local4.y = (_local8 * _local12); _local4.x = (_local7 * _local11); _local4.setSize(columnWidth, rowHeight); _local21 = itemToLabel(_local3); _local22 = null; if (_iconFunction != null){ _local22 = _iconFunction(_local3); } else { if (_iconField != null){ _local22 = _local3[_iconField]; }; }; _local23 = null; if (_sourceFunction != null){ _local23 = _sourceFunction(_local3); } else { if (_sourceField != null){ _local23 = _local3[_sourceField]; }; }; if (!_local20){ _local4.data = _local3; }; _local4.listData = (new TileListData(_local21, _local22, _local23, this, _local2, (_local10 + _local12), (_local9 + _local11)) as ListData); _local4.selected = !((_selectedIndices.indexOf(_local2) == -1)); if ((_local4 is UIComponent)){ _local26 = (_local4 as UIComponent); _local26.drawNow(); }; _local1++; }; } public function get columnWidth():Number{ return (_columnWidth); } public function set iconField(_arg1:String):void{ if (_arg1 == _iconField){ return; }; _iconField = _arg1; invalidate(InvalidationType.DATA); } public function set columnWidth(_arg1:Number):void{ if (_columnWidth == _arg1){ return; }; _columnWidth = _arg1; invalidate(InvalidationType.SIZE); } override protected function keyDownHandler(_arg1:KeyboardEvent):void{ var _local2:int; _arg1.stopPropagation(); if (!selectable){ return; }; switch (_arg1.keyCode){ case Keyboard.UP: case Keyboard.DOWN: moveSelectionVertically(_arg1.keyCode, ((_arg1.shiftKey) && (_allowMultipleSelection)), ((_arg1.ctrlKey) && (_allowMultipleSelection))); break; case Keyboard.PAGE_UP: case Keyboard.PAGE_DOWN: case Keyboard.END: case Keyboard.HOME: if (_scrollDirection == ScrollBarDirection.HORIZONTAL){ moveSelectionHorizontally(_arg1.keyCode, ((_arg1.shiftKey) && (_allowMultipleSelection)), ((_arg1.ctrlKey) && (_allowMultipleSelection))); } else { moveSelectionVertically(_arg1.keyCode, ((_arg1.shiftKey) && (_allowMultipleSelection)), ((_arg1.ctrlKey) && (_allowMultipleSelection))); }; break; case Keyboard.LEFT: case Keyboard.RIGHT: moveSelectionHorizontally(_arg1.keyCode, ((_arg1.shiftKey) && (_allowMultipleSelection)), ((_arg1.ctrlKey) && (_allowMultipleSelection))); break; default: _local2 = getNextIndexAtLetter(String.fromCharCode(_arg1.keyCode), selectedIndex); if (_local2 > -1){ selectedIndex = _local2; scrollToSelected(); }; break; }; } override public function get horizontalScrollPolicy():String{ return (null); } public function set scrollPolicy(_arg1:String):void{ if (((!(componentInspectorSetting)) && ((_scrollPolicy == _arg1)))){ return; }; _scrollPolicy = _arg1; if (direction == ScrollBarDirection.HORIZONTAL){ _horizontalScrollPolicy = _arg1; _verticalScrollPolicy = ScrollPolicy.OFF; } else { _verticalScrollPolicy = _arg1; _horizontalScrollPolicy = ScrollPolicy.OFF; }; invalidate(InvalidationType.SIZE); } public function set labelField(_arg1:String):void{ if (_arg1 == _labelField){ return; }; _labelField = _arg1; invalidate(InvalidationType.DATA); } override public function get verticalScrollPolicy():String{ return (null); } public function get innerWidth():Number{ var _local1:Number; drawNow(); _local1 = (getStyleValue("contentPadding") as Number); return (((width - (_local1 * 2)) - (_verticalScrollBar.visible) ? _verticalScrollBar.width : 0)); } protected function calculateAvailableHeight():Number{ var _local1:Number; _local1 = Number(getStyleValue("contentPadding")); return (((height - (_local1 * 2)) - ((((_horizontalScrollPolicy == ScrollPolicy.ON)) || ((((_horizontalScrollPolicy == ScrollPolicy.AUTO)) && ((_maxHorizontalScrollPosition > 0)))))) ? 15 : 0)); } public function get sourceFunction():Function{ return (_sourceFunction); } override protected function moveSelectionHorizontally(_arg1:uint, _arg2:Boolean, _arg3:Boolean):void{ var _local4:uint; var _local5:int; var _local6:int; var _local7:*; _local4 = Math.ceil((Math.max((rowCount * columnCount), length) / rowCount)); switch (_arg1){ case Keyboard.LEFT: _local5 = Math.max(0, (selectedIndex - 1)); break; case Keyboard.RIGHT: _local5 = Math.min((length - 1), (selectedIndex + 1)); break; case Keyboard.HOME: _local5 = 0; break; case Keyboard.END: _local5 = (length - 1); break; case Keyboard.PAGE_UP: _local6 = (selectedIndex - (selectedIndex % _local4)); _local5 = Math.max(0, Math.max(_local6, (selectedIndex - columnCount))); break; case Keyboard.PAGE_DOWN: _local7 = (((selectedIndex - (selectedIndex % _local4)) + _local4) - 1); _local5 = Math.min((length - 1), Math.min(_local7, (selectedIndex + _local4))); break; }; doKeySelection(_local5, _arg2, _arg3); scrollToSelected(); } override protected function draw():void{ var _local1:Boolean; if (direction == ScrollBarDirection.VERTICAL){ if (__rowCount > 0){ rowCount = __rowCount; }; if (__columnCount > 0){ columnCount = __columnCount; }; } else { if (__columnCount > 0){ columnCount = __columnCount; }; if (__rowCount > 0){ rowCount = __rowCount; }; }; _local1 = !((oldLength == length)); oldLength = length; if (isInvalid(InvalidationType.STYLES)){ setStyles(); drawBackground(); if (contentPadding != getStyleValue("contentPadding")){ invalidate(InvalidationType.SIZE, false); }; if (_cellRenderer != getStyleValue("cellRenderer")){ _invalidateList(); _cellRenderer = getStyleValue("cellRenderer"); }; }; if (((isInvalid(InvalidationType.SIZE, InvalidationType.STATE)) || (_local1))){ drawLayout(); }; if (isInvalid(InvalidationType.RENDERER_STYLES)){ updateRendererStyles(); }; if (isInvalid(InvalidationType.STYLES, InvalidationType.SIZE, InvalidationType.DATA, InvalidationType.SCROLL, InvalidationType.SELECTED)){ drawList(); _maxHorizontalScrollPosition = Math.max(0, (contentWidth - availableWidth)); }; updateChildren(); validate(); } override public function set horizontalScrollPolicy(_arg1:String):void{ } override protected function configUI():void{ super.configUI(); _horizontalScrollPolicy = scrollPolicy; _verticalScrollPolicy = ScrollPolicy.OFF; } override protected function drawLayout():void{ var _local1:uint; var _local2:uint; _horizontalScrollPolicy = ((_scrollDirection)==ScrollBarDirection.HORIZONTAL) ? _scrollPolicy : ScrollPolicy.OFF; _verticalScrollPolicy = ((_scrollDirection)!=ScrollBarDirection.HORIZONTAL) ? _scrollPolicy : ScrollPolicy.OFF; if (_scrollDirection == ScrollBarDirection.HORIZONTAL){ _local1 = rowCount; contentHeight = (_local1 * _rowHeight); contentWidth = (_columnWidth * Math.ceil((length / _local1))); } else { _local2 = columnCount; contentWidth = (_local2 * _columnWidth); contentHeight = (_rowHeight * Math.ceil((length / _local2))); }; super.drawLayout(); } public function get sourceField():String{ return (_sourceField); } override public function get maxHorizontalScrollPosition():Number{ drawNow(); return (_maxHorizontalScrollPosition); } public function set labelFunction(_arg1:Function):void{ if (_labelFunction == _arg1){ return; }; _labelFunction = _arg1; invalidate(InvalidationType.DATA); } override public function set verticalScrollPolicy(_arg1:String):void{ } protected function doKeySelection(_arg1:uint, _arg2:Boolean, _arg3:Boolean):void{ var _local4:Array; var _local5:Boolean; var _local6:uint; var _local7:int; _local4 = selectedIndices; _local5 = false; if ((((_arg1 < 0)) || ((_arg1 > (length - 1))))){ } else { if (((((_arg2) && ((_local4.length > 0)))) && (!((_arg1 == _local4[0]))))){ _local6 = _local4[0]; _local4 = []; if (_arg1 < _local6){ _local7 = _local6; while (_local7 >= _arg1) { _local4.push(_local7); _local7--; }; } else { _local7 = _local6; while (_local7 <= _arg1) { _local4.push(_local7); _local7++; }; }; _local5 = true; } else { _local4 = [_arg1]; caretIndex = _arg1; _local5 = true; }; }; selectedIndices = _local4; if (_local5){ dispatchEvent(new Event(Event.CHANGE)); }; invalidate(InvalidationType.DATA); } public function set sourceFunction(_arg1:Function):void{ _sourceFunction = _arg1; invalidate(InvalidationType.DATA); } public function get scrollPolicy():String{ return (_scrollPolicy); } public function get labelField():String{ return (_labelField); } override protected function moveSelectionVertically(_arg1:uint, _arg2:Boolean, _arg3:Boolean):void{ var _local4:uint; var _local5:uint; var _local6:uint; var _local7:int; var _local8:int; _local4 = Math.max(1, ((Math.max(contentHeight, availableHeight) / _rowHeight) << 0)); _local5 = Math.ceil((Math.max((columnCount * rowCount), length) / _local4)); _local6 = Math.ceil((length / _local5)); switch (_arg1){ case Keyboard.UP: _local7 = (selectedIndex - _local5); break; case Keyboard.DOWN: _local7 = (selectedIndex + _local5); break; case Keyboard.HOME: _local7 = 0; break; case Keyboard.END: _local7 = (length - 1); break; case Keyboard.PAGE_DOWN: _local8 = (selectedIndex + (_local5 * (_local6 - 1))); if (_local8 >= length){ _local8 = (_local8 - _local5); }; _local7 = Math.min((length - 1), _local8); break; case Keyboard.PAGE_UP: _local8 = (selectedIndex - (_local5 * (_local6 - 1))); if (_local8 < 0){ _local8 = (_local8 + _local5); }; _local7 = Math.max(0, _local8); break; }; doKeySelection(_local7, _arg2, _arg3); scrollToSelected(); } override public function itemToLabel(_arg1:Object):String{ if (_labelFunction != null){ return (String(_labelFunction(_arg1))); }; if (_arg1[_labelField] == null){ return (""); }; return (String(_arg1[_labelField])); } public function set rowCount(_arg1:uint):void{ var _local2:Number; var _local3:*; if (_arg1 == 0){ return; }; if (componentInspectorSetting){ __rowCount = _arg1; return; }; __rowCount = 0; _local2 = Number(getStyleValue("contentPadding")); _local3 = (((((Math.ceil((length / _arg1)) > ((width / columnWidth) >> 0))) && ((_scrollPolicy == ScrollPolicy.AUTO)))) || ((_scrollPolicy == ScrollPolicy.ON))); height = (((rowHeight * _arg1) + (2 * _local2)) + ((((_scrollDirection == ScrollBarDirection.HORIZONTAL)) && (_local3))) ? ScrollBar.WIDTH : 0); } public function set columnCount(_arg1:uint):void{ var _local2:Number; var _local3:Boolean; if (_arg1 == 0){ return; }; if (componentInspectorSetting){ __columnCount = _arg1; return; }; __columnCount = 0; _local2 = Number(getStyleValue("contentPadding")); _local3 = (((((Math.ceil((length / _arg1)) > ((height / rowHeight) >> 0))) && ((_scrollPolicy == ScrollPolicy.AUTO)))) || ((_scrollPolicy == ScrollPolicy.ON))); width = (((columnWidth * _arg1) + (2 * _local2)) + ((((_scrollDirection == ScrollBarDirection.VERTICAL)) && (_local3))) ? 15 : 0); } override protected function setHorizontalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{ invalidate(InvalidationType.SCROLL); super.setHorizontalScrollPosition(_arg1, true); } public function set iconFunction(_arg1:Function):void{ if (_iconFunction == _arg1){ return; }; _iconFunction = _arg1; invalidate(InvalidationType.DATA); } public function get labelFunction():Function{ return (_labelFunction); } public function set direction(_arg1:String):void{ if (_scrollDirection == _arg1){ return; }; _scrollDirection = _arg1; invalidate(InvalidationType.SIZE); } public function get innerHeight():Number{ var _local1:Number; drawNow(); _local1 = (getStyleValue("contentPadding") as Number); return (((height - (_local1 * 2)) - (_horizontalScrollBar.visible) ? _horizontalScrollBar.height : 0)); } override protected function setVerticalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{ invalidate(InvalidationType.SCROLL); super.setVerticalScrollPosition(_arg1, true); } public function set sourceField(_arg1:String):void{ _sourceField = _arg1; invalidate(InvalidationType.DATA); } override public function get rowCount():uint{ var _local1:Number; var _local2:uint; var _local3:uint; _local1 = Number(getStyleValue("contentPadding")); _local2 = Math.max(1, (((_width - (2 * _local1)) / _columnWidth) << 0)); _local3 = Math.max(1, (((_height - (2 * _local1)) / _rowHeight) << 0)); if (_scrollDirection == ScrollBarDirection.HORIZONTAL){ if ((((_scrollPolicy == ScrollPolicy.ON)) || ((((_scrollPolicy == ScrollPolicy.AUTO)) && ((length > (_local2 * _local3))))))){ _local3 = Math.max(1, ((((_height - (2 * _local1)) - 15) / _rowHeight) << 0)); }; } else { _local3 = Math.max(1, Math.ceil(((_height - (2 * _local1)) / _rowHeight))); }; return (_local3); } public function set rowHeight(_arg1:Number):void{ if (_rowHeight == _arg1){ return; }; _rowHeight = _arg1; invalidate(InvalidationType.SIZE); } public function get columnCount():uint{ var _local1:Number; var _local2:uint; var _local3:uint; _local1 = Number(getStyleValue("contentPadding")); _local2 = Math.max(1, (((_width - (2 * _local1)) / _columnWidth) << 0)); _local3 = Math.max(1, (((_height - (2 * _local1)) / _rowHeight) << 0)); if (_scrollDirection != ScrollBarDirection.HORIZONTAL){ if ((((_scrollPolicy == ScrollPolicy.ON)) || ((((_scrollPolicy == ScrollPolicy.AUTO)) && ((length > (_local2 * _local3))))))){ _local2 = Math.max(1, ((((_width - (2 * _local1)) - 15) / _columnWidth) << 0)); }; } else { _local2 = Math.max(1, Math.ceil(((_width - (2 * _local1)) / _columnWidth))); }; return (_local2); } public function get iconFunction():Function{ return (_iconFunction); } override public function set dataProvider(_arg1:DataProvider):void{ super.dataProvider = _arg1; } public function get direction():String{ return (_scrollDirection); } override public function scrollToIndex(_arg1:int):void{ var _local2:uint; var _local3:Number; var _local4:Number; drawNow(); _local2 = Math.max(1, ((contentWidth / _columnWidth) << 0)); if (_scrollDirection == ScrollBarDirection.VERTICAL){ if (rowHeight > availableHeight){ return; }; _local3 = (((_arg1 / _local2) >> 0) * rowHeight); if (_local3 < verticalScrollPosition){ verticalScrollPosition = _local3; } else { if (_local3 > ((verticalScrollPosition + availableHeight) - rowHeight)){ verticalScrollPosition = ((_local3 + rowHeight) - availableHeight); }; }; } else { if (columnWidth > availableWidth){ return; }; _local4 = ((_arg1 % _local2) * columnWidth); if (_local4 < horizontalScrollPosition){ horizontalScrollPosition = _local4; } else { if (_local4 > ((horizontalScrollPosition + availableWidth) - columnWidth)){ horizontalScrollPosition = ((_local4 + columnWidth) - availableWidth); }; }; }; } override protected function initializeAccessibility():void{ if (TileList.createAccessibilityImplementation != null){ TileList.createAccessibilityImplementation(this); }; } public function get rowHeight():Number{ return (_rowHeight); } override public function get dataProvider():DataProvider{ return (super.dataProvider); } override public function set maxHorizontalScrollPosition(_arg1:Number):void{ } public static function getStyleDefinition():Object{ return (mergeStyles(defaultStyles, SelectableList.getStyleDefinition(), ScrollBar.getStyleDefinition())); } } }//package fl.controls
Section 72
//ComponentShim (fl.core.ComponentShim) package fl.core { import flash.display.*; public dynamic class ComponentShim extends MovieClip { } }//package fl.core
Section 73
//InvalidationType (fl.core.InvalidationType) package fl.core { public class InvalidationType { public static const SIZE:String = "size"; public static const ALL:String = "all"; public static const DATA:String = "data"; public static const SCROLL:String = "scroll"; public static const STATE:String = "state"; public static const STYLES:String = "styles"; public static const SELECTED:String = "selected"; public static const RENDERER_STYLES:String = "rendererStyles"; } }//package fl.core
Section 74
//UIComponent (fl.core.UIComponent) package fl.core { import flash.display.*; import flash.events.*; import flash.text.*; import fl.managers.*; import flash.utils.*; import flash.system.*; import fl.events.*; public class UIComponent extends Sprite { protected var _enabled:Boolean;// = true private var _mouseFocusEnabled:Boolean;// = true protected var startHeight:Number; protected var _height:Number; protected var _oldIMEMode:String;// = null protected var startWidth:Number; public var focusTarget:IFocusManagerComponent; protected var errorCaught:Boolean;// = false protected var uiFocusRect:DisplayObject; protected var _width:Number; public var version:String;// = "3.0.0.15" protected var isFocused:Boolean;// = false protected var callLaterMethods:Dictionary; private var _focusEnabled:Boolean;// = true private var tempText:TextField; protected var invalidateFlag:Boolean;// = false protected var _inspector:Boolean;// = false protected var sharedStyles:Object; protected var invalidHash:Object; protected var isLivePreview:Boolean;// = false protected var _imeMode:String;// = null protected var instanceStyles:Object; protected var _x:Number; protected var _y:Number; public static var inCallLaterPhase:Boolean = false; private static var defaultStyles:Object = {focusRectSkin:"focusRectSkin", focusRectPadding:2, textFormat:new TextFormat("_sans", 11, 0, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0), disabledTextFormat:new TextFormat("_sans", 11, 0x999999, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0), defaultTextFormat:new TextFormat("_sans", 11, 0, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0), defaultDisabledTextFormat:new TextFormat("_sans", 11, 0x999999, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0)}; public static var createAccessibilityImplementation:Function; private static var focusManagers:Dictionary = new Dictionary(false); public function UIComponent(){ version = "3.0.0.15"; isLivePreview = false; invalidateFlag = false; _enabled = true; isFocused = false; _focusEnabled = true; _mouseFocusEnabled = true; _imeMode = null; _oldIMEMode = null; errorCaught = false; _inspector = false; super(); instanceStyles = {}; sharedStyles = {}; invalidHash = {}; callLaterMethods = new Dictionary(); StyleManager.registerInstance(this); configUI(); invalidate(InvalidationType.ALL); tabEnabled = (this is IFocusManagerComponent); focusRect = false; if (tabEnabled){ addEventListener(FocusEvent.FOCUS_IN, focusInHandler); addEventListener(FocusEvent.FOCUS_OUT, focusOutHandler); addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler); addEventListener(KeyboardEvent.KEY_UP, keyUpHandler); }; initializeFocusManager(); addEventListener(Event.ENTER_FRAME, hookAccessibility, false, 0, true); } public function drawFocus(_arg1:Boolean):void{ var _local2:Number; isFocused = _arg1; if (((!((uiFocusRect == null))) && (contains(uiFocusRect)))){ removeChild(uiFocusRect); uiFocusRect = null; }; if (_arg1){ uiFocusRect = (getDisplayObjectInstance(getStyleValue("focusRectSkin")) as Sprite); if (uiFocusRect == null){ return; }; _local2 = Number(getStyleValue("focusRectPadding")); uiFocusRect.x = -(_local2); uiFocusRect.y = -(_local2); uiFocusRect.width = (width + (_local2 * 2)); uiFocusRect.height = (height + (_local2 * 2)); addChildAt(uiFocusRect, 0); }; } private function callLaterDispatcher(_arg1:Event):void{ var _local2:Dictionary; var _local3:Object; if (_arg1.type == Event.ADDED_TO_STAGE){ removeEventListener(Event.ADDED_TO_STAGE, callLaterDispatcher); stage.addEventListener(Event.RENDER, callLaterDispatcher, false, 0, true); stage.invalidate(); return; }; _arg1.target.removeEventListener(Event.RENDER, callLaterDispatcher); if (stage == null){ addEventListener(Event.ADDED_TO_STAGE, callLaterDispatcher, false, 0, true); return; }; inCallLaterPhase = true; _local2 = callLaterMethods; for (_local3 in _local2) { _local3(); delete _local2[_local3]; }; inCallLaterPhase = false; } private function addedHandler(_arg1:Event):void{ removeEventListener("addedToStage", addedHandler); initializeFocusManager(); } protected function getStyleValue(_arg1:String):Object{ return (((instanceStyles[_arg1])==null) ? sharedStyles[_arg1] : instanceStyles[_arg1]); } protected function isOurFocus(_arg1:DisplayObject):Boolean{ return ((_arg1 == this)); } override public function get scaleX():Number{ return ((width / startWidth)); } override public function get scaleY():Number{ return ((height / startHeight)); } override public function set height(_arg1:Number):void{ if (_height == _arg1){ return; }; setSize(width, _arg1); } protected function keyDownHandler(_arg1:KeyboardEvent):void{ } protected function focusInHandler(_arg1:FocusEvent):void{ var _local2:IFocusManager; if (isOurFocus((_arg1.target as DisplayObject))){ _local2 = focusManager; if (((_local2) && (_local2.showFocusIndicator))){ drawFocus(true); isFocused = true; }; }; } public function setStyle(_arg1:String, _arg2:Object):void{ if ((((instanceStyles[_arg1] === _arg2)) && (!((_arg2 is TextFormat))))){ return; }; instanceStyles[_arg1] = _arg2; invalidate(InvalidationType.STYLES); } override public function get visible():Boolean{ return (super.visible); } public function get componentInspectorSetting():Boolean{ return (_inspector); } override public function get x():Number{ return ((isNaN(_x)) ? super.x : _x); } override public function get y():Number{ return ((isNaN(_y)) ? super.y : _y); } protected function setIMEMode(_arg1:Boolean){ var enabled = _arg1; if (_imeMode != null){ if (enabled){ IME.enabled = true; _oldIMEMode = IME.conversionMode; try { if (((!(errorCaught)) && (!((IME.conversionMode == IMEConversionMode.UNKNOWN))))){ IME.conversionMode = _imeMode; }; errorCaught = false; } catch(e:Error) { errorCaught = true; throw (new Error(("IME mode not supported: " + _imeMode))); }; } else { if (((!((IME.conversionMode == IMEConversionMode.UNKNOWN))) && (!((_oldIMEMode == IMEConversionMode.UNKNOWN))))){ IME.conversionMode = _oldIMEMode; }; IME.enabled = false; }; }; } public function set enabled(_arg1:Boolean):void{ if (_arg1 == _enabled){ return; }; _enabled = _arg1; invalidate(InvalidationType.STATE); } public function setSharedStyle(_arg1:String, _arg2:Object):void{ if ((((sharedStyles[_arg1] === _arg2)) && (!((_arg2 is TextFormat))))){ return; }; sharedStyles[_arg1] = _arg2; if (instanceStyles[_arg1] == null){ invalidate(InvalidationType.STYLES); }; } protected function keyUpHandler(_arg1:KeyboardEvent):void{ } public function set focusEnabled(_arg1:Boolean):void{ _focusEnabled = _arg1; } override public function set scaleX(_arg1:Number):void{ setSize((startWidth * _arg1), height); } public function get mouseFocusEnabled():Boolean{ return (_mouseFocusEnabled); } override public function set scaleY(_arg1:Number):void{ setSize(width, (startHeight * _arg1)); } protected function getDisplayObjectInstance(_arg1:Object):DisplayObject{ var classDef:Object; var skin = _arg1; classDef = null; if ((skin is Class)){ return ((new (skin) as DisplayObject)); }; if ((skin is DisplayObject)){ (skin as DisplayObject).x = 0; (skin as DisplayObject).y = 0; return ((skin as DisplayObject)); }; try { classDef = getDefinitionByName(skin.toString()); } catch(e:Error) { try { classDef = (loaderInfo.applicationDomain.getDefinition(skin.toString()) as Object); } catch(e:Error) { }; }; if (classDef == null){ return (null); }; return ((new (classDef) as DisplayObject)); } protected function copyStylesToChild(_arg1:UIComponent, _arg2:Object):void{ var _local3:String; for (_local3 in _arg2) { _arg1.setStyle(_local3, getStyleValue(_arg2[_local3])); }; } protected function beforeComponentParameters():void{ } protected function callLater(_arg1:Function):void{ if (inCallLaterPhase){ return; }; callLaterMethods[_arg1] = true; if (stage != null){ stage.addEventListener(Event.RENDER, callLaterDispatcher, false, 0, true); stage.invalidate(); } else { addEventListener(Event.ADDED_TO_STAGE, callLaterDispatcher, false, 0, true); }; } protected function createFocusManager():void{ if (focusManagers[stage] == null){ focusManagers[stage] = new FocusManager(stage); }; } override public function set visible(_arg1:Boolean):void{ var _local2:String; if (super.visible == _arg1){ return; }; super.visible = _arg1; _local2 = (_arg1) ? ComponentEvent.SHOW : ComponentEvent.HIDE; dispatchEvent(new ComponentEvent(_local2, true)); } protected function hookAccessibility(_arg1:Event):void{ removeEventListener(Event.ENTER_FRAME, hookAccessibility); initializeAccessibility(); } public function set componentInspectorSetting(_arg1:Boolean):void{ _inspector = _arg1; if (_inspector){ beforeComponentParameters(); } else { afterComponentParameters(); }; } override public function set x(_arg1:Number):void{ move(_arg1, _y); } public function drawNow():void{ draw(); } override public function set y(_arg1:Number):void{ move(_x, _arg1); } protected function checkLivePreview():Boolean{ var className:String; if (parent == null){ return (false); }; try { className = getQualifiedClassName(parent); } catch(e:Error) { }; return ((className == "fl.livepreview::LivePreviewParent")); } protected function focusOutHandler(_arg1:FocusEvent):void{ if (isOurFocus((_arg1.target as DisplayObject))){ drawFocus(false); isFocused = false; }; } public function set mouseFocusEnabled(_arg1:Boolean):void{ _mouseFocusEnabled = _arg1; } public function getFocus():InteractiveObject{ if (stage){ return (stage.focus); }; return (null); } protected function validate():void{ invalidHash = {}; } override public function get height():Number{ return (_height); } public function invalidate(_arg1:String="all", _arg2:Boolean=true):void{ invalidHash[_arg1] = true; if (_arg2){ this.callLater(draw); }; } public function get enabled():Boolean{ return (_enabled); } protected function getScaleX():Number{ return (super.scaleX); } protected function getScaleY():Number{ return (super.scaleY); } public function get focusEnabled():Boolean{ return (_focusEnabled); } protected function afterComponentParameters():void{ } protected function draw():void{ if (isInvalid(InvalidationType.SIZE, InvalidationType.STYLES)){ if (((isFocused) && (focusManager.showFocusIndicator))){ drawFocus(true); }; }; validate(); } protected function configUI():void{ var _local1:Number; var _local2:Number; var _local3:Number; isLivePreview = checkLivePreview(); _local1 = rotation; rotation = 0; _local2 = super.width; _local3 = super.height; var _local4 = 1; super.scaleY = _local4; super.scaleX = _local4; setSize(_local2, _local3); move(super.x, super.y); rotation = _local1; startWidth = _local2; startHeight = _local3; if (numChildren > 0){ removeChildAt(0); }; } protected function setScaleX(_arg1:Number):void{ super.scaleX = _arg1; } protected function setScaleY(_arg1:Number):void{ super.scaleY = _arg1; } private function initializeFocusManager():void{ if (stage == null){ addEventListener(Event.ADDED_TO_STAGE, addedHandler, false, 0, true); } else { createFocusManager(); }; } public function set focusManager(_arg1:IFocusManager):void{ UIComponent.focusManagers[this] = _arg1; } public function clearStyle(_arg1:String):void{ setStyle(_arg1, null); } protected function isInvalid(_arg1:String, ... _args):Boolean{ if (((invalidHash[_arg1]) || (invalidHash[InvalidationType.ALL]))){ return (true); }; while (_args.length > 0) { if (invalidHash[_args.pop()]){ return (true); }; }; return (false); } public function setSize(_arg1:Number, _arg2:Number):void{ _width = _arg1; _height = _arg2; invalidate(InvalidationType.SIZE); dispatchEvent(new ComponentEvent(ComponentEvent.RESIZE, false)); } override public function set width(_arg1:Number):void{ if (_width == _arg1){ return; }; setSize(_arg1, height); } public function setFocus():void{ if (stage){ stage.focus = this; }; } protected function initializeAccessibility():void{ if (UIComponent.createAccessibilityImplementation != null){ UIComponent.createAccessibilityImplementation(this); }; } public function get focusManager():IFocusManager{ var _local1:DisplayObject; _local1 = this; while (_local1) { if (UIComponent.focusManagers[_local1] != null){ return (IFocusManager(UIComponent.focusManagers[_local1])); }; _local1 = _local1.parent; }; return (null); } override public function get width():Number{ return (_width); } public function move(_arg1:Number, _arg2:Number):void{ _x = _arg1; _y = _arg2; super.x = Math.round(_arg1); super.y = Math.round(_arg2); dispatchEvent(new ComponentEvent(ComponentEvent.MOVE)); } public function validateNow():void{ invalidate(InvalidationType.ALL, false); draw(); } public function getStyle(_arg1:String):Object{ return (instanceStyles[_arg1]); } public static function getStyleDefinition():Object{ return (defaultStyles); } public static function mergeStyles(... _args):Object{ var _local2:Object; var _local3:uint; var _local4:uint; var _local5:Object; var _local6:String; _local2 = {}; _local3 = _args.length; _local4 = 0; while (_local4 < _local3) { _local5 = _args[_local4]; for (_local6 in _local5) { if (_local2[_local6] != null){ } else { _local2[_local6] = _args[_local4][_local6]; }; }; _local4++; }; return (_local2); } } }//package fl.core
Section 75
//DataProvider (fl.data.DataProvider) package fl.data { import flash.events.*; import fl.events.*; public class DataProvider extends EventDispatcher { protected var data:Array; public function DataProvider(_arg1:Object=null){ if (_arg1 == null){ data = []; } else { data = getDataFromObject(_arg1); }; } protected function dispatchPreChangeEvent(_arg1:String, _arg2:Array, _arg3:int, _arg4:int):void{ dispatchEvent(new DataChangeEvent(DataChangeEvent.PRE_DATA_CHANGE, _arg1, _arg2, _arg3, _arg4)); } public function invalidateItemAt(_arg1:int):void{ checkIndex(_arg1, (data.length - 1)); dispatchChangeEvent(DataChangeType.INVALIDATE, [data[_arg1]], _arg1, _arg1); } public function getItemIndex(_arg1:Object):int{ return (data.indexOf(_arg1)); } protected function getDataFromObject(_arg1:Object):Array{ var _local2:Array; var _local3:Array; var _local4:uint; var _local5:Object; var _local6:XML; var _local7:XMLList; var _local8:XML; var _local9:XMLList; var _local10:XML; var _local11:XMLList; var _local12:XML; if ((_arg1 is Array)){ _local3 = (_arg1 as Array); if (_local3.length > 0){ if ((((_local3[0] is String)) || ((_local3[0] is Number)))){ _local2 = []; _local4 = 0; while (_local4 < _local3.length) { _local5 = {label:String(_local3[_local4]), data:_local3[_local4]}; _local2.push(_local5); _local4++; }; return (_local2); }; }; return (_arg1.concat()); } else { if ((_arg1 is DataProvider)){ return (_arg1.toArray()); }; if ((_arg1 is XML)){ _local6 = (_arg1 as XML); _local2 = []; _local7 = _local6.*; for each (_local8 in _local7) { _arg1 = {}; _local9 = _local8.attributes(); for each (_local10 in _local9) { _arg1[_local10.localName()] = _local10.toString(); }; _local11 = _local8.*; for each (_local12 in _local11) { if (_local12.hasSimpleContent()){ _arg1[_local12.localName()] = _local12.toString(); }; }; _local2.push(_arg1); }; return (_local2); //unresolved jump }; }; throw (new ((!NULL! + !NULL!) + " to Array or DataProvider.").TypeError(!NULL!)); } public function removeItemAt(_arg1:uint):Object{ var _local2:Array; checkIndex(_arg1, (data.length - 1)); dispatchPreChangeEvent(DataChangeType.REMOVE, data.slice(_arg1, (_arg1 + 1)), _arg1, _arg1); _local2 = data.splice(_arg1, 1); dispatchChangeEvent(DataChangeType.REMOVE, _local2, _arg1, _arg1); return (_local2[0]); } public function addItem(_arg1:Object):void{ dispatchPreChangeEvent(DataChangeType.ADD, [_arg1], (data.length - 1), (data.length - 1)); data.push(_arg1); dispatchChangeEvent(DataChangeType.ADD, [_arg1], (data.length - 1), (data.length - 1)); } public function sortOn(_arg1:Object, _arg2:Object=null){ var _local3:Array; dispatchPreChangeEvent(DataChangeType.SORT, data.concat(), 0, (data.length - 1)); _local3 = data.sortOn(_arg1, _arg2); dispatchChangeEvent(DataChangeType.SORT, data.concat(), 0, (data.length - 1)); return (_local3); } public function sort(... _args){ var _local2:Array; dispatchPreChangeEvent(DataChangeType.SORT, data.concat(), 0, (data.length - 1)); _local2 = data.sort.apply(data, _args); dispatchChangeEvent(DataChangeType.SORT, data.concat(), 0, (data.length - 1)); return (_local2); } public function addItems(_arg1:Object):void{ addItemsAt(_arg1, data.length); } public function concat(_arg1:Object):void{ addItems(_arg1); } public function clone():DataProvider{ return (new DataProvider(data)); } public function toArray():Array{ return (data.concat()); } public function get length():uint{ return (data.length); } public function addItemAt(_arg1:Object, _arg2:uint):void{ checkIndex(_arg2, data.length); dispatchPreChangeEvent(DataChangeType.ADD, [_arg1], _arg2, _arg2); data.splice(_arg2, 0, _arg1); dispatchChangeEvent(DataChangeType.ADD, [_arg1], _arg2, _arg2); } public function getItemAt(_arg1:uint):Object{ checkIndex(_arg1, (data.length - 1)); return (data[_arg1]); } override public function toString():String{ return ((("DataProvider [" + data.join(" , ")) + "]")); } public function invalidateItem(_arg1:Object):void{ var _local2:uint; _local2 = getItemIndex(_arg1); if (_local2 == -1){ return; }; invalidateItemAt(_local2); } protected function dispatchChangeEvent(_arg1:String, _arg2:Array, _arg3:int, _arg4:int):void{ dispatchEvent(new DataChangeEvent(DataChangeEvent.DATA_CHANGE, _arg1, _arg2, _arg3, _arg4)); } protected function checkIndex(_arg1:int, _arg2:int):void{ if ((((_arg1 > _arg2)) || ((_arg1 < 0)))){ throw (new RangeError((((("DataProvider index (" + _arg1) + ") is not in acceptable range (0 - ") + _arg2) + ")"))); }; } public function addItemsAt(_arg1:Object, _arg2:uint):void{ var _local3:Array; checkIndex(_arg2, data.length); _local3 = getDataFromObject(_arg1); dispatchPreChangeEvent(DataChangeType.ADD, _local3, _arg2, ((_arg2 + _local3.length) - 1)); data.splice.apply(data, [_arg2, 0].concat(_local3)); dispatchChangeEvent(DataChangeType.ADD, _local3, _arg2, ((_arg2 + _local3.length) - 1)); } public function replaceItem(_arg1:Object, _arg2:Object):Object{ var _local3:int; _local3 = getItemIndex(_arg2); if (_local3 != -1){ return (replaceItemAt(_arg1, _local3)); }; return (null); } public function removeItem(_arg1:Object):Object{ var _local2:int; _local2 = getItemIndex(_arg1); if (_local2 != -1){ return (removeItemAt(_local2)); }; return (null); } public function merge(_arg1:Object):void{ var _local2:Array; var _local3:uint; var _local4:uint; var _local5:uint; var _local6:Object; _local2 = getDataFromObject(_arg1); _local3 = _local2.length; _local4 = data.length; dispatchPreChangeEvent(DataChangeType.ADD, data.slice(_local4, data.length), _local4, (this.data.length - 1)); _local5 = 0; while (_local5 < _local3) { _local6 = _local2[_local5]; if (getItemIndex(_local6) == -1){ data.push(_local6); }; _local5++; }; if (data.length > _local4){ dispatchChangeEvent(DataChangeType.ADD, data.slice(_local4, data.length), _local4, (this.data.length - 1)); } else { dispatchChangeEvent(DataChangeType.ADD, [], -1, -1); }; } public function replaceItemAt(_arg1:Object, _arg2:uint):Object{ var _local3:Array; checkIndex(_arg2, (data.length - 1)); _local3 = [data[_arg2]]; dispatchPreChangeEvent(DataChangeType.REPLACE, _local3, _arg2, _arg2); data[_arg2] = _arg1; dispatchChangeEvent(DataChangeType.REPLACE, _local3, _arg2, _arg2); return (_local3[0]); } public function invalidate():void{ dispatchEvent(new DataChangeEvent(DataChangeEvent.DATA_CHANGE, DataChangeType.INVALIDATE_ALL, data.concat(), 0, data.length)); } public function removeAll():void{ var _local1:Array; _local1 = data.concat(); dispatchPreChangeEvent(DataChangeType.REMOVE_ALL, _local1, 0, _local1.length); data = []; dispatchChangeEvent(DataChangeType.REMOVE_ALL, _local1, 0, _local1.length); } } }//package fl.data
Section 76
//SimpleCollectionItem (fl.data.SimpleCollectionItem) package fl.data { public dynamic class SimpleCollectionItem { public var label:String; public var data:String; public function toString():String{ return ((((("[SimpleCollectionItem: " + label) + ",") + data) + "]")); } } }//package fl.data
Section 77
//TileListCollectionItem (fl.data.TileListCollectionItem) package fl.data { public dynamic class TileListCollectionItem { public var label:String; public var source:String; public function toString():String{ return ((((("[TileListCollectionItem: " + label) + ",") + source) + "]")); } } }//package fl.data
Section 78
//ComponentEvent (fl.events.ComponentEvent) package fl.events { import flash.events.*; public class ComponentEvent extends Event { public static const HIDE:String = "hide"; public static const BUTTON_DOWN:String = "buttonDown"; public static const MOVE:String = "move"; public static const RESIZE:String = "resize"; public static const ENTER:String = "enter"; public static const LABEL_CHANGE:String = "labelChange"; public static const SHOW:String = "show"; public function ComponentEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false){ super(_arg1, _arg2, _arg3); } override public function toString():String{ return (formatToString("ComponentEvent", "type", "bubbles", "cancelable")); } override public function clone():Event{ return (new ComponentEvent(type, bubbles, cancelable)); } } }//package fl.events
Section 79
//DataChangeEvent (fl.events.DataChangeEvent) package fl.events { import flash.events.*; public class DataChangeEvent extends Event { protected var _items:Array; protected var _endIndex:uint; protected var _changeType:String; protected var _startIndex:uint; public static const PRE_DATA_CHANGE:String = "preDataChange"; public static const DATA_CHANGE:String = "dataChange"; public function DataChangeEvent(_arg1:String, _arg2:String, _arg3:Array, _arg4:int=-1, _arg5:int=-1):void{ super(_arg1); _changeType = _arg2; _startIndex = _arg4; _items = _arg3; _endIndex = ((_arg5)==-1) ? _startIndex : _arg5; } public function get changeType():String{ return (_changeType); } public function get startIndex():uint{ return (_startIndex); } public function get items():Array{ return (_items); } override public function clone():Event{ return (new DataChangeEvent(type, _changeType, _items, _startIndex, _endIndex)); } override public function toString():String{ return (formatToString("DataChangeEvent", "type", "changeType", "startIndex", "endIndex", "bubbles", "cancelable")); } public function get endIndex():uint{ return (_endIndex); } } }//package fl.events
Section 80
//DataChangeType (fl.events.DataChangeType) package fl.events { public class DataChangeType { public static const ADD:String = "add"; public static const REMOVE:String = "remove"; public static const REMOVE_ALL:String = "removeAll"; public static const CHANGE:String = "change"; public static const REPLACE:String = "replace"; public static const INVALIDATE:String = "invalidate"; public static const INVALIDATE_ALL:String = "invalidateAll"; public static const SORT:String = "sort"; } }//package fl.events
Section 81
//ListEvent (fl.events.ListEvent) package fl.events { import flash.events.*; public class ListEvent extends Event { protected var _index:int; protected var _item:Object; protected var _columnIndex:int; protected var _rowIndex:int; public static const ITEM_DOUBLE_CLICK:String = "itemDoubleClick"; public static const ITEM_ROLL_OUT:String = "itemRollOut"; public static const ITEM_ROLL_OVER:String = "itemRollOver"; public static const ITEM_CLICK:String = "itemClick"; public function ListEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false, _arg4:int=-1, _arg5:int=-1, _arg6:int=-1, _arg7:Object=null){ super(_arg1, _arg2, _arg3); _rowIndex = _arg5; _columnIndex = _arg4; _index = _arg6; _item = _arg7; } public function get rowIndex():Object{ return (_rowIndex); } public function get index():int{ return (_index); } public function get item():Object{ return (_item); } public function get columnIndex():int{ return (_columnIndex); } override public function clone():Event{ return (new ListEvent(type, bubbles, cancelable, _columnIndex, _rowIndex)); } override public function toString():String{ return (formatToString("ListEvent", "type", "bubbles", "cancelable", "columnIndex", "rowIndex", "index", "item")); } } }//package fl.events
Section 82
//ScrollEvent (fl.events.ScrollEvent) package fl.events { import flash.events.*; public class ScrollEvent extends Event { private var _position:Number; private var _direction:String; private var _delta:Number; public static const SCROLL:String = "scroll"; public function ScrollEvent(_arg1:String, _arg2:Number, _arg3:Number){ super(ScrollEvent.SCROLL, false, false); _direction = _arg1; _delta = _arg2; _position = _arg3; } override public function clone():Event{ return (new ScrollEvent(_direction, _delta, _position)); } public function get position():Number{ return (_position); } override public function toString():String{ return (formatToString("ScrollEvent", "type", "bubbles", "cancelable", "direction", "delta", "position")); } public function get delta():Number{ return (_delta); } public function get direction():String{ return (_direction); } } }//package fl.events
Section 83
//FocusManager (fl.managers.FocusManager) package fl.managers { import fl.core.*; import fl.controls.*; import flash.display.*; import flash.events.*; import flash.text.*; import flash.ui.*; import flash.utils.*; public class FocusManager implements IFocusManager { private var focusableObjects:Dictionary; private var _showFocusIndicator:Boolean;// = true private var defButton:Button; private var focusableCandidates:Array; private var _form:DisplayObjectContainer; private var _defaultButtonEnabled:Boolean;// = true private var activated:Boolean;// = false private var _defaultButton:Button; private var calculateCandidates:Boolean;// = true private var lastFocus:InteractiveObject; private var lastAction:String; public function FocusManager(_arg1:DisplayObjectContainer){ activated = false; calculateCandidates = true; _showFocusIndicator = true; _defaultButtonEnabled = true; super(); focusableObjects = new Dictionary(true); if (_arg1 != null){ _form = _arg1; addFocusables(DisplayObject(_arg1)); _arg1.addEventListener(Event.ADDED, addedHandler); _arg1.addEventListener(Event.REMOVED, removedHandler); activate(); }; } public function get showFocusIndicator():Boolean{ return (_showFocusIndicator); } private function getIndexOfNextObject(_arg1:int, _arg2:Boolean, _arg3:Boolean, _arg4:String):int{ var _local5:int; var _local6:int; var _local7:DisplayObject; var _local8:IFocusManagerGroup; var _local9:int; var _local10:DisplayObject; var _local11:IFocusManagerGroup; _local5 = focusableCandidates.length; _local6 = _arg1; while (true) { if (_arg2){ _arg1--; } else { _arg1++; }; if (_arg3){ if (((_arg2) && ((_arg1 < 0)))){ break; }; if (((!(_arg2)) && ((_arg1 == _local5)))){ break; }; } else { _arg1 = ((_arg1 + _local5) % _local5); if (_local6 == _arg1){ break; }; }; if (isValidFocusCandidate(focusableCandidates[_arg1], _arg4)){ _local7 = DisplayObject(findFocusManagerComponent(focusableCandidates[_arg1])); if ((_local7 is IFocusManagerGroup)){ _local8 = IFocusManagerGroup(_local7); _local9 = 0; while (_local9 < focusableCandidates.length) { _local10 = focusableCandidates[_local9]; if ((_local10 is IFocusManagerGroup)){ _local11 = IFocusManagerGroup(_local10); if ((((_local11.groupName == _local8.groupName)) && (_local11.selected))){ _arg1 = _local9; break; }; }; _local9++; }; }; return (_arg1); }; }; return (_arg1); } public function set form(_arg1:DisplayObjectContainer):void{ _form = _arg1; } private function addFocusables(_arg1:DisplayObject, _arg2:Boolean=false):void{ var focusable:IFocusManagerComponent; var io:InteractiveObject; var doc:DisplayObjectContainer; var i:int; var child:DisplayObject; var o = _arg1; var skipTopLevel = _arg2; if (!skipTopLevel){ if ((o is IFocusManagerComponent)){ focusable = IFocusManagerComponent(o); if (focusable.focusEnabled){ if (((focusable.tabEnabled) && (isTabVisible(o)))){ focusableObjects[o] = true; calculateCandidates = true; }; o.addEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); o.addEventListener(Event.TAB_INDEX_CHANGE, tabIndexChangeHandler); }; } else { if ((o is InteractiveObject)){ io = (o as InteractiveObject); if (((((io) && (io.tabEnabled))) && ((findFocusManagerComponent(io) == io)))){ focusableObjects[io] = true; calculateCandidates = true; }; io.addEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); io.addEventListener(Event.TAB_INDEX_CHANGE, tabIndexChangeHandler); }; }; }; if ((o is DisplayObjectContainer)){ doc = DisplayObjectContainer(o); o.addEventListener(Event.TAB_CHILDREN_CHANGE, tabChildrenChangeHandler); if ((((((doc is Stage)) || ((doc.parent is Stage)))) || (doc.tabChildren))){ i = 0; while (i < doc.numChildren) { try { child = doc.getChildAt(i); if (child != null){ addFocusables(doc.getChildAt(i)); }; } catch(error:SecurityError) { }; i = (i + 1); }; }; }; } private function getChildIndex(_arg1:DisplayObjectContainer, _arg2:DisplayObject):int{ return (_arg1.getChildIndex(_arg2)); } private function mouseFocusChangeHandler(_arg1:FocusEvent):void{ if ((_arg1.relatedObject is TextField)){ return; }; _arg1.preventDefault(); } private function focusOutHandler(_arg1:FocusEvent):void{ var _local2:InteractiveObject; _local2 = (_arg1.target as InteractiveObject); } private function isValidFocusCandidate(_arg1:DisplayObject, _arg2:String):Boolean{ var _local3:IFocusManagerGroup; if (!isEnabledAndVisible(_arg1)){ return (false); }; if ((_arg1 is IFocusManagerGroup)){ _local3 = IFocusManagerGroup(_arg1); if (_arg2 == _local3.groupName){ return (false); }; }; return (true); } public function findFocusManagerComponent(_arg1:InteractiveObject):InteractiveObject{ var _local2:InteractiveObject; _local2 = _arg1; while (_arg1) { if ((((_arg1 is IFocusManagerComponent)) && (IFocusManagerComponent(_arg1).focusEnabled))){ return (_arg1); }; _arg1 = _arg1.parent; }; return (_local2); } private function sortFocusableObjectsTabIndex():void{ var _local1:Object; var _local2:InteractiveObject; focusableCandidates = []; for (_local1 in focusableObjects) { _local2 = InteractiveObject(_local1); if (((_local2.tabIndex) && (!(isNaN(Number(_local2.tabIndex)))))){ focusableCandidates.push(_local2); }; }; focusableCandidates.sort(sortByTabIndex); } private function removeFocusables(_arg1:DisplayObject):void{ var _local2:Object; var _local3:DisplayObject; if ((_arg1 is DisplayObjectContainer)){ _arg1.removeEventListener(Event.TAB_CHILDREN_CHANGE, tabChildrenChangeHandler); _arg1.removeEventListener(Event.TAB_INDEX_CHANGE, tabIndexChangeHandler); for (_local2 in focusableObjects) { _local3 = DisplayObject(_local2); if (DisplayObjectContainer(_arg1).contains(_local3)){ if (_local3 == lastFocus){ lastFocus = null; }; _local3.removeEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); delete focusableObjects[_local2]; calculateCandidates = true; }; }; }; } private function addedHandler(_arg1:Event):void{ var _local2:DisplayObject; _local2 = DisplayObject(_arg1.target); if (_local2.stage){ addFocusables(DisplayObject(_arg1.target)); }; } private function getTopLevelFocusTarget(_arg1:InteractiveObject):InteractiveObject{ while (_arg1 != InteractiveObject(form)) { if ((((((((_arg1 is IFocusManagerComponent)) && (IFocusManagerComponent(_arg1).focusEnabled))) && (IFocusManagerComponent(_arg1).mouseFocusEnabled))) && (UIComponent(_arg1).enabled))){ return (_arg1); }; _arg1 = _arg1.parent; if (_arg1 == null){ break; }; }; return (null); } private function tabChildrenChangeHandler(_arg1:Event):void{ var _local2:DisplayObjectContainer; if (_arg1.target != _arg1.currentTarget){ return; }; calculateCandidates = true; _local2 = DisplayObjectContainer(_arg1.target); if (_local2.tabChildren){ addFocusables(_local2, true); } else { removeFocusables(_local2); }; } public function sendDefaultButtonEvent():void{ defButton.dispatchEvent(new MouseEvent(MouseEvent.CLICK)); } public function getFocus():InteractiveObject{ var _local1:InteractiveObject; _local1 = form.stage.focus; return (findFocusManagerComponent(_local1)); } private function isEnabledAndVisible(_arg1:DisplayObject):Boolean{ var _local2:DisplayObjectContainer; var _local3:TextField; var _local4:SimpleButton; _local2 = DisplayObject(form).parent; while (_arg1 != _local2) { if ((_arg1 is UIComponent)){ if (!UIComponent(_arg1).enabled){ return (false); }; } else { if ((_arg1 is TextField)){ _local3 = TextField(_arg1); if ((((_local3.type == TextFieldType.DYNAMIC)) || (!(_local3.selectable)))){ return (false); }; } else { if ((_arg1 is SimpleButton)){ _local4 = SimpleButton(_arg1); if (!_local4.enabled){ return (false); }; }; }; }; if (!_arg1.visible){ return (false); }; _arg1 = _arg1.parent; }; return (true); } public function set defaultButton(_arg1:Button):void{ var _local2:Button; _local2 = (_arg1) ? Button(_arg1) : null; if (_local2 != _defaultButton){ if (_defaultButton){ _defaultButton.emphasized = false; }; if (defButton){ defButton.emphasized = false; }; _defaultButton = _local2; defButton = _local2; if (_local2){ _local2.emphasized = true; }; }; } private function deactivateHandler(_arg1:Event):void{ var _local2:InteractiveObject; _local2 = InteractiveObject(_arg1.target); } public function setFocus(_arg1:InteractiveObject):void{ if ((_arg1 is IFocusManagerComponent)){ IFocusManagerComponent(_arg1).setFocus(); } else { form.stage.focus = _arg1; }; } private function setFocusToNextObject(_arg1:FocusEvent):void{ var _local2:InteractiveObject; if (!hasFocusableObjects()){ return; }; _local2 = getNextFocusManagerComponent(_arg1.shiftKey); if (_local2){ setFocus(_local2); }; } private function hasFocusableObjects():Boolean{ var _local1:Object; for (_local1 in focusableObjects) { return (true); }; return (false); } private function tabIndexChangeHandler(_arg1:Event):void{ calculateCandidates = true; } private function sortFocusableObjects():void{ var _local1:Object; var _local2:InteractiveObject; focusableCandidates = []; for (_local1 in focusableObjects) { _local2 = InteractiveObject(_local1); if (((((_local2.tabIndex) && (!(isNaN(Number(_local2.tabIndex)))))) && ((_local2.tabIndex > 0)))){ sortFocusableObjectsTabIndex(); return; }; focusableCandidates.push(_local2); }; focusableCandidates.sort(sortByDepth); } private function keyFocusChangeHandler(_arg1:FocusEvent):void{ showFocusIndicator = true; if ((((((_arg1.keyCode == Keyboard.TAB)) || ((_arg1.keyCode == 0)))) && (!(_arg1.isDefaultPrevented())))){ setFocusToNextObject(_arg1); _arg1.preventDefault(); }; } private function getIndexOfFocusedObject(_arg1:DisplayObject):int{ var _local2:int; var _local3:int; _local2 = focusableCandidates.length; _local3 = 0; _local3 = 0; while (_local3 < _local2) { if (focusableCandidates[_local3] == _arg1){ return (_local3); }; _local3++; }; return (-1); } public function hideFocus():void{ } private function removedHandler(_arg1:Event):void{ var _local2:int; var _local3:DisplayObject; var _local4:InteractiveObject; _local3 = DisplayObject(_arg1.target); if ((((_local3 is IFocusManagerComponent)) && ((focusableObjects[_local3] == true)))){ if (_local3 == lastFocus){ IFocusManagerComponent(lastFocus).drawFocus(false); lastFocus = null; }; _local3.removeEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); delete focusableObjects[_local3]; calculateCandidates = true; } else { if ((((_local3 is InteractiveObject)) && ((focusableObjects[_local3] == true)))){ _local4 = (_local3 as InteractiveObject); if (_local4){ if (_local4 == lastFocus){ lastFocus = null; }; delete focusableObjects[_local4]; calculateCandidates = true; }; _local3.addEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler); }; }; removeFocusables(_local3); } private function sortByDepth(_arg1:InteractiveObject, _arg2:InteractiveObject):Number{ var _local3:String; var _local4:String; var _local5:int; var _local6:String; var _local7:String; var _local8:String; var _local9:DisplayObject; var _local10:DisplayObject; _local3 = ""; _local4 = ""; _local8 = "0000"; _local9 = DisplayObject(_arg1); _local10 = DisplayObject(_arg2); while (((!((_local9 == DisplayObject(form)))) && (_local9.parent))) { _local5 = getChildIndex(_local9.parent, _local9); _local6 = _local5.toString(16); if (_local6.length < 4){ _local7 = (_local8.substring(0, (4 - _local6.length)) + _local6); }; _local3 = (_local7 + _local3); _local9 = _local9.parent; }; while (((!((_local10 == DisplayObject(form)))) && (_local10.parent))) { _local5 = getChildIndex(_local10.parent, _local10); _local6 = _local5.toString(16); if (_local6.length < 4){ _local7 = (_local8.substring(0, (4 - _local6.length)) + _local6); }; _local4 = (_local7 + _local4); _local10 = _local10.parent; }; return (((_local3 > _local4)) ? 1 : ((_local3 < _local4)) ? -1 : 0); } public function get defaultButton():Button{ return (_defaultButton); } private function activateHandler(_arg1:Event):void{ var _local2:InteractiveObject; _local2 = InteractiveObject(_arg1.target); if (lastFocus){ if ((lastFocus is IFocusManagerComponent)){ IFocusManagerComponent(lastFocus).setFocus(); } else { form.stage.focus = lastFocus; }; }; lastAction = "ACTIVATE"; } public function showFocus():void{ } public function set defaultButtonEnabled(_arg1:Boolean):void{ _defaultButtonEnabled = _arg1; } public function getNextFocusManagerComponent(_arg1:Boolean=false):InteractiveObject{ var _local2:DisplayObject; var _local3:String; var _local4:int; var _local5:Boolean; var _local6:int; var _local7:int; var _local8:IFocusManagerGroup; if (!hasFocusableObjects()){ return (null); }; if (calculateCandidates){ sortFocusableObjects(); calculateCandidates = false; }; _local2 = form.stage.focus; _local2 = DisplayObject(findFocusManagerComponent(InteractiveObject(_local2))); _local3 = ""; if ((_local2 is IFocusManagerGroup)){ _local8 = IFocusManagerGroup(_local2); _local3 = _local8.groupName; }; _local4 = getIndexOfFocusedObject(_local2); _local5 = false; _local6 = _local4; if (_local4 == -1){ if (_arg1){ _local4 = focusableCandidates.length; }; _local5 = true; }; _local7 = getIndexOfNextObject(_local4, _arg1, _local5, _local3); return (findFocusManagerComponent(focusableCandidates[_local7])); } private function mouseDownHandler(_arg1:MouseEvent):void{ var _local2:InteractiveObject; if (_arg1.isDefaultPrevented()){ return; }; _local2 = getTopLevelFocusTarget(InteractiveObject(_arg1.target)); if (!_local2){ return; }; showFocusIndicator = false; if (((((!((_local2 == lastFocus))) || ((lastAction == "ACTIVATE")))) && (!((_local2 is TextField))))){ setFocus(_local2); }; lastAction = "MOUSEDOWN"; } private function isTabVisible(_arg1:DisplayObject):Boolean{ var _local2:DisplayObjectContainer; _local2 = _arg1.parent; while (((((_local2) && (!((_local2 is Stage))))) && (!(((_local2.parent) && ((_local2.parent is Stage))))))) { if (!_local2.tabChildren){ return (false); }; _local2 = _local2.parent; }; return (true); } public function get nextTabIndex():int{ return (0); } private function keyDownHandler(_arg1:KeyboardEvent):void{ if (_arg1.keyCode == Keyboard.TAB){ lastAction = "KEY"; if (calculateCandidates){ sortFocusableObjects(); calculateCandidates = false; }; }; if (((((((defaultButtonEnabled) && ((_arg1.keyCode == Keyboard.ENTER)))) && (defaultButton))) && (defButton.enabled))){ sendDefaultButtonEvent(); }; } private function focusInHandler(_arg1:FocusEvent):void{ var _local2:InteractiveObject; var _local3:Button; _local2 = InteractiveObject(_arg1.target); if (form.contains(_local2)){ lastFocus = findFocusManagerComponent(InteractiveObject(_local2)); if ((lastFocus is Button)){ _local3 = Button(lastFocus); if (defButton){ defButton.emphasized = false; defButton = _local3; _local3.emphasized = true; }; } else { if (((defButton) && (!((defButton == _defaultButton))))){ defButton.emphasized = false; defButton = _defaultButton; _defaultButton.emphasized = true; }; }; }; } private function tabEnabledChangeHandler(_arg1:Event):void{ var _local2:InteractiveObject; var _local3:Boolean; calculateCandidates = true; _local2 = InteractiveObject(_arg1.target); _local3 = (focusableObjects[_local2] == true); if (_local2.tabEnabled){ if (((!(_local3)) && (isTabVisible(_local2)))){ if (!(_local2 is IFocusManagerComponent)){ _local2.focusRect = false; }; focusableObjects[_local2] = true; }; } else { if (_local3){ delete focusableObjects[_local2]; }; }; } public function set showFocusIndicator(_arg1:Boolean):void{ _showFocusIndicator = _arg1; } public function get form():DisplayObjectContainer{ return (_form); } private function sortByTabIndex(_arg1:InteractiveObject, _arg2:InteractiveObject):int{ return (((_arg1.tabIndex > _arg2.tabIndex)) ? 1 : ((_arg1.tabIndex < _arg2.tabIndex)) ? -1 : sortByDepth(_arg1, _arg2)); } public function activate():void{ if (activated){ return; }; form.stage.addEventListener(FocusEvent.MOUSE_FOCUS_CHANGE, mouseFocusChangeHandler, false, 0, true); form.stage.addEventListener(FocusEvent.KEY_FOCUS_CHANGE, keyFocusChangeHandler, false, 0, true); form.addEventListener(FocusEvent.FOCUS_IN, focusInHandler, true); form.addEventListener(FocusEvent.FOCUS_OUT, focusOutHandler, true); form.stage.addEventListener(Event.ACTIVATE, activateHandler, false, 0, true); form.stage.addEventListener(Event.DEACTIVATE, deactivateHandler, false, 0, true); form.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler); form.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler, true); activated = true; if (lastFocus){ setFocus(lastFocus); }; } public function deactivate():void{ form.stage.removeEventListener(FocusEvent.MOUSE_FOCUS_CHANGE, mouseFocusChangeHandler); form.stage.removeEventListener(FocusEvent.KEY_FOCUS_CHANGE, keyFocusChangeHandler); form.removeEventListener(FocusEvent.FOCUS_IN, focusInHandler, true); form.removeEventListener(FocusEvent.FOCUS_OUT, focusOutHandler, true); form.stage.removeEventListener(Event.ACTIVATE, activateHandler); form.stage.removeEventListener(Event.DEACTIVATE, deactivateHandler); form.removeEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler); form.removeEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler, true); activated = false; } public function get defaultButtonEnabled():Boolean{ return (_defaultButtonEnabled); } } }//package fl.managers
Section 84
//IFocusManager (fl.managers.IFocusManager) package fl.managers { import fl.controls.*; import flash.display.*; public interface IFocusManager { function getFocus():InteractiveObject; function deactivate():void; function set defaultButton(_arg1:Button):void; function set showFocusIndicator(_arg1:Boolean):void; function get defaultButtonEnabled():Boolean; function get nextTabIndex():int; function get defaultButton():Button; function get showFocusIndicator():Boolean; function setFocus(_arg1:InteractiveObject):void; function activate():void; function showFocus():void; function set defaultButtonEnabled(_arg1:Boolean):void; function hideFocus():void; function findFocusManagerComponent(_arg1:InteractiveObject):InteractiveObject; function getNextFocusManagerComponent(_arg1:Boolean=false):InteractiveObject; } }//package fl.managers
Section 85
//IFocusManagerComponent (fl.managers.IFocusManagerComponent) package fl.managers { public interface IFocusManagerComponent { function set focusEnabled(_arg1:Boolean):void; function drawFocus(_arg1:Boolean):void; function setFocus():void; function get focusEnabled():Boolean; function get tabEnabled():Boolean; function get tabIndex():int; function get mouseFocusEnabled():Boolean; } }//package fl.managers
Section 86
//IFocusManagerGroup (fl.managers.IFocusManagerGroup) package fl.managers { public interface IFocusManagerGroup { function set groupName(_arg1:String):void; function set selected(_arg1:Boolean):void; function get groupName():String; function get selected():Boolean; } }//package fl.managers
Section 87
//StyleManager (fl.managers.StyleManager) package fl.managers { import fl.core.*; import flash.text.*; import flash.utils.*; public class StyleManager { private var globalStyles:Object; private var classToDefaultStylesDict:Dictionary; private var styleToClassesHash:Object; private var classToStylesDict:Dictionary; private var classToInstancesDict:Dictionary; private static var _instance:StyleManager; public function StyleManager(){ styleToClassesHash = {}; classToInstancesDict = new Dictionary(true); classToStylesDict = new Dictionary(true); classToDefaultStylesDict = new Dictionary(true); globalStyles = UIComponent.getStyleDefinition(); } public static function clearComponentStyle(_arg1:Object, _arg2:String):void{ var _local3:Class; var _local4:Object; _local3 = getClassDef(_arg1); _local4 = getInstance().classToStylesDict[_local3]; if (((!((_local4 == null))) && (!((_local4[_arg2] == null))))){ delete _local4[_arg2]; invalidateComponentStyle(_local3, _arg2); }; } private static function getClassDef(_arg1:Object):Class{ var component = _arg1; if ((component is Class)){ return ((component as Class)); }; try { return ((getDefinitionByName(getQualifiedClassName(component)) as Class)); } catch(e:Error) { if ((component is UIComponent)){ try { return ((component.loaderInfo.applicationDomain.getDefinition(getQualifiedClassName(component)) as Class)); } catch(e:Error) { }; }; }; return (null); } public static function clearStyle(_arg1:String):void{ setStyle(_arg1, null); } public static function setComponentStyle(_arg1:Object, _arg2:String, _arg3:Object):void{ var _local4:Class; var _local5:Object; _local4 = getClassDef(_arg1); _local5 = getInstance().classToStylesDict[_local4]; if (_local5 == null){ _local5 = (getInstance().classToStylesDict[_local4] = {}); }; if (_local5 == _arg3){ return; }; _local5[_arg2] = _arg3; invalidateComponentStyle(_local4, _arg2); } private static function setSharedStyles(_arg1:UIComponent):void{ var _local2:StyleManager; var _local3:Class; var _local4:Object; var _local5:String; _local2 = getInstance(); _local3 = getClassDef(_arg1); _local4 = _local2.classToDefaultStylesDict[_local3]; for (_local5 in _local4) { _arg1.setSharedStyle(_local5, getSharedStyle(_arg1, _local5)); }; } public static function getComponentStyle(_arg1:Object, _arg2:String):Object{ var _local3:Class; var _local4:Object; _local3 = getClassDef(_arg1); _local4 = getInstance().classToStylesDict[_local3]; return (((_local4)==null) ? null : _local4[_arg2]); } private static function getInstance(){ if (_instance == null){ _instance = new (StyleManager); }; return (_instance); } private static function invalidateComponentStyle(_arg1:Class, _arg2:String):void{ var _local3:Dictionary; var _local4:Object; var _local5:UIComponent; _local3 = getInstance().classToInstancesDict[_arg1]; if (_local3 == null){ return; }; for (_local4 in _local3) { _local5 = (_local4 as UIComponent); if (_local5 == null){ } else { _local5.setSharedStyle(_arg2, getSharedStyle(_local5, _arg2)); }; }; } private static function invalidateStyle(_arg1:String):void{ var _local2:Dictionary; var _local3:Object; _local2 = getInstance().styleToClassesHash[_arg1]; if (_local2 == null){ return; }; for (_local3 in _local2) { invalidateComponentStyle(Class(_local3), _arg1); }; } public static function registerInstance(_arg1:UIComponent):void{ var inst:StyleManager; var classDef:Class; var target:Class; var defaultStyles:Object; var styleToClasses:Object; var n:String; var instance = _arg1; inst = getInstance(); classDef = getClassDef(instance); if (classDef == null){ return; }; if (inst.classToInstancesDict[classDef] == null){ inst.classToInstancesDict[classDef] = new Dictionary(true); target = classDef; while (defaultStyles == null) { if (target["getStyleDefinition"] != null){ defaultStyles = target["getStyleDefinition"](); break; }; try { target = (instance.loaderInfo.applicationDomain.getDefinition(getQualifiedSuperclassName(target)) as Class); } catch(err:Error) { try { target = (getDefinitionByName(getQualifiedSuperclassName(target)) as Class); } catch(e:Error) { defaultStyles = UIComponent.getStyleDefinition(); break; }; }; }; styleToClasses = inst.styleToClassesHash; for (n in defaultStyles) { if (styleToClasses[n] == null){ styleToClasses[n] = new Dictionary(true); }; styleToClasses[n][classDef] = true; }; inst.classToDefaultStylesDict[classDef] = defaultStyles; inst.classToStylesDict[classDef] = {}; }; inst.classToInstancesDict[classDef][instance] = true; setSharedStyles(instance); } public static function getStyle(_arg1:String):Object{ return (getInstance().globalStyles[_arg1]); } private static function getSharedStyle(_arg1:UIComponent, _arg2:String):Object{ var _local3:Class; var _local4:StyleManager; var _local5:Object; _local3 = getClassDef(_arg1); _local4 = getInstance(); _local5 = _local4.classToStylesDict[_local3][_arg2]; if (_local5 != null){ return (_local5); }; _local5 = _local4.globalStyles[_arg2]; if (_local5 != null){ return (_local5); }; return (_local4.classToDefaultStylesDict[_local3][_arg2]); } public static function setStyle(_arg1:String, _arg2:Object):void{ var _local3:Object; _local3 = getInstance().globalStyles; if ((((_local3[_arg1] === _arg2)) && (!((_arg2 is TextFormat))))){ return; }; _local3[_arg1] = _arg2; invalidateStyle(_arg1); } } }//package fl.managers
Section 88
//None (fl.transitions.easing.None) package fl.transitions.easing { public class None { public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((_arg3 * _arg1) / _arg4) + _arg2)); } public static function easeIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((_arg3 * _arg1) / _arg4) + _arg2)); } public static function easeInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((_arg3 * _arg1) / _arg4) + _arg2)); } public static function easeNone(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((_arg3 * _arg1) / _arg4) + _arg2)); } } }//package fl.transitions.easing
Section 89
//Regular (fl.transitions.easing.Regular) package fl.transitions.easing { public class Regular { public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / _arg4); return ((((-(_arg3) * _arg1) * (_arg1 - 2)) + _arg2)); } public static function easeIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / _arg4); return ((((_arg3 * _arg1) * _arg1) + _arg2)); } public static function easeInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return (((((_arg3 / 2) * _arg1) * _arg1) + _arg2)); }; --_arg1; return ((((-(_arg3) / 2) * ((_arg1 * (_arg1 - 2)) - 1)) + _arg2)); } } }//package fl.transitions.easing
Section 90
//Fade (fl.transitions.Fade) package fl.transitions { import flash.display.*; public class Fade extends Transition { protected var _alphaFinal:Number; public function Fade(_arg1:MovieClip, _arg2:Object, _arg3:TransitionManager){ super(_arg1, _arg2, _arg3); this._alphaFinal = this.manager.contentAppearance.alpha; } override public function get type():Class{ return (Fade); } override protected function _render(_arg1:Number):void{ this._content.alpha = (this._alphaFinal * _arg1); } } }//package fl.transitions
Section 91
//Transition (fl.transitions.Transition) package fl.transitions { import flash.display.*; import flash.events.*; import flash.geom.*; public class Transition extends EventDispatcher { protected var _direction:uint;// = 0 protected var _height:Number;// = NAN protected var _easing:Function; protected var _twn:Tween; protected var _width:Number;// = NAN protected var _outerBounds:Rectangle; protected var _progress:Number; public var ID:int; protected var _innerBounds:Rectangle; protected var _manager:TransitionManager; protected var _duration:Number;// = 2 protected var _content:MovieClip; public static const IN:uint = 0; public static const OUT:uint = 1; public function Transition(_arg1:MovieClip, _arg2:Object, _arg3:TransitionManager){ this.content = _arg1; this.direction = _arg2.direction; this.duration = _arg2.duration; this.easing = _arg2.easing; this.manager = _arg3; this._innerBounds = this.manager._innerBounds; this._outerBounds = this.manager._outerBounds; this._width = this.manager._width; this._height = this.manager._height; this._resetTween(); } public function get type():Class{ return (Transition); } public function cleanUp():void{ this.removeEventListener("transitionInDone", this._manager.transitionInDone); this.removeEventListener("transitionOutDone", this._manager.transitionOutDone); this.stop(); } public function stop():void{ this._twn.fforward(); this._twn.stop(); } public function onMotionFinished(_arg1:Object):void{ if (this.direction == Transition.OUT){ this.dispatchEvent(new Event("transitionOutDone")); } else { this.dispatchEvent(new Event("transitionInDone")); }; } public function set easing(_arg1:Function):void{ this._easing = _arg1; if (this._twn){ this._twn.func = _arg1; }; } public function set manager(_arg1:TransitionManager):void{ if (this._manager){ this.removeEventListener("transitionInDone", this._manager.transitionInDone); this.removeEventListener("transitionOutDone", this._manager.transitionOutDone); }; this._manager = _arg1; this.addEventListener("transitionInDone", this._manager.transitionInDone); this.addEventListener("transitionOutDone", this._manager.transitionOutDone); } private function _resetTween():void{ if (this._twn){ this._twn.stop(); this._twn.removeEventListener(TweenEvent.MOTION_FINISH, this.onMotionFinished); }; this._twn = new Tween(this, "", this.easing, 0, 1, this.duration, true); this._twn.stop(); this._twn.prop = "progress"; this._twn.addEventListener(TweenEvent.MOTION_FINISH, this.onMotionFinished, false, 0, true); } public function drawBox(_arg1:MovieClip, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number):void{ _arg1.graphics.moveTo(_arg2, _arg3); _arg1.graphics.lineTo((_arg2 + _arg4), _arg3); _arg1.graphics.lineTo((_arg2 + _arg4), (_arg3 + _arg5)); _arg1.graphics.lineTo(_arg2, (_arg3 + _arg5)); _arg1.graphics.lineTo(_arg2, _arg3); } public function set progress(_arg1:Number):void{ if (this._progress == _arg1){ return; }; this._progress = _arg1; if (this._direction){ this._render((1 - _arg1)); } else { this._render(_arg1); }; this.dispatchEvent(new Event("transitionProgress")); } public function get duration():Number{ return (this._duration); } public function set duration(_arg1:Number):void{ if (_arg1){ this._duration = _arg1; if (this._twn){ this._twn.duration = _arg1; }; }; } public function start():void{ this.content.visible = true; this._twn.start(); } public function get easing():Function{ return (this._easing); } public function get manager():TransitionManager{ return (this._manager); } public function set content(_arg1:MovieClip):void{ if (_arg1){ this._content = _arg1; if (this._twn){ this._twn.obj = _arg1; }; }; } protected function _render(_arg1:Number):void{ } public function get content():MovieClip{ return (this._content); } public function drawCircle(_arg1:MovieClip, _arg2:Number, _arg3:Number, _arg4:Number):void{ _arg1.graphics.moveTo((_arg2 + _arg4), _arg3); _arg1.graphics.curveTo((_arg4 + _arg2), ((Math.tan((Math.PI / 8)) * _arg4) + _arg3), ((Math.sin((Math.PI / 4)) * _arg4) + _arg2), ((Math.sin((Math.PI / 4)) * _arg4) + _arg3)); _arg1.graphics.curveTo(((Math.tan((Math.PI / 8)) * _arg4) + _arg2), (_arg4 + _arg3), _arg2, (_arg4 + _arg3)); _arg1.graphics.curveTo(((-(Math.tan((Math.PI / 8))) * _arg4) + _arg2), (_arg4 + _arg3), ((-(Math.sin((Math.PI / 4))) * _arg4) + _arg2), ((Math.sin((Math.PI / 4)) * _arg4) + _arg3)); _arg1.graphics.curveTo((-(_arg4) + _arg2), ((Math.tan((Math.PI / 8)) * _arg4) + _arg3), (-(_arg4) + _arg2), _arg3); _arg1.graphics.curveTo((-(_arg4) + _arg2), ((-(Math.tan((Math.PI / 8))) * _arg4) + _arg3), ((-(Math.sin((Math.PI / 4))) * _arg4) + _arg2), ((-(Math.sin((Math.PI / 4))) * _arg4) + _arg3)); _arg1.graphics.curveTo(((-(Math.tan((Math.PI / 8))) * _arg4) + _arg2), (-(_arg4) + _arg3), _arg2, (-(_arg4) + _arg3)); _arg1.graphics.curveTo(((Math.tan((Math.PI / 8)) * _arg4) + _arg2), (-(_arg4) + _arg3), ((Math.sin((Math.PI / 4)) * _arg4) + _arg2), ((-(Math.sin((Math.PI / 4))) * _arg4) + _arg3)); _arg1.graphics.curveTo((_arg4 + _arg2), ((-(Math.tan((Math.PI / 8))) * _arg4) + _arg3), (_arg4 + _arg2), _arg3); } public function get progress():Number{ return (this._progress); } private function _noEase(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((_arg3 * _arg1) / _arg4) + _arg2)); } public function set direction(_arg1:Number):void{ this._direction = (_arg1) ? 1 : 0; } public function get direction():Number{ return (this._direction); } } }//package fl.transitions
Section 92
//TransitionManager (fl.transitions.TransitionManager) package fl.transitions { import flash.display.*; import flash.events.*; import flash.geom.*; public class TransitionManager extends EventDispatcher { public var type:Object; public var _width:Number;// = NAN public var _height:Number;// = NAN public var _outerBounds:Rectangle; private var _visualPropList:Object; private var _triggerEvent:String; public var className:String;// = "TransitionManager" public var _innerBounds:Rectangle; private var _content:MovieClip; private var _contentAppearance:Object; private var _transitions:Object; private static var IDCount:int = 0; public function TransitionManager(_arg1:MovieClip){ this.type = TransitionManager; this._visualPropList = {x:null, y:null, scaleX:null, scaleY:null, alpha:null, rotation:null}; super(); this.content = _arg1; this._transitions = {}; } public function removeTransition(_arg1:Transition):Boolean{ if (((((!(_arg1)) || (!(this._transitions)))) || (!(this._transitions[_arg1.ID])))){ return (false); }; _arg1.cleanUp(); return (delete this._transitions[_arg1.ID]); } public function saveContentAppearance():void{ var _local2:Object; var _local3:String; var _local1:MovieClip = this._content; if (!this._contentAppearance){ _local2 = (this._contentAppearance = {}); for (_local3 in this._visualPropList) { _local2[_local3] = _local1[_local3]; }; _local2.colorTransform = _local1.transform.colorTransform; }; this._innerBounds = _local1.getBounds(_local1); this._outerBounds = _local1.getBounds(_local1.parent); this._width = _local1.width; this._height = _local1.height; } public function removeAllTransitions():void{ var _local1:Transition; for each (_local1 in this._transitions) { _local1.cleanUp(); this.removeTransition(_local1); }; } function transitionInDone(_arg1:Object):void{ var _local2:Boolean; this.removeTransition(_arg1.target); if (this.numInTransitions == 0){ _local2 = this._content.visible; if ((((this._triggerEvent == "hide")) || ((this._triggerEvent == "hideChild")))){ this._content.visible = false; }; if (_local2){ this.dispatchEvent(new Event("allTransitionsInDone")); }; }; } public function addTransition(_arg1:Transition):Transition{ _arg1.ID = ++TransitionManager.IDCount; this._transitions[_arg1.ID] = _arg1; return (_arg1); } public function startTransition(_arg1:Object):Transition{ this.removeTransition(this.findTransition(_arg1)); var _local2:Class = _arg1.type; var _local3:Transition = new _local2(this._content, _arg1, this); this.addTransition(_local3); _local3.start(); return (_local3); } function transitionOutDone(_arg1:Object):void{ var _local2:Boolean; this.removeTransition(_arg1.target); if (this.numOutTransitions == 0){ this.restoreContentAppearance(); _local2 = this._content.visible; if (((_local2) && ((((this._triggerEvent == "hide")) || ((this._triggerEvent == "hideChild")))))){ this._content.visible = false; }; if (_local2){ this.dispatchEvent(new Event("allTransitionsOutDone")); }; }; } public function restoreContentAppearance():void{ var _local3:String; var _local1:MovieClip = this._content; var _local2:Object = this._contentAppearance; for (_local3 in this._visualPropList) { _local1[_local3] = _local2[_local3]; }; _local1.transform.colorTransform = _local2.colorTransform; } public function get numTransitions():Number{ var _local2:Transition; var _local1:Number = 0; for each (_local2 in this._transitions) { _local1++; }; return (_local1); } public function findTransition(_arg1:Object):Transition{ var _local2:Transition; for each (_local2 in this._transitions) { if (_local2.type == _arg1.type){ return (_local2); }; }; return (null); } public function set content(_arg1:MovieClip):void{ this._content = _arg1; this.saveContentAppearance(); } public function get numInTransitions():Number{ var _local3:Transition; var _local1:Number = 0; var _local2:Object = this._transitions; for each (_local3 in _local2) { if (!_local3.direction){ _local1++; }; }; return (_local1); } public function get numOutTransitions():Number{ var _local3:Transition; var _local1:Number = 0; var _local2:Object = this._transitions; for each (_local3 in _local2) { if (_local3.direction){ _local1++; }; }; return (_local1); } public function get content():MovieClip{ return (this._content); } public function get transitionsList():Object{ return (this._transitions); } public function get contentAppearance():Object{ return (this._contentAppearance); } public static function start(_arg1:MovieClip, _arg2:Object):Transition{ if (!_arg1.__transitionManager){ _arg1.__transitionManager = new TransitionManager(_arg1); }; if (_arg2.direction == 1){ _arg1.__transitionManager._triggerEvent = "hide"; } else { _arg1.__transitionManager._triggerEvent = "reveal"; }; return (_arg1.__transitionManager.startTransition(_arg2)); } } }//package fl.transitions
Section 93
//Tween (fl.transitions.Tween) package fl.transitions { import flash.display.*; import flash.events.*; import flash.utils.*; public class Tween extends EventDispatcher { private var _position:Number;// = NAN public var prevTime:Number;// = NAN public var prevPos:Number;// = NAN public var isPlaying:Boolean;// = false private var _fps:Number;// = NAN private var _time:Number;// = NAN public var begin:Number;// = NAN private var _finish:Number;// = NAN public var change:Number;// = NAN public var looping:Boolean;// = false private var _intervalID:uint;// = 0 public var func:Function; private var _timer:Timer;// = null private var _startTime:Number;// = NAN public var prop:String;// = "" private var _duration:Number;// = NAN public var obj:Object;// = null public var useSeconds:Boolean;// = false protected static var _mc:MovieClip = new MovieClip(); public function Tween(_arg1:Object, _arg2:String, _arg3:Function, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Boolean=false){ this.func = function (_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((_arg3 * _arg1) / _arg4) + _arg2)); }; super(); if (!arguments.length){ return; }; this.obj = _arg1; this.prop = _arg2; this.begin = _arg4; this.position = _arg4; this.duration = _arg6; this.useSeconds = _arg7; if ((_arg3 is Function)){ this.func = _arg3; }; this.finish = _arg5; this._timer = new Timer(100); this.start(); } public function continueTo(_arg1:Number, _arg2:Number):void{ this.begin = this.position; this.finish = _arg1; if (!isNaN(_arg2)){ this.duration = _arg2; }; this.start(); } protected function startEnterFrame():void{ var _local1:Number; if (isNaN(this._fps)){ _mc.addEventListener(Event.ENTER_FRAME, this.onEnterFrame, false, 0, true); } else { _local1 = (1000 / this._fps); this._timer.delay = _local1; this._timer.addEventListener(TimerEvent.TIMER, this.timerHandler, false, 0, true); this._timer.start(); }; this.isPlaying = true; } public function stop():void{ this.stopEnterFrame(); this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_STOP, this._time, this._position)); } private function fixTime():void{ if (this.useSeconds){ this._startTime = (getTimer() - (this._time * 1000)); }; } public function set FPS(_arg1:Number):void{ var _local2:Boolean = this.isPlaying; this.stopEnterFrame(); this._fps = _arg1; if (_local2){ this.startEnterFrame(); }; } public function get finish():Number{ return ((this.begin + this.change)); } public function get duration():Number{ return (this._duration); } protected function stopEnterFrame():void{ if (isNaN(this._fps)){ _mc.removeEventListener(Event.ENTER_FRAME, this.onEnterFrame); } else { this._timer.stop(); }; this.isPlaying = false; } public function set time(_arg1:Number):void{ this.prevTime = this._time; if (_arg1 > this.duration){ if (this.looping){ this.rewind((_arg1 - this._duration)); this.update(); this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_LOOP, this._time, this._position)); } else { if (this.useSeconds){ this._time = this._duration; this.update(); }; this.stop(); this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_FINISH, this._time, this._position)); }; } else { if (_arg1 < 0){ this.rewind(); this.update(); } else { this._time = _arg1; this.update(); }; }; } public function getPosition(_arg1:Number=NaN):Number{ if (isNaN(_arg1)){ _arg1 = this._time; }; return (this.func(_arg1, this.begin, this.change, this._duration)); } public function set finish(_arg1:Number):void{ this.change = (_arg1 - this.begin); } public function set duration(_arg1:Number):void{ this._duration = ((_arg1)<=0) ? Infinity : _arg1; } public function get position():Number{ return (this.getPosition(this._time)); } public function setPosition(_arg1:Number):void{ this.prevPos = this._position; if (this.prop.length){ this.obj[this.prop] = (this._position = _arg1); }; this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_CHANGE, this._time, this._position)); } public function resume():void{ this.fixTime(); this.startEnterFrame(); this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_RESUME, this._time, this._position)); } public function fforward():void{ this.time = this._duration; this.fixTime(); } protected function onEnterFrame(_arg1:Event):void{ this.nextFrame(); } public function yoyo():void{ this.continueTo(this.begin, this.time); } public function nextFrame():void{ if (this.useSeconds){ this.time = ((getTimer() - this._startTime) / 1000); } else { this.time = (this._time + 1); }; } protected function timerHandler(_arg1:TimerEvent):void{ this.nextFrame(); _arg1.updateAfterEvent(); } public function get FPS():Number{ return (this._fps); } public function rewind(_arg1:Number=0):void{ this._time = _arg1; this.fixTime(); this.update(); } public function set position(_arg1:Number):void{ this.setPosition(_arg1); } public function get time():Number{ return (this._time); } private function update():void{ this.setPosition(this.getPosition(this._time)); } public function start():void{ this.rewind(); this.startEnterFrame(); this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_START, this._time, this._position)); } public function prevFrame():void{ if (!this.useSeconds){ this.time = (this._time - 1); }; } } }//package fl.transitions
Section 94
//TweenEvent (fl.transitions.TweenEvent) package fl.transitions { import flash.events.*; public class TweenEvent extends Event { public var position:Number;// = NAN public var time:Number;// = NAN public static const MOTION_START:String = "motionStart"; public static const MOTION_STOP:String = "motionStop"; public static const MOTION_LOOP:String = "motionLoop"; public static const MOTION_CHANGE:String = "motionChange"; public static const MOTION_FINISH:String = "motionFinish"; public static const MOTION_RESUME:String = "motionResume"; public function TweenEvent(_arg1:String, _arg2:Number, _arg3:Number, _arg4:Boolean=false, _arg5:Boolean=false){ super(_arg1, _arg4, _arg5); this.time = _arg2; this.position = _arg3; } override public function clone():Event{ return (new TweenEvent(this.type, this.time, this.position, this.bubbles, this.cancelable)); } } }//package fl.transitions
Section 95
//controlbar_37 (player_fla.controlbar_37) package player_fla { import flash.display.*; import flash.text.*; import flash.accessibility.*; public dynamic class controlbar_37 extends MovieClip { public var unmuteButton:MovieClip; public var nextButton:MovieClip; public var playButton:MovieClip; public var timeSlider:MovieClip; public var totalText:TextField; public var volumeSlider:MovieClip; public var normalscreenButton:MovieClip; public var muteButton:MovieClip; public var prevButton:MovieClip; public var pauseButton:MovieClip; public var elapsedText:TextField; public var linkButton:MovieClip; public var fullscreenButton:MovieClip; public var stopButton:MovieClip; public var back:MovieClip; public function controlbar_37(){ __setAcc_back_controlbar_back_0(); __setAcc_volumeSlider_controlbar_buttons_0(); __setAcc_unmuteButton_controlbar_buttons_0(); __setAcc_muteButton_controlbar_buttons_0(); __setAcc_linkButton_controlbar_buttons_0(); __setAcc_fullscreenButton_controlbar_buttons_0(); __setAcc_timeSlider_controlbar_buttons_0(); __setAcc_nextButton_controlbar_buttons_0(); __setAcc_pauseButton_controlbar_buttons_0(); __setAcc_playButton_controlbar_buttons_0(); __setAcc_normalscreenButton_controlbar_buttons_0(); __setAcc_stopButton_controlbar_buttons_0(); __setAcc_prevButton_controlbar_buttons_0(); __setTab_unmuteButton_controlbar_buttons_0(); __setTab_muteButton_controlbar_buttons_0(); __setTab_linkButton_controlbar_buttons_0(); __setTab_fullscreenButton_controlbar_buttons_0(); __setTab_nextButton_controlbar_buttons_0(); __setTab_pauseButton_controlbar_buttons_0(); __setTab_playButton_controlbar_buttons_0(); __setTab_normalscreenButton_controlbar_buttons_0(); __setTab_stopButton_controlbar_buttons_0(); __setTab_prevButton_controlbar_buttons_0(); } function __setAcc_playButton_controlbar_buttons_0(){ playButton.accessibilityProperties = new AccessibilityProperties(); playButton.accessibilityProperties.name = "playButton"; playButton.accessibilityProperties.shortcut = "p"; playButton.accessibilityProperties.forceSimple = true; } function __setAcc_volumeSlider_controlbar_buttons_0(){ volumeSlider.accessibilityProperties = new AccessibilityProperties(); volumeSlider.accessibilityProperties.silent = true; } function __setTab_stopButton_controlbar_buttons_0(){ stopButton.tabIndex = 3; } function __setTab_playButton_controlbar_buttons_0(){ playButton.tabIndex = 1; } function __setTab_linkButton_controlbar_buttons_0(){ linkButton.tabIndex = 6; } function __setTab_muteButton_controlbar_buttons_0(){ muteButton.tabIndex = 9; } function __setAcc_prevButton_controlbar_buttons_0(){ prevButton.accessibilityProperties = new AccessibilityProperties(); prevButton.accessibilityProperties.name = "prevButton"; prevButton.accessibilityProperties.shortcut = "left-arrow"; prevButton.accessibilityProperties.forceSimple = true; } function __setAcc_fullscreenButton_controlbar_buttons_0(){ fullscreenButton.accessibilityProperties = new AccessibilityProperties(); fullscreenButton.accessibilityProperties.name = "FullscreenButton"; fullscreenButton.accessibilityProperties.shortcut = "f"; fullscreenButton.accessibilityProperties.forceSimple = true; } function __setTab_pauseButton_controlbar_buttons_0(){ pauseButton.tabIndex = 2; } function __setTab_fullscreenButton_controlbar_buttons_0(){ fullscreenButton.tabIndex = 7; } function __setTab_prevButton_controlbar_buttons_0(){ prevButton.tabIndex = 4; } function __setAcc_pauseButton_controlbar_buttons_0(){ pauseButton.accessibilityProperties = new AccessibilityProperties(); pauseButton.accessibilityProperties.name = "pauseButton"; pauseButton.accessibilityProperties.shortcut = "p"; pauseButton.accessibilityProperties.forceSimple = true; } function __setAcc_normalscreenButton_controlbar_buttons_0(){ normalscreenButton.accessibilityProperties = new AccessibilityProperties(); normalscreenButton.accessibilityProperties.name = "normalscreenButton"; normalscreenButton.accessibilityProperties.shortcut = "f"; normalscreenButton.accessibilityProperties.forceSimple = true; } function __setAcc_unmuteButton_controlbar_buttons_0(){ unmuteButton.accessibilityProperties = new AccessibilityProperties(); unmuteButton.accessibilityProperties.name = "unmuteButton"; unmuteButton.accessibilityProperties.shortcut = "m"; unmuteButton.accessibilityProperties.forceSimple = true; } function __setTab_normalscreenButton_controlbar_buttons_0(){ normalscreenButton.tabIndex = 8; } function __setTab_unmuteButton_controlbar_buttons_0(){ unmuteButton.tabIndex = 10; } function __setAcc_nextButton_controlbar_buttons_0(){ nextButton.accessibilityProperties = new AccessibilityProperties(); nextButton.accessibilityProperties.name = "nextButton"; nextButton.accessibilityProperties.shortcut = "right-arrow"; nextButton.accessibilityProperties.forceSimple = true; } function __setAcc_back_controlbar_back_0(){ back.accessibilityProperties = new AccessibilityProperties(); back.accessibilityProperties.silent = true; } function __setAcc_stopButton_controlbar_buttons_0(){ stopButton.accessibilityProperties = new AccessibilityProperties(); stopButton.accessibilityProperties.name = "stopButton"; stopButton.accessibilityProperties.shortcut = "s"; stopButton.accessibilityProperties.forceSimple = true; } function __setTab_nextButton_controlbar_buttons_0(){ nextButton.tabIndex = 5; } function __setAcc_timeSlider_controlbar_buttons_0(){ timeSlider.accessibilityProperties = new AccessibilityProperties(); timeSlider.accessibilityProperties.silent = true; } function __setAcc_linkButton_controlbar_buttons_0(){ linkButton.accessibilityProperties = new AccessibilityProperties(); linkButton.accessibilityProperties.name = "linkButton"; linkButton.accessibilityProperties.shortcut = "l"; linkButton.accessibilityProperties.forceSimple = true; } function __setAcc_muteButton_controlbar_buttons_0(){ muteButton.accessibilityProperties = new AccessibilityProperties(); muteButton.accessibilityProperties.name = "muteButton"; muteButton.accessibilityProperties.shortcut = "m"; muteButton.accessibilityProperties.forceSimple = true; } } }//package player_fla
Section 96
//display_2 (player_fla.display_2) package player_fla { import flash.display.*; import flash.accessibility.*; public dynamic class display_2 extends MovieClip { public var nextIcon:MovieClip; public var playIcon:MovieClip; public var linkIcon:MovieClip; public var fullscreenIcon:MovieClip; public var bufferIcon:MovieClip; public var masker:MovieClip; public var errorIcon:MovieClip; public var media:MovieClip; public var back:MovieClip; public var __id0_:MovieClip; public var logo:MovieClip; public var muteIcon:MovieClip; public function display_2(){ __setAcc_back_display_back_0(); __setAcc_masker_display_masker_0(); __setAcc___id0__display_back_0(); } function __setAcc___id0__display_back_0(){ back.accessibilityProperties = new AccessibilityProperties(); back.accessibilityProperties.silent = true; } function __setAcc_back_display_back_0(){ back.accessibilityProperties = new AccessibilityProperties(); back.accessibilityProperties.silent = true; } function __setAcc_masker_display_masker_0(){ masker.accessibilityProperties = new AccessibilityProperties(); masker.accessibilityProperties.silent = true; } } }//package player_fla
Section 97
//player_1 (player_fla.player_1) package player_fla { import flash.display.*; import flash.accessibility.*; public dynamic class player_1 extends MovieClip { public var display:MovieClip; public var relatedvideos:MovieClip; public var playlist:MovieClip; public var controlbar:MovieClip; public function player_1(){ __setAcc_display_player_display_0(); __setAcc_playlist_player_playlist_0(); } function __setAcc_display_player_display_0(){ display.accessibilityProperties = new AccessibilityProperties(); display.accessibilityProperties.silent = true; } function __setAcc_playlist_player_playlist_0(){ playlist.accessibilityProperties = new AccessibilityProperties(); playlist.accessibilityProperties.silent = true; } } }//package player_fla
Section 98
//timeSlider_47 (player_fla.timeSlider_47) package player_fla { import flash.display.*; import flash.accessibility.*; public dynamic class timeSlider_47 extends MovieClip { public var icon:MovieClip; public var done:MovieClip; public var mark:MovieClip; public var rail:MovieClip; public function timeSlider_47(){ __setAcc_mark_timeSlider_mark_0(); __setAcc_done_timeSlider_done_0(); __setAcc_icon_timeSlider_icon_0(); } function __setAcc_done_timeSlider_done_0(){ done.accessibilityProperties = new AccessibilityProperties(); done.accessibilityProperties.silent = true; } function __setAcc_icon_timeSlider_icon_0(){ icon.accessibilityProperties = new AccessibilityProperties(); icon.accessibilityProperties.silent = true; } function __setAcc_mark_timeSlider_mark_0(){ mark.accessibilityProperties = new AccessibilityProperties(); mark.accessibilityProperties.silent = true; } } }//package player_fla
Section 99
//CellRenderer_disabledSkin (CellRenderer_disabledSkin) package { import flash.display.*; public dynamic class CellRenderer_disabledSkin extends MovieClip { } }//package
Section 100
//CellRenderer_downSkin (CellRenderer_downSkin) package { import flash.display.*; public dynamic class CellRenderer_downSkin extends MovieClip { } }//package
Section 101
//CellRenderer_overSkin (CellRenderer_overSkin) package { import flash.display.*; public dynamic class CellRenderer_overSkin extends MovieClip { } }//package
Section 102
//CellRenderer_selectedDisabledSkin (CellRenderer_selectedDisabledSkin) package { import flash.display.*; public dynamic class CellRenderer_selectedDisabledSkin extends MovieClip { } }//package
Section 103
//CellRenderer_selectedDownSkin (CellRenderer_selectedDownSkin) package { import flash.display.*; public dynamic class CellRenderer_selectedDownSkin extends MovieClip { } }//package
Section 104
//CellRenderer_selectedOverSkin (CellRenderer_selectedOverSkin) package { import flash.display.*; public dynamic class CellRenderer_selectedOverSkin extends MovieClip { } }//package
Section 105
//CellRenderer_selectedUpSkin (CellRenderer_selectedUpSkin) package { import flash.display.*; public dynamic class CellRenderer_selectedUpSkin extends MovieClip { } }//package
Section 106
//CellRenderer_upSkin (CellRenderer_upSkin) package { import flash.display.*; public dynamic class CellRenderer_upSkin extends MovieClip { } }//package
Section 107
//focusRectSkin (focusRectSkin) package { import flash.display.*; public dynamic class focusRectSkin extends MovieClip { } }//package
Section 108
//ScrollArrowDown_disabledSkin (ScrollArrowDown_disabledSkin) package { import flash.display.*; public dynamic class ScrollArrowDown_disabledSkin extends MovieClip { } }//package
Section 109
//ScrollArrowDown_downSkin (ScrollArrowDown_downSkin) package { import flash.display.*; public dynamic class ScrollArrowDown_downSkin extends MovieClip { } }//package
Section 110
//ScrollArrowDown_overSkin (ScrollArrowDown_overSkin) package { import flash.display.*; public dynamic class ScrollArrowDown_overSkin extends MovieClip { } }//package
Section 111
//ScrollArrowDown_upSkin (ScrollArrowDown_upSkin) package { import flash.display.*; public dynamic class ScrollArrowDown_upSkin extends MovieClip { } }//package
Section 112
//ScrollArrowUp_disabledSkin (ScrollArrowUp_disabledSkin) package { import flash.display.*; public dynamic class ScrollArrowUp_disabledSkin extends MovieClip { } }//package
Section 113
//ScrollArrowUp_downSkin (ScrollArrowUp_downSkin) package { import flash.display.*; public dynamic class ScrollArrowUp_downSkin extends MovieClip { } }//package
Section 114
//ScrollArrowUp_overSkin (ScrollArrowUp_overSkin) package { import flash.display.*; public dynamic class ScrollArrowUp_overSkin extends MovieClip { } }//package
Section 115
//ScrollArrowUp_upSkin (ScrollArrowUp_upSkin) package { import flash.display.*; public dynamic class ScrollArrowUp_upSkin extends MovieClip { } }//package
Section 116
//ScrollBar_thumbIcon (ScrollBar_thumbIcon) package { import flash.display.*; public dynamic class ScrollBar_thumbIcon extends MovieClip { } }//package
Section 117
//ScrollThumb_downSkin (ScrollThumb_downSkin) package { import flash.display.*; public dynamic class ScrollThumb_downSkin extends MovieClip { } }//package
Section 118
//ScrollThumb_overSkin (ScrollThumb_overSkin) package { import flash.display.*; public dynamic class ScrollThumb_overSkin extends MovieClip { } }//package
Section 119
//ScrollThumb_upSkin (ScrollThumb_upSkin) package { import flash.display.*; public dynamic class ScrollThumb_upSkin extends MovieClip { } }//package
Section 120
//ScrollTrack_skin (ScrollTrack_skin) package { import flash.display.*; public dynamic class ScrollTrack_skin extends MovieClip { } }//package
Section 121
//TileList_skin (TileList_skin) package { import flash.display.*; public dynamic class TileList_skin extends MovieClip { } }//package
Section 122
//Watermark (Watermark) package { import com.jeroenwijering.plugins.*; public dynamic class Watermark extends Watermark { } }//package

Library Items

Symbol 1 GraphicUsed by:2
Symbol 2 MovieClipUses:1Used by:54 57
Symbol 3 MovieClip {fl.core.ComponentShim}Used by:34 51 54 57
Symbol 4 GraphicUsed by:5
Symbol 5 MovieClip {ScrollTrack_skin}Uses:4Used by:34
Symbol 6 GraphicUsed by:7
Symbol 7 MovieClip {focusRectSkin}Uses:6Used by:34 54
Symbol 8 GraphicUsed by:11
Symbol 9 GraphicUsed by:10 13 17 27
Symbol 10 MovieClipUses:9Used by:11 21 23
Symbol 11 MovieClip {ScrollArrowUp_downSkin}Uses:8 10Used by:34
Symbol 12 GraphicUsed by:13
Symbol 13 MovieClip {ScrollArrowDown_downSkin}Uses:12 9Used by:34
Symbol 14 GraphicUsed by:15
Symbol 15 MovieClip {ScrollThumb_downSkin}Uses:14Used by:34
Symbol 16 GraphicUsed by:17
Symbol 17 MovieClip {ScrollArrowDown_overSkin}Uses:16 9Used by:34
Symbol 18 GraphicUsed by:19
Symbol 19 MovieClip {ScrollThumb_overSkin}Uses:18Used by:34
Symbol 20 GraphicUsed by:21
Symbol 21 MovieClip {ScrollArrowUp_overSkin}Uses:20 10Used by:34
Symbol 22 GraphicUsed by:23
Symbol 23 MovieClip {ScrollArrowUp_upSkin}Uses:22 10Used by:34
Symbol 24 GraphicUsed by:25
Symbol 25 MovieClip {ScrollThumb_upSkin}Uses:24Used by:34
Symbol 26 GraphicUsed by:27
Symbol 27 MovieClip {ScrollArrowDown_upSkin}Uses:26 9Used by:34
Symbol 28 GraphicUsed by:29
Symbol 29 MovieClip {ScrollArrowDown_disabledSkin}Uses:28Used by:34
Symbol 30 GraphicUsed by:31
Symbol 31 MovieClip {ScrollArrowUp_disabledSkin}Uses:30Used by:34
Symbol 32 GraphicUsed by:33
Symbol 33 MovieClip {ScrollBar_thumbIcon}Uses:32Used by:34
Symbol 34 MovieClip {fl.controls.ScrollBar}Uses:5 3 7 11 13 15 17 19 21 23 25 27 29 31 33Used by:54
Symbol 35 GraphicUsed by:36
Symbol 36 MovieClip {CellRenderer_upSkin}Uses:35Used by:51
Symbol 37 GraphicUsed by:38
Symbol 38 MovieClip {CellRenderer_disabledSkin}Uses:37Used by:51
Symbol 39 GraphicUsed by:40
Symbol 40 MovieClip {CellRenderer_downSkin}Uses:39Used by:51
Symbol 41 GraphicUsed by:42
Symbol 42 MovieClip {CellRenderer_overSkin}Uses:41Used by:51
Symbol 43 GraphicUsed by:44
Symbol 44 MovieClip {CellRenderer_selectedDisabledSkin}Uses:43Used by:51
Symbol 45 GraphicUsed by:46
Symbol 46 MovieClip {CellRenderer_selectedDownSkin}Uses:45Used by:51
Symbol 47 GraphicUsed by:48
Symbol 48 MovieClip {CellRenderer_selectedOverSkin}Uses:47Used by:51
Symbol 49 GraphicUsed by:50
Symbol 50 MovieClip {CellRenderer_selectedUpSkin}Uses:49Used by:51
Symbol 51 MovieClip {fl.controls.listClasses.CellRenderer}Uses:36 3 38 40 42 44 46 48 50Used by:54
Symbol 52 GraphicUsed by:53
Symbol 53 MovieClip {TileList_skin}Uses:52Used by:54
Symbol 54 MovieClip {fl.controls.TileList}Uses:2 3 34 51 7 53
Symbol 55 GraphicUsed by:56
Symbol 56 MovieClip {Watermark}Uses:55
Symbol 57 MovieClip {fl.containers.UILoader}Uses:2 3Used by:114
Symbol 58 GraphicUsed by:59 90 121 132
Symbol 59 MovieClipUses:58Used by:89
Symbol 60 GraphicUsed by:61 62
Symbol 61 MovieClipUses:60Used by:89
Symbol 62 MovieClipUses:60Used by:89
Symbol 63 GraphicUsed by:66
Symbol 64 FontUsed by:65 100 103 110
Symbol 65 EditableTextUses:64Used by:66
Symbol 66 MovieClipUses:63 65Used by:89
Symbol 67 GraphicUsed by:68
Symbol 68 MovieClipUses:67Used by:89
Symbol 69 GraphicUsed by:70
Symbol 70 MovieClipUses:69Used by:89
Symbol 71 BitmapUsed by:72
Symbol 72 GraphicUses:71Used by:73
Symbol 73 MovieClipUses:72Used by:89
Symbol 74 GraphicUsed by:84
Symbol 75 GraphicUsed by:76
Symbol 76 MovieClipUses:75Used by:84 92
Symbol 77 FontUsed by:78 125
Symbol 78 EditableTextUses:77Used by:84
Symbol 79 GraphicUsed by:84
Symbol 80 GraphicUsed by:84
Symbol 81 GraphicUsed by:84
Symbol 82 GraphicUsed by:84
Symbol 83 GraphicUsed by:84
Symbol 84 MovieClipUses:74 76 78 79 80 81 82 83Used by:89
Symbol 85 GraphicUsed by:86
Symbol 86 MovieClipUses:85Used by:89
Symbol 87 GraphicUsed by:88
Symbol 88 MovieClipUses:87Used by:89
Symbol 89 MovieClip {player_fla.display_2}Uses:59 61 62 66 68 70 73 84 86 88Used by:179
Symbol 90 MovieClipUses:58Used by:114
Symbol 91 GraphicUsed by:92
Symbol 92 MovieClipUses:91 76Used by:97
Symbol 93 GraphicUsed by:94
Symbol 94 MovieClipUses:93Used by:97
Symbol 95 GraphicUsed by:96
Symbol 96 MovieClipUses:95Used by:97
Symbol 97 MovieClipUses:92 94 96Used by:114
Symbol 98 GraphicUsed by:99
Symbol 99 MovieClipUses:98Used by:114
Symbol 100 EditableTextUses:64Used by:114
Symbol 101 FontUsed by:102 104
Symbol 102 EditableTextUses:101Used by:114
Symbol 103 EditableTextUses:64Used by:114
Symbol 104 EditableTextUses:101Used by:114
Symbol 105 GraphicUsed by:106
Symbol 106 MovieClipUses:105Used by:114
Symbol 107 GraphicUsed by:108
Symbol 108 MovieClipUses:107Used by:114
Symbol 109 GraphicUsed by:111
Symbol 110 TextUses:64Used by:111
Symbol 111 ButtonUses:109 110Used by:114
Symbol 112 FontUsed by:113
Symbol 113 EditableTextUses:112Used by:114
Symbol 114 MovieClipUses:90 97 99 100 102 57 103 104 106 108 111 113Used by:179
Symbol 115 GraphicUsed by:142 179
Symbol 116 GraphicUsed by:117 118
Symbol 117 MovieClipUses:116Used by:134
Symbol 118 MovieClipUses:116Used by:126
Symbol 119 GraphicUsed by:120
Symbol 120 MovieClipUses:119Used by:126
Symbol 121 MovieClipUses:58Used by:126
Symbol 122 FontUsed by:123 124
Symbol 123 EditableTextUses:122Used by:126
Symbol 124 EditableTextUses:122Used by:126
Symbol 125 EditableTextUses:77Used by:126
Symbol 126 MovieClipUses:118 120 121 123 124 125Used by:127
Symbol 127 MovieClipUses:126Used by:134
Symbol 128 GraphicUsed by:129
Symbol 129 MovieClipUses:128Used by:133
Symbol 130 GraphicUsed by:131
Symbol 131 MovieClipUses:130Used by:133
Symbol 132 MovieClipUses:58Used by:133
Symbol 133 MovieClipUses:129 131 132Used by:134
Symbol 134 MovieClipUses:117 127 133Used by:179
Symbol 135 BitmapUsed by:136
Symbol 136 GraphicUses:135Used by:137
Symbol 137 MovieClipUses:136Used by:178
Symbol 138 GraphicUsed by:139 143
Symbol 139 MovieClipUses:138Used by:143
Symbol 140 GraphicUsed by:141
Symbol 141 MovieClipUses:140Used by:143
Symbol 142 MovieClipUses:115Used by:143
Symbol 143 MovieClipUses:139 138 141 142Used by:178
Symbol 144 BitmapUsed by:145
Symbol 145 GraphicUses:144Used by:146
Symbol 146 MovieClipUses:145Used by:178
Symbol 147 BitmapUsed by:148
Symbol 148 GraphicUses:147Used by:149
Symbol 149 MovieClipUses:148Used by:178
Symbol 150 MovieClipUsed by:178
Symbol 151 GraphicUsed by:152
Symbol 152 MovieClipUses:151Used by:178
Symbol 153 GraphicUsed by:154
Symbol 154 MovieClipUses:153Used by:161
Symbol 155 GraphicUsed by:156
Symbol 156 MovieClipUses:155Used by:161
Symbol 157 GraphicUsed by:158
Symbol 158 MovieClipUses:157Used by:161
Symbol 159 GraphicUsed by:160
Symbol 160 MovieClipUses:159Used by:161
Symbol 161 MovieClip {player_fla.timeSlider_47}Uses:154 156 158 160Used by:178
Symbol 162 MovieClipUsed by:178
Symbol 163 BitmapUsed by:164
Symbol 164 GraphicUses:163Used by:165
Symbol 165 MovieClipUses:164Used by:178
Symbol 166 BitmapUsed by:167
Symbol 167 GraphicUses:166Used by:168
Symbol 168 MovieClipUses:167Used by:178
Symbol 169 GraphicUsed by:170
Symbol 170 MovieClipUses:169Used by:178
Symbol 171 FontUsed by:172 173
Symbol 172 EditableTextUses:171Used by:178
Symbol 173 EditableTextUses:171Used by:178
Symbol 174 GraphicUsed by:175 177
Symbol 175 MovieClipUses:174Used by:178
Symbol 176 MovieClipUsed by:177
Symbol 177 MovieClipUses:174 176Used by:178
Symbol 178 MovieClip {player_fla.controlbar_37}Uses:137 143 146 149 150 152 161 162 165 168 170 172 173 175 177Used by:179
Symbol 179 MovieClip {player_fla.player_1}Uses:89 114 115 134 178Used by:Timeline
Symbol 180 MovieClip {fl.controls.Button}

Instance Names

"player"Frame 1Symbol 179 MovieClip {player_fla.player_1}
"txt"Symbol 66 MovieClip Frame 1Symbol 65 EditableText
"txt"Symbol 84 MovieClip Frame 1Symbol 78 EditableText
"back"Symbol 89 MovieClip {player_fla.display_2} Frame 1Symbol 59 MovieClip
"masker"Symbol 89 MovieClip {player_fla.display_2} Frame 1Symbol 59 MovieClip
"media"Symbol 89 MovieClip {player_fla.display_2} Frame 1Symbol 61 MovieClip
"logo"Symbol 89 MovieClip {player_fla.display_2} Frame 1Symbol 62 MovieClip
"errorIcon"Symbol 89 MovieClip {player_fla.display_2} Frame 1Symbol 66 MovieClip
"linkIcon"Symbol 89 MovieClip {player_fla.display_2} Frame 1Symbol 68 MovieClip
"muteIcon"Symbol 89 MovieClip {player_fla.display_2} Frame 1Symbol 70 MovieClip
"playIcon"Symbol 89 MovieClip {player_fla.display_2} Frame 1Symbol 73 MovieClip
"bufferIcon"Symbol 89 MovieClip {player_fla.display_2} Frame 1Symbol 84 MovieClip
"fullscreenIcon"Symbol 89 MovieClip {player_fla.display_2} Frame 1Symbol 86 MovieClip
"nextIcon"Symbol 89 MovieClip {player_fla.display_2} Frame 1Symbol 88 MovieClip
"globe"Symbol 97 MovieClip Frame 1Symbol 92 MovieClip
"titlebg"Symbol 97 MovieClip Frame 1Symbol 94 MovieClip
"relatedbg"Symbol 97 MovieClip Frame 1Symbol 96 MovieClip
"blackbg"Symbol 114 MovieClip Frame 1Symbol 90 MovieClip
"back"Symbol 114 MovieClip Frame 1Symbol 97 MovieClip
"mouseoverbg"Symbol 114 MovieClip Frame 1Symbol 99 MovieClip
"titleText"Symbol 114 MovieClip Frame 1Symbol 100 EditableText
"descriptionText"Symbol 114 MovieClip Frame 1Symbol 102 EditableText
"videoImage"Symbol 114 MovieClip Frame 1Symbol 57 MovieClip {fl.containers.UILoader}
"relatedTitleText"Symbol 114 MovieClip Frame 1Symbol 103 EditableText
"relatedDescriptionText"Symbol 114 MovieClip Frame 1Symbol 104 EditableText
"prevButton"Symbol 114 MovieClip Frame 1Symbol 106 MovieClip
"nextButton"Symbol 114 MovieClip Frame 1Symbol 108 MovieClip
"replay_btn"Symbol 114 MovieClip Frame 1Symbol 111 Button
"bannerText"Symbol 114 MovieClip Frame 1Symbol 113 EditableText
"back"Symbol 126 MovieClip Frame 1Symbol 118 MovieClip
"shade"Symbol 126 MovieClip Frame 1Symbol 120 MovieClip
"image"Symbol 126 MovieClip Frame 1Symbol 121 MovieClip
"title"Symbol 126 MovieClip Frame 1Symbol 123 EditableText
"duration"Symbol 126 MovieClip Frame 1Symbol 124 EditableText
"description"Symbol 126 MovieClip Frame 1Symbol 125 EditableText
"button"Symbol 127 MovieClip Frame 1Symbol 126 MovieClip
"back"Symbol 133 MovieClip Frame 1Symbol 129 MovieClip
"rail"Symbol 133 MovieClip Frame 1Symbol 131 MovieClip
"icon"Symbol 133 MovieClip Frame 1Symbol 132 MovieClip
"back"Symbol 134 MovieClip Frame 1Symbol 117 MovieClip
"masker"Symbol 134 MovieClip Frame 1Symbol 117 MovieClip
"list"Symbol 134 MovieClip Frame 1Symbol 127 MovieClip
"slider"Symbol 134 MovieClip Frame 1Symbol 133 MovieClip
"rail"Symbol 143 MovieClip Frame 1Symbol 139 MovieClip
"mark"Symbol 143 MovieClip Frame 1Symbol 141 MovieClip
"icon"Symbol 143 MovieClip Frame 1Symbol 142 MovieClip
"rail"Symbol 161 MovieClip {player_fla.timeSlider_47} Frame 1Symbol 154 MovieClip
"mark"Symbol 161 MovieClip {player_fla.timeSlider_47} Frame 1Symbol 156 MovieClip
"done"Symbol 161 MovieClip {player_fla.timeSlider_47} Frame 1Symbol 158 MovieClip
"icon"Symbol 161 MovieClip {player_fla.timeSlider_47} Frame 1Symbol 160 MovieClip
"icon"Symbol 177 MovieClip Frame 1Symbol 176 MovieClip
"back"Symbol 178 MovieClip {player_fla.controlbar_37} Frame 1Symbol 137 MovieClip
"volumeSlider"Symbol 178 MovieClip {player_fla.controlbar_37} Frame 1Symbol 143 MovieClip
"unmuteButton"Symbol 178 MovieClip {player_fla.controlbar_37} Frame 1Symbol 146 MovieClip
"muteButton"Symbol 178 MovieClip {player_fla.controlbar_37} Frame 1Symbol 149 MovieClip
"linkButton"Symbol 178 MovieClip {player_fla.controlbar_37} Frame 1Symbol 150 MovieClip
"fullscreenButton"Symbol 178 MovieClip {player_fla.controlbar_37} Frame 1Symbol 152 MovieClip
"timeSlider"Symbol 178 MovieClip {player_fla.controlbar_37} Frame 1Symbol 161 MovieClip {player_fla.timeSlider_47}
"nextButton"Symbol 178 MovieClip {player_fla.controlbar_37} Frame 1Symbol 162 MovieClip
"pauseButton"Symbol 178 MovieClip {player_fla.controlbar_37} Frame 1Symbol 165 MovieClip
"playButton"Symbol 178 MovieClip {player_fla.controlbar_37} Frame 1Symbol 168 MovieClip
"normalscreenButton"Symbol 178 MovieClip {player_fla.controlbar_37} Frame 1Symbol 170 MovieClip
"elapsedText"Symbol 178 MovieClip {player_fla.controlbar_37} Frame 1Symbol 172 EditableText
"totalText"Symbol 178 MovieClip {player_fla.controlbar_37} Frame 1Symbol 173 EditableText
"stopButton"Symbol 178 MovieClip {player_fla.controlbar_37} Frame 1Symbol 175 MovieClip
"prevButton"Symbol 178 MovieClip {player_fla.controlbar_37} Frame 1Symbol 177 MovieClip
"display"Symbol 179 MovieClip {player_fla.player_1} Frame 1Symbol 89 MovieClip {player_fla.display_2}
"relatedvideos"Symbol 179 MovieClip {player_fla.player_1} Frame 1Symbol 114 MovieClip
"playlist"Symbol 179 MovieClip {player_fla.player_1} Frame 1Symbol 134 MovieClip
"controlbar"Symbol 179 MovieClip {player_fla.player_1} Frame 1Symbol 178 MovieClip {player_fla.controlbar_37}

Special Tags

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




http://swfchan.com/17/83059/info.shtml
Created: 1/4 -2019 02:02:42 Last modified: 1/4 -2019 02:02:42 Server time: 09/05 -2024 04:15:02