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

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

moto-racer-timetrials.swf

This is the info page for
Flash #123870

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


Text
00'00''000

SOUND ON OFF

ON

ON

ON

OFF

OFF

OFF

presents MOTORACER

Game TITLE

Loading

0%

MOTO
RACER

TIMETRIALS

MORE GAMES

MORE GAMES

PLAY

PLAY

PLAY AGAIN

PLAY AGAIN

TRACK COMPLETE

00'00"000

RACE TIME

CLICK TO PLAY

LEFT / RIGHT TO STEER, UP ACCELERATE, DOWN BRAKE
PRESENTS A GAME BY

MUSIC ON OFF

SCORES

SCORES

<p align="left"><font face="Supertouch" size="8" color="#ffffff" letterSpacing="16.000000" kerning="0">LOADING 100%</font></p>

SELECT TRACK

RACE

RACE

WRONG WAY!

3

2

1

GO

0'00''000

Lap

Lap 01:

Lap 02:

Lap 03:

<p align="center"><font face="standard 07_53_8pt_st" size="8" color="#ffffff" letterSpacing="0.500000" kerning="0"><b>SOUNDS ON</b></font></p>

<p align="center"><font face="standard 07_53_8pt_st" size="8" color="#ffffff" letterSpacing="0.500000" kerning="0"><b>PAUSE</b></font></p>

<p align="center"><font face="standard 07_53_8pt_st" size="8" color="#ffffff" letterSpacing="0.500000" kerning="0"><b>MUSIC ON</b></font></p>

<p align="center"><font face="standard 07_53_8pt_st" size="8" color="#ffffff" letterSpacing="0.500000" kerning="0"><b>EXIT</b></font></p>

<p align="center"><font face="standard 07_53_8pt_st" size="8" color="#ffcc00" letterSpacing="0.500000" kerning="0"><b>EXIT</b></font></p>

<p align="center"><font face="standard 07_53_8pt_st" size="8" color="#ffcc00" letterSpacing="0.500000" kerning="0"><b>EXIT</b></font></p>

AUSTRALIA

>>

NAME
EMAIL
COUNTRY

ONLY Enter your email IF YOU
WISH to JOIN OUR MAILING LIST

<p align="right"><font face="MicrogrammaDBolExt" size="24" color="#cccccc" letterSpacing="1.000000" kerning="1">0000000</font></p>

SUBMITTING SCORE

> MAIN MENU

> MAIN MENU

SCORE SUBMITTED

SUBMIT SCORE

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

Submit

ActionScript [AS3]

Section 1
//fx (bike.wheel.fx) package bike.wheel { import display.*; public dynamic class fx extends Wheel { } }//package bike.wheel
Section 2
//ImageItem (br.com.stimuli.loading.loadingtypes.ImageItem) package br.com.stimuli.loading.loadingtypes { import flash.display.*; import flash.events.*; import br.com.stimuli.loading.*; import flash.net.*; import flash.utils.*; public class ImageItem extends LoadingItem { public var loader:Loader; public function ImageItem(_arg1:URLRequest, _arg2:String, _arg3:String){ specificAvailableProps = [BulkLoader.CONTEXT]; super(_arg1, _arg2, _arg3); } override public function stop():void{ try { if (loader){ loader.close(); }; } catch(e:Error) { }; super.stop(); } override public function _parseOptions(_arg1:Object):Array{ context = ((_arg1[BulkLoader.CONTEXT]) || (null)); return (super._parseOptions(_arg1)); } override public function isImage():Boolean{ return ((type == BulkLoader.TYPE_IMAGE)); } public function _onHttpStatusHandler(_arg1:HTTPStatusEvent):void{ _httpStatus = _arg1.status; dispatchEvent(_arg1); } override public function onErrorHandler(_arg1:Event):void{ super.onErrorHandler(_arg1); } override public function load():void{ super.load(); loader = new Loader(); loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, onProgressHandler, false, 0, true); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onCompleteHandler, false, 0, true); loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onErrorHandler, false, 100, true); loader.contentLoaderInfo.addEventListener(Event.OPEN, onStartedHandler, false, 0, true); loader.contentLoaderInfo.addEventListener(HTTPStatusEvent.HTTP_STATUS, super.onHttpStatusHandler, false, 0, true); loader.load(url, context); } override public function cleanListeners():void{ var _local1:Object; if (loader){ _local1 = loader.contentLoaderInfo; _local1.removeEventListener(ProgressEvent.PROGRESS, onProgressHandler, false); _local1.removeEventListener(Event.COMPLETE, onCompleteHandler, false); _local1.removeEventListener(IOErrorEvent.IO_ERROR, onErrorHandler, false); _local1.removeEventListener(BulkLoader.OPEN, onStartedHandler, false); _local1.removeEventListener(HTTPStatusEvent.HTTP_STATUS, super.onHttpStatusHandler, false); }; } override public function isSWF():Boolean{ return ((type == BulkLoader.TYPE_MOVIECLIP)); } override public function onCompleteHandler(_arg1:Event):void{ _content = loader.content; super.onCompleteHandler(_arg1); } override public function destroy():void{ stop(); cleanListeners(); _content = null; loader = null; } } }//package br.com.stimuli.loading.loadingtypes
Section 3
//LoadingItem (br.com.stimuli.loading.loadingtypes.LoadingItem) package br.com.stimuli.loading.loadingtypes { import flash.display.*; import flash.events.*; import br.com.stimuli.loading.*; import flash.net.*; import flash.utils.*; public class LoadingItem extends EventDispatcher { public var _priority:int;// = 0 public var status:String; public var _type:String; public var _isLoaded:Boolean; public var _isLoading:Boolean; public var _additionIndex:int; public var _bytesTotal:int;// = -1 public var _httpStatus:int;// = -1 public var _content; public var _speed:Number; public var _weightPercentLoaded:Number; public var propertyParsingErrors:Array; public var url:URLRequest; public var weight:int;// = 1 public var _addedTime:int; public var preventCache:Boolean; public var _uid:String; public var _responseTime:Number; public var maxTries:int;// = 3 public var _bytesLoaded:int;// = 0 public var _percentLoaded:Number; public var context;// = null public var _totalTime:int; public var numTries:int;// = 0 public var _id:String; public var _latency:Number; public var _startTime:int; public var _bytesRemaining:int;// = 10000000 public var _timeToDownload:int; public var specificAvailableProps:Array; public static const STATUS_STOPPED:String = "stopped"; public static const STATUS_STARTED:String = "started"; public static const STATUS_ERROR:String = "error"; public static const STATUS_FINISHED:String = "finished"; public function LoadingItem(_arg1:URLRequest, _arg2:String, _arg3:String){ _priority = 0; maxTries = 3; numTries = 0; weight = 1; _bytesTotal = -1; _bytesLoaded = 0; _bytesRemaining = 10000000; _httpStatus = -1; context = null; super(); this._type = _arg2; this.url = _arg1; if (!specificAvailableProps){ specificAvailableProps = []; }; this._uid = _arg3; } public function onCompleteHandler(_arg1:Event):void{ _totalTime = getTimer(); _timeToDownload = ((_totalTime - _responseTime) / 1000); if (_timeToDownload == 0){ _timeToDownload = 0.2; }; _speed = BulkLoader.truncateNumber(((bytesTotal / 0x0400) / _timeToDownload)); if (_timeToDownload == 0){ _speed = 3000; }; status = STATUS_FINISHED; _isLoaded = true; dispatchEvent(_arg1); _arg1.stopPropagation(); } public function stop():void{ if (_isLoaded){ return; }; status = STATUS_STOPPED; _isLoading = false; } public function isSound():Boolean{ return (false); } public function get weightPercentLoaded():Number{ return (_weightPercentLoaded); } public function get id():String{ return (_id); } public function onHttpStatusHandler(_arg1:HTTPStatusEvent):void{ _httpStatus = _arg1.status; dispatchEvent(_arg1); } public function get type():String{ return (_type); } public function get speed():Number{ return (_speed); } public function onStartedHandler(_arg1:Event):void{ _responseTime = getTimer(); _latency = BulkLoader.truncateNumber(((_responseTime - _startTime) / 1000)); status = STATUS_STARTED; dispatchEvent(_arg1); } public function get bytesLoaded():int{ return (_bytesLoaded); } public function isImage():Boolean{ return (false); } public function _parseOptions(_arg1:Object):Array{ var _local2:Array; var _local3:String; preventCache = _arg1[BulkLoader.PREVENT_CACHING]; _id = _arg1[BulkLoader.ID]; _priority = ((int(_arg1[BulkLoader.PRIORITY])) || (0)); maxTries = ((_arg1[BulkLoader.MAX_TRIES]) || (3)); weight = ((int(_arg1[BulkLoader.WEIGHT])) || (1)); _local2 = BulkLoader.GENERAL_AVAILABLE_PROPS.concat(specificAvailableProps); propertyParsingErrors = []; for (_local3 in _arg1) { if (_local2.indexOf(_local3) == -1){ propertyParsingErrors.push(((((this + ": got a wrong property name: ") + _local3) + ", with value:") + _arg1[_local3])); }; }; return (propertyParsingErrors); } public function get startTime():int{ return (_startTime); } public function get totalTime():int{ return (_totalTime); } override public function toString():String{ return (((((("LoadingItem url: " + url.url) + ", type:") + _type) + ", status: ") + status)); } public function isVideo():Boolean{ return (false); } public function isText():Boolean{ return (false); } public function get content(){ return (_content); } public function onProgressHandler(_arg1):void{ _bytesLoaded = _arg1.bytesLoaded; _bytesTotal = _arg1.bytesTotal; _bytesRemaining = (_bytesTotal - bytesLoaded); _percentLoaded = (_bytesLoaded / _bytesTotal); _weightPercentLoaded = (_percentLoaded * weight); dispatchEvent(_arg1); } public function get bytesTotal():int{ return (_bytesTotal); } public function get httpStatus():int{ return (_httpStatus); } public function isXML():Boolean{ return (false); } public function onErrorHandler(_arg1:Event):void{ var _local2:BulkErrorEvent; numTries++; status = STATUS_ERROR; _arg1.stopPropagation(); if (numTries >= maxTries){ _local2 = new BulkErrorEvent(BulkErrorEvent.ERROR); _local2.errors = [this]; dispatchEvent(_local2); } else { status = null; load(); }; } public function get priority():int{ return (_priority); } public function get percentLoaded():Number{ return (_percentLoaded); } public function get responseTime():Number{ return (_responseTime); } public function isStreamable():Boolean{ return (false); } public function get bytesRemaining():int{ return (_bytesRemaining); } public function get isLoaded():Boolean{ return (_isLoaded); } public function get timeToDownload():int{ return (_timeToDownload); } public function isLoader():Boolean{ return (false); } public function load():void{ var _local1:String; if (preventCache){ _local1 = ((("BulkLoaderNoCache=" + _uid) + "_") + int(((Math.random() * 100) * getTimer()))); if (url.url.indexOf("?") == -1){ url.url = (url.url + ("?" + _local1)); } else { url.url = (url.url + ("&" + _local1)); }; }; _isLoading = true; _startTime = getTimer(); } public function getStats():String{ return ((((((((((("Item url:" + url.url) + ", total time: ") + _timeToDownload) + "(s), latency:") + _latency) + "(s), speed: ") + _speed) + " kb/s, size: ") + BulkLoader.truncateNumber((_bytesTotal / 0x0400))) + " kb")); } public function get addedTime():int{ return (_addedTime); } public function cleanListeners():void{ } public function isSWF():Boolean{ return (false); } public function destroy():void{ _content = null; } public function get latency():Number{ return (_latency); } } }//package br.com.stimuli.loading.loadingtypes
Section 4
//SoundItem (br.com.stimuli.loading.loadingtypes.SoundItem) package br.com.stimuli.loading.loadingtypes { import flash.events.*; import flash.media.*; import br.com.stimuli.loading.*; import flash.net.*; public class SoundItem extends LoadingItem { public var loader:Sound; public function SoundItem(_arg1:URLRequest, _arg2:String, _arg3:String){ specificAvailableProps = [BulkLoader.CONTEXT]; super(_arg1, _arg2, _arg3); } override public function stop():void{ try { if (loader){ loader.close(); }; } catch(e:Error) { }; super.stop(); } override public function isSound():Boolean{ return (true); } override public function onStartedHandler(_arg1:Event):void{ _content = loader; super.onStartedHandler(_arg1); } override public function _parseOptions(_arg1:Object):Array{ context = ((_arg1[BulkLoader.CONTEXT]) || (null)); return (super._parseOptions(_arg1)); } override public function onErrorHandler(_arg1:Event):void{ super.onErrorHandler(_arg1); } override public function isStreamable():Boolean{ return (true); } override public function load():void{ super.load(); loader = new Sound(); loader.addEventListener(ProgressEvent.PROGRESS, onProgressHandler, false, 0, true); loader.addEventListener(Event.COMPLETE, onCompleteHandler, false, 0, true); loader.addEventListener(IOErrorEvent.IO_ERROR, onErrorHandler, false, 0, true); loader.addEventListener(Event.OPEN, onStartedHandler, false, 0, true); loader.load(url, context); } override public function cleanListeners():void{ if (loader){ loader.removeEventListener(ProgressEvent.PROGRESS, onProgressHandler, false); loader.removeEventListener(Event.COMPLETE, onCompleteHandler, false); loader.removeEventListener(IOErrorEvent.IO_ERROR, onErrorHandler, false); loader.removeEventListener(BulkLoader.OPEN, onStartedHandler, false); }; } override public function onCompleteHandler(_arg1:Event):void{ _content = loader; super.onCompleteHandler(_arg1); } override public function destroy():void{ cleanListeners(); stop(); _content = null; loader = null; } } }//package br.com.stimuli.loading.loadingtypes
Section 5
//URLItem (br.com.stimuli.loading.loadingtypes.URLItem) package br.com.stimuli.loading.loadingtypes { import flash.events.*; import br.com.stimuli.loading.*; import flash.net.*; public class URLItem extends LoadingItem { public var loader:URLLoader; public function URLItem(_arg1:URLRequest, _arg2:String, _arg3:String){ super(_arg1, _arg2, _arg3); } override public function stop():void{ try { if (loader){ loader.close(); }; } catch(e:Error) { }; super.stop(); } override public function onStartedHandler(_arg1:Event):void{ super.onStartedHandler(_arg1); } override public function _parseOptions(_arg1:Object):Array{ return (super._parseOptions(_arg1)); } override public function isText():Boolean{ return (true); } override public function load():void{ super.load(); loader = new URLLoader(); loader.addEventListener(ProgressEvent.PROGRESS, onProgressHandler, false, 0, true); loader.addEventListener(Event.COMPLETE, onCompleteHandler, false, 0, true); loader.addEventListener(IOErrorEvent.IO_ERROR, onErrorHandler, false, 0, true); loader.addEventListener(HTTPStatusEvent.HTTP_STATUS, super.onHttpStatusHandler, false, 0, true); loader.addEventListener(Event.OPEN, onStartedHandler, false, 0, true); loader.load(url); } override public function cleanListeners():void{ if (loader){ loader.removeEventListener(ProgressEvent.PROGRESS, onProgressHandler, false); loader.removeEventListener(Event.COMPLETE, onCompleteHandler, false); loader.removeEventListener(IOErrorEvent.IO_ERROR, onErrorHandler, false); loader.removeEventListener(BulkLoader.OPEN, onStartedHandler, false); loader.removeEventListener(HTTPStatusEvent.HTTP_STATUS, super.onHttpStatusHandler, false); }; } override public function onCompleteHandler(_arg1:Event):void{ _content = loader.data; super.onCompleteHandler(_arg1); } override public function destroy():void{ stop(); cleanListeners(); _content = null; loader = null; } } }//package br.com.stimuli.loading.loadingtypes
Section 6
//VideoItem (br.com.stimuli.loading.loadingtypes.VideoItem) package br.com.stimuli.loading.loadingtypes { import flash.display.*; import flash.events.*; import br.com.stimuli.loading.*; import flash.net.*; import flash.utils.*; public class VideoItem extends LoadingItem { private var _canBeginStreaming:Boolean;// = false var stream:NetStream; private var dummyEventTrigger:Sprite; private var nc:NetConnection; private var _checkPolicyFile:Boolean; private var _metaData:Object; var pausedAtStart:Boolean;// = false public function VideoItem(_arg1:URLRequest, _arg2:String, _arg3:String){ pausedAtStart = false; _canBeginStreaming = false; specificAvailableProps = [BulkLoader.CHECK_POLICY_FILE, BulkLoader.PAUSED_AT_START]; super(_arg1, _arg2, _arg3); } override public function stop():void{ try { if (stream){ stream.close(); }; } catch(e:Error) { }; super.stop(); } function onVideoMetadata(_arg1):void{ _metaData = _arg1; } private function fireCanBeginStreamingEvent():void{ var _local1:Event; if (_canBeginStreaming){ return; }; _canBeginStreaming = true; _local1 = new Event(BulkLoader.CAN_BEGIN_PLAYING); dispatchEvent(_local1); } override public function onStartedHandler(_arg1:Event):void{ _content = stream; if (((pausedAtStart) && (stream))){ stream.pause(); }; super.onStartedHandler(_arg1); } override public function _parseOptions(_arg1:Object):Array{ pausedAtStart = ((_arg1[BulkLoader.PAUSED_AT_START]) || (false)); _checkPolicyFile = ((_arg1[BulkLoader.CHECK_POLICY_FILE]) || (false)); return (super._parseOptions(_arg1)); } override public function isVideo():Boolean{ return (true); } public function get metaData():Object{ return (_metaData); } public function createNetStreamEvent(_arg1:Event):void{ var _local2:Event; var _local3:Event; var _local4:ProgressEvent; var _local5:int; var _local6:Number; var _local7:Number; var _local8:Number; if ((((_bytesTotal == _bytesLoaded)) && ((_bytesTotal > 8)))){ if (dummyEventTrigger){ dummyEventTrigger.removeEventListener(Event.ENTER_FRAME, createNetStreamEvent, false); }; _local2 = new Event(Event.COMPLETE); onCompleteHandler(_local2); } else { if ((((_bytesTotal == 0)) && ((stream.bytesTotal > 4)))){ _local3 = new Event(Event.OPEN); onStartedHandler(_local3); _bytesLoaded = stream.bytesLoaded; _bytesTotal = stream.bytesTotal; } else { if (stream){ _local4 = new ProgressEvent(ProgressEvent.PROGRESS, false, false, stream.bytesLoaded, stream.bytesTotal); if (((((isVideo()) && (metaData))) && (!(_canBeginStreaming)))){ _local5 = (getTimer() - responseTime); _local6 = (bytesLoaded / (_local5 / 1000)); _local7 = (_bytesRemaining / (_local6 * 0.8)); _local8 = (metaData.duration - stream.bufferLength); if (_local8 > _local7){ fireCanBeginStreamingEvent(); }; }; super.onProgressHandler(_local4); }; }; }; } override public function isStreamable():Boolean{ return (true); } function onNetStatus(_arg1:NetStatusEvent):void{ var _local2:Event; if (!stream){ return; }; stream.removeEventListener(NetStatusEvent.NET_STATUS, onNetStatus, false); if (_arg1.info.code == "NetStream.Play.Start"){ _content = stream; _local2 = new Event(Event.OPEN); onStartedHandler(_local2); } else { if (_arg1.info.code == "NetStream.Play.StreamNotFound"){ onErrorHandler(_arg1); }; }; } override public function load():void{ var customClient:Object; super.load(); nc = new NetConnection(); nc.connect(null); stream = new NetStream(nc); stream.addEventListener(IOErrorEvent.IO_ERROR, onErrorHandler, false, 0, true); stream.addEventListener(NetStatusEvent.NET_STATUS, onNetStatus, false, 0, true); dummyEventTrigger = new Sprite(); dummyEventTrigger.addEventListener(Event.ENTER_FRAME, createNetStreamEvent, false, 0, true); customClient = new Object(); customClient.onCuePoint = function (... _args):void{ }; customClient.onMetaData = onVideoMetadata; customClient.onPlayStatus = function (... _args):void{ }; stream.client = customClient; stream.play(url.url, _checkPolicyFile); stream.seek(0); } override public function cleanListeners():void{ if (stream){ stream.removeEventListener(IOErrorEvent.IO_ERROR, onErrorHandler, false); stream.removeEventListener(NetStatusEvent.NET_STATUS, onNetStatus, false); }; if (dummyEventTrigger){ dummyEventTrigger.removeEventListener(Event.ENTER_FRAME, createNetStreamEvent, false); dummyEventTrigger = null; }; } override public function onCompleteHandler(_arg1:Event):void{ _content = stream; super.onCompleteHandler(_arg1); } override public function destroy():void{ if (stream){ }; stop(); cleanListeners(); stream = null; super.destroy(); } public function get checkPolicyFile():Object{ return (_checkPolicyFile); } } }//package br.com.stimuli.loading.loadingtypes
Section 7
//XMLItem (br.com.stimuli.loading.loadingtypes.XMLItem) package br.com.stimuli.loading.loadingtypes { import flash.events.*; import br.com.stimuli.loading.*; import flash.net.*; public class XMLItem extends LoadingItem { public var loader:URLLoader; public function XMLItem(_arg1:URLRequest, _arg2:String, _arg3:String){ super(_arg1, _arg2, _arg3); } override public function stop():void{ try { if (loader){ loader.close(); }; } catch(e:Error) { }; super.stop(); } override public function onStartedHandler(_arg1:Event):void{ super.onStartedHandler(_arg1); } override public function _parseOptions(_arg1:Object):Array{ return (super._parseOptions(_arg1)); } override public function isText():Boolean{ return (true); } override public function onErrorHandler(_arg1:Event):void{ super.onErrorHandler(_arg1); } override public function load():void{ super.load(); loader = new URLLoader(); loader.addEventListener(ProgressEvent.PROGRESS, onProgressHandler, false, 0, true); loader.addEventListener(Event.COMPLETE, onCompleteHandler, false, 0, true); loader.addEventListener(IOErrorEvent.IO_ERROR, onErrorHandler, false, 0, true); loader.addEventListener(HTTPStatusEvent.HTTP_STATUS, super.onHttpStatusHandler, false, 0, true); loader.addEventListener(Event.OPEN, onStartedHandler, false, 0, true); loader.load(url); } override public function cleanListeners():void{ if (loader){ loader.removeEventListener(ProgressEvent.PROGRESS, onProgressHandler, false); loader.removeEventListener(Event.COMPLETE, onCompleteHandler, false); loader.removeEventListener(IOErrorEvent.IO_ERROR, onErrorHandler, false); loader.removeEventListener(BulkLoader.OPEN, onStartedHandler, false); loader.removeEventListener(HTTPStatusEvent.HTTP_STATUS, super.onHttpStatusHandler, false); }; } override public function onCompleteHandler(_arg1:Event):void{ _content = new XML(loader.data); super.onCompleteHandler(_arg1); } override public function destroy():void{ stop(); cleanListeners(); _content = null; loader = null; } } }//package br.com.stimuli.loading.loadingtypes
Section 8
//BulkErrorEvent (br.com.stimuli.loading.BulkErrorEvent) package br.com.stimuli.loading { import flash.events.*; public class BulkErrorEvent extends Event { public var name:String; public var errors:Array; public static const ERROR:String = "error"; public function BulkErrorEvent(_arg1:String, _arg2:Boolean=true, _arg3:Boolean=false){ super(_arg1, _arg2, _arg3); this.name = _arg1; } override public function toString():String{ return (super.toString()); } override public function clone():Event{ var _local1:BulkErrorEvent; _local1 = new BulkErrorEvent(name, bubbles, cancelable); _local1.errors = (errors) ? errors.slice() : []; return (_local1); } } }//package br.com.stimuli.loading
Section 9
//BulkLoader (br.com.stimuli.loading.BulkLoader) package br.com.stimuli.loading { import flash.display.*; import flash.events.*; import flash.media.*; import br.com.stimuli.loading.loadingtypes.*; import flash.net.*; import flash.utils.*; public class BulkLoader extends EventDispatcher { public var _itemsTotal:int;// = 0 public var speedAvg:Number; public var _numConnections:int;// = 7 public var _totalWeight:int;// = 0 public var _bytesTotalCurrent:int;// = 0 public var _itemsLoaded:int;// = 0 public var totalTime:Number; public var _additionIndex:int;// = 0 public var _bytesTotal:int;// = 0 public var _speed:Number; public var _loadedRatio:Number;// = 0 public var _isPaused:Boolean;// = true public var _isFinished:Boolean; public var _lastSpeedCheck:int; public var _name:String; public var _allowsAutoIDFromFileName:Boolean;// = false public var _contents:Dictionary; public var _logFunction:Function; public var _bytesLoaded:int;// = 0 public var _connections:Array; public var logLevel:int;// = 20 public var _percentLoaded:Number;// = 0 public var _weightPercent:Number; public var _lastBytesCheck:int; public var _isRunning:Boolean; public var _id:int; public var _items:Array; public var _stringSubstitutions:Object; public var avgLatency:Number; public var _startTime:int; public var _speedTotal:Number; public var _endTIme:int; public static const LOG_INFO:int = 2; public static const HTTP_STATUS:String = "httpStatus"; public static const CONTEXT:String = "context"; public static const CAN_BEGIN_PLAYING:String = "canBeginPlaying"; public static const TYPE_VIDEO:String = "video"; public static const TYPE_TEXT:String = "text"; public static const TYPE_MOVIECLIP:String = "movieclip"; public static const PREVENT_CACHING:String = "preventCache"; public static const PAUSED_AT_START:String = "pausedAtStart"; public static const TYPE_SOUND:String = "sound"; public static const PROGRESS:String = "progress"; public static const DEFAULT_LOG_LEVEL:int = 20; public static const ID:String = "id"; public static const CHECK_POLICY_FILE:String = "checkPolicyFile"; public static const COMPLETE:String = "complete"; public static const PRIORITY:String = "priority"; public static const MAX_TRIES:String = "maxTries"; public static const VERSION:String = "rev 196 (0.9.9.4)"; public static const AVAILABLE_TYPES:Array = [TYPE_VIDEO, TYPE_XML, TYPE_TEXT, TYPE_SOUND, TYPE_MOVIECLIP, TYPE_IMAGE]; public static const LOG_VERBOSE:int = 0; public static const OPEN:String = "open"; public static const LOG_WARNINGS:int = 3; public static const DEFAULT_NUM_CONNECTIONS:int = 7; public static const GENERAL_AVAILABLE_PROPS:Array = [WEIGHT, MAX_TRIES, HEADERS, ID, PRIORITY, PREVENT_CACHING, "type"]; public static const LOG_SILENT:int = 10; public static const ERROR:String = "error"; public static const HEADERS:String = "headers"; public static const LOG_ERRORS:int = 4; public static const TYPE_IMAGE:String = "image"; public static const TYPE_XML:String = "xml"; public static const WEIGHT:String = "weight"; public static var IMAGE_EXTENSIONS:Array = ["jpg", "jpeg", "gif", "png"]; public static var _customTypesExtensions:Object; public static var MOVIECLIP_EXTENSIONS:Array = ["swf"]; public static var XML_EXTENSIONS:Array = ["xml"]; public static var _typeClasses:Object = {image:ImageItem, movieclip:ImageItem, xml:XMLItem, video:VideoItem, sound:SoundItem, text:URLItem}; public static var TEXT_EXTENSIONS:Array = ["txt", "js", "php", "asp", "py"]; public static var _instancesCreated:int = 0; public static var AVAILABLE_EXTENSIONS:Array = ["swf", "jpg", "jpeg", "gif", "png", "flv", "mp3", "xml", "txt", "js"]; public static var SOUND_EXTENSIONS:Array = ["mp3", "f4a", "f4b"]; public static var VIDEO_EXTENSIONS:Array = ["flv", "f4v", "f4p"]; public static var _allLoaders:Object = {}; public function BulkLoader(_arg1:String, _arg2:int=7, _arg3:int=20){ _items = []; _contents = new Dictionary(); _additionIndex = 0; _numConnections = DEFAULT_NUM_CONNECTIONS; _loadedRatio = 0; _itemsTotal = 0; _itemsLoaded = 0; _totalWeight = 0; _bytesTotal = 0; _bytesTotalCurrent = 0; _bytesLoaded = 0; _percentLoaded = 0; logLevel = DEFAULT_LOG_LEVEL; _allowsAutoIDFromFileName = false; _isPaused = true; _logFunction = trace; super(); if (Boolean(_allLoaders[_arg1])){ __debug_print_loaders(); throw (new Error((("BulkLoader with name'" + _arg1) + "' has already been created."))); }; if (!_arg1){ throw (new Error("Cannot create a BulkLoader instance without a name")); }; _allLoaders[_arg1] = this; if (_arg2 > 0){ this._numConnections = _arg2; }; this.logLevel = _arg3; _name = _arg1; _instancesCreated++; _id = _instancesCreated; _additionIndex = 0; } public function get allowsAutoIDFromFileName():Boolean{ return (_allowsAutoIDFromFileName); } public function _onItemComplete(_arg1:Event):void{ var _local2:LoadingItem; var _local3:Boolean; var _local4:Boolean; _local2 = (_arg1.target as LoadingItem); _removeFromConnections(_local2); log("Loaded ", _local2, LOG_INFO); log("Items to load", getNotLoadedItems(), LOG_VERBOSE); _local2.cleanListeners(); _contents[_local2.url.url] = _local2.content; _local3 = _loadNext(); _local4 = _isAllDoneP(); _itemsLoaded++; if (_local4){ _onAllLoaded(); }; } public function get loadedRatio():Number{ return (_loadedRatio); } public function loadNow(_arg1):Boolean{ var _local2:LoadingItem; var _local3:LoadingItem; if ((_arg1 is LoadingItem)){ _local2 = _arg1; } else { _local2 = get(_arg1); }; if (!_local2){ return (false); }; if (!_connections){ _connections = []; }; if ((((_local2.status == LoadingItem.STATUS_FINISHED)) || ((_local2.status == LoadingItem.STATUS_STARTED)))){ return (true); }; if (_connections.length >= numConnections){ _local3 = _getLeastUrgentOpenedItem(); _removeFromConnections(_local3); _local3.status = null; }; _local2._priority = highestPriority; _loadNext(_local2); return (true); } public function set allowsAutoIDFromFileName(_arg1:Boolean):void{ _allowsAutoIDFromFileName = _arg1; } public function _getContentAsType(_arg1, _arg2:Class, _arg3:Boolean=false){ var item:LoadingItem; var res:*; var key = _arg1; var type = _arg2; var clearMemory = _arg3; if (!_name){ throw (new Error("[BulkLoader] Cannot use an instance that has been cleared from memory (.clear())")); }; item = get(key); if (!item){ return (null); }; try { if (((item._isLoaded) || (((item.isStreamable()) && ((item.status == LoadingItem.STATUS_STARTED)))))){ res = (item.content as type); if (res == null){ throw (new Error("bad cast")); }; if (clearMemory){ remove(key); }; return (res); }; } catch(e:Error) { log((("Failed to get content with url: '" + key) + "'as type:"), type, LOG_ERRORS); }; return (null); } public function set stringSubstitutions(_arg1:Object):void{ _stringSubstitutions = _arg1; } public function get contents():Object{ return (_contents); } public function get id():int{ return (_id); } public function getBitmap(_arg1:String, _arg2:Boolean=false):Bitmap{ return (Bitmap(_getContentAsType(_arg1, Bitmap, _arg2))); } public function _removeFromConnections(_arg1):Boolean{ var _local2:int; if (!_connections){ return (false); }; _local2 = _connections.indexOf(_arg1); if (_local2 > -1){ _connections.splice(_local2, 1); return (true); }; return (false); } public function resume(_arg1):Boolean{ var _local2:LoadingItem; _local2 = ((_arg1 is LoadingItem)) ? _arg1 : get(_arg1); _isPaused = false; if (((_local2) && ((_local2.status == LoadingItem.STATUS_STOPPED)))){ _local2.status = null; _loadNext(); return (true); }; return (false); } public function _onAllLoaded():void{ var _local1:BulkProgressEvent; var _local2:BulkProgressEvent; if (_isFinished){ return; }; _local1 = new BulkProgressEvent(COMPLETE); _local1.setInfo(bytesLoaded, bytesTotal, bytesTotalCurrent, _itemsLoaded, itemsTotal, weightPercent); _local2 = new BulkProgressEvent(PROGRESS); _local2.setInfo(bytesLoaded, bytesTotal, bytesTotalCurrent, _itemsLoaded, itemsTotal, weightPercent); _isRunning = false; _endTIme = getTimer(); totalTime = BulkLoader.truncateNumber(((_endTIme - _startTime) / 1000)); _updateStats(); _connections = []; getStats(); _isFinished = true; log("Finished all", LOG_INFO); dispatchEvent(_local2); dispatchEvent(_local1); } public function removePausedItems():Boolean{ var stoppedLoads:Array; stoppedLoads = _items.filter(function (_arg1:LoadingItem, ... _args):Boolean{ return ((_arg1.status == LoadingItem.STATUS_STOPPED)); }); stoppedLoads.forEach(function (_arg1:LoadingItem, ... _args):void{ remove(_arg1); }); _loadNext(); return ((stoppedLoads.length > 0)); } public function resumeAll():Boolean{ var affected:Boolean; log("Resuming all items", LOG_VERBOSE); affected = false; _items.forEach(function (_arg1:LoadingItem, ... _args):void{ if (_arg1.status == LoadingItem.STATUS_STOPPED){ resume(_arg1); affected = true; }; }); _loadNext(); return (affected); } public function get isRunning():Boolean{ return (_isRunning); } public function getNetStreamMetaData(_arg1:String, _arg2:Boolean=false):Object{ var _local3:NetStream; _local3 = getNetStream(_arg1, _arg2); return ((Boolean(_local3)) ? (get(_arg1) as Object).metaData : null); } public function get logFunction():Function{ return (_logFunction); } public function getProgressForItems(_arg1:Array):BulkProgressEvent{ var _local2:Number; var _local3:int; var _local4:int; var _local5:Number; var _local6:int; var _local7:int; var _local8:int; var _local9:int; var _local10:int; var _local11:LoadingItem; var _local12:Array; var _local13:*; var _local14:BulkProgressEvent; _bytesLoaded = (_bytesTotal = (_bytesTotalCurrent = 0)); _local2 = 0; _local3 = 0; _local4 = 0; _local5 = 0; _local6 = 0; _local7 = 0; _local8 = 0; _local9 = 0; _local10 = 0; _local12 = []; for each (_local13 in _arg1) { _local11 = ((_local13 is LoadingItem)) ? _local13 : get(_local13); if (!_local11){ } else { _local6++; _local3 = (_local3 + _local11.weight); if ((((((_local11.status == LoadingItem.STATUS_STARTED)) || ((_local11.status == LoadingItem.STATUS_FINISHED)))) || ((_local11.status == LoadingItem.STATUS_STOPPED)))){ _local8 = (_local8 + _local11._bytesLoaded); _local10 = (_local10 + _local11._bytesTotal); _local5 = (_local5 + ((_local11._bytesLoaded / _local11._bytesTotal) * _local11.weight)); if (_local11.status == LoadingItem.STATUS_FINISHED){ _local7++; }; _local4++; }; }; }; if (_local4 != _local6){ _local9 = Number.POSITIVE_INFINITY; } else { _local9 = _local10; }; _local2 = (_local5 / _local3); if (_local3 == 0){ _local2 = 0; }; _local14 = new BulkProgressEvent(PROGRESS); _local14.setInfo(_local8, _local9, _local9, _local7, _local6, _local2); return (_local14); } public function getContent(_arg1:String, _arg2:Boolean=false){ return (_getContentAsType(_arg1, Object, _arg2)); } public function getSerializedData(_arg1, _arg2:Boolean=false, _arg3:Function=null){ var raw:*; var parsed:*; var key = _arg1; var clearMemory = _arg2; var encodingFunction = _arg3; try { raw = _getContentAsType(key, Object, clearMemory); parsed = encodingFunction.apply(null, [raw]); return (parsed); } catch(e:Error) { log("Failed to parse key:", key, ("with encodingFunction:" + encodingFunction), LOG_ERRORS); }; return (null); } public function log(... _args):void{ var _local2:int; _local2 = (isNaN(_args[(_args.length - 1)])) ? 3 : int(_args.pop()); if (_local2 >= logLevel){ _logFunction(("[BulkLoader] " + _args.join(" "))); }; } public function get bytesLoaded():int{ return (_bytesLoaded); } public function _loadNext(_arg1:LoadingItem=null):Boolean{ var next:Boolean; var checkItem:LoadingItem; var toLoad = _arg1; if (_isFinished){ return (false); }; if (!_connections){ _connections = []; }; _connections.forEach(function (_arg1:LoadingItem, ... _args):void{ if ((((_arg1.status == LoadingItem.STATUS_ERROR)) && ((_arg1.numTries < _arg1.maxTries)))){ _removeFromConnections(_arg1); }; }); next = false; if (!toLoad){ for each (checkItem in _items) { if (((!(checkItem._isLoading)) && (!((checkItem.status == LoadingItem.STATUS_STOPPED))))){ toLoad = checkItem; break; }; }; }; if (toLoad){ next = true; _isRunning = true; if (_connections.length < numConnections){ _connections.push(toLoad); toLoad.load(); log("Will load item:", toLoad, LOG_INFO); }; if (_connections.length < numConnections){ _loadNext(); }; }; return (next); } public function getSound(_arg1, _arg2:Boolean=false):Sound{ return (Sound(_getContentAsType(_arg1, Sound, _arg2))); } public function get speed():Number{ var _local1:int; var _local2:int; var _local3:int; _local1 = (getTimer() - _lastSpeedCheck); _local2 = ((bytesLoaded - _lastBytesCheck) / 0x0400); _local3 = (_local2 / (_local1 / 1000)); _lastSpeedCheck = _local1; _lastBytesCheck = bytesLoaded; return (_local3); } public function get(_arg1):LoadingItem{ var _local2:LoadingItem; if (!_arg1){ return (null); }; for each (_local2 in _items) { if ((((((((_local2._id == _arg1)) || ((_local2.url.url == _arg1)))) || ((_local2.url == _arg1)))) || ((((_arg1 is URLRequest)) && ((_local2.url.url == _arg1.url)))))){ return (_local2); }; }; return (null); } public function removeFailedItems():int{ var numCleared:int; var badItems:Array; numCleared = 0; badItems = _items.filter(function (_arg1:LoadingItem, ... _args):Boolean{ return ((_arg1.status == LoadingItem.STATUS_ERROR)); }); numCleared = badItems.length; badItems.forEach(function (_arg1:LoadingItem, ... _args):void{ remove(_arg1); }); _loadNext(); return (numCleared); } public function get highestPriority():int{ var _local1:int; var _local2:LoadingItem; _local1 = int.MIN_VALUE; for each (_local2 in _items) { if (_local2.priority > _local1){ _local1 = _local2.priority; }; }; return (_local1); } public function start(_arg1:int=-1):void{ if (_arg1 > 0){ _numConnections = _arg1; }; if (_connections){ _loadNext(); return; }; _startTime = getTimer(); _connections = []; _loadNext(); _isRunning = true; _lastBytesCheck = 0; _lastSpeedCheck = getTimer(); _isPaused = false; } override public function toString():String{ return (((((("[BulkLoader] name:" + name) + ", itemsTotal: ") + itemsTotal) + ", itemsLoaded: ") + _itemsLoaded)); } public function _getLeastUrgentOpenedItem():LoadingItem{ var _local1:LoadingItem; _local1 = LoadingItem(_connections.sortOn(["priority", "bytesRemaining", "_additionIndex"], [Array.NUMERIC, Array.DESCENDING, Array.NUMERIC, Array.NUMERIC])[0]); return (_local1); } public function getBitmapData(_arg1, _arg2:Boolean=false):BitmapData{ var key = _arg1; var clearMemory = _arg2; try { return (getBitmap(key, clearMemory).bitmapData); } catch(e:Error) { log("Failed to get bitmapData with url:", key, LOG_ERRORS); }; return (null); } public function set logFunction(_arg1:Function):void{ _logFunction = _arg1; } public function clear():void{ removeAll(); delete _allLoaders[name]; _name = null; } public function get itemsTotal():int{ return (items.length); } public function sortItemsByPriority():void{ _items.sortOn(["priority", "_additionIndex"], [(Array.NUMERIC | Array.DESCENDING), Array.NUMERIC]); } public function get stringSubstitutions():Object{ return (_stringSubstitutions); } public function get name():String{ return (_name); } public function remove(_arg1):Boolean{ var item:LoadingItem; var allDone:Boolean; var key = _arg1; try { if ((key is LoadingItem)){ item = key; } else { item = get(key); }; if (!item){ return (false); }; _removeFromItems(item); _removeFromConnections(item); item.destroy(); item = null; _onProgress(); allDone = _isAllDoneP(); if (allDone){ _onAllLoaded(); }; return (true); } catch(e:Error) { log(("Error while removing item from key:" + key), e.getStackTrace(), LOG_ERRORS); }; return (false); } public function removeAll():void{ var _local1:LoadingItem; for each (_local1 in _items.slice()) { remove(_local1); }; _items = []; _connections = []; _contents = new Dictionary(); } public function _onItemStarted(_arg1:Event):void{ var _local2:LoadingItem; _local2 = (_arg1.target as LoadingItem); log("Started loading", _local2, LOG_INFO); dispatchEvent(_arg1); } public function reload(_arg1):Boolean{ var _local2:LoadingItem; if ((_arg1 is LoadingItem)){ _local2 = _arg1; } else { _local2 = get(_arg1); }; if (!_local2){ return (false); }; _removeFromItems(_local2); _removeFromConnections(_local2); _local2.stop(); _local2.cleanListeners(); _local2.status = null; _isFinished = false; _local2._addedTime = getTimer(); _local2._additionIndex = _additionIndex++; _local2.addEventListener(Event.COMPLETE, _onItemComplete, false, int.MIN_VALUE, true); _local2.addEventListener(ERROR, _onItemError, false, 0, true); _local2.addEventListener(Event.OPEN, _onItemStarted, false, 0, true); _local2.addEventListener(ProgressEvent.PROGRESS, _onProgress, false, 0, true); _items.push(_local2); _itemsTotal = (_itemsTotal + 1); _totalWeight = (_totalWeight + _local2.weight); sortItemsByPriority(); _isFinished = false; loadNow(_local2); return (true); } public function _updateStats():void{ var _local1:Number; var _local2:int; var _local3:Number; var _local4:LoadingItem; avgLatency = 0; speedAvg = 0; _local1 = 0; _local2 = 0; _speedTotal = 0; _local3 = 0; for each (_local4 in _items) { if (((_local4._isLoaded) && (!((_local4.status == LoadingItem.STATUS_ERROR))))){ _local1 = (_local1 + _local4.latency); _local2 = (_local2 + _local4.bytesTotal); _local3++; }; }; _speedTotal = ((_local2 / 0x0400) / totalTime); avgLatency = (_local1 / _local3); speedAvg = (_speedTotal / _local3); } public function getHttpStatus(_arg1):int{ var _local2:LoadingItem; _local2 = get(_arg1); if (_local2){ return (_local2.httpStatus); }; return (-1); } public function add(_arg1, _arg2:Object=null):LoadingItem{ var _local3:LoadingItem; var _local4:String; var _local5:Array; var _local6:String; if (!_name){ throw (new Error("[BulkLoader] Cannot use an instance that has been cleared from memory (.clear())")); }; if (((!(_arg1)) || (!(String(_arg1))))){ throw (new Error("[BulkLoader] Cannot add an item with a null url")); }; _arg2 = ((_arg2) || ({})); if ((_arg1 is String)){ _arg1 = new URLRequest(BulkLoader.substituteURLString(_arg1, _stringSubstitutions)); if (_arg2[HEADERS]){ _arg1.requestHeaders = _arg2[HEADERS]; }; } else { if ((!(_arg1) is URLRequest)){ throw (new Error(("[BulkLoader] cannot add object with bad type for url:'" + _arg1.url))); }; }; _local3 = get(_arg2[ID]); if (_local3){ log((("Add received an already added id: " + _arg2[ID]) + ", not adding a new item")); return (_local3); }; if (_arg2["type"]){ _local4 = _arg2["type"].toLowerCase(); if (AVAILABLE_TYPES.indexOf(_local4) == -1){ log("add received an unknown type:", _local4, "and will cast it to text", LOG_WARNINGS); }; }; if (!_local4){ _local4 = guessType(_arg1.url); }; _additionIndex++; _local3 = new _typeClasses[_local4](_arg1, _local4, ((_instancesCreated + "_") + String(_additionIndex))); if (((!(_arg2["id"])) && (_allowsAutoIDFromFileName))){ _arg2["id"] = getFileName(_arg1.url); log("Adding automatic id from file name for item:", _local3, (("( id= " + _arg2["id"]) + " )")); }; _local5 = _local3._parseOptions(_arg2); for each (_local6 in _local5) { log(_local6, LOG_WARNINGS); }; log("Added", _local3, LOG_VERBOSE); _local3._addedTime = getTimer(); _local3._additionIndex = _additionIndex; _local3.addEventListener(Event.COMPLETE, _onItemComplete, false, int.MIN_VALUE, true); _local3.addEventListener(ERROR, _onItemError, false, 0, true); _local3.addEventListener(Event.OPEN, _onItemStarted, false, 0, true); _local3.addEventListener(ProgressEvent.PROGRESS, _onProgress, false, 0, true); _items.push(_local3); _itemsTotal = (_itemsTotal + 1); _totalWeight = (_totalWeight + _local3.weight); sortItemsByPriority(); _isFinished = false; if (!_isPaused){ _loadNext(); }; return (_local3); } public function getText(_arg1, _arg2:Boolean=false):String{ return (String(_getContentAsType(_arg1, String, _arg2))); } public function get bytesTotal():int{ return (_bytesTotal); } public function get percentLoaded():Number{ return (_percentLoaded); } public function get weightPercent():Number{ return (_weightPercent); } public function get bytesTotalCurrent():int{ return (_bytesTotalCurrent); } public function getAVM1Movie(_arg1:String, _arg2:Boolean=false):AVM1Movie{ return (AVM1Movie(_getContentAsType(_arg1, AVM1Movie, _arg2))); } public function get isFinished():Boolean{ return (_isFinished); } public function changeItemPriority(_arg1:String, _arg2:int):Boolean{ var _local3:LoadingItem; _local3 = get(_arg1); if (!_local3){ return (false); }; _local3._priority = _arg2; sortItemsByPriority(); return (true); } public function get items():Array{ return (_items.slice()); } public function getNetStream(_arg1:String, _arg2:Boolean=false):NetStream{ return (NetStream(_getContentAsType(_arg1, NetStream, _arg2))); } public function set itemsLoaded(_arg1:int):void{ _itemsLoaded = _arg1; } public function _onProgress(_arg1:Event=null):void{ var _local2:BulkProgressEvent; _local2 = getProgressForItems(_items); _bytesLoaded = _local2.bytesLoaded; _bytesTotal = _local2.bytesTotal; _weightPercent = _local2.weightPercent; _percentLoaded = _local2.percentLoaded; _bytesTotalCurrent = _local2.bytesTotalCurrent; _loadedRatio = _local2.ratioLoaded; dispatchEvent(_local2); } public function hasItem(_arg1, _arg2:Boolean=true):Boolean{ var _local3:*; var _local4:BulkLoader; if (_arg2){ _local3 = _allLoaders; } else { _local3 = [this]; }; for each (_local4 in _local3) { if (_hasItemInBulkLoader(_arg1, _local4)){ return (true); }; }; return (false); } public function _removeFromItems(_arg1:LoadingItem):Boolean{ var _local2:int; _local2 = _items.indexOf(_arg1); if (_local2 > -1){ _items.splice(_local2, 1); } else { return (false); }; if (_arg1._isLoaded){ _itemsLoaded--; }; _itemsTotal--; _totalWeight = (_totalWeight - _arg1.weight); log(("Removing " + _arg1), LOG_VERBOSE); return (true); } public function _isAllDoneP():Boolean{ return (_items.every(function (_arg1:LoadingItem, ... _args):Boolean{ return (_arg1._isLoaded); })); } public function _onItemError(_arg1:BulkErrorEvent):void{ var item:LoadingItem; var bulkErrorEvent:BulkErrorEvent; var evt = _arg1; item = (evt.target as LoadingItem); log(((("After " + item.numTries) + " I am giving up on ") + item.url.url), LOG_ERRORS); log("Error loading", item, LOG_ERRORS); _removeFromConnections(item); evt.stopPropagation(); bulkErrorEvent = new BulkErrorEvent(BulkErrorEvent.ERROR); bulkErrorEvent.errors = _items.filter(function (_arg1:LoadingItem, ... _args):Boolean{ return ((_arg1.status == LoadingItem.STATUS_ERROR)); }); dispatchEvent(bulkErrorEvent); } public function pauseAll():void{ var _local1:LoadingItem; for each (_local1 in _items) { pause(_local1); }; _isRunning = false; _isPaused = true; log("Stopping all items", LOG_INFO); } public function getNotLoadedItems():Array{ return (_items.filter(function (_arg1:LoadingItem, ... _args):Boolean{ return (!((_arg1.status == LoadingItem.STATUS_FINISHED))); })); } public function getXML(_arg1, _arg2:Boolean=false):XML{ return (XML(_getContentAsType(_arg1, XML, _arg2))); } public function get totalWeight():int{ return (_totalWeight); } public function get itemsLoaded():int{ return (_itemsLoaded); } public function getMovieClip(_arg1:String, _arg2:Boolean=false):MovieClip{ return (MovieClip(_getContentAsType(_arg1, MovieClip, _arg2))); } public function get numConnections():int{ return (_numConnections); } public function getStats():String{ var stats:Array; var itemsInfo:Array; var statsString:String; stats = []; stats.push("\n************************************"); stats.push((("All items loaded(" + itemsTotal) + ")")); stats.push(("Total time(s): " + totalTime)); stats.push(("Average latency(s): " + truncateNumber(avgLatency))); stats.push(("Average speed(kb/s): " + truncateNumber(speedAvg))); stats.push(("Median speed(kb/s): " + truncateNumber(_speedTotal))); stats.push(("KiloBytes total: " + truncateNumber((bytesTotal / 0x0400)))); itemsInfo = _items.map(function (_arg1:LoadingItem, ... _args):String{ return (("\t" + _arg1.getStats())); }); stats.push(itemsInfo.join("\n")); stats.push("************************************"); statsString = stats.join("\n"); log(statsString, LOG_VERBOSE); return (statsString); } public function pause(_arg1, _arg2:Boolean=false):Boolean{ var _local3:LoadingItem; var _local4:Boolean; _local3 = ((_arg1 is LoadingItem)) ? _arg1 : get(_arg1); if (!_local3){ return (false); }; _local3.stop(); log("STOPPED ITEM:", _local3, LOG_INFO); _local4 = _removeFromConnections(_local3); if (_arg2){ _loadNext(); }; return (_local4); } public static function __debug_printStackTrace():void{ try { throw (new Error("stack trace")); } catch(e:Error) { trace(e.getStackTrace()); }; } public static function pauseAllLoaders():void{ var _local1:BulkLoader; for each (_local1 in _allLoaders) { _local1.pauseAll(); }; } public static function _hasItemInBulkLoader(_arg1, _arg2:BulkLoader):Boolean{ var _local3:LoadingItem; _local3 = _arg2.get(_arg1); if (((_local3) && (_local3._isLoaded))){ return (true); }; return (false); } public static function getUniqueName():String{ return (("BulkLoader-" + _instancesCreated)); } public static function substituteURLString(_arg1:String, _arg2:Object):String{ var _local3:RegExp; var _local4:Object; var _local5:String; var _local6:Array; var _local7:int; var _local8:Array; var _local9:Object; var _local10:Object; var _local11:String; var _local12:String; if (!_arg2){ return (_arg1); }; _local3 = /(?P<var_name>\{\s*[^\}]*\})/g; _local4 = _local3.exec(_arg1); _local5 = (_local4) ? _local4.var_name : null; _local6 = []; _local7 = 0; while (((Boolean(_local4)) && (Boolean(_local4.var_name)))) { if (_local4.var_name){ _local5 = _local4.var_name; _local5 = _local5.replace("{", ""); _local5 = _local5.replace("}", ""); _local5 = _local5.replace(/\s*/g, ""); }; _local6.push({start:_local4.index, end:(_local4.index + _local4.var_name.length), changeTo:_arg2[_local5]}); _local7++; if (_local7 > 400){ break; }; _local4 = _local3.exec(_arg1); _local5 = (_local4) ? _local4.var_name : null; }; if (_local6.length == 0){ return (_arg1); }; _local8 = []; _local11 = _arg1.substr(0, _local6[0].start); for each (_local10 in _local6) { if (_local9){ _local11 = _arg1.substring(_local9.end, _local10.start); }; _local8.push(_local11); _local8.push(_local10.changeTo); _local9 = _local10; }; _local8.push(_arg1.substring(_local10.end)); return (_local8.join("")); } public static function createUniqueNamedLoader(_arg1:int=7, _arg2:int=20):BulkLoader{ return (new BulkLoader(BulkLoader.getUniqueName(), _arg1, _arg2)); } public static function whichLoaderHasItem(_arg1):BulkLoader{ var _local2:BulkLoader; for each (_local2 in _allLoaders) { if (BulkLoader._hasItemInBulkLoader(_arg1, _local2)){ return (_local2); }; }; return (null); } public static function removeAllLoaders():void{ var _local1:BulkLoader; for each (_local1 in _allLoaders) { _local1.removeAll(); _local1.clear(); _local1 = null; }; _allLoaders = {}; } public static function __debug_print_num_loaders():void{ var _local1:int; var _local2:String; _local1 = 0; for each (_local2 in BulkLoader._allLoaders) { _local1++; }; trace("BulkLoader has ", _local1, "instances"); } public static function getFileName(_arg1:String):String{ var _local2:int; var _local3:String; var _local4:int; var _local5:String; if (_arg1.lastIndexOf("/") == (_arg1.length - 1)){ return (getFileName(_arg1.substring(0, (_arg1.length - 1)))); }; _local2 = (_arg1.lastIndexOf("/") + 1); _local3 = _arg1.substring(_local2); _local4 = _local3.indexOf("."); if (_local4 == -1){ if (_local3.indexOf("?") > -1){ _local4 = _local3.indexOf("?"); } else { _local4 = _local3.length; }; }; _local5 = _local3.substring(0, _local4); return (_local5); } public static function guessType(_arg1:String):String{ var _local2:String; var _local3:String; var _local4:String; var _local5:String; var _local6:String; _local2 = ((_arg1.indexOf("?") > -1)) ? _arg1.substring(0, _arg1.indexOf("?")) : _arg1; _local3 = _local2.substring((_local2.lastIndexOf(".") + 1)).toLowerCase(); if (!Boolean(_local3)){ _local3 = BulkLoader.TYPE_TEXT; }; if ((((_local3 == BulkLoader.TYPE_IMAGE)) || ((BulkLoader.IMAGE_EXTENSIONS.indexOf(_local3) > -1)))){ _local4 = BulkLoader.TYPE_IMAGE; } else { if ((((_local3 == BulkLoader.TYPE_SOUND)) || ((BulkLoader.SOUND_EXTENSIONS.indexOf(_local3) > -1)))){ _local4 = BulkLoader.TYPE_SOUND; } else { if ((((_local3 == BulkLoader.TYPE_VIDEO)) || ((BulkLoader.VIDEO_EXTENSIONS.indexOf(_local3) > -1)))){ _local4 = BulkLoader.TYPE_VIDEO; } else { if ((((_local3 == BulkLoader.TYPE_XML)) || ((BulkLoader.XML_EXTENSIONS.indexOf(_local3) > -1)))){ _local4 = BulkLoader.TYPE_XML; } else { if ((((_local3 == BulkLoader.TYPE_MOVIECLIP)) || ((BulkLoader.MOVIECLIP_EXTENSIONS.indexOf(_local3) > -1)))){ _local4 = BulkLoader.TYPE_MOVIECLIP; } else { for (_local5 in _customTypesExtensions) { for each (_local6 in _customTypesExtensions[_local5]) { if (_local6 == _local3){ _local4 = _local5; break; }; if (_local4){ break; }; }; }; if (!_local4){ _local4 = BulkLoader.TYPE_TEXT; }; }; }; }; }; }; return (_local4); } public static function getLoader(_arg1:String):BulkLoader{ return ((BulkLoader._allLoaders[_arg1] as BulkLoader)); } public static function registerNewType(_arg1:String, _arg2:String, _arg3:Class):Boolean{ var _local4:Array; var _local5:Object; if (_arg1.charAt(0) == "."){ _arg1 = _arg1.substring(1); }; if (AVAILABLE_TYPES.indexOf(_arg2) == -1){ if (((!(Boolean(_arg3))) || (!((_arg3 is LoadingItem))))){ throw (new Error("[BulkLoader]: When adding a new type and extension, you must determine which class to use")); }; _typeClasses[_arg2] = _arg3; if (!_customTypesExtensions[_arg2]){ _customTypesExtensions[_arg2] = []; AVAILABLE_TYPES.push(_arg2); }; _customTypesExtensions[_arg2].push(_arg1); return (true); }; _local5 = {IMAGE_EXTENSIONS:TYPE_IMAGE, VIDEO_EXTENSIONS:TYPE_VIDEO, SOUND_EXTENSIONS:TYPE_SOUND, TEXT_EXTENSIONS:TYPE_TEXT}; _local4 = _local5[_arg2]; if (((_local4) && ((_local4.indexOf(_arg1) == -1)))){ _local4.push(_arg1); return (true); }; return (false); } public static function __debug_print_loaders():void{ var theNames:Array; var instNames:String; theNames = []; for each (instNames in BulkLoader._allLoaders) { theNames.push(instNames); }; theNames.sort(); trace("All loaders"); theNames.forEach(function (_arg1, ... _args):void{ trace("\t", _arg1); }); trace("==========="); } public static function truncateNumber(_arg1:Number, _arg2:int=2):Number{ var _local3:int; _local3 = Math.pow(10, _arg2); return ((Math.round((_arg1 * _local3)) / _local3)); } } }//package br.com.stimuli.loading
Section 10
//BulkProgressEvent (br.com.stimuli.loading.BulkProgressEvent) package br.com.stimuli.loading { import flash.events.*; public class BulkProgressEvent extends ProgressEvent { public var name:String; public var bytesTotalCurrent:int; public var itemsTotal:int; public var itemsLoaded:int; public var _percentLoaded:Number; public var _weightPercent:Number; public var _ratioLoaded:Number; public static const COMPLETE:String = "complete"; public static const PROGRESS:String = "progress"; public function BulkProgressEvent(_arg1:String, _arg2:Boolean=true, _arg3:Boolean=false){ super(_arg1, _arg2, _arg3); this.name = _arg1; } public function get percentLoaded():Number{ return (_percentLoaded); } public function set ratioLoaded(_arg1:Number):void{ if (((isNaN(_arg1)) || (!(isFinite(_arg1))))){ _arg1 = 0; }; _ratioLoaded = _arg1; } public function loadingStatus():String{ var _local1:Array; _local1 = []; _local1.push(("bytesLoaded: " + bytesLoaded)); _local1.push(("bytesTotal: " + bytesTotal)); _local1.push(("itemsLoaded: " + itemsLoaded)); _local1.push(("itemsTotal: " + itemsTotal)); _local1.push(("bytesTotalCurrent: " + bytesTotalCurrent)); _local1.push(("percentLoaded: " + BulkLoader.truncateNumber(percentLoaded))); _local1.push(("weightPercent: " + BulkLoader.truncateNumber(weightPercent))); _local1.push(("ratioLoaded: " + BulkLoader.truncateNumber(ratioLoaded))); return ((("BulkProgressEvent " + _local1.join(", ")) + ";")); } public function set weightPercent(_arg1:Number):void{ if (((isNaN(_arg1)) || (!(isFinite(_arg1))))){ _arg1 = 0; }; _weightPercent = _arg1; } public function set percentLoaded(_arg1:Number):void{ if (((isNaN(_arg1)) || (!(isFinite(_arg1))))){ _arg1 = 0; }; _percentLoaded = _arg1; } override public function clone():Event{ var _local1:BulkProgressEvent; _local1 = new BulkProgressEvent(name, bubbles, cancelable); _local1.setInfo(bytesLoaded, bytesTotal, bytesTotalCurrent, itemsLoaded, itemsTotal, weightPercent); return (_local1); } override public function toString():String{ return (super.toString()); } public function get weightPercent():Number{ return (_weightPercent); } public function setInfo(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:Number):void{ this.bytesLoaded = _arg1; this.bytesTotal = _arg2; this.bytesTotalCurrent = _arg3; this.itemsLoaded = _arg4; this.itemsTotal = _arg5; this.weightPercent = _arg6; this.percentLoaded = ((_arg2 > 0)) ? (_arg1 / _arg2) : 0; ratioLoaded = ((_arg5 == 0)) ? 0 : (_arg4 / _arg5); } public function get ratioLoaded():Number{ return (_ratioLoaded); } } }//package br.com.stimuli.loading
Section 11
//AuxFunctions (caurina.transitions.AuxFunctions) package caurina.transitions { public class AuxFunctions { public static function getObjectLength(_arg1:Object):uint{ var _local2:uint; var _local3:String; _local2 = 0; for (_local3 in _arg1) { _local2++; }; return (_local2); } public static function isInArray(_arg1:String, _arg2:Array):Boolean{ var _local3:uint; var _local4:uint; _local3 = _arg2.length; _local4 = 0; while (_local4 < _local3) { if (_arg2[_local4] == _arg1){ return (true); }; _local4++; }; return (false); } public static function numberToG(_arg1:Number):Number{ return (((_arg1 & 0xFF00) >> 8)); } public static function numberToB(_arg1:Number):Number{ return ((_arg1 & 0xFF)); } public static function numberToR(_arg1:Number):Number{ return (((_arg1 & 0xFF0000) >> 16)); } } }//package caurina.transitions
Section 12
//Equations (caurina.transitions.Equations) package caurina.transitions { public class Equations { public function Equations(){ trace("Equations is a static class and should not be instantiated."); } public static function easeOutBounce(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / _arg4); if (_arg1 < (1 / 2.75)){ return (((_arg3 * ((7.5625 * _arg1) * _arg1)) + _arg2)); }; if (_arg1 < (2 / 2.75)){ _arg1 = (_arg1 - (1.5 / 2.75)); return (((_arg3 * (((7.5625 * _arg1) * _arg1) + 0.75)) + _arg2)); }; if (_arg1 < (2.5 / 2.75)){ _arg1 = (_arg1 - (2.25 / 2.75)); return (((_arg3 * (((7.5625 * _arg1) * _arg1) + 0.9375)) + _arg2)); }; _arg1 = (_arg1 - (2.625 / 2.75)); return (((_arg3 * (((7.5625 * _arg1) * _arg1) + 0.984375)) + _arg2)); } public static function easeInOutElastic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=NaN, _arg6:Number=NaN):Number{ var _local7:Number; if (_arg1 == 0){ return (_arg2); }; _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 == 2){ return ((_arg2 + _arg3)); }; if (!_arg6){ _arg6 = (_arg4 * (0.3 * 1.5)); }; if (((!(_arg5)) || ((_arg5 < Math.abs(_arg3))))){ _arg5 = _arg3; _local7 = (_arg6 / 4); } else { _local7 = ((_arg6 / (2 * Math.PI)) * Math.asin((_arg3 / _arg5))); }; if (_arg1 < 1){ --_arg1; return (((-0.5 * ((_arg5 * Math.pow(2, (10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _arg6)))) + _arg2)); }; --_arg1; return ((((((_arg5 * Math.pow(2, (-10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _arg6))) * 0.5) + _arg3) + _arg2)); } public static function easeInOutQuad(_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)); } public static function easeInOutBounce(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ if (_arg1 < (_arg4 / 2)){ return (((easeInBounce((_arg1 * 2), 0, _arg3, _arg4) * 0.5) + _arg2)); }; return ((((easeOutBounce(((_arg1 * 2) - _arg4), 0, _arg3, _arg4) * 0.5) + (_arg3 * 0.5)) + _arg2)); } public static function easeInOutBack(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=NaN):Number{ if (!_arg5){ _arg5 = 1.70158; }; _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ _arg5 = (_arg5 * 1.525); return ((((_arg3 / 2) * ((_arg1 * _arg1) * (((_arg5 + 1) * _arg1) - _arg5))) + _arg2)); }; _arg1 = (_arg1 - 2); _arg5 = (_arg5 * 1.525); return ((((_arg3 / 2) * (((_arg1 * _arg1) * (((_arg5 + 1) * _arg1) + _arg5)) + 2)) + _arg2)); } public static function easeOutInCubic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutCubic((_arg1 * 2), _arg2, (_arg3 / 2), _arg4)); }; return (easeInCubic(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4)); } public static function easeNone(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((_arg3 * _arg1) / _arg4) + _arg2)); } public static function easeOutBack(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=NaN):Number{ if (!_arg5){ _arg5 = 1.70158; }; _arg1 = ((_arg1 / _arg4) - 1); return (((_arg3 * (((_arg1 * _arg1) * (((_arg5 + 1) * _arg1) + _arg5)) + 1)) + _arg2)); } public static function easeInOutSine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((-(_arg3) / 2) * (Math.cos(((Math.PI * _arg1) / _arg4)) - 1)) + _arg2)); } public static function easeInBack(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=NaN):Number{ if (!_arg5){ _arg5 = 1.70158; }; _arg1 = (_arg1 / _arg4); return (((((_arg3 * _arg1) * _arg1) * (((_arg5 + 1) * _arg1) - _arg5)) + _arg2)); } public static function easeInQuart(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / _arg4); return ((((((_arg3 * _arg1) * _arg1) * _arg1) * _arg1) + _arg2)); } public static function easeOutInQuint(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutQuint((_arg1 * 2), _arg2, (_arg3 / 2), _arg4)); }; return (easeInQuint(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4)); } public static function easeOutInBounce(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutBounce((_arg1 * 2), _arg2, (_arg3 / 2), _arg4)); }; return (easeInBounce(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4)); } public static function init():void{ Tweener.registerTransition("easenone", easeNone); Tweener.registerTransition("linear", easeNone); Tweener.registerTransition("easeinquad", easeInQuad); Tweener.registerTransition("easeoutquad", easeOutQuad); Tweener.registerTransition("easeinoutquad", easeInOutQuad); Tweener.registerTransition("easeoutinquad", easeOutInQuad); Tweener.registerTransition("easeincubic", easeInCubic); Tweener.registerTransition("easeoutcubic", easeOutCubic); Tweener.registerTransition("easeinoutcubic", easeInOutCubic); Tweener.registerTransition("easeoutincubic", easeOutInCubic); Tweener.registerTransition("easeinquart", easeInQuart); Tweener.registerTransition("easeoutquart", easeOutQuart); Tweener.registerTransition("easeinoutquart", easeInOutQuart); Tweener.registerTransition("easeoutinquart", easeOutInQuart); Tweener.registerTransition("easeinquint", easeInQuint); Tweener.registerTransition("easeoutquint", easeOutQuint); Tweener.registerTransition("easeinoutquint", easeInOutQuint); Tweener.registerTransition("easeoutinquint", easeOutInQuint); Tweener.registerTransition("easeinsine", easeInSine); Tweener.registerTransition("easeoutsine", easeOutSine); Tweener.registerTransition("easeinoutsine", easeInOutSine); Tweener.registerTransition("easeoutinsine", easeOutInSine); Tweener.registerTransition("easeincirc", easeInCirc); Tweener.registerTransition("easeoutcirc", easeOutCirc); Tweener.registerTransition("easeinoutcirc", easeInOutCirc); Tweener.registerTransition("easeoutincirc", easeOutInCirc); Tweener.registerTransition("easeinexpo", easeInExpo); Tweener.registerTransition("easeoutexpo", easeOutExpo); Tweener.registerTransition("easeinoutexpo", easeInOutExpo); Tweener.registerTransition("easeoutinexpo", easeOutInExpo); Tweener.registerTransition("easeinelastic", easeInElastic); Tweener.registerTransition("easeoutelastic", easeOutElastic); Tweener.registerTransition("easeinoutelastic", easeInOutElastic); Tweener.registerTransition("easeoutinelastic", easeOutInElastic); Tweener.registerTransition("easeinback", easeInBack); Tweener.registerTransition("easeoutback", easeOutBack); Tweener.registerTransition("easeinoutback", easeInOutBack); Tweener.registerTransition("easeoutinback", easeOutInBack); Tweener.registerTransition("easeinbounce", easeInBounce); Tweener.registerTransition("easeoutbounce", easeOutBounce); Tweener.registerTransition("easeinoutbounce", easeInOutBounce); Tweener.registerTransition("easeoutinbounce", easeOutInBounce); } public static function easeOutExpo(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return (((_arg1)==_arg4) ? (_arg2 + _arg3) : (((_arg3 * 1.001) * (-(Math.pow(2, ((-10 * _arg1) / _arg4))) + 1)) + _arg2)); } public static function easeOutInBack(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=NaN):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutBack((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5)); }; return (easeInBack(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5)); } public static function easeInExpo(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return (((_arg1)==0) ? _arg2 : (((_arg3 * Math.pow(2, (10 * ((_arg1 / _arg4) - 1)))) + _arg2) - (_arg3 * 0.001))); } public static function easeInCubic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / _arg4); return (((((_arg3 * _arg1) * _arg1) * _arg1) + _arg2)); } public static function easeInQuint(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / _arg4); return (((((((_arg3 * _arg1) * _arg1) * _arg1) * _arg1) * _arg1) + _arg2)); } public static function easeInOutCirc(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return ((((-(_arg3) / 2) * (Math.sqrt((1 - (_arg1 * _arg1))) - 1)) + _arg2)); }; _arg1 = (_arg1 - 2); return ((((_arg3 / 2) * (Math.sqrt((1 - (_arg1 * _arg1))) + 1)) + _arg2)); } public static function easeInQuad(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / _arg4); return ((((_arg3 * _arg1) * _arg1) + _arg2)); } public static function easeInBounce(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return (((_arg3 - easeOutBounce((_arg4 - _arg1), 0, _arg3, _arg4)) + _arg2)); } public static function easeOutInExpo(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutExpo((_arg1 * 2), _arg2, (_arg3 / 2), _arg4)); }; return (easeInExpo(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4)); } public static function easeOutQuart(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = ((_arg1 / _arg4) - 1); return (((-(_arg3) * ((((_arg1 * _arg1) * _arg1) * _arg1) - 1)) + _arg2)); } public static function easeInSine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((-(_arg3) * Math.cos(((_arg1 / _arg4) * (Math.PI / 2)))) + _arg3) + _arg2)); } public static function easeInOutQuart(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return (((((((_arg3 / 2) * _arg1) * _arg1) * _arg1) * _arg1) + _arg2)); }; _arg1 = (_arg1 - 2); return ((((-(_arg3) / 2) * ((((_arg1 * _arg1) * _arg1) * _arg1) - 2)) + _arg2)); } public static function easeOutQuad(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / _arg4); return ((((-(_arg3) * _arg1) * (_arg1 - 2)) + _arg2)); } public static function easeOutInElastic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=NaN, _arg6:Number=NaN):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutElastic((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5, _arg6)); }; return (easeInElastic(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5, _arg6)); } public static function easeInElastic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=NaN, _arg6:Number=NaN):Number{ var _local7:Number; if (_arg1 == 0){ return (_arg2); }; _arg1 = (_arg1 / _arg4); if (_arg1 == 1){ return ((_arg2 + _arg3)); }; if (!_arg6){ _arg6 = (_arg4 * 0.3); }; if (((!(_arg5)) || ((_arg5 < Math.abs(_arg3))))){ _arg5 = _arg3; _local7 = (_arg6 / 4); } else { _local7 = ((_arg6 / (2 * Math.PI)) * Math.asin((_arg3 / _arg5))); }; --_arg1; return ((-(((_arg5 * Math.pow(2, (10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _arg6)))) + _arg2)); } public static function easeOutCubic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = ((_arg1 / _arg4) - 1); return (((_arg3 * (((_arg1 * _arg1) * _arg1) + 1)) + _arg2)); } public static function easeOutQuint(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = ((_arg1 / _arg4) - 1); return (((_arg3 * (((((_arg1 * _arg1) * _arg1) * _arg1) * _arg1) + 1)) + _arg2)); } public static function easeOutInQuad(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutQuad((_arg1 * 2), _arg2, (_arg3 / 2), _arg4)); }; return (easeInQuad(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4)); } public static function easeOutSine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return (((_arg3 * Math.sin(((_arg1 / _arg4) * (Math.PI / 2)))) + _arg2)); } public static function easeInOutCubic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return ((((((_arg3 / 2) * _arg1) * _arg1) * _arg1) + _arg2)); }; _arg1 = (_arg1 - 2); return ((((_arg3 / 2) * (((_arg1 * _arg1) * _arg1) + 2)) + _arg2)); } public static function easeInOutQuint(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return ((((((((_arg3 / 2) * _arg1) * _arg1) * _arg1) * _arg1) * _arg1) + _arg2)); }; _arg1 = (_arg1 - 2); return ((((_arg3 / 2) * (((((_arg1 * _arg1) * _arg1) * _arg1) * _arg1) + 2)) + _arg2)); } public static function easeInCirc(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / _arg4); return (((-(_arg3) * (Math.sqrt((1 - (_arg1 * _arg1))) - 1)) + _arg2)); } public static function easeOutInSine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutSine((_arg1 * 2), _arg2, (_arg3 / 2), _arg4)); }; return (easeInSine(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4)); } public static function easeInOutExpo(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ if (_arg1 == 0){ return (_arg2); }; if (_arg1 == _arg4){ return ((_arg2 + _arg3)); }; _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return (((((_arg3 / 2) * Math.pow(2, (10 * (_arg1 - 1)))) + _arg2) - (_arg3 * 0.0005))); }; --_arg1; return (((((_arg3 / 2) * 1.0005) * (-(Math.pow(2, (-10 * _arg1))) + 2)) + _arg2)); } public static function easeOutElastic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=NaN, _arg6:Number=NaN):Number{ var _local7:Number; if (_arg1 == 0){ return (_arg2); }; _arg1 = (_arg1 / _arg4); if (_arg1 == 1){ return ((_arg2 + _arg3)); }; if (!_arg6){ _arg6 = (_arg4 * 0.3); }; if (((!(_arg5)) || ((_arg5 < Math.abs(_arg3))))){ _arg5 = _arg3; _local7 = (_arg6 / 4); } else { _local7 = ((_arg6 / (2 * Math.PI)) * Math.asin((_arg3 / _arg5))); }; return (((((_arg5 * Math.pow(2, (-10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _arg6))) + _arg3) + _arg2)); } public static function easeOutCirc(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = ((_arg1 / _arg4) - 1); return (((_arg3 * Math.sqrt((1 - (_arg1 * _arg1)))) + _arg2)); } public static function easeOutInQuart(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutQuart((_arg1 * 2), _arg2, (_arg3 / 2), _arg4)); }; return (easeInQuart(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4)); } public static function easeOutInCirc(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ if (_arg1 < (_arg4 / 2)){ return (easeOutCirc((_arg1 * 2), _arg2, (_arg3 / 2), _arg4)); }; return (easeInCirc(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4)); } } }//package caurina.transitions
Section 13
//PropertyInfoObj (caurina.transitions.PropertyInfoObj) package caurina.transitions { public class PropertyInfoObj { public var modifierParameters:Array; public var valueComplete:Number; public var modifierFunction:Function; public var hasModifier:Boolean; public var valueStart:Number; public function PropertyInfoObj(_arg1:Number, _arg2:Number, _arg3:Function, _arg4:Array){ valueStart = _arg1; valueComplete = _arg2; hasModifier = Boolean(_arg3); modifierFunction = _arg3; modifierParameters = _arg4; } public function toString():String{ var _local1:String; _local1 = "\n[PropertyInfoObj "; _local1 = (_local1 + ("valueStart:" + String(valueStart))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("valueComplete:" + String(valueComplete))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("modifierFunction:" + String(modifierFunction))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("modifierParameters:" + String(modifierParameters))); _local1 = (_local1 + "]\n"); return (_local1); } public function clone():PropertyInfoObj{ var _local1:PropertyInfoObj; _local1 = new PropertyInfoObj(valueStart, valueComplete, modifierFunction, modifierParameters); return (_local1); } } }//package caurina.transitions
Section 14
//SpecialPropertiesDefault (caurina.transitions.SpecialPropertiesDefault) package caurina.transitions { import flash.geom.*; import flash.media.*; import flash.filters.*; public class SpecialPropertiesDefault { public function SpecialPropertiesDefault(){ trace("SpecialProperties is a static class and should not be instantiated."); } public static function _sound_volume_get(_arg1:Object):Number{ return (_arg1.soundTransform.volume); } public static function _color_splitter(_arg1):Array{ var _local2:Array; _local2 = new Array(); if (_arg1 == null){ _local2.push({name:"_color_ra", value:1}); _local2.push({name:"_color_rb", value:0}); _local2.push({name:"_color_ga", value:1}); _local2.push({name:"_color_gb", value:0}); _local2.push({name:"_color_ba", value:1}); _local2.push({name:"_color_bb", value:0}); } else { _local2.push({name:"_color_ra", value:0}); _local2.push({name:"_color_rb", value:AuxFunctions.numberToR(_arg1)}); _local2.push({name:"_color_ga", value:0}); _local2.push({name:"_color_gb", value:AuxFunctions.numberToG(_arg1)}); _local2.push({name:"_color_ba", value:0}); _local2.push({name:"_color_bb", value:AuxFunctions.numberToB(_arg1)}); }; return (_local2); } public static function frame_get(_arg1:Object):Number{ return (_arg1.currentFrame); } public static function _sound_pan_get(_arg1:Object):Number{ return (_arg1.soundTransform.pan); } public static function _color_property_get(_arg1:Object, _arg2:Array):Number{ return (_arg1.transform.colorTransform[_arg2[0]]); } public static function _sound_volume_set(_arg1:Object, _arg2:Number):void{ var _local3:SoundTransform; _local3 = _arg1.soundTransform; _local3.volume = _arg2; _arg1.soundTransform = _local3; } public static function _autoAlpha_get(_arg1:Object):Number{ return (_arg1.alpha); } public static function _filter_splitter(_arg1:BitmapFilter):Array{ var _local2:Array; _local2 = new Array(); if ((_arg1 is BlurFilter)){ _local2.push({name:"_blur_blurX", value:BlurFilter(_arg1).blurX}); _local2.push({name:"_blur_blurY", value:BlurFilter(_arg1).blurY}); _local2.push({name:"_blur_quality", value:BlurFilter(_arg1).quality}); } else { trace("??"); }; return (_local2); } public static function init():void{ Tweener.registerSpecialProperty("_frame", frame_get, frame_set); Tweener.registerSpecialProperty("_sound_volume", _sound_volume_get, _sound_volume_set); Tweener.registerSpecialProperty("_sound_pan", _sound_pan_get, _sound_pan_set); Tweener.registerSpecialProperty("_color_ra", _color_property_get, _color_property_set, ["redMultiplier"]); Tweener.registerSpecialProperty("_color_rb", _color_property_get, _color_property_set, ["redOffset"]); Tweener.registerSpecialProperty("_color_ga", _color_property_get, _color_property_set, ["greenMultiplier"]); Tweener.registerSpecialProperty("_color_gb", _color_property_get, _color_property_set, ["greenOffset"]); Tweener.registerSpecialProperty("_color_ba", _color_property_get, _color_property_set, ["blueMultiplier"]); Tweener.registerSpecialProperty("_color_bb", _color_property_get, _color_property_set, ["blueOffset"]); Tweener.registerSpecialProperty("_color_aa", _color_property_get, _color_property_set, ["alphaMultiplier"]); Tweener.registerSpecialProperty("_color_ab", _color_property_get, _color_property_set, ["alphaOffset"]); Tweener.registerSpecialProperty("_autoAlpha", _autoAlpha_get, _autoAlpha_set); Tweener.registerSpecialPropertySplitter("_color", _color_splitter); Tweener.registerSpecialPropertySplitter("_colorTransform", _colorTransform_splitter); Tweener.registerSpecialPropertySplitter("_scale", _scale_splitter); Tweener.registerSpecialProperty("_blur_blurX", _filter_property_get, _filter_property_set, [BlurFilter, "blurX"]); Tweener.registerSpecialProperty("_blur_blurY", _filter_property_get, _filter_property_set, [BlurFilter, "blurY"]); Tweener.registerSpecialProperty("_blur_quality", _filter_property_get, _filter_property_set, [BlurFilter, "quality"]); Tweener.registerSpecialPropertySplitter("_filter", _filter_splitter); Tweener.registerSpecialPropertyModifier("_bezier", _bezier_modifier, _bezier_get); } public static function _sound_pan_set(_arg1:Object, _arg2:Number):void{ var _local3:SoundTransform; _local3 = _arg1.soundTransform; _local3.pan = _arg2; _arg1.soundTransform = _local3; } public static function _color_property_set(_arg1:Object, _arg2:Number, _arg3:Array):void{ var _local4:ColorTransform; _local4 = _arg1.transform.colorTransform; _local4[_arg3[0]] = _arg2; _arg1.transform.colorTransform = _local4; } public static function _filter_property_get(_arg1:Object, _arg2:Array):Number{ var _local3:Array; var _local4:uint; var _local5:Object; var _local6:String; var _local7:Object; _local3 = _arg1.filters; _local5 = _arg2[0]; _local6 = _arg2[1]; _local4 = 0; while (_local4 < _local3.length) { if ((((_local3[_local4] is BlurFilter)) && ((_local5 == BlurFilter)))){ return (_local3[_local4][_local6]); }; _local4++; }; switch (_local5){ case BlurFilter: _local7 = {blurX:0, blurY:0, quality:NaN}; break; }; return (_local7[_local6]); } public static function _bezier_get(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Array):Number{ var _local5:uint; var _local6:Number; var _local7:Number; var _local8:Number; if (_arg4.length == 1){ return ((_arg1 + (_arg3 * (((2 * (1 - _arg3)) * (_arg4[0] - _arg1)) + (_arg3 * (_arg2 - _arg1)))))); }; _local5 = Math.floor((_arg3 * _arg4.length)); _local6 = ((_arg3 - (_local5 * (1 / _arg4.length))) * _arg4.length); if (_local5 == 0){ _local7 = _arg1; _local8 = ((_arg4[0] + _arg4[1]) / 2); } else { if (_local5 == (_arg4.length - 1)){ _local7 = ((_arg4[(_local5 - 1)] + _arg4[_local5]) / 2); _local8 = _arg2; } else { _local7 = ((_arg4[(_local5 - 1)] + _arg4[_local5]) / 2); _local8 = ((_arg4[_local5] + _arg4[(_local5 + 1)]) / 2); }; }; return ((_local7 + (_local6 * (((2 * (1 - _local6)) * (_arg4[_local5] - _local7)) + (_local6 * (_local8 - _local7)))))); } public static function frame_set(_arg1:Object, _arg2:Number):void{ _arg1.gotoAndStop(Math.round(_arg2)); } public static function _filter_property_set(_arg1:Object, _arg2:Number, _arg3:Array):void{ var _local4:Array; var _local5:uint; var _local6:Object; var _local7:String; var _local8:BitmapFilter; _local4 = _arg1.filters; _local6 = _arg3[0]; _local7 = _arg3[1]; _local5 = 0; while (_local5 < _local4.length) { if ((((_local4[_local5] is BlurFilter)) && ((_local6 == BlurFilter)))){ _local4[_local5][_local7] = _arg2; _arg1.filters = _local4; return; }; _local5++; }; if (_local4 == null){ _local4 = new Array(); }; switch (_local6){ case BlurFilter: _local8 = new BlurFilter(0, 0); break; }; _local8[_local7] = _arg2; _local4.push(_local8); _arg1.filters = _local4; } public static function _autoAlpha_set(_arg1:Object, _arg2:Number):void{ _arg1.alpha = _arg2; _arg1.visible = (_arg2 > 0); } public static function _scale_splitter(_arg1:Number):Array{ var _local2:Array; _local2 = new Array(); _local2.push({name:"scaleX", value:_arg1}); _local2.push({name:"scaleY", value:_arg1}); return (_local2); } public static function _colorTransform_splitter(_arg1):Array{ var _local2:Array; _local2 = new Array(); if (_arg1 == null){ _local2.push({name:"_color_ra", value:1}); _local2.push({name:"_color_rb", value:0}); _local2.push({name:"_color_ga", value:1}); _local2.push({name:"_color_gb", value:0}); _local2.push({name:"_color_ba", value:1}); _local2.push({name:"_color_bb", value:0}); } else { if (_arg1.ra != undefined){ _local2.push({name:"_color_ra", value:_arg1.ra}); }; if (_arg1.rb != undefined){ _local2.push({name:"_color_rb", value:_arg1.rb}); }; if (_arg1.ga != undefined){ _local2.push({name:"_color_ba", value:_arg1.ba}); }; if (_arg1.gb != undefined){ _local2.push({name:"_color_bb", value:_arg1.bb}); }; if (_arg1.ba != undefined){ _local2.push({name:"_color_ga", value:_arg1.ga}); }; if (_arg1.bb != undefined){ _local2.push({name:"_color_gb", value:_arg1.gb}); }; if (_arg1.aa != undefined){ _local2.push({name:"_color_aa", value:_arg1.aa}); }; if (_arg1.ab != undefined){ _local2.push({name:"_color_ab", value:_arg1.ab}); }; }; return (_local2); } public static function _bezier_modifier(_arg1):Array{ var _local2:Array; var _local3:Array; var _local4:uint; var _local5:String; var _local6:Object; _local2 = []; if ((_arg1 is Array)){ _local3 = _arg1; } else { _local3 = [_arg1]; }; _local6 = {}; _local4 = 0; while (_local4 < _local3.length) { for (_local5 in _local3[_local4]) { if (_local6[_local5] == undefined){ _local6[_local5] = []; }; _local6[_local5].push(_local3[_local4][_local5]); }; _local4++; }; for (_local5 in _local6) { _local2.push({name:_local5, parameters:_local6[_local5]}); }; return (_local2); } } }//package caurina.transitions
Section 15
//SpecialProperty (caurina.transitions.SpecialProperty) package caurina.transitions { public class SpecialProperty { public var parameters:Array; public var getValue:Function; public var setValue:Function; public function SpecialProperty(_arg1:Function, _arg2:Function, _arg3:Array=null){ getValue = _arg1; setValue = _arg2; parameters = _arg3; } public function toString():String{ var _local1:String; _local1 = ""; _local1 = (_local1 + "[SpecialProperty "); _local1 = (_local1 + ("getValue:" + String(getValue))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("setValue:" + String(setValue))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("parameters:" + String(parameters))); _local1 = (_local1 + "]"); return (_local1); } } }//package caurina.transitions
Section 16
//SpecialPropertyModifier (caurina.transitions.SpecialPropertyModifier) package caurina.transitions { public class SpecialPropertyModifier { public var getValue:Function; public var modifyValues:Function; public function SpecialPropertyModifier(_arg1:Function, _arg2:Function){ modifyValues = _arg1; getValue = _arg2; } public function toString():String{ var _local1:String; _local1 = ""; _local1 = (_local1 + "[SpecialPropertyModifier "); _local1 = (_local1 + ("modifyValues:" + String(modifyValues))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("getValue:" + String(getValue))); _local1 = (_local1 + "]"); return (_local1); } } }//package caurina.transitions
Section 17
//SpecialPropertySplitter (caurina.transitions.SpecialPropertySplitter) package caurina.transitions { public class SpecialPropertySplitter { public var splitValues:Function; public function SpecialPropertySplitter(_arg1:Function){ splitValues = _arg1; } public function toString():String{ var _local1:String; _local1 = ""; _local1 = (_local1 + "[SpecialPropertySplitter "); _local1 = (_local1 + ("splitValues:" + String(splitValues))); _local1 = (_local1 + "]"); return (_local1); } } }//package caurina.transitions
Section 18
//Tweener (caurina.transitions.Tweener) package caurina.transitions { import flash.display.*; import flash.events.*; import flash.utils.*; public class Tweener { private static var _timeScale:Number = 1; private static var _specialPropertySplitterList:Object; private static var _engineExists:Boolean = false; private static var _specialPropertyModifierList:Object; private static var _currentTime:Number; private static var _tweenList:Array; private static var _specialPropertyList:Object; private static var _transitionList:Object; private static var _inited:Boolean = false; private static var __tweener_controller__:MovieClip; public function Tweener(){ trace("Tweener is a static class and should not be instantiated."); } public static function registerSpecialPropertyModifier(_arg1:String, _arg2:Function, _arg3:Function):void{ var _local4:SpecialPropertyModifier; if (!_inited){ init(); }; _local4 = new SpecialPropertyModifier(_arg2, _arg3); _specialPropertyModifierList[_arg1] = _local4; } public static function registerSpecialProperty(_arg1:String, _arg2:Function, _arg3:Function, _arg4:Array=null):void{ var _local5:SpecialProperty; if (!_inited){ init(); }; _local5 = new SpecialProperty(_arg2, _arg3, _arg4); _specialPropertyList[_arg1] = _local5; } public static function addCaller(_arg1:Object=null, _arg2:Object=null):Boolean{ var _local4:Array; var _local5:Number; var _local6:Number; var _local7:Object; var _local8:Number; var _local9:Number; var _local10:Function; var _local11:TweenListObj; var _local12:Number; var _local13:String; if ((((arguments.length < 2)) || ((arguments[0] == undefined)))){ return (false); }; _local4 = new Array(); if ((arguments[0] is Array)){ _local5 = 0; while (_local5 < arguments[0].length) { _local4.push(arguments[0][_local5]); _local5++; }; } else { _local5 = 0; while (_local5 < (arguments.length - 1)) { _local4.push(arguments[_local5]); _local5++; }; }; _local7 = arguments[(arguments.length - 1)]; if (!_inited){ init(); }; if (((!(_engineExists)) || (!(Boolean(__tweener_controller__))))){ startEngine(); }; _local8 = (isNaN(_local7.time)) ? 0 : _local7.time; _local9 = (isNaN(_local7.delay)) ? 0 : _local7.delay; if (typeof(_local7.transition) == "string"){ _local13 = _local7.transition.toLowerCase(); _local10 = _transitionList[_local13]; } else { _local10 = _local7.transition; }; if (!Boolean(_local10)){ _local10 = _transitionList["easeoutexpo"]; }; _local5 = 0; while (_local5 < _local4.length) { _local11 = new TweenListObj(_local4[_local5], (_currentTime + ((_local9 * 1000) / _timeScale)), (_currentTime + (((_local9 * 1000) + (_local8 * 1000)) / _timeScale)), (_local7.useFrames == true), _local10); _local11.properties = null; _local11.onStart = _local7.onStart; _local11.onUpdate = _local7.onUpdate; _local11.onComplete = _local7.onComplete; _local11.onOverwrite = _local7.onOverwrite; _local11.onStartParams = _local7.onStartParams; _local11.onUpdateParams = _local7.onUpdateParams; _local11.onCompleteParams = _local7.onCompleteParams; _local11.onOverwriteParams = _local7.onOverwriteParams; _local11.isCaller = true; _local11.count = _local7.count; _local11.waitFrames = _local7.waitFrames; _tweenList.push(_local11); if ((((_local8 == 0)) && ((_local9 == 0)))){ _local12 = (_tweenList.length - 1); updateTweenByIndex(_local12); removeTweenByIndex(_local12); }; _local5++; }; return (true); } public static function init(_arg1=null):void{ _inited = true; _transitionList = new Object(); Equations.init(); _specialPropertyList = new Object(); _specialPropertyModifierList = new Object(); _specialPropertySplitterList = new Object(); SpecialPropertiesDefault.init(); } private static function updateTweens():Boolean{ var _local1:int; if (_tweenList.length == 0){ return (false); }; _local1 = 0; while (_local1 < _tweenList.length) { if ((((_tweenList[_local1] == undefined)) || (!(_tweenList[_local1].isPaused)))){ if (!updateTweenByIndex(_local1)){ removeTweenByIndex(_local1); }; if (_tweenList[_local1] == null){ removeTweenByIndex(_local1, true); _local1--; }; }; _local1++; }; return (true); } public static function removeTweens(_arg1:Object, ... _args):Boolean{ var _local3:Array; var _local4:uint; _local3 = new Array(); _local4 = 0; while (_local4 < _args.length) { if ((((typeof(_args[_local4]) == "string")) && (!(AuxFunctions.isInArray(_args[_local4], _local3))))){ _local3.push(_args[_local4]); }; _local4++; }; return (affectTweens(removeTweenByIndex, _arg1, _local3)); } public static function pauseAllTweens():Boolean{ var _local1:Boolean; var _local2:uint; if (!Boolean(_tweenList)){ return (false); }; _local1 = false; _local2 = 0; while (_local2 < _tweenList.length) { pauseTweenByIndex(_local2); _local1 = true; _local2++; }; return (_local1); } public static function splitTweens(_arg1:Number, _arg2:Array):uint{ var _local3:TweenListObj; var _local4:TweenListObj; var _local5:uint; var _local6:String; var _local7:Boolean; _local3 = _tweenList[_arg1]; _local4 = _local3.clone(false); _local5 = 0; while (_local5 < _arg2.length) { _local6 = _arg2[_local5]; if (Boolean(_local3.properties[_local6])){ _local3.properties[_local6] = undefined; delete _local3.properties[_local6]; }; _local5++; }; for (_local6 in _local4.properties) { _local7 = false; _local5 = 0; while (_local5 < _arg2.length) { if (_arg2[_local5] == _local6){ _local7 = true; break; }; _local5++; }; if (!_local7){ _local4.properties[_local6] = undefined; delete _local4.properties[_local6]; }; }; _tweenList.push(_local4); return ((_tweenList.length - 1)); } public static function resumeTweenByIndex(_arg1:Number):Boolean{ var _local2:TweenListObj; _local2 = _tweenList[_arg1]; if ((((_local2 == null)) || (!(_local2.isPaused)))){ return (false); }; _local2.timeStart = (_local2.timeStart + (_currentTime - _local2.timePaused)); _local2.timeComplete = (_local2.timeComplete + (_currentTime - _local2.timePaused)); _local2.timePaused = undefined; _local2.isPaused = false; return (true); } public static function debug_getList():String{ var _local1:String; var _local2:uint; var _local3:uint; _local1 = ""; _local2 = 0; while (_local2 < _tweenList.length) { _local1 = (_local1 + (("[" + _local2) + "] ::\n")); _local3 = 0; while (_local3 < _tweenList[_local2].properties.length) { _local1 = (_local1 + ((((" " + _tweenList[_local2].properties[_local3].name) + " -> ") + _tweenList[_local2].properties[_local3].valueComplete) + "\n")); _local3++; }; _local2++; }; return (_local1); } public static function getVersion():String{ return ("AS3 1.25.57"); } public static function onEnterFrame(_arg1:Event):void{ var _local2:Boolean; updateTime(); _local2 = false; _local2 = updateTweens(); if (!_local2){ stopEngine(); }; } public static function updateTime():void{ _currentTime = getTimer(); } private static function updateTweenByIndex(_arg1:Number):Boolean{ var tTweening:TweenListObj; var isOver:Boolean; var mustUpdate:Boolean; var nv:Number; var t:Number; var b:Number; var c:Number; var d:Number; var pName:String; var tScope:Object; var tProperty:Object; var pv:Number; var i = _arg1; tTweening = _tweenList[i]; if ((((tTweening == null)) || (!(Boolean(tTweening.scope))))){ return (false); }; isOver = false; if (_currentTime >= tTweening.timeStart){ tScope = tTweening.scope; if (tTweening.isCaller){ do { t = (((tTweening.timeComplete - tTweening.timeStart) / tTweening.count) * (tTweening.timesCalled + 1)); b = tTweening.timeStart; c = (tTweening.timeComplete - tTweening.timeStart); d = (tTweening.timeComplete - tTweening.timeStart); nv = tTweening.transition(t, b, c, d); } while (!(_currentTime >= nv)); } else { mustUpdate = (((((tTweening.skipUpdates < 1)) || (!(tTweening.skipUpdates)))) || ((tTweening.updatesSkipped >= tTweening.skipUpdates))); if (_currentTime >= tTweening.timeComplete){ isOver = true; mustUpdate = true; }; if (!tTweening.hasStarted){ if (Boolean(tTweening.onStart)){ try { tTweening.onStart.apply(tScope, tTweening.onStartParams); } catch(e:Error) { }; }; for (pName in tTweening.properties) { pv = getPropertyValue(tScope, pName); tTweening.properties[pName].valueStart = (isNaN(pv)) ? tTweening.properties[pName].valueComplete : pv; }; mustUpdate = true; tTweening.hasStarted = true; }; if (mustUpdate){ for (pName in tTweening.properties) { tProperty = tTweening.properties[pName]; if (isOver){ nv = tProperty.valueComplete; } else { if (tProperty.hasModifier){ t = (_currentTime - tTweening.timeStart); d = (tTweening.timeComplete - tTweening.timeStart); nv = tTweening.transition(t, 0, 1, d); nv = tProperty.modifierFunction(tProperty.valueStart, tProperty.valueComplete, nv, tProperty.modifierParameters); } else { t = (_currentTime - tTweening.timeStart); b = tProperty.valueStart; c = (tProperty.valueComplete - tProperty.valueStart); d = (tTweening.timeComplete - tTweening.timeStart); nv = tTweening.transition(t, b, c, d); }; }; if (tTweening.rounded){ nv = Math.round(nv); }; setPropertyValue(tScope, pName, nv); }; tTweening.updatesSkipped = 0; if (Boolean(tTweening.onUpdate)){ try { tTweening.onUpdate.apply(tScope, tTweening.onUpdateParams); } catch(e:Error) { }; }; } else { tTweening.updatesSkipped++; }; }; if (((isOver) && (Boolean(tTweening.onComplete)))){ try { tTweening.onComplete.apply(tScope, tTweening.onCompleteParams); } catch(e:Error) { }; }; return (!(isOver)); }; return (true); } public static function setTimeScale(_arg1:Number):void{ var _local2:Number; if (isNaN(_arg1)){ _arg1 = 1; }; if (_arg1 < 1E-5){ _arg1 = 1E-5; }; if (_arg1 != _timeScale){ _local2 = 0; while (_local2 < _tweenList.length) { _tweenList[_local2].timeStart = (_currentTime - (((_currentTime - _tweenList[_local2].timeStart) * _timeScale) / _arg1)); _tweenList[_local2].timeComplete = (_currentTime - (((_currentTime - _tweenList[_local2].timeComplete) * _timeScale) / _arg1)); if (_tweenList[_local2].timePaused != undefined){ _tweenList[_local2].timePaused = (_currentTime - (((_currentTime - _tweenList[_local2].timePaused) * _timeScale) / _arg1)); }; _local2++; }; _timeScale = _arg1; }; } public static function resumeAllTweens():Boolean{ var _local1:Boolean; var _local2:uint; if (!Boolean(_tweenList)){ return (false); }; _local1 = false; _local2 = 0; while (_local2 < _tweenList.length) { resumeTweenByIndex(_local2); _local1 = true; _local2++; }; return (_local1); } private static function startEngine():void{ _engineExists = true; _tweenList = new Array(); __tweener_controller__ = new MovieClip(); __tweener_controller__.addEventListener(Event.ENTER_FRAME, Tweener.onEnterFrame); updateTime(); } public static function removeAllTweens():Boolean{ var _local1:Boolean; var _local2:uint; if (!Boolean(_tweenList)){ return (false); }; _local1 = false; _local2 = 0; while (_local2 < _tweenList.length) { removeTweenByIndex(_local2); _local1 = true; _local2++; }; return (_local1); } public static function addTween(_arg1:Object=null, _arg2:Object=null):Boolean{ var _local4:Array; var _local5:Number; var _local6:Number; var _local7:String; var _local8:String; var _local9:Object; var _local10:Number; var _local11:Number; var _local12:Array; var _local13:Object; var _local14:Object; var _local15:Function; var _local16:Object; var _local17:TweenListObj; var _local18:Number; var _local19:Array; var _local20:Array; var _local21:String; if ((((arguments.length < 2)) || ((arguments[0] == undefined)))){ return (false); }; _local4 = new Array(); if ((arguments[0] is Array)){ _local5 = 0; while (_local5 < arguments[0].length) { _local4.push(arguments[0][_local5]); _local5++; }; } else { _local5 = 0; while (_local5 < (arguments.length - 1)) { _local4.push(arguments[_local5]); _local5++; }; }; _local9 = arguments[(arguments.length - 1)]; if (!_inited){ init(); }; if (((!(_engineExists)) || (!(Boolean(__tweener_controller__))))){ startEngine(); }; _local10 = (isNaN(_local9.time)) ? 0 : _local9.time; _local11 = (isNaN(_local9.delay)) ? 0 : _local9.delay; _local12 = new Array(); _local13 = {time:true, delay:true, useFrames:true, skipUpdates:true, transition:true, onStart:true, onUpdate:true, onComplete:true, onOverwrite:true, rounded:true, onStartParams:true, onUpdateParams:true, onCompleteParams:true, onOverwriteParams:true}; _local14 = new Object(); for (_local7 in _local9) { if (!_local13[_local7]){ if (_specialPropertySplitterList[_local7]){ _local19 = _specialPropertySplitterList[_local7].splitValues(_local9[_local7]); _local5 = 0; while (_local5 < _local19.length) { _local12[_local19[_local5].name] = {valueStart:undefined, valueComplete:_local19[_local5].value}; _local5++; }; } else { if (_specialPropertyModifierList[_local7] != undefined){ _local20 = _specialPropertyModifierList[_local7].modifyValues(_local9[_local7]); _local5 = 0; while (_local5 < _local20.length) { _local14[_local20[_local5].name] = {modifierParameters:_local20[_local5].parameters, modifierFunction:_specialPropertyModifierList[_local7].getValue}; _local5++; }; } else { _local12[_local7] = {valueStart:undefined, valueComplete:_local9[_local7]}; }; }; }; }; for (_local7 in _local14) { if (_local12[_local7] != undefined){ _local12[_local7].modifierParameters = _local14[_local7].modifierParameters; _local12[_local7].modifierFunction = _local14[_local7].modifierFunction; }; }; if (typeof(_local9.transition) == "string"){ _local21 = _local9.transition.toLowerCase(); _local15 = _transitionList[_local21]; } else { _local15 = _local9.transition; }; if (!Boolean(_local15)){ _local15 = _transitionList["easeoutexpo"]; }; _local5 = 0; while (_local5 < _local4.length) { _local16 = new Object(); for (_local7 in _local12) { _local16[_local7] = new PropertyInfoObj(_local12[_local7].valueStart, _local12[_local7].valueComplete, _local12[_local7].modifierFunction, _local12[_local7].modifierParameters); }; _local17 = new TweenListObj(_local4[_local5], (_currentTime + ((_local11 * 1000) / _timeScale)), (_currentTime + (((_local11 * 1000) + (_local10 * 1000)) / _timeScale)), (_local9.useFrames == true), _local15); _local17.properties = _local16; _local17.onStart = _local9.onStart; _local17.onUpdate = _local9.onUpdate; _local17.onComplete = _local9.onComplete; _local17.onOverwrite = _local9.onOverwrite; _local17.onStartParams = _local9.onStartParams; _local17.onUpdateParams = _local9.onUpdateParams; _local17.onCompleteParams = _local9.onCompleteParams; _local17.onOverwriteParams = _local9.onOverwriteParams; _local17.rounded = _local9.rounded; _local17.skipUpdates = _local9.skipUpdates; removeTweensByTime(_local17.scope, _local17.properties, _local17.timeStart, _local17.timeComplete); _tweenList.push(_local17); if ((((_local10 == 0)) && ((_local11 == 0)))){ _local18 = (_tweenList.length - 1); updateTweenByIndex(_local18); removeTweenByIndex(_local18); }; _local5++; }; return (true); } public static function registerTransition(_arg1:String, _arg2:Function):void{ if (!_inited){ init(); }; _transitionList[_arg1] = _arg2; } private static function affectTweens(_arg1:Function, _arg2:Object, _arg3:Array):Boolean{ var _local4:Boolean; var _local5:uint; var _local6:Array; var _local7:uint; var _local8:uint; var _local9:uint; _local4 = false; if (!Boolean(_tweenList)){ return (false); }; _local5 = 0; while (_local5 < _tweenList.length) { if (((_tweenList[_local5]) && ((_tweenList[_local5].scope == _arg2)))){ if (_arg3.length == 0){ _arg1(_local5); _local4 = true; } else { _local6 = new Array(); _local7 = 0; while (_local7 < _arg3.length) { if (Boolean(_tweenList[_local5].properties[_arg3[_local7]])){ _local6.push(_arg3[_local7]); }; _local7++; }; if (_local6.length > 0){ _local8 = AuxFunctions.getObjectLength(_tweenList[_local5].properties); if (_local8 == _local6.length){ _arg1(_local5); _local4 = true; } else { _local9 = splitTweens(_local5, _local6); _arg1(_local9); _local4 = true; }; }; }; }; _local5++; }; return (_local4); } public static function getTweens(_arg1:Object):Array{ var _local2:uint; var _local3:String; var _local4:Array; if (!Boolean(_tweenList)){ return ([]); }; _local4 = new Array(); _local2 = 0; while (_local2 < _tweenList.length) { if (_tweenList[_local2].scope == _arg1){ for (_local3 in _tweenList[_local2].properties) { _local4.push(_local3); }; }; _local2++; }; return (_local4); } private static function setPropertyValue(_arg1:Object, _arg2:String, _arg3:Number):void{ if (_specialPropertyList[_arg2] != undefined){ if (Boolean(_specialPropertyList[_arg2].parameters)){ _specialPropertyList[_arg2].setValue(_arg1, _arg3, _specialPropertyList[_arg2].parameters); } else { _specialPropertyList[_arg2].setValue(_arg1, _arg3); }; } else { _arg1[_arg2] = _arg3; }; } private static function getPropertyValue(_arg1:Object, _arg2:String):Number{ if (_specialPropertyList[_arg2] != undefined){ if (Boolean(_specialPropertyList[_arg2].parameters)){ return (_specialPropertyList[_arg2].getValue(_arg1, _specialPropertyList[_arg2].parameters)); }; return (_specialPropertyList[_arg2].getValue(_arg1)); } else { }; return (!NULL!); } public static function isTweening(_arg1:Object):Boolean{ var _local2:uint; if (!Boolean(_tweenList)){ return (false); }; _local2 = 0; while (_local2 < _tweenList.length) { if (_tweenList[_local2].scope == _arg1){ return (true); }; _local2++; }; return (false); } public static function getTweenCount(_arg1:Object):Number{ var _local2:uint; var _local3:Number; if (!Boolean(_tweenList)){ return (0); }; _local3 = 0; _local2 = 0; while (_local2 < _tweenList.length) { if (_tweenList[_local2].scope == _arg1){ _local3 = (_local3 + AuxFunctions.getObjectLength(_tweenList[_local2].properties)); }; _local2++; }; return (_local3); } private static function stopEngine():void{ _engineExists = false; _tweenList = null; _currentTime = 0; __tweener_controller__.removeEventListener(Event.ENTER_FRAME, Tweener.onEnterFrame); __tweener_controller__ = null; } public static function pauseTweenByIndex(_arg1:Number):Boolean{ var _local2:TweenListObj; _local2 = _tweenList[_arg1]; if ((((_local2 == null)) || (_local2.isPaused))){ return (false); }; _local2.timePaused = _currentTime; _local2.isPaused = true; return (true); } public static function removeTweensByTime(_arg1:Object, _arg2:Object, _arg3:Number, _arg4:Number):Boolean{ var removed:Boolean; var removedLocally:Boolean; var i:uint; var tl:uint; var pName:String; var p_scope = _arg1; var p_properties = _arg2; var p_timeStart = _arg3; var p_timeComplete = _arg4; removed = false; tl = _tweenList.length; i = 0; while (i < tl) { if (((Boolean(_tweenList[i])) && ((p_scope == _tweenList[i].scope)))){ if ((((p_timeComplete > _tweenList[i].timeStart)) && ((p_timeStart < _tweenList[i].timeComplete)))){ removedLocally = false; for (pName in _tweenList[i].properties) { if (Boolean(p_properties[pName])){ if (Boolean(_tweenList[i].onOverwrite)){ try { _tweenList[i].onOverwrite.apply(_tweenList[i].scope, _tweenList[i].onOverwriteParams); } catch(e:Error) { }; }; _tweenList[i].properties[pName] = undefined; delete _tweenList[i].properties[pName]; removedLocally = true; removed = true; }; }; if (removedLocally){ if (AuxFunctions.getObjectLength(_tweenList[i].properties) == 0){ removeTweenByIndex(i); }; }; }; }; i = (i + 1); }; return (removed); } public static function registerSpecialPropertySplitter(_arg1:String, _arg2:Function):void{ var _local3:SpecialPropertySplitter; if (!_inited){ init(); }; _local3 = new SpecialPropertySplitter(_arg2); _specialPropertySplitterList[_arg1] = _local3; } public static function removeTweenByIndex(_arg1:Number, _arg2:Boolean=false):Boolean{ _tweenList[_arg1] = null; if (_arg2){ _tweenList.splice(_arg1, 1); }; return (true); } public static function resumeTweens(_arg1:Object, ... _args):Boolean{ var _local3:Array; var _local4:uint; _local3 = new Array(); _local4 = 0; while (_local4 < _args.length) { if ((((typeof(_args[_local4]) == "string")) && (!(AuxFunctions.isInArray(_args[_local4], _local3))))){ _local3.push(_args[_local4]); }; _local4++; }; return (affectTweens(resumeTweenByIndex, _arg1, _local3)); } public static function pauseTweens(_arg1:Object, ... _args):Boolean{ var _local3:Array; var _local4:uint; _local3 = new Array(); _local4 = 0; while (_local4 < _args.length) { if ((((typeof(_args[_local4]) == "string")) && (!(AuxFunctions.isInArray(_args[_local4], _local3))))){ _local3.push(_args[_local4]); }; _local4++; }; return (affectTweens(pauseTweenByIndex, _arg1, _local3)); } } }//package caurina.transitions
Section 19
//TweenListObj (caurina.transitions.TweenListObj) package caurina.transitions { public class TweenListObj { public var onUpdate:Function; public var useFrames:Boolean; public var hasStarted:Boolean; public var onOverwriteParams:Array; public var timeStart:Number; public var count:Number; public var auxProperties:Object; public var timeComplete:Number; public var onStartParams:Array; public var rounded:Boolean; public var updatesSkipped:Number; public var onUpdateParams:Array; public var onComplete:Function; public var properties:Object; public var onStart:Function; public var skipUpdates:Number; public var scope:Object; public var isCaller:Boolean; public var timePaused:Number; public var transition:Function; public var onCompleteParams:Array; public var timesCalled:Number; public var onOverwrite:Function; public var isPaused:Boolean; public var waitFrames:Boolean; public function TweenListObj(_arg1:Object, _arg2:Number, _arg3:Number, _arg4:Boolean, _arg5:Function){ scope = _arg1; timeStart = _arg2; timeComplete = _arg3; useFrames = _arg4; transition = _arg5; auxProperties = new Object(); properties = new Object(); isPaused = false; timePaused = undefined; isCaller = false; updatesSkipped = 0; timesCalled = 0; skipUpdates = 0; hasStarted = false; } public function clone(_arg1:Boolean):TweenListObj{ var _local2:TweenListObj; var _local3:String; _local2 = new TweenListObj(scope, timeStart, timeComplete, useFrames, transition); _local2.properties = new Array(); for (_local3 in properties) { _local2.properties[_local3] = properties[_local3].clone(); }; _local2.skipUpdates = skipUpdates; _local2.updatesSkipped = updatesSkipped; if (!_arg1){ _local2.onStart = onStart; _local2.onUpdate = onUpdate; _local2.onComplete = onComplete; _local2.onOverwrite = onOverwrite; _local2.onStartParams = onStartParams; _local2.onUpdateParams = onUpdateParams; _local2.onCompleteParams = onCompleteParams; _local2.onOverwriteParams = onOverwriteParams; }; _local2.rounded = rounded; _local2.isPaused = isPaused; _local2.timePaused = timePaused; _local2.isCaller = isCaller; _local2.count = count; _local2.timesCalled = timesCalled; _local2.waitFrames = waitFrames; _local2.hasStarted = hasStarted; return (_local2); } public function toString():String{ var _local1:String; var _local2:uint; _local1 = "\n[TweenListObj "; _local1 = (_local1 + ("scope:" + String(scope))); _local1 = (_local1 + ", properties:"); _local2 = 0; while (_local2 < properties.length) { if (_local2 > 0){ _local1 = (_local1 + ","); }; _local1 = (_local1 + ("[name:" + properties[_local2].name)); _local1 = (_local1 + (",valueStart:" + properties[_local2].valueStart)); _local1 = (_local1 + (",valueComplete:" + properties[_local2].valueComplete)); _local1 = (_local1 + "]"); _local2++; }; _local1 = (_local1 + (", timeStart:" + String(timeStart))); _local1 = (_local1 + (", timeComplete:" + String(timeComplete))); _local1 = (_local1 + (", useFrames:" + String(useFrames))); _local1 = (_local1 + (", transition:" + String(transition))); if (skipUpdates){ _local1 = (_local1 + (", skipUpdates:" + String(skipUpdates))); }; if (updatesSkipped){ _local1 = (_local1 + (", updatesSkipped:" + String(updatesSkipped))); }; if (Boolean(onStart)){ _local1 = (_local1 + (", onStart:" + String(onStart))); }; if (Boolean(onUpdate)){ _local1 = (_local1 + (", onUpdate:" + String(onUpdate))); }; if (Boolean(onComplete)){ _local1 = (_local1 + (", onComplete:" + String(onComplete))); }; if (Boolean(onOverwrite)){ _local1 = (_local1 + (", onOverwrite:" + String(onOverwrite))); }; if (onStartParams){ _local1 = (_local1 + (", onStartParams:" + String(onStartParams))); }; if (onUpdateParams){ _local1 = (_local1 + (", onUpdateParams:" + String(onUpdateParams))); }; if (onCompleteParams){ _local1 = (_local1 + (", onCompleteParams:" + String(onCompleteParams))); }; if (onOverwriteParams){ _local1 = (_local1 + (", onOverwriteParams:" + String(onOverwriteParams))); }; if (rounded){ _local1 = (_local1 + (", rounded:" + String(rounded))); }; if (isPaused){ _local1 = (_local1 + (", isPaused:" + String(isPaused))); }; if (timePaused){ _local1 = (_local1 + (", timePaused:" + String(timePaused))); }; if (isCaller){ _local1 = (_local1 + (", isCaller:" + String(isCaller))); }; if (count){ _local1 = (_local1 + (", count:" + String(count))); }; if (timesCalled){ _local1 = (_local1 + (", timesCalled:" + String(timesCalled))); }; if (waitFrames){ _local1 = (_local1 + (", waitFrames:" + String(waitFrames))); }; if (hasStarted){ _local1 = (_local1 + (", hasStarted:" + String(hasStarted))); }; _local1 = (_local1 + "]\n"); return (_local1); } } }//package caurina.transitions
Section 20
//ObjectTools (com.blitzagency.xray.logger.util.ObjectTools) package com.blitzagency.xray.logger.util { import com.blitzagency.xray.logger.*; import flash.utils.*; public class ObjectTools { private static var log:XrayLog = new XrayLog(); public function resolveBaseType(_arg1:Object):String{ return (""); } public static function getImmediateClassPath(_arg1:Object):String{ var _local2:String; var _local3:String; _local2 = getQualifiedClassName(_arg1); _local3 = getQualifiedSuperclassName(_arg1); _local2 = ((_local2.indexOf("::") > -1)) ? _local2.split("::").join(".") : _local2; if (_local3 == null){ return (_local2); }; _local3 = ((_local3.indexOf("::") > -1)) ? _local3.split("::").join(".") : _local3; return (((_local3 + ".") + _local2)); } public static function getFullClassPath(_arg1:Object):String{ var _local2:XML; var _local3:Array; var _local4:String; var _local5:XML; var _local6:String; _local2 = describeType(_arg1); _local3 = []; _local4 = getQualifiedClassName(_arg1); _local4 = ((_local4.indexOf("::") > -1)) ? _local4.split("::").join(".") : _local4; _local3.push(_local4); for each (_local5 in _local2.extendsClass) { _local6 = ((_local5.@type.toString().indexOf("::") > -1)) ? _local5.@type.toString().split("::")[1] : _local5.@type.toString(); _local3.push(_local6); }; return (_local3.join(".")); } } }//package com.blitzagency.xray.logger.util
Section 21
//Log (com.blitzagency.xray.logger.Log) package com.blitzagency.xray.logger { import com.blitzagency.xray.logger.util.*; public class Log { private var level:Number; private var caller:String;// = "" private var classPackage:String; private var dump:Object; private var message:String; public function Log(_arg1:String, _arg2:Object, _arg3:Number, ... _args){ var err:LogError; var nullArray:Array; var str:String; var p_message = _arg1; var p_dump = _arg2; var p_level = _arg3; var rest = _args; caller = ""; super(); try { nullArray.push("bogus"); } catch(e:Error) { err = new LogError("log"); } finally { if (err.hasOwnProperty("getStackTrace")){ str = err.getStackTrace(); setCaller(resolveCaller(str)); } else { setCaller(""); }; setMessage(p_message); setDump(p_dump); setLevel(p_level); setClassPackage(p_dump); }; } public function setLevel(_arg1:Number):void{ level = _arg1; } public function getCaller():String{ return (caller); } public function setMessage(_arg1:String):void{ message = _arg1; } public function getLevel():Number{ return (level); } public function getDump():Object{ return (dump); } public function setCaller(_arg1:String):void{ caller = _arg1; } public function setClassPackage(_arg1:Object):void{ classPackage = ObjectTools.getImmediateClassPath(_arg1); } public function getMessage():String{ return (message); } public function getClassPackage():String{ return (classPackage); } public function setDump(_arg1:Object):void{ dump = _arg1; } private function resolveCaller(_arg1:String):String{ var ary:Array; var str = _arg1; ary = []; try { str = str.split("\n").join(""); ary = str.split("\tat "); str = ary[3]; } catch(e:Error) { } finally { str = ""; }; return (str); } } }//package com.blitzagency.xray.logger class LogError extends Error { private function LogError(_arg1:String){ super(_arg1); } }
Section 22
//Logger (com.blitzagency.xray.logger.Logger) package com.blitzagency.xray.logger { public interface Logger { function setLevel(_arg1:Number=0):void; function debug(_arg1:Log):void; function fatal(_arg1:Log):void; function warn(_arg1:Log):void; function error(_arg1:Log):void; function log(_arg1:String, _arg2:String, _arg3:String, _arg4:Number, _arg5:Object=null):void; function info(_arg1:Log):void; } }//package com.blitzagency.xray.logger
Section 23
//XrayLog (com.blitzagency.xray.logger.XrayLog) package com.blitzagency.xray.logger { public class XrayLog { private var logger:XrayLogger; public function XrayLog(){ logger = XrayLogger.getInstance(); } public function debug(_arg1:String, ... _args):void{ var _local3:Number; if (_args.length == 0){ logger.debug(new Log(_arg1, null, XrayLogger.DEBUG)); }; _local3 = 0; while (_local3 < _args.length) { if (_local3 > 0){ _arg1 = ""; }; logger.debug(new Log(_arg1, _args[_local3], XrayLogger.DEBUG)); _local3++; }; } public function fatal(_arg1:String, ... _args):void{ var _local3:Number; if (_args.length == 0){ logger.fatal(new Log(_arg1, null, XrayLogger.FATAL)); }; _local3 = 0; while (_local3 < _args.length) { if (_local3 > 0){ _arg1 = ""; }; logger.fatal(new Log(_arg1, _args[_local3], XrayLogger.FATAL)); _local3++; }; } public function info(_arg1:String, ... _args):void{ var _local3:Number; if (_args.length == 0){ logger.info(new Log(_arg1, null, XrayLogger.INFO)); }; _local3 = 0; while (_local3 < _args.length) { if (_local3 > 0){ _arg1 = ""; }; logger.info(new Log(_arg1, _args[_local3], XrayLogger.INFO)); _local3++; }; } public function warn(_arg1:String, ... _args):void{ var _local3:Number; if (_args.length == 0){ logger.warn(new Log(_arg1, null, XrayLogger.WARN)); }; _local3 = 0; while (_local3 < _args.length) { if (_local3 > 0){ _arg1 = ""; }; logger.warn(new Log(_arg1, _args[_local3], XrayLogger.WARN)); _local3++; }; } public function error(_arg1:String, ... _args):void{ var _local3:Number; if (_args.length == 0){ logger.error(new Log(_arg1, null, XrayLogger.ERROR)); }; _local3 = 0; while (_local3 < _args.length) { if (_local3 > 0){ _arg1 = ""; }; logger.error(new Log(_arg1, _args[_local3], XrayLogger.ERROR)); _local3++; }; } } }//package com.blitzagency.xray.logger
Section 24
//XrayLogger (com.blitzagency.xray.logger.XrayLogger) package com.blitzagency.xray.logger { import flash.events.*; public class XrayLogger extends EventDispatcher implements Logger { private var displayObjectRecursionDepth:Number;// = 3 private var level:Number;// = 0 private var indentation:Number;// = 0 private var objectRecursionDepth:Number;// = 254 private var filters:Array; public static var FATAL:Number = 4; public static var WARN:Number = 2; public static var ERROR:Number = 3; public static var INFO:Number = 1; public static var DEBUG:Number = 0; private static var _instance:XrayLogger = null; public static var NONE:Number = 5; public function XrayLogger(){ level = 0; displayObjectRecursionDepth = 3; objectRecursionDepth = 254; indentation = 0; filters = []; super(); } public function checkFilters():Boolean{ var _local1:uint; if (filters.length == 0){ return (true); }; _local1 = 0; while (_local1 < filters.length) { _local1++; }; return (true); } public function debug(_arg1:Log):void{ if (_arg1.getLevel() == level){ log(_arg1.getMessage(), _arg1.getCaller(), _arg1.getClassPackage(), 0, _arg1.getDump()); }; } public function setIndentation(_arg1:Number=0):void{ indentation = _arg1; } public function error(_arg1:Log):void{ if (_arg1.getLevel() >= level){ log(_arg1.getMessage(), _arg1.getCaller(), _arg1.getClassPackage(), 3, _arg1.getDump()); }; } public function setLevel(_arg1:Number=0):void{ level = _arg1; } public function fatal(_arg1:Log):void{ if (_arg1.getLevel() >= level){ log(_arg1.getMessage(), _arg1.getCaller(), _arg1.getClassPackage(), 4, _arg1.getDump()); }; } public function warn(_arg1:Log):void{ if (_arg1.getLevel() >= level){ log(_arg1.getMessage(), _arg1.getCaller(), _arg1.getClassPackage(), 2, _arg1.getDump()); }; } public function setObjectRecursionDepth(_arg1:Number):void{ objectRecursionDepth = _arg1; } public function setDisplayClipRecursionDepth(_arg1:Number):void{ displayObjectRecursionDepth = _arg1; } public function info(_arg1:Log):void{ if (_arg1.getLevel() >= level){ log(_arg1.getMessage(), _arg1.getCaller(), _arg1.getClassPackage(), 1, _arg1.getDump()); }; } public function log(_arg1:String, _arg2:String, _arg3:String, _arg4:Number, _arg5:Object=null):void{ } public function setFilters(_arg1:Array):void{ filters = _arg1; } public static function getInstance():XrayLogger{ if (_instance == null){ _instance = new (XrayLogger); }; return (_instance); } public static function resolveLevelAsName(_arg1:Number):String{ switch (_arg1){ case 0: return ("debug"); case 1: return ("info"); case 2: return ("warn"); case 3: return ("error"); case 4: return ("fatal"); default: return ("debug"); }; } } }//package com.blitzagency.xray.logger
Section 25
//Key (com.Keyboard.Key) package com.Keyboard { import flash.display.*; import flash.events.*; public class Key { private static var initialized:Boolean = false; private static var keysDown:Object = new Object(); public static function initialize(_arg1:Stage){ if (!initialized){ _arg1.addEventListener(KeyboardEvent.KEY_DOWN, keyPressed); _arg1.addEventListener(KeyboardEvent.KEY_UP, keyReleased); _arg1.addEventListener(Event.DEACTIVATE, clearKeys); initialized = true; }; } private static function clearKeys(_arg1:Event):void{ keysDown = new Object(); } public static function isDown(_arg1:uint):Boolean{ if (!initialized){ throw (new Error("Key class has yet been initialized.")); }; return (Boolean((_arg1 in keysDown))); } private static function keyPressed(_arg1:KeyboardEvent):void{ keysDown[_arg1.keyCode] = true; } private static function keyReleased(_arg1:KeyboardEvent):void{ if ((_arg1.keyCode in keysDown)){ delete keysDown[_arg1.keyCode]; }; } } }//package com.Keyboard
Section 26
//Fx (com.markfennell.display.Fx) package com.markfennell.display { import flash.display.*; import caurina.transitions.*; import flash.filters.*; import flash.utils.*; public class Fx extends Sprite { public function zoomIn(_arg1:DisplayObject, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number, _arg8:Number, _arg9:String, _arg10:Function){ var _initTime:Number; var _interval:Number; var angle:Number; var blurX:*; var blurY:*; var mc:DisplayObject; var wait:*; var blurFilter:BlurFilter; var _animate:Function; var onMotionStopped:Function; var _mc = _arg1; var delay = _arg2; var duration = _arg3; var startX = _arg4; var startY = _arg5; var finishX = _arg6; var finishY = _arg7; var blur = _arg8; var transition = _arg9; var callBack = _arg10; _animate = function (){ mc.filters = [blurFilter]; Tweener.addTween(mc, {x:finishX, y:finishY, time:duration, transition:transition, onComplete:onMotionStopped}); }; onMotionStopped = function (){ this.filters = []; callBack(); }; _initTime = getTimer(); angle = Math.atan2((finishY - startY), (finishX - startX)); blurX = Math.abs(Math.floor((Math.cos(angle) * blur))); blurY = Math.abs(Math.floor((Math.sin(angle) * blur))); mc = _mc; wait = (1000 * delay); mc.x = startX; mc.y = startY; blurFilter = new BlurFilter(blurX, blurY, 1); _interval = setTimeout(_animate, wait); } public function padScore(_arg1:int, _arg2:int){ var _local3:*; var _local4:*; _local3 = "000000000000000000000"; _local4 = _arg1.toString(); if (_local4.length < _arg2){ _local4 = (_local3.substring(0, (_arg2 - _local4.length)) + _local4); }; return (_local4); } } }//package com.markfennell.display
Section 27
//RC4 (com.meychi.ascrypt3.RC4) package com.meychi.ascrypt3 { public class RC4 { private static var mykey:Array = new Array(0xFF); private static var sbox:Array = new Array(0xFF); public function encrypt(_arg1:String, _arg2:String):String{ var _local3:Array; var _local4:Array; var _local5:Array; _local3 = strToChars(_arg1); _local4 = strToChars(_arg2); _local5 = calculate(_local3, _local4); return (charsToHex(_local5)); } public function decrypt(_arg1:String, _arg2:String):String{ var _local3:Array; var _local4:Array; var _local5:Array; _local3 = hexToChars(_arg1); _local4 = strToChars(_arg2); _local5 = calculate(_local3, _local4); return (charsToStr(_local5)); } private static function initialize(_arg1:Array):void{ var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; _local2 = 0; _local4 = _arg1.length; _local5 = 0; _local5 = 0; while (_local5 <= 0xFF) { mykey[_local5] = _arg1[(_local5 % _local4)]; sbox[_local5] = _local5; _local5++; }; _local5 = 0; while (_local5 <= 0xFF) { _local2 = (((_local2 + sbox[_local5]) + mykey[_local5]) % 0x0100); _local3 = sbox[_local5]; sbox[_local5] = sbox[_local2]; sbox[_local2] = _local3; _local5++; }; } private static function strToChars(_arg1:String):Array{ var _local2:Array; var _local3:Number; _local2 = new Array(); _local3 = 0; while (_local3 < _arg1.length) { _local2.push(_arg1.charCodeAt(_local3)); _local3++; }; return (_local2); } private static function charsToStr(_arg1:Array):String{ var _local2:String; var _local3:Number; _local2 = new String(""); _local3 = 0; while (_local3 < _arg1.length) { _local2 = (_local2 + String.fromCharCode(_arg1[_local3])); _local3++; }; return (_local2); } private static function charsToHex(_arg1:Array):String{ var _local2:String; var _local3:Array; var _local4:Number; _local2 = new String(""); _local3 = new Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"); _local4 = 0; while (_local4 < _arg1.length) { _local2 = (_local2 + (_local3[(_arg1[_local4] >> 4)] + _local3[(_arg1[_local4] & 15)])); _local4++; }; return (_local2); } private static function calculate(_arg1:Array, _arg2:Array):Array{ var _local3:Number; var _local4:Number; var _local5:Array; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; initialize(_arg2); _local3 = 0; _local4 = 0; _local5 = new Array(); _local9 = 0; while (_local9 < _arg1.length) { _local3 = ((_local3 + 1) % 0x0100); _local4 = ((_local4 + sbox[_local3]) % 0x0100); _local7 = sbox[_local3]; sbox[_local3] = sbox[_local4]; sbox[_local4] = _local7; _local10 = ((sbox[_local3] + sbox[_local4]) % 0x0100); _local6 = sbox[_local10]; _local8 = (_arg1[_local9] ^ _local6); _local5.push(_local8); _local9++; }; return (_local5); } private static function hexToChars(_arg1:String):Array{ var _local2:Array; var _local3:Number; _local2 = new Array(); _local3 = ((_arg1.substr(0, 2))=="0x") ? 2 : 0; while (_local3 < _arg1.length) { _local2.push(parseInt(_arg1.substr(_local3, 2), 16)); _local3 = (_local3 + 2); }; return (_local2); } } }//package com.meychi.ascrypt3
Section 28
//MusicControls (controls.MusicControls) package controls { import flash.display.*; import flash.events.*; public class MusicControls extends MovieClip { public var btnOn:SimpleButton; public var btnOff:SimpleButton; public function MusicControls(){ var myThis:*; var soundOn:Function; var soundOff:Function; super(); soundOn = function (){ myThis.btnOn.visible = false; myThis.btnOff.visible = true; SoundManager.getInstance().startMusic(); }; soundOff = function (){ trace("Stop Music"); myThis.btnOff.visible = false; myThis.btnOn.visible = true; SoundManager.getInstance().stopMusic(); }; myThis = this; if (SoundManager.getInstance().musicEnabled){ myThis.btnOff.visible = true; myThis.btnOn.visible = false; } else { myThis.btnOff.visible = false; myThis.btnOn.visible = true; }; myThis.btnOn.addEventListener(MouseEvent.CLICK, soundOn); myThis.btnOff.addEventListener(MouseEvent.CLICK, soundOff); } } }//package controls
Section 29
//SoundControls (controls.SoundControls) package controls { import flash.display.*; import flash.events.*; public class SoundControls extends MovieClip { public var btnOn:SimpleButton; public var btnOff:SimpleButton; public function SoundControls(){ var myThis:*; var soundOn:Function; var soundOff:Function; super(); soundOn = function (){ myThis.btnOn.visible = false; myThis.btnOff.visible = true; SoundManager.getInstance().soundsEnabled = true; }; soundOff = function (){ myThis.btnOff.visible = false; myThis.btnOn.visible = true; SoundManager.getInstance().soundsEnabled = false; SoundManager.getInstance().stopSounds(); }; myThis = this; if (SoundManager.getInstance().soundsEnabled){ myThis.btnOff.visible = true; myThis.btnOn.visible = false; } else { myThis.btnOff.visible = false; myThis.btnOn.visible = true; }; myThis.btnOn.addEventListener(MouseEvent.CLICK, soundOn); myThis.btnOff.addEventListener(MouseEvent.CLICK, soundOff); } } }//package controls
Section 30
//TrackSelect (controls.TrackSelect) package controls { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.text.*; public class TrackSelect extends MovieClip { public var countryText:TextField; public var select:MovieClip; private var colorTransform:ColorTransform; public var btn:SimpleButton; private var instance:TrackSelect; public var trackID:int; public var controller; private static var trackSelectButtonArray:Array = []; public function TrackSelect(){ instance = this; colorTransform = new ColorTransform(); colorTransform.color = 0xFFFFFF; instance.transform.colorTransform = colorTransform; } public function init(_arg1:int, _arg2){ controller = _arg2; select.visible = (Constants.TRACK_ID == _arg1); btn.addEventListener(MouseEvent.ROLL_OVER, OnRollOver); btn.addEventListener(MouseEvent.ROLL_OUT, OnRollOut); btn.addEventListener(MouseEvent.CLICK, OnClick); trackSelectButtonArray.push(this); } private function OnRollOver(_arg1:MouseEvent){ colorTransform.color = 0xFFCC00; instance.transform.colorTransform = colorTransform; } private function OnRollOut(_arg1:MouseEvent){ colorTransform.color = 0xFFFFFF; instance.transform.colorTransform = colorTransform; } private function OnClick(_arg1:MouseEvent){ var _local2:*; controller.changeTrack(trackID); _local2 = 0; while (_local2 < trackSelectButtonArray.length) { trackSelectButtonArray[_local2].select.visible = (Constants.TRACK_ID == _local2); _local2++; }; } public function set label(_arg1:String){ countryText.text = _arg1; } public static function reset(){ trackSelectButtonArray = []; } } }//package controls
Section 31
//DistortImage (display.DistortImage) package display { import flash.display.*; import flash.geom.*; public class DistortImage { protected var _yMax:Number; protected var _hsLen:Number; protected var _sMat:Matrix; protected var _hseg:uint; protected var _vsLen:Number; protected var _xMin:Number; protected var _h:Number; protected var _xMax:Number; protected var _tri:Array; protected var _p:Array; public var smoothing:Boolean;// = false protected var _yMin:Number; protected var _tMat:Matrix; protected var _vseg:uint; protected var _w:Number; public function DistortImage(_arg1:Number, _arg2:Number, _arg3:uint=2, _arg4:uint=2):void{ smoothing = false; super(); _w = _arg1; _h = _arg2; _vseg = _arg4; _hseg = _arg3; __init(); } public function setSize(_arg1:Number, _arg2:Number):void{ this._w = _arg1; this._h = _arg2; this.__init(); } public function get width():Number{ return (_w); } protected function __init():void{ var _local1:Number; var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; _p = new Array(); _tri = new Array(); _local3 = (_w / 2); _local4 = (_h / 2); _xMin = (_yMin = 0); _xMax = _w; _yMax = _h; _hsLen = (_w / (_hseg + 1)); _vsLen = (_h / (_vseg + 1)); _local1 = 0; while (_local1 < (_vseg + 2)) { _local2 = 0; while (_local2 < (_hseg + 2)) { _local5 = (_local1 * _hsLen); _local6 = (_local2 * _vsLen); _p.push({x:_local5, y:_local6, sx:_local5, sy:_local6}); _local2++; }; _local1++; }; _local1 = 0; while (_local1 < (_vseg + 1)) { _local2 = 0; while (_local2 < (_hseg + 1)) { _tri.push([_p[(_local2 + (_local1 * (_hseg + 2)))], _p[((_local2 + (_local1 * (_hseg + 2))) + 1)], _p[(_local2 + ((_local1 + 1) * (_hseg + 2)))]]); _tri.push([_p[((_local2 + ((_local1 + 1) * (_hseg + 2))) + 1)], _p[(_local2 + ((_local1 + 1) * (_hseg + 2)))], _p[((_local2 + (_local1 * (_hseg + 2))) + 1)]]); _local2++; }; _local1++; }; } public function setPrecision(_arg1:Number, _arg2:Number):void{ this._hseg = _arg1; this._vseg = _arg2; this.__init(); } public function setTransform(_arg1:Graphics, _arg2:BitmapData, _arg3:Point, _arg4:Point, _arg5:Point, _arg6:Point):void{ var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Object; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; _local7 = (_arg6.x - _arg3.x); _local8 = (_arg6.y - _arg3.y); _local9 = (_arg5.x - _arg4.x); _local10 = (_arg5.y - _arg4.y); _local11 = _p.length; while (--_local11 > -1) { _local12 = _p[_local11]; _local13 = ((_local12.x - _xMin) / _w); _local14 = ((_local12.y - _yMin) / _h); _local15 = (_arg3.x + (_local14 * _local7)); _local16 = (_arg3.y + (_local14 * _local8)); _local12.sx = (_local15 + (_local13 * ((_arg4.x + (_local14 * _local9)) - _local15))); _local12.sy = (_local16 + (_local13 * ((_arg4.y + (_local14 * _local10)) - _local16))); }; __render(_arg1, _arg2); } public function get height():Number{ return (_h); } public function get vPrecision():uint{ return (_vseg); } protected function __render(_arg1:Graphics, _arg2:BitmapData):void{ var _local3:Number; var _local4:Array; var _local5:Object; var _local6:Object; var _local7:Object; var _local8:Array; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; _arg1.clear(); _sMat = new Matrix(); _tMat = new Matrix(); _local9 = _tri.length; while (--_local9 > -1) { _local8 = _tri[_local9]; _local5 = _local8[0]; _local6 = _local8[1]; _local7 = _local8[2]; _local10 = _local5.sx; _local11 = _local5.sy; _local12 = _local6.sx; _local13 = _local6.sy; _local14 = _local7.sx; _local15 = _local7.sy; _local16 = _local5.x; _local17 = _local5.y; _local18 = _local6.x; _local19 = _local6.y; _local20 = _local7.x; _local21 = _local7.y; _tMat.tx = _local16; _tMat.ty = _local17; _tMat.a = ((_local18 - _local16) / _w); _tMat.b = ((_local19 - _local17) / _w); _tMat.c = ((_local20 - _local16) / _h); _tMat.d = ((_local21 - _local17) / _h); _sMat.a = ((_local12 - _local10) / _w); _sMat.b = ((_local13 - _local11) / _w); _sMat.c = ((_local14 - _local10) / _h); _sMat.d = ((_local15 - _local11) / _h); _sMat.tx = _local10; _sMat.ty = _local11; _tMat.invert(); _tMat.concat(_sMat); _arg1.beginBitmapFill(_arg2, _tMat, false, false); _arg1.moveTo(_local10, _local11); _arg1.lineTo(_local12, _local13); _arg1.lineTo(_local14, _local15); _arg1.endFill(); }; } public function get hPrecision():uint{ return (_hseg); } } }//package display
Section 32
//Explosion2D (display.Explosion2D) package display { import flash.display.*; public class Explosion2D { public var y:Number; private var container:Sprite; public var remove:Boolean;// = false private var i:int; private var particleCount:int; private var particle:Particle2D; private var particleNumber:int;// = 20 private var particleArray:Array; public var x:Number; public function Explosion2D(_arg1:Number, _arg2:Number, _arg3:Sprite){ remove = false; particleNumber = 20; particleArray = []; super(); container = _arg3; x = _arg1; y = _arg2; i = 0; while (i < particleNumber) { particle = new Particle2D(x, y, container); particleArray.push(particle); i++; }; } public function render():void{ particleCount = particleArray.length; while (particleCount--) { particle = particleArray[particleCount]; particle.render(); if (particle.killMe){ particle.remove(); delete particleArray[particleCount]; particleArray.splice(particleCount, 1); }; }; if (particleArray.length == 0){ remove = true; }; } } }//package display
Section 33
//ExplosionManager (display.ExplosionManager) package display { import flash.display.*; public class ExplosionManager { private var explosion2D:Explosion2D; private var container:Sprite; private var i:int; private var explosion2DArrayLength:int;// = 0 private var explosion2DArray:Array; public function ExplosionManager(_arg1:Sprite){ explosion2DArray = new Array(); explosion2DArrayLength = 0; super(); container = _arg1; } public function createExplosion2D(){ explosion2D = new Explosion2D(Constants.BIKE_START_X, (Constants.BIKE_START_Y - 100), container); explosion2DArray.push(explosion2D); } public function render(){ explosion2DArrayLength = explosion2DArray.length; while (explosion2DArrayLength--) { explosion2D = explosion2DArray[explosion2DArrayLength]; if (explosion2D.remove){ explosion2DArray.splice(explosion2DArrayLength, 1); } else { explosion2D.render(); }; }; } } }//package display
Section 34
//Flag (display.Flag) package display { import flash.display.*; import flash.geom.*; import flash.filters.*; public class Flag { private var output:BitmapData; private var width:Number; private var light:BitmapData; private var displacement:DisplacementMapFilter; private var perlinNoiseOffset:Array; private var source:BitmapData; private var flagOffset:Point; private var gray:ColorMatrixFilter; private var height:Number; private var flag:BitmapData; private var perlinNoiseFallOff:BitmapData; private var bounds:Rectangle; private var perlinNoiseSeed:Number; private var lightContrast:ColorTransform; private var perlinNoiseBitmapData:BitmapData; private static var IDENTITY:Matrix = new Matrix(); private static var ORIGIN:Point = new Point(); public function Flag(_arg1:BitmapData, _arg2:BitmapData){ this.source = _arg1; this.output = _arg2; create(); } public function update():void{ flag.copyPixels(source, source.rect, flagOffset); } private function createPerlinNoiseFallOffGradient():void{ perlinNoiseFallOff = new BitmapData(width, height, true, 0); } public function render(){ output.fillRect(bounds, 0); perlinNoiseOffset[0].x = (perlinNoiseOffset[0].x + (0.03 * source.width)); perlinNoiseOffset[1].x = (perlinNoiseOffset[1].x + (0.03 * source.height)); perlinNoiseBitmapData.perlinNoise((1 * source.width), (1 * source.height), 2, perlinNoiseSeed, false, true, 6, false, perlinNoiseOffset); perlinNoiseBitmapData.copyPixels(perlinNoiseFallOff, bounds, ORIGIN, perlinNoiseFallOff, ORIGIN, true); output.applyFilter(flag, bounds, ORIGIN, displacement); light.copyPixels(perlinNoiseBitmapData, bounds, ORIGIN, output, ORIGIN); light.applyFilter(light, bounds, ORIGIN, gray); output.draw(light, IDENTITY, lightContrast, "overlay"); } public function appearMoreFabric():void{ var _local1:BitmapData; _local1 = new BitmapData(source.width, source.height, false, 0); } private function createGrayFilter():void{ gray = new ColorMatrixFilter([0, 0, 0.35, 0, 0, 0, 0, 0.35, 0, 0, 0, 0, 0.35, 0, 0, 0, 0, 0.35, 0.4, 0]); } public function getFlagBitmapData():BitmapData{ return (flag); } private function create():void{ width = output.width; height = output.height; bounds = output.rect; flag = new BitmapData(width, height, true, 0); flagOffset = new Point(((width - source.width) / 2), ((height - source.height) / 2)); createGrayFilter(); createPerlinNoiseFallOffGradient(); flag.copyPixels(source, source.rect, flagOffset); perlinNoiseBitmapData = new BitmapData(width, height, false, 0); perlinNoiseOffset = [new Point(), new Point()]; perlinNoiseSeed = Math.floor((Math.random() * 0x0100)); displacement = new DisplacementMapFilter(perlinNoiseBitmapData, ORIGIN, 2, 4, (0.125 * source.width), (0.2 * source.height), "ignore"); light = new BitmapData(width, height, true, 0); lightContrast = new ColorTransform(4, 4, 4, 1, 0, 0, 0, 0); } } }//package display
Section 35
//Fx (display.Fx) package display { import flash.display.*; import caurina.transitions.*; import flash.filters.*; import flash.utils.*; public class Fx extends Sprite { public function zoomIn(_arg1:DisplayObject, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number, _arg8:Number, _arg9:String, _arg10:Function){ var _initTime:Number; var _interval:Number; var angle:Number; var blurX:*; var blurY:*; var mc:DisplayObject; var wait:*; var blurFilter:BlurFilter; var _animate:Function; var onMotionStopped:Function; var _mc = _arg1; var delay = _arg2; var duration = _arg3; var startX = _arg4; var startY = _arg5; var finishX = _arg6; var finishY = _arg7; var blur = _arg8; var transition = _arg9; var callBack = _arg10; _animate = function (){ mc.filters = [blurFilter]; Tweener.addTween(mc, {x:finishX, y:finishY, time:duration, transition:transition, onComplete:onMotionStopped}); }; onMotionStopped = function (){ this.filters = []; callBack(); }; _initTime = getTimer(); angle = Math.atan2((finishY - startY), (finishX - startX)); blurX = Math.abs(Math.floor((Math.cos(angle) * blur))); blurY = Math.abs(Math.floor((Math.sin(angle) * blur))); mc = _mc; wait = (1000 * delay); mc.x = startX; mc.y = startY; blurFilter = new BlurFilter(blurX, blurY, 1); _interval = setTimeout(_animate, wait); } public function padScore(_arg1:int, _arg2:int){ var _local3:*; var _local4:*; _local3 = "000000000000000000000"; _local4 = _arg1.toString(); if (_local4.length < _arg2){ _local4 = (_local3.substring(0, (_arg2 - _local4.length)) + _local4); }; return (_local4); } } }//package display
Section 36
//GameOverDisplay (display.GameOverDisplay) package display { import flash.display.*; import flash.events.*; import flash.filters.*; import flash.net.*; import flash.text.*; import flash.ui.*; public class GameOverDisplay extends MovieClip { private var mySO:SharedObject; public var bestText:TextField; public var btnReplay:credits_playAgainBtn; private var core:Core; private var fx:Fx; public var scoreText:TextField; public function GameOverDisplay(){ fx = new Fx(); super(); } function init(){ mySO = SharedObject.getLocal("userData"); trace(mySO.data.australia); trace(mySO.data.china); trace(Constants.TRACK_ID); if (Constants.TRACK_ID == 0){ if (mySO.data.australia != undefined){ if (mySO.data.australia < GameManager.getInstance().gameScore){ bestText.text = ("Current Best " + TimeKeeper.display(mySO.data.australia)); } else { bestText.text = "New Track Record!"; mySO.data.australia = GameManager.getInstance().gameScore; mySO.flush(); }; } else { bestText.text = "New Track Record!"; mySO.data.australia = GameManager.getInstance().gameScore; mySO.flush(); }; } else { trace("At China"); if (mySO.data.china != undefined){ if (mySO.data.china < GameManager.getInstance().gameScore){ bestText.text = ("Current Best " + TimeKeeper.display(mySO.data.china)); } else { bestText.text = "New Track Record!"; mySO.data.china = GameManager.getInstance().gameScore; mySO.flush(); }; } else { bestText.text = "New Track Record!"; mySO.data.china = GameManager.getInstance().gameScore; mySO.flush(); }; }; scoreText.text = TimeKeeper.display(GameManager.getInstance().gameScore); btnReplay.addEventListener(MouseEvent.CLICK, playGame); } function submitScore(_arg1:MouseEvent){ GameManager.getInstance().setState("Submit"); } function playGame(_arg1:MouseEvent){ GameManager.getInstance().setState("Credits"); } } }//package display
Section 37
//Hud (display.Hud) package display { import flash.display.*; import flash.text.*; public class Hud extends MovieClip { public var speedo:MovieClip; private var lapOffsetY:Number;// = 485 public var wrongway:MovieClip; private var offsetX:Number;// = -610 private var offsetY:Number;// = 500 public var countdown:MovieClip; private var lapOffsetX:Number;// = -535 private var timer:TimeKeeper; private var gameOverClip:MovieClip; private var dialMaxAngle:Number;// = 350 public var currentLap:int;// = 1 private var currentLapTime:Number;// = 0 public var lapsText:TextField; private var core:Core; public var lapTimesArray:Array; public var controls:Controls; private var totalLaps:int; private var previousLapsTotal:Number;// = 0 private var dialRange:Number; private var fx; private var gap:Number;// = 17 private var dialMinAngle:Number;// = 180 public var lapTimerDisplay:MovieClip; public function Hud(){ lapTimesArray = []; currentLap = 1; currentLapTime = 0; previousLapsTotal = 0; offsetX = -610; offsetY = 500; lapOffsetX = -535; lapOffsetY = 485; gap = 17; dialMinAngle = 180; dialMaxAngle = 350; dialRange = (dialMaxAngle - dialMinAngle); fx = new Fx(); super(); core = Core.getInstance(); totalLaps = core.track.laps; x = 600; y = 0; speedo.dial.rotation = dialMinAngle; lapsText.text = ((currentLap + "/") + totalLaps); wrongWayOff(); } public function wrongWayOff(){ wrongway.visible = false; } public function startTimer(){ timer = new TimeKeeper(0); timer.start(); } public function getTime(){ return (timer.getMili()); } public function wrongWayOn(){ wrongway.visible = true; } public function stopTimer(){ timer.stop(); } public function render(){ speedo.dial.rotation = ((((core.bike.speed / Constants.BIKE_MAX_SPEED) * dialRange) + dialMinAngle) + (Math.random() * 2)); if (timer != null){ lapTimerDisplay.Mask.totalTimeText.text = timer.displayTime(); }; } public function lap(){ var _local1:*; trace("HUD LAP COMPLETED"); currentLapTime = (timer.getMili() - previousLapsTotal); previousLapsTotal = (previousLapsTotal + currentLapTime); lapTimesArray.push(currentLapTime); currentLap++; _local1 = new Laptime(); _local1.x = lapOffsetX; _local1.y = (lapOffsetY + (currentLap * gap)); if (currentLap > totalLaps){ currentLap = totalLaps; }; lapsText.text = ((currentLap + "/") + totalLaps); addChild(_local1); _local1.timerText.text = TimeKeeper.display(currentLapTime); } public function gameOver(){ gameOverClip = new src_gameover(); gameOverClip.init(); gameOverClip.x = 0; addChild(gameOverClip); fx.zoomIn(gameOverClip, 0, 0.25, -300, 3000, -300, 300, 20, "easeOut", null); } public function bonus(){ SoundManager.getInstance().playSound("Sound_Bonus"); timer.subMili(Constants.TIME_BONUS); } } }//package display
Section 38
//Particle2D (display.Particle2D) package display { import flash.display.*; public class Particle2D { public var vx:Number; public var vy:Number; private var container:Sprite; public var step:Number;// = 0 private var particle:Sprite; public var gravity:Number; public var killMe:Boolean;// = false public var rot:Number; public var steps:Number; public var decay:Number;// = 0.999 private var counter:int;// = 0 public function Particle2D(_arg1:Number, _arg2:Number, _arg3:Sprite){ var _local4:*; step = 0; decay = 0.999; killMe = false; counter = 0; super(); container = _arg3; steps = 20; particle = new particleSprite2D(); particle.x = _arg1; particle.y = _arg2; container.addChild(particle); gravity = ((Math.random() * -2) - 1); vx = (Math.random() * 20); if (Math.random() > 0.5){ vx = (vx * -1); }; vy = ((Math.random() * -15) - 5); _local4 = ((Math.random() * 1.3) + 0.1); particle.scaleX = _local4; particle.scaleY = _local4; rot = ((Math.random() * 10) + 10); if (Math.random() > 0.5){ rot = (rot * -1); }; container.addChild(particle); } public function remove(){ container.removeChild(particle); } public function render():void{ counter++; if (counter == 2){ particle.alpha = 100; }; particle.x = (particle.x + vx); particle.y = (particle.y + vy); vx = (vx * decay); particle.rotation = (particle.rotation + rot); vy = (vy - gravity); step++; if (step > steps){ killMe = true; }; } } }//package display
Section 39
//ParticleStreak (display.ParticleStreak) package display { import flash.display.*; public class ParticleStreak { public var vx:Number; public var vy:Number; private var container:Sprite; public var step:Number;// = 0 private var particle:Sprite; public var gravity:Number; public var killMe:Boolean;// = false public var rot:Number; public var steps:Number; public var decay:Number;// = 0.999 private var counter:int;// = 0 public function ParticleStreak(_arg1:Number, _arg2:Number, _arg3:Sprite){ var _local4:*; var _local5:*; step = 0; decay = 0.999; killMe = false; counter = 0; super(); container = _arg3; steps = 20; particle = new particleStreak(); particle.x = _arg1; particle.y = _arg2; container.addChild(particle); vx = ((((Math.random() * -40) - 20) * (_arg2 - 300)) / 100); vy = gravity; _local4 = ((Math.random() * 1.3) + 0.1); _local5 = ((Math.random() * 0.5) + 0.1); particle.scaleX = _local4; particle.scaleY = _local5; particle.alpha = (((_arg2 - 300) / 200) * 0.5); container.addChild(particle); } public function remove(){ container.removeChild(particle); } public function render():void{ particle.x = (particle.x + vx); if (particle.x < -100){ particle.x = (particle.x + 800); }; } } }//package display
Section 40
//Skybox (display.Skybox) package display { import flash.display.*; public class Skybox extends MovieClip { var skyWidth:Number; public var sky:MovieClip; var groundWidth:Number; var cloudWidth:Number; var skyBase:Number; var cloudBase:Number; var angle:Number; var groundBase:Number; public function Skybox(){ skyWidth = (sky.width / 2); skyBase = sky.x; } public function render(_arg1:Number){ _arg1 = (_arg1 % 360); if (_arg1 < 0){ _arg1 = (_arg1 + 360); }; sky.x = ((-(_arg1) / 360) * skyWidth); if (sky.x < (skyBase - skyWidth)){ sky.x = (sky.x + skyWidth); } else { if (sky.x > skyBase){ sky.x = (sky.x - skyWidth); }; }; } } }//package display
Section 41
//TimeKeeper (display.TimeKeeper) package display { import flash.utils.*; public class TimeKeeper { private var oldTime:Number;// = 0 private var countdownTime:Number;// = 0 private var isCountdown:Boolean;// = false private var totalTime:Number;// = 0 private var pause:Boolean;// = false public function TimeKeeper(_arg1:Number){ oldTime = 0; pause = false; totalTime = 0; isCountdown = false; countdownTime = 0; super(); if (_arg1 != 0){ isCountdown = true; countdownTime = _arg1; }; this.reset(); } public function stop(){ if (!this.pause){ this.pause = true; this.totalTime = (this.totalTime + (getTimer() - this.oldTime)); }; } public function getTime(_arg1){ if (isCountdown){ return ((countdownTime - _arg1)); }; return (_arg1); } public function displayHour(){ var _local1:*; var _local2:*; var _local3:*; var _local4:*; _local1 = this.getMili(); _local2 = Math.floor((_local1 / 1000)); _local3 = Math.floor((_local2 / 60)); _local4 = Math.floor((_local3 / 60)); return (_local4); } public function getMili(){ var _local1:*; _local1 = this.totalTime; if (!this.pause){ _local1 = (_local1 + (getTimer() - this.oldTime)); }; return (getTime(_local1)); } public function getMins(){ var _local1:*; _local1 = (this.totalTime / 1000); if (!this.pause){ _local1 = (_local1 + (((getTimer() - this.oldTime) / 1000) / 60)); }; return (Math.round(getTime(_local1))); } public function addMili(_arg1){ this.totalTime = Math.max(0, (this.totalTime + _arg1)); } public function reset(){ this.oldTime = 0; this.pause = true; this.totalTime = 0; } public function start(){ if (this.pause){ this.pause = false; this.oldTime = getTimer(); }; } public function displayTime(){ var _local1:*; var _local2:*; _local1 = three(displayMili()); _local1 = _local1.substring(0, 3); _local2 = ((((displayMin() + "'") + two(displaySec())) + "\"") + _local1); return (_local2); } public function displayMin(){ var _local1:*; var _local2:*; var _local3:*; _local1 = this.getMili(); _local2 = Math.floor((_local1 / 1000)); _local3 = Math.floor((_local2 / 60)); _local3 = (_local3 % 60); return (_local3); } public function displaySec(){ var _local1:*; var _local2:*; _local1 = this.getMili(); _local2 = Math.floor((_local1 / 1000)); _local2 = (_local2 % 60); return (_local2); } public function getSecs(){ var _local1:*; _local1 = (this.totalTime / 1000); if (!this.pause){ _local1 = (_local1 + ((getTimer() - this.oldTime) / 1000)); }; return (Math.round(getTime(_local1))); } public function subMili(_arg1){ this.totalTime = (this.totalTime - _arg1); } public function displayMili(){ var _local1:*; _local1 = this.getMili(); _local1 = (_local1 % 1000); return (_local1); } public static function display(_arg1:Number){ var _local2:*; var _local3:*; _local2 = Math.floor((_arg1 / 1000)); _local3 = Math.floor((_local2 / 60)); return ((((((_local3 % 60) + "'") + two((_local2 % 60))) + "\"") + three((_arg1 % 1000)))); } private static function two(_arg1){ return ((((_arg1)>9) ? "" : "0" + _arg1)); } private static function three(_arg1){ return (((((_arg1)>99) ? "" : "0" + ((_arg1)>9) ? "" : "0") + _arg1)); } } }//package display
Section 42
//Wheel (display.Wheel) package display { import flash.display.*; import flash.events.*; public class Wheel extends MovieClip { public var base:MovieClip; public function render(){ base.y = (base.y - (Core.getInstance().bike.speed * 0.75)); if (base.y < -150){ base.y = -100; }; } } }//package display
Section 43
//BaseScrollPane (fl.containers.BaseScrollPane) package fl.containers { import fl.core.*; import fl.controls.*; import flash.display.*; import flash.geom.*; import flash.events.*; import fl.events.*; 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 44
//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 45
//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 46
//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 47
//BaseButton (fl.controls.BaseButton) package fl.controls { import fl.core.*; import flash.display.*; import flash.events.*; import fl.events.*; import flash.utils.*; 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 48
//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 49
//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 50
//ComboBox (fl.controls.ComboBox) package fl.controls { import fl.controls.listClasses.*; import fl.core.*; import flash.display.*; import flash.geom.*; import flash.events.*; import fl.data.*; import fl.managers.*; import fl.events.*; import flash.text.*; import flash.ui.*; public class ComboBox extends UIComponent implements IFocusManagerComponent { protected var _dropdownWidth:Number; protected var highlightedCell:int;// = -1 protected var _prompt:String; protected var isOpen:Boolean;// = false protected var list:List; protected var _rowCount:uint;// = 5 protected var currentIndex:int; protected var isKeyDown:Boolean;// = false protected var _labels:Array; protected var background:BaseButton; protected var inputField:TextInput; protected var listOverIndex:uint; protected var editableValue:String; protected var _editable:Boolean;// = false private var collectionItemImport:SimpleCollectionItem; protected static const BACKGROUND_STYLES:Object = {overSkin:"overSkin", downSkin:"downSkin", upSkin:"upSkin", disabledSkin:"disabledSkin", repeatInterval:"repeatInterval"}; protected static const LIST_STYLES:Object = {upSkin:"comboListUpSkin", overSkin:"comboListOverSkin", downSkin:"comobListDownSkin", disabledSkin:"comboListDisabledSkin", downArrowDisabledSkin:"downArrowDisabledSkin", downArrowDownSkin:"downArrowDownSkin", downArrowOverSkin:"downArrowOverSkin", downArrowUpSkin:"downArrowUpSkin", upArrowDisabledSkin:"upArrowDisabledSkin", upArrowDownSkin:"upArrowDownSkin", upArrowOverSkin:"upArrowOverSkin", upArrowUpSkin:"upArrowUpSkin", thumbDisabledSkin:"thumbDisabledSkin", thumbDownSkin:"thumbDownSkin", thumbOverSkin:"thumbOverSkin", thumbUpSkin:"thumbUpSkin", thumbIcon:"thumbIcon", trackDisabledSkin:"trackDisabledSkin", trackDownSkin:"trackDownSkin", trackOverSkin:"trackOverSkin", trackUpSkin:"trackUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval", textFormat:"textFormat", disabledAlpha:"disabledAlpha", skin:"listSkin"}; private static var defaultStyles:Object = {upSkin:"ComboBox_upSkin", downSkin:"ComboBox_downSkin", overSkin:"ComboBox_overSkin", disabledSkin:"ComboBox_disabledSkin", focusRectSkin:null, focusRectPadding:null, textFormat:null, disabledTextFormat:null, textPadding:3, buttonWidth:24, disabledAlpha:null, listSkin:null}; public static var createAccessibilityImplementation:Function; public function ComboBox(){ _rowCount = 5; _editable = false; isOpen = false; highlightedCell = -1; isKeyDown = false; super(); } protected function drawList():void{ list.rowCount = Math.max(0, Math.min(_rowCount, list.dataProvider.length)); } public function set imeMode(_arg1:String):void{ inputField.imeMode = _arg1; } public function get dropdown():List{ return (list); } public function get dropdownWidth():Number{ return (list.width); } public function sortItemsOn(_arg1:String, _arg2:Object=null){ return (list.sortItemsOn(_arg1, _arg2)); } protected function onEnter(_arg1:ComponentEvent):void{ _arg1.stopPropagation(); } public function removeItemAt(_arg1:uint):void{ list.removeItemAt(_arg1); invalidate(InvalidationType.DATA); } public function open():void{ currentIndex = selectedIndex; if (((isOpen) || ((length == 0)))){ return; }; dispatchEvent(new Event(Event.OPEN)); isOpen = true; addEventListener(Event.ENTER_FRAME, addCloseListener, false, 0, true); positionList(); list.scrollToSelected(); stage.addChild(list); } public function get selectedItem():Object{ return (list.selectedItem); } public function set text(_arg1:String):void{ if (!editable){ return; }; inputField.text = _arg1; } public function get labelField():String{ return (list.labelField); } override protected function keyDownHandler(_arg1:KeyboardEvent):void{ var _local2:int; var _local3:uint; var _local4:Number; var _local5:int; isKeyDown = true; if (_arg1.ctrlKey){ switch (_arg1.keyCode){ case Keyboard.UP: if (highlightedCell > -1){ selectedIndex = highlightedCell; dispatchEvent(new Event(Event.CHANGE)); }; close(); break; case Keyboard.DOWN: open(); break; }; return; }; _arg1.stopPropagation(); _local2 = Math.max(((calculateAvailableHeight() / list.rowHeight) << 0), 1); _local3 = selectedIndex; _local4 = ((highlightedCell)==-1) ? selectedIndex : highlightedCell; _local5 = -1; switch (_arg1.keyCode){ case Keyboard.SPACE: if (isOpen){ close(); } else { open(); }; return; case Keyboard.ESCAPE: if (isOpen){ if (highlightedCell > -1){ selectedIndex = selectedIndex; }; close(); }; return; case Keyboard.UP: _local5 = Math.max(0, (_local4 - 1)); break; case Keyboard.DOWN: _local5 = Math.min((length - 1), (_local4 + 1)); break; case Keyboard.PAGE_UP: _local5 = Math.max((_local4 - _local2), 0); break; case Keyboard.PAGE_DOWN: _local5 = Math.min((_local4 + _local2), (length - 1)); break; case Keyboard.HOME: _local5 = 0; break; case Keyboard.END: _local5 = (length - 1); break; case Keyboard.ENTER: if (((_editable) && ((highlightedCell == -1)))){ editableValue = inputField.text; selectedIndex = -1; } else { if (((isOpen) && ((highlightedCell > -1)))){ editableValue = null; selectedIndex = highlightedCell; dispatchEvent(new Event(Event.CHANGE)); }; }; dispatchEvent(new ComponentEvent(ComponentEvent.ENTER)); close(); return; default: if (editable){ break; }; _local5 = list.getNextIndexAtLetter(String.fromCharCode(_arg1.keyCode), _local4); break; }; if (_local5 > -1){ if (isOpen){ highlightCell(_local5); inputField.text = list.itemToLabel(getItemAt(_local5)); } else { highlightCell(); selectedIndex = _local5; dispatchEvent(new Event(Event.CHANGE)); }; }; } public function set dropdownWidth(_arg1:Number):void{ _dropdownWidth = _arg1; invalidate(InvalidationType.SIZE); } public function get editable():Boolean{ return (_editable); } override protected function focusInHandler(_arg1:FocusEvent):void{ super.focusInHandler(_arg1); if (editable){ stage.focus = inputField.textField; }; } protected function onStageClick(_arg1:MouseEvent):void{ if (!isOpen){ return; }; if (((!(contains((_arg1.target as DisplayObject)))) && (!(list.contains((_arg1.target as DisplayObject)))))){ if (highlightedCell != -1){ selectedIndex = highlightedCell; dispatchEvent(new Event(Event.CHANGE)); }; close(); }; } protected function handleDataChange(_arg1:DataChangeEvent):void{ invalidate(InvalidationType.DATA); } override protected function keyUpHandler(_arg1:KeyboardEvent):void{ isKeyDown = false; } protected function onListItemUp(_arg1:MouseEvent):void{ var _local2:*; stage.removeEventListener(MouseEvent.MOUSE_UP, onListItemUp); if (((!((_arg1.target is ICellRenderer))) || (!(list.contains((_arg1.target as DisplayObject)))))){ return; }; editableValue = null; _local2 = selectedIndex; selectedIndex = _arg1.target.listData.index; if (_local2 != selectedIndex){ dispatchEvent(new Event(Event.CHANGE)); }; close(); } public function removeAll():void{ list.removeAll(); inputField.text = ""; invalidate(InvalidationType.DATA); } public function set selectedItem(_arg1:Object):void{ list.selectedItem = _arg1; invalidate(InvalidationType.SELECTED); } protected function highlightCell(_arg1:int=-1):void{ var _local2:ICellRenderer; if (highlightedCell > -1){ _local2 = list.itemToCellRenderer(getItemAt(highlightedCell)); if (_local2 != null){ _local2.setMouseState("up"); }; }; if (_arg1 == -1){ return; }; list.scrollToIndex(_arg1); list.drawNow(); _local2 = list.itemToCellRenderer(getItemAt(_arg1)); if (_local2 != null){ _local2.setMouseState("over"); highlightedCell = _arg1; }; } public function itemToLabel(_arg1:Object):String{ if (_arg1 == null){ return (""); }; return (list.itemToLabel(_arg1)); } public function addItemAt(_arg1:Object, _arg2:uint):void{ list.addItemAt(_arg1, _arg2); invalidate(InvalidationType.DATA); } public function replaceItemAt(_arg1:Object, _arg2:uint):Object{ return (list.replaceItemAt(_arg1, _arg2)); } protected function showPrompt():void{ inputField.text = _prompt; } public function set rowCount(_arg1:uint):void{ _rowCount = _arg1; invalidate(InvalidationType.SIZE); } public function get restrict():String{ return (inputField.restrict); } protected function setEmbedFonts():void{ var _local1:Object; _local1 = getStyleValue("embedFonts"); if (_local1 != null){ inputField.textField.embedFonts = _local1; }; } public function sortItems(... _args){ return (list.sortItems.apply(list, _args)); } public function set labelField(_arg1:String):void{ list.labelField = _arg1; invalidate(InvalidationType.DATA); } public function set editable(_arg1:Boolean):void{ _editable = _arg1; drawTextField(); } public function set prompt(_arg1:String):void{ if (_arg1 == ""){ _prompt = null; } else { _prompt = _arg1; }; invalidate(InvalidationType.STATE); } public function get length():int{ return (list.length); } protected function drawTextField():void{ inputField.setStyle("upSkin", ""); inputField.setStyle("disabledSkin", ""); inputField.enabled = enabled; inputField.editable = _editable; inputField.textField.selectable = ((enabled) && (_editable)); inputField.mouseEnabled = (inputField.mouseChildren = ((enabled) && (_editable))); inputField.focusEnabled = false; if (_editable){ inputField.addEventListener(FocusEvent.FOCUS_IN, onInputFieldFocus, false, 0, true); inputField.addEventListener(FocusEvent.FOCUS_OUT, onInputFieldFocusOut, false, 0, true); } else { inputField.removeEventListener(FocusEvent.FOCUS_IN, onInputFieldFocus); inputField.removeEventListener(FocusEvent.FOCUS_OUT, onInputFieldFocusOut); }; } protected function onInputFieldFocusOut(_arg1:FocusEvent):void{ inputField.removeEventListener(ComponentEvent.ENTER, onEnter); selectedIndex = selectedIndex; } protected function passEvent(_arg1:Event):void{ dispatchEvent(_arg1); } public function get imeMode():String{ return (inputField.imeMode); } public function get labelFunction():Function{ return (list.labelFunction); } protected function calculateAvailableHeight():Number{ var _local1:Number; _local1 = Number(getStyleValue("contentPadding")); return ((list.height - (_local1 * 2))); } public function get selectedIndex():int{ return (list.selectedIndex); } override protected function focusOutHandler(_arg1:FocusEvent):void{ isKeyDown = false; if (isOpen){ if (((!(_arg1.relatedObject)) || (!(list.contains(_arg1.relatedObject))))){ if (((!((highlightedCell == -1))) && (!((highlightedCell == selectedIndex))))){ selectedIndex = highlightedCell; dispatchEvent(new Event(Event.CHANGE)); }; close(); }; }; super.focusOutHandler(_arg1); } public function get selectedLabel():String{ if (editableValue != null){ return (editableValue); }; if (selectedIndex == -1){ return (null); }; return (itemToLabel(selectedItem)); } public function get text():String{ return (inputField.text); } protected function onListChange(_arg1:Event):void{ editableValue = null; dispatchEvent(_arg1); invalidate(InvalidationType.SELECTED); if (isKeyDown){ return; }; close(); } protected function onToggleListVisibility(_arg1:MouseEvent):void{ _arg1.stopPropagation(); dispatchEvent(_arg1); if (isOpen){ close(); } else { open(); stage.addEventListener(MouseEvent.MOUSE_UP, onListItemUp, false, 0, true); }; } override protected function draw():void{ var _local1:*; _local1 = selectedIndex; if ((((_local1 == -1)) && (((((!((prompt == null))) || (editable))) || ((length == 0)))))){ _local1 = Math.max(-1, Math.min(_local1, (length - 1))); } else { editableValue = null; _local1 = Math.max(0, Math.min(_local1, (length - 1))); }; if (list.selectedIndex != _local1){ list.selectedIndex = _local1; invalidate(InvalidationType.SELECTED, false); }; if (isInvalid(InvalidationType.STYLES)){ setStyles(); setEmbedFonts(); invalidate(InvalidationType.SIZE, false); }; if (isInvalid(InvalidationType.SIZE, InvalidationType.DATA, InvalidationType.STATE)){ drawTextFormat(); drawLayout(); invalidate(InvalidationType.DATA); }; if (isInvalid(InvalidationType.DATA)){ drawList(); invalidate(InvalidationType.SELECTED, true); }; if (isInvalid(InvalidationType.SELECTED)){ if ((((_local1 == -1)) && (!((editableValue == null))))){ inputField.text = editableValue; } else { if (_local1 > -1){ if (length > 0){ inputField.horizontalScrollPosition = 0; inputField.text = itemToLabel(list.selectedItem); }; } else { if ((((_local1 == -1)) && (!((_prompt == null))))){ showPrompt(); } else { inputField.text = ""; }; }; }; if (((((editable) && ((selectedIndex > -1)))) && ((stage.focus == inputField.textField)))){ inputField.setSelection(0, inputField.length); }; }; drawTextField(); super.draw(); } public function addItem(_arg1:Object):void{ list.addItem(_arg1); invalidate(InvalidationType.DATA); } public function get rowCount():uint{ return (_rowCount); } override protected function configUI():void{ super.configUI(); background = new BaseButton(); background.focusEnabled = false; copyStylesToChild(background, BACKGROUND_STYLES); background.addEventListener(MouseEvent.MOUSE_DOWN, onToggleListVisibility, false, 0, true); addChild(background); inputField = new TextInput(); inputField.focusTarget = (this as IFocusManagerComponent); inputField.focusEnabled = false; inputField.addEventListener(Event.CHANGE, onTextInput, false, 0, true); addChild(inputField); list = new List(); list.focusEnabled = false; copyStylesToChild(list, LIST_STYLES); list.addEventListener(Event.CHANGE, onListChange, false, 0, true); list.addEventListener(ListEvent.ITEM_CLICK, onListChange, false, 0, true); list.addEventListener(ListEvent.ITEM_ROLL_OUT, passEvent, false, 0, true); list.addEventListener(ListEvent.ITEM_ROLL_OVER, passEvent, false, 0, true); list.verticalScrollBar.addEventListener(Event.SCROLL, passEvent, false, 0, true); } protected function positionList():void{ var _local1:Point; _local1 = localToGlobal(new Point(0, 0)); list.x = _local1.x; if (((_local1.y + height) + list.height) > stage.stageHeight){ list.y = (_local1.y - list.height); } else { list.y = (_local1.y + height); }; } public function get value():String{ var _local1:Object; if (editableValue != null){ return (editableValue); }; _local1 = selectedItem; if (((!(_editable)) && (!((_local1.data == null))))){ return (_local1.data); }; return (itemToLabel(_local1)); } public function get prompt():String{ return (_prompt); } public function set dataProvider(_arg1:DataProvider):void{ _arg1.addEventListener(DataChangeEvent.DATA_CHANGE, handleDataChange, false, 0, true); list.dataProvider = _arg1; invalidate(InvalidationType.DATA); } public function set restrict(_arg1:String):void{ if (((componentInspectorSetting) && ((_arg1 == "")))){ _arg1 = null; }; if (!_editable){ return; }; inputField.restrict = _arg1; } protected function onTextInput(_arg1:Event):void{ _arg1.stopPropagation(); if (!_editable){ return; }; editableValue = inputField.text; selectedIndex = -1; dispatchEvent(new Event(Event.CHANGE)); } protected function onInputFieldFocus(_arg1:FocusEvent):void{ inputField.addEventListener(ComponentEvent.ENTER, onEnter, false, 0, true); close(); } public function getItemAt(_arg1:uint):Object{ return (list.getItemAt(_arg1)); } override protected function initializeAccessibility():void{ if (ComboBox.createAccessibilityImplementation != null){ ComboBox.createAccessibilityImplementation(this); }; } protected function drawLayout():void{ var _local1:Number; var _local2:Number; _local1 = (getStyleValue("buttonWidth") as Number); _local2 = (getStyleValue("textPadding") as Number); background.setSize(width, height); inputField.x = (inputField.y = _local2); inputField.setSize(((width - _local1) - _local2), (height - _local2)); list.width = (isNaN(_dropdownWidth)) ? width : _dropdownWidth; background.enabled = enabled; background.drawNow(); } public function removeItem(_arg1:Object):Object{ return (list.removeItem(_arg1)); } private function addCloseListener(_arg1:Event){ removeEventListener(Event.ENTER_FRAME, addCloseListener); if (!isOpen){ return; }; stage.addEventListener(MouseEvent.MOUSE_DOWN, onStageClick, false, 0, true); } public function get dataProvider():DataProvider{ return (list.dataProvider); } public function get textField():TextInput{ return (inputField); } protected function setStyles():void{ copyStylesToChild(background, BACKGROUND_STYLES); copyStylesToChild(list, LIST_STYLES); } public function set labelFunction(_arg1:Function):void{ list.labelFunction = _arg1; invalidate(InvalidationType.DATA); } protected function drawTextFormat():void{ var _local1:TextFormat; _local1 = (getStyleValue((_enabled) ? "textFormat" : "disabledTextFormat") as TextFormat); if (_local1 == null){ _local1 = new TextFormat(); }; inputField.textField.defaultTextFormat = _local1; inputField.textField.setTextFormat(_local1); setEmbedFonts(); } public function set selectedIndex(_arg1:int):void{ list.selectedIndex = _arg1; highlightCell(); invalidate(InvalidationType.SELECTED); } public function close():void{ highlightCell(); highlightedCell = -1; if (!isOpen){ return; }; dispatchEvent(new Event(Event.CLOSE)); stage.removeEventListener(MouseEvent.MOUSE_DOWN, onStageClick); isOpen = false; stage.removeChild(list); } public static function getStyleDefinition():Object{ return (mergeStyles(defaultStyles, List.getStyleDefinition())); } } }//package fl.controls
Section 51
//LabelButton (fl.controls.LabelButton) package fl.controls { import fl.core.*; import flash.display.*; import flash.events.*; import fl.managers.*; import fl.events.*; import flash.text.*; import flash.ui.*; 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 52
//List (fl.controls.List) package fl.controls { import fl.controls.listClasses.*; import fl.core.*; import flash.display.*; import flash.geom.*; import flash.events.*; import fl.managers.*; import flash.utils.*; import flash.ui.*; public class List extends SelectableList implements IFocusManagerComponent { protected var _labelField:String;// = "label" protected var _rowHeight:Number;// = 20 protected var _cellRenderer:Object; protected var _iconField:String;// = "icon" protected var _labelFunction:Function; protected var _iconFunction:Function; private static var defaultStyles:Object = {focusRectSkin:null, focusRectPadding:null}; public static var createAccessibilityImplementation:Function; public function List(){ _rowHeight = 20; _labelField = "label"; _iconField = "icon"; super(); } public function get iconField():String{ return (_iconField); } protected function doKeySelection(_arg1:int, _arg2:Boolean, _arg3:Boolean):void{ var _local4:Boolean; var _local5:int; var _local6:Array; var _local7:int; var _local8:int; _local4 = false; if (_arg2){ _local6 = []; _local7 = lastCaretIndex; _local8 = _arg1; if (_local7 == -1){ _local7 = ((caretIndex)!=-1) ? caretIndex : _arg1; }; if (_local7 > _local8){ _local8 = _local7; _local7 = _arg1; }; _local5 = _local7; while (_local5 <= _local8) { _local6.push(_local5); _local5++; }; selectedIndices = _local6; caretIndex = _arg1; _local4 = true; } else { selectedIndex = _arg1; caretIndex = (lastCaretIndex = _arg1); _local4 = true; }; if (_local4){ dispatchEvent(new Event(Event.CHANGE)); }; invalidate(InvalidationType.DATA); } override protected function drawList():void{ var _local1:Rectangle; var _local2:uint; var _local3:uint; var _local4:uint; var _local5:Object; var _local6:ICellRenderer; var _local7:Dictionary; var _local8:Dictionary; var _local9:Boolean; var _local10:String; var _local11:Object; var _local12:Sprite; var _local13:String; listHolder.x = (listHolder.y = contentPadding); _local1 = listHolder.scrollRect; _local1.x = _horizontalScrollPosition; _local1.y = (Math.floor(_verticalScrollPosition) % rowHeight); listHolder.scrollRect = _local1; listHolder.cacheAsBitmap = useBitmapScrolling; _local2 = Math.floor((_verticalScrollPosition / rowHeight)); _local3 = Math.min(length, ((_local2 + rowCount) + 1)); _local7 = (renderedItems = new Dictionary(true)); _local4 = _local2; while (_local4 < _local3) { _local7[_dataProvider.getItemAt(_local4)] = true; _local4++; }; _local8 = new Dictionary(true); while (activeCellRenderers.length > 0) { _local6 = (activeCellRenderers.pop() as ICellRenderer); _local5 = _local6.data; if ((((_local7[_local5] == null)) || ((invalidItems[_local5] == true)))){ availableCellRenderers.push(_local6); } else { _local8[_local5] = _local6; invalidItems[_local5] = true; }; list.removeChild((_local6 as DisplayObject)); }; invalidItems = new Dictionary(true); _local4 = _local2; while (_local4 < _local3) { _local9 = false; _local5 = _dataProvider.getItemAt(_local4); if (_local8[_local5] != null){ _local9 = true; _local6 = _local8[_local5]; delete _local8[_local5]; } else { if (availableCellRenderers.length > 0){ _local6 = (availableCellRenderers.pop() as ICellRenderer); } else { _local6 = (getDisplayObjectInstance(getStyleValue("cellRenderer")) as ICellRenderer); _local12 = (_local6 as Sprite); if (_local12 != null){ _local12.addEventListener(MouseEvent.CLICK, handleCellRendererClick, false, 0, true); _local12.addEventListener(MouseEvent.ROLL_OVER, handleCellRendererMouseEvent, false, 0, true); _local12.addEventListener(MouseEvent.ROLL_OUT, handleCellRendererMouseEvent, false, 0, true); _local12.addEventListener(Event.CHANGE, handleCellRendererChange, false, 0, true); _local12.doubleClickEnabled = true; _local12.addEventListener(MouseEvent.DOUBLE_CLICK, handleCellRendererDoubleClick, false, 0, true); if (_local12["setStyle"] != null){ for (_local13 in rendererStyles) { var _local16 = _local12; _local16["setStyle"](_local13, rendererStyles[_local13]); }; }; }; }; }; list.addChild((_local6 as Sprite)); activeCellRenderers.push(_local6); _local6.y = (rowHeight * (_local4 - _local2)); _local6.setSize((availableWidth + _maxHorizontalScrollPosition), rowHeight); _local10 = itemToLabel(_local5); _local11 = null; if (_iconFunction != null){ _local11 = _iconFunction(_local5); } else { if (_iconField != null){ _local11 = _local5[_iconField]; }; }; if (!_local9){ _local6.data = _local5; }; _local6.listData = new ListData(_local10, _local11, this, _local4, _local4, 0); _local6.selected = !((_selectedIndices.indexOf(_local4) == -1)); if ((_local6 is UIComponent)){ (_local6 as UIComponent).drawNow(); }; _local4++; }; } public function get iconFunction():Function{ return (_iconFunction); } public function set iconField(_arg1:String):void{ if (_arg1 == _iconField){ return; }; _iconField = _arg1; invalidate(InvalidationType.DATA); } override protected function keyDownHandler(_arg1:KeyboardEvent):void{ var _local2:int; 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))); break; case Keyboard.LEFT: case Keyboard.RIGHT: moveSelectionHorizontally(_arg1.keyCode, ((_arg1.shiftKey) && (_allowMultipleSelection)), ((_arg1.ctrlKey) && (_allowMultipleSelection))); break; case Keyboard.SPACE: if (caretIndex == -1){ caretIndex = 0; }; doKeySelection(caretIndex, _arg1.shiftKey, _arg1.ctrlKey); scrollToSelected(); break; default: _local2 = getNextIndexAtLetter(String.fromCharCode(_arg1.keyCode), selectedIndex); if (_local2 > -1){ selectedIndex = _local2; scrollToSelected(); }; break; }; _arg1.stopPropagation(); } override public function itemToLabel(_arg1:Object):String{ if (_labelFunction != null){ return (String(_labelFunction(_arg1))); }; return (((_arg1[_labelField])!=null) ? String(_arg1[_labelField]) : ""); } public function get labelField():String{ return (_labelField); } override protected function moveSelectionVertically(_arg1:uint, _arg2:Boolean, _arg3:Boolean):void{ var _local4:int; var _local5:int; var _local6:int; _local4 = Math.max(Math.floor((calculateAvailableHeight() / rowHeight)), 1); _local5 = -1; _local6 = 0; switch (_arg1){ case Keyboard.UP: if (caretIndex > 0){ _local5 = (caretIndex - 1); }; break; case Keyboard.DOWN: if (caretIndex < (length - 1)){ _local5 = (caretIndex + 1); }; break; case Keyboard.PAGE_UP: if (caretIndex > 0){ _local5 = Math.max((caretIndex - _local4), 0); }; break; case Keyboard.PAGE_DOWN: if (caretIndex < (length - 1)){ _local5 = Math.min((caretIndex + _local4), (length - 1)); }; break; case Keyboard.HOME: if (caretIndex > 0){ _local5 = 0; }; break; case Keyboard.END: if (caretIndex < (length - 1)){ _local5 = (length - 1); }; break; }; if (_local5 >= 0){ doKeySelection(_local5, _arg2, _arg3); scrollToSelected(); }; } public function set labelField(_arg1:String):void{ if (_arg1 == _labelField){ return; }; _labelField = _arg1; invalidate(InvalidationType.DATA); } public function set rowCount(_arg1:uint):void{ var _local2:Number; var _local3:Number; _local2 = Number(getStyleValue("contentPadding")); _local3 = ((((_horizontalScrollPolicy == ScrollPolicy.ON)) || ((((_horizontalScrollPolicy == ScrollPolicy.AUTO)) && ((_maxHorizontalScrollPosition > 0)))))) ? 15 : 0; height = (((rowHeight * _arg1) + (2 * _local2)) + _local3); } override protected function setHorizontalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{ list.x = -(_arg1); 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); } override protected function moveSelectionHorizontally(_arg1:uint, _arg2:Boolean, _arg3:Boolean):void{ } override protected function setVerticalScrollPosition(_arg1:Number, _arg2:Boolean=false):void{ invalidate(InvalidationType.SCROLL); super.setVerticalScrollPosition(_arg1, true); } 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)); } override protected function draw():void{ var _local1:Boolean; _local1 = !((contentHeight == (rowHeight * length))); contentHeight = (rowHeight * 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(); }; updateChildren(); validate(); } override protected function configUI():void{ useFixedHorizontalScrolling = true; _horizontalScrollPolicy = ScrollPolicy.AUTO; _verticalScrollPolicy = ScrollPolicy.AUTO; super.configUI(); } override public function get rowCount():uint{ return (Math.ceil((calculateAvailableHeight() / rowHeight))); } override protected function initializeAccessibility():void{ if (List.createAccessibilityImplementation != null){ List.createAccessibilityImplementation(this); }; } override public function scrollToIndex(_arg1:int):void{ var _local2:uint; var _local3:uint; drawNow(); _local2 = (Math.floor(((_verticalScrollPosition + availableHeight) / rowHeight)) - 1); _local3 = Math.ceil((_verticalScrollPosition / rowHeight)); if (_arg1 < _local3){ verticalScrollPosition = (_arg1 * rowHeight); } else { if (_arg1 > _local2){ verticalScrollPosition = (((_arg1 + 1) * rowHeight) - availableHeight); }; }; } public function get rowHeight():Number{ return (_rowHeight); } public function set labelFunction(_arg1:Function):void{ if (_labelFunction == _arg1){ return; }; _labelFunction = _arg1; invalidate(InvalidationType.DATA); } public function set rowHeight(_arg1:Number):void{ _rowHeight = _arg1; invalidate(InvalidationType.SIZE); } public static function getStyleDefinition():Object{ return (mergeStyles(defaultStyles, SelectableList.getStyleDefinition())); } } }//package fl.controls
Section 53
//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 54
//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 55
//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 56
//SelectableList (fl.controls.SelectableList) package fl.controls { import fl.controls.listClasses.*; import fl.core.*; import flash.display.*; import flash.events.*; import fl.data.*; import fl.managers.*; import fl.events.*; import flash.utils.*; import fl.containers.*; import flash.ui.*; 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 57
//Slider (fl.controls.Slider) package fl.controls { import fl.core.*; import flash.display.*; import flash.events.*; import fl.managers.*; import fl.events.*; import flash.ui.*; public class Slider extends UIComponent implements IFocusManagerComponent { protected var _direction:String; protected var _liveDragging:Boolean;// = false protected var _value:Number;// = 0 protected var _snapInterval:Number;// = 0 protected var _minimum:Number;// = 0 protected var _maximum:Number;// = 10 protected var track:BaseButton; protected var _tickInterval:Number;// = 0 protected var tickContainer:Sprite; protected var thumb:BaseButton; protected static const TICK_STYLES:Object = {upSkin:"tickSkin"}; protected static const TRACK_STYLES:Object = {upSkin:"sliderTrackSkin", overSkin:"sliderTrackSkin", downSkin:"sliderTrackSkin", disabledSkin:"sliderTrackDisabledSkin"}; protected static const THUMB_STYLES:Object = {upSkin:"thumbUpSkin", overSkin:"thumbOverSkin", downSkin:"thumbDownSkin", disabledSkin:"thumbDisabledSkin"}; protected static var defaultStyles:Object = {thumbUpSkin:"SliderThumb_upSkin", thumbOverSkin:"SliderThumb_overSkin", thumbDownSkin:"SliderThumb_downSkin", thumbDisabledSkin:"SliderThumb_disabledSkin", sliderTrackSkin:"SliderTrack_skin", sliderTrackDisabledSkin:"SliderTrack_disabledSkin", tickSkin:"SliderTick_skin", focusRectSkin:null, focusRectPadding:null}; public function Slider(){ _direction = SliderDirection.HORIZONTAL; _minimum = 0; _maximum = 10; _value = 0; _tickInterval = 0; _snapInterval = 0; _liveDragging = false; super(); setStyles(); } public function get minimum():Number{ return (_minimum); } public function set minimum(_arg1:Number):void{ _minimum = _arg1; this.value = Math.max(_arg1, this.value); invalidate(InvalidationType.DATA); } public function get maximum():Number{ return (_maximum); } protected function positionThumb():void{ thumb.x = ((((_direction)==SliderDirection.VERTICAL) ? ((maximum - minimum) - value) : (value - minimum) / (maximum - minimum)) * _width); } protected function clearTicks():void{ if (((!(tickContainer)) || (!(tickContainer.parent)))){ return; }; removeChild(tickContainer); } protected function onTrackClick(_arg1:MouseEvent):void{ calculateValue(track.mouseX, InteractionInputType.MOUSE, SliderEventClickTarget.TRACK); if (!liveDragging){ dispatchEvent(new SliderEvent(SliderEvent.CHANGE, value, SliderEventClickTarget.TRACK, InteractionInputType.MOUSE)); }; } public function set maximum(_arg1:Number):void{ _maximum = _arg1; this.value = Math.min(_arg1, this.value); invalidate(InvalidationType.DATA); } public function get liveDragging():Boolean{ return (_liveDragging); } protected function doDrag(_arg1:MouseEvent):void{ var _local2:Number; var _local3:Number; _local2 = (_width / snapInterval); _local3 = track.mouseX; calculateValue(_local3, InteractionInputType.MOUSE, SliderEventClickTarget.THUMB); dispatchEvent(new SliderEvent(SliderEvent.THUMB_DRAG, value, SliderEventClickTarget.THUMB, InteractionInputType.MOUSE)); } override protected function keyDownHandler(_arg1:KeyboardEvent):void{ var _local2:uint; var _local3:Number; var _local4:Boolean; if (!enabled){ return; }; _local2 = ((snapInterval)>0) ? snapInterval : 1; _local4 = (direction == SliderDirection.HORIZONTAL); if ((((((_arg1.keyCode == Keyboard.DOWN)) && (!(_local4)))) || ((((_arg1.keyCode == Keyboard.LEFT)) && (_local4))))){ _local3 = (value - _local2); } else { if ((((((_arg1.keyCode == Keyboard.UP)) && (!(_local4)))) || ((((_arg1.keyCode == Keyboard.RIGHT)) && (_local4))))){ _local3 = (value + _local2); } else { if ((((((_arg1.keyCode == Keyboard.PAGE_DOWN)) && (!(_local4)))) || ((((_arg1.keyCode == Keyboard.HOME)) && (_local4))))){ _local3 = minimum; } else { if ((((((_arg1.keyCode == Keyboard.PAGE_UP)) && (!(_local4)))) || ((((_arg1.keyCode == Keyboard.END)) && (_local4))))){ _local3 = maximum; }; }; }; }; if (!isNaN(_local3)){ _arg1.stopPropagation(); doSetValue(_local3, InteractionInputType.KEYBOARD, null, _arg1.keyCode); }; } override public function set enabled(_arg1:Boolean):void{ if (enabled == _arg1){ return; }; super.enabled = _arg1; track.enabled = (thumb.enabled = _arg1); } protected function thumbPressHandler(_arg1:MouseEvent):void{ stage.addEventListener(MouseEvent.MOUSE_MOVE, doDrag, false, 0, true); stage.addEventListener(MouseEvent.MOUSE_UP, thumbReleaseHandler, false, 0, true); dispatchEvent(new SliderEvent(SliderEvent.THUMB_PRESS, value, InteractionInputType.MOUSE, SliderEventClickTarget.THUMB)); } public function get snapInterval():Number{ return (_snapInterval); } protected function thumbReleaseHandler(_arg1:MouseEvent):void{ stage.removeEventListener(MouseEvent.MOUSE_MOVE, doDrag); stage.removeEventListener(MouseEvent.MOUSE_UP, thumbReleaseHandler); dispatchEvent(new SliderEvent(SliderEvent.THUMB_RELEASE, value, InteractionInputType.MOUSE, SliderEventClickTarget.THUMB)); dispatchEvent(new SliderEvent(SliderEvent.CHANGE, value, SliderEventClickTarget.THUMB, InteractionInputType.MOUSE)); } public function set liveDragging(_arg1:Boolean):void{ _liveDragging = _arg1; } public function set value(_arg1:Number):void{ doSetValue(_arg1); } public function set direction(_arg1:String):void{ var _local2:Boolean; _direction = _arg1; _local2 = (_direction == SliderDirection.VERTICAL); if (isLivePreview){ if (_local2){ setScaleY(-1); y = track.height; } else { setScaleY(1); y = 0; }; positionThumb(); return; }; if (((_local2) && (componentInspectorSetting))){ if ((rotation % 90) == 0){ setScaleY(-1); }; }; if (!componentInspectorSetting){ rotation = (_local2) ? 90 : 0; }; } public function set tickInterval(_arg1:Number):void{ _tickInterval = _arg1; invalidate(InvalidationType.SIZE); } override public function get enabled():Boolean{ return (super.enabled); } override protected function draw():void{ if (isInvalid(InvalidationType.STYLES)){ setStyles(); invalidate(InvalidationType.SIZE, false); }; if (isInvalid(InvalidationType.SIZE)){ track.setSize(_width, track.height); track.drawNow(); thumb.drawNow(); }; if (tickInterval > 0){ drawTicks(); } else { clearTicks(); }; positionThumb(); super.draw(); } override protected function configUI():void{ super.configUI(); thumb = new BaseButton(); thumb.setSize(13, 13); thumb.autoRepeat = false; addChild(thumb); thumb.addEventListener(MouseEvent.MOUSE_DOWN, thumbPressHandler, false, 0, true); track = new BaseButton(); track.move(0, 0); track.setSize(80, 4); track.autoRepeat = false; track.useHandCursor = false; track.addEventListener(MouseEvent.CLICK, onTrackClick, false, 0, true); addChildAt(track, 0); } public function set snapInterval(_arg1:Number):void{ _snapInterval = _arg1; } public function get value():Number{ return (_value); } public function get direction():String{ return (_direction); } public function get tickInterval():Number{ return (_tickInterval); } override public function setSize(_arg1:Number, _arg2:Number):void{ if ((((_direction == SliderDirection.VERTICAL)) && (!(isLivePreview)))){ super.setSize(_arg2, _arg1); } else { super.setSize(_arg1, _arg2); }; invalidate(InvalidationType.SIZE); } protected function drawTicks():void{ var _local1:Number; var _local2:Number; var _local3:Number; var _local4:uint; var _local5:DisplayObject; clearTicks(); tickContainer = new Sprite(); _local1 = ((maximum)<1) ? (tickInterval / 100) : tickInterval; _local2 = ((maximum - minimum) / _local1); _local3 = (_width / _local2); _local4 = 0; while (_local4 <= _local2) { _local5 = getDisplayObjectInstance(getStyleValue("tickSkin")); _local5.x = (_local3 * _local4); _local5.y = ((track.y - _local5.height) - 2); tickContainer.addChild(_local5); _local4++; }; addChild(tickContainer); } protected function calculateValue(_arg1:Number, _arg2:String, _arg3:String, _arg4:int=undefined):void{ var _local5:Number; _local5 = ((_arg1 / _width) * (maximum - minimum)); if (_direction == SliderDirection.VERTICAL){ _local5 = (maximum - _local5); } else { _local5 = (minimum + _local5); }; doSetValue(_local5, _arg2, _arg3, _arg4); } protected function getPrecision(_arg1:Number):Number{ var _local2:String; _local2 = _arg1.toString(); if (_local2.indexOf(".") == -1){ return (0); }; return (_local2.split(".").pop().length); } protected function doSetValue(_arg1:Number, _arg2:String=null, _arg3:String=null, _arg4:int=undefined):void{ var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; _local5 = _value; if (((!((_snapInterval == 0))) && (!((_snapInterval == 1))))){ _local6 = Math.pow(10, getPrecision(snapInterval)); _local7 = (_snapInterval * _local6); _local8 = Math.round((_arg1 * _local6)); _local9 = (Math.round((_local8 / _local7)) * _local7); _arg1 = (_local9 / _local6); _value = Math.max(minimum, Math.min(maximum, _arg1)); } else { _value = Math.max(minimum, Math.min(maximum, Math.round(_arg1))); }; if (((!((_local5 == _value))) && (((((liveDragging) && (!((_arg3 == null))))) || ((_arg2 == InteractionInputType.KEYBOARD)))))){ dispatchEvent(new SliderEvent(SliderEvent.CHANGE, value, _arg3, _arg2, _arg4)); }; positionThumb(); } protected function setStyles():void{ copyStylesToChild(thumb, THUMB_STYLES); copyStylesToChild(track, TRACK_STYLES); } public static function getStyleDefinition():Object{ return (defaultStyles); } } }//package fl.controls
Section 58
//SliderDirection (fl.controls.SliderDirection) package fl.controls { public class SliderDirection { public static var HORIZONTAL:String = "horizontal"; public static var VERTICAL:String = "vertical"; } }//package fl.controls
Section 59
//TextInput (fl.controls.TextInput) package fl.controls { import fl.core.*; import flash.display.*; import flash.events.*; import fl.managers.*; import fl.events.*; import flash.text.*; import flash.ui.*; public class TextInput extends UIComponent implements IFocusManagerComponent { protected var _html:Boolean;// = false protected var _savedHTML:String; protected var background:DisplayObject; protected var _editable:Boolean;// = true public var textField:TextField; private static var defaultStyles:Object = {upSkin:"TextInput_upSkin", disabledSkin:"TextInput_disabledSkin", focusRectSkin:null, focusRectPadding:null, textFormat:null, disabledTextFormat:null, textPadding:0, embedFonts:false}; public static var createAccessibilityImplementation:Function; public function TextInput(){ _editable = true; _html = false; super(); } override public function drawFocus(_arg1:Boolean):void{ if (focusTarget != null){ focusTarget.drawFocus(_arg1); return; }; super.drawFocus(_arg1); } public function set imeMode(_arg1:String):void{ _imeMode = _arg1; } override protected function isOurFocus(_arg1:DisplayObject):Boolean{ return ((((_arg1 == textField)) || (super.isOurFocus(_arg1)))); } protected function handleKeyDown(_arg1:KeyboardEvent):void{ if (_arg1.keyCode == Keyboard.ENTER){ dispatchEvent(new ComponentEvent(ComponentEvent.ENTER, true)); }; } public function set text(_arg1:String):void{ textField.text = _arg1; _html = false; invalidate(InvalidationType.DATA); invalidate(InvalidationType.STYLES); } protected function updateTextFieldType():void{ textField.type = (((enabled) && (editable))) ? TextFieldType.INPUT : TextFieldType.DYNAMIC; textField.selectable = enabled; } public function get selectionEndIndex():int{ return (textField.selectionEndIndex); } public function get editable():Boolean{ return (_editable); } override protected function focusInHandler(_arg1:FocusEvent):void{ var _local2:IFocusManager; if (_arg1.target == this){ stage.focus = textField; }; _local2 = focusManager; if (((editable) && (_local2))){ _local2.showFocusIndicator = true; if (((textField.selectable) && ((textField.selectionBeginIndex == textField.selectionBeginIndex)))){ setSelection(0, textField.length); }; }; super.focusInHandler(_arg1); if (editable){ setIMEMode(true); }; } public function get selectionBeginIndex():int{ return (textField.selectionBeginIndex); } public function set alwaysShowSelection(_arg1:Boolean):void{ textField.alwaysShowSelection = _arg1; } override public function set enabled(_arg1:Boolean):void{ super.enabled = _arg1; updateTextFieldType(); } protected function setEmbedFont(){ var _local1:Object; _local1 = getStyleValue("embedFonts"); if (_local1 != null){ textField.embedFonts = _local1; }; } public function get horizontalScrollPosition():int{ return (textField.scrollH); } public function set condenseWhite(_arg1:Boolean):void{ textField.condenseWhite = _arg1; } public function set displayAsPassword(_arg1:Boolean):void{ textField.displayAsPassword = _arg1; } public function set horizontalScrollPosition(_arg1:int):void{ textField.scrollH = _arg1; } public function get restrict():String{ return (textField.restrict); } public function get textWidth():Number{ return (textField.textWidth); } public function get textHeight():Number{ return (textField.textHeight); } public function set editable(_arg1:Boolean):void{ _editable = _arg1; updateTextFieldType(); } public function get maxChars():int{ return (textField.maxChars); } public function get length():int{ return (textField.length); } public function getLineMetrics(_arg1:int):TextLineMetrics{ return (textField.getLineMetrics(_arg1)); } public function get imeMode():String{ return (_imeMode); } override protected function focusOutHandler(_arg1:FocusEvent):void{ super.focusOutHandler(_arg1); if (editable){ setIMEMode(false); }; } public function set htmlText(_arg1:String):void{ if (_arg1 == ""){ text = ""; return; }; _html = true; _savedHTML = _arg1; textField.htmlText = _arg1; invalidate(InvalidationType.DATA); invalidate(InvalidationType.STYLES); } public function get text():String{ return (textField.text); } override public function get enabled():Boolean{ return (super.enabled); } public function get condenseWhite():Boolean{ return (textField.condenseWhite); } public function get alwaysShowSelection():Boolean{ return (textField.alwaysShowSelection); } override protected function draw():void{ var _local1:Object; if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){ drawTextFormat(); drawBackground(); _local1 = getStyleValue("embedFonts"); if (_local1 != null){ textField.embedFonts = _local1; }; invalidate(InvalidationType.SIZE, false); }; if (isInvalid(InvalidationType.SIZE)){ drawLayout(); }; super.draw(); } protected function handleTextInput(_arg1:TextEvent):void{ _arg1.stopPropagation(); dispatchEvent(new TextEvent(TextEvent.TEXT_INPUT, true, false, _arg1.text)); } override protected function configUI():void{ super.configUI(); tabChildren = true; textField = new TextField(); addChild(textField); updateTextFieldType(); textField.addEventListener(TextEvent.TEXT_INPUT, handleTextInput, false, 0, true); textField.addEventListener(Event.CHANGE, handleChange, false, 0, true); textField.addEventListener(KeyboardEvent.KEY_DOWN, handleKeyDown, false, 0, true); } public function setSelection(_arg1:int, _arg2:int):void{ textField.setSelection(_arg1, _arg2); } public function get displayAsPassword():Boolean{ return (textField.displayAsPassword); } public function appendText(_arg1:String):void{ textField.appendText(_arg1); } public function set restrict(_arg1:String):void{ if (((componentInspectorSetting) && ((_arg1 == "")))){ _arg1 = null; }; textField.restrict = _arg1; } public function get htmlText():String{ return (textField.htmlText); } protected function drawBackground():void{ var _local1:DisplayObject; var _local2:String; _local1 = background; _local2 = (enabled) ? "upSkin" : "disabledSkin"; background = getDisplayObjectInstance(getStyleValue(_local2)); if (background == null){ return; }; addChildAt(background, 0); if (((((!((_local1 == null))) && (!((_local1 == background))))) && (contains(_local1)))){ removeChild(_local1); }; } override public function setFocus():void{ stage.focus = textField; } protected function drawLayout():void{ var _local1:Number; _local1 = Number(getStyleValue("textPadding")); if (background != null){ background.width = width; background.height = height; }; textField.width = (width - (2 * _local1)); textField.height = (height - (2 * _local1)); textField.x = (textField.y = _local1); } public function set maxChars(_arg1:int):void{ textField.maxChars = _arg1; } public function get maxHorizontalScrollPosition():int{ return (textField.maxScrollH); } 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(); if (_html){ textField.htmlText = _savedHTML; }; } protected function handleChange(_arg1:Event):void{ _arg1.stopPropagation(); dispatchEvent(new Event(Event.CHANGE, true)); } public static function getStyleDefinition():Object{ return (defaultStyles); } } }//package fl.controls
Section 60
//ComponentShim (fl.core.ComponentShim) package fl.core { import flash.display.*; public dynamic class ComponentShim extends MovieClip { } }//package fl.core
Section 61
//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 62
//UIComponent (fl.core.UIComponent) package fl.core { import flash.display.*; import flash.events.*; import fl.managers.*; import fl.events.*; import flash.text.*; import flash.utils.*; import flash.system.*; 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 63
//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 64
//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 65
//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 66
//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 67
//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 68
//InteractionInputType (fl.events.InteractionInputType) package fl.events { public class InteractionInputType { public static const MOUSE:String = "mouse"; public static const KEYBOARD:String = "keyboard"; } }//package fl.events
Section 69
//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 70
//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 71
//SliderEvent (fl.events.SliderEvent) package fl.events { import flash.events.*; public class SliderEvent extends Event { protected var _triggerEvent:String; protected var _keyCode:Number; protected var _value:Number; protected var _clickTarget:String; public static const CHANGE:String = "change"; public static const THUMB_PRESS:String = "thumbPress"; public static const THUMB_DRAG:String = "thumbDrag"; public static const THUMB_RELEASE:String = "thumbRelease"; public function SliderEvent(_arg1:String, _arg2:Number, _arg3:String, _arg4:String, _arg5:int=0){ _value = _arg2; _keyCode = _arg5; _triggerEvent = _arg4; _clickTarget = _arg3; super(_arg1); } public function get clickTarget():String{ return (_clickTarget); } override public function clone():Event{ return (new SliderEvent(type, _value, _clickTarget, _triggerEvent, _keyCode)); } override public function toString():String{ return (formatToString("SliderEvent", "type", "value", "bubbles", "cancelable", "keyCode", "triggerEvent", "clickTarget")); } public function get triggerEvent():String{ return (_triggerEvent); } public function get value():Number{ return (_value); } public function get keyCode():Number{ return (_keyCode); } } }//package fl.events
Section 72
//SliderEventClickTarget (fl.events.SliderEventClickTarget) package fl.events { public class SliderEventClickTarget { public static const TRACK:String = "track"; public static const THUMB:String = "thumb"; } }//package fl.events
Section 73
//FocusManager (fl.managers.FocusManager) package fl.managers { import fl.core.*; import fl.controls.*; import flash.display.*; import flash.events.*; import flash.text.*; import flash.utils.*; import flash.ui.*; 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 74
//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 75
//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 76
//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 77
//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 78
//MatrixTransformer (fl.motion.MatrixTransformer) package fl.motion { import flash.geom.*; public class MatrixTransformer { public static function getSkewY(_arg1:Matrix):Number{ return ((Math.atan2(_arg1.b, _arg1.a) * (180 / Math.PI))); } public static function getScaleX(_arg1:Matrix):Number{ return (Math.sqrt(((_arg1.a * _arg1.a) + (_arg1.b * _arg1.b)))); } public static function getScaleY(_arg1:Matrix):Number{ return (Math.sqrt(((_arg1.c * _arg1.c) + (_arg1.d * _arg1.d)))); } public static function setSkewXRadians(_arg1:Matrix, _arg2:Number):void{ var _local3:Number; _local3 = getScaleY(_arg1); _arg1.c = (-(_local3) * Math.sin(_arg2)); _arg1.d = (_local3 * Math.cos(_arg2)); } public static function setRotation(_arg1:Matrix, _arg2:Number):void{ setRotationRadians(_arg1, (_arg2 * (Math.PI / 180))); } public static function rotateAroundInternalPoint(_arg1:Matrix, _arg2:Number, _arg3:Number, _arg4:Number):void{ var _local5:Point; _local5 = new Point(_arg2, _arg3); _local5 = _arg1.transformPoint(_local5); _arg1.tx = (_arg1.tx - _local5.x); _arg1.ty = (_arg1.ty - _local5.y); _arg1.rotate((_arg4 * (Math.PI / 180))); _arg1.tx = (_arg1.tx + _local5.x); _arg1.ty = (_arg1.ty + _local5.y); } public static function setSkewX(_arg1:Matrix, _arg2:Number):void{ setSkewXRadians(_arg1, (_arg2 * (Math.PI / 180))); } public static function setSkewY(_arg1:Matrix, _arg2:Number):void{ setSkewYRadians(_arg1, (_arg2 * (Math.PI / 180))); } public static function setScaleX(_arg1:Matrix, _arg2:Number):void{ var _local3:Number; var _local4:Number; var _local5:Number; _local3 = getScaleX(_arg1); if (_local3){ _local4 = (_arg2 / _local3); _arg1.a = (_arg1.a * _local4); _arg1.b = (_arg1.b * _local4); } else { _local5 = getSkewYRadians(_arg1); _arg1.a = (Math.cos(_local5) * _arg2); _arg1.b = (Math.sin(_local5) * _arg2); }; } public static function setScaleY(_arg1:Matrix, _arg2:Number):void{ var _local3:Number; var _local4:Number; var _local5:Number; _local3 = getScaleY(_arg1); if (_local3){ _local4 = (_arg2 / _local3); _arg1.c = (_arg1.c * _local4); _arg1.d = (_arg1.d * _local4); } else { _local5 = getSkewXRadians(_arg1); _arg1.c = (-(Math.sin(_local5)) * _arg2); _arg1.d = (Math.cos(_local5) * _arg2); }; } public static function setRotationRadians(_arg1:Matrix, _arg2:Number):void{ var _local3:Number; var _local4:Number; _local3 = getRotationRadians(_arg1); _local4 = getSkewXRadians(_arg1); setSkewXRadians(_arg1, ((_local4 + _arg2) - _local3)); setSkewYRadians(_arg1, _arg2); } public static function setSkewYRadians(_arg1:Matrix, _arg2:Number):void{ var _local3:Number; _local3 = getScaleX(_arg1); _arg1.a = (_local3 * Math.cos(_arg2)); _arg1.b = (_local3 * Math.sin(_arg2)); } public static function getSkewX(_arg1:Matrix):Number{ return ((Math.atan2(-(_arg1.c), _arg1.d) * (180 / Math.PI))); } public static function getSkewYRadians(_arg1:Matrix):Number{ return (Math.atan2(_arg1.b, _arg1.a)); } public static function getSkewXRadians(_arg1:Matrix):Number{ return (Math.atan2(-(_arg1.c), _arg1.d)); } public static function getRotation(_arg1:Matrix):Number{ return ((getRotationRadians(_arg1) * (180 / Math.PI))); } public static function rotateAroundExternalPoint(_arg1:Matrix, _arg2:Number, _arg3:Number, _arg4:Number):void{ _arg1.tx = (_arg1.tx - _arg2); _arg1.ty = (_arg1.ty - _arg3); _arg1.rotate((_arg4 * (Math.PI / 180))); _arg1.tx = (_arg1.tx + _arg2); _arg1.ty = (_arg1.ty + _arg3); } public static function getRotationRadians(_arg1:Matrix):Number{ return (getSkewYRadians(_arg1)); } public static function matchInternalPointWithExternal(_arg1:Matrix, _arg2:Point, _arg3:Point):void{ var _local4:Point; var _local5:Number; var _local6:Number; _local4 = _arg1.transformPoint(_arg2); _local5 = (_arg3.x - _local4.x); _local6 = (_arg3.y - _local4.y); _arg1.tx = (_arg1.tx + _local5); _arg1.ty = (_arg1.ty + _local6); } } }//package fl.motion
Section 79
//Bounce (fl.transitions.easing.Bounce) package fl.transitions.easing { public class Bounce { public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / _arg4); if (_arg1 < (1 / 2.75)){ return (((_arg3 * ((7.5625 * _arg1) * _arg1)) + _arg2)); }; if (_arg1 < (2 / 2.75)){ _arg1 = (_arg1 - (1.5 / 2.75)); return (((_arg3 * (((7.5625 * _arg1) * _arg1) + 0.75)) + _arg2)); }; if (_arg1 < (2.5 / 2.75)){ _arg1 = (_arg1 - (2.25 / 2.75)); return (((_arg3 * (((7.5625 * _arg1) * _arg1) + 0.9375)) + _arg2)); }; _arg1 = (_arg1 - (2.625 / 2.75)); return (((_arg3 * (((7.5625 * _arg1) * _arg1) + 0.984375)) + _arg2)); } public static function easeIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return (((_arg3 - easeOut((_arg4 - _arg1), 0, _arg3, _arg4)) + _arg2)); } public static function easeInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ if (_arg1 < (_arg4 / 2)){ return (((easeIn((_arg1 * 2), 0, _arg3, _arg4) * 0.5) + _arg2)); }; return ((((easeOut(((_arg1 * 2) - _arg4), 0, _arg3, _arg4) * 0.5) + (_arg3 * 0.5)) + _arg2)); } } }//package fl.transitions.easing
Section 80
//Strong (fl.transitions.easing.Strong) package fl.transitions.easing { public class Strong { public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = ((_arg1 / _arg4) - 1); return (((_arg3 * (((((_arg1 * _arg1) * _arg1) * _arg1) * _arg1) + 1)) + _arg2)); } public static function easeIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / _arg4); return (((((((_arg3 * _arg1) * _arg1) * _arg1) * _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) * _arg1) * _arg1) * _arg1) + _arg2)); }; _arg1 = (_arg1 - 2); return ((((_arg3 / 2) * (((((_arg1 * _arg1) * _arg1) * _arg1) * _arg1) + 2)) + _arg2)); } } }//package fl.transitions.easing
Section 81
//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 public var begin:Number;// = NAN private var _fps:Number;// = NAN private var _time:Number;// = NAN public var change:Number;// = NAN private var _finish:Number;// = NAN public var looping:Boolean;// = false private var _intervalID:uint;// = 0 public var func:Function; private var _timer:Timer;// = null private var _startTime:Number;// = NAN public var prop:String;// = "" private var _duration:Number;// = NAN public var obj:Object;// = null public var useSeconds:Boolean;// = false protected static var _mc:MovieClip = new MovieClip(); public function Tween(_arg1:Object, _arg2:String, _arg3:Function, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Boolean=false){ isPlaying = false; obj = null; prop = ""; func = function (_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((_arg3 * _arg1) / _arg4) + _arg2)); }; begin = NaN; change = NaN; useSeconds = false; prevTime = NaN; prevPos = NaN; looping = false; _duration = NaN; _time = NaN; _fps = NaN; _position = NaN; _startTime = NaN; _intervalID = 0; _finish = NaN; _timer = null; super(); if (!arguments.length){ return; }; this.obj = _arg1; this.prop = _arg2; this.begin = _arg4; this.position = _arg4; this.duration = _arg6; this.useSeconds = _arg7; if ((_arg3 is Function)){ this.func = _arg3; }; this.finish = _arg5; this._timer = new Timer(100); this.start(); } public function continueTo(_arg1:Number, _arg2:Number):void{ this.begin = this.position; this.finish = _arg1; if (!isNaN(_arg2)){ this.duration = _arg2; }; this.start(); } public function stop():void{ this.stopEnterFrame(); this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_STOP, this._time, this._position)); } private function fixTime():void{ if (this.useSeconds){ this._startTime = (getTimer() - (this._time * 1000)); }; } public function set FPS(_arg1:Number):void{ var _local2:Boolean; _local2 = this.isPlaying; this.stopEnterFrame(); this._fps = _arg1; if (_local2){ this.startEnterFrame(); }; } public function get finish():Number{ return ((this.begin + this.change)); } public function get duration():Number{ return (this._duration); } protected function startEnterFrame():void{ var _local1:Number; if (isNaN(this._fps)){ _mc.addEventListener(Event.ENTER_FRAME, this.onEnterFrame, false, 0, true); } else { _local1 = (1000 / this._fps); this._timer.delay = _local1; this._timer.addEventListener(TimerEvent.TIMER, this.timerHandler, false, 0, true); this._timer.start(); }; this.isPlaying = true; } public function set time(_arg1:Number):void{ this.prevTime = this._time; if (_arg1 > this.duration){ if (this.looping){ this.rewind((_arg1 - this._duration)); this.update(); this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_LOOP, this._time, this._position)); } else { if (this.useSeconds){ this._time = this._duration; this.update(); }; this.stop(); this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_FINISH, this._time, this._position)); }; } else { if (_arg1 < 0){ this.rewind(); this.update(); } else { this._time = _arg1; this.update(); }; }; } protected function stopEnterFrame():void{ if (isNaN(this._fps)){ _mc.removeEventListener(Event.ENTER_FRAME, this.onEnterFrame); } else { this._timer.stop(); }; this.isPlaying = false; } public function getPosition(_arg1:Number=NaN):Number{ if (isNaN(_arg1)){ _arg1 = this._time; }; return (this.func(_arg1, this.begin, this.change, this._duration)); } public function set finish(_arg1:Number):void{ this.change = (_arg1 - this.begin); } public function set duration(_arg1:Number):void{ this._duration = ((_arg1)<=0) ? Infinity : _arg1; } public function setPosition(_arg1:Number):void{ this.prevPos = this._position; if (this.prop.length){ this.obj[this.prop] = (this._position = _arg1); }; this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_CHANGE, this._time, this._position)); } public function resume():void{ this.fixTime(); this.startEnterFrame(); this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_RESUME, this._time, this._position)); } public function fforward():void{ this.time = this._duration; this.fixTime(); } protected function onEnterFrame(_arg1:Event):void{ this.nextFrame(); } public function get position():Number{ return (this.getPosition(this._time)); } public function yoyo():void{ this.continueTo(this.begin, this.time); } public function nextFrame():void{ if (this.useSeconds){ this.time = ((getTimer() - this._startTime) / 1000); } else { this.time = (this._time + 1); }; } protected function timerHandler(_arg1:TimerEvent):void{ this.nextFrame(); _arg1.updateAfterEvent(); } public function get FPS():Number{ return (this._fps); } public function rewind(_arg1:Number=0):void{ this._time = _arg1; this.fixTime(); this.update(); } public function set position(_arg1:Number):void{ this.setPosition(_arg1); } public function get time():Number{ return (this._time); } private function update():void{ this.setPosition(this.getPosition(this._time)); } public function start():void{ this.rewind(); this.startEnterFrame(); this.dispatchEvent(new TweenEvent(TweenEvent.MOTION_START, this._time, this._position)); } public function prevFrame():void{ if (!this.useSeconds){ this.time = (this._time - 1); }; } } }//package fl.transitions
Section 82
//TweenEvent (fl.transitions.TweenEvent) package fl.transitions { import flash.events.*; public class TweenEvent extends Event { public var time:Number;// = NAN public var position:Number;// = NAN public static const MOTION_START:String = "motionStart"; public static const MOTION_STOP:String = "motionStop"; public static const MOTION_LOOP:String = "motionLoop"; public static const MOTION_CHANGE:String = "motionChange"; public static const MOTION_FINISH:String = "motionFinish"; public static const MOTION_RESUME:String = "motionResume"; public function TweenEvent(_arg1:String, _arg2:Number, _arg3:Number, _arg4:Boolean=false, _arg5:Boolean=false){ time = NaN; position = NaN; super(_arg1, _arg4, _arg5); this.time = _arg2; this.position = _arg3; } override public function clone():Event{ return (new TweenEvent(this.type, this.time, this.position, this.bubbles, this.cancelable)); } } }//package fl.transitions
Section 83
//TweenLite (gs.TweenLite) package gs { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.media.*; import flash.utils.*; public class TweenLite { public var delay:Number; protected var _endTarget:Object; private var _sound:SoundTransform; public var target:Object; public var duration:Number; public var startTime:uint; public var extraTweens:Object; protected var _color:ColorTransform; protected var _active:Boolean; protected var _endColor:ColorTransform; public var vars:Object; public var tweens:Object; public var initTime:uint; private static var _sprite:Sprite = new Sprite(); private static var _timer:Timer = new Timer(2000); protected static var _all:Dictionary = new Dictionary(); public static var killDelayedCallsTo:Function = killTweensOf; public static var version:Number = 5.87; private static var _listening:Boolean; public function TweenLite(_arg1:Object, _arg2:Number, _arg3:Object){ if (_arg1 == null){ return; }; if (((((!((_arg3.overwrite == false))) && (!((_arg1 == null))))) || ((_all[_arg1] == undefined)))){ delete _all[_arg1]; _all[_arg1] = new Dictionary(); }; _all[_arg1][this] = this; this.vars = _arg3; this.duration = _arg2; this.delay = ((_arg3.delay) || (0)); if (_arg2 == 0){ this.duration = 0.001; if (this.delay == 0){ this.vars.runBackwards = true; }; }; this.target = (_endTarget = _arg1); if (!(this.vars.ease is Function)){ this.vars.ease = easeOut; }; if (this.vars.easeParams != null){ this.vars.proxiedEase = this.vars.ease; this.vars.ease = easeProxy; }; if (this.vars.mcColor != null){ this.vars.tint = this.vars.mcColor; }; if (!isNaN(Number(this.vars.autoAlpha))){ this.vars.alpha = Number(this.vars.autoAlpha); }; this.tweens = {}; this.extraTweens = {}; this.initTime = getTimer(); if (this.vars.runBackwards == true){ initTweenVals(); }; _active = false; if ((((_arg2 == 0)) && ((this.delay == 0)))){ complete(true); } else { if (!_listening){ _sprite.addEventListener(Event.ENTER_FRAME, executeAll); _timer.addEventListener("timer", killGarbage); _timer.start(); _listening = true; }; }; } public function set endTarget(_arg1:Object):void{ if ((((this.duration == 0.001)) && ((this.delay <= 0)))){ removeTween(this); } else { delete _all[_endTarget][this]; _endTarget = _arg1; if (_all[_arg1] == undefined){ _all[_arg1] = new Dictionary(); }; _all[_arg1][this] = this; }; } public function get colorProxy():Number{ return (0); } public function get endTarget():Object{ return (_endTarget); } public function get active():Boolean{ if (_active){ return (true); }; if (((getTimer() - this.initTime) / 1000) > this.delay){ _active = true; this.startTime = (this.initTime + (this.delay * 1000)); if (this.vars.runBackwards != true){ initTweenVals(); } else { if (typeof(this.vars.autoAlpha) == "number"){ this.target.visible = true; }; }; if (this.vars.onStart != null){ this.vars.onStart.apply(null, this.vars.onStartParams); }; if (this.duration == 0.001){ this.startTime = (this.startTime - 1); }; return (true); //unresolved jump }; return (false); } public function initTweenVals():void{ var _local1:Number; var _local2:String; var _local3:Number; var _local4:Array; var _local5:int; var _local6:TweenLite; var _local7:TweenLite; var _local8:Object; _local1 = (this.delay - ((getTimer() - this.initTime) / 1000)); if ((this.target is Array)){ _local4 = ((this.vars.endArray) || ([])); _local5 = 0; while (_local5 < _local4.length) { if (((!((this.target[_local5] == _local4[_local5]))) && (!((this.target[_local5] == undefined))))){ this.tweens[_local5.toString()] = {o:this.target, s:this.target[_local5], c:(_local4[_local5] - this.target[_local5])}; }; _local5++; }; } else { for (_local2 in this.vars) { if ((((((((((((((((((((((((((((_local2 == "delay")) || ((_local2 == "ease")))) || ((_local2 == "overwrite")))) || ((_local2 == "onComplete")))) || ((_local2 == "onCompleteParams")))) || ((_local2 == "runBackwards")))) || ((_local2 == "onUpdate")))) || ((_local2 == "onUpdateParams")))) || ((_local2 == "autoAlpha")))) || ((_local2 == "onStart")))) || ((_local2 == "onStartParams")))) || ((_local2 == "easeParams")))) || ((_local2 == "mcColor")))) || ((_local2 == "type")))){ } else { if ((((_local2 == "tint")) && ((this.target is DisplayObject)))){ _color = this.target.transform.colorTransform; _endColor = new ColorTransform(); if (this.vars.alpha != undefined){ _endColor.alphaMultiplier = this.vars.alpha; delete this.vars.alpha; delete this.tweens.alpha; } else { _endColor.alphaMultiplier = this.target.alpha; }; if (((!((this.vars[_local2] == null))) && (!((this.vars[_local2] == ""))))){ _endColor.color = this.vars[_local2]; }; _local6 = new TweenLite(this, this.duration, {colorProxy:1, delay:_local1, overwrite:false, ease:this.vars.ease, runBackwards:this.vars.runBackwards}); _local6.endTarget = this.target; } else { if ((((_local2 == "volume")) && ((this.target is MovieClip)))){ _sound = this.target.soundTransform; _local7 = new TweenLite(this, this.duration, {volumeProxy:this.vars[_local2], ease:easeOut, delay:_local1, overwrite:false, runBackwards:this.vars.runBackwards}); _local7.endTarget = this.target; } else { if (this.target.hasOwnProperty(_local2)){ if (typeof(this.vars[_local2]) == "number"){ _local3 = (this.vars[_local2] - this.target[_local2]); } else { _local3 = Number(this.vars[_local2]); }; this.tweens[_local2] = {o:this.target, s:this.target[_local2], c:_local3}; } else { this.extraTweens[_local2] = {o:this.target, s:0, c:0, v:this.vars[_local2]}; }; }; }; }; }; }; if (this.vars.runBackwards == true){ for (_local2 in this.tweens) { _local8 = this.tweens[_local2]; this.tweens[_local2].s = (_local8.s + _local8.c); _local8.c = (_local8.c * -1); _local8.o[_local2] = _local8.s; }; if (this.vars.onUpdate != null){ this.vars.onUpdate.apply(null, this.vars.onUpdateParams); }; }; if (typeof(this.vars.autoAlpha) == "number"){ this.target.visible = !((((this.vars.runBackwards == true)) && ((this.target.alpha == 0)))); }; } public function render(_arg1:uint):void{ var _local2:Number; var _local3:Number; var _local4:Object; var _local5:String; _local2 = ((_arg1 - this.startTime) / 1000); if (_local2 > this.duration){ _local2 = this.duration; }; _local3 = this.vars.ease(_local2, 0, 1, this.duration); for (_local5 in this.tweens) { _local4 = this.tweens[_local5]; _local4.o[_local5] = (_local4.s + (_local3 * _local4.c)); }; if (this.vars.onUpdate != null){ this.vars.onUpdate.apply(null, this.vars.onUpdateParams); }; if (_local2 == this.duration){ complete(true); }; } public function set colorProxy(_arg1:Number):void{ var _local2:Number; _local2 = (1 - _arg1); this.target.transform.colorTransform = new ColorTransform(((_color.redMultiplier * _local2) + (_endColor.redMultiplier * _arg1)), ((_color.greenMultiplier * _local2) + (_endColor.greenMultiplier * _arg1)), ((_color.blueMultiplier * _local2) + (_endColor.blueMultiplier * _arg1)), ((_color.alphaMultiplier * _local2) + (_endColor.alphaMultiplier * _arg1)), ((_color.redOffset * _local2) + (_endColor.redOffset * _arg1)), ((_color.greenOffset * _local2) + (_endColor.greenOffset * _arg1)), ((_color.blueOffset * _local2) + (_endColor.blueOffset * _arg1)), ((_color.alphaOffset * _local2) + (_endColor.alphaOffset * _arg1))); } public function get volumeProxy():Number{ return (_sound.volume); } public function set volumeProxy(_arg1:Number):void{ _sound.volume = _arg1; this.target.soundTransform = _sound; } protected function easeProxy(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return (this.vars.proxiedEase.apply(null, arguments.concat(this.vars.easeParams))); } public function complete(_arg1:Boolean=false):void{ if (!_arg1){ this.startTime = 0; render((this.duration * 1000)); return; }; if ((((typeof(this.vars.autoAlpha) == "number")) && ((this.target.alpha == 0)))){ this.target.visible = false; }; if (this.vars.onComplete != null){ this.vars.onComplete.apply(null, this.vars.onCompleteParams); }; removeTween(this); } public static function delayedCall(_arg1:Number, _arg2:Function, _arg3:Array=null):TweenLite{ return (new TweenLite(_arg2, 0, {delay:_arg1, onComplete:_arg2, onCompleteParams:_arg3, overwrite:false})); } public static function from(_arg1:Object, _arg2:Number, _arg3:Object):TweenLite{ _arg3.runBackwards = true; return (new TweenLite(_arg1, _arg2, _arg3)); } public static function removeTween(_arg1:TweenLite=null):void{ if (((!((_arg1 == null))) && (!((_all[_arg1.endTarget] == undefined))))){ delete _all[_arg1.endTarget][_arg1]; }; } protected static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / _arg4); return ((((-(_arg3) * _arg1) * (_arg1 - 2)) + _arg2)); } public static function killGarbage(_arg1:TimerEvent):void{ var _local2:Object; var _local3:uint; var _local4:Boolean; var _local5:Object; var _local6:Object; var _local7:Object; _local2 = _all; _local3 = 0; for (_local5 in _local2) { _local4 = false; for (_local6 in _local2[_local5]) { _local4 = true; break; }; if (!_local4){ delete _local2[_local5]; } else { _local3++; }; }; if (_local3 == 0){ _sprite.removeEventListener(Event.ENTER_FRAME, executeAll); _timer.removeEventListener("timer", killGarbage); _timer.stop(); _listening = false; }; } public static function executeAll(_arg1:Event):void{ var _local2:Object; var _local3:uint; var _local4:Object; var _local5:Object; _local2 = _all; _local3 = getTimer(); for (_local4 in _local2) { for (_local5 in _local2[_local4]) { if (((!((_local2[_local4][_local5] == undefined))) && (_local2[_local4][_local5].active))){ _local2[_local4][_local5].render(_local3); if (_local2[_local4] == undefined){ break; }; }; }; }; } public static function to(_arg1:Object, _arg2:Number, _arg3:Object):TweenLite{ return (new TweenLite(_arg1, _arg2, _arg3)); } public static function killTweensOf(_arg1:Object=null, _arg2:Boolean=false):void{ var _local3:Object; var _local4:*; if (((!((_arg1 == null))) && (!((_all[_arg1] == undefined))))){ if (_arg2){ _local3 = _all[_arg1]; for (_local4 in _local3) { _local3[_local4].complete(false); }; }; delete _all[_arg1]; }; } } }//package gs
Section 84
//Billboard3d (map.Billboard3d) package map { import flash.display.*; import flash.geom.*; import display.*; public class Billboard3d extends Sprite { private var S2x; private var S2y:Number; private var prox0; private var prox1; public var reaction:String; private var tx0; private var tx1; private var ty0; private var br:Point; private var xcam:Number; private var bl:Point; public var sx:Number; public var sy:Number; private var h:Number; private var ty1:Number; private var t; private var w:Number; private var tr:Point; private var tl:Point; private var frontBitmapData:BitmapData; private var intersectionPoint:Point; private var sina:Number; private var div; private var dx; private var canView:Boolean; private var dy:Number; private var altitude:Number; private var s; private var vx; private var vy; public var angle:Number; private var sin:Function; private var velocity:Point; private var zcam:Number; private var origin:Point; private var bitmapHeight:Number; private var _xcam:Number; private var cos:Function; private var distort:DistortImage; private var cosa:Number; private var backBitmapData:BitmapData; private var p2:Point; private var p3:Point; private var p0:Point; private var p1:Point; private var bitmapWidth:Number; public var collided:Boolean;// = false private var _zcam:Number; private var S1x; private var S1y; public function Billboard3d(_arg1:BitmapData, _arg2:BitmapData, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number, _arg8:Number, _arg9:Number, _arg10:Boolean, _arg11:String){ collided = false; sin = Math.sin; cos = Math.cos; tl = new Point(0, 0); tr = new Point(0, 0); bl = new Point(0, 0); br = new Point(0, 0); super(); sx = _arg3; sy = _arg4; angle = (_arg5 + (Math.PI / 2)); w = _arg6; h = _arg7; altitude = _arg8; reaction = _arg11; frontBitmapData = _arg1; backBitmapData = _arg2; bitmapWidth = frontBitmapData.width; bitmapHeight = frontBitmapData.height; if (_arg10){ p1 = new Point((sx + ((Math.sin(angle) * w) / 2)), (sy + ((Math.cos(angle) * w) / 2))); p0 = new Point((sx - ((Math.sin(angle) * w) / 2)), (sy - ((Math.cos(angle) * w) / 2))); } else { p0 = new Point((sx + ((Math.sin(angle) * w) / 2)), (sy + ((Math.cos(angle) * w) / 2))); p1 = new Point((sx - ((Math.sin(angle) * w) / 2)), (sy - ((Math.cos(angle) * w) / 2))); }; distort = new DistortImage(bitmapWidth, bitmapHeight, _arg9, _arg9); } public function get proximity(){ vx = (xcam + sx); vy = (zcam + sy); return (((vx * vx) + (vy * vy))); } public function cleanup(){ this.graphics.clear(); frontBitmapData.dispose(); backBitmapData.dispose(); } public function get intersect(){ return (intersectionPoint); } public function collision(_arg1:Bike){ var _local2:*; if (((canView) && (!(collided)))){ _local2 = new Point(sx, sy); _xcam = ((sin(angle) * Constants.BIKE_LENGTH) + _arg1._xcam); _zcam = ((-(cos(angle)) * Constants.BIKE_LENGTH) + _arg1._zcam); p2 = new Point(-(_arg1._xcam), -(_arg1._zcam)); p3 = new Point((-(_xcam) + _arg1.vy), (-(_zcam) + _arg1.vx)); S1x = (p3.x - p2.x); S1y = (p3.y - p2.y); S2x = (p1.x - p0.x); S2y = (p1.y - p0.y); div = ((-(S2x) * S1y) + (S1x * S2y)); dx = (p2.x - p0.x); dy = (p2.y - p0.y); s = (((-(S1y) * dx) + (S1x * dy)) / div); t = (((S2x * dy) - (S2y * dx)) / div); if ((((((((s >= 0)) && ((s <= 1)))) && ((t >= 0)))) && ((t <= 1)))){ intersectionPoint = new Point((p0.x + (t * S1x)), (p0.y + (t * S1y))); return (true); }; return (false); //unresolved jump }; return (false); } public function get viewable(){ if ((((ty1 >= 0)) && ((ty0 >= 0)))){ if ((((((((br.x > 0)) || ((bl.x > 0)))) || ((br.x < Constants.STAGE_WIDTH)))) || ((bl.x < Constants.STAGE_WIDTH)))){ return (true); }; }; return (false); } public function render(_arg1, _arg2, _arg3){ this.graphics.clear(); canView = false; if (!collided){ xcam = _arg1; zcam = _arg2; angle = ((-(_arg3) * Math.PI) / 180); vx = (xcam + p0.x); vy = (zcam + p0.y); prox0 = ((vx * vx) + (vy * vy)); if (prox0 > Constants.WORLD_VIEW_DISTANCE){ return; }; sina = Math.sin(angle); cosa = Math.cos(angle); tx0 = ((vy * sina) + (vx * cosa)); ty0 = (((vy * cosa) - (vx * sina)) + Constants.OFFSET_ROTATION); bl.y = ((Constants.FOCAL_LENGTH * (Constants._ycam / ty0)) + Constants.HORIZON_HEIGHT); bl.x = (((Constants.FOCAL_LENGTH * (tx0 / ty0)) + (Constants._resoDx * 0.5)) + Constants.OFFSET_X); s = (bl.y - ((Constants.FOCAL_LENGTH * (Constants.HORIZON_SCALE / ty0)) + Constants.HORIZON_HEIGHT)); bl.y = (bl.y - ((altitude * s) * 0.01)); tl.x = bl.x; tl.y = (bl.y - ((h * s) * 0.01)); vx = (xcam + p1.x); vy = (zcam + p1.y); prox1 = ((vx * vx) + (vy * vy)); if (prox1 > Constants.WORLD_VIEW_DISTANCE){ return; }; tx1 = ((vy * sina) + (vx * cosa)); ty1 = (((vy * cosa) - (vx * sina)) + Constants.OFFSET_ROTATION); br.y = ((Constants.FOCAL_LENGTH * (Constants._ycam / ty1)) + Constants.HORIZON_HEIGHT); br.x = (((Constants.FOCAL_LENGTH * (tx1 / ty1)) + (Constants._resoDx * 0.5)) + Constants.OFFSET_X); s = (br.y - ((Constants.FOCAL_LENGTH * (Constants.HORIZON_SCALE / ty1)) + Constants.HORIZON_HEIGHT)); br.y = (br.y - ((altitude * s) * 0.01)); tr.x = br.x; tr.y = (br.y - ((h * s) * 0.01)); if (viewable){ canView = true; if (bl.x < br.x){ distort.setTransform(this.graphics, frontBitmapData, tl, tr, br, bl); } else { distort.setTransform(this.graphics, backBitmapData, tl, tr, br, bl); }; }; }; } } }//package map
Section 85
//Map (map.Map) package map { import fl.controls.*; import flash.display.*; import flash.geom.*; import tracks.*; import gs.*; import flash.filters.*; import fl.events.*; import flash.text.*; import flash.utils.*; import utilities.*; import fl.transitions.easing.*; public class Map extends MovieClip { private var billboard3d:Billboard3d; private var sprite3d:Sprite3d; private var minimapHeight:Number; public var textDebug:TextField; private var minimapWidth:Number; private var yadjust; private var track:Track; private var i:int; private var obstacles3d:Array; private var classRef:Class; private var minimapFilter:DropShadowFilter; private var sprites3d:Array; private var obstacle3d:DisplayObject; private var core:Core; private var depthMax:Number; private var classRef2:Class; private var obstacles3dlen:int; private var baseY:Number; private var minimap:MovieClip; private var marker:Sprite; private var container2d:Sprite; private var billboards3d:Array; private var depth:Number; private var depthRange:Number; private var container3d:Sprite; private var obstacles:MovieClip; private var obstacles3dpos:Array; private var depthFade:Number; public function Map(){ obstacles3d = []; obstacles3dpos = []; depthMax = Constants.WORLD_VIEW_DISTANCE; depthFade = Constants.WORLD_FADE_DISTANCE; depthRange = (depthMax - depthFade); yadjust = Math.atan(2.7); billboards3d = []; sprites3d = []; super(); core = Core.getInstance(); minimapFilter = new DropShadowFilter(4, 45, 0, 0.6, 5, 5, 1); } public function init(_arg1:Track, _arg2:Sprite, _arg3:Sprite, _arg4:MovieClip){ baseY = y; track = _arg1; container2d = _arg2; container3d = _arg3; minimap = _arg4; minimap.x = track.MINI_MAP_X; minimap.y = track.MINI_MAP_Y; minimap.width = track.MINI_MAP_SIZE; minimap.height = track.MINI_MAP_SIZE; container2d.addChild(minimap); minimap.filters = [minimapFilter]; marker = new dot(); container2d.addChild(marker); addObstacles3d(); } private function moveConeReset(_arg1){ _arg1.inMotion = false; } public function react(_arg1, _arg2:Bike){ switch (_arg1.reaction){ case "cone": _arg1.inMotion = true; moveCone(_arg1, _arg2); _arg2.cone(); return; case "oil": _arg2.oil(); _arg1.collided = true; return; case "bonus": _arg1.collided = true; core.explosions.createExplosion2D(); core.hud.bonus(); return; case "bounce": _arg2.bounce(); return; case "solid": _arg2.crash(); return; case "none": return; }; } public function collisionReset(){ i = 0; while (i < sprites3d.length) { sprites3d[i].collided = false; i++; }; i = 0; while (i < billboards3d.length) { billboards3d[i].collided = false; i++; }; } private function addObstacles3d(){ var _local1:Obstacle; var _local2:*; var _local3:*; var _local4:*; var _local5:*; var _local6:*; i = 0; while (i < track.obstacleArray.length) { _local1 = track.obstacleArray[i]; if (_local1.type == "Billboard"){ classRef2 = (getDefinitionByName("signBack") as Class); classRef = (getDefinitionByName(_local1.classType) as Class); billboard3d = new Billboard3d(new classRef(0, 0), new classRef2(0, 0), (track.MAP_WIDTH - _local1.x), _local1.y, _local1.faceAngle, _local1.width, _local1.height, 0, 2, false, "solid"); container3d.addChild(billboard3d); billboards3d.push(billboard3d); } else { if (_local1.type == "Warning"){ classRef = (getDefinitionByName(_local1.classType) as Class); billboard3d = new Billboard3d(new classRef(0, 0), new classRef(0, 0), (track.MAP_WIDTH - _local1.x), _local1.y, _local1.faceAngle, _local1.width, _local1.height, 0, 2, false, "solid"); container3d.addChild(billboard3d); billboards3d.push(billboard3d); } else { if (_local1.type == "Banner"){ classRef2 = (getDefinitionByName("obstacleBannerBack") as Class); classRef = (getDefinitionByName(_local1.classType) as Class); billboard3d = new Billboard3d(new classRef(0, 0), new classRef2(0, 0), (track.MAP_WIDTH - _local1.x), _local1.y, _local1.faceAngle, _local1.width, _local1.height, 170, 4, true, "none"); container3d.addChild(billboard3d); billboards3d.push(billboard3d); _local2 = (track.MAP_WIDTH - _local1.x); _local3 = _local1.y; _local4 = (_local1.faceAngle - (Math.PI / 2)); _local5 = new Point((_local2 + (Math.sin(_local4) * 50)), (_local3 + (Math.cos(_local4) * 50))); _local6 = new Point((_local2 - (Math.sin(_local4) * 50)), (_local3 - (Math.cos(_local4) * 50))); classRef2 = (getDefinitionByName("obstacleTruss") as Class); sprite3d = new Sprite3d(new classRef2(), _local5.x, _local5.y, 8, 0, 0, "solid"); container3d.addChild(sprite3d); sprites3d.push(sprite3d); sprite3d = new Sprite3d(new classRef2(), _local6.x, _local6.y, 8, 0, 0, "solid"); container3d.addChild(sprite3d); sprites3d.push(sprite3d); } else { classRef = (getDefinitionByName(_local1.classType) as Class); sprite3d = new Sprite3d(new classRef(), (track.MAP_WIDTH - _local1.x), _local1.y, _local1.width, _local1.height, 0, _local1.reaction); container3d.addChild(sprite3d); sprites3d.push(sprite3d); }; }; }; i++; }; } public function setBase(_arg1:Number){ baseY = _arg1; } public function debug(){ var sliderAngle:Slider; var textFocal:*; var angleChange:Function; var sliderHorizon:Slider; var textHorizon:*; var horizonChange:Function; angleChange = function (_arg1:SliderEvent){ textFocal.text = _arg1.value; }; horizonChange = function (_arg1:SliderEvent){ yadjust = (_arg1.value / 10); textHorizon.text = (_arg1.value / 10); }; sliderAngle = new Slider(); sliderAngle.liveDragging = true; sliderAngle.minimum = 0; sliderAngle.maximum = 360; sliderAngle.width = 450; sliderAngle.move(10, 20); sliderAngle.addEventListener(SliderEvent.CHANGE, angleChange); container2d.addChild(sliderAngle); textFocal = new TextField(); textFocal.x = 460; textFocal.y = 10; textFocal.width = 50; textFocal.textColor = 0xFFFFFF; container2d.addChild(textFocal); sliderHorizon = new Slider(); sliderHorizon.liveDragging = true; sliderHorizon.minimum = 1; sliderHorizon.maximum = 100; sliderHorizon.width = 450; sliderHorizon.move(10, 50); sliderHorizon.addEventListener(SliderEvent.CHANGE, horizonChange); container2d.addChild(sliderHorizon); textHorizon = new TextField(); textHorizon.x = 460; textHorizon.y = 50; textHorizon.width = 500; textHorizon.textColor = 0xFFFFFF; container2d.addChild(textHorizon); textDebug = new TextField(); textDebug.x = 0; textDebug.y = 100; textDebug.width = 500; textDebug.textColor = 0xFFFFFF; core.container2d.addChild(textDebug); } public function collisions(_arg1:Bike){ var _local2:*; obstacles3dlen = sprites3d.length; while (obstacles3dlen--) { _local2 = sprites3d[obstacles3dlen]; if (_local2.collision(_arg1)){ react(_local2, _arg1); return; }; }; obstacles3dlen = billboards3d.length; while (obstacles3dlen--) { _local2 = billboards3d[obstacles3dlen]; if (_local2.collision(_arg1)){ react(_local2, _arg1); return; }; }; } public function moveCone(_arg1, _arg2:Bike){ var _local3:*; var _local4:*; var _local5:*; _local3 = (((Math.PI / 6) * Math.random()) + (Math.PI / 6)); if (Util.coinToss){ _local3 = -(_local3); }; if (_arg1.object.currentFrame == 1){ if (Util.coinToss){ _arg1.objectFrame = 2; } else { _arg1.objectFrame = 3; }; }; _local4 = (_arg1.sx + ((Math.sin((core.bike.angle + _local3)) * core.bike.speed) * Constants.CONE_BOUNCE)); _local5 = (_arg1.sy + ((Math.cos((core.bike.angle + _local3)) * core.bike.speed) * Constants.CONE_BOUNCE)); TweenLite.to(_arg1, Constants.CONE_BOUNCE_TIME, {sx:_local4, sy:_local5, ease:Strong.easeOut, onComplete:moveConeReset, onCompleteParams:[_arg1]}); } public function cleanup(){ var _local1:*; track = null; container2d.removeChild(minimap); minimap = null; container2d = null; container3d = null; obstacles = null; core = null; classRef = null; classRef2 = null; obstacles3dlen = sprites3d.length; while (obstacles3dlen--) { _local1 = sprites3d[obstacles3dlen]; _local1.cleanup(); }; obstacles3dlen = billboards3d.length; while (obstacles3dlen--) { _local1 = billboards3d[obstacles3dlen]; _local1.cleanup(); }; } public function render(_arg1:Bike){ var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:*; var _local7:Array; _local2 = _arg1._angleX; _local3 = _arg1._angleY; _local4 = ((Math.sin(((_arg1._angleY * Math.PI) / 180)) * Constants.CAMERA_OFFSET) + _arg1._xcam); _local5 = ((Math.cos(((_arg1._angleY * Math.PI) / 180)) * Constants.CAMERA_OFFSET) + _arg1._zcam); minimapWidth = track.MINI_MAP_XSCALE; minimapHeight = track.MINI_MAP_YSCALE; marker.x = ((track.MINI_MAP_X + ((_local4 / track.MAP_WIDTH) * minimapWidth)) + minimapWidth); marker.y = (track.MINI_MAP_Y - ((_local5 / track.MAP_HEIGHT) * minimapHeight)); _local7 = [{mc:_arg1, depth:Constants.BIKE_DEPTH}]; obstacles3dlen = sprites3d.length; while (obstacles3dlen--) { _local6 = sprites3d[obstacles3dlen]; _local6.render(_local4, _local5, _local3); _local7.push({mc:_local6, depth:_local6.proximity}); }; obstacles3dlen = billboards3d.length; while (obstacles3dlen--) { _local6 = billboards3d[obstacles3dlen]; _local6.render(_local4, _local5, _local3); _local7.push({mc:_local6, depth:_local6.proximity}); }; _local7.sortOn("depth", (Array.DESCENDING | Array.NUMERIC)); obstacles3dlen = _local7.length; while (obstacles3dlen--) { _local6 = _local7[obstacles3dlen].mc; depth = _local7[obstacles3dlen].depth; container3d.setChildIndex(container3d.getChildByName(_local6.name), 0); }; } } }//package map
Section 86
//Sprite3d (map.Sprite3d) package map { import flash.display.*; import flash.geom.*; public class Sprite3d extends Sprite { private var cosa:Number; private var px; private var py; private var S1y; private var S2y:Number; private var zcam:Number; private var sin:Function; private var S2x; private var origin:Point; public var reaction:String; private var _xcam:Number; public var inMotion:Boolean;// = false private var _zcam:Number; private var xcam:Number; public var sy:Number; private var h:Number; public var sx:Number; private var normalRight:Point; private var w:Number; private var t; private var s; private var intersectionPoint:Point; private var sina:Number; private var div; private var cos:Function; private var ty:Number; private var dy:Number; private var altitude:Number; private var dx; private var canView:Boolean; private var normalLeft:Point; private var tx; private var p1:Point; private var vx; private var vy; private var p0:Point; private var p2:Point; private var p3:Point; public var angle:Number; private var velocity:Point; public var collided:Boolean;// = false private var obj:DisplayObject; private var S1x; public function Sprite3d(_arg1:DisplayObject, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:String){ collided = false; inMotion = false; sin = Math.sin; cos = Math.cos; super(); sx = _arg2; sy = _arg3; w = _arg4; h = _arg5; altitude = _arg6; reaction = _arg7; obj = _arg1; addChild(obj); } public function get intersect(){ return (intersectionPoint); } public function collision(_arg1:Bike){ if (((canView) && (!(inMotion)))){ origin = new Point(sx, sy); sina = Math.sin((angle + (Math.PI / 2))); cosa = Math.cos((angle + (Math.PI / 2))); normalLeft = new Point(((w / 2) * sina), ((-(w) / 2) * cosa)); normalRight = new Point(((-(w) / 2) * sina), ((w / 2) * cosa)); _xcam = ((sin(angle) * Constants.BIKE_LENGTH) + _arg1._xcam); _zcam = ((-(cos(angle)) * Constants.BIKE_LENGTH) + _arg1._zcam); p0 = origin.add(normalLeft); p1 = origin.add(normalRight); p2 = new Point(-(_arg1._xcam), -(_arg1._zcam)); p3 = new Point((-(_xcam) + _arg1.vy), (-(_zcam) + _arg1.vx)); S1x = (p3.x - p2.x); S1y = (p3.y - p2.y); S2x = (p1.x - p0.x); S2y = (p1.y - p0.y); div = ((-(S2x) * S1y) + (S1x * S2y)); dx = (p2.x - p0.x); dy = (p2.y - p0.y); s = (((-(S1y) * dx) + (S1x * dy)) / div); t = (((S2x * dy) - (S2y * dx)) / div); if ((((((((s >= 0)) && ((s <= 1)))) && ((t >= 0)))) && ((t <= 1)))){ intersectionPoint = new Point((p0.x + (t * S1x)), (p0.y + (t * S1y))); return (true); }; return (false); //unresolved jump }; return (false); } public function get proximity(){ return (((vx * vx) + (vy * vy))); } public function cleanup(){ removeChild(obj); obj = null; } public function render(_arg1, _arg2, _arg3){ obj.visible = false; canView = false; if (!collided){ angle = ((-(_arg3) * Math.PI) / 180); vx = (_arg1 + sx); vy = (_arg2 + sy); tx = ((vy * sin(angle)) + (vx * cos(angle))); ty = (((vy * cos(angle)) - (vx * sin(angle))) + Constants.OFFSET_ROTATION); if ((((ty > 0)) && ((proximity < Constants.WORLD_VIEW_DISTANCE)))){ py = ((Constants.FOCAL_LENGTH * (Constants._ycam / ty)) + Constants.HORIZON_HEIGHT); px = (((Constants.FOCAL_LENGTH * (tx / ty)) + (Constants._resoDx * 0.5)) + Constants.OFFSET_MAP_X); s = (py - ((Constants.FOCAL_LENGTH * (Constants.HORIZON_SCALE / ty)) + Constants.HORIZON_HEIGHT)); if (px > -(Constants.OFFSCREEN)){ if (px < (Constants.STAGE_WIDTH + Constants.OFFSCREEN)){ if (s < Constants.MAX_SCALE){ obj.y = py; obj.x = px; obj.scaleX = (obj.scaleY = (s * 0.01)); obj.visible = true; canView = true; }; }; }; }; }; } public function get object(){ return (obj); } public function set objectFrame(_arg1:int){ (obj as MovieClip).gotoAndStop(_arg1); } } }//package map
Section 87
//Mode7 (mode7.Mode7) package mode7 { import flash.display.*; import flash.geom.*; import flash.events.*; import tracks.*; import flash.text.*; import flash.utils.*; public class Mode7 extends Sprite { private var trackMatrix:Matrix; private var _nbScans:Number;// = 0 private var offsetX:Number; private var offsetY:Number; private var text_xcam:TextField; private var _scanSteps:Number; private var offsetRotation:Number; private var _xcam:Number; private var text_angleY:TextField; private var text_notes:TextField; private var track:Track; private var i:int; private var j:int; private var _nbMs:Number; private var _bmpd:BitmapData; private var _ycam:Number;// = 30 private var text_ycam:TextField; private var baseY:Number; private var sliceArray:Array; public function Mode7(){ offsetRotation = Constants.OFFSET_ROTATION; _ycam = 30; _nbScans = 0; offsetX = Constants.OFFSET_X; offsetY = Constants.OFFSET_Y; sliceArray = []; super(); } public function init(_arg1:Track, _arg2:BitmapData){ var _local3:*; var _local4:*; baseY = y; track = _arg1; _bmpd = _arg2; if (!Constants.HI_RES){ _scanSteps = 2; _nbScans = (Constants._resoDy >> 1); } else { _scanSteps = 1; _nbScans = Constants._resoDy; }; _local3 = 0; i = 0; while (i < _nbScans) { if (i > Constants.HORIZON){ _local3 = Math.min(1, (_local3 + (0.2 * _scanSteps))); }; _local4 = new Sprite(); _local4.x = (offsetX + (Constants._resoDx * 0.5)); _local4.y = (offsetY + (i * _scanSteps)); _local4.alpha = _local3; addChild(_local4); sliceArray.push(_local4); i++; }; j = 0; } private function debug(){ text_xcam = new TextField(); text_xcam.x = 10; text_xcam.y = 10; text_xcam.width = 200; text_xcam.textColor = 0xFFFFFF; addChild(text_xcam); text_ycam = new TextField(); text_ycam.x = 10; text_ycam.y = 30; text_ycam.width = 200; text_ycam.textColor = 0xFFFFFF; addChild(text_ycam); text_angleY = new TextField(); text_angleY.x = 10; text_angleY.y = 50; text_angleY.width = 200; text_angleY.textColor = 0xFFFFFF; addChild(text_angleY); text_notes = new TextField(); text_notes.x = 10; text_notes.y = 70; text_notes.width = 200; text_notes.textColor = 0xFFFFFF; addChild(text_notes); } public function render(_arg1:Bike){ var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Function; var _local19:Function; var _local20:Matrix; var _local21:*; var _local22:*; _local18 = Math.sin; _local19 = Math.cos; _local2 = _arg1._angleX; _local3 = _arg1._angleY; _local4 = ((Math.sin(((_arg1._angleY * Math.PI) / 180)) * Constants.CAMERA_OFFSET) + _arg1._xcam); _local5 = ((Math.cos(((_arg1._angleY * Math.PI) / 180)) * Constants.CAMERA_OFFSET) + _arg1._zcam); _local20 = new Matrix(); _local20.rotate(((_local3 * Math.PI) / 180)); _local7 = ((Constants._resoDx * 0.5) / 250); _local14 = (((40 / _nbScans) * Math.PI) / 180); _local15 = (((_local2 * Math.PI) / 180) - ((_local14 * _nbScans) * 0.5)); _local11 = _local18(((_local3 * Math.PI) / 180)); _local13 = _local19(((_local3 * Math.PI) / 180)); _local6 = -1; while (++_local6 < _nbScans) { sliceArray[_local6].graphics.clear(); _local15 = (_local15 + _local14); _local12 = _local18(_local15); if (_local12 < 0){ } else { _local16 = (Constants._ycam / _local12); _local17 = (_local19(_local15) * _local16); _local21 = _local4; _local22 = _local5; _local9 = (_local4 - (_local11 * _local17)); _local10 = (_local5 - (_local13 * _local17)); _local20.tx = ((_local9 * _local20.a) + (_local10 * _local20.c)); _local20.ty = (((_local9 * _local20.b) + (_local10 * _local20.d)) + offsetRotation); _local8 = (_local7 * _local16); sliceArray[_local6].scaleX = ((Constants.WORLD_SCALE / _local16) * 0.01); sliceArray[_local6].graphics.beginBitmapFill(_bmpd, _local20, false, Constants.SMOOTH); sliceArray[_local6].graphics.moveTo(-(_local8), 0); sliceArray[_local6].graphics.lineTo(_local8, 0); sliceArray[_local6].graphics.lineTo(_local8, _scanSteps); sliceArray[_local6].graphics.lineTo(-(_local8), _scanSteps); sliceArray[_local6].graphics.endFill(); }; }; } public function cleanup(){ var _local1:*; _bmpd.dispose(); i = 0; while (i < _nbScans) { _local1 = sliceArray[i]; removeChild(_local1); i++; }; } } }//package mode7
Section 88
//AGteaser_mc_92 (motoracer_fla.AGteaser_mc_92) package motoracer_fla { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.media.*; import flash.filters.*; import flash.net.*; import fl.transitions.*; import flash.text.*; import flash.utils.*; import fl.transitions.easing.*; import flash.system.*; import flash.ui.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; import flash.printing.*; import flash.xml.*; public dynamic class AGteaser_mc_92 extends MovieClip { public var smash:Smash; public var p_in; public var AGpresented_mc:MovieClip; public var AGclick_btn:SimpleButton; public var AGlogo_mc:MovieClip; public function AGteaser_mc_92(){ addFrameScript(0, frame1); } function frame1(){ stop(); smash = new Smash(); AGpresented_mc.alpha = 0; AGclick_btn.visible = false; AGlogo_mc.y = -275; p_in = new Tween(AGpresented_mc, "alpha", Strong.easeIn, 0, 100, 12, false); p_in.addEventListener(TweenEvent.MOTION_FINISH, logo); AGclick_btn.addEventListener(MouseEvent.CLICK, loadAG); } public function loadAG(_arg1:MouseEvent):void{ var _local2:URLRequest; _local2 = new URLRequest("http://www.addictinggames.com"); navigateToURL(_local2, "_blank"); } public function logo(_arg1:TweenEvent){ var logo_in:*; var crunch:Function; var event = _arg1; crunch = function (_arg1:TweenEvent){ smash.play(); AGclick_btn.visible = true; new Tween(AGlogo_mc, "y", Bounce.easeOut, 60, 85, 6, false); new Tween(AGlogo_mc, "x", Bounce.easeOut, 30, 50, 6, false); new Tween(AGpresented_mc, "y", Bounce.easeOut, 15, 25, 6, false); new Tween(AGpresented_mc, "x", Bounce.easeOut, 110, 100, 6, false); }; logo_in = new Tween(AGlogo_mc, "y", Strong.easeIn, -275, 85, 12, false); logo_in.addEventListener(TweenEvent.MOTION_FINISH, crunch); } } }//package motoracer_fla
Section 89
//bike_46 (motoracer_fla.bike_46) package motoracer_fla { import flash.display.*; import bike.wheel.*; public dynamic class bike_46 extends MovieClip { public var spinner:fx; public function bike_46(){ addFrameScript(51, frame52, 61, frame62); } function frame52(){ stop(); } function frame62(){ stop(); } } }//package motoracer_fla
Section 90
//credits_42 (motoracer_fla.credits_42) package motoracer_fla { import flash.display.*; import flash.text.*; public dynamic class credits_42 extends MovieClip { public var loadingText:TextField; } }//package motoracer_fla
Section 91
//credits_69 (motoracer_fla.credits_69) package motoracer_fla { import flash.display.*; import flash.text.*; public dynamic class credits_69 extends MovieClip { public var countryText:TextField; } }//package motoracer_fla
Section 92
//hud_53 (motoracer_fla.hud_53) package motoracer_fla { import flash.display.*; public dynamic class hud_53 extends MovieClip { public var dial:MovieClip; } }//package motoracer_fla
Section 93
//hud_61 (motoracer_fla.hud_61) package motoracer_fla { import flash.display.*; public dynamic class hud_61 extends MovieClip { public var Mask:MovieClip; } }//package motoracer_fla
Section 94
//hud_62 (motoracer_fla.hud_62) package motoracer_fla { import flash.display.*; import flash.text.*; public dynamic class hud_62 extends MovieClip { public var totalTimeText:TextField; } }//package motoracer_fla
Section 95
//logo_91 (motoracer_fla.logo_91) package motoracer_fla { import flash.display.*; public dynamic class logo_91 extends MovieClip { public function logo_91(){ addFrameScript(162, frame163); } function frame163(){ (parent as MovieClip).gotoAndPlay("game"); stop(); } } }//package motoracer_fla
Section 96
//mc_bomb_25 (motoracer_fla.mc_bomb_25) package motoracer_fla { import flash.display.*; public dynamic class mc_bomb_25 extends MovieClip { public var guide:MovieClip; public function mc_bomb_25(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package motoracer_fla
Section 97
//preloader_2 (motoracer_fla.preloader_2) package motoracer_fla { import flash.display.*; import flash.text.*; public dynamic class preloader_2 extends MovieClip { public var percentage:TextField; public var preloaderBar:MovieClip; public var game:MovieClip; } }//package motoracer_fla
Section 98
//preloader_3 (motoracer_fla.preloader_3) package motoracer_fla { import flash.display.*; public dynamic class preloader_3 extends MovieClip { public var bar:MovieClip; } }//package motoracer_fla
Section 99
//preloader_8 (motoracer_fla.preloader_8) package motoracer_fla { import flash.display.*; import flash.text.*; public dynamic class preloader_8 extends MovieClip { public var title:TextField; } }//package motoracer_fla
Section 100
//score_96 (motoracer_fla.score_96) package motoracer_fla { import flash.display.*; public dynamic class score_96 extends MovieClip { public var scores:scoreboard; } }//package motoracer_fla
Section 101
//score_97 (motoracer_fla.score_97) package motoracer_fla { import flash.display.*; public dynamic class score_97 extends MovieClip { public function score_97(){ addFrameScript(22, frame23); } function frame23(){ stop(); } } }//package motoracer_fla
Section 102
//score_98 (motoracer_fla.score_98) package motoracer_fla { import flash.display.*; public dynamic class score_98 extends MovieClip { public function score_98(){ addFrameScript(6, frame7); } function frame7(){ stop(); } } }//package motoracer_fla
Section 103
//scoreboard_101 (motoracer_fla.scoreboard_101) package motoracer_fla { import flash.display.*; public dynamic class scoreboard_101 extends MovieClip { public var bar:MovieClip; } }//package motoracer_fla
Section 104
//start_anim_56 (motoracer_fla.start_anim_56) package motoracer_fla { import flash.display.*; public dynamic class start_anim_56 extends MovieClip { public function start_anim_56(){ addFrameScript(0, frame1, 80, frame81); } function frame81(){ stop(); } function frame1(){ stop(); } } }//package motoracer_fla
Section 105
//Camera3D (org.papervision3d.cameras.Camera3D) package org.papervision3d.cameras { import org.papervision3d.core.proto.*; import org.papervision3d.core.*; import org.papervision3d.objects.*; public class Camera3D extends CameraObject3D { public var goto:Number3D; public var target:DisplayObject3D; public function Camera3D(_arg1:DisplayObject3D=null, _arg2:Number=2, _arg3:Number=100, _arg4:Object=null){ super(_arg2, _arg3, _arg4); this.target = ((_arg1) || (DisplayObject3D.ZERO)); this.goto = new Number3D(this.x, this.y, this.z); } override public function transformView(_arg1:Matrix3D=null):void{ this.lookAt(this.target); super.transformView(); } public function hover(_arg1:Number, _arg2:Number, _arg3:Number):void{ var _local4:DisplayObject3D; var _local5:Number3D; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; _local4 = this.target; _local5 = this.goto; _local6 = 8; switch (_arg1){ case 0: _local7 = (_local5.x - _local4.x); _local8 = (_local5.z - _local4.z); _local9 = Math.atan2(_local8, _local7); _local10 = Math.sqrt(((_local7 * _local7) + (_local8 * _local8))); _local11 = (0.5 * _arg2); _local12 = (_local10 * Math.cos((_local9 - _local11))); _local13 = (_local10 * Math.sin((_local9 - _local11))); _local14 = (_local5.y - (300 * _arg3)); this.x = (this.x - ((this.x - _local12) / _local6)); this.y = (this.y - ((this.y - _local14) / _local6)); this.z = (this.z - ((this.z - _local13) / _local6)); break; case 1: this.x = (this.x - ((this.x - (1000 * _arg2)) / _local6)); this.y = (this.y - ((this.y - (1000 * _arg3)) / _local6)); break; }; } } }//package org.papervision3d.cameras
Section 106
//DefaultParticleCuller (org.papervision3d.core.culling.DefaultParticleCuller) package org.papervision3d.core.culling { import org.papervision3d.core.geom.renderables.*; public class DefaultParticleCuller implements IParticleCuller { public function testParticle(_arg1:Particle):Boolean{ if (_arg1.material.invisible == false){ if (_arg1.vertex3D.vertex3DInstance.visible == true){ return (true); }; }; return (false); } } }//package org.papervision3d.core.culling
Section 107
//DefaultTriangleCuller (org.papervision3d.core.culling.DefaultTriangleCuller) package org.papervision3d.core.culling { import org.papervision3d.core.geom.renderables.*; import org.papervision3d.core.proto.*; public class DefaultTriangleCuller implements ITriangleCuller { private static var y2:Number; private static var y1:Number; private static var y0:Number; private static var x0:Number; private static var x1:Number; private static var x2:Number; public function testFace(_arg1:Triangle3D, _arg2:Vertex3DInstance, _arg3:Vertex3DInstance, _arg4:Vertex3DInstance):Boolean{ var _local5:MaterialObject3D; if (((((_arg2.visible) && (_arg3.visible))) && (_arg4.visible))){ _local5 = (_arg1.material) ? _arg1.material : _arg1.instance.material; if (_local5.invisible){ return (false); }; x0 = _arg2.x; y0 = _arg2.y; x1 = _arg3.x; y1 = _arg3.y; x2 = _arg4.x; y2 = _arg4.y; if (_local5.oneSide){ if (_local5.opposite){ if ((((x2 - x0) * (y1 - y0)) - ((y2 - y0) * (x1 - x0))) > 0){ return (false); }; } else { if ((((x2 - x0) * (y1 - y0)) - ((y2 - y0) * (x1 - x0))) < 0){ return (false); }; }; }; return (true); }; return (false); } } }//package org.papervision3d.core.culling
Section 108
//IParticleCuller (org.papervision3d.core.culling.IParticleCuller) package org.papervision3d.core.culling { import org.papervision3d.core.geom.renderables.*; public interface IParticleCuller { function testParticle(_arg1:Particle):Boolean; } }//package org.papervision3d.core.culling
Section 109
//ITriangleCuller (org.papervision3d.core.culling.ITriangleCuller) package org.papervision3d.core.culling { import org.papervision3d.core.geom.renderables.*; public interface ITriangleCuller { function testFace(_arg1:Triangle3D, _arg2:Vertex3DInstance, _arg3:Vertex3DInstance, _arg4:Vertex3DInstance):Boolean; } }//package org.papervision3d.core.culling
Section 110
//IRenderable (org.papervision3d.core.geom.renderables.IRenderable) package org.papervision3d.core.geom.renderables { import org.papervision3d.core.render.command.*; public interface IRenderable { function getRenderListItem():IRenderListItem; } }//package org.papervision3d.core.geom.renderables
Section 111
//Particle (org.papervision3d.core.geom.renderables.Particle) package org.papervision3d.core.geom.renderables { import org.papervision3d.materials.*; import org.papervision3d.core.render.command.*; import org.papervision3d.core.geom.*; public class Particle implements IRenderable { public var size:int; public var renderCommand:RenderParticle; public var renderScale:Number; public var instance:Particles; public var material:ParticleMaterial; public var vertex3D:Vertex3D; public function Particle(_arg1:ParticleMaterial, _arg2:int=1, _arg3:Number=0, _arg4:Number=0, _arg5:Number=0){ this.material = _arg1; this.size = _arg2; this.renderCommand = new RenderParticle(this); vertex3D = new Vertex3D(_arg3, _arg4, _arg5); } public function get y():Number{ return (vertex3D.y); } public function set x(_arg1:Number):void{ vertex3D.x = _arg1; } public function set y(_arg1:Number):void{ vertex3D.y = _arg1; } public function get x():Number{ return (vertex3D.x); } public function get z():Number{ return (vertex3D.z); } public function set z(_arg1:Number):void{ vertex3D.z = _arg1; } public function getRenderListItem():IRenderListItem{ return (renderCommand); } } }//package org.papervision3d.core.geom.renderables
Section 112
//Triangle3D (org.papervision3d.core.geom.renderables.Triangle3D) package org.papervision3d.core.geom.renderables { import org.papervision3d.core.proto.*; import org.papervision3d.core.*; import org.papervision3d.core.render.command.*; import org.papervision3d.objects.*; public class Triangle3D implements IRenderable { public var vertices:Array; public var face3DInstance:Triangle3DInstance; public var instance:DisplayObject3D; public var id:Number; public var uv:Array; public var material:MaterialObject3D; public var faceNormal:Number3D; public var renderCommand:RenderTriangle; public var screenZ:Number; public var _materialName:String; public var visible:Boolean; public var v0:Vertex3D; public var v1:Vertex3D; public var v2:Vertex3D; private static var _totalFaces:Number = 0; public function Triangle3D(_arg1:DisplayObject3D, _arg2:Array, _arg3:MaterialObject3D=null, _arg4:Array=null){ this.instance = _arg1; this.renderCommand = new RenderTriangle(this); face3DInstance = new Triangle3DInstance(this, _arg1); this.vertices = _arg2; v0 = _arg2[0]; v1 = _arg2[1]; v2 = _arg2[2]; this.material = _arg3; this.uv = _arg4; this.id = _totalFaces++; createNormal(); } public function getRenderListItem():IRenderListItem{ return (renderCommand); } protected function createNormal():void{ var _local1:Number3D; var _local2:Number3D; var _local3:Number3D; var _local4:Number3D; var _local5:Number3D; _local1 = v0.toNumber3D(); _local2 = v1.toNumber3D(); _local3 = v2.toNumber3D(); _local4 = Number3D.sub(_local2, _local1); _local5 = Number3D.sub(_local3, _local1); faceNormal = Number3D.cross(_local5, _local4); faceNormal.normalize(); } } }//package org.papervision3d.core.geom.renderables
Section 113
//Triangle3DInstance (org.papervision3d.core.geom.renderables.Triangle3DInstance) package org.papervision3d.core.geom.renderables { import flash.display.*; import org.papervision3d.core.*; import org.papervision3d.objects.*; public class Triangle3DInstance { public var container:Sprite; public var faceNormal:Number3D; public var screenZ:Number; public var visible:Boolean;// = false public var instance:DisplayObject3D; public function Triangle3DInstance(_arg1:Triangle3D, _arg2:DisplayObject3D){ visible = false; super(); this.instance = _arg2; faceNormal = new Number3D(); } } }//package org.papervision3d.core.geom.renderables
Section 114
//Vertex3D (org.papervision3d.core.geom.renderables.Vertex3D) package org.papervision3d.core.geom.renderables { import org.papervision3d.core.*; import org.papervision3d.core.render.command.*; import flash.utils.*; public class Vertex3D implements IRenderable { public var vertex3DInstance:Vertex3DInstance; public var connectedFaces:Dictionary; public var normal:Number3D; public var extra:Object; public var x:Number; public var y:Number; public var z:Number; public function Vertex3D(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0){ this.x = _arg1; this.y = _arg2; this.z = _arg3; this.vertex3DInstance = new Vertex3DInstance(); this.normal = new Number3D(); this.connectedFaces = new Dictionary(); } public function getRenderListItem():IRenderListItem{ return (null); } public function calculateNormal():void{ var _local1:Triangle3D; var _local2:Number; normal = new Number3D(); _local2 = 0; for each (_local1 in connectedFaces) { _local2++; normal = Number3D.add(_local1.faceNormal, normal); }; normal.x = (normal.x / _local2); normal.y = (normal.y / _local2); normal.z = (normal.z / _local2); normal.normalize(); } public function toNumber3D():Number3D{ return (new Number3D(x, y, z)); } public function clone():Vertex3D{ var _local1:Vertex3D; _local1 = new Vertex3D(x, y, z); _local1.extra = extra; _local1.vertex3DInstance = vertex3DInstance.clone(); _local1.normal = normal.clone(); return (_local1); } } }//package org.papervision3d.core.geom.renderables
Section 115
//Vertex3DInstance (org.papervision3d.core.geom.renderables.Vertex3DInstance) package org.papervision3d.core.geom.renderables { import org.papervision3d.core.*; public class Vertex3DInstance { public var visible:Boolean; public var normal:Number3D; public var extra:Object; public var x:Number; public var y:Number; public var z:Number; public function Vertex3DInstance(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0){ this.x = _arg1; this.y = _arg2; this.z = _arg3; this.visible = false; this.normal = new Number3D(); } public function clone():Vertex3DInstance{ var _local1:Vertex3DInstance; _local1 = new Vertex3DInstance(x, y, z); _local1.visible = visible; _local1.extra = extra; return (_local1); } public static function cross(_arg1:Vertex3DInstance, _arg2:Vertex3DInstance):Number{ return (((_arg1.x * _arg2.y) - (_arg2.x * _arg1.y))); } public static function dot(_arg1:Vertex3DInstance, _arg2:Vertex3DInstance):Number{ return (((_arg1.x * _arg2.x) + (_arg1.y * _arg2.y))); } public static function sub(_arg1:Vertex3DInstance, _arg2:Vertex3DInstance):Vertex3DInstance{ return (new Vertex3DInstance((_arg2.x - _arg1.x), (_arg2.y - _arg1.y))); } } }//package org.papervision3d.core.geom.renderables
Section 116
//Particles (org.papervision3d.core.geom.Particles) package org.papervision3d.core.geom { import org.papervision3d.core.geom.renderables.*; import org.papervision3d.core.proto.*; import org.papervision3d.objects.*; public class Particles extends Vertices3D { private var particles:Array; private var vertices:Array; public function Particles(_arg1:String="VertexParticles"){ this.vertices = new Array(); this.particles = new Array(); super(vertices, _arg1); } override public function project(_arg1:DisplayObject3D, _arg2:CameraObject3D, _arg3:Array=null):Number{ var _local4:Particle; var _local5:Number; super.project(_arg1, _arg2, _arg3); _local5 = (_arg2.focus * _arg2.zoom); for each (_local4 in particles) { if (scene.particleCuller.testParticle(_local4)){ _local4.renderScale = (_local5 / (_arg2.focus + _local4.vertex3D.vertex3DInstance.z)); _local4.renderCommand.screenDepth = _local4.vertex3D.vertex3DInstance.z; scene.renderer.addToRenderList(_local4.renderCommand); }; }; return (1); } public function removeParticle(_arg1:Particle):void{ _arg1.instance = null; particles.splice(particles.indexOf(_arg1, 0)); vertices.splice(vertices.indexOf(_arg1.vertex3D, 0)); } public function addParticle(_arg1:Particle):void{ _arg1.instance = this; particles.push(_arg1); vertices.push(_arg1.vertex3D); } public function removeAllParticles():void{ particles = new Array(); vertices = new Array(); geometry.vertices = vertices; } } }//package org.papervision3d.core.geom
Section 117
//TriangleMesh3D (org.papervision3d.core.geom.TriangleMesh3D) package org.papervision3d.core.geom { import org.papervision3d.core.geom.renderables.*; import org.papervision3d.core.proto.*; import org.papervision3d.core.*; import org.papervision3d.objects.*; import flash.utils.*; import org.papervision3d.core.render.draw.*; import org.papervision3d.core.culling.*; public class TriangleMesh3D extends Vertices3D { public function TriangleMesh3D(_arg1:MaterialObject3D, _arg2:Array, _arg3:Array, _arg4:String=null, _arg5:Object=null){ super(_arg2, _arg4, _arg5); this.geometry.faces = ((_arg3) || (new Array())); this.material = ((_arg1) || (MaterialObject3D.DEFAULT)); } override public function project(_arg1:DisplayObject3D, _arg2:CameraObject3D, _arg3:Array=null):Number{ var _local4:Array; var _local5:Number; var _local6:Number; var _local7:ITriangleCuller; var _local8:Vertex3DInstance; var _local9:Vertex3DInstance; var _local10:Vertex3DInstance; var _local11:Triangle3DInstance; var _local12:Triangle3D; var _local13:MaterialObject3D; super.project(_arg1, _arg2, _arg3); if (!_arg3){ _arg3 = this._sorted; }; _local4 = this.geometry.faces; _local5 = 0; _local6 = 0; _local7 = scene.triangleCuller; for each (_local12 in _local4) { _local13 = (_local12.material) ? _local12.material : material; _local11 = _local12.face3DInstance; _local8 = _local12.v0.vertex3DInstance; _local9 = _local12.v1.vertex3DInstance; _local10 = _local12.v2.vertex3DInstance; if ((_local11.visible = _local7.testFace(_local12, _local8, _local9, _local10))){ if (_local13.needsFaceNormals){ _local12.faceNormal.copyTo(_local11.faceNormal); Matrix3D.multiplyVector3x3(this.view, _local11.faceNormal); }; if (_local13.needsVertexNormals){ _local12.v0.normal.copyTo(_local12.v0.vertex3DInstance.normal); Matrix3D.multiplyVector3x3(this.world, _local8.normal); _local12.v1.normal.copyTo(_local12.v1.vertex3DInstance.normal); Matrix3D.multiplyVector3x3(this.world, _local9.normal); _local12.v2.normal.copyTo(_local12.v2.vertex3DInstance.normal); Matrix3D.multiplyVector3x3(this.world, _local10.normal); }; switch (meshSort){ case DisplayObject3D.MESH_SORT_CENTER: _local5 = (_local5 + (_local11.screenZ = (((_local8.z + _local9.z) + _local10.z) * 0.333))); break; case DisplayObject3D.MESH_SORT_FAR: _local5 = (_local5 + (_local11.screenZ = Math.max(_local8.z, _local9.z, _local10.z))); break; case DisplayObject3D.MESH_SORT_CLOSE: _local5 = (_local5 + (_local11.screenZ = Math.min(_local8.z, _local9.z, _local10.z))); break; }; _local6++; _local12.renderCommand.renderer = (_local13 as ITriangleDrawer); _local12.renderCommand.screenDepth = _local11.screenZ; scene.renderer.addToRenderList(_local12.renderCommand); } else { scene.stats.culledTriangles++; }; }; return ((this.screenZ = (_local5 / _local6))); } public function mergeVertices():void{ var _local1:Dictionary; var _local2:Array; var _local3:Vertex3D; var _local4:Triangle3D; var _local5:Vertex3D; _local1 = new Dictionary(); _local2 = new Array(); for each (_local3 in this.geometry.vertices) { for each (_local5 in _local1) { if ((((((_local3.x == _local5.x)) && ((_local3.y == _local5.y)))) && ((_local3.z == _local5.z)))){ _local1[_local3] = _local5; break; }; }; if (!_local1[_local3]){ _local1[_local3] = _local3; _local2.push(_local3); }; }; this.geometry.vertices = _local2; for each (_local4 in this.geometry.faces) { _local4.v0 = _local1[_local4.v0]; _local4.v1 = _local1[_local4.v1]; _local4.v2 = _local1[_local4.v2]; }; } public function projectTexture(_arg1:String="x", _arg2:String="y"):void{ var _local3:Array; var _local4:Object; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:MaterialObject3D; var _local10:String; var _local11:Triangle3D; var _local12:Array; var _local13:Vertex3D; var _local14:Vertex3D; var _local15:Vertex3D; var _local16:NumberUV; var _local17:NumberUV; var _local18:NumberUV; _local3 = this.geometry.faces; _local4 = this.boundingBox(); _local5 = _local4.min[_arg1]; _local6 = _local4.size[_arg1]; _local7 = _local4.min[_arg2]; _local8 = _local4.size[_arg2]; _local9 = this.material; for (_local10 in _local3) { _local11 = _local3[Number(_local10)]; _local12 = _local11.vertices; _local13 = _local12[0]; _local14 = _local12[1]; _local15 = _local12[2]; _local16 = new NumberUV(((_local13[_arg1] - _local5) / _local6), ((_local13[_arg2] - _local7) / _local8)); _local17 = new NumberUV(((_local14[_arg1] - _local5) / _local6), ((_local14[_arg2] - _local7) / _local8)); _local18 = new NumberUV(((_local15[_arg1] - _local5) / _local6), ((_local15[_arg2] - _local7) / _local8)); _local11.uv = [_local16, _local17, _local18]; }; } } }//package org.papervision3d.core.geom
Section 118
//Vertices3D (org.papervision3d.core.geom.Vertices3D) package org.papervision3d.core.geom { import org.papervision3d.core.geom.renderables.*; import org.papervision3d.core.proto.*; import org.papervision3d.core.*; import org.papervision3d.objects.*; public class Vertices3D extends DisplayObject3D { public function Vertices3D(_arg1:Array, _arg2:String=null, _arg3:Object=null){ super(_arg2, new GeometryObject3D(), _arg3); this.geometry.vertices = ((_arg1) || (new Array())); } override public function project(_arg1:DisplayObject3D, _arg2:CameraObject3D, _arg3:Array=null):Number{ var _local4:Matrix3D; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Vertex3D; var _local21:Vertex3DInstance; var _local22:Number; var _local23:Array; var _local24:int; var _local25:Number; var _local26:Number; super.project(_arg1, _arg2, _arg3); _local4 = this.view; _local5 = _local4.n11; _local6 = _local4.n12; _local7 = _local4.n13; _local8 = _local4.n21; _local9 = _local4.n22; _local10 = _local4.n23; _local11 = _local4.n31; _local12 = _local4.n32; _local13 = _local4.n33; _local23 = this.geometry.vertices; _local24 = _local23.length; _local25 = _arg2.focus; _local26 = (_local25 * _arg2.zoom); while ((_local20 = _local23[--_local24])) { _local14 = _local20.x; _local15 = _local20.y; _local16 = _local20.z; _local19 = ((((_local14 * _local11) + (_local15 * _local12)) + (_local16 * _local13)) + _local4.n34); _local21 = _local20.vertex3DInstance; if ((_local21.visible = (_local19 > 0))){ _local17 = ((((_local14 * _local5) + (_local15 * _local6)) + (_local16 * _local7)) + _local4.n14); _local18 = ((((_local14 * _local8) + (_local15 * _local9)) + (_local16 * _local10)) + _local4.n24); _local22 = (_local26 / (_local25 + _local19)); _local21.x = (_local17 * _local22); _local21.y = (_local18 * _local22); _local21.z = _local19; }; }; return (0); } public function transformVertices(_arg1:Matrix3D):void{ var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Array; var _local15:int; var _local16:Vertex3D; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; _local2 = _arg1.n11; _local3 = _arg1.n12; _local4 = _arg1.n13; _local5 = _arg1.n21; _local6 = _arg1.n22; _local7 = _arg1.n23; _local8 = _arg1.n31; _local9 = _arg1.n32; _local10 = _arg1.n33; _local11 = _arg1.n14; _local12 = _arg1.n24; _local13 = _arg1.n34; _local14 = this.geometry.vertices; _local15 = _local14.length; while ((_local16 = _local14[--_local15])) { _local17 = _local16.x; _local18 = _local16.y; _local19 = _local16.z; _local20 = ((((_local17 * _local2) + (_local18 * _local3)) + (_local19 * _local4)) + _local11); _local21 = ((((_local17 * _local5) + (_local18 * _local6)) + (_local19 * _local7)) + _local12); _local22 = ((((_local17 * _local8) + (_local18 * _local9)) + (_local19 * _local10)) + _local13); _local16.x = _local20; _local16.y = _local21; _local16.z = _local22; }; } public function boundingBox():Object{ var _local1:Object; var _local2:Object; var _local3:String; var _local4:Vertex3D; _local1 = this.geometry.vertices; _local2 = new Object(); _local2.min = new Number3D(); _local2.max = new Number3D(); _local2.size = new Number3D(); for (_local3 in _local1) { _local4 = _local1[Number(_local3)]; _local2.min.x = ((_local2.min.x)==undefined) ? _local4.x : Math.min(_local4.x, _local2.min.x); _local2.max.x = ((_local2.max.x)==undefined) ? _local4.x : Math.max(_local4.x, _local2.max.x); _local2.min.y = ((_local2.min.y)==undefined) ? _local4.y : Math.min(_local4.y, _local2.min.y); _local2.max.y = ((_local2.max.y)==undefined) ? _local4.y : Math.max(_local4.y, _local2.max.y); _local2.min.z = ((_local2.min.z)==undefined) ? _local4.z : Math.min(_local4.z, _local2.min.z); _local2.max.z = ((_local2.max.z)==undefined) ? _local4.z : Math.max(_local4.z, _local2.max.z); }; _local2.size.x = (_local2.max.x - _local2.min.x); _local2.size.y = (_local2.max.y - _local2.min.y); _local2.size.z = (_local2.max.z - _local2.min.z); return (_local2); } } }//package org.papervision3d.core.geom
Section 119
//CameraObject3D (org.papervision3d.core.proto.CameraObject3D) package org.papervision3d.core.proto { import org.papervision3d.core.*; import org.papervision3d.objects.*; public class CameraObject3D extends DisplayObject3D { public var sort:Boolean; public var zoom:Number; public var focus:Number; private static var _flipY:Matrix3D = Matrix3D.scaleMatrix(1, -1, 1); public static var DEFAULT_POS:Number3D = new Number3D(0, 0, -1000); public function CameraObject3D(_arg1:Number=3, _arg2:Number=500, _arg3:Object=null){ this.x = (_arg3) ? ((_arg3.x) || (DEFAULT_POS.x)) : DEFAULT_POS.x; this.y = (_arg3) ? ((_arg3.y) || (DEFAULT_POS.y)) : DEFAULT_POS.y; this.z = (_arg3) ? ((_arg3.z) || (DEFAULT_POS.z)) : DEFAULT_POS.z; this.zoom = _arg1; this.focus = _arg2; this.sort = (_arg3) ? !((_arg3.sort == false)) : true; } public function transformView(_arg1:Matrix3D=null):void{ this.view = Matrix3D.inverse(Matrix3D.multiply(((_arg1) || (this.transform)), _flipY)); } public function pan(_arg1:Number):void{ super.yaw(_arg1); } public function tilt(_arg1:Number):void{ super.pitch(_arg1); } } }//package org.papervision3d.core.proto
Section 120
//DisplayObjectContainer3D (org.papervision3d.core.proto.DisplayObjectContainer3D) package org.papervision3d.core.proto { import flash.events.*; import org.papervision3d.materials.*; import org.papervision3d.objects.*; import flash.utils.*; import org.papervision3d.*; public class DisplayObjectContainer3D extends EventDispatcher { protected var _children:Dictionary; public var root:DisplayObjectContainer3D; private var _childrenTotal:int; protected var _childrenByName:Object; public function DisplayObjectContainer3D():void{ this._children = new Dictionary(false); this._childrenByName = new Dictionary(true); this._childrenTotal = 0; } public function getChildByName(_arg1:String):DisplayObject3D{ return (this._childrenByName[_arg1]); } public function addCollada(_arg1:String, _arg2:MaterialsList=null, _arg3:Number=1):void{ Papervision3D.log("The addCollada() method has been deprecated. Use addChildren( new Collada( filename ) )"); } public function removeChildByName(_arg1:String):DisplayObject3D{ return (removeChild(getChildByName(_arg1))); } public function get numChildren():int{ return (this._childrenTotal); } override public function toString():String{ return (childrenList()); } public function addChildren(_arg1:DisplayObject3D):DisplayObjectContainer3D{ var _local2:DisplayObject3D; for each (_local2 in _arg1.children) { _arg1.removeChild(_local2); this.addChild(_local2); }; return (this); } public function removeChild(_arg1:DisplayObject3D):DisplayObject3D{ if (_arg1){ delete this._childrenByName[this._children[_arg1]]; delete this._children[_arg1]; _arg1.parent = null; _arg1.root = null; return (_arg1); }; return (null); } public function addChild(_arg1:DisplayObject3D, _arg2:String=null):DisplayObject3D{ _arg2 = ((((_arg2) || (_arg1.name))) || (String(_arg1.id))); this._children[_arg1] = _arg2; this._childrenByName[_arg2] = _arg1; this._childrenTotal++; _arg1.parent = this; _arg1.root = this.root; return (_arg1); } public function childrenList():String{ var _local1:String; var _local2:String; _local1 = ""; for (_local2 in this._children) { _local1 = (_local1 + (_local2 + "\n")); }; return (_local1); } public function get children():Object{ return (this._childrenByName); } } }//package org.papervision3d.core.proto
Section 121
//GeometryObject3D (org.papervision3d.core.proto.GeometryObject3D) package org.papervision3d.core.proto { import flash.events.*; import org.papervision3d.core.geom.renderables.*; import org.papervision3d.core.*; import flash.utils.*; public class GeometryObject3D extends EventDispatcher { protected var _boundingSphere2:Number; protected var _boundingSphereDirty:Boolean;// = true public var dirty:Boolean; protected var _material:MaterialObject3D; public var _ready:Boolean;// = false public var faces:Array; public var vertices:Array; public function GeometryObject3D(_arg1:Object=null):void{ _ready = false; _boundingSphereDirty = true; super(); this.dirty = true; } public function transformVertices(_arg1:Matrix3D):void{ } public function get boundingSphere2():Number{ if (_boundingSphereDirty){ return (getBoundingSphere2()); }; return (_boundingSphere2); } public function getBoundingSphere2():Number{ var _local1:Number; var _local2:Number; var _local3:Vertex3D; _local1 = 0; for each (_local3 in this.vertices) { _local2 = (((_local3.x * _local3.x) + (_local3.y * _local3.y)) + (_local3.z * _local3.z)); _local1 = ((_local2)>_local1) ? _local2 : _local1; }; this._boundingSphereDirty = false; return ((_boundingSphere2 = _local1)); } private function createVertexNormals():void{ var _local1:Dictionary; var _local2:Triangle3D; var _local3:Vertex3D; _local1 = new Dictionary(true); for each (_local2 in faces) { _local2.v0.connectedFaces[_local2] = _local2; _local2.v1.connectedFaces[_local2] = _local2; _local2.v2.connectedFaces[_local2] = _local2; _local1[_local2.v0] = _local2.v0; _local1[_local2.v1] = _local2.v1; _local1[_local2.v2] = _local2.v2; }; for each (_local3 in _local1) { _local3.calculateNormal(); }; } public function transformUV(_arg1:MaterialObject3D):void{ var _local2:String; if (_arg1.bitmap){ for (_local2 in this.faces) { faces[_local2].transformUV(_arg1); }; }; } public function set ready(_arg1:Boolean):void{ if (_arg1){ createVertexNormals(); this.dirty = false; }; _ready = _arg1; } public function get ready():Boolean{ return (_ready); } } }//package org.papervision3d.core.proto
Section 122
//MaterialObject3D (org.papervision3d.core.proto.MaterialObject3D) package org.papervision3d.core.proto { import flash.display.*; import flash.events.*; import org.papervision3d.core.geom.renderables.*; import org.papervision3d.core.render.data.*; import org.papervision3d.materials.*; import org.papervision3d.core.render.draw.*; public class MaterialObject3D extends EventDispatcher implements ITriangleDrawer { public var widthOffset:Number;// = 0 public var name:String; public var scene:SceneObject3D; public var needsVertexNormals:Boolean;// = false public var heightOffset:Number;// = 0 public var fillAlpha:Number;// = 0 public var fillColor:Number; public var id:Number; public var invisible:Boolean;// = false public var smooth:Boolean;// = false public var bitmap:BitmapData; public var lineColor:Number; public var lineAlpha:Number;// = 0 public var oneSide:Boolean;// = true public var lineThickness:Number;// = 1 public var opposite:Boolean;// = false public var interactive:Boolean;// = false public var maxU:Number; public var needsFaceNormals:Boolean;// = false public var tiled:Boolean;// = false public var maxV:Number; public static var DEFAULT_COLOR:int = 0; public static var DEBUG_COLOR:int = 0xFF00FF; private static var _totalMaterialObjects:Number = 0; public function MaterialObject3D(){ smooth = false; tiled = false; lineColor = DEFAULT_COLOR; lineAlpha = 0; lineThickness = 1; fillColor = DEFAULT_COLOR; fillAlpha = 0; oneSide = true; invisible = false; opposite = false; needsFaceNormals = false; needsVertexNormals = false; widthOffset = 0; heightOffset = 0; interactive = false; super(); this.id = _totalMaterialObjects++; } public function drawTriangle(_arg1:Triangle3D, _arg2:Graphics, _arg3:RenderSessionData):void{ } public function get doubleSided():Boolean{ return (!(this.oneSide)); } public function set doubleSided(_arg1:Boolean):void{ this.oneSide = !(_arg1); } public function updateBitmap():void{ } override public function toString():String{ return (((((("[MaterialObject3D] bitmap:" + this.bitmap) + " lineColor:") + this.lineColor) + " fillColor:") + fillColor)); } public function copy(_arg1:MaterialObject3D):void{ this.bitmap = _arg1.bitmap; this.smooth = _arg1.smooth; this.lineColor = _arg1.lineColor; this.lineAlpha = _arg1.lineAlpha; this.fillColor = _arg1.fillColor; this.fillAlpha = _arg1.fillAlpha; this.needsFaceNormals = _arg1.needsFaceNormals; this.needsVertexNormals = _arg1.needsVertexNormals; this.oneSide = _arg1.oneSide; this.opposite = _arg1.opposite; this.invisible = _arg1.invisible; this.scene = _arg1.scene; this.name = _arg1.name; this.maxU = _arg1.maxU; this.maxV = _arg1.maxV; } public function clone():MaterialObject3D{ var _local1:MaterialObject3D; _local1 = new MaterialObject3D(); _local1.copy(this); return (_local1); } public static function get DEFAULT():MaterialObject3D{ var _local1:MaterialObject3D; _local1 = new WireframeMaterial(); _local1.lineColor = (0xFFFFFF * Math.random()); _local1.lineAlpha = 1; _local1.fillColor = DEFAULT_COLOR; _local1.fillAlpha = 1; _local1.doubleSided = false; return (_local1); } public static function get DEBUG():MaterialObject3D{ var _local1:MaterialObject3D; _local1 = new (MaterialObject3D); _local1.lineColor = (0xFFFFFF * Math.random()); _local1.lineAlpha = 1; _local1.fillColor = DEBUG_COLOR; _local1.fillAlpha = 0.37; _local1.doubleSided = true; return (_local1); } } }//package org.papervision3d.core.proto
Section 123
//SceneObject3D (org.papervision3d.core.proto.SceneObject3D) package org.papervision3d.core.proto { import flash.display.*; import org.papervision3d.materials.*; import org.papervision3d.core.stat.*; import org.papervision3d.objects.*; import flash.utils.*; import org.papervision3d.core.render.*; import org.papervision3d.core.culling.*; import org.papervision3d.*; import org.papervision3d.utils.*; public class SceneObject3D extends DisplayObjectContainer3D { public var interactiveSceneManager:InteractiveSceneManager;// = null public var container:Sprite; public var objects:Array; private var geometries:Dictionary; public var stats:RenderStatistics; public var materials:MaterialsList; public var renderer:IRenderEngine; public var particleCuller:IParticleCuller; public var triangleCuller:ITriangleCuller; public var interactive:Boolean;// = false public function SceneObject3D(_arg1:Sprite){ triangleCuller = new DefaultTriangleCuller(); particleCuller = new DefaultParticleCuller(); interactive = false; interactiveSceneManager = null; super(); if (_arg1){ this.container = _arg1; } else { Papervision3D.log("Scene3D: container argument required."); }; this.objects = new Array(); this.materials = new MaterialsList(); Papervision3D.log((((((Papervision3D.NAME + " ") + Papervision3D.VERSION) + " (") + Papervision3D.DATE) + ")\n")); this.stats = new RenderStatistics(); this.root = this; } protected function renderObjects(_arg1:CameraObject3D):void{ } public function renderCamera(_arg1:CameraObject3D):void{ var _local2:Array; var _local3:DisplayObject3D; var _local4:Number; stats.clear(); stats.performance = getTimer(); MovieMaterial.updateAnimatedBitmaps(); if (_arg1){ _arg1.transformView(); _local2 = this.objects; _local4 = _local2.length; while ((_local3 = _local2[--_local4])) { if (_local3.visible){ _local3.project(_arg1, _arg1); }; }; }; if (_arg1.sort){ this.objects.sortOn("screenZ", Array.NUMERIC); }; renderObjects(_arg1); } override public function removeChild(_arg1:DisplayObject3D):DisplayObject3D{ var _local2:int; super.removeChild(_arg1); _local2 = 0; while (_local2 < this.objects.length) { if (this.objects[_local2] === _arg1){ this.objects.splice(_local2, 1); return (_arg1); }; _local2++; }; return (_arg1); } override public function addChild(_arg1:DisplayObject3D, _arg2:String=null):DisplayObject3D{ var _local3:DisplayObject3D; _local3 = super.addChild(_arg1, _arg2); _arg1.scene = this; this.objects.push(_local3); return (_local3); } } }//package org.papervision3d.core.proto
Section 124
//AbstractRenderListItem (org.papervision3d.core.render.command.AbstractRenderListItem) package org.papervision3d.core.render.command { import org.papervision3d.core.render.data.*; public class AbstractRenderListItem implements IRenderListItem { public var screenDepth:Number; public function render(_arg1:RenderSessionData):void{ } } }//package org.papervision3d.core.render.command
Section 125
//IRenderListItem (org.papervision3d.core.render.command.IRenderListItem) package org.papervision3d.core.render.command { import org.papervision3d.core.render.data.*; public interface IRenderListItem { function render(_arg1:RenderSessionData):void; } }//package org.papervision3d.core.render.command
Section 126
//RenderableListItem (org.papervision3d.core.render.command.RenderableListItem) package org.papervision3d.core.render.command { import flash.geom.*; import org.papervision3d.core.geom.renderables.*; import org.papervision3d.core.render.hit.*; public class RenderableListItem extends AbstractRenderListItem { public var renderableInstance:IRenderable; public var renderable:Class; public function hitTestPoint2D(_arg1:Point, _arg2:RenderHitData):RenderHitData{ return (_arg2); } } }//package org.papervision3d.core.render.command
Section 127
//RenderParticle (org.papervision3d.core.render.command.RenderParticle) package org.papervision3d.core.render.command { import flash.display.*; import org.papervision3d.core.geom.renderables.*; import org.papervision3d.core.render.data.*; import org.papervision3d.materials.*; public class RenderParticle extends RenderableListItem implements IRenderListItem { public var renderer:ParticleMaterial; public var particle:Particle; private static var container:Sprite; public function RenderParticle(_arg1:Particle){ this.particle = _arg1; } override public function render(_arg1:RenderSessionData):void{ container = particle.instance.container; if (!container){ container = _arg1.container; }; particle.material.drawParticle(particle, container.graphics, _arg1); } } }//package org.papervision3d.core.render.command
Section 128
//RenderTriangle (org.papervision3d.core.render.command.RenderTriangle) package org.papervision3d.core.render.command { import flash.display.*; import flash.geom.*; import org.papervision3d.core.geom.renderables.*; import org.papervision3d.core.render.data.*; import org.papervision3d.core.proto.*; import org.papervision3d.materials.*; import org.papervision3d.core.*; import org.papervision3d.core.render.hit.*; import org.papervision3d.core.render.draw.*; public class RenderTriangle extends RenderableListItem implements IRenderListItem { public var renderer:ITriangleDrawer; public var triangle:Triangle3D; private var position:Number3D; public var renderMat:MaterialObject3D; public var container:Sprite; public function RenderTriangle(_arg1:Triangle3D):void{ position = new Number3D(); super(); this.triangle = _arg1; renderableInstance = _arg1; renderable = Triangle3D; } override public function hitTestPoint2D(_arg1:Point, _arg2:RenderHitData):RenderHitData{ var _local3:Vertex3DInstance; var _local4:Vertex3DInstance; var _local5:Vertex3DInstance; var _local6:Vertex3DInstance; renderMat = triangle.material; if (!renderMat){ renderMat = triangle.instance.material; }; if (renderMat.interactive){ _local3 = new Vertex3DInstance(_arg1.x, _arg1.y); _local4 = triangle.v0.vertex3DInstance; _local5 = triangle.v1.vertex3DInstance; _local6 = triangle.v2.vertex3DInstance; if (sameSide(_local3, _local4, _local5, _local6)){ if (sameSide(_local3, _local5, _local4, _local6)){ if (sameSide(_local3, _local6, _local4, _local5)){ return (deepHitTest(triangle, _local3, _arg2)); }; }; }; }; return (_arg2); } public function sameSide(_arg1:Vertex3DInstance, _arg2:Vertex3DInstance, _arg3:Vertex3DInstance, _arg4:Vertex3DInstance):Boolean{ var _local5:Number; _local5 = (Vertex3DInstance.cross(Vertex3DInstance.sub(_arg4, _arg3), Vertex3DInstance.sub(_arg1, _arg3)) * Vertex3DInstance.cross(Vertex3DInstance.sub(_arg4, _arg3), Vertex3DInstance.sub(_arg2, _arg3))); return ((_local5 > 0)); } private function deepHitTest(_arg1:Triangle3D, _arg2:Vertex3DInstance, _arg3:RenderHitData):RenderHitData{ var _local4:Vertex3DInstance; var _local5:Vertex3DInstance; var _local6:Vertex3DInstance; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:Array; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; var _local37:Number; var _local38:Number; var _local39:BitmapData; var _local40:Number; var _local41:Number; _local4 = _arg1.v0.vertex3DInstance; _local5 = _arg1.v1.vertex3DInstance; _local6 = _arg1.v2.vertex3DInstance; _local7 = (_local6.x - _local4.x); _local8 = (_local6.y - _local4.y); _local9 = (_local5.x - _local4.x); _local10 = (_local5.y - _local4.y); _local11 = (_arg2.x - _local4.x); _local12 = (_arg2.y - _local4.y); _local13 = ((_local7 * _local7) + (_local8 * _local8)); _local14 = ((_local7 * _local9) + (_local8 * _local10)); _local15 = ((_local7 * _local11) + (_local8 * _local12)); _local16 = ((_local9 * _local9) + (_local10 * _local10)); _local17 = ((_local9 * _local11) + (_local10 * _local12)); _local18 = (1 / ((_local13 * _local16) - (_local14 * _local14))); _local19 = (((_local16 * _local15) - (_local14 * _local17)) * _local18); _local20 = (((_local13 * _local17) - (_local14 * _local15)) * _local18); _local21 = (_arg1.v2.x - _arg1.v0.x); _local22 = (_arg1.v2.y - _arg1.v0.y); _local23 = (_arg1.v2.z - _arg1.v0.z); _local24 = (_arg1.v1.x - _arg1.v0.x); _local25 = (_arg1.v1.y - _arg1.v0.y); _local26 = (_arg1.v1.z - _arg1.v0.z); _local27 = ((_arg1.v0.x + (_local21 * _local19)) + (_local24 * _local20)); _local28 = ((_arg1.v0.y + (_local22 * _local19)) + (_local25 * _local20)); _local29 = ((_arg1.v0.z + (_local23 * _local19)) + (_local26 * _local20)); _local30 = _arg1.uv; _local31 = _local30[0].u; _local32 = _local30[1].u; _local33 = _local30[2].u; _local34 = _local30[0].v; _local35 = _local30[1].v; _local36 = _local30[2].v; _local37 = ((((_local32 - _local31) * _local20) + ((_local33 - _local31) * _local19)) + _local31); _local38 = ((((_local35 - _local34) * _local20) + ((_local36 - _local34) * _local19)) + _local34); if (triangle.material){ renderMat = _arg1.material; } else { renderMat = _arg1.instance.material; }; _local39 = renderMat.bitmap; _local40 = 1; _local41 = 1; if (_local39){ _local40 = (BitmapMaterial.AUTO_MIP_MAPPING) ? renderMat.widthOffset : _local39.width; _local41 = (BitmapMaterial.AUTO_MIP_MAPPING) ? renderMat.heightOffset : _local39.height; }; _arg3.displayObject3D = _arg1.instance; _arg3.material = renderMat; _arg3.renderable = _arg1; _arg3.hasHit = true; position.x = _local27; position.y = _local28; position.z = _local29; Matrix3D.multiplyVector(_arg1.instance.world, position); _arg3.x = position.x; _arg3.y = position.y; _arg3.z = position.z; _arg3.u = (_local37 * _local40); _arg3.v = (_local41 - (_local38 * _local41)); return (_arg3); } override public function render(_arg1:RenderSessionData):void{ container = triangle.instance.container; if (!container){ container = _arg1.container; }; renderer.drawTriangle(triangle, container.graphics, _arg1); } } }//package org.papervision3d.core.render.command
Section 129
//RenderSessionData (org.papervision3d.core.render.data.RenderSessionData) package org.papervision3d.core.render.data { import flash.display.*; import org.papervision3d.core.proto.*; import org.papervision3d.core.stat.*; import org.papervision3d.core.render.*; public class RenderSessionData { public var container:Sprite; public var renderer:IRenderEngine; public var camera:CameraObject3D; public var scene:SceneObject3D; public var renderStatistics:RenderStatistics; public function RenderSessionData():void{ } } }//package org.papervision3d.core.render.data
Section 130
//IParticleDrawer (org.papervision3d.core.render.draw.IParticleDrawer) package org.papervision3d.core.render.draw { import flash.display.*; import org.papervision3d.core.geom.renderables.*; import org.papervision3d.core.render.data.*; public interface IParticleDrawer { function drawParticle(_arg1:Particle, _arg2:Graphics, _arg3:RenderSessionData):void; } }//package org.papervision3d.core.render.draw
Section 131
//ITriangleDrawer (org.papervision3d.core.render.draw.ITriangleDrawer) package org.papervision3d.core.render.draw { import flash.display.*; import org.papervision3d.core.geom.renderables.*; import org.papervision3d.core.render.data.*; public interface ITriangleDrawer { function drawTriangle(_arg1:Triangle3D, _arg2:Graphics, _arg3:RenderSessionData):void; } }//package org.papervision3d.core.render.draw
Section 132
//BasicRenderFilter (org.papervision3d.core.render.filter.BasicRenderFilter) package org.papervision3d.core.render.filter { public class BasicRenderFilter implements IRenderFilter { public function filter(_arg1:Array):int{ return (0); } } }//package org.papervision3d.core.render.filter
Section 133
//IRenderFilter (org.papervision3d.core.render.filter.IRenderFilter) package org.papervision3d.core.render.filter { public interface IRenderFilter { function filter(_arg1:Array):int; } }//package org.papervision3d.core.render.filter
Section 134
//RenderHitData (org.papervision3d.core.render.hit.RenderHitData) package org.papervision3d.core.render.hit { import org.papervision3d.core.geom.renderables.*; import org.papervision3d.core.proto.*; import org.papervision3d.objects.*; public class RenderHitData { public var y:Number; public var displayObject3D:DisplayObject3D; public var renderable:IRenderable; public var u:Number; public var material:MaterialObject3D; public var x:Number; public var hasHit:Boolean;// = false public var z:Number; public var v:Number; public function RenderHitData(){ hasHit = false; super(); } public function toString():String{ return (((displayObject3D + " ") + renderable)); } } }//package org.papervision3d.core.render.hit
Section 135
//BasicRenderSorter (org.papervision3d.core.render.sort.BasicRenderSorter) package org.papervision3d.core.render.sort { public class BasicRenderSorter implements IRenderSorter { public function sort(_arg1:Array):void{ _arg1.sortOn("screenDepth", Array.NUMERIC); } } }//package org.papervision3d.core.render.sort
Section 136
//IRenderSorter (org.papervision3d.core.render.sort.IRenderSorter) package org.papervision3d.core.render.sort { public interface IRenderSorter { function sort(_arg1:Array):void; } }//package org.papervision3d.core.render.sort
Section 137
//BasicRenderEngine (org.papervision3d.core.render.BasicRenderEngine) package org.papervision3d.core.render { import flash.display.*; import flash.geom.*; import flash.events.*; import org.papervision3d.core.render.data.*; import org.papervision3d.core.proto.*; import org.papervision3d.core.stat.*; import org.papervision3d.core.render.command.*; import org.papervision3d.core.render.hit.*; import com.blitzagency.xray.logger.*; import org.papervision3d.events.*; import org.papervision3d.core.render.filter.*; import org.papervision3d.core.render.sort.*; public class BasicRenderEngine extends EventDispatcher implements IRenderEngine { private var log:XrayLog; private var lastRenderList:Array; public var sorter:IRenderSorter; private var renderList:Array; private var renderStatistics:RenderStatistics; private var cleanRHD:RenderHitData; private var renderSessionData:RenderSessionData; public var filter:IRenderFilter; public function BasicRenderEngine():void{ cleanRHD = new RenderHitData(); log = new XrayLog(); super(); init(); } public function removeFromRenderList(_arg1:IRenderListItem):int{ return (renderList.splice(renderList.indexOf(_arg1), 1)); } protected function init():void{ renderStatistics = new RenderStatistics(); sorter = new BasicRenderSorter(); filter = new BasicRenderFilter(); renderList = new Array(); lastRenderList = new Array(); renderSessionData = new RenderSessionData(); } public function render(_arg1:SceneObject3D, _arg2:Sprite, _arg3:CameraObject3D):RenderStatistics{ var _local4:IRenderListItem; filter.filter(renderList); sorter.sort(renderList); lastRenderList.length = 0; renderSessionData.container = _arg2; renderSessionData.camera = _arg3; renderSessionData.scene = _arg1; renderSessionData.renderer = this; renderSessionData.renderStatistics = new RenderStatistics(); while ((_local4 = renderList.pop())) { _local4.render(renderSessionData); lastRenderList.push(_local4); }; dispatchEvent(new RendererEvent(RendererEvent.RENDER_DONE, renderSessionData)); return (renderStatistics); } public function hitTestPoint2D(_arg1:Point):RenderHitData{ var _local2:RenderableListItem; var _local3:RenderHitData; var _local4:IRenderListItem; var _local5:uint; _local3 = new RenderHitData(); _local5 = lastRenderList.length; while ((_local4 = lastRenderList[--_local5])) { if ((_local4 is RenderableListItem)){ _local2 = (_local4 as RenderableListItem); _local3 = _local2.hitTestPoint2D(_arg1, _local3); if (_local3.hasHit){ return (_local3); }; }; }; return (cleanRHD); } public function addToRenderList(_arg1:IRenderListItem):int{ return (renderList.push(_arg1)); } } }//package org.papervision3d.core.render
Section 138
//InteractiveRendererEngine (org.papervision3d.core.render.InteractiveRendererEngine) package org.papervision3d.core.render { import flash.display.*; import org.papervision3d.core.proto.*; import org.papervision3d.core.stat.*; import org.papervision3d.scenes.*; import org.papervision3d.utils.*; public class InteractiveRendererEngine extends BasicRenderEngine { public var interactiveSceneManager:InteractiveSceneManager;// = null public function InteractiveRendererEngine(_arg1:Scene3D){ interactiveSceneManager = null; super(); interactiveSceneManager = new InteractiveSceneManager(_arg1, _arg1.container); } override protected function init():void{ super.init(); } override public function render(_arg1:SceneObject3D, _arg2:Sprite, _arg3:CameraObject3D):RenderStatistics{ if (!interactiveSceneManager.camera){ interactiveSceneManager.camera = _arg3; }; return (super.render(_arg1, _arg2, _arg3)); } } }//package org.papervision3d.core.render
Section 139
//IRenderEngine (org.papervision3d.core.render.IRenderEngine) package org.papervision3d.core.render { import flash.display.*; import flash.geom.*; import org.papervision3d.core.proto.*; import org.papervision3d.core.stat.*; import org.papervision3d.core.render.command.*; import org.papervision3d.core.render.hit.*; public interface IRenderEngine { function addToRenderList(_arg1:IRenderListItem):int; function removeFromRenderList(_arg1:IRenderListItem):int; function render(_arg1:SceneObject3D, _arg2:Sprite, _arg3:CameraObject3D):RenderStatistics; function hitTestPoint2D(_arg1:Point):RenderHitData; } }//package org.papervision3d.core.render
Section 140
//RenderStatistics (org.papervision3d.core.stat.RenderStatistics) package org.papervision3d.core.stat { public class RenderStatistics { public var points:int;// = 0 public var polys:int;// = 0 public var triangles:int;// = 0 public var particles:Number; public var performance:int;// = 0 public var rendered:int;// = 0 public var culledTriangles:int;// = 0 public var lines:Number; public function RenderStatistics(){ performance = 0; points = 0; polys = 0; rendered = 0; triangles = 0; culledTriangles = 0; super(); } public function toString():String{ return (new String(((((((((("Performance:" + performance) + ", Points:") + points) + " Polys:") + polys) + " Rendered:") + rendered) + " Culled:") + culledTriangles))); } public function clear():void{ performance = 0; points = 0; polys = 0; rendered = 0; triangles = 0; particles = 0; culledTriangles = 0; lines = 0; } } }//package org.papervision3d.core.stat
Section 141
//Matrix3D (org.papervision3d.core.Matrix3D) package org.papervision3d.core { public class Matrix3D { public var n31:Number; public var n32:Number; public var n11:Number; public var n13:Number; public var n14:Number; public var n33:Number; public var n12:Number; public var n21:Number; public var n22:Number; public var n23:Number; public var n24:Number; public var n34:Number; private static var toDEGREES:Number = 57.2957795130823; private static var toRADIANS:Number = 0.0174532925199433; public function Matrix3D(_arg1:Array=null){ if (((!(_arg1)) || ((_arg1.length < 12)))){ n11 = (n22 = (n33 = 1)); n12 = (n13 = (n14 = (n21 = (n23 = (n24 = (n31 = (n32 = (n34 = 0)))))))); } else { n11 = _arg1[0]; n12 = _arg1[1]; n13 = _arg1[2]; n14 = _arg1[3]; n21 = _arg1[4]; n22 = _arg1[5]; n23 = _arg1[6]; n24 = _arg1[7]; n31 = _arg1[8]; n32 = _arg1[9]; n33 = _arg1[10]; n34 = _arg1[11]; }; } public function calculateMultiply3x3(_arg1:Matrix3D, _arg2:Matrix3D):void{ var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; _local3 = _arg1.n11; _local4 = _arg2.n11; _local5 = _arg1.n21; _local6 = _arg2.n21; _local7 = _arg1.n31; _local8 = _arg2.n31; _local9 = _arg1.n12; _local10 = _arg2.n12; _local11 = _arg1.n22; _local12 = _arg2.n22; _local13 = _arg1.n32; _local14 = _arg2.n32; _local15 = _arg1.n13; _local16 = _arg2.n13; _local17 = _arg1.n23; _local18 = _arg2.n23; _local19 = _arg1.n33; _local20 = _arg2.n33; this.n11 = (((_local3 * _local4) + (_local9 * _local6)) + (_local15 * _local8)); this.n12 = (((_local3 * _local10) + (_local9 * _local12)) + (_local15 * _local14)); this.n13 = (((_local3 * _local16) + (_local9 * _local18)) + (_local15 * _local20)); this.n21 = (((_local5 * _local4) + (_local11 * _local6)) + (_local17 * _local8)); this.n22 = (((_local5 * _local10) + (_local11 * _local12)) + (_local17 * _local14)); this.n23 = (((_local5 * _local16) + (_local11 * _local18)) + (_local17 * _local20)); this.n31 = (((_local7 * _local4) + (_local13 * _local6)) + (_local19 * _local8)); this.n32 = (((_local7 * _local10) + (_local13 * _local12)) + (_local19 * _local14)); this.n33 = (((_local7 * _local16) + (_local13 * _local18)) + (_local19 * _local20)); } public function get trace():Number{ return ((((this.n11 + this.n22) + this.n33) + 1)); } public function get det():Number{ return ((((((this.n11 * this.n22) - (this.n21 * this.n12)) * this.n33) - (((this.n11 * this.n32) - (this.n31 * this.n12)) * this.n23)) + (((this.n21 * this.n32) - (this.n31 * this.n22)) * this.n13))); } public function copy3x3(_arg1:Matrix3D):Matrix3D{ this.n11 = _arg1.n11; this.n12 = _arg1.n12; this.n13 = _arg1.n13; this.n21 = _arg1.n21; this.n22 = _arg1.n22; this.n23 = _arg1.n23; this.n31 = _arg1.n31; this.n32 = _arg1.n32; this.n33 = _arg1.n33; return (this); } public function calculateAdd(_arg1:Matrix3D, _arg2:Matrix3D):void{ this.n11 = (_arg1.n11 + _arg2.n11); this.n12 = (_arg1.n12 + _arg2.n12); this.n13 = (_arg1.n13 + _arg2.n13); this.n14 = (_arg1.n14 + _arg2.n14); this.n21 = (_arg1.n21 + _arg2.n21); this.n22 = (_arg1.n22 + _arg2.n22); this.n23 = (_arg1.n23 + _arg2.n23); this.n24 = (_arg1.n24 + _arg2.n24); this.n31 = (_arg1.n31 + _arg2.n31); this.n32 = (_arg1.n32 + _arg2.n32); this.n33 = (_arg1.n33 + _arg2.n33); this.n34 = (_arg1.n34 + _arg2.n34); } public function calculateMultiply(_arg1:Matrix3D, _arg2:Matrix3D):void{ var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; _local3 = _arg1.n11; _local4 = _arg2.n11; _local5 = _arg1.n21; _local6 = _arg2.n21; _local7 = _arg1.n31; _local8 = _arg2.n31; _local9 = _arg1.n12; _local10 = _arg2.n12; _local11 = _arg1.n22; _local12 = _arg2.n22; _local13 = _arg1.n32; _local14 = _arg2.n32; _local15 = _arg1.n13; _local16 = _arg2.n13; _local17 = _arg1.n23; _local18 = _arg2.n23; _local19 = _arg1.n33; _local20 = _arg2.n33; _local21 = _arg1.n14; _local22 = _arg2.n14; _local23 = _arg1.n24; _local24 = _arg2.n24; _local25 = _arg1.n34; _local26 = _arg2.n34; this.n11 = (((_local3 * _local4) + (_local9 * _local6)) + (_local15 * _local8)); this.n12 = (((_local3 * _local10) + (_local9 * _local12)) + (_local15 * _local14)); this.n13 = (((_local3 * _local16) + (_local9 * _local18)) + (_local15 * _local20)); this.n14 = ((((_local3 * _local22) + (_local9 * _local24)) + (_local15 * _local26)) + _local21); this.n21 = (((_local5 * _local4) + (_local11 * _local6)) + (_local17 * _local8)); this.n22 = (((_local5 * _local10) + (_local11 * _local12)) + (_local17 * _local14)); this.n23 = (((_local5 * _local16) + (_local11 * _local18)) + (_local17 * _local20)); this.n24 = ((((_local5 * _local22) + (_local11 * _local24)) + (_local17 * _local26)) + _local23); this.n31 = (((_local7 * _local4) + (_local13 * _local6)) + (_local19 * _local8)); this.n32 = (((_local7 * _local10) + (_local13 * _local12)) + (_local19 * _local14)); this.n33 = (((_local7 * _local16) + (_local13 * _local18)) + (_local19 * _local20)); this.n34 = ((((_local7 * _local22) + (_local13 * _local24)) + (_local19 * _local26)) + _local25); } public function toString():String{ var _local1:String; _local1 = ""; _local1 = (_local1 + ((((((((int((n11 * 1000)) / 1000) + "\t\t") + (int((n12 * 1000)) / 1000)) + "\t\t") + (int((n13 * 1000)) / 1000)) + "\t\t") + (int((n14 * 1000)) / 1000)) + "\n")); _local1 = (_local1 + ((((((((int((n21 * 1000)) / 1000) + "\t\t") + (int((n22 * 1000)) / 1000)) + "\t\t") + (int((n23 * 1000)) / 1000)) + "\t\t") + (int((n24 * 1000)) / 1000)) + "\n")); _local1 = (_local1 + ((((((((int((n31 * 1000)) / 1000) + "\t\t") + (int((n32 * 1000)) / 1000)) + "\t\t") + (int((n33 * 1000)) / 1000)) + "\t\t") + (int((n34 * 1000)) / 1000)) + "\n")); return (_local1); } public function copy(_arg1:Matrix3D):Matrix3D{ this.n11 = _arg1.n11; this.n12 = _arg1.n12; this.n13 = _arg1.n13; this.n14 = _arg1.n14; this.n21 = _arg1.n21; this.n22 = _arg1.n22; this.n23 = _arg1.n23; this.n24 = _arg1.n24; this.n31 = _arg1.n31; this.n32 = _arg1.n32; this.n33 = _arg1.n33; this.n34 = _arg1.n34; return (this); } public function calculateInverse(_arg1:Matrix3D):void{ var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; _local2 = _arg1.det; if (Math.abs(_local2) > 0.001){ _local2 = (1 / _local2); _local3 = _arg1.n11; _local4 = _arg1.n21; _local5 = _arg1.n31; _local6 = _arg1.n12; _local7 = _arg1.n22; _local8 = _arg1.n32; _local9 = _arg1.n13; _local10 = _arg1.n23; _local11 = _arg1.n33; _local12 = _arg1.n14; _local13 = _arg1.n24; _local14 = _arg1.n34; this.n11 = (_local2 * ((_local7 * _local11) - (_local8 * _local10))); this.n12 = (-(_local2) * ((_local6 * _local11) - (_local8 * _local9))); this.n13 = (_local2 * ((_local6 * _local10) - (_local7 * _local9))); this.n14 = (-(_local2) * (((_local6 * ((_local10 * _local14) - (_local11 * _local13))) - (_local7 * ((_local9 * _local14) - (_local11 * _local12)))) + (_local8 * ((_local9 * _local13) - (_local10 * _local12))))); this.n21 = (-(_local2) * ((_local4 * _local11) - (_local5 * _local10))); this.n22 = (_local2 * ((_local3 * _local11) - (_local5 * _local9))); this.n23 = (-(_local2) * ((_local3 * _local10) - (_local4 * _local9))); this.n24 = (_local2 * (((_local3 * ((_local10 * _local14) - (_local11 * _local13))) - (_local4 * ((_local9 * _local14) - (_local11 * _local12)))) + (_local5 * ((_local9 * _local13) - (_local10 * _local12))))); this.n31 = (_local2 * ((_local4 * _local8) - (_local5 * _local7))); this.n32 = (-(_local2) * ((_local3 * _local8) - (_local5 * _local6))); this.n33 = (_local2 * ((_local3 * _local7) - (_local4 * _local6))); this.n34 = (-(_local2) * (((_local3 * ((_local7 * _local14) - (_local8 * _local13))) - (_local4 * ((_local6 * _local14) - (_local8 * _local12)))) + (_local5 * ((_local6 * _local13) - (_local7 * _local12))))); }; } public static function rotationMatrixWithReference(_arg1:Number3D, _arg2:Number, _arg3:Number3D):Matrix3D{ var _local4:Matrix3D; _local4 = Matrix3D.translationMatrix(_arg3.x, -(_arg3.y), _arg3.z); Matrix3D.translationMatrix(_arg3.x, -(_arg3.y), _arg3.z).calculateMultiply(_local4, Matrix3D.rotationMatrix(_arg1.x, _arg1.y, _arg1.z, _arg2)); _local4.calculateMultiply(_local4, Matrix3D.translationMatrix(-(_arg3.x), _arg3.y, -(_arg3.z))); return (_local4); } public static function multiplyVector3x3(_arg1:Matrix3D, _arg2:Number3D):void{ var _local3:Number; var _local4:Number; var _local5:Number; _local3 = _arg2.x; _local4 = _arg2.y; _local5 = _arg2.z; _arg2.x = (((_local3 * _arg1.n11) + (_local4 * _arg1.n12)) + (_local5 * _arg1.n13)); _arg2.y = (((_local3 * _arg1.n21) + (_local4 * _arg1.n22)) + (_local5 * _arg1.n23)); _arg2.z = (((_local3 * _arg1.n31) + (_local4 * _arg1.n32)) + (_local5 * _arg1.n33)); } public static function multiply3x3(_arg1:Matrix3D, _arg2:Matrix3D):Matrix3D{ var _local3:Matrix3D; _local3 = new (Matrix3D); _local3.calculateMultiply3x3(_arg1, _arg2); return (_local3); } public static function normalizeQuaternion(_arg1:Object):Object{ var _local2:Number; _local2 = magnitudeQuaternion(_arg1); _arg1.x = (_arg1.x / _local2); _arg1.y = (_arg1.y / _local2); _arg1.z = (_arg1.z / _local2); _arg1.w = (_arg1.w / _local2); return (_arg1); } public static function multiplyVector(_arg1:Matrix3D, _arg2:Number3D):void{ var _local3:Number; var _local4:Number; var _local5:Number; _local3 = _arg2.x; _local4 = _arg2.y; _local5 = _arg2.z; _arg2.x = ((((_local3 * _arg1.n11) + (_local4 * _arg1.n12)) + (_local5 * _arg1.n13)) + _arg1.n14); _arg2.y = ((((_local3 * _arg1.n21) + (_local4 * _arg1.n22)) + (_local5 * _arg1.n23)) + _arg1.n24); _arg2.z = ((((_local3 * _arg1.n31) + (_local4 * _arg1.n32)) + (_local5 * _arg1.n33)) + _arg1.n34); } public static function axis2quaternion(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Object{ var _local5:Number; var _local6:Number; var _local7:Object; _local5 = Math.sin((_arg4 / 2)); _local6 = Math.cos((_arg4 / 2)); _local7 = new Object(); _local7.x = (_arg1 * _local5); _local7.y = (_arg2 * _local5); _local7.z = (_arg3 * _local5); _local7.w = _local6; return (normalizeQuaternion(_local7)); } public static function translationMatrix(_arg1:Number, _arg2:Number, _arg3:Number):Matrix3D{ var _local4:Matrix3D; _local4 = IDENTITY; _local4.n14 = _arg1; _local4.n24 = _arg2; _local4.n34 = _arg3; return (_local4); } public static function magnitudeQuaternion(_arg1:Object):Number{ return (Math.sqrt(((((_arg1.w * _arg1.w) + (_arg1.x * _arg1.x)) + (_arg1.y * _arg1.y)) + (_arg1.z * _arg1.z)))); } public static function euler2quaternion(_arg1:Number, _arg2:Number, _arg3:Number):Object{ var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Object; _local4 = Math.sin((_arg1 * 0.5)); _local5 = Math.cos((_arg1 * 0.5)); _local6 = Math.sin((_arg2 * 0.5)); _local7 = Math.cos((_arg2 * 0.5)); _local8 = Math.sin((_arg3 * 0.5)); _local9 = Math.cos((_arg3 * 0.5)); _local10 = (_local5 * _local7); _local11 = (_local4 * _local6); _local12 = new Object(); _local12.x = ((_local8 * _local10) - (_local9 * _local11)); _local12.y = (((_local9 * _local4) * _local7) + ((_local8 * _local5) * _local6)); _local12.z = (((_local9 * _local5) * _local6) - ((_local8 * _local4) * _local7)); _local12.w = ((_local9 * _local10) + (_local8 * _local11)); return (_local12); } public static function rotationX(_arg1:Number):Matrix3D{ var _local2:Matrix3D; var _local3:Number; var _local4:Number; _local2 = IDENTITY; _local3 = Math.cos(_arg1); _local4 = Math.sin(_arg1); _local2.n22 = _local3; _local2.n23 = -(_local4); _local2.n32 = _local4; _local2.n33 = _local3; return (_local2); } public static function rotationY(_arg1:Number):Matrix3D{ var _local2:Matrix3D; var _local3:Number; var _local4:Number; _local2 = IDENTITY; _local3 = Math.cos(_arg1); _local4 = Math.sin(_arg1); _local2.n11 = _local3; _local2.n13 = -(_local4); _local2.n31 = _local4; _local2.n33 = _local3; return (_local2); } public static function rotationZ(_arg1:Number):Matrix3D{ var _local2:Matrix3D; var _local3:Number; var _local4:Number; _local2 = IDENTITY; _local3 = Math.cos(_arg1); _local4 = Math.sin(_arg1); _local2.n11 = _local3; _local2.n12 = -(_local4); _local2.n21 = _local4; _local2.n22 = _local3; return (_local2); } public static function clone(_arg1:Matrix3D):Matrix3D{ return (new Matrix3D([_arg1.n11, _arg1.n12, _arg1.n13, _arg1.n14, _arg1.n21, _arg1.n22, _arg1.n23, _arg1.n24, _arg1.n31, _arg1.n32, _arg1.n33, _arg1.n34])); } public static function rotationMatrix(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Matrix3D{ var _local5:Matrix3D; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; _local5 = IDENTITY; _local6 = Math.cos(_arg4); _local7 = Math.sin(_arg4); _local8 = (1 - _local6); _local9 = ((_arg1 * _arg2) * _local8); _local10 = ((_arg2 * _arg3) * _local8); _local11 = ((_arg1 * _arg3) * _local8); _local12 = (_local7 * _arg3); _local13 = (_local7 * _arg2); _local14 = (_local7 * _arg1); _local5.n11 = (_local6 + ((_arg1 * _arg1) * _local8)); _local5.n12 = (-(_local12) + _local9); _local5.n13 = (_local13 + _local11); _local5.n21 = (_local12 + _local9); _local5.n22 = (_local6 + ((_arg2 * _arg2) * _local8)); _local5.n23 = (-(_local14) + _local10); _local5.n31 = (-(_local13) + _local11); _local5.n32 = (_local14 + _local10); _local5.n33 = (_local6 + ((_arg3 * _arg3) * _local8)); return (_local5); } public static function add(_arg1:Matrix3D, _arg2:Matrix3D):Matrix3D{ var _local3:Matrix3D; _local3 = new (Matrix3D); _local3.calculateAdd(_arg1, _arg2); return (_local3); } public static function rotateAxis(_arg1:Matrix3D, _arg2:Number3D):void{ var _local3:Number; var _local4:Number; var _local5:Number; _local3 = _arg2.x; _local4 = _arg2.y; _local5 = _arg2.z; _arg2.x = (((_local3 * _arg1.n11) + (_local4 * _arg1.n12)) + (_local5 * _arg1.n13)); _arg2.y = (((_local3 * _arg1.n21) + (_local4 * _arg1.n22)) + (_local5 * _arg1.n23)); _arg2.z = (((_local3 * _arg1.n31) + (_local4 * _arg1.n32)) + (_local5 * _arg1.n33)); _arg2.normalize(); } public static function multiply(_arg1:Matrix3D, _arg2:Matrix3D):Matrix3D{ var _local3:Matrix3D; _local3 = new (Matrix3D); _local3.calculateMultiply(_arg1, _arg2); return (_local3); } public static function multiplyQuaternion(_arg1:Object, _arg2:Object):Object{ var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Object; _local3 = _arg1.x; _local4 = _arg1.y; _local5 = _arg1.z; _local6 = _arg1.w; _local7 = _arg2.x; _local8 = _arg2.y; _local9 = _arg2.z; _local10 = _arg2.w; _local11 = new Object(); _local11.x = ((((_local6 * _local7) + (_local3 * _local10)) + (_local4 * _local9)) - (_local5 * _local8)); _local11.y = ((((_local6 * _local8) + (_local4 * _local10)) + (_local5 * _local7)) - (_local3 * _local9)); _local11.z = ((((_local6 * _local9) + (_local5 * _local10)) + (_local3 * _local8)) - (_local4 * _local7)); _local11.w = ((((_local6 * _local10) - (_local3 * _local7)) - (_local4 * _local8)) - (_local5 * _local9)); return (_local11); } public static function euler2matrix(_arg1:Number3D):Matrix3D{ var _local2:Matrix3D; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; _local2 = IDENTITY; _local3 = (_arg1.x * toRADIANS); _local4 = (_arg1.y * toRADIANS); _local5 = (_arg1.z * toRADIANS); _local6 = Math.cos(_local3); _local7 = Math.sin(_local3); _local8 = Math.cos(_local4); _local9 = Math.sin(_local4); _local10 = Math.cos(_local5); _local11 = Math.sin(_local5); _local12 = (_local6 * _local9); _local13 = (_local7 * _local9); _local2.n11 = (_local8 * _local10); _local2.n12 = (-(_local8) * _local11); _local2.n13 = _local9; _local2.n21 = ((_local13 * _local10) + (_local6 * _local11)); _local2.n22 = ((-(_local13) * _local11) + (_local6 * _local10)); _local2.n23 = (-(_local7) * _local8); _local2.n31 = ((-(_local12) * _local10) + (_local7 * _local11)); _local2.n32 = ((_local12 * _local11) + (_local7 * _local10)); _local2.n33 = (_local6 * _local8); return (_local2); } public static function scaleMatrix(_arg1:Number, _arg2:Number, _arg3:Number):Matrix3D{ var _local4:Matrix3D; _local4 = IDENTITY; _local4.n11 = _arg1; _local4.n22 = _arg2; _local4.n33 = _arg3; return (_local4); } public static function quaternion2matrix(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Matrix3D{ var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Matrix3D; _local5 = (_arg1 * _arg1); _local6 = (_arg1 * _arg2); _local7 = (_arg1 * _arg3); _local8 = (_arg1 * _arg4); _local9 = (_arg2 * _arg2); _local10 = (_arg2 * _arg3); _local11 = (_arg2 * _arg4); _local12 = (_arg3 * _arg3); _local13 = (_arg3 * _arg4); _local14 = IDENTITY; _local14.n11 = (1 - (2 * (_local9 + _local12))); _local14.n12 = (2 * (_local6 - _local13)); _local14.n13 = (2 * (_local7 + _local11)); _local14.n21 = (2 * (_local6 + _local13)); _local14.n22 = (1 - (2 * (_local5 + _local12))); _local14.n23 = (2 * (_local10 - _local8)); _local14.n31 = (2 * (_local7 - _local11)); _local14.n32 = (2 * (_local10 + _local8)); _local14.n33 = (1 - (2 * (_local5 + _local9))); return (_local14); } public static function inverse(_arg1:Matrix3D):Matrix3D{ var _local2:Matrix3D; _local2 = new (Matrix3D); _local2.calculateInverse(_arg1); return (_local2); } public static function matrix2euler(_arg1:Matrix3D):Number3D{ var _local2:Number3D; var _local3:Number3D; var _local4:Number3D; var _local5:Number3D; var _local6:Matrix3D; var _local7:Matrix3D; var _local8:Matrix3D; var _local9:Number; _local2 = new Number3D(); _local3 = new Number3D(_arg1.n11, _arg1.n21, _arg1.n31); _local4 = new Number3D(_arg1.n12, _arg1.n22, _arg1.n32); _local5 = new Number3D(_arg1.n13, _arg1.n23, _arg1.n33); _local3.normalize(); _local4.normalize(); _local5.normalize(); _local6 = new Matrix3D([_local3.x, _local4.x, _local5.x, 0, _local3.y, _local4.y, _local5.y, 0, _local3.z, _local4.z, _local5.z, 0]); _local2.x = Math.atan2(_local6.n23, _local6.n33); _local7 = Matrix3D.rotationX(-(_local2.x)); _local8 = Matrix3D.multiply(_local7, _local6); _local9 = Math.sqrt(((_local8.n11 * _local8.n11) + (_local8.n21 * _local8.n21))); _local2.y = Math.atan2(-(_local8.n31), _local9); _local2.z = Math.atan2(-(_local8.n12), _local8.n11); if (_local2.x == Math.PI){ if (_local2.y > 0){ _local2.y = (_local2.y - Math.PI); } else { _local2.y = (_local2.y + Math.PI); }; _local2.x = 0; _local2.z = (_local2.z + Math.PI); }; _local2.x = (_local2.x * toDEGREES); _local2.y = (_local2.y * toDEGREES); _local2.z = (_local2.z * toDEGREES); return (_local2); } public static function get IDENTITY():Matrix3D{ return (new Matrix3D([1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0])); } } }//package org.papervision3d.core
Section 142
//Number3D (org.papervision3d.core.Number3D) package org.papervision3d.core { public class Number3D { public var x:Number; public var y:Number; public var z:Number; public function Number3D(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0){ this.x = _arg1; this.y = _arg2; this.z = _arg3; } public function toString():String{ return (((((("x:" + x) + " y:") + y) + " z:") + z)); } public function normalize():void{ var _local1:Number; _local1 = this.modulo; if (((!((_local1 == 0))) && (!((_local1 == 1))))){ this.x = (this.x / _local1); this.y = (this.y / _local1); this.z = (this.z / _local1); }; } public function get modulo():Number{ return (Math.sqrt((((this.x * this.x) + (this.y * this.y)) + (this.z * this.z)))); } public function copyTo(_arg1:Number3D):void{ _arg1.x = x; _arg1.y = y; _arg1.z = z; } public function clone():Number3D{ return (new Number3D(this.x, this.y, this.z)); } public static function sub(_arg1:Number3D, _arg2:Number3D):Number3D{ return (new Number3D((_arg1.x - _arg2.x), (_arg1.y - _arg2.y), (_arg1.z - _arg2.z))); } public static function add(_arg1:Number3D, _arg2:Number3D):Number3D{ return (new Number3D((_arg1.x + _arg2.x), (_arg1.y + _arg2.y), (_arg1.z + _arg2.z))); } public static function cross(_arg1:Number3D, _arg2:Number3D):Number3D{ return (new Number3D(((_arg2.y * _arg1.z) - (_arg2.z * _arg1.y)), ((_arg2.z * _arg1.x) - (_arg2.x * _arg1.z)), ((_arg2.x * _arg1.y) - (_arg2.y * _arg1.x)))); } public static function get ZERO():Number3D{ return (new Number3D(0, 0, 0)); } public static function dot(_arg1:Number3D, _arg2:Number3D):Number{ return ((((_arg1.x * _arg2.x) + (_arg1.y * _arg2.y)) + (_arg2.z * _arg1.z))); } } }//package org.papervision3d.core
Section 143
//NumberUV (org.papervision3d.core.NumberUV) package org.papervision3d.core { public class NumberUV { public var u:Number; public var v:Number; public function NumberUV(_arg1:Number=0, _arg2:Number=0){ this.u = _arg1; this.v = _arg2; } public function toString():String{ return (((("u:" + u) + " v:") + v)); } public function clone():NumberUV{ return (new NumberUV(this.u, this.v)); } public static function get ZERO():NumberUV{ return (new NumberUV(0, 0)); } } }//package org.papervision3d.core
Section 144
//InteractiveScene3DEvent (org.papervision3d.events.InteractiveScene3DEvent) package org.papervision3d.events { import flash.display.*; import flash.events.*; import org.papervision3d.core.geom.renderables.*; import org.papervision3d.objects.*; public class InteractiveScene3DEvent extends Event { public var sprite:Sprite;// = null public var displayObject3D:DisplayObject3D;// = null public var face3d:Triangle3D;// = null public var x:Number;// = 0 public var y:Number;// = 0 public static const OBJECT_ADDED:String = "objectAdded"; public static const OBJECT_PRESS:String = "mousePress"; public static const OBJECT_RELEASE:String = "mouseRelease"; public static const OBJECT_CLICK:String = "mouseClick"; public static const OBJECT_RELEASE_OUTSIDE:String = "mouseReleaseOutside"; public static const OBJECT_OUT:String = "mouseOut"; public static const OBJECT_MOVE:String = "mouseMove"; public static const OBJECT_OVER:String = "mouseOver"; public function InteractiveScene3DEvent(_arg1:String, _arg2:DisplayObject3D=null, _arg3:Sprite=null, _arg4:Triangle3D=null, _arg5:Number=0, _arg6:Number=0, _arg7:Boolean=false, _arg8:Boolean=false){ displayObject3D = null; sprite = null; face3d = null; x = 0; y = 0; super(_arg1, _arg7, _arg8); this.displayObject3D = _arg2; this.sprite = _arg3; this.face3d = _arg4; this.x = _arg5; this.y = _arg6; } } }//package org.papervision3d.events
Section 145
//RendererEvent (org.papervision3d.events.RendererEvent) package org.papervision3d.events { import flash.events.*; import org.papervision3d.core.render.data.*; public class RendererEvent extends Event { public var renderSessionData:RenderSessionData; public static var RENDER_DONE:String = "onRenderDone"; public function RendererEvent(_arg1:String, _arg2:RenderSessionData){ super(_arg1); this.renderSessionData = _arg2; } } }//package org.papervision3d.events
Section 146
//BitmapMaterial (org.papervision3d.materials.BitmapMaterial) package org.papervision3d.materials { import flash.display.*; import flash.geom.*; import org.papervision3d.core.geom.renderables.*; import org.papervision3d.core.render.data.*; import org.papervision3d.core.proto.*; import flash.utils.*; import org.papervision3d.core.render.draw.*; import org.papervision3d.*; public class BitmapMaterial extends TriangleMaterial implements ITriangleDrawer { public var uvMatrices:Dictionary; protected var _texture:Object; public static var AUTO_MIP_MAPPING:Boolean = false; protected static var _localMatrix:Matrix = new Matrix(); public static var MIP_MAP_DEPTH:Number = 8; protected static var _triMatrix:Matrix = new Matrix(); public function BitmapMaterial(_arg1:BitmapData=null){ uvMatrices = new Dictionary(); super(); if (_arg1){ texture = _arg1; }; } override public function toString():String{ return (((((("Texture:" + this.texture) + " lineColor:") + this.lineColor) + " lineAlpha:") + this.lineAlpha)); } public function resetMapping():void{ uvMatrices = new Dictionary(); } public function transformUV(_arg1:Triangle3D):Matrix{ var _local2:Array; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Matrix; var _local16:Matrix; if (!_arg1.uv){ Papervision3D.log("MaterialObject3D: transformUV() uv not found!"); } else { if (bitmap){ _local2 = _arg1.uv; _local3 = (bitmap.width * maxU); _local4 = (bitmap.height * maxV); _local5 = (_local3 * _local2[0].u); _local6 = (_local4 * (1 - _local2[0].v)); _local7 = (_local3 * _local2[1].u); _local8 = (_local4 * (1 - _local2[1].v)); _local9 = (_local3 * _local2[2].u); _local10 = (_local4 * (1 - _local2[2].v)); if ((((((_local5 == _local7)) && ((_local6 == _local8)))) || ((((_local5 == _local9)) && ((_local6 == _local10)))))){ _local5 = (_local5 - ((_local5)>0.05) ? 0.05 : -0.05); _local6 = (_local6 - ((_local6)>0.07) ? 0.07 : -0.07); }; if ((((_local9 == _local7)) && ((_local10 == _local8)))){ _local9 = (_local9 - ((_local9)>0.05) ? 0.04 : -0.04); _local10 = (_local10 - ((_local10)>0.06) ? 0.06 : -0.06); }; _local11 = (_local7 - _local5); _local12 = (_local8 - _local6); _local13 = (_local9 - _local5); _local14 = (_local10 - _local6); _local15 = new Matrix(_local11, _local12, _local13, _local14, _local5, _local6); _local15.invert(); _local16 = ((uvMatrices[_arg1]) || ((uvMatrices[_arg1] = _local15.clone()))); _local16.a = _local15.a; _local16.b = _local15.b; _local16.c = _local15.c; _local16.d = _local15.d; _local16.tx = _local15.tx; _local16.ty = _local15.ty; } else { Papervision3D.log("MaterialObject3D: transformUV() material.bitmap not found!"); }; }; return (_local16); } public function get texture():Object{ return (this._texture); } protected function correctBitmap(_arg1:BitmapData):BitmapData{ var _local2:BitmapData; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Boolean; _local3 = (1 << MIP_MAP_DEPTH); _local4 = (_arg1.width / _local3); _local4 = ((_local4 == uint(_local4))) ? _local4 : (uint(_local4) + 1); _local5 = (_arg1.height / _local3); _local5 = ((_local5 == uint(_local5))) ? _local5 : (uint(_local5) + 1); _local6 = (_local3 * _local4); _local7 = (_local3 * _local5); _local8 = true; if (_local6 > 2880){ _local6 = _arg1.width; _local8 = false; }; if (_local7 > 2880){ _local7 = _arg1.height; _local8 = false; }; if (!_local8){ Papervision3D.log((("Material " + this.name) + ": Texture too big for mip mapping. Resizing recommended for better performance and quality.")); }; if (((_arg1) && (((!(((_arg1.width % _local3) == 0))) || (!(((_arg1.height % _local3) == 0))))))){ _local2 = new BitmapData(_local6, _local7, _arg1.transparent, 0); widthOffset = _arg1.width; heightOffset = _arg1.height; this.maxU = (_arg1.width / _local6); this.maxV = (_arg1.height / _local7); _local2.draw(_arg1); extendBitmapEdges(_local2, _arg1.width, _arg1.height); } else { this.maxU = (this.maxV = 1); _local2 = _arg1; }; return (_local2); } public function set texture(_arg1:Object):void{ if ((_arg1 is BitmapData) == false){ Papervision3D.log("Error: BitmapMaterial.texture requires a BitmapData object for the texture"); return; }; bitmap = createBitmap(BitmapData(_arg1)); _texture = _arg1; } protected function createBitmap(_arg1:BitmapData):BitmapData{ resetMapping(); if (AUTO_MIP_MAPPING){ return (correctBitmap(_arg1)); }; this.maxU = (this.maxV = 1); return (_arg1); } override public function copy(_arg1:MaterialObject3D):void{ super.copy(_arg1); this.maxU = _arg1.maxU; this.maxV = _arg1.maxV; } override public function drawTriangle(_arg1:Triangle3D, _arg2:Graphics, _arg3:RenderSessionData):void{ var _local4:Matrix; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; if (lineAlpha){ _arg2.lineStyle(0, lineColor, lineAlpha); }; if (bitmap){ _local4 = ((uvMatrices[_arg1]) || (transformUV(_arg1))); _local5 = _arg1.v0.vertex3DInstance.x; _local6 = _arg1.v0.vertex3DInstance.y; _local7 = _arg1.v1.vertex3DInstance.x; _local8 = _arg1.v1.vertex3DInstance.y; _local9 = _arg1.v2.vertex3DInstance.x; _local10 = _arg1.v2.vertex3DInstance.y; _triMatrix.a = (_local7 - _local5); _triMatrix.b = (_local8 - _local6); _triMatrix.c = (_local9 - _local5); _triMatrix.d = (_local10 - _local6); _triMatrix.tx = _local5; _triMatrix.ty = _local6; _localMatrix.a = _local4.a; _localMatrix.b = _local4.b; _localMatrix.c = _local4.c; _localMatrix.d = _local4.d; _localMatrix.tx = _local4.tx; _localMatrix.ty = _local4.ty; _localMatrix.concat(_triMatrix); _arg2.beginBitmapFill(bitmap, _localMatrix, tiled, smooth); }; _arg2.moveTo(_local5, _local6); _arg2.lineTo(_local7, _local8); _arg2.lineTo(_local9, _local10); _arg2.lineTo(_local5, _local6); if (bitmap){ _arg2.endFill(); }; if (lineAlpha){ _arg2.lineStyle(); }; _arg3.renderStatistics.triangles++; } protected function extendBitmapEdges(_arg1:BitmapData, _arg2:Number, _arg3:Number):void{ var _local4:Rectangle; var _local5:Point; var _local6:int; _local4 = new Rectangle(); _local5 = new Point(); if (_arg1.width > _arg2){ _local4.x = (_arg2 - 1); _local4.y = 0; _local4.width = 1; _local4.height = _arg3; _local5.y = 0; _local6 = _arg2; while (_local6 < _arg1.width) { _local5.x = _local6; _arg1.copyPixels(_arg1, _local4, _local5); _local6++; }; }; if (_arg1.height > _arg3){ _local4.x = 0; _local4.y = (_arg3 - 1); _local4.width = _arg1.width; _local4.height = 1; _local5.x = 0; _local6 = _arg3; while (_local6 < _arg1.height) { _local5.y = _local6; _arg1.copyPixels(_arg1, _local4, _local5); _local6++; }; }; } override public function clone():MaterialObject3D{ var _local1:MaterialObject3D; _local1 = super.clone(); _local1.maxU = this.maxU; _local1.maxV = this.maxV; return (_local1); } } }//package org.papervision3d.materials
Section 147
//MaterialsList (org.papervision3d.materials.MaterialsList) package org.papervision3d.materials { import org.papervision3d.core.proto.*; import flash.utils.*; public class MaterialsList { public var materialsByName:Dictionary; protected var _materials:Dictionary; private var _materialsTotal:int; public function MaterialsList(_arg1=null):void{ var _local2:String; var _local3:String; super(); this.materialsByName = new Dictionary(true); this._materials = new Dictionary(false); this._materialsTotal = 0; if (_arg1){ if ((_arg1 is Array)){ for (_local2 in _arg1) { this.addMaterial(_arg1[_local2]); }; } else { if ((_arg1 is Object)){ for (_local3 in _arg1) { this.addMaterial(_arg1[_local3], _local3); }; }; }; }; } public function get numMaterials():int{ return (this._materialsTotal); } public function addMaterial(_arg1:MaterialObject3D, _arg2:String=null):MaterialObject3D{ _arg2 = ((((_arg2) || (_arg1.name))) || (String(_arg1.id))); this._materials[_arg1] = _arg2; this.materialsByName[_arg2] = _arg1; this._materialsTotal++; return (_arg1); } public function removeMaterial(_arg1:MaterialObject3D):MaterialObject3D{ delete this.materialsByName[this._materials[_arg1]]; delete this._materials[_arg1]; return (_arg1); } public function toString():String{ var _local1:String; var _local2:MaterialObject3D; _local1 = ""; for each (_local2 in this.materialsByName) { _local1 = (_local1 + (this._materials[_local2] + "\n")); }; return (_local1); } public function removeMaterialByName(_arg1:String):MaterialObject3D{ return (removeMaterial(getMaterialByName(_arg1))); } public function clone():MaterialsList{ var _local1:MaterialsList; var _local2:MaterialObject3D; _local1 = new MaterialsList(); for each (_local2 in this.materialsByName) { _local1.addMaterial(_local2.clone(), this._materials[_local2]); }; return (_local1); } public function getMaterialByName(_arg1:String):MaterialObject3D{ return ((this.materialsByName[_arg1]) ? this.materialsByName[_arg1] : this.materialsByName["all"]); } } }//package org.papervision3d.materials
Section 148
//MovieMaterial (org.papervision3d.materials.MovieMaterial) package org.papervision3d.materials { import flash.display.*; import flash.geom.*; import flash.utils.*; import org.papervision3d.core.render.draw.*; import org.papervision3d.*; public class MovieMaterial extends BitmapMaterial implements ITriangleDrawer { public var movieTransparent:Boolean; public var allowAutoResize:Boolean;// = true public var movie:DisplayObject; private static var animatedMaterials:Dictionary = new Dictionary(false); public function MovieMaterial(_arg1:DisplayObject=null, _arg2:Boolean=false, _arg3:Boolean=false){ allowAutoResize = true; super(); movieTransparent = _arg2; this.animated = _arg3; if (_arg1){ texture = _arg1; }; } override public function get texture():Object{ return (this._texture); } public function drawBitmap():void{ var _local1:Matrix; bitmap.fillRect(bitmap.rect, this.fillColor); _local1 = new Matrix(); _local1.scale(movie.scaleX, movie.scaleY); bitmap.draw(movie, _local1, movie.transform.colorTransform); } public function get animated():Boolean{ return (animatedMaterials[this]); } override public function set texture(_arg1:Object):void{ if ((_arg1 is DisplayObject) == false){ Papervision3D.log("Error: MovieMaterial.texture requires a Sprite to be passed as the object"); return; }; bitmap = createBitmapFromSprite(DisplayObject(_arg1)); _texture = _arg1; } protected function createBitmapFromSprite(_arg1:DisplayObject):BitmapData{ movie = _arg1; initBitmap(movie); drawBitmap(); bitmap = super.createBitmap(bitmap); return (bitmap); } public function set animated(_arg1:Boolean):void{ animatedMaterials[this] = _arg1; } override public function updateBitmap():void{ var _local1:int; var _local2:int; _local1 = int(movie.width); _local2 = int(movie.height); if (((allowAutoResize) && (((!((_local1 == bitmap.width))) || (!((_local2 == bitmap.height))))))){ initBitmap(movie); }; drawBitmap(); } protected function initBitmap(_arg1:DisplayObject):void{ if (bitmap){ bitmap.dispose(); }; bitmap = new BitmapData(_arg1.width, _arg1.height, this.movieTransparent); } public static function updateAnimatedBitmaps():void{ var _local1:Object; for (_local1 in animatedMaterials) { if (animatedMaterials[_local1]){ _local1.updateBitmap(); }; }; } } }//package org.papervision3d.materials
Section 149
//ParticleMaterial (org.papervision3d.materials.ParticleMaterial) package org.papervision3d.materials { import flash.display.*; import org.papervision3d.core.geom.renderables.*; import org.papervision3d.core.render.data.*; import org.papervision3d.core.proto.*; import org.papervision3d.core.render.draw.*; public class ParticleMaterial extends MaterialObject3D implements IParticleDrawer { public function ParticleMaterial(_arg1:Number, _arg2:Number){ this.fillAlpha = _arg2; this.fillColor = _arg1; } public function drawParticle(_arg1:Particle, _arg2:Graphics, _arg3:RenderSessionData):void{ _arg2.beginFill(fillColor, fillAlpha); if (_arg1.size == 0){ _arg2.drawRect(_arg1.vertex3D.vertex3DInstance.x, _arg1.vertex3D.vertex3DInstance.y, 1, 1); } else { _arg2.drawRect(_arg1.vertex3D.vertex3DInstance.x, _arg1.vertex3D.vertex3DInstance.y, _arg1.renderScale, _arg1.renderScale); }; _arg2.endFill(); } } }//package org.papervision3d.materials
Section 150
//TriangleMaterial (org.papervision3d.materials.TriangleMaterial) package org.papervision3d.materials { import flash.display.*; import org.papervision3d.core.geom.renderables.*; import org.papervision3d.core.render.data.*; import org.papervision3d.core.proto.*; import org.papervision3d.core.render.draw.*; public class TriangleMaterial extends MaterialObject3D implements ITriangleDrawer { override public function drawTriangle(_arg1:Triangle3D, _arg2:Graphics, _arg3:RenderSessionData):void{ } } }//package org.papervision3d.materials
Section 151
//WireframeMaterial (org.papervision3d.materials.WireframeMaterial) package org.papervision3d.materials { import flash.display.*; import org.papervision3d.core.geom.renderables.*; import org.papervision3d.core.render.data.*; import org.papervision3d.core.render.draw.*; public class WireframeMaterial extends TriangleMaterial implements ITriangleDrawer { public function WireframeMaterial(_arg1:Number=0xFF00FF, _arg2:Number=100){ this.lineColor = _arg1; this.lineAlpha = _arg2; this.doubleSided = false; } override public function toString():String{ return (((("WireframeMaterial - color:" + this.lineColor) + " alpha:") + this.lineAlpha)); } override public function drawTriangle(_arg1:Triangle3D, _arg2:Graphics, _arg3:RenderSessionData):void{ var _local4:Number; var _local5:Number; _local4 = _arg1.v0.vertex3DInstance.x; _local5 = _arg1.v0.vertex3DInstance.y; if (lineAlpha){ _arg2.lineStyle(0, lineColor, lineAlpha); _arg2.moveTo(_local4, _local5); _arg2.lineTo(_arg1.v1.vertex3DInstance.x, _arg1.v1.vertex3DInstance.y); _arg2.lineTo(_arg1.v2.vertex3DInstance.x, _arg1.v2.vertex3DInstance.y); _arg2.lineTo(_local4, _local5); _arg2.lineStyle(); _arg3.renderStatistics.triangles++; }; } } }//package org.papervision3d.materials
Section 152
//DisplayObject3D (org.papervision3d.objects.DisplayObject3D) package org.papervision3d.objects { import flash.display.*; import org.papervision3d.core.proto.*; import org.papervision3d.materials.*; import org.papervision3d.core.*; import com.blitzagency.xray.logger.*; import org.papervision3d.*; public class DisplayObject3D extends DisplayObjectContainer3D { public var extra:Object; public var id:int; private var _rotationY:Number; private var _rotationZ:Number; private var _rotationX:Number; public var material:MaterialObject3D; public var meshSort:uint;// = 1 public var materials:MaterialsList; private var _scaleDirty:Boolean;// = false public var transform:Matrix3D; public var screenZ:Number; public var visible:Boolean; private var _scaleX:Number; private var _scaleY:Number; private var _scaleZ:Number; public var geometry:GeometryObject3D; public var screen:Number3D; public var name:String; public var container:Sprite; public var world:Matrix3D; public var parent:DisplayObjectContainer3D; public var view:Matrix3D; protected var _scene:SceneObject3D;// = null public var faces:Array; protected var _transformDirty:Boolean;// = false private var _rotationDirty:Boolean;// = false protected var _sorted:Array; public static const MESH_SORT_CENTER:uint = 1; public static const MESH_SORT_CLOSE:uint = 3; public static const MESH_SORT_FAR:uint = 2; private static var LEFT:Number3D = new Number3D(-1, 0, 0); private static var _totalDisplayObjects:int = 0; public static var staticSorted:Array = new Array(); private static var UP:Number3D = new Number3D(0, 1, 0); private static var BACKWARD:Number3D = new Number3D(0, 0, -1); private static var FORWARD:Number3D = new Number3D(0, 0, 1); private static var DOWN:Number3D = new Number3D(0, -1, 0); public static var faceLevelMode:Boolean; private static var toDEGREES:Number = 57.2957795130823; private static var toRADIANS:Number = 0.0174532925199433; private static var RIGHT:Number3D = new Number3D(1, 0, 0); public function DisplayObject3D(_arg1:String=null, _arg2:GeometryObject3D=null, _arg3:Object=null):void{ var _local4:Number; screen = new Number3D(); _scene = null; meshSort = MESH_SORT_CENTER; faces = new Array(); _transformDirty = false; _rotationDirty = false; _scaleDirty = false; super(); Papervision3D.log(("DisplayObject3D: " + _arg1)); this.transform = Matrix3D.IDENTITY; this.world = Matrix3D.IDENTITY; this.view = Matrix3D.IDENTITY; this.x = (_arg3) ? ((_arg3.x) || (0)) : 0; this.y = (_arg3) ? ((_arg3.y) || (0)) : 0; this.z = (_arg3) ? ((_arg3.z) || (0)) : 0; rotationX = (_arg3) ? ((_arg3.rotationX) || (0)) : 0; rotationY = (_arg3) ? ((_arg3.rotationY) || (0)) : 0; rotationZ = (_arg3) ? ((_arg3.rotationZ) || (0)) : 0; _local4 = (Papervision3D.usePERCENT) ? 100 : 1; scaleX = (_arg3) ? ((_arg3.scaleX) || (_local4)) : _local4; scaleY = (_arg3) ? ((_arg3.scaleY) || (_local4)) : _local4; scaleZ = (_arg3) ? ((_arg3.scaleZ) || (_local4)) : _local4; if (((_arg3) && (_arg3.extra))){ this.extra = _arg3.extra; }; if (((_arg3) && (_arg3.container))){ this.container = _arg3.container; }; this.visible = true; this.id = _totalDisplayObjects++; this.name = ((_arg1) || (String(this.id))); if (_arg2){ addGeometry(_arg2); }; } public function set z(_arg1:Number):void{ this.transform.n34 = _arg1; } override public function addChild(_arg1:DisplayObject3D, _arg2:String=null):DisplayObject3D{ _arg1 = super.addChild(_arg1, _arg2); if (_arg1.scene == null){ _arg1.scene = scene; }; return (_arg1); } public function moveDown(_arg1:Number):void{ translate(_arg1, DOWN); } public function set scene(_arg1:SceneObject3D):void{ var _local2:DisplayObject3D; _scene = _arg1; for each (_local2 in this._childrenByName) { if (_local2.scene == null){ _local2.scene = _scene; }; }; } public function project(_arg1:DisplayObject3D, _arg2:CameraObject3D, _arg3:Array=null):Number{ var _local4:Number; var _local5:Number; var _local6:DisplayObject3D; if (this._transformDirty){ updateTransform(); }; this.view.calculateMultiply(_arg1.view, this.transform); this.world.calculateMultiply(_arg1.world, this.transform); calculateScreenCoords(_arg2); _local4 = 0; _local5 = 0; if (!_arg3){ staticSorted.length = 0; _arg3 = staticSorted; this._sorted = _arg3; }; for each (_local6 in this._childrenByName) { if (_local6.visible){ _local4 = (_local4 + _local6.project(this, _arg2, _arg3)); _local5++; }; }; return ((this.screenZ = (_local4 / _local5))); } private function calculateScreenCoords(_arg1:CameraObject3D):void{ var _local2:Number; _local2 = ((_arg1.focus * _arg1.zoom) / (_arg1.focus + view.n34)); screen.x = (view.n14 * _local2); screen.y = (view.n24 * _local2); screen.z = view.n34; } public function lookAt(_arg1:DisplayObject3D, _arg2:Number3D=null):void{ var _local3:Number3D; var _local4:Number3D; var _local5:Number3D; var _local6:Number3D; var _local7:Number3D; var _local8:Matrix3D; var _local9:XrayLog; _local3 = new Number3D(this.x, this.y, this.z); _local4 = new Number3D(_arg1.x, _arg1.y, _arg1.z); _local5 = Number3D.sub(_local4, _local3); _local5.normalize(); if (_local5.modulo > 0.1){ _local6 = Number3D.cross(_local5, ((_arg2) || (UP))); _local6.normalize(); _local7 = Number3D.cross(_local5, _local6); _local7.normalize(); _local8 = this.transform; _local8.n11 = (_local6.x * _scaleX); _local8.n21 = (_local6.y * _scaleX); _local8.n31 = (_local6.z * _scaleX); _local8.n12 = (-(_local7.x) * _scaleY); _local8.n22 = (-(_local7.y) * _scaleY); _local8.n32 = (-(_local7.z) * _scaleY); _local8.n13 = (_local5.x * _scaleZ); _local8.n23 = (_local5.y * _scaleZ); _local8.n33 = (_local5.z * _scaleZ); this._transformDirty = false; this._rotationDirty = true; } else { _local9 = new XrayLog(); _local9.debug("lookAt Error"); }; } public function set rotationX(_arg1:Number):void{ this._rotationX = (Papervision3D.useDEGREES) ? (-(_arg1) * toRADIANS) : -(_arg1); this._transformDirty = true; } public function set rotationY(_arg1:Number):void{ this._rotationY = (Papervision3D.useDEGREES) ? (-(_arg1) * toRADIANS) : -(_arg1); this._transformDirty = true; } public function set rotationZ(_arg1:Number):void{ this._rotationZ = (Papervision3D.useDEGREES) ? (-(_arg1) * toRADIANS) : -(_arg1); this._transformDirty = true; } public function addGeometry(_arg1:GeometryObject3D=null):void{ if (_arg1){ this.geometry = _arg1; }; } public function get sceneX():Number{ return (this.world.n14); } public function get scaleX():Number{ if (Papervision3D.usePERCENT){ return ((this._scaleX * 100)); }; return (this._scaleX); } public function get scaleY():Number{ if (Papervision3D.usePERCENT){ return ((this._scaleY * 100)); }; return (this._scaleY); } public function get scaleZ():Number{ if (Papervision3D.usePERCENT){ return ((this._scaleZ * 100)); }; return (this._scaleZ); } public function moveUp(_arg1:Number):void{ translate(_arg1, UP); } public function get sceneZ():Number{ return (this.world.n34); } public function distanceTo(_arg1:DisplayObject3D):Number{ var _local2:Number; var _local3:Number; var _local4:Number; _local2 = (this.x - _arg1.x); _local3 = (this.y - _arg1.y); _local4 = (this.z - _arg1.z); return (Math.sqrt((((_local2 * _local2) + (_local3 * _local3)) + (_local4 * _local4)))); } public function get sceneY():Number{ return (this.world.n24); } public function get scale():Number{ if ((((this._scaleX == this._scaleY)) && ((this._scaleX == this._scaleZ)))){ if (Papervision3D.usePERCENT){ return ((this._scaleX * 100)); }; return (this._scaleX); //unresolved jump }; return (NaN); } public function hitTestObject(_arg1:DisplayObject3D, _arg2:Number=1):Boolean{ var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; _local3 = (this.x - _arg1.x); _local4 = (this.y - _arg1.y); _local5 = (this.z - _arg1.z); _local6 = (((_local3 * _local3) + (_local4 * _local4)) + (_local5 * _local5)); _local7 = (this.geometry) ? this.geometry.boundingSphere2 : 0; _local8 = (_arg1.geometry) ? _arg1.geometry.boundingSphere2 : 0; _local7 = (_local7 * _arg2); return (((_local7 + _local8) > _local6)); } public function translate(_arg1:Number, _arg2:Number3D):void{ var _local3:Number3D; _local3 = _arg2.clone(); if (this._transformDirty){ updateTransform(); }; Matrix3D.rotateAxis(transform, _local3); this.x = (this.x + (_arg1 * _local3.x)); this.y = (this.y + (_arg1 * _local3.y)); this.z = (this.z + (_arg1 * _local3.z)); } private function updateRotation():void{ var _local1:Number3D; _local1 = Matrix3D.matrix2euler(this.transform); this._rotationX = (_local1.x * toRADIANS); this._rotationY = (_local1.y * toRADIANS); this._rotationZ = (_local1.z * toRADIANS); this._rotationDirty = false; } public function pitch(_arg1:Number):void{ var _local2:Number3D; var _local3:Matrix3D; _arg1 = (Papervision3D.useDEGREES) ? (_arg1 * toRADIANS) : _arg1; _local2 = RIGHT.clone(); if (this._transformDirty){ updateTransform(); }; Matrix3D.rotateAxis(transform, _local2); _local3 = Matrix3D.rotationMatrix(_local2.x, _local2.y, _local2.z, _arg1); this.transform.calculateMultiply3x3(_local3, transform); this._rotationDirty = true; } public function yaw(_arg1:Number):void{ var _local2:Number3D; var _local3:Matrix3D; _arg1 = (Papervision3D.useDEGREES) ? (_arg1 * toRADIANS) : _arg1; _local2 = UP.clone(); if (this._transformDirty){ updateTransform(); }; Matrix3D.rotateAxis(transform, _local2); _local3 = Matrix3D.rotationMatrix(_local2.x, _local2.y, _local2.z, _arg1); this.transform.calculateMultiply3x3(_local3, transform); this._rotationDirty = true; } public function copyTransform(_arg1):void{ var _local2:Matrix3D; var _local3:Matrix3D; _local2 = this.transform; _local3 = ((_arg1 is DisplayObject3D)) ? _arg1.transform : _arg1; _local2.n11 = _local3.n11; _local2.n12 = _local3.n12; _local2.n13 = _local3.n13; _local2.n14 = _local3.n14; _local2.n21 = _local3.n21; _local2.n22 = _local3.n22; _local2.n23 = _local3.n23; _local2.n24 = _local3.n24; _local2.n31 = _local3.n31; _local2.n32 = _local3.n32; _local2.n33 = _local3.n33; _local2.n34 = _local3.n34; this._transformDirty = false; this._rotationDirty = true; } public function moveLeft(_arg1:Number):void{ translate(_arg1, LEFT); } public function get z():Number{ return (this.transform.n34); } override public function toString():String{ return (((((((this.name + ": x:") + Math.round(this.x)) + " y:") + Math.round(this.y)) + " z:") + Math.round(this.z))); } public function roll(_arg1:Number):void{ var _local2:Number3D; var _local3:Matrix3D; _arg1 = (Papervision3D.useDEGREES) ? (_arg1 * toRADIANS) : _arg1; _local2 = FORWARD.clone(); if (this._transformDirty){ updateTransform(); }; Matrix3D.rotateAxis(transform, _local2); _local3 = Matrix3D.rotationMatrix(_local2.x, _local2.y, _local2.z, _arg1); this.transform.calculateMultiply3x3(_local3, transform); this._rotationDirty = true; } public function getMaterialByName(_arg1:String):MaterialObject3D{ var _local2:MaterialObject3D; var _local3:DisplayObject3D; _local2 = this.materials.getMaterialByName(_arg1); if (_local2){ return (_local2); }; for each (_local3 in this._childrenByName) { _local2 = _local3.getMaterialByName(_arg1); if (_local2){ return (_local2); }; }; return (null); } public function get x():Number{ return (this.transform.n14); } public function get scene():SceneObject3D{ return (_scene); } public function get y():Number{ return (this.transform.n24); } public function set scale(_arg1:Number):void{ if (Papervision3D.usePERCENT){ _arg1 = (_arg1 / 100); }; this._scaleX = (this._scaleY = (this._scaleZ = _arg1)); this._transformDirty = true; } public function get rotationY():Number{ if (this._rotationDirty){ updateRotation(); }; return ((Papervision3D.useDEGREES) ? (-(this._rotationY) * toDEGREES) : -(this._rotationY)); } public function get rotationZ():Number{ if (this._rotationDirty){ updateRotation(); }; return ((Papervision3D.useDEGREES) ? (-(this._rotationZ) * toDEGREES) : -(this._rotationZ)); } public function set scaleY(_arg1:Number):void{ if (Papervision3D.usePERCENT){ this._scaleY = (_arg1 / 100); } else { this._scaleY = _arg1; }; this._transformDirty = true; } public function set scaleZ(_arg1:Number):void{ if (Papervision3D.usePERCENT){ this._scaleZ = (_arg1 / 100); } else { this._scaleZ = _arg1; }; this._transformDirty = true; } public function get rotationX():Number{ if (this._rotationDirty){ updateRotation(); }; return ((Papervision3D.useDEGREES) ? (-(this._rotationX) * toDEGREES) : -(this._rotationX)); } public function set scaleX(_arg1:Number):void{ if (Papervision3D.usePERCENT){ this._scaleX = (_arg1 / 100); } else { this._scaleX = _arg1; }; this._transformDirty = true; } protected function updateTransform():void{ var _local1:Object; var _local2:Matrix3D; var _local3:Matrix3D; var _local4:Matrix3D; _local1 = Matrix3D.euler2quaternion(-(this._rotationY), -(this._rotationZ), this._rotationX); _local2 = Matrix3D.quaternion2matrix(_local1.x, _local1.y, _local1.z, _local1.w); _local3 = this.transform; _local2.n14 = _local3.n14; _local2.n24 = _local3.n24; _local2.n34 = _local3.n34; _local3.copy(_local2); _local4 = Matrix3D.IDENTITY; _local4.n11 = this._scaleX; _local4.n22 = this._scaleY; _local4.n33 = this._scaleZ; this.transform.calculateMultiply(_local3, _local4); this._transformDirty = false; } public function moveForward(_arg1:Number):void{ translate(_arg1, FORWARD); } public function copyPosition(_arg1):void{ var _local2:Matrix3D; var _local3:Matrix3D; _local2 = this.transform; _local3 = ((_arg1 is DisplayObject3D)) ? _arg1.transform : _arg1; _local2.n14 = _local3.n14; _local2.n24 = _local3.n24; _local2.n34 = _local3.n34; } public function hitTestPoint(_arg1:Number, _arg2:Number, _arg3:Number):Boolean{ var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; _local4 = (this.x - _arg1); _local5 = (this.y - _arg2); _local6 = (this.z - _arg3); _local7 = (((_arg1 * _arg1) + (_arg2 * _arg2)) + (_arg3 * _arg3)); _local8 = (this.geometry) ? this.geometry.boundingSphere2 : 0; return ((_local8 > _local7)); } public function moveRight(_arg1:Number):void{ translate(_arg1, RIGHT); } public function moveBackward(_arg1:Number):void{ translate(_arg1, BACKWARD); } public function rotateArbitrary(_arg1:Number, _arg2:Number3D=null, _arg3:DisplayObject3D=null):void{ var _local4:Number3D; var _local5:Number3D; var _local6:Number; var _local7:Number; var _local8:Matrix3D; var _local9:Matrix3D; var _local10:Matrix3D; var _local11:Matrix3D; var _local12:Matrix3D; var _local13:Matrix3D; var _local14:Matrix3D; var _local15:Matrix3D; if (!_arg3){ _arg3 = this; }; if (!_arg2){ _arg2 = new Number3D(1, 0, 0); }; _local4 = _arg2; _local5 = new Number3D(_arg3.x, _arg3.y, _arg3.z); _local6 = Math.sqrt(((_local4.x * _local4.x) + (_local4.y * _local4.y))); _local7 = Math.sqrt(((_local6 * _local6) + (_local4.z * _local4.z))); _local8 = new Matrix3D([1, 0, 0, -(_local5.x), 0, 1, 0, -(_local5.y), 0, 0, 1, -(_local5.z), 0, 0, 0, 1]); _local9 = Matrix3D.inverse(_local8); if (_local6 != 0){ _local10 = new Matrix3D([(_local4.x / _local6), (_local4.y / _local6), 0, 0, (-(_local4.y) / _local6), (_local4.x / _local6), 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]); } else { _local10 = Matrix3D.IDENTITY; }; _local11 = Matrix3D.inverse(_local10); _local12 = new Matrix3D([(_local4.z / _local7), 0, (-(_local6) / _local7), 0, 0, 1, 0, 0, (_local6 / _local7), 0, (_local4.z / _local7), 0, 0, 0, 0, 1]); _local13 = Matrix3D.inverse(_local12); _local14 = new Matrix3D([Math.cos(_arg1), -(Math.sin(_arg1)), 0, 0, Math.sin(_arg1), Math.cos(_arg1), 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]); _local15 = Matrix3D.multiply(Matrix3D.multiply(Matrix3D.multiply(Matrix3D.multiply(Matrix3D.multiply(Matrix3D.multiply(_local9, _local11), _local13), _local14), _local12), _local10), _local8); this.transform.calculateMultiply(_local15, transform); if (this._transformDirty){ updateTransform(); }; } public function materialsList():String{ var _local1:String; var _local2:String; var _local3:DisplayObject3D; _local1 = ""; for (_local2 in this.materials) { _local1 = (_local1 + (_local2 + "\n")); }; for each (_local3 in this._childrenByName) { for (_local2 in _local3.materials.materialsByName) { _local1 = (_local1 + (("+ " + _local2) + "\n")); }; }; return (_local1); } public function set x(_arg1:Number):void{ this.transform.n14 = _arg1; } public function set y(_arg1:Number):void{ this.transform.n24 = _arg1; } public static function get ZERO():DisplayObject3D{ return (new (DisplayObject3D)); } } }//package org.papervision3d.objects
Section 153
//Plane (org.papervision3d.objects.Plane) package org.papervision3d.objects { import org.papervision3d.core.geom.renderables.*; import org.papervision3d.core.proto.*; import org.papervision3d.core.*; import org.papervision3d.core.geom.*; public class Plane extends TriangleMesh3D { public var segmentsH:Number; public var segmentsW:Number; public static var DEFAULT_SCALE:Number = 1; public static var DEFAULT_SEGMENTS:Number = 1; public static var DEFAULT_SIZE:Number = 500; public function Plane(_arg1:MaterialObject3D=null, _arg2:Number=0, _arg3:Number=0, _arg4:Number=0, _arg5:Number=0, _arg6:Object=null){ var _local7:Number; super(_arg1, new Array(), new Array(), null, _arg6); this.segmentsW = ((_arg4) || (DEFAULT_SEGMENTS)); this.segmentsH = ((_arg5) || (this.segmentsW)); _local7 = DEFAULT_SCALE; if (!_arg3){ if (_arg2){ _local7 = _arg2; }; if (((_arg1) && (_arg1.bitmap))){ _arg2 = (_arg1.bitmap.width * _local7); _arg3 = (_arg1.bitmap.height * _local7); } else { _arg2 = (DEFAULT_SIZE * _local7); _arg3 = (DEFAULT_SIZE * _local7); }; }; buildPlane(_arg2, _arg3); } private function buildPlane(_arg1:Number, _arg2:Number):void{ var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Array; var _local8:Array; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:int; var _local14:NumberUV; var _local15:NumberUV; var _local16:NumberUV; var _local17:int; var _local18:Number; var _local19:Number; var _local20:Vertex3D; var _local21:Vertex3D; var _local22:Vertex3D; _local3 = this.segmentsW; _local4 = this.segmentsH; _local5 = (_local3 + 1); _local6 = (_local4 + 1); _local7 = this.geometry.vertices; _local8 = this.geometry.faces; _local9 = (_arg1 / 2); _local10 = (_arg2 / 2); _local11 = (_arg1 / _local3); _local12 = (_arg2 / _local4); _local13 = 0; while (_local13 < (_local3 + 1)) { _local17 = 0; while (_local17 < _local6) { _local18 = ((_local13 * _local11) - _local9); _local19 = ((_local17 * _local12) - _local10); _local7.push(new Vertex3D(_local18, _local19, 0)); _local17++; }; _local13++; }; _local13 = 0; while (_local13 < _local3) { _local17 = 0; while (_local17 < _local4) { _local20 = _local7[((_local13 * _local6) + _local17)]; _local21 = _local7[((_local13 * _local6) + (_local17 + 1))]; _local22 = _local7[(((_local13 + 1) * _local6) + _local17)]; _local14 = new NumberUV((_local13 / _local3), (_local17 / _local4)); _local15 = new NumberUV((_local13 / _local3), ((_local17 + 1) / _local4)); _local16 = new NumberUV(((_local13 + 1) / _local3), (_local17 / _local4)); _local8.push(new Triangle3D(this, [_local20, _local22, _local21], null, [_local14, _local16, _local15])); _local20 = _local7[(((_local13 + 1) * _local6) + (_local17 + 1))]; _local21 = _local7[(((_local13 + 1) * _local6) + _local17)]; _local22 = _local7[((_local13 * _local6) + (_local17 + 1))]; _local14 = new NumberUV(((_local13 + 1) / _local3), ((_local17 + 1) / _local4)); _local15 = new NumberUV(((_local13 + 1) / _local3), (_local17 / _local4)); _local16 = new NumberUV((_local13 / _local3), ((_local17 + 1) / _local4)); _local8.push(new Triangle3D(this, [_local20, _local22, _local21], null, [_local14, _local16, _local15])); _local17++; }; _local13++; }; this.geometry.ready = true; } } }//package org.papervision3d.objects
Section 154
//Scene3D (org.papervision3d.scenes.Scene3D) package org.papervision3d.scenes { import flash.display.*; import org.papervision3d.core.proto.*; import flash.utils.*; import org.papervision3d.core.render.*; public class Scene3D extends SceneObject3D { public function Scene3D(_arg1:Sprite, _arg2:Boolean=false){ super(_arg1); this.interactive = _arg2; if (_arg2){ renderer = new InteractiveRendererEngine(this); interactiveSceneManager = InteractiveRendererEngine(renderer).interactiveSceneManager; interactiveSceneManager.initListeners(); } else { renderer = new BasicRenderEngine(); }; } override protected function renderObjects(_arg1:CameraObject3D):void{ container.graphics.clear(); this.stats = renderer.render(this, container, _arg1); stats.performance = (getTimer() - stats.performance); } } }//package org.papervision3d.scenes
Section 155
//IVirtualMouseEvent (org.papervision3d.utils.virtualmouse.IVirtualMouseEvent) package org.papervision3d.utils.virtualmouse { public interface IVirtualMouseEvent { } }//package org.papervision3d.utils.virtualmouse
Section 156
//VirtualMouse (org.papervision3d.utils.virtualmouse.VirtualMouse) package org.papervision3d.utils.virtualmouse { import flash.display.*; import flash.geom.*; import flash.events.*; import com.blitzagency.xray.logger.*; import flash.utils.*; public class VirtualMouse extends EventDispatcher { private var _container:Sprite; private var lastDownTarget:DisplayObject; private var target:InteractiveObject; private var updateMouseDown:Boolean;// = false private var eventEvent:Class; private var _lastEvent:Event; private var mouseEventEvent:Class; private var location:Point; private var delta:int;// = 0 private var disabledEvents:Object; private var log:XrayLog; private var ignoredInstances:Dictionary; private var isLocked:Boolean;// = false private var lastWithinStage:Boolean;// = true private var lastLocation:Point; private var isDoubleClickEvent:Boolean;// = false private var lastMouseDown:Boolean;// = false private var altKey:Boolean;// = false private var _useNativeEvents:Boolean;// = false private var ctrlKey:Boolean;// = false private var shiftKey:Boolean;// = false private var _stage:Stage; public static const UPDATE:String = "update"; private static var _mouseIsDown:Boolean = false; public function VirtualMouse(_arg1:Stage=null, _arg2:Sprite=null, _arg3:Number=0, _arg4:Number=0){ altKey = false; ctrlKey = false; shiftKey = false; delta = 0; isLocked = false; isDoubleClickEvent = false; disabledEvents = new Object(); ignoredInstances = new Dictionary(true); lastMouseDown = false; updateMouseDown = false; lastWithinStage = true; _useNativeEvents = false; eventEvent = VirtualMouseEvent; mouseEventEvent = VirtualMouseMouseEvent; log = new XrayLog(); super(); this.stage = _arg1; this.container = _arg2; location = new Point(_arg3, _arg4); lastLocation = location.clone(); addEventListener(UPDATE, handleUpdate); update(); } public function get mouseIsDown():Boolean{ return (_mouseIsDown); } public function get stage():Stage{ return (_stage); } public function exitContainer():void{ var _local1:Point; _local1 = target.globalToLocal(location); if (!disabledEvents[MouseEvent.MOUSE_OUT]){ _lastEvent = new mouseEventEvent(MouseEvent.MOUSE_OUT, true, false, _local1.x, _local1.y, container, ctrlKey, altKey, shiftKey, _mouseIsDown, delta); container.dispatchEvent(_lastEvent); dispatchEvent(_lastEvent); }; if (!disabledEvents[MouseEvent.ROLL_OUT]){ _lastEvent = new mouseEventEvent(MouseEvent.ROLL_OUT, false, false, _local1.x, _local1.y, container, ctrlKey, altKey, shiftKey, _mouseIsDown, delta); container.dispatchEvent(_lastEvent); dispatchEvent(_lastEvent); }; if (target != container){ if (!disabledEvents[MouseEvent.MOUSE_OUT]){ _lastEvent = new mouseEventEvent(MouseEvent.MOUSE_OUT, true, false, _local1.x, _local1.y, container, ctrlKey, altKey, shiftKey, _mouseIsDown, delta); target.dispatchEvent(_lastEvent); dispatchEvent(_lastEvent); }; if (!disabledEvents[MouseEvent.ROLL_OUT]){ _lastEvent = new mouseEventEvent(MouseEvent.ROLL_OUT, false, false, _local1.x, _local1.y, container, ctrlKey, altKey, shiftKey, _mouseIsDown, delta); target.dispatchEvent(_lastEvent); dispatchEvent(_lastEvent); }; }; target = _stage; } public function release():void{ updateMouseDown = true; _mouseIsDown = false; if (!isLocked){ update(); }; } public function click():void{ press(); release(); } public function get container():Sprite{ return (_container); } public function set container(_arg1:Sprite):void{ _container = _arg1; } public function get y():Number{ return (location.y); } public function set x(_arg1:Number):void{ location.x = _arg1; if (!isLocked){ update(); }; } public function disableEvent(_arg1:String):void{ disabledEvents[_arg1] = true; } public function get lastEvent():Event{ return (_lastEvent); } private function handleUpdate(_arg1:Event):void{ var _local2:Array; var _local3:InteractiveObject; var _local4:DisplayObject; var _local5:int; var _local6:Point; var _local7:Point; var _local8:Boolean; if (!container){ return; }; _local2 = container.getObjectsUnderPoint(location); _local5 = _local2.length; while (_local5--) { _local4 = _local2[_local5]; while (_local4) { if (ignoredInstances[_local4]){ _local3 = null; break; }; if (((_local3) && ((_local4 is SimpleButton)))){ _local3 = null; } else { if (((_local3) && (!(DisplayObjectContainer(_local4).mouseChildren)))){ _local3 = null; }; }; if (((((!(_local3)) && ((_local4 is InteractiveObject)))) && (InteractiveObject(_local4).mouseEnabled))){ _local3 = InteractiveObject(_local4); }; _local4 = _local4.parent; }; if (_local3){ break; }; }; if (!_local3){ _local3 = _stage; }; _local6 = target.globalToLocal(location); _local7 = _local3.globalToLocal(location); if (((!((lastLocation.x == location.x))) || (!((lastLocation.y == location.y))))){ _local8 = false; if (stage){ _local8 = (((((((location.x >= 0)) && ((location.y >= 0)))) && ((location.x <= stage.stageWidth)))) && ((location.y <= stage.stageHeight))); }; if (((((!(_local8)) && (lastWithinStage))) && (!(disabledEvents[Event.MOUSE_LEAVE])))){ _lastEvent = new eventEvent(Event.MOUSE_LEAVE, false, false); stage.dispatchEvent(_lastEvent); dispatchEvent(_lastEvent); }; if (((_local8) && (!(disabledEvents[MouseEvent.MOUSE_MOVE])))){ _lastEvent = new mouseEventEvent(MouseEvent.MOUSE_MOVE, true, false, _local7.x, _local7.y, _local3, ctrlKey, altKey, shiftKey, _mouseIsDown, delta); _local3.dispatchEvent(_lastEvent); dispatchEvent(_lastEvent); }; lastWithinStage = _local8; }; if (_local3 != target){ if (!disabledEvents[MouseEvent.MOUSE_OUT]){ _lastEvent = new mouseEventEvent(MouseEvent.MOUSE_OUT, true, false, _local6.x, _local6.y, _local3, ctrlKey, altKey, shiftKey, _mouseIsDown, delta); target.dispatchEvent(_lastEvent); dispatchEvent(_lastEvent); }; if (!disabledEvents[MouseEvent.ROLL_OUT]){ _lastEvent = new mouseEventEvent(MouseEvent.ROLL_OUT, false, false, _local6.x, _local6.y, _local3, ctrlKey, altKey, shiftKey, _mouseIsDown, delta); target.dispatchEvent(_lastEvent); dispatchEvent(_lastEvent); }; if (!disabledEvents[MouseEvent.MOUSE_OVER]){ _lastEvent = new mouseEventEvent(MouseEvent.MOUSE_OVER, true, false, _local7.x, _local7.y, target, ctrlKey, altKey, shiftKey, _mouseIsDown, delta); _local3.dispatchEvent(_lastEvent); dispatchEvent(_lastEvent); }; if (!disabledEvents[MouseEvent.ROLL_OVER]){ _lastEvent = new mouseEventEvent(MouseEvent.ROLL_OVER, false, false, _local7.x, _local7.y, target, ctrlKey, altKey, shiftKey, _mouseIsDown, delta); _local3.dispatchEvent(_lastEvent); dispatchEvent(_lastEvent); }; }; if (updateMouseDown){ if (_mouseIsDown){ if (!disabledEvents[MouseEvent.MOUSE_DOWN]){ _lastEvent = new mouseEventEvent(MouseEvent.MOUSE_DOWN, true, false, _local7.x, _local7.y, _local3, ctrlKey, altKey, shiftKey, _mouseIsDown, delta); _local3.dispatchEvent(_lastEvent); dispatchEvent(_lastEvent); }; lastDownTarget = _local3; updateMouseDown = false; } else { if (!disabledEvents[MouseEvent.MOUSE_UP]){ _lastEvent = new mouseEventEvent(MouseEvent.MOUSE_UP, true, false, _local7.x, _local7.y, _local3, ctrlKey, altKey, shiftKey, _mouseIsDown, delta); _local3.dispatchEvent(_lastEvent); dispatchEvent(_lastEvent); }; if (((!(disabledEvents[MouseEvent.CLICK])) && ((_local3 == lastDownTarget)))){ _lastEvent = new mouseEventEvent(MouseEvent.CLICK, true, false, _local7.x, _local7.y, _local3, ctrlKey, altKey, shiftKey, _mouseIsDown, delta); _local3.dispatchEvent(_lastEvent); dispatchEvent(_lastEvent); }; lastDownTarget = null; updateMouseDown = false; }; }; if (((((isDoubleClickEvent) && (!(disabledEvents[MouseEvent.DOUBLE_CLICK])))) && (_local3.doubleClickEnabled))){ _lastEvent = new mouseEventEvent(MouseEvent.DOUBLE_CLICK, true, false, _local7.x, _local7.y, _local3, ctrlKey, altKey, shiftKey, _mouseIsDown, delta); _local3.dispatchEvent(_lastEvent); dispatchEvent(_lastEvent); }; lastLocation = location.clone(); lastMouseDown = _mouseIsDown; target = _local3; } public function getLocation():Point{ return (location.clone()); } public function get x():Number{ return (location.x); } public function lock():void{ isLocked = true; } public function get useNativeEvents():Boolean{ return (_useNativeEvents); } public function setLocation(_arg1, _arg2=null):void{ var _local3:Point; if ((_arg1 is Point)){ _local3 = Point(_arg1); location.x = _local3.x; location.y = _local3.y; } else { location.x = Number(_arg1); location.y = Number(_arg2); }; if (!isLocked){ update(); }; } private function keyHandler(_arg1:KeyboardEvent):void{ altKey = _arg1.altKey; ctrlKey = _arg1.ctrlKey; shiftKey = _arg1.shiftKey; } public function unignore(_arg1:DisplayObject):void{ if ((_arg1 in ignoredInstances)){ delete ignoredInstances[_arg1]; }; } public function doubleClick():void{ if (isLocked){ release(); } else { click(); press(); isDoubleClickEvent = true; release(); isDoubleClickEvent = false; }; } public function update():void{ dispatchEvent(new Event(UPDATE, false, false)); } public function ignore(_arg1:DisplayObject):void{ ignoredInstances[_arg1] = true; } public function unlock():void{ isLocked = false; update(); } public function enableEvent(_arg1:String):void{ if ((_arg1 in disabledEvents)){ delete disabledEvents[_arg1]; }; } public function press():void{ updateMouseDown = true; _mouseIsDown = true; if (!isLocked){ update(); }; } public function set useNativeEvents(_arg1:Boolean):void{ if (_arg1 == _useNativeEvents){ return; }; _useNativeEvents = _arg1; if (_useNativeEvents){ eventEvent = VirtualMouseEvent; mouseEventEvent = VirtualMouseMouseEvent; } else { eventEvent = Event; mouseEventEvent = MouseEvent; }; } public function set y(_arg1:Number):void{ location.y = _arg1; if (!isLocked){ update(); }; } public function set stage(_arg1:Stage):void{ var _local2:Boolean; if (_stage){ _local2 = true; _stage.removeEventListener(KeyboardEvent.KEY_DOWN, keyHandler); _stage.removeEventListener(KeyboardEvent.KEY_UP, keyHandler); } else { _local2 = false; }; _stage = _arg1; if (_stage){ _stage.addEventListener(KeyboardEvent.KEY_DOWN, keyHandler); _stage.addEventListener(KeyboardEvent.KEY_UP, keyHandler); target = _stage; if (!_local2){ update(); }; }; } } }//package org.papervision3d.utils.virtualmouse
Section 157
//VirtualMouseEvent (org.papervision3d.utils.virtualmouse.VirtualMouseEvent) package org.papervision3d.utils.virtualmouse { import flash.events.*; public class VirtualMouseEvent extends Event implements IVirtualMouseEvent { public function VirtualMouseEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false){ super(_arg1, _arg2, _arg3); } } }//package org.papervision3d.utils.virtualmouse
Section 158
//VirtualMouseMouseEvent (org.papervision3d.utils.virtualmouse.VirtualMouseMouseEvent) package org.papervision3d.utils.virtualmouse { import flash.display.*; import flash.events.*; public class VirtualMouseMouseEvent extends MouseEvent implements IVirtualMouseEvent { public function VirtualMouseMouseEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false, _arg4:Number=NaN, _arg5:Number=NaN, _arg6:InteractiveObject=null, _arg7:Boolean=false, _arg8:Boolean=false, _arg9:Boolean=false, _arg10:Boolean=false, _arg11:int=0){ super(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8, _arg9, _arg10, _arg11); } } }//package org.papervision3d.utils.virtualmouse
Section 159
//InteractiveSceneManager (org.papervision3d.utils.InteractiveSceneManager) package org.papervision3d.utils { import flash.display.*; import flash.geom.*; import flash.events.*; import org.papervision3d.core.geom.renderables.*; import org.papervision3d.core.proto.*; import org.papervision3d.materials.*; import org.papervision3d.core.render.hit.*; import org.papervision3d.objects.*; import com.blitzagency.xray.logger.*; import org.papervision3d.events.*; import org.papervision3d.core.render.*; import org.papervision3d.utils.virtualmouse.*; public class InteractiveSceneManager extends EventDispatcher { public var container:Sprite; public var scene:SceneObject3D; public var currentDisplayObject3D:DisplayObject3D; protected var point:Point; public var camera:CameraObject3D; protected var log:XrayLog; public var currentMaterial:MaterialObject3D; public var debug:Boolean;// = false public var mouse3D:Mouse3D; public var enableOverOut:Boolean;// = true public var virtualMouse:VirtualMouse; public var renderHitData:RenderHitData; public var currentMouseDO3D:DisplayObject3D;// = null public static var MOUSE_IS_DOWN:Boolean = false; public function InteractiveSceneManager(_arg1:SceneObject3D, _arg2:Sprite, _arg3:CameraObject3D=null){ virtualMouse = new VirtualMouse(); mouse3D = new Mouse3D(); enableOverOut = true; currentMouseDO3D = null; debug = false; point = new Point(); log = new XrayLog(); super(); this.scene = _arg1; this.container = _arg2; this.camera = _arg3; init(); } protected function initVirtualMouse():void{ virtualMouse.stage = container.stage; virtualMouse.container = container; } public function init():void{ if (container){ if (container.stage){ initVirtualMouse(); } else { container.addEventListener(Event.ADDED_TO_STAGE, handleAddedToStage); }; }; } public function initListeners():void{ trace("renderer?", (scene.renderer is InteractiveRendererEngine)); if (scene.interactive){ container.addEventListener(MouseEvent.MOUSE_DOWN, handleMousePress); container.addEventListener(MouseEvent.MOUSE_UP, handleMouseRelease); container.addEventListener(MouseEvent.CLICK, handleMouseClick); container.addEventListener(MouseEvent.MOUSE_MOVE, handleMouseMove); if ((scene.renderer is InteractiveRendererEngine)){ InteractiveRendererEngine(scene.renderer).addEventListener(RendererEvent.RENDER_DONE, handleRenderDone); }; }; } protected function handleRenderDone(_arg1:RendererEvent):void{ resolveRenderHitData(); if (renderHitData.hasHit){ currentDisplayObject3D = renderHitData.displayObject3D; currentMaterial = renderHitData.material; manageOverOut(); }; } protected function handleMouseClick(_arg1:MouseEvent):void{ if ((_arg1 is IVirtualMouseEvent)){ return; }; if (renderHitData){ dispatchObjectEvent(InteractiveScene3DEvent.OBJECT_CLICK, currentDisplayObject3D); }; } protected function handleMouseOut(_arg1:DisplayObject3D):void{ var _local2:BitmapData; var _local3:Rectangle; var _local4:Boolean; if (((VirtualMouse) && (renderHitData))){ _local2 = currentMaterial.bitmap; _local3 = new Rectangle(0, 0, _local2.width, _local2.height); _local4 = _local3.contains(renderHitData.u, renderHitData.v); if (!_local4){ virtualMouse.exitContainer(); }; dispatchObjectEvent(InteractiveScene3DEvent.OBJECT_OUT, _arg1); }; } protected function manageOverOut():void{ if (((!(renderHitData.hasHit)) || (!(enableOverOut)))){ return; }; if (((!(currentMouseDO3D)) && (currentDisplayObject3D))){ handleMouseOver(currentDisplayObject3D); }; if (currentDisplayObject3D != currentMouseDO3D){ handleMouseOut(currentMouseDO3D); handleMouseOver(currentDisplayObject3D); currentMouseDO3D = currentDisplayObject3D; }; } protected function dispatchObjectEvent(_arg1:String, _arg2:DisplayObject3D):void{ var _local3:Number; var _local4:Number; var _local5:InteractiveScene3DEvent; if (!renderHitData.hasHit){ return; }; if (debug){ log.debug(_arg1, _arg2.name); }; _local3 = (renderHitData.u) ? renderHitData.u : 0; _local4 = (renderHitData.v) ? renderHitData.v : 0; _local5 = new InteractiveScene3DEvent(_arg1, _arg2, container, (renderHitData.renderable as Triangle3D), _local3, _local4); dispatchEvent(_local5); currentDisplayObject3D.dispatchEvent(_local5); } protected function handleMouseMove(_arg1:MouseEvent):void{ var _local2:MovieMaterial; if ((_arg1 is IVirtualMouseEvent)){ return; }; if (((VirtualMouse) && (renderHitData))){ _local2 = (currentMaterial as MovieMaterial); if (_local2){ virtualMouse.container = (_local2.movie as Sprite); if (virtualMouse.container){ virtualMouse.setLocation(renderHitData.u, renderHitData.v); }; }; if (((Mouse3D.enabled) && (renderHitData.hasHit))){ mouse3D.updatePosition(renderHitData); }; dispatchObjectEvent(InteractiveScene3DEvent.OBJECT_MOVE, currentDisplayObject3D); } else { if (renderHitData.hasHit){ dispatchObjectEvent(InteractiveScene3DEvent.OBJECT_MOVE, currentDisplayObject3D); }; }; } protected function handleMouseOver(_arg1:DisplayObject3D):void{ dispatchObjectEvent(InteractiveScene3DEvent.OBJECT_OVER, _arg1); } protected function resolveRenderHitData():void{ point.x = container.mouseX; point.y = container.mouseY; renderHitData = (InteractiveRendererEngine(scene.renderer).hitTestPoint2D(point) as RenderHitData); } protected function handleMousePress(_arg1:MouseEvent):void{ if ((_arg1 is IVirtualMouseEvent)){ return; }; MOUSE_IS_DOWN = true; if (virtualMouse){ virtualMouse.press(); }; if (renderHitData){ dispatchObjectEvent(InteractiveScene3DEvent.OBJECT_PRESS, currentDisplayObject3D); }; } protected function handleMouseRelease(_arg1:MouseEvent):void{ if ((_arg1 is IVirtualMouseEvent)){ return; }; MOUSE_IS_DOWN = false; if (virtualMouse){ virtualMouse.release(); }; if (renderHitData){ dispatchObjectEvent(InteractiveScene3DEvent.OBJECT_RELEASE, currentDisplayObject3D); }; } protected function handleAddedToStage(_arg1:Event):void{ initVirtualMouse(); initListeners(); } } }//package org.papervision3d.utils
Section 160
//Mouse3D (org.papervision3d.utils.Mouse3D) package org.papervision3d.utils { import org.papervision3d.core.geom.renderables.*; import org.papervision3d.core.*; import org.papervision3d.core.render.hit.*; import org.papervision3d.objects.*; public class Mouse3D extends DisplayObject3D { public static var enabled:Boolean = false; private static var UP:Number3D = new Number3D(0, 1, 0); public function Mouse3D(_arg1:Object=null):void{ } public function updatePosition(_arg1:RenderHitData):void{ var _local2:Triangle3D; var _local3:Number3D; var _local4:Number3D; var _local5:Number3D; var _local6:Matrix3D; var _local7:Number3D; var _local8:Number3D; var _local9:Matrix3D; _local2 = (_arg1.renderable as Triangle3D); _local3 = new Number3D(0, 0, 0); _local4 = new Number3D(_local2.faceNormal.x, _local2.faceNormal.y, _local2.faceNormal.z); _local5 = Number3D.sub(_local4, _local3); _local5.normalize(); if (_local5.modulo > 0.1){ _local7 = Number3D.cross(_local5, UP); _local7.normalize(); _local8 = Number3D.cross(_local5, _local7); _local8.normalize(); _local9 = this.transform; _local9.n11 = _local7.x; _local9.n21 = _local7.y; _local9.n31 = _local7.z; _local9.n12 = -(_local8.x); _local9.n22 = -(_local8.y); _local9.n32 = -(_local8.z); _local9.n13 = _local5.x; _local9.n23 = _local5.y; _local9.n33 = _local5.z; }; _local6 = Matrix3D.IDENTITY; this.transform = Matrix3D.multiply(_local2.instance.world, _local9); x = _arg1.x; y = _arg1.y; z = _arg1.z; } } }//package org.papervision3d.utils
Section 161
//Papervision3D (org.papervision3d.Papervision3D) package org.papervision3d { public class Papervision3D { public static var useDEGREES:Boolean = true; public static var VERBOSE:Boolean = false; public static var AUTHOR:String = "(c) 2006-2007 Copyright by Carlos Ulloa | papervision3d.org | carlos@papervision3d.org"; public static var DATE:String = "20.09.07"; public static var NAME:String = "Papervision3D"; public static var VERSION:String = "Beta 1.9 - PHUNKY"; public static var usePERCENT:Boolean = false; public static function log(_arg1:String):void{ if (Papervision3D.VERBOSE){ trace(_arg1); }; } } }//package org.papervision3d
Section 162
//Line (tracks.Line) package tracks { import flash.geom.*; public class Line { public var p0:Point; public var p1:Point; public function Line(_arg1:Point, _arg2:Point){ p0 = _arg1; p1 = _arg2; } } }//package tracks
Section 163
//Obstacle (tracks.Obstacle) package tracks { public class Obstacle { public var width:Number; public var reaction:String; public var collided:Boolean; public var height:Number; public var classType:String; public var faceAngle:Number; public var x:Number; public var y:Number; public var type:String; public function Obstacle(_arg1:String, _arg2:String, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number, _arg8:String){ type = _arg1; classType = _arg2; x = _arg3; y = _arg4; width = _arg5; height = _arg6; faceAngle = _arg7; reaction = _arg8; collided = false; } } }//package tracks
Section 164
//PhillipIsland (tracks.PhillipIsland) package tracks { import flash.geom.*; public class PhillipIsland { public var track:Track; public function PhillipIsland(){ track = new Track(); track.bitmap = "phillipTrackBitmap"; track.boundary = "phillipTrackBoundary"; track.skybox = "phillipSkybox"; track.mini_x = 0; track.mini_y = 0; track.MAP_WIDTH = 5760; track.MAP_HEIGHT = 5760; track.MINI_MAP_SIZE = 180; track.MINI_MAP_XSCALE = 220; track.MINI_MAP_YSCALE = 185; track.MINI_MAP_Y = 60; track.MINI_MAP_X = 380; track.RATIO_Y = 2; track.RATIO_X = 2; track.START_X = -2743; track.START_Y = -3131; track.START_ANGLE = 297; track.laps = 3; track.wayPoints = [new Waypoint(new Line(new Point(2852, 2487), new Point(2288, 3606))), new Waypoint(new Line(new Point(3901, 3738), new Point(4541, 2744))), new Waypoint(new Line(new Point(5049, 4067), new Point(3997, 4291))), new Waypoint(new Line(new Point(4377, 4970), new Point(5234, 5023))), new Waypoint(new Line(new Point(4804, 5714), new Point(5026, 4687))), new Waypoint(new Line(new Point(5693, 5691), new Point(4515, 4674))), new Waypoint(new Line(new Point(5716, 4796), new Point(4725, 4823))), new Waypoint(new Line(new Point(5606, 4130), new Point(4865, 4186))), new Waypoint(new Line(new Point(5428, 3196), new Point(4707, 3614))), new Waypoint(new Line(new Point(0x0F00, 2320), new Point(5422, 2929))), new Waypoint(new Line(new Point(5694, 2744), new Point(4514, 1884))), new Waypoint(new Line(new Point(4537, 2033), new Point(5320, 679))), new Waypoint(new Line(new Point(4147, 1117), new Point(3567, 1794))), new Waypoint(new Line(new Point(3910, 517), new Point(2808, 960))), new Waypoint(new Line(new Point(2218, 484), new Point(2186, 1994))), new Waypoint(new Line(new Point(1851, 152), new Point(1727, 1008))), new Waypoint(new Line(new Point(940, 658), new Point(1649, 1165))), new Waypoint(new Line(new Point(432, 1428), new Point(2334, 1459))), new Waypoint(new Line(new Point(1232, 2496), new Point(1877, 1382)))]; track.resetPositions = [new Point(2695, 2768), new Point(2800, 2817), new Point(2904, 2867), new Point(3009, 2917), new Point(3113, 2966), new Point(3218, 3016), new Point(3322, 3066), new Point(3427, 3116), new Point(3531, 3165), new Point(3636, 3215), new Point(3740, 3264), new Point(3845, 3314), new Point(3949, 3364), new Point(4054, 3414), new Point(4158, 3463), new Point(4263, 3513), new Point(4371, 3563), new Point(4470, 3621), new Point(4561, 3691), new Point(4641, 3774), new Point(4706, 3869), new Point(4752, 3974), new Point(4786, 4084), new Point(4803, 4197), new Point(4798, 4315), new Point(4776, 4432), new Point(4748, 4546), new Point(4719, 4660), new Point(4685, 4773), new Point(4653, 4886), new Point(4630, 5002), new Point(4614, 5117), new Point(4623, 5231), new Point(4663, 5340), new Point(4733, 5431), new Point(4827, 5498), new Point(4937, 5530), new Point(5053, 5528), new Point(5162, 5492), new Point(5256, 5426), new Point(5331, 5336), new Point(5381, 5232), new Point(5411, 5118), new Point(5422, 5001), new Point(5424, 4885), new Point(5421, 4772), new Point(5418, 4660), new Point(5415, 4549), new Point(5413, 4437), new Point(5410, 4324), new Point(5408, 4211), new Point(5403, 4098), new Point(0x1515, 3989), new Point(5391, 3880), new Point(0x1500, 3768), new Point(5349, 3655), new Point(5311, 3546), new Point(5264, 3439), new Point(5200, 3340), new Point(5125, 3251), new Point(5043, 3169), new Point(4954, 3094), new Point(4861, 3026), new Point(4760, 2961), new Point(4654, 2895), new Point(4551, 2831), new Point(4450, 2769), new Point(4350, 2708), new Point(4254, 2645), new Point(4193, 2551), new Point(4218, 2439), new Point(4319, 2393), new Point(4441, 2409), new Point(4560, 2431), new Point(4675, 2454), new Point(4785, 2486), new Point(4891, 2529), new Point(4993, 2585), new Point(5098, 2631), new Point(5211, 2640), new Point(5319, 2599), new Point(5400, 2519), new Point(5433, 2409), new Point(5408, 2296), new Point(5348, 2197), new Point(5270, 2114), new Point(5191, 2034), new Point(5111, 1955), new Point(5030, 1877), new Point(4945, 1802), new Point(4858, 1728), new Point(4760, 1669), new Point(4652, 1630), new Point(4543, 1591), new Point(4435, 1555), new Point(4329, 1518), new Point(4222, 1474), new Point(4117, 1424), new Point(4014, 1370), new Point(3924, 1295), new Point(3851, 1202), new Point(3793, 1101), new Point(3745, 995), new Point(3704, 885), new Point(3668, 777), new Point(3633, 673), new Point(3588, 567), new Point(3534, 464), new Point(3471, 369), new Point(3392, 287), new Point(3300, 220), new Point(3194, 176), new Point(3079, 162), new Point(2964, 176), new Point(2854, 214), new Point(2754, 272), new Point(2663, 345), new Point(2583, 431), new Point(2511, 524), new Point(2447, 621), new Point(2388, 719), new Point(2332, 820), new Point(2253, 899), new Point(2144, 892), new Point(2086, 793), new Point(2065, 680), new Point(2030, 571), new Point(1966, 477), new Point(1870, 414), new Point(1758, 387), new Point(1642, 398), new Point(1531, 436), new Point(1428, 498), new Point(1337, 579), new Point(1252, 663), new Point(1171, 746), new Point(1095, 829), new Point(1022, 913), new Point(953, 1001), new Point(897, 1099), new Point(855, 1205), new Point(824, 1315), new Point(812, 1429), new Point(821, 1545), new Point(853, 1657), new Point(906, 1763), new Point(977, 1857), new Point(1061, 1940), new Point(1153, 2013), new Point(1251, 2077), new Point(1353, 2133), new Point(1475, 2190), new Point(1600, 2249), new Point(1714, 2303), new Point(1825, 2355), new Point(1934, 2407), new Point(2042, 2458), new Point(2149, 2509), new Point(2255, 2559), new Point(2361, 2609), new Point(2466, 2659), new Point(2571, 2709)]; track.obstacleArray = [new Obstacle("Banner", "obstacleBanner1", 2718, 2778, 100, 100, -1.13302297733047, "none"), new Obstacle("Banner", "obstacleBanner2", 4479, 3627, 100, 100, -0.892187727316318, "none"), new Obstacle("Banner", "obstacleBanner4", 4498, 2796, 100, 100, 2.11870417050733, "none"), new Obstacle("Banner", "obstacleBanner2", 2411, 686, 100, 100, 0.542900301914757, "none"), new Obstacle("Banner", "obstacleBanner3", 4657, 4846, 100, 100, 0.223135082461161, "none"), new Obstacle("Banner", "obstacleBanner4", 4969, 1826, 100, 100, 2.3287689909706, "none"), new Obstacle("Banner", "obstacleBanner3", 1382, 2144, 100, 100, -1.0584528689116, "none"), new Obstacle("Billboard", "obstacleBillboard2", 2232, 2620, 50, 50, -2.70900101665834, "solid"), new Obstacle("Billboard", "obstacleBillboard1", 2417, 2709, 50, 50, -2.70900101665834, "solid"), new Obstacle("Billboard", "obstacleBillboard7", 2886, 2934, 50, 50, -2.70900101665834, "solid"), new Obstacle("Billboard", "obstacleBillboard6", 3071, 3023, 50, 50, -2.70900101665834, "solid"), new Obstacle("Billboard", "obstacleBillboard5", 4644, 3925, 50, 50, -2.02678543179935, "solid"), new Obstacle("Billboard", "obstacleBillboard4", 5383, 3531, 50, 50, 1.20713848415127, "solid"), new Obstacle("Billboard", "obstacleBillboard3", 955, 1695, 50, 50, 1.14188358059327, "solid"), new Obstacle("Billboard", "obstacleBillboard2", 2887, 2778, 50, 50, 0.432591636931457, "solid"), new Obstacle("Billboard", "obstacleBillboard1", 0x0C00, 2867, 50, 50, 0.432591636931457, "solid"), new Obstacle("Billboard", "obstacleBillboard2", 3773, 3201, 50, 50, 0.432591636931457, "solid"), new Obstacle("Billboard", "obstacleBillboard1", 4834, 4466, 50, 50, 1.79218916927093, "solid"), new Obstacle("Billboard", "obstacleBillboard7", 5336, 4366, 50, 50, -1.58025640761908, "solid"), new Obstacle("Billboard", "obstacleBillboard6", 4961, 3196, 50, 50, -2.39413841045547, "solid"), new Obstacle("Billboard", "obstacleBillboard5", 4554, 2499, 50, 50, -2.99441039278547, "solid"), new Obstacle("Billboard", "obstacleBillboard4", 3770, 866, 50, 50, 1.22538886078547, "solid"), new Obstacle("Billboard", "obstacleBillboard3", 1991, 728, 50, 50, -1.75959127858003, "solid"), new Obstacle("Billboard", "obstacleBillboard1", 1555, 2152, 50, 50, 0.445691726333557, "solid"), new Obstacle("Billboard", "obstacleBillboard2", 2362, 2530, 50, 50, 0.432591636931457, "solid"), new Obstacle("Billboard", "obstacleBillboard1", 2547, 2619, 50, 50, 0.432591636931457, "solid"), new Obstacle("Sprite", "obstacleAnimal", 1166, 874, 13, 0, 0, "solid"), new Obstacle("Sprite", "obstacleAnimal", 1675, 2368, 13, 0, 0, "solid"), new Obstacle("Sprite", "obstacleAnimal", 4745, 0x0707, 13, 0, 0, "solid"), new Obstacle("Sprite", "obstacleAnimal", 4563, 2348, 13, 0, 0, "solid"), new Obstacle("Billboard", "obstacleArrowLeft", 4559, 5279, 50, 50, -1.82025063136098, "line"), new Obstacle("Billboard", "obstacleArrowLeft", 4630, 5421, 50, 50, -2.14050986719679, "line"), new Obstacle("Billboard", "obstacleArrowLeft", 5077, 2703, 50, 50, -2.96772232286957, "line"), new Obstacle("Billboard", "obstacleArrowLeft", 5174, 2714, 50, 50, -3.13878514916863, "line"), new Obstacle("Billboard", "obstacleArrowLeft", 3491, 295, 50, 50, 0.812413535811321, "line"), new Obstacle("Billboard", "obstacleArrowLeft", 2067, 468, 50, 50, 0.96221581449606, "line"), new Obstacle("Billboard", "obstacleArrowRight", 4514, 3571, 50, 50, 0.622605251231412, "line"), new Obstacle("Billboard", "obstacleArrowRight", 4570, 3615, 50, 50, 0.69347995732169, "line"), new Obstacle("Billboard", "obstacleArrowRight", 4623, 3663, 50, 50, 0.779899801010871, "line"), new Obstacle("Billboard", "obstacleArrowRight", 4867, 4196, 50, 50, 1.52394040425993, "line"), new Obstacle("Billboard", "obstacleArrowRight", 4119, 2490, 50, 50, -1.44234194740823, "line"), new Obstacle("Billboard", "obstacleArrowRight", 4142, 2412, 50, 50, -1.04873472777779, "line"), new Obstacle("Billboard", "obstacleArrowRight", 2383, 885, 50, 50, 2.1765259251468, "line"), new Obstacle("Billboard", "obstacleArrowRight", 2332, 939, 50, 50, 2.52175202988599, "line"), new Obstacle("Billboard", "obstacleArrowRight", 2262, 972, 50, 50, 2.90672075388854, "line"), new Obstacle("Sprite", "obstacleCone", 2205, 2515, 9, 0, 0, "cone"), new Obstacle("Sprite", "obstacleCone", 4260, 3508, 9, 0, 0, "cone"), new Obstacle("Sprite", "obstacleCone", 4214, 3514, 9, 0, 0, "cone"), new Obstacle("Sprite", "obstacleCone", 4672, 3846, 9, 0, 0, "cone"), new Obstacle("Sprite", "obstacleCone", 4672, 3800, 9, 0, 0, "cone"), new Obstacle("Sprite", "obstacleCone", 4666, 5377, 9, 0, 0, "cone"), new Obstacle("Sprite", "obstacleCone", 4677, 5336, 9, 0, 0, "cone"), new Obstacle("Sprite", "obstacleCone", 4821, 4118, 9, 0, 0, "cone"), new Obstacle("Sprite", "obstacleCone", 5386, 4241, 9, 0, 0, "cone"), new Obstacle("Sprite", "obstacleCone", 5415, 4267, 9, 0, 0, "cone"), new Obstacle("Sprite", "obstacleCone", 4203, 2543, 9, 0, 0, "cone"), new Obstacle("Sprite", "obstacleCone", 4223, 2515, 9, 0, 0, "cone"), new Obstacle("Sprite", "obstacleCone", 5269, 2622, 9, 0, 0, "cone"), new Obstacle("Sprite", "obstacleCone", 5282, 2589, 9, 0, 0, "cone"), new Obstacle("Sprite", "obstacleCone", 4550, 1568, 9, 0, 0, "cone"), new Obstacle("Sprite", "obstacleCone", 4508, 1579, 9, 0, 0, "cone"), new Obstacle("Sprite", "obstacleCone", 4463, 1590, 9, 0, 0, "cone"), new Obstacle("Sprite", "obstacleCone", 3709, 850, 9, 0, 0, "cone"), new Obstacle("Sprite", "obstacleCone", 3466, 342, 9, 0, 0, "cone"), new Obstacle("Sprite", "obstacleCone", 3475, 378, 9, 0, 0, "cone"), new Obstacle("Sprite", "obstacleCone", 2454, 626, 9, 0, 0, "cone"), new Obstacle("Sprite", "obstacleCone", 2042, 567, 9, 0, 0, "cone"), new Obstacle("Sprite", "obstacleCone", 1573, 422, 9, 0, 0, "cone"), new Obstacle("Sprite", "obstacleCone", 1092, 1980, 9, 0, 0, "cone"), new Obstacle("Sprite", "obstacleCone", 1130, 1980, 9, 0, 0, "cone"), new Obstacle("Sprite", "obstacleCone", 1124, 776, 9, 0, 0, "cone"), new Obstacle("Sprite", "obstacleCone", 1168, 773, 9, 0, 0, "cone"), new Obstacle("Sprite", "obstacleCone", 1587, 393, 9, 0, 0, "cone"), new Obstacle("Sprite", "obstacleCone", 3480, 417, 9, 0, 0, "cone"), new Obstacle("Sprite", "obstacleOil", 1051, 900, 20, 0, 0, "oil"), new Obstacle("Sprite", "obstacleOil", 4099, 1430, 20, 0, 0, "oil"), new Obstacle("Sprite", "obstacleOil", 5399, 4023, 20, 0, 0, "oil"), new Obstacle("Sprite", "obstacleOil", 4755, 3984, 20, 0, 0, "oil"), new Obstacle("Sprite", "obstacleOil", 3198, 3010, 20, 0, 0, "oil"), new Obstacle("Sprite", "obstacleRock", 2802, 2738, 9, 0, 0, "bounce"), new Obstacle("Sprite", "obstacleRock", 3011, 2838, 9, 0, 0, "bounce"), new Obstacle("Sprite", "obstacleRock", 3581, 3279, 9, 0, 0, "bounce"), new Obstacle("Sprite", "obstacleRock", 3780, 3386, 9, 0, 0, "bounce"), new Obstacle("Sprite", "obstacleRock", 4237, 3400, 9, 0, 0, "bounce"), new Obstacle("Sprite", "obstacleRock", 1454, 377, 9, 0, 0, "bounce"), new Obstacle("Sprite", "obstacleRock", 1962, 668, 9, 0, 0, "bounce"), new Obstacle("Sprite", "obstacleRock", 1095, 963, 9, 0, 0, "bounce"), new Obstacle("Sprite", "obstacleRock", 906, 1548, 9, 0, 0, "bounce"), new Obstacle("Sprite", "obstacleRock", 831, 1804, 9, 0, 0, "bounce"), new Obstacle("Sprite", "obstacleRock", 1119, 2109, 9, 0, 0, "bounce"), new Obstacle("Sprite", "obstacleRock", 1578, 2321, 9, 0, 0, "bounce"), new Obstacle("Sprite", "obstacleRock", 1973, 2508, 9, 0, 0, "bounce"), new Obstacle("Sprite", "obstacleRock", 2367, 2690, 9, 0, 0, "bounce"), new Obstacle("Sprite", "obstacleRock", 2613, 2645, 9, 0, 0, "bounce"), new Obstacle("Sprite", "obstacleRock", 3093, 3067, 9, 0, 0, "bounce"), new Obstacle("Sprite", "obstacleRock", 4206, 3566, 9, 0, 0, "bounce"), new Obstacle("Sprite", "obstacleRock", 4579, 3839, 9, 0, 0, "bounce"), new Obstacle("Sprite", "obstacleRock", 4779, 3843, 9, 0, 0, "bounce"), new Obstacle("Sprite", "obstacleRock", 4718, 4337, 9, 0, 0, "bounce"), new Obstacle("Sprite", "obstacleRock", 4767, 4786, 9, 0, 0, "bounce"), new Obstacle("Sprite", "obstacleRock", 4577, 5352, 9, 0, 0, "bounce"), new Obstacle("Sprite", "obstacleRock", 4893, 5438, 9, 0, 0, "bounce"), new Obstacle("Sprite", "obstacleRock", 5051, 5596, 9, 0, 0, "bounce"), new Obstacle("Sprite", "obstacleRock", 5309, 5163, 9, 0, 0, "bounce"), new Obstacle("Sprite", "obstacleRock", 5349, 5013, 9, 0, 0, "bounce"), new Obstacle("Sprite", "obstacleRock", 5481, 4457, 9, 0, 0, "bounce"), new Obstacle("Sprite", "obstacleRock", 5303, 3796, 9, 0, 0, "bounce"), new Obstacle("Sprite", "obstacleRock", 5067, 3304, 9, 0, 0, "bounce"), new Obstacle("Sprite", "obstacleRock", 4718, 2843, 9, 0, 0, "bounce"), new Obstacle("Sprite", "obstacleRock", 4116, 2611, 9, 0, 0, "bounce"), new Obstacle("Sprite", "obstacleRock", 4430, 2477, 9, 0, 0, "bounce"), new Obstacle("Sprite", "obstacleRock", 5215, 2554, 9, 0, 0, "bounce"), new Obstacle("Sprite", "obstacleRock", 4813, 1596, 9, 0, 0, "bounce"), new Obstacle("Sprite", "obstacleRock", 3933, 1416, 9, 0, 0, "bounce"), new Obstacle("Sprite", "obstacleRock", 3566, 377, 9, 0, 0, "bounce"), new Obstacle("Sprite", "obstacleRock", 3200, 85, 9, 0, 0, "bounce"), new Obstacle("Sprite", "obstacleRock", 2582, 259, 9, 0, 0, "bounce"), new Obstacle("Warning", "obstacleSign", 1965, 2389, 35, 70, 2.03566387824146, "solid"), new Obstacle("Warning", "obstacleSign", 2087, 2523, 35, 70, 2.03566387824146, "solid"), new Obstacle("Warning", "obstacleSign", 4014, 3364, 35, 70, 2.03566387824146, "solid"), new Obstacle("Warning", "obstacleSign", 0x1515, 4727, 35, 70, 0.00527945054497308, "solid"), new Obstacle("Warning", "obstacleSign", 5442, 4497, 35, 70, 0.00527945054497308, "solid"), new Obstacle("Warning", "obstacleSign", 4702, 2491, 35, 70, 1.87828969994541, "solid"), new Obstacle("Warning", "obstacleSign", 4867, 2486, 35, 70, 1.89207528701209, "solid"), new Obstacle("Warning", "obstacleSign", 3621, 743, 35, 70, -0.357217786495598, "solid"), new Obstacle("Warning", "obstacleSign", 2569, 388, 35, 70, 0.675958487877841, "solid"), new Obstacle("Sprite", "obstacleTree1", 2120, 511, 12, 0, 0, "solid"), new Obstacle("Sprite", "obstacleTree1", 3406, 434, 12, 0, 0, "solid"), new Obstacle("Sprite", "obstacleTree1", 1034, 1133, 12, 0, 0, "solid"), new Obstacle("Sprite", "obstacleTree1", 2143, 985, 12, 0, 0, "solid"), new Obstacle("Sprite", "obstacleTree1", 1373, 680, 12, 0, 0, "solid"), new Obstacle("Sprite", "obstacleTree1", 1930, 584, 12, 0, 0, "solid"), new Obstacle("Sprite", "obstacleTree1", 1033, 1739, 12, 0, 0, "solid"), new Obstacle("Sprite", "obstacleTree1", 2562, 2556, 12, 0, 0, "solid"), new Obstacle("Sprite", "obstacleTree1", 4009, 3258, 12, 0, 0, "solid"), new Obstacle("Sprite", "obstacleTree1", 4835, 4045, 12, 0, 0, "solid"), new Obstacle("Sprite", "obstacleTree1", 4663, 4413, 12, 0, 0, "solid"), new Obstacle("Sprite", "obstacleTree1", 4805, 4691, 12, 0, 0, "solid"), new Obstacle("Sprite", "obstacleTree1", 4810, 5327, 12, 0, 0, "solid"), new Obstacle("Sprite", "obstacleTree1", 5190, 5348, 12, 0, 0, "solid"), new Obstacle("Sprite", "obstacleTree1", 5133, 3038, 12, 0, 0, "solid"), new Obstacle("Sprite", "obstacleTree1", 0x1414, 2539, 12, 0, 0, "solid"), new Obstacle("Sprite", "obstacleTree1", 5297, 2451, 12, 0, 0, "solid"), new Obstacle("Sprite", "obstacleTree1", 4713, 1782, 12, 0, 0, "solid"), new Obstacle("Sprite", "obstacleTree1", 5181, 1898, 12, 0, 0, "solid"), new Obstacle("Sprite", "obstacleTree1", 4061, 1267, 12, 0, 0, "solid"), new Obstacle("Sprite", "obstacleTree1", 3726, 641, 12, 0, 0, "solid"), new Obstacle("Sprite", "obstacleTree2", 1478, 308, 12, 0, 0, "solid"), new Obstacle("Sprite", "obstacleTree2", 1247, 830, 12, 0, 0, "solid"), new Obstacle("Sprite", "obstacleTree2", 1306, 1981, 12, 0, 0, "solid"), new Obstacle("Sprite", "obstacleTree2", 1751, 2223, 12, 0, 0, "solid"), new Obstacle("Sprite", "obstacleTree2", 2491, 2765, 12, 0, 0, "solid"), new Obstacle("Sprite", "obstacleTree2", 3624, 3093, 12, 0, 0, "solid"), new Obstacle("Sprite", "obstacleTree2", 4296, 3620, 12, 0, 0, "solid"), new Obstacle("Sprite", "obstacleTree2", 4830, 4585, 12, 0, 0, "solid"), new Obstacle("Sprite", "obstacleTree2", 4756, 4857, 12, 0, 0, "solid"), new Obstacle("Sprite", "obstacleTree2", 4395, 5189, 12, 0, 0, "solid"), new Obstacle("Sprite", "obstacleTree2", 5241, 3185, 12, 0, 0, "solid"), new Obstacle("Sprite", "obstacleTree2", 4370, 2546, 12, 0, 0, "solid"), new Obstacle("Sprite", "obstacleTree2", 5014, 2010, 12, 0, 0, "solid"), new Obstacle("Sprite", "obstacleTree2", 4782, 1827, 12, 0, 0, "solid"), new Obstacle("Sprite", "obstacleTree2", 5133, 1810, 12, 0, 0, "solid"), new Obstacle("Sprite", "obstacleTree2", 3750, 1187, 12, 0, 0, "solid"), new Obstacle("Sprite", "obstacleTree2", 3819, 971, 12, 0, 0, "solid"), new Obstacle("Sprite", "obstacleTree2", 3471, 185, 12, 0, 0, "solid"), new Obstacle("Sprite", "obstacleTree2", 2955, 280, 12, 0, 0, "solid"), new Obstacle("Sprite", "obstacleTree2", 2695, 67, 12, 0, 0, "solid"), new Obstacle("Sprite", "obstacleTree2", 2539, 669, 12, 0, 0, "solid")]; } } }//package tracks
Section 165
//Shanghai (tracks.Shanghai) package tracks { import flash.geom.*; public class Shanghai { public var track:Track; public function Shanghai(){ track = new Track(); track.bitmap = "shanghaiTrackBitmap"; track.boundary = "shanghaiTrackBoundary"; track.skybox = "shanghaiSkybox"; track.mini_x = 0; track.mini_y = 0; track.MAP_WIDTH = 5760; track.MAP_HEIGHT = 5760; track.MINI_MAP_SIZE = 180; track.MINI_MAP_XSCALE = 200; track.MINI_MAP_YSCALE = 190; track.MINI_MAP_Y = 60; track.MINI_MAP_X = 380; track.RATIO_Y = 2; track.RATIO_X = 2; track.START_X = -2299; track.START_Y = -1307; track.START_ANGLE = 15; track.laps = 3; track.wayPoints = [new Waypoint(new Line(new Point(4114, 2265), new Point(5289, 2635))), new Waypoint(new Line(new Point(4310, 3851), new Point(3244, 3711))), new Waypoint(new Line(new Point(5018, 4553), new Point(4298, 4971))), new Waypoint(new Line(new Point(5693, 5691), new Point(4515, 4674))), new Waypoint(new Line(new Point(4698, 5674), new Point(4920, 4647))), new Waypoint(new Line(new Point(3990, 5180), new Point(4462, 4464))), new Waypoint(new Line(new Point(3083, 4585), new Point(3518, 3909))), new Waypoint(new Line(new Point(1840, 3730), new Point(2176, 3149))), new Waypoint(new Line(new Point(74, 1982), new Point(741, 2286))), new Waypoint(new Line(new Point(1236, 2319), new Point(360, 2390))), new Waypoint(new Line(new Point(1565, 3108), new Point(1907, 2611))), new Waypoint(new Line(new Point(2812, 3241), new Point(3391, 3655))), new Waypoint(new Line(new Point(2495, 2406), new Point(1533, 2496))), new Waypoint(new Line(new Point(3526, 1581), new Point(2636, 1616))), new Waypoint(new Line(new Point(2537, 826), new Point(2370, 1463))), new Waypoint(new Line(new Point(1899, 418), new Point(554, 592))), new Waypoint(new Line(new Point(2559, 466), new Point(2886, -333))), new Waypoint(new Line(new Point(4576, 1096), new Point(3835, 1153))), new Waypoint(new Line(new Point(4140, 611), new Point(3014, 163))), new Waypoint(new Line(new Point(4987, 353), new Point(4114, 821)))]; track.resetPositions = [new Point(4435, 2358), new Point(4391, 2514), new Point(4348, 2666), new Point(4305, 2818), new Point(4263, 2970), new Point(4221, 3122), new Point(4179, 3274), new Point(4138, 3428), new Point(4098, 3581), new Point(4060, 3735), new Point(4032, 3893), new Point(4036, 4056), new Point(4109, 4202), new Point(4242, 4298), new Point(4374, 4385), new Point(4504, 4472), new Point(4635, 4558), new Point(4765, 4645), new Point(4895, 4732), new Point(5025, 4818), new Point(5154, 4910), new Point(5265, 5036), new Point(5313, 5190), new Point(5317, 5349), new Point(5222, 5473), new Point(5055, 5455), new Point(4906, 5373), new Point(4764, 5287), new Point(4621, 5202), new Point(4479, 5116), new Point(4336, 5030), new Point(4194, 4944), new Point(4051, 4859), new Point(3909, 4773), new Point(3766, 4687), new Point(3624, 4601), new Point(3481, 4515), new Point(3339, 4430), new Point(3196, 4344), new Point(3054, 4258), new Point(2911, 4172), new Point(2769, 4087), new Point(2627, 4001), new Point(2484, 3915), new Point(2342, 3829), new Point(2199, 3744), new Point(2057, 3658), new Point(1914, 3572), new Point(1772, 3486), new Point(1629, 3400), new Point(1487, 3315), new Point(1344, 3229), new Point(1202, 3143), new Point(1059, 3057), new Point(917, 2972), new Point(774, 2886), new Point(631, 2803), new Point(493, 2714), new Point(372, 2604), new Point(280, 2468), new Point(237, 2309), new Point(253, 2146), new Point(302, 1989), new Point(392, 1851), new Point(522, 1751), new Point(683, 1709), new Point(851, 1726), new Point(1003, 1784), new Point(1114, 1902), new Point(1126, 2067), new Point(1067, 2221), new Point(1021, 2377), new Point(1077, 2531), new Point(1202, 2651), new Point(1348, 2756), new Point(1496, 2853), new Point(1642, 2944), new Point(1787, 3033), new Point(1932, 3119), new Point(2076, 3204), new Point(2216, 3290), new Point(2356, 3375), new Point(2501, 3451), new Point(2654, 3504), new Point(2813, 3493), new Point(2917, 3368), new Point(2984, 3221), new Point(3013, 3064), new Point(2925, 2930), new Point(2765, 2874), new Point(2599, 2833), new Point(2441, 2781), new Point(2325, 2666), new Point(2280, 2509), new Point(2266, 2348), new Point(2299, 2190), new Point(2416, 2076), new Point(2582, 2030), new Point(2749, 2011), new Point(2911, 1989), new Point(3064, 1943), new Point(3184, 1832), new Point(3230, 1668), new Point(3225, 1498), new Point(3191, 1336), new Point(3100, 1197), new Point(2963, 1100), new Point(2806, 1039), new Point(2641, 999), new Point(2475, 972), new Point(2307, 949), new Point(2139, 927), new Point(1978, 896), new Point(1840, 818), new Point(1762, 676), new Point(1696, 533), new Point(1648, 383), new Point(1645, 224), new Point(1759, 112), new Point(1927, 101), new Point(2094, 128), new Point(2252, 172), new Point(2406, 216), new Point(2562, 266), new Point(2712, 336), new Point(2846, 433), new Point(2967, 544), new Point(3083, 655), new Point(3198, 766), new Point(3313, 877), new Point(3428, 989), new Point(3542, 1101), new Point(3665, 1213), new Point(3799, 1312), new Point(3942, 1393), new Point(4103, 1422), new Point(4260, 1363), new Point(4370, 1246), new Point(4378, 1079), new Point(4287, 945), new Point(4125, 902), new Point(3960, 903), new Point(3815, 834), new Point(3764, 676), new Point(3797, 515), new Point(3908, 390), new Point(4054, 309), new Point(4214, 263), new Point(4380, 254), new Point(4541, 288), new Point(4686, 368), new Point(4802, 487), new Point(4877, 632), new Point(4874, 805), new Point(4822, 993), new Point(4771, 1174), new Point(4723, 1345), new Point(4676, 1512), new Point(4629, 1676), new Point(4583, 1839), new Point(4537, 2001), new Point(4491, 2162)]; track.obstacleArray = [new Obstacle("Banner", "obstacleBanner1", 4443, 2347, 100, 100, 0.275990574299855, "none"), new Obstacle("Banner", "obstacleBanner2", 4985, 4794, 100, 100, -0.975222693260007, "none"), new Obstacle("Banner", "obstacleBanner2", 4191, 3241, 100, 100, 0.24116947673096, "none"), new Obstacle("Banner", "obstacleBanner4", 1772, 692, 100, 100, 2.73477988337808, "none"), new Obstacle("Banner", "obstacleBanner2", 444, 2675, 100, 100, 2.25900136094547, "none"), new Obstacle("Banner", "obstacleBanner2", 1489, 2855, 100, 100, -1.02288848308246, "none"), new Obstacle("Banner", "obstacleBanner4", 3400, 959, 100, 100, -0.782338457621056, "none"), new Obstacle("Banner", "obstacleBanner3", 3902, 4772, 100, 100, 2.09590218525407, "none"), new Obstacle("Banner", "obstacleBanner3", 4808, 1062, 100, 100, 0.276527201259506, "none"), new Obstacle("Banner", "obstacleBanner4", 964, 1765, 100, 100, -1.0584528689116, "none"), new Obstacle("Banner", "obstacleBanner3", 2894, 1067, 100, 100, 1.96037977633434, "none"), new Obstacle("Billboard", "obstacleBillboard1", 4478, 2484, 50, 50, 1.83159436602418, "solid"), new Obstacle("Billboard", "obstacleBillboard2", 4148, 3703, 50, 50, 1.78787165251169, "solid"), new Obstacle("Billboard", "obstacleBillboard8", 4923, 4656, 50, 50, 0.558961826449025, "solid"), new Obstacle("Billboard", "obstacleBillboard4", 4156, 4836, 50, 50, 0.558961826449025, "solid"), new Obstacle("Billboard", "obstacleBillboard5", 4242, 5061, 50, 50, -2.6264022765012, "solid"), new Obstacle("Billboard", "obstacleBillboard6", 3044, 4170, 50, 50, 0.558961826449025, "solid"), new Obstacle("Billboard", "obstacleBillboard7", 2893, 4249, 50, 50, -2.6264022765012, "solid"), new Obstacle("Billboard", "obstacleBillboard1", 2168, 3644, 50, 50, 0.558961826449025, "solid"), new Obstacle("Billboard", "obstacleBillboard2", 2086, 3765, 50, 50, -2.6264022765012, "solid"), new Obstacle("Billboard", "obstacleBillboard8", 1566, 3279, 50, 50, 0.558961826449025, "solid"), new Obstacle("Billboard", "obstacleBillboard4", 1041, 1715, 50, 50, 0.54228484538684, "solid"), new Obstacle("Billboard", "obstacleBillboard5", 1155, 2223, 50, 50, 1.99458621632364, "solid"), new Obstacle("Billboard", "obstacleBillboard6", 1852, 3158, 50, 50, -2.63452758098703, "solid"), new Obstacle("Billboard", "obstacleBillboard1", 2286, 3421, 50, 50, -2.63452758098703, "solid"), new Obstacle("Billboard", "obstacleBillboard2", 2631, 2767, 50, 50, 0.231333091244752, "solid"), new Obstacle("Billboard", "obstacleBillboard1", 2418, 2165, 50, 50, 2.50583218552172, "solid"), new Obstacle("Billboard", "obstacleBillboard2", 3031, 1238, 50, 50, -2.30198691146822, "solid"), new Obstacle("Billboard", "obstacleBillboard1", 2702, 932, 50, 50, 0.253233596469019, "solid"), new Obstacle("Billboard", "obstacleBillboard2", 1821, 619, 50, 50, 1.12347820798363, "solid"), new Obstacle("Billboard", "obstacleBillboard3", 2248, 90, 50, 50, 0.271266392842163, "solid"), new Obstacle("Billboard", "obstacleBillboard4", 3405, 861, 50, 50, 0.792325045392744, "solid"), new Obstacle("Billboard", "obstacleBillboard5", 3105, 776, 50, 50, -2.34926760819705, "solid"), new Obstacle("Billboard", "obstacleBillboard6", 4226, 1294, 50, 50, -0.490176902866131, "solid"), new Obstacle("Billboard", "obstacleBillboard7", 4070, 384, 50, 50, 2.74835854282807, "solid"), new Obstacle("Billboard", "obstacleBillboard1", 4785, 1411, 50, 50, 1.83525141883307, "solid"), new Obstacle("Billboard", "obstacleBillboard2", 4621, 1440, 50, 50, -1.30634123475672, "solid"), new Obstacle("Billboard", "obstacleBillboard1", 4455, 2028, 50, 50, -1.30634123475672, "solid"), new Obstacle("Billboard", "obstacleArrowRight", 1205, 1939, 50, 50, 1.35379370537586, "line"), new Obstacle("Billboard", "obstacleArrowRight", 2288, 2743, 50, 50, -2.22047820314525, "line"), new Obstacle("Billboard", "obstacleArrowRight", 2308, 2055, 50, 50, -0.689523565206269, "line"), new Obstacle("Billboard", "obstacleArrowRight", 1816, 895, 50, 50, -2.42765056434859, "line"), new Obstacle("Billboard", "obstacleArrowRight", 1565, 229, 50, 50, -1.25429161546388, "line"), new Obstacle("Billboard", "obstacleArrowRight", 1640, 93, 50, 50, -0.658703867175218, "line"), new Obstacle("Billboard", "obstacleArrowRight", 3826, 934, 50, 50, -2.55371289244414, "line"), new Obstacle("Billboard", "obstacleArrowRight", 3755, 448, 50, 50, -0.987696673489829, "line"), new Obstacle("Billboard", "obstacleArrowRight", 4648, 261, 50, 50, 0.522474388986067, "line"), new Obstacle("Billboard", "obstacleArrowRight", 4525, 213, 50, 50, 0.317482624083289, "line"), new Obstacle("Billboard", "obstacleArrowRight", 4752, 329, 50, 50, 0.680593453439015, "line"), new Obstacle("Billboard", "obstacleArrowRight", 461, 1701, 50, 50, -0.470763257467781, "line"), new Obstacle("Billboard", "obstacleArrowRight", 5365, 5450, 50, 50, 2.00572462126679, "line"), new Obstacle("Billboard", "obstacleArrowRight", 183, 2405, 50, 50, -1.82371513762307, "line"), new Obstacle("Billboard", "obstacleArrowLeft", 2666, 3577, 50, 50, -2.94353975490722, "line"), new Obstacle("Billboard", "obstacleArrowLeft", 2766, 3579, 50, 50, 3.03755386876087, "line"), new Obstacle("Billboard", "obstacleArrowLeft", 2984, 2882, 50, 50, 0.596482836731042, "line"), new Obstacle("Billboard", "obstacleArrowLeft", 3045, 2937, 50, 50, 0.893993350535391, "line"), new Obstacle("Billboard", "obstacleArrowLeft", 3066, 2019, 50, 50, 2.78735121592847, "line"), new Obstacle("Billboard", "obstacleArrowLeft", 4168, 1475, 50, 50, 2.9070238216206, "line"), new Obstacle("Billboard", "obstacleArrowLeft", 4439, 0x0404, 50, 50, 1.2662303003146, "line"), new Obstacle("Billboard", "obstacleArrowLeft", 3141, 1140, 50, 50, 0.774605170447684, "line"), new Obstacle("Billboard", "obstacleArrowLeft", 974, 2502, 50, 50, -2.05949916999767, "line"), new Obstacle("Sprite", "obstacleCone", 2255, 2515, 9, 0, 0, "cone"), new Obstacle("Sprite", "obstacleCone", 4138, 3572, 9, 0, 0, "cone"), new Obstacle("Sprite", "obstacleCone", 4098, 3596, 9, 0, 0, "cone"), new Obstacle("Sprite", "obstacleCone", 4118, 4187, 9, 0, 0, "cone"), new Obstacle("Sprite", "obstacleCone", 4686, 5237, 9, 0, 0, "cone"), new Obstacle("Sprite", "obstacleCone", 4697, 5196, 9, 0, 0, "cone"), new Obstacle("Sprite", "obstacleCone", 4248, 4330, 9, 0, 0, "cone"), new Obstacle("Sprite", "obstacleCone", 5220, 4928, 9, 0, 0, "cone"), new Obstacle("Sprite", "obstacleCone", 5211, 4962, 9, 0, 0, "cone"), new Obstacle("Sprite", "obstacleCone", 4372, 2572, 9, 0, 0, "cone"), new Obstacle("Sprite", "obstacleCone", 0x1100, 2536, 9, 0, 0, "cone"), new Obstacle("Sprite", "obstacleCone", 4402, 1300, 9, 0, 0, "cone"), new Obstacle("Sprite", "obstacleCone", 4360, 1311, 9, 0, 0, "cone"), new Obstacle("Sprite", "obstacleCone", 4315, 1322, 9, 0, 0, "cone"), new Obstacle("Sprite", "obstacleCone", 3818, 800, 9, 0, 0, "cone"), new Obstacle("Sprite", "obstacleCone", 3976, 342, 9, 0, 0, "cone"), new Obstacle("Sprite", "obstacleCone", 3960, 381, 9, 0, 0, "cone"), new Obstacle("Sprite", "obstacleCone", 2454, 966, 9, 0, 0, "cone"), new Obstacle("Sprite", "obstacleCone", 2042, 907, 9, 0, 0, "cone"), new Obstacle("Sprite", "obstacleCone", 1613, 422, 9, 0, 0, "cone"), new Obstacle("Sprite", "obstacleCone", 1092, 1980, 9, 0, 0, "cone"), new Obstacle("Sprite", "obstacleCone", 1130, 1980, 9, 0, 0, "cone"), new Obstacle("Sprite", "obstacleCone", 296, 1930, 9, 0, 0, "cone"), new Obstacle("Sprite", "obstacleCone", 340, 1927, 9, 0, 0, "cone"), new Obstacle("Sprite", "obstacleCone", 1627, 393, 9, 0, 0, "cone"), new Obstacle("Sprite", "obstacleCone", 3945, 422, 9, 0, 0, "cone"), new Obstacle("Sprite", "obstacleOil", 1298, 2720, 20, 0, 0, "oil"), new Obstacle("Sprite", "obstacleOil", 4576, 1856, 20, 0, 0, "oil"), new Obstacle("Sprite", "obstacleOil", 4199, 4255, 20, 0, 0, "oil"), new Obstacle("Sprite", "obstacleOil", 4563, 5167, 20, 0, 0, "oil"), new Obstacle("Sprite", "obstacleOil", 2410, 3871, 20, 0, 0, "oil"), new Obstacle("Sprite", "obstacleOil", 1730, 613, 20, 0, 0, "oil"), new Obstacle("Sprite", "obstacleRock", 2384, 2832, 9, 0, 0, "bounce"), new Obstacle("Sprite", "obstacleRock", 2907, 2858, 9, 0, 0, "bounce"), new Obstacle("Sprite", "obstacleRock", 2942, 3386, 9, 0, 0, "bounce"), new Obstacle("Sprite", "obstacleRock", 3044, 3229, 9, 0, 0, "bounce"), new Obstacle("Sprite", "obstacleRock", 4195, 3366, 9, 0, 0, "bounce"), new Obstacle("Sprite", "obstacleRock", 1625, 568, 9, 0, 0, "bounce"), new Obstacle("Sprite", "obstacleRock", 1861, 696, 9, 0, 0, "bounce"), new Obstacle("Sprite", "obstacleRock", 500, 1790, 9, 0, 0, "bounce"), new Obstacle("Sprite", "obstacleRock", 1186, 2090, 9, 0, 0, "bounce"), new Obstacle("Sprite", "obstacleRock", 1844, 3030, 9, 0, 0, "bounce"), new Obstacle("Sprite", "obstacleRock", 2335, 2321, 9, 0, 0, "bounce"), new Obstacle("Sprite", "obstacleRock", 2360, 2690, 9, 0, 0, "bounce"), new Obstacle("Sprite", "obstacleRock", 1605, 2847, 9, 0, 0, "bounce"), new Obstacle("Sprite", "obstacleRock", 3086, 3067, 9, 0, 0, "bounce"), new Obstacle("Sprite", "obstacleRock", 4090, 0x0D00, 9, 0, 0, "bounce"), new Obstacle("Sprite", "obstacleRock", 4101, 3962, 9, 0, 0, "bounce"), new Obstacle("Sprite", "obstacleRock", 4027, 3656, 9, 0, 0, "bounce"), new Obstacle("Sprite", "obstacleRock", 4502, 4380, 9, 0, 0, "bounce"), new Obstacle("Sprite", "obstacleRock", 4841, 4782, 9, 0, 0, "bounce"), new Obstacle("Sprite", "obstacleRock", 4620, 5247, 9, 0, 0, "bounce"), new Obstacle("Sprite", "obstacleRock", 4945, 5478, 9, 0, 0, "bounce"), new Obstacle("Sprite", "obstacleRock", 5229, 5410, 9, 0, 0, "bounce"), new Obstacle("Sprite", "obstacleRock", 5342, 5151, 9, 0, 0, "bounce"), new Obstacle("Sprite", "obstacleRock", 4329, 1064, 9, 0, 0, "bounce"), new Obstacle("Sprite", "obstacleRock", 4227, 2782, 9, 0, 0, "bounce"), new Obstacle("Sprite", "obstacleRock", 4557, 2158, 9, 0, 0, "bounce"), new Obstacle("Sprite", "obstacleRock", 3926, 1416, 9, 0, 0, "bounce"), new Obstacle("Sprite", "obstacleRock", 3838, 343, 9, 0, 0, "bounce"), new Obstacle("Sprite", "obstacleRock", 2924, 403, 9, 0, 0, "bounce"), new Obstacle("Sprite", "obstacleRock", 2575, 259, 9, 0, 0, "bounce"), new Obstacle("Sprite", "obstacleRock", 1190, 2701, 9, 0, 0, "bounce"), new Obstacle("Warning", "obstacleSign", 4382, 5039, 35, 70, 2.09277776466319, "solid"), new Obstacle("Warning", "obstacleSign", 1928, 3558, 35, 70, 2.09277776466319, "solid"), new Obstacle("Warning", "obstacleSign", 1614, 3420, 35, 70, 2.09277776466319, "solid"), new Obstacle("Warning", "obstacleSign", 1331, 3200, 35, 70, 2.09277776466319, "solid"), new Obstacle("Warning", "obstacleSign", 2363, 222, 35, 70, 1.8518085576462, "solid"), new Obstacle("Warning", "obstacleSign", 3564, 1160, 35, 70, 2.35101224502716, "solid"), new Obstacle("Sprite", "obstacleTree3", 5202, 5354, 12, 0, 0, "solid"), new Obstacle("Sprite", "obstacleTree3", 4429, 4569, 12, 0, 0, "solid"), new Obstacle("Sprite", "obstacleTree3", 3539, 4713, 12, 0, 0, "solid"), new Obstacle("Sprite", "obstacleTree3", 2845, 3980, 12, 0, 0, "solid"), new Obstacle("Sprite", "obstacleTree3", 1911, 3239, 12, 0, 0, "solid"), new Obstacle("Sprite", "obstacleTree3", 1061, 1633, 12, 0, 0, "solid"), new Obstacle("Sprite", "obstacleTree3", 376, 2305, 12, 0, 0, "solid"), new Obstacle("Sprite", "obstacleTree3", 1398, 2605, 12, 0, 0, "solid"), new Obstacle("Sprite", "obstacleTree3", 1506, 3503, 12, 0, 0, "solid"), new Obstacle("Sprite", "obstacleTree3", 2422, 2356, 12, 0, 0, "solid"), new Obstacle("Sprite", "obstacleTree3", 601, 1841, 12, 0, 0, "solid"), new Obstacle("Sprite", "obstacleTree3", 5187, 5175, 12, 0, 0, "solid"), new Obstacle("Sprite", "obstacleTree3", 4229, 2547, 12, 0, 0, "solid"), new Obstacle("Sprite", "obstacleTree3", 4710, 1035, 12, 0, 0, "solid"), new Obstacle("Sprite", "obstacleTree3", 4526, 450, 12, 0, 0, "solid"), new Obstacle("Sprite", "obstacleTree3", 3750, 1129, 12, 0, 0, "solid"), new Obstacle("Sprite", "obstacleTree3", 2543, 144, 12, 0, 0, "solid"), new Obstacle("Sprite", "obstacleTree3", 2877, 1228, 12, 0, 0, "solid"), new Obstacle("Sprite", "obstacleTree4", 1995, 781, 12, 0, 0, "solid"), new Obstacle("Sprite", "obstacleTree4", 932, 1952, 12, 0, 0, "solid"), new Obstacle("Sprite", "obstacleTree4", 2646, 2698, 12, 0, 0, "solid"), new Obstacle("Sprite", "obstacleTree4", 2939, 1848, 12, 0, 0, "solid"), new Obstacle("Sprite", "obstacleTree4", 1020, 2868, 12, 0, 0, "solid"), new Obstacle("Sprite", "obstacleTree4", 4252, 3531, 12, 0, 0, "solid"), new Obstacle("Sprite", "obstacleTree4", 5152, 4733, 12, 0, 0, "solid"), new Obstacle("Sprite", "obstacleTree4", 4862, 4846, 12, 0, 0, "solid"), new Obstacle("Sprite", "obstacleTree4", 4366, 5189, 12, 0, 0, "solid"), new Obstacle("Sprite", "obstacleTree4", 4440, 2866, 12, 0, 0, "solid"), new Obstacle("Sprite", "obstacleTree4", 4537, 2449, 12, 0, 0, "solid"), new Obstacle("Sprite", "obstacleTree4", 4749, 1848, 12, 0, 0, "solid"), new Obstacle("Sprite", "obstacleTree4", 4223, 1165, 12, 0, 0, "solid"), new Obstacle("Sprite", "obstacleTree4", 3641, 736, 12, 0, 0, "solid"), new Obstacle("Sprite", "obstacleTree4", 4052, 139, 12, 0, 0, "solid"), new Obstacle("Sprite", "obstacleTree4", 2883, 271, 12, 0, 0, "solid"), new Obstacle("Sprite", "obstacleTree4", 3210, 579, 12, 0, 0, "solid"), new Obstacle("Sprite", "obstacleTree4", 2851, 603, 12, 0, 0, "solid"), new Obstacle("Sprite", "obstacleTree4", 2214, 3876, 12, 0, 0, "solid"), new Obstacle("Sprite", "obstacleTree4", 3333, 4260, 12, 0, 0, "solid"), new Obstacle("Sprite", "obstacleTree4", 4044, 4293, 12, 0, 0, "solid"), new Obstacle("Sprite", "obstacleTree4", 4723, 619, 12, 0, 0, "solid"), new Obstacle("Sprite", "obstacleTree4", 2089, 1052, 12, 0, 0, "solid"), new Obstacle("Sprite", "obstacleTree4", 1944, 243, 12, 0, 0, "solid")]; } } }//package tracks
Section 166
//TestTrack (tracks.TestTrack) package tracks { import flash.geom.*; public class TestTrack { public var track:Track; public function TestTrack(){ track = new Track(); track.trackSource = "tracks/phillip.swf"; track.mini_x = 0; track.mini_y = 0; track.MAP_WIDTH = 5760; track.MAP_HEIGHT = 5760; track.MINI_MAP_SIZE = 180; track.MINI_MAP_XSCALE = 220; track.MINI_MAP_YSCALE = 185; track.MINI_MAP_Y = 60; track.MINI_MAP_X = 380; track.RATIO_Y = 2; track.RATIO_X = 2; track.START_X = -2762; track.START_Y = -3075; track.START_ANGLE = 297; track.laps = 3; track.wayPoints = [new Waypoint(new Line(new Point(2852, 2487), new Point(2288, 3606))), new Waypoint(new Line(new Point(3901, 3738), new Point(4541, 2744))), new Waypoint(new Line(new Point(5049, 4067), new Point(3997, 4291))), new Waypoint(new Line(new Point(4377, 4970), new Point(5234, 5023))), new Waypoint(new Line(new Point(4804, 5714), new Point(5026, 4687))), new Waypoint(new Line(new Point(5693, 5691), new Point(4515, 4674))), new Waypoint(new Line(new Point(5716, 4796), new Point(4725, 4823))), new Waypoint(new Line(new Point(5606, 4130), new Point(4865, 4186))), new Waypoint(new Line(new Point(5428, 3196), new Point(4707, 3614))), new Waypoint(new Line(new Point(0x0F00, 2320), new Point(5422, 2929))), new Waypoint(new Line(new Point(5694, 2744), new Point(4514, 1884))), new Waypoint(new Line(new Point(4537, 2033), new Point(5320, 679))), new Waypoint(new Line(new Point(4147, 1117), new Point(3567, 1794))), new Waypoint(new Line(new Point(3910, 517), new Point(2808, 960))), new Waypoint(new Line(new Point(3139, 456), new Point(3040, -403))), new Waypoint(new Line(new Point(2222, 316), new Point(2176, 2500))), new Waypoint(new Line(new Point(1868, 31), new Point(1674, 1374))), new Waypoint(new Line(new Point(940, 658), new Point(1649, 1165))), new Waypoint(new Line(new Point(432, 1428), new Point(2334, 1459))), new Waypoint(new Line(new Point(1232, 2496), new Point(1877, 1382)))]; track.resetPositions = [new Point(2695, 2768)]; track.obstacleArray = [new Obstacle("Billboard", "obstacleBillboard2", 2232, 2620, 50, 50, -2.70900101665834, "line"), new Obstacle("Billboard", "obstacleBillboard1", 2417, 2709, 50, 50, -2.70900101665834, "line"), new Obstacle("Billboard", "obstacleBillboard7", 2886, 2934, 50, 50, -2.70900101665834, "line"), new Obstacle("Billboard", "obstacleBillboard6", 3071, 3023, 50, 50, -2.70900101665834, "line"), new Obstacle("Billboard", "obstacleBillboard5", 4644, 3925, 50, 50, -2.02678543179935, "line"), new Obstacle("Billboard", "obstacleBillboard4", 5383, 3531, 50, 50, 1.20713848415127, "line"), new Obstacle("Billboard", "obstacleBillboard3", 955, 1695, 50, 50, 1.14188358059327, "line"), new Obstacle("Billboard", "obstacleBillboard2", 2887, 2778, 50, 50, 0.432591636931457, "line"), new Obstacle("Billboard", "obstacleBillboard1", 0x0C00, 2867, 50, 50, 0.432591636931457, "line"), new Obstacle("Billboard", "obstacleBillboard2", 3773, 3201, 50, 50, 0.432591636931457, "line"), new Obstacle("Billboard", "obstacleBillboard1", 4834, 4466, 50, 50, 1.79218916927093, "line"), new Obstacle("Billboard", "obstacleBillboard7", 5336, 4366, 50, 50, -1.58025640761908, "line"), new Obstacle("Billboard", "obstacleBillboard6", 4961, 3196, 50, 50, -2.39413841045547, "line"), new Obstacle("Billboard", "obstacleBillboard5", 4554, 2499, 50, 50, -2.99441039278547, "line"), new Obstacle("Billboard", "obstacleBillboard4", 3770, 866, 50, 50, 1.22538886078547, "line"), new Obstacle("Billboard", "obstacleBillboard3", 1991, 728, 50, 50, -1.75959127858003, "line"), new Obstacle("Billboard", "obstacleBillboard1", 1555, 2152, 50, 50, 0.445691726333557, "line"), new Obstacle("Billboard", "obstacleBillboard2", 2362, 2530, 50, 50, 0.432591636931457, "line"), new Obstacle("Billboard", "obstacleBillboard1", 2547, 2619, 50, 50, 0.432591636931457, "line"), new Obstacle("Sprite", "obstacleCone", 2685, 2762, 5, 0, 0, "cone")]; } } }//package tracks
Section 167
//Track (tracks.Track) package tracks { public class Track { public var obstacleArray:Array; public var RATIO_X:Number; public var START_ANGLE:Number; public var trackSource:String; public var skybox:String; public var mini_x:Number; public var MINI_MAP_SIZE:Number; public var mini_y:Number; public var MAP_HEIGHT:Number; public var START_X:Number; public var START_Y:Number; public var RATIO_Y:Number; public var resetPositions:Array; public var MAP_WIDTH:Number; public var MINI_MAP_XSCALE:Number; public var minimap:String; public var boundary:String; public var MINI_MAP_X:Number; public var MINI_MAP_Y:Number; public var bitmap:String; public var laps:int; public var wayPoints:Array; public var MINI_MAP_YSCALE:Number; public function Track(){ wayPoints = []; obstacleArray = []; super(); } } }//package tracks
Section 168
//Waypoint (tracks.Waypoint) package tracks { import flash.geom.*; public class Waypoint { public var line:Line; public static var waypointCurrent:int = 0; private static var crossedAll:Boolean = false; private static var waypointsCrossedArray:Array = []; public static var waypointArray:Array = []; public function Waypoint(_arg1:Line){ line = _arg1; waypointArray.push(this); waypointsCrossedArray.push(0); } public function getCenter():Point{ var _local1:Point; _local1 = new Point((line.p0.x + ((line.p1.x - line.p0.x) / 2)), (line.p0.y + ((line.p1.y - line.p0.y) / 2))); return (_local1); } public static function crossedWaypoint(_arg1:Line){ var _local2:*; _local2 = 0; while (_local2 < waypointArray.length) { if (_arg1 == waypointArray[_local2].line){ waypointCurrent = _local2; crossedAll = false; if (_local2 == 0){ if (checkWaypoints()){ trace("Crossed All"); crossedAll = true; }; resetWaypoints(); return; } else { trace(("Crossed " + _local2)); waypointsCrossedArray[_local2] = 1; return; }; }; _local2++; }; } public static function resetWaypoints(){ var _local1:*; trace("Reset Waypoints"); _local1 = 0; while (_local1 < waypointsCrossedArray.length) { waypointsCrossedArray[_local1] = 0; _local1++; }; } public static function crossedAllWaypoints(){ return (crossedAll); } public static function checkWaypoints(){ return ((waypointsCrossed() == (waypointsCrossedArray.length - 1))); } public static function waypointsCrossed(){ var _local1:int; var _local2:*; _local1 = 0; _local2 = 1; while (_local2 < waypointsCrossedArray.length) { _local1 = (_local1 + waypointsCrossedArray[_local2]); _local2++; }; return (_local1); } public static function reset(){ waypointArray = []; waypointCurrent = 0; crossedAll = false; waypointsCrossedArray = []; } } }//package tracks
Section 169
//FPS (utilities.FPS) package utilities { import flash.display.*; import flash.events.*; import flash.text.*; import flash.utils.*; public class FPS extends TextField { private var ms:int; private var fs:int; public function FPS(_arg1:Sprite){ var _local2:TextFormat; super(); _local2 = new TextFormat(); _local2.color = 0xFFFFFF; _local2.size = 10; _local2.bold = true; _local2.font = "Verdana"; textColor = 0xCECECE; autoSize = "left"; defaultTextFormat = _local2; ms = getTimer(); fs = 0; _arg1.addEventListener(Event.ENTER_FRAME, loop); } private function loop(_arg1:Event):void{ if ((getTimer() - 1000) > ms){ ms = getTimer(); text = fs.toString(); fs = 0; } else { fs++; }; } } }//package utilities
Section 170
//SoundPlayer (utilities.SoundPlayer) package utilities { import flash.events.*; import flash.media.*; public class SoundPlayer { public var soundState:String; private var _position:Number;// = 0 private var soundChannel:SoundChannel; private var sound:Sound; public static var INITIALIZED:String = "init"; public static var PLAYING:String = "playing"; public static var FINISHED:String = "finished"; public static var STOPPED:String = "stopped"; public static var PAUSED:String = "paused"; public function SoundPlayer(_arg1:Sound):void{ soundChannel = new SoundChannel(); _position = 0; super(); sound = _arg1; soundState = INITIALIZED; } private function soundComplete(_arg1:Event):void{ trace(("Sound Complete" + this)); soundState = FINISHED; } public function get duration():Number{ return (sound.length); } public function get leftPeak():Number{ return (soundChannel.leftPeak); } public function get position():Number{ return (soundChannel.position); } public function set volume(_arg1:Number):void{ var _local2:SoundTransform; _local2 = soundChannel.soundTransform; _local2.volume = _arg1; soundChannel.soundTransform = _local2; } public function play():void{ if (soundState == PLAYING){ return; }; soundChannel.stop(); soundChannel = sound.play(_position); soundChannel.addEventListener(Event.SOUND_COMPLETE, soundComplete); soundState = PLAYING; } public function stop():void{ _position = 0; soundChannel.stop(); soundChannel.removeEventListener(Event.SOUND_COMPLETE, soundComplete); soundState = STOPPED; } public function set position(_arg1:Number):void{ var _local2:Boolean; _local2 = (soundState == PLAYING); pause(); _position = _arg1; if (_local2){ play(); }; } public function get volume():Number{ return (soundChannel.soundTransform.volume); } public function get rightPeak():Number{ return (soundChannel.rightPeak); } public function pause():void{ if (soundState == INITIALIZED){ return; }; _position = soundChannel.position; soundChannel.stop(); soundChannel.removeEventListener(Event.SOUND_COMPLETE, soundComplete); soundState = PAUSED; } } }//package utilities
Section 171
//Util (utilities.Util) package utilities { import flash.display.*; import flash.geom.*; public class Util { public static function get coinToss():Boolean{ if (Math.random() > 0.5){ return (true); }; return (false); } public static function localToLocal(_arg1:DisplayObject, _arg2:DisplayObject):Point{ var _local3:Point; _local3 = new Point(0, 0); _arg1.localToGlobal(_local3); _arg2.globalToLocal(_local3); return (_local3); } public static function getPos(_arg1){ var _local2:*; _local2 = {x:0, y:0}; _arg1.localToGlobal(_local2); return (_local2); } } }//package utilities
Section 172
//AssetManager (AssetManager) package { import flash.events.*; import br.com.stimuli.loading.*; public class AssetManager { public var loader:BulkLoader; public var loadedAssets:Array; public var trackID:int;// = 0 public static var _instance:AssetManager = null; public function AssetManager(){ loadedAssets = []; trackID = 0; super(); if (_instance == null){ }; } private function onItemProgress(_arg1:ProgressEvent){ } private function onItemLoaded(_arg1:Event){ } public static function getInstance(){ } } }//package
Section 173
//Bike (Bike) package { import flash.display.*; import flash.geom.*; import flash.events.*; import tracks.*; import gs.*; import flash.text.*; import flash.utils.*; public class Bike extends MovieClip { private var waypoint:int;// = 0 private var FRAME_CRASH:int;// = 53 private var MIDDLE_FRAME:int;// = 25 private var slowTurn:Number;// = 0 private var maxEngineForceBase:Number;// = 1 private var SlowTurn:Number;// = 0.6 private var FRAME_STAND:int;// = 52 private var trackHeight:Number;// = 720 public var turnAngle:Number;// = 0 public var speed:Number;// = 0 public var sx:Number;// = 0 public var sy:Number;// = 0 private var i:int; private var maxTurnAngleSlow:Number;// = 0.523598775598299 private var nextPoint:Point; private var brakeForce:Number;// = 5 private var offroadTime:Number;// = 0 private var dt:Number; private var waypoints:int;// = 0 private var oilTimer:Number; private var trackBoundary:Sprite; private var FRAME_RANGE_MAX:int;// = 24 private var closestPoint:Point; private var axisDistance:Number;// = 25 private var decayAmount:Number;// = 0 public var vx:Number;// = 0 public var vy:Number;// = 0 private var maxGripBase:Number;// = 1 private var angleVelocity:Number;// = 0 public var angle:Number;// = 0 private var maxGrip:Number;// = 1 private var rumbleForce:Number;// = 0.98 private var offroadJitter:Number;// = 3 private var Jitter:Number; private var crashTime:Number;// = 1000 private var maxGripOil:Number;// = 0.005 private var wheelSlipDrag:Number;// = 1.6 public var textDebug:TextField; private var offroad:Boolean;// = false private var drag:Number;// = 0.004 private var trackWidth:Number;// = 720 private var maxTurnAngleBase:Number;// = 0.279252680319093 private var maxTurnAngle:Number;// = 0.314159265358979 private var track:Track; private var brakeAmount:Number;// = 0 private var decayForce:Number;// = 0.5 private var pi2;// = 6.28318530717959 private var offroadTimer:Number; public var animation:MovieClip; private var maxEngineForceOffroad:Number;// = 0.08 private var core:Core; private var lap:int;// = 0 private var nextAngle:Number;// = 0 private var FRAME_RANGE:int;// = 24 private var _time:Number; private var turnSpeedBase:Number;// = 0.698131700797732 private var maxEngineForce:Number; public var engineForce:Number;// = 0 private var oilTime:Number;// = 3000 private var turnSpeed:Number;// = 0.698131700797732 private var currentPosition:Number;// = 8 private var bike:Bike; private var angleX:Number;// = 20 private var engineForceAcc:Number;// = 0.09 private var velocityAngle:Number; public static const gravity = 2; public function Bike(){ sx = 0; sy = 0; angle = 0; engineForce = 0; speed = 0; turnAngle = 0; vx = 0; vy = 0; angleX = 20; turnSpeedBase = ((40 / 180) * Math.PI); turnSpeed = ((40 / 180) * Math.PI); maxTurnAngleSlow = ((30 / 180) * Math.PI); maxTurnAngleBase = ((16 / 180) * Math.PI); maxTurnAngle = ((18 / 180) * Math.PI); axisDistance = 25; maxGripBase = 1; maxGripOil = 0.005; maxGrip = 1; drag = 0.004; wheelSlipDrag = 1.6; pi2 = (2 * Math.PI); rumbleForce = 0.98; maxEngineForceOffroad = 0.08; maxEngineForceBase = 1; maxEngineForce = maxEngineForceBase; engineForceAcc = 0.09; angleVelocity = 0; slowTurn = 0; offroad = false; MIDDLE_FRAME = 25; FRAME_RANGE = 24; FRAME_RANGE_MAX = 24; FRAME_STAND = 52; FRAME_CRASH = 53; trackWidth = 720; trackHeight = 720; offroadJitter = 3; SlowTurn = 0.6; waypoints = 0; waypoint = 0; lap = 0; oilTime = 3000; crashTime = 1000; nextPoint = new Point(0, 0); closestPoint = new Point(0, 0); currentPosition = 8; nextAngle = 0; offroadTime = 0; decayAmount = 0; decayForce = 0.5; brakeForce = 5; brakeAmount = 0; super(); bike = this; core = Core.getInstance(); } private function restart(){ core.gameState = "restart"; } public function turnLeft(){ slowTurn = 0; if (Constants.DEBUG){ angle = (angle - 0.05); } else { if (speed > 0.3){ turnAngle = (turnAngle - (turnSpeed * dt)); if (turnAngle < -(maxTurnAngle)){ turnAngle = -(maxTurnAngle); }; if (speed < 4){ slowTurn = ((-(Math.sin(((speed / 4) * Math.PI))) * SlowTurn) * dt); }; }; }; } private function getClosestToWaypoint(){ var _local1:Array; var _local2:Number; var _local3:Number; var _local4:*; var _local5:*; var _local6:*; var _local7:Number; var _local8:*; var _local9:*; var _local10:*; _local1 = []; _local9 = 0; while (_local9 < 2) { _local2 = Number.POSITIVE_INFINITY; _local8 = (Waypoint.waypointCurrent + _local9); if (_local8 >= (Waypoint.waypointArray.length - 2)){ return ([0, (track.resetPositions.length - 1)]); }; _local10 = 0; while (_local10 < track.resetPositions.length) { _local4 = -(track.resetPositions[_local10].y); _local5 = (track.resetPositions[_local10].x - track.MAP_WIDTH); _local6 = (-(Waypoint.waypointArray[_local8].getCenter().y) - _local4); _local7 = ((Waypoint.waypointArray[_local8].getCenter().x - track.MAP_WIDTH) - _local5); _local3 = ((_local6 * _local6) + (_local7 * _local7)); if (_local3 < _local2){ _local1[_local9] = _local10; _local2 = _local3; }; _local10++; }; _local9++; }; return (_local1); } public function getClosest():Point{ var closestDistance:Number; var distance:*; var step:Number; var px:*; var py:*; var dx:*; var dy:Number; var rangeArray:Array; var checkClosest:Function; checkClosest = function (){ px = -(track.resetPositions[i].y); py = (track.resetPositions[i].x - track.MAP_WIDTH); dx = (sx - px); dy = (sy - py); distance = ((dx * dx) + (dy * dy)); if (distance < closestDistance){ closestPoint = new Point(px, py); closestDistance = distance; if (i == (track.resetPositions.length - 1)){ nextPoint = new Point(-(track.resetPositions[0].y), (track.resetPositions[0].x - track.MAP_WIDTH)); } else { nextPoint = new Point(-(track.resetPositions[(i + 1)].y), (track.resetPositions[(i + 1)].x - track.MAP_WIDTH)); }; }; }; closestDistance = Number.POSITIVE_INFINITY; rangeArray = getClosestToWaypoint(); if (rangeArray[0] < rangeArray[1]){ step = 1; } else { step = -1; }; i = rangeArray[0]; while (i < rangeArray[1]) { checkClosest(); i = (i + step); }; return (closestPoint); } public function recenter(){ animation.gotoAndStop(MIDDLE_FRAME); core.gameState = "recenter"; turnAngle = 0; vx = 0; vy = 0; speed = 0; angle = normalize(Math.atan2((closestPoint.y - nextPoint.y), (closestPoint.x - nextPoint.x))); TweenLite.to(this, 1, {sx:closestPoint.x, sy:closestPoint.y, onComplete:recenterComplete}); } public function debug(){ textDebug = new TextField(); textDebug.x = 60; textDebug.y = 80; textDebug.width = 550; textDebug.textColor = 0xFFFFFF; core.container2d.addChild(textDebug); } public function checkWaypoints(){ i = 0; while (i < track.wayPoints.length) { if (intersect(track.wayPoints[i].line)){ Waypoint.crossedWaypoint(track.wayPoints[i].line); if (Waypoint.crossedAllWaypoints()){ lap++; core.hud.lap(); if (lap >= track.laps){ core.gameOver(); return; }; trace("LAP COMPLETED"); core.map.collisionReset(); return; }; }; i++; }; } public function rumble(){ maxEngineForce = maxEngineForceOffroad; engineForce = maxEngineForce; offroad = true; } public function turnStraight(){ var _local1:Number; _local1 = Math.abs(turnAngle); slowTurn = 0; if (_local1 > 0){ if (_local1 < (turnSpeed * dt)){ turnAngle = 0; } else { if (turnAngle > 0){ turnAngle = (turnAngle - ((turnSpeed * dt) * 0.5)); } else { if (turnAngle < 0){ turnAngle = (turnAngle + ((turnSpeed * dt) * 0.5)); }; }; }; }; } public function isOffRoad(){ trace("offroad"); if (!offroad){ offroadTimer = getTimer(); }; if ((getTimer() - offroadTimer) > Constants.BIKE_OFFROAD_TIME){ vx = 0; vy = 0; engineForce = 0; core.gameState = "restart"; }; maxEngineForce = maxEngineForceOffroad; offroad = true; } public function bounce(){ var _local1:Number; SoundManager.getInstance().playSound("Sound_Bounce"); _local1 = (angle - Math.PI); engineForce = 0; vx = ((Math.cos(_local1) * Math.max(speed, 4)) * 0.4); vy = ((Math.sin(_local1) * Math.max(speed, 4)) * 0.4); TweenLite.to(this, 1, {vx:0, vy:0}); } public function deccelerate(){ if ((((engineForce > 0)) && ((core.gameState == "race")))){ SoundManager.getInstance().playSound("Sound_Brake"); } else { if (speed == 0){ SoundManager.getInstance().stopEngine(); }; }; engineForce = Math.max((engineForce - brakeAmount), 0); if (engineForce == 0){ vx = (vx * 0.99); vy = (vy * 0.99); }; } public function getDirection(){ var _local1:*; var _local2:*; var _local3:*; _local1 = (Math.atan2((closestPoint.y - nextPoint.y), (closestPoint.x - nextPoint.x)) * Constants.RAD2DEG); _local1 = (_local1 + 720); _local1 = (_local1 % 360); _local2 = _angleY; _local2 = (_local2 + 720); _local2 = (_local2 % 360); _local3 = ((_local1 - _local2) + 720); _local3 = (_local3 % 360); } public function accelerate(){ SoundManager.getInstance().playSound("Sound_Accelerate"); engineForce = (engineForce + (engineForceAcc * dt)); if (engineForce > maxEngineForce){ engineForce = maxEngineForce; }; } public function get jitter(){ if (speed > 0){ return (Jitter); }; return (0); } public function get _angleY(){ return ((normalize(angle) * Constants.RAD2DEG)); } public function get _angleX(){ return (angleX); } public function normalize(_arg1:Number){ _arg1 = ((_arg1 * 180) / Math.PI); _arg1 = (_arg1 % 360); if (_arg1 < 0){ _arg1 = (_arg1 + 360); }; return (((_arg1 * Math.PI) / 180)); } public function init(_arg1:Track, _arg2:Stage, _arg3:MovieClip){ track = _arg1; sx = track.START_X; sy = track.START_Y; x = Constants.BIKE_START_X; y = Constants.BIKE_START_Y; animation.gotoAndStop(FRAME_STAND); angle = ((track.START_ANGLE * Math.PI) / 180); trackBoundary = _arg3; trackBoundary.visible = false; _arg2.addChild(trackBoundary); trackBoundary.width = trackWidth; trackBoundary.height = trackHeight; } public function water(){ SoundManager.getInstance().playSound("Sound_Water"); TweenLite.to(this, 1, {vx:(vx / 8), vy:(vy / 8)}); } public function cone(){ trace("Hit Cone"); SoundManager.getInstance().playSound("Sound_Bounce"); engineForce = 0; Jitter = 5; } public function intersect(_arg1:Line){ var _local2:Point; var _local3:Point; var _local4:*; var _local5:*; var _local6:*; var _local7:*; var _local8:*; var _local9:*; var _local10:*; var _local11:*; var _local12:*; _local2 = new Point(-(_arg1.p0.y), (_arg1.p0.x - track.MAP_WIDTH)); _local3 = new Point(-(_arg1.p1.y), (_arg1.p1.x - track.MAP_WIDTH)); _local5 = vy; _local4 = vx; _local6 = (_local3.x - _local2.x); _local7 = (_local3.y - _local2.y); _local8 = ((-(_local6) * _local5) + (_local4 * _local7)); _local11 = (sx - _local2.x); _local12 = (sy - _local2.y); _local9 = (((-(_local5) * _local11) + (_local4 * _local12)) / _local8); _local10 = (((_local6 * _local12) - (_local7 * _local11)) / _local8); if ((((((((_local9 >= 0)) && ((_local9 <= 1)))) && ((_local10 >= 0)))) && ((_local10 <= 1)))){ return (true); }; return (false); } public function get offRoad(){ return (offroad); } public function get _xcam(){ return (sy); } public function isOnRoad(){ offroad = false; maxEngineForce = maxEngineForceBase; } public function render(_arg1:Array, _arg2:Number){ var _local3:Number; var _local4:Point; var _local5:Number; var _local6:*; dt = _arg2; decayAmount = (dt * decayForce); brakeAmount = (dt * brakeForce); getClosest(); getDirection(); Jitter = ((Math.random() * offroadJitter) - (offroadJitter / 2)); if (_arg1[Constants.LEFT]){ turnLeft(); } else { if (_arg1[Constants.RIGHT]){ turnRight(); } else { turnStraight(); }; }; if (_arg1[Constants.UP]){ accelerate(); } else { if (_arg1[Constants.DOWN]){ deccelerate(); } else { decay(); }; }; speed = Math.sqrt(((vx * vx) + (vy * vy))); if (speed > Constants.BIKE_MAX_SPEED){ speed = Constants.BIKE_MAX_SPEED; }; velocityAngle = Math.atan2(vy, vx); vx = (vx + ((Math.cos(angle) * engineForce) - ((drag * vx) * speed))); vy = (vy + ((Math.sin(angle) * engineForce) - ((drag * vy) * speed))); _local3 = (axisDistance / Math.sin(turnAngle)); angleVelocity = (Math.pow(speed, 0.5) / _local3); angle = (angle + angleVelocity); angle = (angle + slowTurn); if (speed > 0.1){ _local5 = Math.sin((angle - velocityAngle)); _local5 = Math.max(_local5, -(maxGrip)); _local5 = Math.min(_local5, maxGrip); vx = (vx + ((Math.cos((angle + (Math.PI / 2))) * _local5) * wheelSlipDrag)); vy = (vy + ((Math.sin((angle + (Math.PI / 2))) * _local5) * wheelSlipDrag)); }; animation.spinner.render(); _local4 = new Point(((((track.RATIO_X * bike.sy) / track.MAP_WIDTH) * trackBoundary.width) + (track.RATIO_X * trackBoundary.width)), ((((-(track.RATIO_Y) * (track.MAP_HEIGHT + bike.sx)) / track.MAP_HEIGHT) * trackHeight) + (track.RATIO_Y * trackHeight))); _local4 = trackBoundary.localToGlobal(_local4); if (trackBoundary.hitTestPoint(_local4.x, _local4.y, true)){ isOnRoad(); } else { isOffRoad(); }; if ((((speed < 0.8)) && (!(_arg1[Constants.UP])))){ slowTurn = 0; vx = 0; vy = 0; turnAngle = 0; animation.gotoAndStop(FRAME_STAND); SoundManager.getInstance().playSound("Sound_Idle"); } else { FRAME_RANGE = (((speed / Constants.BIKE_MAX_SPEED) * (FRAME_RANGE_MAX - 10)) + 10); _local6 = Math.floor(((turnAngle / maxTurnAngle) * FRAME_RANGE)); _local6 = (_local6 + MIDDLE_FRAME); animation.gotoAndStop(_local6); }; sx = (sx - vx); sy = (sy - vy); checkWaypoints(); } public function recenterComplete(){ trace("Recenter Complete"); core.gameState = "race"; } public function turnRight(){ slowTurn = 0; if (Constants.DEBUG){ angle = (angle + 0.05); } else { if (speed > 0.3){ turnAngle = (turnAngle + (turnSpeed * dt)); if (turnAngle > maxTurnAngle){ turnAngle = maxTurnAngle; }; if (speed < 4){ slowTurn = ((Math.sin(((speed / 4) * Math.PI)) * SlowTurn) * dt); }; }; }; } public function decay(){ if ((((engineForce > 0)) && ((core.gameState == "race")))){ SoundManager.getInstance().playSound("Sound_Decay"); } else { if (speed == 0){ SoundManager.getInstance().stopEngine(); }; }; engineForce = Math.max((engineForce - decayAmount), 0); } public function oil(){ var _local1:*; SoundManager.getInstance().playSound("Sound_Oil"); engineForce = 0; _local1 = (((Math.random() * Math.PI) / 10) + (Math.PI / 10)); if (Math.random() > 0.5){ _local1 = -(_local1); }; TweenLite.to(this, 1, {vx:(vx / 5), vy:(vy / 5), angle:(_local1 + angle)}); } public function crash(){ var _local1:Number; var _local2:*; var _local3:*; SoundManager.getInstance().playSound("Sound_Crash"); if (core.gameState != "crash"){ core.gameState = "crash"; animation.gotoAndPlay("crash"); vx = 0; vy = 0; engineForce = 0; turnAngle = 0; _local1 = (angle - Math.PI); _local2 = (sx - (Math.cos(_local1) * 15)); _local3 = (sy - (Math.sin(_local1) * 15)); TweenLite.to(this, 0.5, {sx:_local2, sy:_local3}); setTimeout(restart, crashTime); }; } public function get _zcam(){ return (sx); } } }//package
Section 174
//Blank (Blank) package { import flash.display.*; public dynamic class Blank extends BitmapData { public function Blank(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 175
//CellRenderer_disabledSkin (CellRenderer_disabledSkin) package { import flash.display.*; public dynamic class CellRenderer_disabledSkin extends MovieClip { } }//package
Section 176
//CellRenderer_downSkin (CellRenderer_downSkin) package { import flash.display.*; public dynamic class CellRenderer_downSkin extends MovieClip { } }//package
Section 177
//CellRenderer_overSkin (CellRenderer_overSkin) package { import flash.display.*; public dynamic class CellRenderer_overSkin extends MovieClip { } }//package
Section 178
//CellRenderer_selectedDisabledSkin (CellRenderer_selectedDisabledSkin) package { import flash.display.*; public dynamic class CellRenderer_selectedDisabledSkin extends MovieClip { } }//package
Section 179
//CellRenderer_selectedDownSkin (CellRenderer_selectedDownSkin) package { import flash.display.*; public dynamic class CellRenderer_selectedDownSkin extends MovieClip { } }//package
Section 180
//CellRenderer_selectedOverSkin (CellRenderer_selectedOverSkin) package { import flash.display.*; public dynamic class CellRenderer_selectedOverSkin extends MovieClip { } }//package
Section 181
//CellRenderer_selectedUpSkin (CellRenderer_selectedUpSkin) package { import flash.display.*; public dynamic class CellRenderer_selectedUpSkin extends MovieClip { } }//package
Section 182
//CellRenderer_upSkin (CellRenderer_upSkin) package { import flash.display.*; public dynamic class CellRenderer_upSkin extends MovieClip { } }//package
Section 183
//ComboBox_disabledSkin (ComboBox_disabledSkin) package { import flash.display.*; public dynamic class ComboBox_disabledSkin extends MovieClip { } }//package
Section 184
//ComboBox_downSkin (ComboBox_downSkin) package { import flash.display.*; public dynamic class ComboBox_downSkin extends MovieClip { } }//package
Section 185
//ComboBox_overSkin (ComboBox_overSkin) package { import flash.display.*; public dynamic class ComboBox_overSkin extends MovieClip { } }//package
Section 186
//ComboBox_upSkin (ComboBox_upSkin) package { import flash.display.*; public dynamic class ComboBox_upSkin extends MovieClip { } }//package
Section 187
//Constants (Constants) package { import flash.geom.*; public class Constants { public static var BIKE_LENGTH:Number = 20; public static var STAGE_WIDTH:Number = 600; public static var LEFT:int = 0; public static var TIME_BONUS:Number = 5000; public static var CONE_BOUNCE_TIME:Number = 0.75; public static var WORLD_CORRECT_X = 0; public static var WORLD_CORRECT_Y = 0; public static var SCREEN_TRANSLATE:Number = -40; public static var WORLD_SCALE:Number = 47223; public static var FOCAL_LENGTH = 482; public static var CONE_BOUNCE:Number = 8; public static var ORIGIN:Point = new Point(0, 0); public static var URL_MORE_GAMES = "http://www.addictinggames.com/"; public static var YADJUST = Math.atan(((2.7 * Math.PI) / 180)); public static var DEBUG:Boolean = false; public static var COUNTDOWN_TIME:Number = 2400; public static var BILLBOARDOFFSCREEN:int = 250; public static var BIKE_START_Y:Number = 425; public static var HI_RES:Boolean = true; public static var BIKE_MAX_ENGINE_FORCE:Number = 0.45; public static var WORLD_VIEW_DISTANCE:Number = 720000; public static var WORLD_FADE_DISTANCE:Number = 400000; public static var BIKE_START_X:Number = 305; public static var TRACK_TITLE_ARRAY:Array = ["AUSTRALIA", "CHINA"]; public static var OFFSET_MAP_X:Number = 105; public static var HORIZON_HEIGHT:Number = 180; public static var HORIZON_SCALE:Number = 5; public static var MAX_SCALE:Number = 700; public static var DEG2RAD:Number = 0.0174532925199433; public static var BIKE_OFFROAD_WARN:Number = 3000; public static var OFFSCREEN:int = 100; public static var TRACK_CLASS_ARRAY:Array = ["tracks.PhillipIsland", "tracks.Shanghai"]; public static var URL_DOWNLOAD = "http://www.blastone.com/games/motoracer/motoracer.zip"; public static var URL_HIGH_SCORE = "http://www.blastone.com/games/motoracer/showscores.php"; public static var URL_SUBMIT_SCORE = "http://www.blastone.com/games/motoracer/submit.php"; public static var _ycam:Number = 22; public static var SCREEN_SCALE:Number = 1.14; public static var UP:int = 2; public static var BIKE_MAX_SPEED:Number = 11; public static var DOWN:int = 3; public static var STAGE_HEIGHT:Number = 600; public static var OFFSET_ROTATION:Number = -5; public static var OFFSET_X:Number = 105; public static var OFFSET_Y:Number = 180; public static var SMOOTH:Boolean = false; public static var TRACK_ID:int = 0; public static var HORIZON:Number = 0; public static var BIKE_OFFROAD_TIME:Number = 6000; public static var MATRIX:Matrix = new Matrix(); public static var BIKE_DEPTH:Number = 2100; public static var TRACK_PREVIEW_ARRAY:Array = ["previewPhillipIsland", "previewShanghai"]; public static var _resoDx:Number = 360; public static var _resoDy:Number = 350; public static var RAD2DEG:Number = 57.2957795130823; public static var CAMERA_OFFSET:Number = 55; public static var URL_GAME = "http://www.addictinggames.com/"; public static var RIGHT:int = 1; } }//package
Section 188
//Controls (Controls) package { import flash.display.*; import flash.events.*; import flash.net.*; import flash.text.*; public class Controls extends MovieClip { public var btnPause:SimpleButton; public var btnSound:SimpleButton; public var btnMusic:SimpleButton; private var soundToggle:Boolean; public var textPause:TextField; public var btnQuit:SimpleButton; private var musicToggle:Boolean; public var textSound:TextField; private var pauseToggle:Boolean;// = false public var textMusic:TextField; public function Controls(){ var myThis:*; var url:Function; var quit:Function; var soundDisplay:Function; var musicDisplay:Function; var toggleSound:Function; var toggleMusic:Function; var togglePause:Function; pauseToggle = false; super(); url = function (){ var _local1:URLRequest; _local1 = new URLRequest(Constants.URL_MORE_GAMES); navigateToURL(_local1, "_blank"); }; quit = function (){ GameManager.getInstance().setState("Credits"); }; soundDisplay = function (){ if (!soundToggle){ textSound.text = "SOUND OFF"; } else { textSound.text = "SOUND ON"; }; }; musicDisplay = function (){ if (!musicToggle){ textMusic.text = "MUSIC OFF"; } else { textMusic.text = "MUSIC ON"; }; }; toggleSound = function (){ trace("CLICK"); soundToggle = !(soundToggle); if (!soundToggle){ SoundManager.getInstance().soundsEnabled = false; SoundManager.getInstance().stopSounds(); } else { SoundManager.getInstance().soundsEnabled = true; }; soundDisplay(); }; toggleMusic = function (){ trace("CLICK MUSIC"); musicToggle = !(musicToggle); if (!musicToggle){ SoundManager.getInstance().stopMusic(); } else { SoundManager.getInstance().startMusic(); }; musicDisplay(); }; togglePause = function (){ if (!pauseToggle){ pauseToggle = true; textPause.text = "RESUME"; Core.getInstance().pause = true; } else { pauseToggle = false; textPause.text = "PAUSE"; Core.getInstance().pause = false; }; }; myThis = this; musicToggle = SoundManager.getInstance().musicEnabled; soundToggle = SoundManager.getInstance().soundsEnabled; soundDisplay(); musicDisplay(); myThis.btnMusic.addEventListener(MouseEvent.CLICK, toggleMusic); myThis.btnQuit.addEventListener(MouseEvent.CLICK, quit); myThis.btnSound.addEventListener(MouseEvent.CLICK, toggleSound); myThis.btnPause.addEventListener(MouseEvent.CLICK, togglePause); } } }//package
Section 189
//Core (Core) package { import flash.display.*; import flash.geom.*; import flash.events.*; import tracks.*; import flash.text.*; import display.*; import flash.utils.*; import utilities.*; import com.Keyboard.*; import fl.motion.*; import mode7.*; import map.*; import flash.ui.*; public class Core extends Sprite { public var explosions:ExplosionManager; private var keyCode:int; private var gameBitmapData:BitmapData; public var containerGame:Sprite; private var skybox; private var stageRectangle:Rectangle; private var sourceBitmapData:BitmapData; private var classRef:Class; private var timeoutID:uint; public var containerBuffer:Sprite; public var track:Track; private var mode7Engine:Mode7; public var map:Map; private var sourceBitmapClass:Class; private var stageWidth:Number; private var dt:Number; private var skyboxClass:Class; private var assetManager:AssetManager; private var _time:Number; public var container2d:Sprite; private var bikes:Array; private var countDownTime:Number; private var gameBitmap:Bitmap; private var stageHeight:Number; private var ldrInfo:MovieClip; private var containerGameMatrix:Matrix; public var gameState:String;// = "init" public var container3d:Sprite; private var directions:Array; private var minimapSpriteClass:Class; private var STAGE:Stage; public var bike:Bike; public var hud:Hud; public var pause:Boolean;// = false private static var _instance:Core; public function Core(){ pause = false; gameState = "init"; stageWidth = Constants.STAGE_WIDTH; stageHeight = Constants.STAGE_HEIGHT; stageRectangle = new Rectangle(0, 0, stageWidth, stageWidth); countDownTime = Constants.COUNTDOWN_TIME; bikes = []; directions = [false, false, false, false]; super(); _instance = this; Waypoint.reset(); } public function init(_arg1:Stage){ var _local2:*; var _local3:*; var _local4:*; var _local5:FPS; STAGE = _arg1; STAGE.focus = this; Key.initialize(STAGE); STAGE.quality = "MEDIUM"; classRef = (getDefinitionByName(Constants.TRACK_CLASS_ARRAY[Constants.TRACK_ID]) as Class); track = new classRef().track; sourceBitmapData = new Blank(0, 0); _local2 = (getDefinitionByName(track.bitmap) as Class); _local3 = new _local2(0, 0); _local4 = new Matrix(); _local4.scale(2, 2); sourceBitmapData.draw(_local3, _local4, null, null, null, true); _local3.dispose(); _local3 = null; _local2 = null; minimapSpriteClass = (getDefinitionByName(track.boundary) as Class); skyboxClass = (getDefinitionByName(track.skybox) as Class); skybox = new skyboxClass(); skybox.y = 20; container3d = new Sprite(); container2d = new Sprite(); containerGame = new Sprite(); addChild(containerGame); gameBitmapData = new BitmapData(stageWidth, stageHeight, false, 0); gameBitmap = new Bitmap(gameBitmapData); containerGame.addChild(gameBitmap); containerGameMatrix = containerGame.transform.matrix; map = new Map(); map.init(track, container2d, container3d, new minimapSpriteClass()); mode7Engine = new Mode7(); mode7Engine.init(track, sourceBitmapData); hud = new Hud(); _local5 = new FPS(container2d); _local5.x = 5; _local5.y = 5; bike = new Racer(); bike.init(track, STAGE, new minimapSpriteClass()); _time = getTimer(); container3d.addChild(bike); addChild(container2d); addChild(hud); addChild(_local5); explosions = new ExplosionManager(container2d); addEventListener(Event.ENTER_FRAME, render); } private function startRace(){ hud.startTimer(); gameState = "race"; } private function crash(){ gameState = "restart"; } private function render(_arg1:Event){ var _local2:*; var _local3:Matrix; if (!pause){ hud.render(); explosions.render(); switch (gameState){ case "init": hud.countdown.play(); gameState = "countdown"; timeoutID = setTimeout(startRace, countDownTime); mode7Engine.render(bike); map.render(bike); skybox.render(bike._angleY); break; case "race": dt = ((getTimer() - _time) / 1000); if (Key.isDown(Keyboard.SPACE)){ trace(((((("_xcam: " + bike._xcam) + " _zcam: ") + bike._zcam) + " _angleY: ") + bike._angleY)); }; directions[Constants.LEFT] = Key.isDown(Keyboard.LEFT); directions[Constants.RIGHT] = Key.isDown(Keyboard.RIGHT); directions[Constants.UP] = Key.isDown(Keyboard.UP); directions[Constants.DOWN] = Key.isDown(Keyboard.DOWN); bike.render(directions, dt); map.render(bike); map.collisions(bike); mode7Engine.render(bike); skybox.render(bike._angleY); _time = getTimer(); break; case "crash": bike.crash(); mode7Engine.render(bike); map.render(bike); skybox.render(bike._angleY); break; case "restart": bike.recenter(); break; case "recenter": mode7Engine.render(bike); map.render(bike); skybox.render(bike._angleY); break; case "gameover": bike.render(new Array(false, false, false, false), dt); mode7Engine.render(bike); map.render(bike); skybox.render(bike._angleY); bike.vx = (bike.vx * 0.98); bike.vy = (bike.vy * 0.98); break; }; _local2 = new Matrix(); gameBitmapData.fillRect(stageRectangle, 0); gameBitmapData.draw(skybox, _local2); gameBitmapData.draw(mode7Engine, _local2); gameBitmapData.draw(container3d, _local2); _local2.translate(Constants.SCREEN_TRANSLATE, 0); _local2.scale(Constants.SCREEN_SCALE, Constants.SCREEN_SCALE); containerGame.transform.matrix = _local2; _local3 = _local2.clone(); MatrixTransformer.rotateAroundExternalPoint(_local3, (stageWidth / 2), 500, ((-(bike.turnAngle) * Constants.RAD2DEG) * 0.4)); if (bike.offRoad){ _local3.translate(0, bike.jitter); }; containerGame.transform.matrix = _local3; }; } public function cleanup(){ trace("Core Clean up"); removeEventListener(Event.ENTER_FRAME, render); clearTimeout(timeoutID); sourceBitmapData.dispose(); ldrInfo = null; classRef = null; minimapSpriteClass = null; sourceBitmapClass = null; skyboxClass = null; track = null; map.cleanup(); map = null; containerGame = null; containerBuffer = null; container2d = null; container3d = null; explosions = null; hud = null; bike = null; skybox = null; mode7Engine.cleanup(); mode7Engine = null; } public function gameOver(){ hud.stopTimer(); GameManager.getInstance().gameScore = hud.getTime(); gameState = "gameover"; hud.gameOver(); } public static function getInstance(){ return (_instance); } } var _local1:* = TestTrack; return (_local1); }//package
Section 190
//Credits (Credits) package { import flash.display.*; import flash.geom.*; import flash.events.*; import org.papervision3d.materials.*; import org.papervision3d.core.*; import org.papervision3d.objects.*; import flash.net.*; import org.papervision3d.events.*; import org.papervision3d.scenes.*; import flash.text.*; import display.*; import flash.utils.*; import org.papervision3d.core.geom.*; import org.papervision3d.utils.*; import org.papervision3d.cameras.*; import com.markfennell.display.*; import controls.*; public class Credits extends MovieClip { private var hero; public var trackDisplay:Boolean;// = false private var trackButtonArray:Array; private var camera:Camera3D; private var btnTrackSelect; private var containerParticles:Sprite; private var helpClip; private var particleNum:Number;// = 60 private var world:DisplayObject3D; private var gameManager:GameManager; private var plane:Plane; private var hud:MovieClip; private var destBitmap:Bitmap; private var flag:Flag; private var container:Sprite; private var particleArray:Array; private var btnScores; private var btnRace; public var soundManager:SoundManager; private var btnPlay; private var scene:Scene3D; private var destBitmapData:BitmapData; private var trackDisplayed3D:Boolean;// = false private var titleClip; private var btnMore; private var fx; private var container3d:Sprite; private var STAGE:Stage; private var containerPV3D:Sprite; public function Credits(){ trackDisplay = false; fx = new Fx(); particleArray = []; particleNum = 60; trackDisplayed3D = false; trackButtonArray = []; super(); soundManager = SoundManager.getInstance(); TrackSelect.reset(); } public function init(_arg1){ var _local2:*; var _local3:*; STAGE = _arg1; STAGE.scaleMode = "noScale"; STAGE.align = "TL"; destBitmapData = new BitmapData(200, 200, false, 0); destBitmap = new Bitmap(destBitmapData); container = new Sprite(); addChild(container); containerParticles = new Sprite(); addChild(containerParticles); addEventListener(Event.ENTER_FRAME, render); container.addChild(destBitmap); flag = new Flag(new flagBitmap(0, 0), destBitmapData); flag.appearMoreFabric(); _local2 = 0; while (_local2 < particleNum) { _local3 = new ParticleStreak(700, ((Math.random() * 350) + 200), containerParticles); particleArray.push(_local3); _local2++; }; if (trackDisplay){ displayTracks(); } else { showControls(); }; containerPV3D = new Sprite(); containerPV3D.x = (STAGE.stageWidth / 2); containerPV3D.y = (STAGE.stageWidth / 2); addChild(containerPV3D); } private function hide3DTrack(){ world.removeChild(plane); plane = null; trackDisplayed3D = false; } private function hideControls(){ var _local1:*; fx.zoomIn(titleClip, 0, 0.4, 300, 20, -500, 20, 20, "easeOut", null); fx.zoomIn(btnPlay, 0.1, 0.4, 300, 210, -500, 210, 20, "easeOut", null); fx.zoomIn(btnScores, 0.2, 0.4, 300, 240, -500, 240, 20, "easeOut", null); fx.zoomIn(btnMore, 0.3, 0.4, 300, 270, -500, 270, 20, "easeOut", null); fx.zoomIn(hero, 0.3, 0.4, 140, 300, -500, 300, 20, "easeOut", null); fx.zoomIn(helpClip, 0.4, 0.4, 300, 550, -500, 550, 20, "easeOut", displayTracks); _local1 = 0; while (_local1 < particleNum) { particleArray[_local1].remove(); _local1++; }; particleArray = []; } private function display3DTrack(){ var _local1:Class; var _local2:MovieMaterial; trackDisplayed3D = true; _local1 = (getDefinitionByName(Constants.TRACK_PREVIEW_ARRAY[Constants.TRACK_ID]) as Class); trace(("classRef " + _local1)); _local2 = new MovieMaterial(new (_local1), true); _local2.interactive = false; _local2.doubleSided = false; plane = new Plane(_local2, 1400, 1400, 10, 10); plane.z = 20; world.addChild(plane); } private function playGame(_arg1:MouseEvent){ GameManager.getInstance().setState("Game"); } public function changeTrack(_arg1:int){ if (_arg1 != Constants.TRACK_ID){ Constants.TRACK_ID = _arg1; if (trackDisplayed3D){ hide3DTrack(); }; display3DTrack(); }; } private function showControls(){ var showTracks:Function; var hiscores:Function; var download:Function; var moregames:Function; var linkBlastone:Function; var linkAG:Function; showTracks = function (_arg1:MouseEvent){ hideControls(); }; hiscores = function (){ var _local1:URLRequest; _local1 = new URLRequest(Constants.URL_HIGH_SCORE); navigateToURL(_local1, "_blank"); }; download = function (){ var _local1:URLRequest; _local1 = new URLRequest(Constants.URL_DOWNLOAD); navigateToURL(_local1, "_blank"); }; moregames = function (){ var _local1:URLRequest; _local1 = new URLRequest(Constants.URL_MORE_GAMES); navigateToURL(_local1, "_blank"); }; linkBlastone = function (){ var _local1:URLRequest; _local1 = new URLRequest("http://www.blastone.com"); navigateToURL(_local1, "_blank"); }; linkAG = function (){ var _local1:URLRequest; _local1 = new URLRequest("http://www.addictinggames.com"); navigateToURL(_local1, "_blank"); }; trackDisplay = false; titleClip = new credits_title(); helpClip = new credits_help(); btnPlay = new playBtn(); btnScores = new scoresBtn(); btnMore = new moregamesBtn(); hero = new Hero(); addChild(titleClip); addChild(helpClip); addChild(btnPlay); addChild(btnScores); addChild(btnMore); addChild(hero); btnPlay.addEventListener(MouseEvent.CLICK, showTracks); btnScores.addEventListener(MouseEvent.CLICK, hiscores); btnMore.addEventListener(MouseEvent.CLICK, moregames); helpClip.btnBlastone.addEventListener(MouseEvent.CLICK, linkBlastone); helpClip.agButton_btn.addEventListener(MouseEvent.CLICK, linkAG); fx.zoomIn(hero, 0.3, 0.4, 2000, 300, 140, 300, 20, "easeOut", null); fx.zoomIn(titleClip, 0.4, 0.4, 2000, 20, 300, 20, 20, "easeOut", null); fx.zoomIn(btnPlay, 0.5, 0.4, 2000, 210, 300, 210, 20, "easeOut", null); fx.zoomIn(btnScores, 0.6, 0.4, 2000, 240, 300, 240, 20, "easeOut", null); fx.zoomIn(btnMore, 0.7, 0.4, 2000, 270, 300, 270, 20, "easeOut", null); fx.zoomIn(helpClip, 0.8, 0.4, 2000, 550, 300, 550, 20, "easeOut", null); } public function cleanup(){ var _local1:*; _local1 = 0; while (_local1 < particleArray.length) { particleArray[_local1].remove(); _local1++; }; removeEventListener(Event.ENTER_FRAME, render); destBitmap = null; destBitmapData.dispose(); flag = null; removeChild(container); container = null; removeChild(containerParticles); containerParticles = null; removeChild(titleClip); titleClip = null; removeChild(helpClip); helpClip = null; removeChild(hero); hero = null; camera = null; world.removeChild(plane); plane = null; scene.removeChild(world); world = null; scene = null; removeChild(containerPV3D); containerPV3D = null; removeChild(hud); hud = null; } public function displayTracks(){ var _local1:*; trackDisplay = true; scene = new Scene3D(containerPV3D, true); world = new DisplayObject3D(); scene.addChild(world); camera = new Camera3D(); camera.z = -500; camera.zoom = 11; camera.y = -1500; hud = new trackDetailsDisplay(); addChild(hud); fx.zoomIn(hud, 0, 0.4, 2000, 0, 0, 0, 10, "easeOut", null); trace(hud); btnRace = new raceBtn(); btnRace.x = 530; btnRace.y = 580; addChild(btnRace); btnRace.addEventListener(MouseEvent.CLICK, playGame); _local1 = 0; while (_local1 < Constants.TRACK_TITLE_ARRAY.length) { btnTrackSelect = new trackSelect(); btnTrackSelect.init(_local1, this); btnTrackSelect.trackID = _local1; btnTrackSelect.label = Constants.TRACK_TITLE_ARRAY[_local1]; addChild(btnTrackSelect); fx.zoomIn(btnTrackSelect, ((_local1 * 0.15) + 0.25), 0.4, 2000, (80 + (_local1 * 30)), 40, (80 + (_local1 * 20)), 20, "easeOut", null); trackButtonArray.push(btnTrackSelect); trace(btnTrackSelect); _local1++; }; hud.loadingDisplay.visible = false; display3DTrack(); } private function render(_arg1:Event){ var _local2:*; var _local3:*; flag.render(); _local2 = new Matrix(); _local2.scale(3, 3); container.transform.matrix = _local2; _local3 = 0; while (_local3 < particleArray.length) { particleArray[_local3].render(); _local3++; }; if (trackDisplay){ if (trackDisplayed3D){ world.rotationZ = (world.rotationZ + 3); scene.renderCamera(camera); }; }; } } }//package
Section 191
//credits_help (credits_help) package { import flash.display.*; public dynamic class credits_help extends MovieClip { public var agButton_btn:SimpleButton; public var btnBlastone:SimpleButton; } }//package
Section 192
//credits_musicControls (credits_musicControls) package { import controls.*; public dynamic class credits_musicControls extends MusicControls { } }//package
Section 193
//credits_playAgainBtn (credits_playAgainBtn) package { import flash.display.*; public dynamic class credits_playAgainBtn extends SimpleButton { } }//package
Section 194
//credits_playgameBtn (credits_playgameBtn) package { import flash.display.*; public dynamic class credits_playgameBtn extends SimpleButton { } }//package
Section 195
//credits_soundControls (credits_soundControls) package { import controls.*; public dynamic class credits_soundControls extends SoundControls { } }//package
Section 196
//credits_title (credits_title) package { import flash.display.*; public dynamic class credits_title extends MovieClip { } }//package
Section 197
//dot (dot) package { import flash.display.*; public dynamic class dot extends MovieClip { } }//package
Section 198
//flagBitmap (flagBitmap) package { import flash.display.*; public dynamic class flagBitmap extends BitmapData { public function flagBitmap(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 199
//focusRectSkin (focusRectSkin) package { import flash.display.*; public dynamic class focusRectSkin extends MovieClip { } }//package
Section 200
//GameManager (GameManager) package { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.text.*; import flash.utils.*; import com.markfennell.display.*; public class GameManager extends Sprite { public var stageWidth:Number; private var currentClass; public var state:String;// = "Credits" public var stageHeight:Number; public var gameScore:int; private var fx; public var STAGE:Stage; public static var _instance:GameManager = null; public function GameManager(_arg1){ state = "Credits"; currentClass = undefined; fx = new Fx(); super(); _instance = this; STAGE = _arg1; setState(state); } public function setState(_arg1){ switch (_arg1){ case "Credits": state = "credits"; if (currentClass != undefined){ currentClass.cleanup(); removeChild(currentClass); currentClass = null; }; currentClass = new Credits(); currentClass.init(STAGE); addChild(currentClass); break; case "Game": state = "game"; gameScore = 0; if (currentClass != undefined){ currentClass.cleanup(); removeChild(currentClass); currentClass = null; }; currentClass = new Core(); currentClass.init(STAGE); addChild(currentClass); break; case "GameOver": state = "gameover"; if (currentClass != null){ currentClass.cleanup(); removeChild(currentClass); currentClass = null; }; currentClass = new GameOver(); currentClass.init(STAGE); addChild(currentClass); break; case "Submit": state = "submit"; if (currentClass != null){ currentClass.cleanup(); removeChild(currentClass); currentClass = null; }; Root.submit(); break; }; } public static function getInstance(){ return (_instance); } } }//package
Section 201
//GameOver (GameOver) package { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.text.*; import flash.utils.*; import com.markfennell.display.*; public class GameOver extends Sprite { private var gameManager:GameManager; private var i:int;// = 0 private var fx; public function GameOver(){ fx = new Fx(); i = 0; super(); } public function init(_arg1){ var gameoverClip:*; var btnPlay:*; var playGame:Function; var submitScore:Function; var _stage = _arg1; playGame = function (_arg1:MouseEvent){ SoundManager.getInstance().playSound("Sound_Click"); GameManager.getInstance().setState("Credits"); }; submitScore = function (){ SoundManager.getInstance().playSound("Sound_Click"); GameManager.getInstance().setState("Submit"); }; gameoverClip = new src_gameover(); addChild(gameoverClip); fx.zoomIn(gameoverClip, 0, 0.5, 300, -1000, 300, 270, 0, "easeOut", null); btnPlay = new credits_playAgainBtn(); addChild(btnPlay); fx.zoomIn(btnPlay, 0, 0.5, 380, -1000, 380, 330, 0, "easeOut", null); btnPlay.addEventListener(MouseEvent.CLICK, playGame); } public function cleanup(){ } } }//package
Section 202
//Hero (Hero) package { import flash.display.*; public dynamic class Hero extends MovieClip { } }//package
Section 203
//Hud (Hud) package { import display.*; public dynamic class Hud extends Hud { } }//package
Section 204
//inputField (inputField) package { import flash.display.*; import flash.text.*; public dynamic class inputField extends MovieClip { public var hover:MovieClip; public var textInput:TextField; } }//package
Section 205
//Laptime (Laptime) package { import flash.display.*; import flash.text.*; public dynamic class Laptime extends MovieClip { public var timerText:TextField; } }//package
Section 206
//List_skin (List_skin) package { import flash.display.*; public dynamic class List_skin extends MovieClip { } }//package
Section 207
//MochiAd (MochiAd) package { import flash.display.*; import flash.events.*; import flash.net.*; import flash.utils.*; import flash.system.*; public class MochiAd { public static function getVersion():String{ return ("2.1"); } public static function showTimedAd(_arg1:Object):void{ MochiAd.showInterLevelAd(_arg1); } public static function _allowDomains(_arg1:String):String{ var _local2:String; _local2 = _arg1.split("/")[2].split(":")[0]; Security.allowDomain("*"); Security.allowDomain(_local2); Security.allowInsecureDomain("*"); Security.allowInsecureDomain(_local2); return (_local2); } public static function load(_arg1:Object):MovieClip{ var DEFAULTS:Object; var clip:Object; var depth:Number; var mc:MovieClip; var wh:Array; var lv:URLVariables; var k:String; var server:String; var hostname:String; var lc:LocalConnection; var name:String; var loader:Loader; var f:Function; var g:Function; var req:URLRequest; var v:Object; var options = _arg1; DEFAULTS = {server:"http://x.mochiads.com/srv/1/", method:"load", depth:10333, id:"_UNKNOWN_"}; options = MochiAd._parseOptions(options, DEFAULTS); options.swfv = 9; options.mav = MochiAd.getVersion(); clip = options.clip; if (!MochiAd._isNetworkAvailable()){ return (null); }; if (clip._mochiad_loaded){ return (null); }; depth = options.depth; delete options.depth; mc = createEmptyMovieClip(clip, "_mochiad", depth); wh = MochiAd._getRes(options, clip); options.res = ((wh[0] + "x") + wh[1]); options.server = (options.server + options.id); delete options.id; clip._mochiad_loaded = true; if (clip.loaderInfo.loaderURL.indexOf("http") == 0){ options.as3_swf = clip.loaderInfo.loaderURL; }; lv = new URLVariables(); for (k in options) { v = options[k]; if (!(v is Function)){ lv[k] = v; }; }; server = lv.server; delete lv.server; hostname = _allowDomains(server); lc = new LocalConnection(); lc.client = mc; name = ["", Math.floor(new Date().getTime()), Math.floor((Math.random() * 999999))].join("_"); lc.allowDomain("*", "localhost"); lc.allowInsecureDomain("*", "localhost"); lc.connect(name); mc.lc = lc; lv.lc = name; lv.st = getTimer(); loader = new Loader(); f = function (_arg1:Object):void{ mc._mochiad_ctr_failed = true; }; loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, f); g = function (_arg1:Object):void{ MochiAd.unload(clip); }; loader.contentLoaderInfo.addEventListener(Event.UNLOAD, g); req = new URLRequest((server + ".swf")); req.contentType = "application/x-www-form-urlencoded"; req.method = URLRequestMethod.POST; req.data = lv; loader.load(req); mc.addChild(loader); mc._mochiad_ctr = loader; return (mc); } public static function sendHighScore(_arg1:Object, _arg2:Object, _arg3:Object=null):Boolean{ var _local4:MovieClip; _local4 = MochiAd._loadCommunicator({clip:_arg1.clip, id:_arg1.id}); if (!_local4){ return (false); }; _local4.doSend(["sendHighScore", _arg1], _arg2, _arg3); return (true); } public static function _parseOptions(_arg1:Object, _arg2:Object):Object{ var _local3:Object; var _local4:String; var _local5:Array; var _local6:Number; var _local7:Array; _local3 = {}; for (_local4 in _arg2) { _local3[_local4] = _arg2[_local4]; }; if (_arg1){ for (_local4 in _arg1) { _local3[_local4] = _arg1[_local4]; }; }; _arg1 = _local3.clip.loaderInfo.parameters.mochiad_options; if (_arg1){ _local5 = _arg1.split("&"); _local6 = 0; while (_local6 < _local5.length) { _local7 = _local5[_local6].split("="); _local3[unescape(_local7[0])] = unescape(_local7[1]); _local6++; }; }; return (_local3); } public static function _isNetworkAvailable():Boolean{ return (!((Security.sandboxType == "localWithFile"))); } public static function unload(_arg1:Object):Boolean{ if (((_arg1.clip) && (_arg1.clip._mochiad))){ _arg1 = _arg1.clip; }; if (!_arg1._mochiad){ return (false); }; if (_arg1._mochiad.onUnload){ _arg1._mochiad.onUnload(); }; _arg1.removeChild(_arg1._mochiad); delete _arg1._mochiad_loaded; delete _arg1._mochiad; return (true); } public static function showInterLevelAd(_arg1:Object):void{ var DEFAULTS:Object; var clip:Object; var ad_msec:Number; var ad_timeout:Number; var fadeout_time:Number; var mc:MovieClip; var wh:Array; var w:Number; var h:Number; var chk:MovieClip; var options = _arg1; DEFAULTS = {ad_timeout:2000, fadeout_time:250, regpt:"o", method:"showTimedAd", ad_started:function ():void{ this.clip.stop(); }, ad_finished:function ():void{ this.clip.play(); }}; options = MochiAd._parseOptions(options, DEFAULTS); clip = options.clip; ad_msec = 11000; ad_timeout = options.ad_timeout; delete options.ad_timeout; fadeout_time = options.fadeout_time; delete options.fadeout_time; if (!MochiAd.load(options)){ options.ad_finished(); return; }; options.ad_started(); mc = clip._mochiad; mc["onUnload"] = function ():void{ options.ad_finished(); }; wh = MochiAd._getRes(options, clip); w = wh[0]; h = wh[1]; mc.x = (w * 0.5); mc.y = (h * 0.5); chk = createEmptyMovieClip(mc, "_mochiad_wait", 3); chk.ad_msec = ad_msec; chk.ad_timeout = ad_timeout; chk.started = getTimer(); chk.showing = false; chk.fadeout_time = fadeout_time; chk.fadeFunction = function ():void{ var _local1:Number; _local1 = (100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time))); if (_local1 > 0){ this.parent.alpha = (_local1 * 0.01); } else { MochiAd.unload(clip); delete this["onEnterFrame"]; }; }; mc.unloadAd = function ():void{ MochiAd.unload(clip); }; mc.adjustProgress = function (_arg1:Number):void{ var _local2:Object; _local2 = mc._mochiad_wait; _local2.server_control = true; _local2.started = getTimer(); _local2.ad_msec = (_arg1 - 250); }; chk["onEnterFrame"] = function ():void{ var _local1:Object; var _local2:Number; var _local3:Boolean; var _local4:Number; _local1 = this.parent._mochiad_ctr; _local2 = (getTimer() - this.started); _local3 = false; if (!chk.showing){ _local4 = _local1.loaderInfo.bytesTotal; if ((((_local4 > 0)) || (("number" == "undefined")))){ chk.showing = true; chk.started = getTimer(); } else { if (_local2 > chk.ad_timeout){ _local3 = true; }; }; }; if ((((_local2 > chk.ad_msec)) || (this.parent._mochiad_ctr_failed))){ _local3 = true; }; if (_local3){ if (this.server_control){ delete this.onEnterFrame; } else { this.fadeout_start = getTimer(); this.onEnterFrame = this.fadeFunction; }; }; }; doOnEnterFrame(chk); } public static function _getRes(_arg1:Object, _arg2:Object):Array{ var _local3:Object; var _local4:Number; var _local5:Number; var _local6:Array; _local3 = _arg2.getBounds(_arg2.root); _local4 = 0; _local5 = 0; if (typeof(_arg1.res) != "undefined"){ _local6 = _arg1.res.split("x"); _local4 = parseFloat(_local6[0]); _local5 = parseFloat(_local6[1]); } else { _local4 = (_local3.xMax - _local3.xMin); _local5 = (_local3.yMax - _local3.yMin); }; if ((((_local4 == 0)) || ((_local5 == 0)))){ _local4 = _arg2.stage.stageWidth; _local5 = _arg2.stage.stageHeight; }; return ([_local4, _local5]); } public static function createEmptyMovieClip(_arg1:Object, _arg2:String, _arg3:Number):MovieClip{ var _local4:MovieClip; _local4 = new MovieClip(); if (((false) && (_arg3))){ _arg1.addChildAt(_local4, _arg3); } else { _arg1.addChild(_local4); }; _arg1[_arg2] = _local4; _local4["_name"] = _arg2; return (_local4); } public static function _loadCommunicator(_arg1:Object):MovieClip{ var DEFAULTS:Object; var clip:Object; var clipname:String; var server:String; var depth:Number; var mc:MovieClip; var lv:URLVariables; var k:String; var lc:LocalConnection; var name:String; var req:URLRequest; var loader:Loader; var options = _arg1; DEFAULTS = {com_server:"http://x.mochiads.com/com/1/", method:"loadCommunicator", depth:10337, id:"_UNKNOWN_"}; options = MochiAd._parseOptions(options, DEFAULTS); options.swfv = 9; options.mav = MochiAd.getVersion(); clip = options.clip; clipname = ("_mochiad_com_" + options.id); if (!MochiAd._isNetworkAvailable()){ return (null); }; if (clip[clipname]){ return (clip[clipname]); }; server = (options.com_server + options.id); MochiAd._allowDomains(server); delete options.id; delete options.com_server; depth = options.depth; delete options.depth; mc = createEmptyMovieClip(clip, clipname, depth); lv = new URLVariables(); for (k in options) { lv[k] = options[k]; }; lc = new LocalConnection(); lc.client = mc; name = ["", Math.floor(new Date().getTime()), Math.floor((Math.random() * 999999))].join("_"); lc.allowDomain("*", "localhost"); lc.allowInsecureDomain("*", "localhost"); lc.connect(name); mc.name = name; mc.lc = lc; lv.lc = name; mc._id = 0; mc._queue = []; mc.rpcResult = function (_arg1:Object):void{ var _local3:Array; var _local4:Array; var _local5:Number; var _local6:Object; var _local7:Object; _arg1 = parseInt(_arg1.toString()); _local3 = mc._callbacks[_arg1]; if (typeof(_local3) == "undefined"){ return; }; delete mc._callbacks[_arg1]; _local4 = []; _local5 = 2; while (_local5 < _local3.length) { _local4.push(_local3[_local5]); _local5++; }; _local5 = 1; while (_local5 < arguments.length) { _local4.push(arguments[_local5]); _local5++; }; _local6 = _local3[1]; _local7 = _local3[0]; if (((_local7) && ((typeof(_local6) == "string")))){ _local6 = _local7[_local6]; }; if (typeof(_local6) == "function"){ _local6.apply(_local7, _local4); }; }; mc._didConnect = function (_arg1:String):void{ var _local2:Array; var _local3:Function; var _local4:Number; var _local5:Array; mc._endpoint = _arg1; _local2 = mc._queue; delete mc._queue; _local3 = mc.doSend; _local4 = 0; while (_local4 < _local2.length) { _local5 = _local2[_local4]; _local3.apply(this, _local5); _local4++; }; }; mc.doSend = function (_arg1:Array, _arg2:Object, _arg3:Object):void{ var _local5:Number; var _local6:LocalConnection; var _local7:Array; var _local8:Number; if (mc._endpoint == null){ _local7 = []; _local8 = 0; while (_local8 < arguments.length) { _local7.push(arguments[_local8]); _local8++; }; mc._queue.push(_local7); return; }; mc._id = (mc._id + 1); _local5 = mc._id; mc._callbacks[_local5] = [_arg2, ((_arg3) || (_arg2))]; _local6 = new LocalConnection(); _local6.send(mc._endpoint, "rpc", _local5, _arg1); }; mc._callbacks = {}; mc._callbacks[0] = [mc, "_didConnect"]; lv.st = getTimer(); req = new URLRequest((server + ".swf")); req.contentType = "application/x-www-form-urlencoded"; req.method = URLRequestMethod.POST; req.data = lv; loader = new Loader(); loader.load(req); mc.addChild(loader); mc._mochiad_com = loader; return (mc); } public static function showPreGameAd(_arg1:Object):void{ var DEFAULTS:Object; var clip:Object; var ad_msec:Number; var ad_timeout:Number; var fadeout_time:Number; var mc:MovieClip; var wh:Array; var w:Number; var h:Number; var chk:MovieClip; var bar:MovieClip; var bar_color:Number; var bar_background:Number; var bar_outline:Number; var backing_mc:MovieClip; var backing:Object; var inside_mc:MovieClip; var inside:Object; var outline_mc:MovieClip; var outline:Object; var complete:Boolean; var unloaded:Boolean; var f:Function; var r:MovieClip; var options = _arg1; DEFAULTS = {ad_timeout:3000, fadeout_time:250, regpt:"o", method:"showPreloaderAd", color:0xFF8A00, background:16777161, outline:13994812, ad_started:function ():void{ this.clip.stop(); }, ad_finished:function ():void{ this.clip.play(); }}; options = MochiAd._parseOptions(options, DEFAULTS); clip = options.clip; ad_msec = 11000; ad_timeout = options.ad_timeout; delete options.ad_timeout; fadeout_time = options.fadeout_time; delete options.fadeout_time; if (!MochiAd.load(options)){ options.ad_finished(); return; }; options.ad_started(); mc = clip._mochiad; mc["onUnload"] = function ():void{ var fn:Function; fn = function ():void{ options.ad_finished(); }; setTimeout(fn, 100); }; wh = MochiAd._getRes(options, clip); w = wh[0]; h = wh[1]; mc.x = (w * 0.5); mc.y = (h * 0.5); chk = createEmptyMovieClip(mc, "_mochiad_wait", 3); chk.x = (w * -0.5); chk.y = (h * -0.5); bar = createEmptyMovieClip(chk, "_mochiad_bar", 4); bar.x = 10; bar.y = (h - 20); bar_color = options.color; delete options.color; bar_background = options.background; delete options.background; bar_outline = options.outline; delete options.outline; backing_mc = createEmptyMovieClip(bar, "_outline", 1); backing = backing_mc.graphics; backing.beginFill(bar_background); backing.moveTo(0, 0); backing.lineTo((w - 20), 0); backing.lineTo((w - 20), 10); backing.lineTo(0, 10); backing.lineTo(0, 0); backing.endFill(); inside_mc = createEmptyMovieClip(bar, "_inside", 2); inside = inside_mc.graphics; inside.beginFill(bar_color); inside.moveTo(0, 0); inside.lineTo((w - 20), 0); inside.lineTo((w - 20), 10); inside.lineTo(0, 10); inside.lineTo(0, 0); inside.endFill(); inside_mc.scaleX = 0; outline_mc = createEmptyMovieClip(bar, "_outline", 3); outline = outline_mc.graphics; outline.lineStyle(0, bar_outline, 100); outline.moveTo(0, 0); outline.lineTo((w - 20), 0); outline.lineTo((w - 20), 10); outline.lineTo(0, 10); outline.lineTo(0, 0); chk.ad_msec = ad_msec; chk.ad_timeout = ad_timeout; chk.started = getTimer(); chk.showing = false; chk.last_pcnt = 0; chk.fadeout_time = fadeout_time; chk.fadeFunction = function ():void{ var _local1:Number; _local1 = (100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time))); if (_local1 > 0){ this.parent.alpha = (_local1 * 0.01); } else { MochiAd.unload(clip); delete this["onEnterFrame"]; }; }; complete = false; unloaded = false; f = function (_arg1:Event):void{ complete = true; if (unloaded){ MochiAd.unload(clip); }; }; clip.loaderInfo.addEventListener(Event.COMPLETE, f); if ((clip.root is MovieClip)){ r = (clip.root as MovieClip); if (r.framesLoaded >= r.totalFrames){ complete = true; }; }; mc.unloadAd = function ():void{ unloaded = true; if (complete){ MochiAd.unload(clip); }; }; mc.adjustProgress = function (_arg1:Number):void{ var _local2:Object; _local2 = mc._mochiad_wait; _local2.server_control = true; _local2.started = getTimer(); _local2.ad_msec = _arg1; }; chk["onEnterFrame"] = function ():void{ var _local1:Object; var _local2:Object; var _local3:Number; var _local4:Boolean; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Object; var _local10:Number; var _local11:Number; if (!this.parent.parent){ delete this["onEnterFrame"]; return; }; _local1 = this.parent.parent.root; _local2 = this.parent._mochiad_ctr; _local3 = (getTimer() - this.started); _local4 = false; _local5 = _local1.loaderInfo.bytesTotal; _local6 = _local1.loaderInfo.bytesLoaded; _local7 = ((100 * _local6) / _local5); _local8 = ((100 * _local3) / chk.ad_msec); _local9 = this._mochiad_bar._inside; _local10 = Math.min(100, Math.min(((_local7) || (0)), _local8)); _local10 = Math.max(this.last_pcnt, _local10); this.last_pcnt = _local10; _local9.scaleX = (_local10 * 0.01); if (!chk.showing){ _local11 = _local2.loaderInfo.bytesTotal; if ((((_local11 > 0)) || (("number" == "undefined")))){ chk.showing = true; chk.started = getTimer(); } else { if (_local3 > chk.ad_timeout){ _local4 = true; }; }; }; if ((((_local3 > chk.ad_msec)) || (this.parent._mochiad_ctr_failed))){ _local4 = true; }; if (((complete) && (_local4))){ if (this.server_control){ delete this.onEnterFrame; } else { this.fadeout_start = getTimer(); this.onEnterFrame = chk.fadeFunction; }; }; }; doOnEnterFrame(chk); } public static function showPreloaderAd(_arg1:Object):void{ MochiAd.showPreGameAd(_arg1); } public static function fetchHighScores(_arg1:Object, _arg2:Object, _arg3:Object=null):Boolean{ var _local4:MovieClip; _local4 = MochiAd._loadCommunicator({clip:_arg1.clip, id:_arg1.id}); if (!_local4){ return (false); }; _local4.doSend(["fetchHighScores", _arg1], _arg2, _arg3); return (true); } public static function doOnEnterFrame(_arg1:MovieClip):void{ var f:Function; var mc = _arg1; f = function (_arg1:Object):void{ if (((("onEnterFrame" in mc)) && (mc.onEnterFrame))){ mc.onEnterFrame(); } else { mc.removeEventListener(Event.ENTER_FRAME, f); }; }; mc.addEventListener(Event.ENTER_FRAME, f); } } }//package
Section 208
//moregamesBtn (moregamesBtn) package { import flash.display.*; public dynamic class moregamesBtn extends SimpleButton { } }//package
Section 209
//musicTrack (musicTrack) package { import flash.media.*; public dynamic class musicTrack extends Sound { } }//package
Section 210
//obstacleAnimal (obstacleAnimal) package { import flash.display.*; public dynamic class obstacleAnimal extends MovieClip { } }//package
Section 211
//obstacleArrowLeft (obstacleArrowLeft) package { import flash.display.*; public dynamic class obstacleArrowLeft extends BitmapData { public function obstacleArrowLeft(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 212
//obstacleArrowRight (obstacleArrowRight) package { import flash.display.*; public dynamic class obstacleArrowRight extends BitmapData { public function obstacleArrowRight(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 213
//obstacleBanner1 (obstacleBanner1) package { import flash.display.*; public dynamic class obstacleBanner1 extends BitmapData { public function obstacleBanner1(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 214
//obstacleBanner2 (obstacleBanner2) package { import flash.display.*; public dynamic class obstacleBanner2 extends BitmapData { public function obstacleBanner2(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 215
//obstacleBanner3 (obstacleBanner3) package { import flash.display.*; public dynamic class obstacleBanner3 extends BitmapData { public function obstacleBanner3(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 216
//obstacleBanner4 (obstacleBanner4) package { import flash.display.*; public dynamic class obstacleBanner4 extends BitmapData { public function obstacleBanner4(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 217
//obstacleBannerBack (obstacleBannerBack) package { import flash.display.*; public dynamic class obstacleBannerBack extends BitmapData { public function obstacleBannerBack(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 218
//obstacleBillboard1 (obstacleBillboard1) package { import flash.display.*; public dynamic class obstacleBillboard1 extends BitmapData { public function obstacleBillboard1(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 219
//obstacleBillboard2 (obstacleBillboard2) package { import flash.display.*; public dynamic class obstacleBillboard2 extends BitmapData { public function obstacleBillboard2(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 220
//obstacleBillboard3 (obstacleBillboard3) package { import flash.display.*; public dynamic class obstacleBillboard3 extends BitmapData { public function obstacleBillboard3(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 221
//obstacleBillboard4 (obstacleBillboard4) package { import flash.display.*; public dynamic class obstacleBillboard4 extends BitmapData { public function obstacleBillboard4(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 222
//obstacleBillboard5 (obstacleBillboard5) package { import flash.display.*; public dynamic class obstacleBillboard5 extends BitmapData { public function obstacleBillboard5(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 223
//obstacleBillboard6 (obstacleBillboard6) package { import flash.display.*; public dynamic class obstacleBillboard6 extends BitmapData { public function obstacleBillboard6(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 224
//obstacleBillboard7 (obstacleBillboard7) package { import flash.display.*; public dynamic class obstacleBillboard7 extends BitmapData { public function obstacleBillboard7(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 225
//obstacleBillboard8 (obstacleBillboard8) package { import flash.display.*; public dynamic class obstacleBillboard8 extends BitmapData { public function obstacleBillboard8(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 226
//obstacleBonus1 (obstacleBonus1) package { import flash.display.*; public dynamic class obstacleBonus1 extends MovieClip { } }//package
Section 227
//obstacleBonus2 (obstacleBonus2) package { import flash.display.*; public dynamic class obstacleBonus2 extends MovieClip { } }//package
Section 228
//obstacleCone (obstacleCone) package { import flash.display.*; public dynamic class obstacleCone extends MovieClip { public function obstacleCone(){ addFrameScript(0, frame1, 1, frame2, 2, frame3); } function frame3(){ stop(); } function frame1(){ stop(); } function frame2(){ stop(); } } }//package
Section 229
//obstacleConeOver (obstacleConeOver) package { import flash.display.*; public dynamic class obstacleConeOver extends MovieClip { } }//package
Section 230
//obstacleOil (obstacleOil) package { import flash.display.*; public dynamic class obstacleOil extends MovieClip { public function obstacleOil(){ addFrameScript(0, frame1, 1, frame2, 2, frame3); } function frame3(){ stop(); } function frame1(){ stop(); } function frame2(){ stop(); } } }//package
Section 231
//obstacleRock (obstacleRock) package { import flash.display.*; public dynamic class obstacleRock extends MovieClip { } }//package
Section 232
//obstacleSign (obstacleSign) package { import flash.display.*; public dynamic class obstacleSign extends BitmapData { public function obstacleSign(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 233
//obstacleTree1 (obstacleTree1) package { import flash.display.*; public dynamic class obstacleTree1 extends MovieClip { } }//package
Section 234
//obstacleTree2 (obstacleTree2) package { import flash.display.*; public dynamic class obstacleTree2 extends MovieClip { } }//package
Section 235
//obstacleTree3 (obstacleTree3) package { import flash.display.*; public dynamic class obstacleTree3 extends MovieClip { } }//package
Section 236
//obstacleTree4 (obstacleTree4) package { import flash.display.*; public dynamic class obstacleTree4 extends MovieClip { } }//package
Section 237
//obstacleTruss (obstacleTruss) package { import flash.display.*; public dynamic class obstacleTruss extends MovieClip { } }//package
Section 238
//particleSprite2D (particleSprite2D) package { import flash.display.*; public dynamic class particleSprite2D extends MovieClip { } }//package
Section 239
//particleStreak (particleStreak) package { import flash.display.*; public dynamic class particleStreak extends MovieClip { } }//package
Section 240
//phillipSkybox (phillipSkybox) package { import display.*; public dynamic class phillipSkybox extends Skybox { } }//package
Section 241
//phillipTrackBitmap (phillipTrackBitmap) package { import flash.display.*; public dynamic class phillipTrackBitmap extends BitmapData { public function phillipTrackBitmap(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 242
//phillipTrackBoundary (phillipTrackBoundary) package { import flash.display.*; public dynamic class phillipTrackBoundary extends MovieClip { } }//package
Section 243
//playBtn (playBtn) package { import flash.display.*; public dynamic class playBtn extends SimpleButton { } }//package
Section 244
//previewPhillipIsland (previewPhillipIsland) package { import flash.display.*; public dynamic class previewPhillipIsland extends MovieClip { } }//package
Section 245
//previewShanghai (previewShanghai) package { import flash.display.*; public dynamic class previewShanghai extends MovieClip { } }//package
Section 246
//raceBtn (raceBtn) package { import flash.display.*; public dynamic class raceBtn extends SimpleButton { } }//package
Section 247
//Racer (Racer) package { public dynamic class Racer extends Bike { } }//package
Section 248
//Root (Root) package { import flash.display.*; import flash.events.*; import flash.net.*; import flash.ui.*; public class Root extends MovieClip { private var ltl:int; public var Game; private var percent:int; public var preloader:MovieClip; public var VALID_URL:Array; private var lb:int; private var maskWidth:Number; public var scoreboard:MovieClip; public var GAME_TITLE:String;// = "MOTORACER" public var AGlogo_mc:MovieClip; public static var _root:MovieClip; public function Root(){ var myContextMenu:ContextMenu; var item:ContextMenuItem; var isValid:*; var url:*; var i:*; var onRootLoaderProgress:Function; var onRootLoaderComplete:Function; var advert:*; VALID_URL = ["http://www.blastone.com", "http://blastone.com", "http://127.0.0.1", "addictinggames", "http://markfennell.com", "file://"]; GAME_TITLE = "MOTORACER"; super(); addFrameScript(0, frame1, 8, frame9, 15, frame16, 29, frame30, 37, frame38, 44, frame45); _root = this; myContextMenu = new ContextMenu(); myContextMenu.hideBuiltInItems(); item = new ContextMenuItem("A Blastone.com game"); myContextMenu.customItems.push(item); item.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, this.menuItemSelectHandler); this.contextMenu = myContextMenu; isValid = false; url = _root.loaderInfo.url; i = 0; while (i < VALID_URL.length) { if (url.indexOf(VALID_URL[i]) != -1){ isValid = true; break; }; i = (i + 1); }; if (isValid){ onRootLoaderProgress = function (_arg1:ProgressEvent):void{ lb = _arg1.bytesLoaded; ltl = _arg1.bytesTotal; percent = ((lb / ltl) * 100); _root.preloader.percentage.text = (String(percent) + "%"); _root.preloader.preloaderBar.bar.width = ((maskWidth * lb) / ltl); }; onRootLoaderComplete = function (_arg1:Event):void{ _root.preloader.percentage.text = "100%"; _root.preloader.preloaderBar.bar.width = maskWidth; if (percent >= 100){ intro(); }; }; _root.preloader.game.title.text = GAME_TITLE; maskWidth = _root.preloader.preloaderBar.bar.width; _root.preloader.preloaderBar.bar.width = 0; this.loaderInfo.addEventListener(ProgressEvent.PROGRESS, onRootLoaderProgress); this.loaderInfo.addEventListener(Event.COMPLETE, onRootLoaderComplete); } else { _root.preloader.visible = false; advert = new MovieClip(); _root.addChild(advert); stop(); MochiAd.showPreGameAd({clip:advert, id:"a3e25437fe2de6ad", res:"600x600", background:0, color:0xFFC400, outline:0, no_bg:true, ad_finished:intro}); }; } function frame16(){ stop(); } function frame1(){ stop(); } function frame9(){ gotoAndPlay("intro"); stop(); } function frame30(){ Game = new GameManager(stage); addChild(Game); stop(); } function frame38(){ } function frame45(){ scoreboard.scores.setScore(GameManager.getInstance().gameScore, AssetManager.getInstance().trackID); stop(); } private function menuItemSelectHandler(_arg1:ContextMenuEvent):void{ var url:String; var request:URLRequest; var event = _arg1; url = "http://www.blastone.com"; request = new URLRequest(url); try { navigateToURL(request); } catch(e:Error) { }; } public static function submit(){ _root.gotoAndPlay("submit"); } public static function credits(){ _root.gotoAndPlay("game"); } public static function intro(){ _root.gotoAndPlay("intro"); } public static function restart(){ _root.gotoAndPlay("game"); } } }//package
Section 249
//scoreboard (scoreboard) package { import fl.controls.*; import fl.data.*; public dynamic class scoreboard extends Scoreboard { public var j1; public var collObj1:DataProvider; public var __id2_:ComboBox; public var collProp1:Object; public var itemObj1:SimpleCollectionItem; public var collProps1:Array; public var i1:int; public function scoreboard(){ __setProp___id2__score_1(); } function __setProp___id2__score_1(){ try { __id2_["componentInspectorSetting"] = true; } catch(e:Error) { }; collObj1 = new DataProvider(); collProps1 = []; i1 = 0; while (i1 < collProps1.length) { itemObj1 = new SimpleCollectionItem(); collProp1 = collProps1[i1]; for (j1 in collProp1) { itemObj1[j1] = collProp1[j1]; }; collObj1.addItem(itemObj1); i1++; }; __id2_.dataProvider = collObj1; __id2_.editable = false; __id2_.enabled = true; __id2_.prompt = ""; __id2_.restrict = ""; __id2_.rowCount = 5; __id2_.visible = true; try { __id2_["componentInspectorSetting"] = false; } catch(e:Error) { }; } } }//package
Section 250
//Scoreboard (Scoreboard) package { import fl.controls.*; import flash.display.*; import flash.events.*; import flash.filters.*; import flash.net.*; import flash.text.*; import com.meychi.ascrypt3.*; import com.markfennell.display.*; public class Scoreboard extends MovieClip { private var inputEmail:MovieClip; private var isTime:Boolean;// = true private var inputCountries:ComboBox; private var offsetX:Number;// = 10 private var spacer:Number;// = 30 private var offsetY:Number;// = -40 private var loader:URLLoader; private var KEY:String;// = "bLaStONe" public var btnBack:SimpleButton; private var countryArray; private var inputName:MovieClip; private var inputSubmit:MovieClip; private var score; private var textOptional:String;// = "(Optional)" private var glow:GlowFilter; private var centerY:Number; private var centerX:Number; public var preloaderBar:MovieClip; private var fx:Fx; private var score2:String; public var scoreText:TextField; private var PADDING:int;// = 7 public function Scoreboard(){ var _local1:TextFormat; var _local2:*; isTime = true; PADDING = 7; KEY = "bLaStONe"; offsetX = 10; offsetY = -40; centerX = (stage.stageWidth / 2); centerY = (stage.stageHeight / 2); spacer = 30; textOptional = "(Optional)"; glow = new GlowFilter(0xFF0000, 6, 6, 2); fx = new Fx(); countryArray = [[null, "Select Your Country"], ["AF", "Afghanistan"], ["AL", "Albania"], ["DZ", "Algeria"], ["AS", "American Samoa"], ["AG", "Antigua Barbuda"], ["AR", "Argentina"], ["AU", "Australia"], ["AT", "Austria"], ["AZ", "Azerbaijan"], ["BH", "Bahrain"], ["BD", "Bangladesh"], ["BB", "Barbados"], ["BY", "Belarus"], ["BE", "Belgium"], ["BZ", "Belize"], ["BJ", "Benin"], ["BM", "Bermuda"], ["BT", "Bhutan"], ["BO", "Bolivia"], ["BA", "Bosnia Herzegovina"], ["BW", "Botswana"], ["BR", "Brazil"], ["BN", "Brunei"], ["BG", "Bulgaria"], ["BF", "Burkina Faso"], ["BI", "Burundi"], ["KH", "Cambodia"], ["CM", "Cameroon"], ["CA", "Canada"], ["CV", "Cape Verde"], ["KY", "Cayman Islands"], ["CF", "Cent African Rep"], ["TD", "Chad"], ["JI", "Channel Islands"], ["CL", "Chile"], ["CN", "China"], ["CO", "Columbia"], ["KM", "Comoros"], ["CG", "Congo"], ["CK", "Cook Islands"], ["CR", "Costa Rica"], ["HR", "Croatia"], ["CU", "Cuba"], ["CY", "Cyprus"], ["CZ", "Czech Republic"], ["DK", "Denmark"], ["DM", "Dominica"], ["DO", "Dominican Republic"], ["TL", "East Timor"], ["EC", "Ecuador"], ["EG", "Egypt"], ["SV", "El Salvador"], ["GQ", "Equatorial Guinea"], ["ER", "Eritrea"], ["EE", "Estonia"], ["ET", "Ethiopia"], ["FJ", "Fiji"], ["FI", "Finland"], ["FR", "France"], ["GF", "French Guiana"], ["PF", "French Polynesia"], ["GM", "Gambia"], ["GE", "Georgia"], ["DE", "Germany"], ["GH", "Ghana"], ["GI", "Gibraltar"], ["GR", "Greece"], ["GL", "Greenland"], ["GD", "Grenada"], ["GP", "Guadeloupe"], ["GU", "Guam"], ["GT", "Guatemala"], ["GW", "Guinea Bissau"], ["GY", "Guyana"], ["HT", "Haiti"], ["HW", "Hawaii"], ["HN", "Honduras"], ["HK", "Hong Kong"], ["HU", "Hungary"], ["IS", "Iceland"], ["IN", "India"], ["ID", "Indonesia"], ["IR", "Iran"], ["IQ", "Iraq"], ["IE", "Ireland"], ["IM", "Isle of Man"], ["IL", "Israel"], ["IT", "Italy"], ["CI", "Ivory Coast"], ["JM", "Jamaica"], ["JP", "Japan"], ["JO", "Jordan"], ["KZ", "Kazakhstan"], ["KE", "Kenya"], ["KS", "Korea South"], ["KW", "Kuwait"], ["KG", "Kyrgyzstan"], ["LA", "Laos"], ["LV", "Latvia"], ["LB", "Lebanon"], ["LS", "Lesotho"], ["LR", "Liberia"], ["LY", "Libya"], ["LI", "Liechtenstein"], ["LT", "Lithuania"], ["LU", "Luxembourg"], ["MO", "Macau"], ["MK", "Macedonia"], ["MG", "Madagascar"], ["MW", "Malawi"], ["MY", "Malaysia"], ["MV", "Maldives"], ["ML", "Mali"], ["MT", "Malta"], ["MQ", "Martinique"], ["MU", "Mauritius"], ["YT", "Mayotte"], ["MX", "Mexico"], ["MD", "Moldova"], ["MC", "Monaco"], ["MN", "Mongolia"], ["MS", "Montserrat"], ["MA", "Morocco"], ["MZ", "Mozambique"], ["MM", "Myanmar"], ["NA", "Namibia"], ["NR", "Nauru"], ["NP", "Nepal"], ["NL", "Netherlands"], ["NC", "New Caledonia"], ["NZ", "New Zealand"], ["NI", "Nicaragua"], ["NE", "Niger"], ["NG", "Nigeria"], ["NO", "Norway"], ["OM", "Oman"], ["PK", "Pakistan"], ["PA", "Panama"], ["PG", "Papua New Guinea"], ["PY", "Paraguay"], ["PE", "Peru"], ["PH", "Philippines"], ["PN", "Pitcairn Island"], ["PL", "Poland"], ["PT", "Portugal"], ["PR", "Puerto Rico"], ["QA", "Qatar"], ["RE", "Reunion"], ["RO", "Romania"], ["RU", "Russia"], ["RW", "Rwanda"], ["SM", "San Marino"], ["ST", "Sao Tome Principe"], ["SA", "Saudi Arabia"], ["SN", "Senegal"], ["CS", "Serbia Montenegro"], ["SL", "Sierra Leone"], ["SG", "Singapore"], ["SK", "Slovakia"], ["SI", "Slovenia"], ["SB", "Solomon Islands"], ["SO", "Somalia"], ["ZA", "South Africa"], ["ES", "Spain"], ["LK", "Sri Lanka"], ["SH", "St Helena"], ["KN", "St Kitts-Nevis"], ["LC", "St Lucia"], ["MB", "St Maarten"], ["PM", "St Pierre Miquelon"], ["VC", "St Vincent Grenadines"], ["SD", "Sudan"], ["SR", "Suriname"], ["SZ", "Swaziland"], ["SE", "Sweden"], ["CH", "Switzerland"], ["SY", "Syria"], ["TA", "Tahiti"], ["TW", "Taiwan"], ["TJ", "Tajikistan"], ["TZ", "Tanzania"], ["TH", "Thailand"], ["TG", "Togo"], ["TT", "Trinidad Tobago"], ["TN", "Tunisia"], ["TR", "Turkey"], ["TM", "Turkmenistan"], ["UA", "Ukraine"], ["AE", "UAE"], ["GB", "United Kingdom"], ["US", "USA"], ["UY", "Uruguay"], ["UZ", "Uzbekistan"], ["VU", "Vanuatu"], ["VE", "Venezuela"], ["VN", "Vietnam"], ["VI", "Virgin Islands"], ["EH", "Western Sahara"], ["ZM", "Zambia"], ["ZW", "Zimbabwe"]]; super(); this.y = 1000; fx.zoomIn(this, 0.5, 0.25, this.x, this.y, this.x, 0, 10, "linear", null); inputName = new inputField(); inputName.x = offsetX; inputName.y = offsetY; setInput(inputName); inputEmail = new inputField(); inputEmail.x = offsetX; inputEmail.y = (offsetY + spacer); inputEmail.textInput.text = textOptional; setInput(inputEmail); inputCountries = new ComboBox(); inputCountries.setSize(160, 22); inputCountries.setStyle("color", 0xFF0000); _local1 = new TextFormat(); _local1.size = 11; _local1.color = 0xDDDDDD; inputCountries.textField.setStyle("textFormat", _local1); inputCountries.dropdown.setRendererStyle("textFormat", _local1); _local2 = 0; while (_local2 < countryArray.length) { inputCountries.addItem({label:countryArray[_local2][1], data:countryArray[_local2][0]}); _local2++; }; inputCountries.move(offsetX, (offsetY + (2 * spacer))); inputCountries.addEventListener(MouseEvent.CLICK, inputClear); inputSubmit = new submitButton(); inputSubmit.x = offsetX; inputSubmit.y = (offsetY + (4 * spacer)); inputSubmit.stop(); inputSubmit.addEventListener(MouseEvent.ROLL_OVER, inputSubmitHover); inputSubmit.addEventListener(MouseEvent.ROLL_OUT, inputSubmitRevert); inputSubmit.addEventListener(MouseEvent.CLICK, validate); addChild(inputName); addChild(inputEmail); addChild(inputCountries); addChild(inputSubmit); btnBack.addEventListener(MouseEvent.CLICK, mainMenu); } public function inputSubmitRevert(_arg1:MouseEvent){ _arg1.target.gotoAndStop(1); } private function validateEmail(_arg1:String):Boolean{ var _local2:RegExp; var _local3:Object; _local2 = /(\w|[_.\-])+@((\w|-)+\.)+\w{2,4}+/; _local3 = _local2.exec(_arg1); if (_local3 == null){ return (false); }; return (true); } private function submitData(){ var user:String; var email:String; var img:String; var rc4_text:String; var rc4:*; var rc4_hash:*; var url:String; var variables:URLVariables; var request:URLRequest; user = inputName.textInput.text; user.replace("|", ""); user.replace(",", ""); email = inputEmail.textInput.text; if (email == textOptional){ email = ""; }; trace(((email + " : ") + checksum(email))); img = inputCountries.selectedItem.data; rc4_text = (email + "|"); rc4_text = (rc4_text + (user + "|")); rc4_text = (rc4_text + (((score + "|") + checksum(score.toString())) + "|")); rc4_text = (rc4_text + (((score2 + "|") + checksum(score2.toString())) + "|")); rc4_text = (rc4_text + (((img + "|") + checksum(img.toString())) + "|")); rc4_text = (rc4_text + checksum(email)); rc4 = new RC4(); rc4_hash = rc4.encrypt(rc4_text, KEY); url = Constants.URL_SUBMIT_SCORE; variables = new URLVariables(); variables.xj25 = rc4_hash; request = new URLRequest(url); request.data = variables; request.method = URLRequestMethod.POST; loader = new URLLoader(); loader.addEventListener(Event.COMPLETE, thanks); loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, thanks); loader.addEventListener(IOErrorEvent.IO_ERROR, thanks); trace(((("loader: " + request.url) + "?") + request.data)); try { loader.load(request); } catch(e:Error) { trace("Error"); }; } function validate(_arg1:MouseEvent){ inputSubmit.gotoAndPlay(3); inputSubmit.alpha = 50; if (inputName.textInput.text.length > 1){ if ((((((inputEmail.textInput.text.length == 1)) || (validateEmail(inputEmail.textInput.text)))) || ((inputEmail.textInput.text == textOptional)))){ if (inputCountries.selectedIndex > 0){ fx.zoomIn(this, 0, 0.25, this.x, this.y, this.x, (this.y - 610), 10, "linear", submitData); } else { inputCountries.filters = [glow]; inputSubmit.alpha = 100; return (false); }; } else { inputEmail.filters = [glow]; inputSubmit.alpha = 100; return (false); }; } else { inputName.filters = [glow]; inputSubmit.alpha = 100; return (false); }; } private function checksum(_arg1:String){ var _local2:Number; var _local3:*; _local2 = 0; _local3 = 0; while (_local3 < _arg1.length) { _local2 = (_local2 + _arg1.charCodeAt(_local3)); _local3++; }; return (_local2); } public function setScore(_arg1, _arg2=null){ score = _arg1; score2 = _arg2; if ((score is Number)){ if (isTime){ scoreText.text = display(score); } else { scoreText.text = fx.padScore(score, PADDING); }; } else { scoreText.text = _arg1; }; } private function two(_arg1){ return ((((_arg1)>9) ? "" : "0" + _arg1)); } public function inputRevert(_arg1:MouseEvent){ _arg1.target.hover.visible = false; } private function is_null(_arg1:String){ if ((((_arg1 == null)) || ((_arg1 == "")))){ return ("null"); }; return (_arg1); } public function setInput(_arg1:MovieClip){ _arg1.hover.visible = false; _arg1.addEventListener(MouseEvent.ROLL_OVER, inputHover); _arg1.addEventListener(MouseEvent.ROLL_OUT, inputRevert); _arg1.addEventListener(MouseEvent.CLICK, inputClick); } public function inputHover(_arg1:MouseEvent){ _arg1.target.hover.visible = true; } private function display(_arg1:Number){ var _local2:*; var _local3:*; _local2 = Math.floor((_arg1 / 1000)); _local3 = Math.floor((_local2 / 60)); return ((((((_local3 % 60) + "'") + two((_local2 % 60))) + "\"") + three((_arg1 % 1000)))); } public function inputClear(_arg1:MouseEvent){ _arg1.target.filters = []; _arg1.target.parent.filters = []; } private function thanks(_arg1:Event){ fx.zoomIn(this, 0.5, 0.25, this.x, this.y, this.x, (this.y - 480), 10, "linear", null); fx.zoomIn(btnBack, 0.5, 0.25, btnBack.x, 2000, btnBack.x, 1124, 10, "linear", null); } public function mainMenu(_arg1:MouseEvent){ Root.restart(); } private function three(_arg1){ return (((((_arg1)>99) ? "" : "0" + ((_arg1)>9) ? "" : "0") + _arg1)); } public function inputSubmitHover(_arg1:MouseEvent){ _arg1.target.gotoAndStop(2); } public function inputClick(_arg1:MouseEvent){ _arg1.target.filters = []; _arg1.target.parent.filters = []; if (_arg1.target.text == textOptional){ _arg1.target.text = ""; }; } } }//package
Section 251
//scoresBtn (scoresBtn) package { import flash.display.*; public dynamic class scoresBtn extends SimpleButton { } }//package
Section 252
//ScrollArrowDown_disabledSkin (ScrollArrowDown_disabledSkin) package { import flash.display.*; public dynamic class ScrollArrowDown_disabledSkin extends MovieClip { } }//package
Section 253
//ScrollArrowDown_downSkin (ScrollArrowDown_downSkin) package { import flash.display.*; public dynamic class ScrollArrowDown_downSkin extends MovieClip { } }//package
Section 254
//ScrollArrowDown_overSkin (ScrollArrowDown_overSkin) package { import flash.display.*; public dynamic class ScrollArrowDown_overSkin extends MovieClip { } }//package
Section 255
//ScrollArrowDown_upSkin (ScrollArrowDown_upSkin) package { import flash.display.*; public dynamic class ScrollArrowDown_upSkin extends MovieClip { } }//package
Section 256
//ScrollArrowUp_disabledSkin (ScrollArrowUp_disabledSkin) package { import flash.display.*; public dynamic class ScrollArrowUp_disabledSkin extends MovieClip { } }//package
Section 257
//ScrollArrowUp_downSkin (ScrollArrowUp_downSkin) package { import flash.display.*; public dynamic class ScrollArrowUp_downSkin extends MovieClip { } }//package
Section 258
//ScrollArrowUp_overSkin (ScrollArrowUp_overSkin) package { import flash.display.*; public dynamic class ScrollArrowUp_overSkin extends MovieClip { } }//package
Section 259
//ScrollArrowUp_upSkin (ScrollArrowUp_upSkin) package { import flash.display.*; public dynamic class ScrollArrowUp_upSkin extends MovieClip { } }//package
Section 260
//ScrollBar_thumbIcon (ScrollBar_thumbIcon) package { import flash.display.*; public dynamic class ScrollBar_thumbIcon extends MovieClip { } }//package
Section 261
//ScrollThumb_downSkin (ScrollThumb_downSkin) package { import flash.display.*; public dynamic class ScrollThumb_downSkin extends MovieClip { } }//package
Section 262
//ScrollThumb_overSkin (ScrollThumb_overSkin) package { import flash.display.*; public dynamic class ScrollThumb_overSkin extends MovieClip { } }//package
Section 263
//ScrollThumb_upSkin (ScrollThumb_upSkin) package { import flash.display.*; public dynamic class ScrollThumb_upSkin extends MovieClip { } }//package
Section 264
//ScrollTrack_skin (ScrollTrack_skin) package { import flash.display.*; public dynamic class ScrollTrack_skin extends MovieClip { } }//package
Section 265
//shanghaiSkybox (shanghaiSkybox) package { import display.*; public dynamic class shanghaiSkybox extends Skybox { } }//package
Section 266
//shanghaiTrackBitmap (shanghaiTrackBitmap) package { import flash.display.*; public dynamic class shanghaiTrackBitmap extends BitmapData { public function shanghaiTrackBitmap(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 267
//shanghaiTrackBoundary (shanghaiTrackBoundary) package { import flash.display.*; public dynamic class shanghaiTrackBoundary extends MovieClip { } }//package
Section 268
//signBack (signBack) package { import flash.display.*; public dynamic class signBack extends BitmapData { public function signBack(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 269
//SliderThumb_disabledSkin (SliderThumb_disabledSkin) package { import flash.display.*; public dynamic class SliderThumb_disabledSkin extends MovieClip { } }//package
Section 270
//SliderThumb_downSkin (SliderThumb_downSkin) package { import flash.display.*; public dynamic class SliderThumb_downSkin extends MovieClip { } }//package
Section 271
//SliderThumb_overSkin (SliderThumb_overSkin) package { import flash.display.*; public dynamic class SliderThumb_overSkin extends MovieClip { } }//package
Section 272
//SliderThumb_upSkin (SliderThumb_upSkin) package { import flash.display.*; public dynamic class SliderThumb_upSkin extends MovieClip { } }//package
Section 273
//SliderTick_skin (SliderTick_skin) package { import flash.display.*; public dynamic class SliderTick_skin extends MovieClip { } }//package
Section 274
//SliderTrack_disabledSkin (SliderTrack_disabledSkin) package { import flash.display.*; public dynamic class SliderTrack_disabledSkin extends MovieClip { } }//package
Section 275
//SliderTrack_skin (SliderTrack_skin) package { import flash.display.*; public dynamic class SliderTrack_skin extends MovieClip { } }//package
Section 276
//Smash (Smash) package { import flash.media.*; public dynamic class Smash extends Sound { } }//package
Section 277
//Sound_Accelerate (Sound_Accelerate) package { import flash.media.*; public dynamic class Sound_Accelerate extends Sound { } }//package
Section 278
//Sound_Accelerate_Loop (Sound_Accelerate_Loop) package { import flash.media.*; public dynamic class Sound_Accelerate_Loop extends Sound { } }//package
Section 279
//Sound_Accelerate_Loop_Hi (Sound_Accelerate_Loop_Hi) package { import flash.media.*; public dynamic class Sound_Accelerate_Loop_Hi extends Sound { } }//package
Section 280
//Sound_Brake (Sound_Brake) package { import flash.media.*; public dynamic class Sound_Brake extends Sound { } }//package
Section 281
//Sound_Crash (Sound_Crash) package { import flash.media.*; public dynamic class Sound_Crash extends Sound { } }//package
Section 282
//Sound_Decay (Sound_Decay) package { import flash.media.*; public dynamic class Sound_Decay extends Sound { } }//package
Section 283
//Sound_Idle (Sound_Idle) package { import flash.media.*; public dynamic class Sound_Idle extends Sound { } }//package
Section 284
//Sound_Oil (Sound_Oil) package { import flash.media.*; public dynamic class Sound_Oil extends Sound { } }//package
Section 285
//Sound_Tree (Sound_Tree) package { import flash.media.*; public dynamic class Sound_Tree extends Sound { } }//package
Section 286
//SoundManager (SoundManager) package { import flash.events.*; import flash.media.*; import utilities.*; public class SoundManager { private var accelerationState:int;// = 0 private var sound_accelerate_loop_hi:SoundPlayer; private var sound_idle:SoundPlayer; private var sound_accelerate:SoundPlayer; private var sound_decay:SoundPlayer; private var music_position:Number;// = 0 private var sound_accelerate_loop:SoundPlayer; private var soundArray:Array; public var musicEnabled:Boolean;// = false public var soundsEnabled:Boolean;// = true private var sound_oil:SoundPlayer; private var music:SoundChannel; private var sound_water:SoundPlayer; private var sound_bonus:SoundPlayer; private var music_track:Sound; private var sound_crash:SoundPlayer; private var sound_brake:SoundPlayer; private var sound_bounce:SoundPlayer; private static var _instance:SoundManager = null; public function SoundManager(){ soundsEnabled = true; musicEnabled = false; music_track = new Sound(); music_position = 0; accelerationState = 0; super(); _instance = this; sound_accelerate = new SoundPlayer(new Sound_Accelerate()); sound_accelerate_loop = new SoundPlayer(new Sound_Accelerate_Loop()); sound_accelerate_loop_hi = new SoundPlayer(new Sound_Accelerate_Loop_Hi()); sound_brake = new SoundPlayer(new Sound_Brake()); sound_decay = new SoundPlayer(new Sound_Decay()); sound_oil = new SoundPlayer(new Sound_Oil()); sound_water = new SoundPlayer(new Sound_Oil()); sound_crash = new SoundPlayer(new Sound_Crash()); sound_bounce = new SoundPlayer(new Sound_Tree()); sound_idle = new SoundPlayer(new Sound_Idle()); soundArray = [sound_accelerate, sound_accelerate_loop, sound_brake, sound_decay, sound_oil, sound_crash, sound_bounce]; if (!musicEnabled){ music_track = new musicTrack(); startMusic(); }; } public function playSound(_arg1:String){ if (soundsEnabled){ switch (_arg1){ case "Sound_Accelerate": if ((((accelerationState == 0)) && ((sound_accelerate.soundState == SoundPlayer.FINISHED)))){ accelerationState = 1; }; if (accelerationState == 0){ sound_accelerate.play(); sound_accelerate_loop.stop(); } else { if (accelerationState == 1){ sound_accelerate.stop(); sound_accelerate_loop.play(); }; }; sound_brake.stop(); sound_decay.stop(); break; case "Sound_Brake": accelerationState = 0; sound_brake.play(); sound_accelerate.stop(); sound_accelerate_loop.stop(); sound_decay.stop(); sound_idle.stop(); break; case "Sound_Idle": accelerationState = 0; break; case "Sound_Decay": accelerationState = 0; sound_brake.stop(); sound_accelerate.stop(); sound_accelerate_loop.stop(); sound_decay.play(); break; case "Sound_Bonus": sound_bonus.play(); break; case "Sound_Oil": stopEngine(); sound_oil.play(); break; case "Sound_Water": stopEngine(); sound_water.play(); break; case "Sound_Crash": stopEngine(); sound_crash.play(); break; case "Sound_Bounce": stopEngine(); sound_bounce.play(); break; }; }; } public function stopMusic(){ trace(("Stop Music" + music)); musicEnabled = false; music.stop(); } public function stopEngine(){ accelerationState = 0; sound_brake.stop(); sound_accelerate.stop(); sound_accelerate_loop.stop(); sound_accelerate_loop_hi.stop(); sound_idle.stop(); sound_decay.stop(); } public function stopSounds(){ var _local1:*; _local1 = 0; while (_local1 < soundArray.length) { soundArray[_local1].stop(); _local1++; }; } public function startMusic(){ var _local1:SoundTransform; if (!musicEnabled){ music = music_track.play(0, 999, null); musicEnabled = true; _local1 = music.soundTransform; _local1.volume = 0.4; music.soundTransform = _local1; }; } public function musicRestart(_arg1:Event){ trace("Restart Music"); music.stop(); music = music_track.play(0, 9999); } public function pauseMusic(_arg1){ if (_arg1){ music_position = music.position; music.stop(); } else { music_track.play(music_position, 9999); }; } public static function getInstance():SoundManager{ if (_instance == null){ _instance = new (SoundManager); }; return (_instance); } } }//package
Section 287
//src_gameover (src_gameover) package { import display.*; public dynamic class src_gameover extends GameOverDisplay { } }//package
Section 288
//submitButton (submitButton) package { import flash.display.*; public dynamic class submitButton extends MovieClip { public function submitButton(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package
Section 289
//TextInput_disabledSkin (TextInput_disabledSkin) package { import flash.display.*; public dynamic class TextInput_disabledSkin extends MovieClip { } }//package
Section 290
//TextInput_upSkin (TextInput_upSkin) package { import flash.display.*; public dynamic class TextInput_upSkin extends MovieClip { } }//package
Section 291
//trackDetailsDisplay (trackDetailsDisplay) package { import flash.display.*; public dynamic class trackDetailsDisplay extends MovieClip { public var loadingDisplay:MovieClip; } }//package
Section 292
//trackSelect (trackSelect) package { import controls.*; public dynamic class trackSelect extends TrackSelect { } }//package

Library Items

Symbol 1 Sound {Smash}
Symbol 2 Bitmap {Blank}
Symbol 3 FontUsed by:4 342
Symbol 4 EditableTextUses:3Used by:5
Symbol 5 MovieClip {Laptime}Uses:4
Symbol 6 GraphicUsed by:7 24
Symbol 7 MovieClipUses:6Used by:23
Symbol 8 MovieClip {fl.core.ComponentShim}Used by:23 41 67 68 502 503
Symbol 9 GraphicUsed by:10
Symbol 10 MovieClip {SliderThumb_upSkin}Uses:9Used by:23
Symbol 11 GraphicUsed by:12
Symbol 12 MovieClip {SliderThumb_overSkin}Uses:11Used by:23
Symbol 13 GraphicUsed by:14
Symbol 14 MovieClip {SliderThumb_downSkin}Uses:13Used by:23
Symbol 15 GraphicUsed by:16
Symbol 16 MovieClip {SliderThumb_disabledSkin}Uses:15Used by:23
Symbol 17 GraphicUsed by:18
Symbol 18 MovieClip {SliderTrack_skin}Uses:17Used by:23
Symbol 19 GraphicUsed by:20
Symbol 20 MovieClip {SliderTick_skin}Uses:19Used by:23
Symbol 21 GraphicUsed by:22
Symbol 22 MovieClip {SliderTrack_disabledSkin}Uses:21Used by:23
Symbol 23 MovieClip {fl.controls.Slider}Uses:7 8 10 12 14 16 18 20 22
Symbol 24 MovieClipUses:6Used by:68 502 503
Symbol 25 GraphicUsed by:26
Symbol 26 MovieClip {List_skin}Uses:25Used by:68
Symbol 27 GraphicUsed by:28
Symbol 28 MovieClip {CellRenderer_upSkin}Uses:27Used by:41
Symbol 29 GraphicUsed by:30
Symbol 30 MovieClip {CellRenderer_disabledSkin}Uses:29Used by:41
Symbol 31 GraphicUsed by:32 33
Symbol 32 MovieClip {CellRenderer_downSkin}Uses:31Used by:41
Symbol 33 MovieClip {CellRenderer_overSkin}Uses:31Used by:41
Symbol 34 GraphicUsed by:35
Symbol 35 MovieClip {CellRenderer_selectedDisabledSkin}Uses:34Used by:41
Symbol 36 GraphicUsed by:37 38
Symbol 37 MovieClip {CellRenderer_selectedDownSkin}Uses:36Used by:41
Symbol 38 MovieClip {CellRenderer_selectedOverSkin}Uses:36Used by:41
Symbol 39 GraphicUsed by:40
Symbol 40 MovieClip {CellRenderer_selectedUpSkin}Uses:39Used by:41
Symbol 41 MovieClip {fl.controls.listClasses.CellRenderer}Uses:28 8 30 32 33 35 37 38 40Used by:68
Symbol 42 GraphicUsed by:43
Symbol 43 MovieClip {focusRectSkin}Uses:42Used by:67 68 502 503
Symbol 44 GraphicUsed by:45
Symbol 45 MovieClip {ScrollTrack_skin}Uses:44Used by:67
Symbol 46 GraphicUsed by:48 49 52 55
Symbol 47 GraphicUsed by:48 49 52 55 57 60
Symbol 48 MovieClip {ScrollArrowUp_downSkin}Uses:46 47Used by:67
Symbol 49 MovieClip {ScrollArrowDown_downSkin}Uses:46 47Used by:67
Symbol 50 GraphicUsed by:51
Symbol 51 MovieClip {ScrollThumb_downSkin}Uses:50Used by:67
Symbol 52 MovieClip {ScrollArrowDown_overSkin}Uses:46 47Used by:67
Symbol 53 GraphicUsed by:54
Symbol 54 MovieClip {ScrollThumb_overSkin}Uses:53Used by:67
Symbol 55 MovieClip {ScrollArrowUp_overSkin}Uses:46 47Used by:67
Symbol 56 GraphicUsed by:57 60
Symbol 57 MovieClip {ScrollArrowUp_upSkin}Uses:56 47Used by:67
Symbol 58 GraphicUsed by:59
Symbol 59 MovieClip {ScrollThumb_upSkin}Uses:58Used by:67
Symbol 60 MovieClip {ScrollArrowDown_upSkin}Uses:56 47Used by:67
Symbol 61 GraphicUsed by:62
Symbol 62 MovieClip {ScrollArrowDown_disabledSkin}Uses:61Used by:67
Symbol 63 GraphicUsed by:64
Symbol 64 MovieClip {ScrollArrowUp_disabledSkin}Uses:63Used by:67
Symbol 65 GraphicUsed by:66
Symbol 66 MovieClip {ScrollBar_thumbIcon}Uses:65Used by:67
Symbol 67 MovieClip {fl.controls.ScrollBar}Uses:45 8 43 48 49 51 52 54 55 57 59 60 62 64 66Used by:68
Symbol 68 MovieClip {fl.controls.List}Uses:24 8 26 41 43 67Used by:503
Symbol 69 FontUsed by:70 71 72 77 78 99 102 104 105 108 109 113 114 117 118 119 120 128 161 162 183 185 189 190 367 368
Symbol 70 TextUses:69Used by:81
Symbol 71 TextUses:69Used by:76
Symbol 72 TextUses:69Used by:76
Symbol 73 GraphicUsed by:76 80
Symbol 74 FontUsed by:75 79 127
Symbol 75 TextUses:74Used by:76
Symbol 76 ButtonUses:71 72 73 75Used by:81 129
Symbol 77 TextUses:69Used by:80
Symbol 78 TextUses:69Used by:80
Symbol 79 TextUses:74Used by:80
Symbol 80 ButtonUses:77 78 73 79Used by:81 129
Symbol 81 MovieClip {credits_soundControls}Uses:70 76 80Used by:160
Symbol 82 FontUsed by:83 94 95 97 333 335 337 339 460 463 464 470 471 474 476 487
Symbol 83 TextUses:82Used by:Timeline
Symbol 84 GraphicUsed by:85
Symbol 85 MovieClipUses:84Used by:Timeline
Symbol 86 GraphicUsed by:87 93 465 469
Symbol 87 MovieClipUses:86Used by:93
Symbol 88 GraphicUsed by:89 90 466 467
Symbol 89 MovieClipUses:88Used by:90
Symbol 90 MovieClipUses:88 89Used by:91
Symbol 91 MovieClipUses:90Used by:93
Symbol 92 GraphicUsed by:93 469
Symbol 93 MovieClip {motoracer_fla.preloader_3}Uses:86 87 91 92Used by:98
Symbol 94 EditableTextUses:82Used by:96
Symbol 95 TextUses:82Used by:96
Symbol 96 MovieClip {motoracer_fla.preloader_8}Uses:94 95Used by:98
Symbol 97 EditableTextUses:82Used by:98
Symbol 98 MovieClip {motoracer_fla.preloader_2}Uses:93 96 97Used by:Timeline
Symbol 99 TextUses:69Used by:101
Symbol 100 GraphicUsed by:101
Symbol 101 MovieClipUses:99 100Used by:103
Symbol 102 TextUses:69Used by:103
Symbol 103 MovieClip {credits_title}Uses:101 102Used by:Timeline
Symbol 104 TextUses:69Used by:107
Symbol 105 TextUses:69Used by:107
Symbol 106 GraphicUsed by:107
Symbol 107 Button {moregamesBtn}Uses:104 105 106Used by:Timeline
Symbol 108 TextUses:69Used by:111
Symbol 109 TextUses:69Used by:111 191
Symbol 110 GraphicUsed by:111 191
Symbol 111 Button {playBtn}Uses:108 109 110Used by:Timeline
Symbol 112 GraphicUsed by:121
Symbol 113 TextUses:69Used by:116
Symbol 114 TextUses:69Used by:116
Symbol 115 GraphicUsed by:116
Symbol 116 Button {credits_playAgainBtn}Uses:113 114 115Used by:121
Symbol 117 TextUses:69Used by:121
Symbol 118 EditableTextUses:69Used by:121
Symbol 119 TextUses:69Used by:121
Symbol 120 EditableTextUses:69Used by:121
Symbol 121 MovieClip {src_gameover}Uses:112 116 117 118 119 120Used by:Timeline
Symbol 122 FontUsed by:123
Symbol 123 TextUses:122Used by:125
Symbol 124 GraphicUsed by:125
Symbol 125 Button {credits_playgameBtn}Uses:123 124Used by:Timeline
Symbol 126 GraphicUsed by:160
Symbol 127 TextUses:74Used by:160
Symbol 128 TextUses:69Used by:129
Symbol 129 MovieClip {credits_musicControls}Uses:128 76 80Used by:160
Symbol 130 GraphicUsed by:131 132
Symbol 131 MovieClipUses:130Used by:132
Symbol 132 ButtonUses:131 130Used by:160
Symbol 133 GraphicUsed by:136 159
Symbol 134 BitmapUsed by:135
Symbol 135 GraphicUses:134Used by:136 158 159
Symbol 136 MovieClipUses:133 135Used by:159
Symbol 137 BitmapUsed by:138
Symbol 138 GraphicUses:137Used by:139 159
Symbol 139 MovieClipUses:138Used by:140
Symbol 140 MovieClip {motoracer_fla.mc_bomb_25}Uses:139Used by:159
Symbol 141 GraphicUsed by:142 159
Symbol 142 MovieClipUses:141Used by:149
Symbol 143 GraphicUsed by:144 159
Symbol 144 MovieClipUses:143Used by:149
Symbol 145 ShapeTweeningUsed by:149 159
Symbol 146 ShapeTweeningUsed by:149
Symbol 147 ShapeTweeningUsed by:149
Symbol 148 GraphicUsed by:149
Symbol 149 MovieClipUses:142 144 145 146 147 148Used by:150
Symbol 150 MovieClipUses:149Used by:154
Symbol 151 GraphicUsed by:152 159
Symbol 152 MovieClipUses:151Used by:153
Symbol 153 MovieClipUses:152Used by:154
Symbol 154 MovieClipUses:150 153Used by:155
Symbol 155 MovieClipUses:154Used by:156
Symbol 156 MovieClipUses:155Used by:159
Symbol 157 GraphicUsed by:158 159
Symbol 158 MovieClipUses:157 135Used by:159
Symbol 159 ButtonUses:136 140 156 158 133 135 138 141 143 145 151 157Used by:160
Symbol 160 MovieClip {credits_help}Uses:126 127 81 129 132 159Used by:Timeline
Symbol 161 TextUses:69Used by:164
Symbol 162 TextUses:69Used by:164
Symbol 163 GraphicUsed by:164
Symbol 164 Button {scoresBtn}Uses:161 162 163Used by:Timeline
Symbol 165 GraphicUsed by:176
Symbol 166 Sound {Sound_Accelerate}Used by:176
Symbol 167 Sound {Sound_Idle}Used by:176
Symbol 168 Sound {Sound_Accelerate_Loop}Used by:176
Symbol 169 Sound {Sound_Brake}Used by:176
Symbol 170 Sound {Sound_Crash}Used by:176
Symbol 171 Sound {Sound_Decay}Used by:176
Symbol 172 Sound {Sound_Oil}Used by:176
Symbol 173 Sound {musicTrack}Used by:176
Symbol 174 Sound {Sound_Accelerate_Loop_Hi}Used by:176
Symbol 175 Sound {Sound_Tree}Used by:176
Symbol 176 MovieClipUses:165 166 167 168 169 170 171 172 173 174 175Used by:Timeline
Symbol 177 Bitmap {flagBitmap}Used by:Timeline
Symbol 178 GraphicUsed by:179
Symbol 179 MovieClip {particleStreak}Uses:178Used by:Timeline
Symbol 180 BitmapUsed by:181
Symbol 181 GraphicUses:180Used by:182
Symbol 182 MovieClip {Hero}Uses:181Used by:Timeline
Symbol 183 EditableTextUses:69Used by:184
Symbol 184 MovieClip {motoracer_fla.credits_42}Uses:183Used by:186
Symbol 185 TextUses:69Used by:186
Symbol 186 MovieClip {trackDetailsDisplay}Uses:184 185Used by:Timeline
Symbol 187 GraphicUsed by:188
Symbol 188 MovieClip {previewPhillipIsland}Uses:187Used by:Timeline
Symbol 189 TextUses:69Used by:191
Symbol 190 TextUses:69Used by:191
Symbol 191 Button {raceBtn}Uses:189 190 110 109Used by:Timeline
Symbol 192 BitmapUsed by:193
Symbol 193 GraphicUses:192Used by:317
Symbol 194 GraphicUsed by:198
Symbol 195 GraphicUsed by:196
Symbol 196 MovieClipUses:195Used by:197
Symbol 197 MovieClipUses:196Used by:198
Symbol 198 MovieClip {bike.wheel.fx}Uses:194 197Used by:317  Timeline
Symbol 199 BitmapUsed by:200
Symbol 200 GraphicUses:199Used by:317
Symbol 201 BitmapUsed by:202
Symbol 202 GraphicUses:201Used by:317
Symbol 203 BitmapUsed by:204
Symbol 204 GraphicUses:203Used by:317
Symbol 205 BitmapUsed by:206
Symbol 206 GraphicUses:205Used by:317
Symbol 207 BitmapUsed by:208
Symbol 208 GraphicUses:207Used by:317
Symbol 209 BitmapUsed by:210
Symbol 210 GraphicUses:209Used by:317
Symbol 211 BitmapUsed by:212
Symbol 212 GraphicUses:211Used by:317
Symbol 213 BitmapUsed by:214
Symbol 214 GraphicUses:213Used by:317
Symbol 215 BitmapUsed by:216
Symbol 216 GraphicUses:215Used by:317
Symbol 217 BitmapUsed by:218
Symbol 218 GraphicUses:217Used by:317
Symbol 219 BitmapUsed by:220
Symbol 220 GraphicUses:219Used by:317
Symbol 221 BitmapUsed by:222
Symbol 222 GraphicUses:221Used by:317
Symbol 223 BitmapUsed by:224
Symbol 224 GraphicUses:223Used by:317
Symbol 225 BitmapUsed by:226
Symbol 226 GraphicUses:225Used by:317
Symbol 227 BitmapUsed by:228
Symbol 228 GraphicUses:227Used by:317
Symbol 229 BitmapUsed by:230
Symbol 230 GraphicUses:229Used by:317
Symbol 231 BitmapUsed by:232
Symbol 232 GraphicUses:231Used by:317
Symbol 233 BitmapUsed by:234
Symbol 234 GraphicUses:233Used by:317
Symbol 235 BitmapUsed by:236
Symbol 236 GraphicUses:235Used by:317
Symbol 237 BitmapUsed by:238
Symbol 238 GraphicUses:237Used by:317
Symbol 239 BitmapUsed by:240
Symbol 240 GraphicUses:239Used by:317
Symbol 241 BitmapUsed by:242
Symbol 242 GraphicUses:241Used by:317
Symbol 243 BitmapUsed by:244
Symbol 244 GraphicUses:243Used by:317
Symbol 245 BitmapUsed by:246
Symbol 246 GraphicUses:245Used by:317
Symbol 247 BitmapUsed by:248
Symbol 248 GraphicUses:247Used by:317
Symbol 249 BitmapUsed by:250
Symbol 250 GraphicUses:249Used by:317
Symbol 251 BitmapUsed by:252
Symbol 252 GraphicUses:251Used by:317
Symbol 253 BitmapUsed by:254
Symbol 254 GraphicUses:253Used by:317
Symbol 255 BitmapUsed by:256
Symbol 256 GraphicUses:255Used by:317
Symbol 257 BitmapUsed by:258
Symbol 258 GraphicUses:257Used by:317
Symbol 259 BitmapUsed by:260
Symbol 260 GraphicUses:259Used by:317
Symbol 261 BitmapUsed by:262
Symbol 262 GraphicUses:261Used by:317
Symbol 263 BitmapUsed by:264
Symbol 264 GraphicUses:263Used by:317
Symbol 265 BitmapUsed by:266
Symbol 266 GraphicUses:265Used by:317
Symbol 267 BitmapUsed by:268
Symbol 268 GraphicUses:267Used by:317
Symbol 269 BitmapUsed by:270
Symbol 270 GraphicUses:269Used by:317
Symbol 271 BitmapUsed by:272
Symbol 272 GraphicUses:271Used by:317
Symbol 273 BitmapUsed by:274
Symbol 274 GraphicUses:273Used by:317
Symbol 275 BitmapUsed by:276
Symbol 276 GraphicUses:275Used by:317
Symbol 277 BitmapUsed by:278
Symbol 278 GraphicUses:277Used by:317
Symbol 279 BitmapUsed by:280
Symbol 280 GraphicUses:279Used by:317
Symbol 281 BitmapUsed by:282
Symbol 282 GraphicUses:281Used by:317
Symbol 283 BitmapUsed by:284
Symbol 284 GraphicUses:283Used by:317
Symbol 285 BitmapUsed by:286
Symbol 286 GraphicUses:285Used by:317
Symbol 287 BitmapUsed by:288
Symbol 288 GraphicUses:287Used by:317
Symbol 289 BitmapUsed by:290
Symbol 290 GraphicUses:289Used by:317
Symbol 291 BitmapUsed by:292
Symbol 292 GraphicUses:291Used by:317
Symbol 293 BitmapUsed by:294
Symbol 294 GraphicUses:293Used by:317
Symbol 295 BitmapUsed by:296
Symbol 296 GraphicUses:295Used by:317
Symbol 297 BitmapUsed by:298
Symbol 298 GraphicUses:297Used by:317
Symbol 299 BitmapUsed by:300
Symbol 300 GraphicUses:299Used by:317
Symbol 301 BitmapUsed by:302
Symbol 302 GraphicUses:301Used by:317
Symbol 303 BitmapUsed by:304
Symbol 304 GraphicUses:303Used by:317
Symbol 305 BitmapUsed by:306
Symbol 306 GraphicUses:305Used by:317
Symbol 307 BitmapUsed by:308
Symbol 308 GraphicUses:307Used by:317
Symbol 309 BitmapUsed by:310
Symbol 310 GraphicUses:309Used by:317
Symbol 311 BitmapUsed by:312
Symbol 312 GraphicUses:311Used by:317
Symbol 313 BitmapUsed by:314
Symbol 314 GraphicUses:313Used by:317
Symbol 315 BitmapUsed by:316
Symbol 316 GraphicUses:315Used by:317
Symbol 317 MovieClip {motoracer_fla.bike_46}Uses:193 198 200 202 204 206 208 210 212 214 216 218 220 222 224 226 228 230 232 234 236 238 240 242 244 246 248 250 252 254 256 258 260 262 264 266 268 270 272 274 276 278 280 282 284 286 288 290 292 294 296 298 300 302 304 306 308 310 312 314 316Used by:318
Symbol 318 MovieClip {Racer}Uses:317Used by:Timeline
Symbol 319 GraphicUsed by:320
Symbol 320 MovieClip {dot}Uses:319Used by:Timeline
Symbol 321 GraphicUsed by:362
Symbol 322 GraphicUsed by:323
Symbol 323 MovieClipUses:322Used by:362
Symbol 324 GraphicUsed by:325
Symbol 325 MovieClipUses:324Used by:327
Symbol 326 GraphicUsed by:327
Symbol 327 MovieClip {motoracer_fla.hud_53}Uses:325 326Used by:362
Symbol 328 FontUsed by:329 345
Symbol 329 EditableTextUses:328Used by:362
Symbol 330 FontUsed by:331 463
Symbol 331 TextUses:330Used by:332
Symbol 332 MovieClipUses:331Used by:362
Symbol 333 TextUses:82Used by:334
Symbol 334 MovieClipUses:333Used by:341
Symbol 335 TextUses:82Used by:336
Symbol 336 MovieClipUses:335Used by:341
Symbol 337 TextUses:82Used by:338
Symbol 338 MovieClipUses:337Used by:341
Symbol 339 TextUses:82Used by:340
Symbol 340 MovieClipUses:339Used by:341
Symbol 341 MovieClip {motoracer_fla.start_anim_56}Uses:334 336 338 340Used by:362
Symbol 342 EditableTextUses:3Used by:343
Symbol 343 MovieClip {motoracer_fla.hud_62}Uses:342Used by:344
Symbol 344 MovieClip {motoracer_fla.hud_61}Uses:343Used by:362
Symbol 345 TextUses:328Used by:362
Symbol 346 FontUsed by:347 348 349
Symbol 347 TextUses:346Used by:362
Symbol 348 TextUses:346Used by:362
Symbol 349 TextUses:346Used by:362
Symbol 350 FontUsed by:351 352 353 354 355 357
Symbol 351 EditableTextUses:350Used by:361
Symbol 352 EditableTextUses:350Used by:361
Symbol 353 EditableTextUses:350Used by:361
Symbol 354 EditableTextUses:350Used by:358
Symbol 355 EditableTextUses:350Used by:358
Symbol 356 GraphicUsed by:358
Symbol 357 EditableTextUses:350Used by:358
Symbol 358 ButtonUses:354 355 356 357Used by:361
Symbol 359 GraphicUsed by:360
Symbol 360 ButtonUses:359Used by:361
Symbol 361 MovieClip {Controls}Uses:351 352 353 358 360Used by:362
Symbol 362 MovieClip {Hud}Uses:321 323 327 329 332 341 344 345 347 348 349 361Used by:Timeline
Symbol 363 GraphicUsed by:364
Symbol 364 MovieClip {particleSprite2D}Uses:363Used by:Timeline
Symbol 365 GraphicUsed by:366
Symbol 366 MovieClip {previewShanghai}Uses:365Used by:Timeline
Symbol 367 EditableTextUses:69Used by:372
Symbol 368 EditableTextUses:69Used by:369
Symbol 369 MovieClip {motoracer_fla.credits_69}Uses:368Used by:372
Symbol 370 GraphicUsed by:371
Symbol 371 ButtonUses:370Used by:372
Symbol 372 MovieClip {trackSelect}Uses:367 369 371Used by:Timeline
Symbol 373 BitmapUsed by:374
Symbol 374 GraphicUses:373Used by:375
Symbol 375 MovieClipUses:374Used by:376
Symbol 376 MovieClip {shanghaiSkybox}Uses:375Used by:Timeline
Symbol 377 Bitmap {shanghaiTrackBitmap}Used by:Timeline
Symbol 378 GraphicUsed by:380
Symbol 379 MovieClipUsed by:380
Symbol 380 MovieClip {shanghaiTrackBoundary}Uses:378 379Used by:Timeline
Symbol 381 BitmapUsed by:382
Symbol 382 GraphicUses:381Used by:383
Symbol 383 MovieClipUses:382Used by:384
Symbol 384 MovieClip {phillipSkybox}Uses:383Used by:Timeline
Symbol 385 Bitmap {phillipTrackBitmap}Used by:Timeline
Symbol 386 GraphicUsed by:388
Symbol 387 MovieClipUsed by:388
Symbol 388 MovieClip {phillipTrackBoundary}Uses:386 387Used by:Timeline
Symbol 389 Bitmap {obstacleBannerBack}Used by:Timeline
Symbol 390 Bitmap {obstacleBanner2}Used by:Timeline
Symbol 391 Bitmap {obstacleBanner3}Used by:Timeline
Symbol 392 Bitmap {obstacleBanner1}Used by:Timeline
Symbol 393 Bitmap {obstacleBillboard6}Used by:Timeline
Symbol 394 BitmapUsed by:395
Symbol 395 GraphicUses:394Used by:396
Symbol 396 MovieClip {obstacleAnimal}Uses:395Used by:Timeline
Symbol 397 BitmapUsed by:398
Symbol 398 GraphicUses:397Used by:399
Symbol 399 MovieClip {obstacleBonus1}Uses:398Used by:Timeline
Symbol 400 BitmapUsed by:401
Symbol 401 GraphicUses:400Used by:402
Symbol 402 MovieClip {obstacleBonus2}Uses:401Used by:Timeline
Symbol 403 BitmapUsed by:404
Symbol 404 GraphicUses:403Used by:408
Symbol 405 BitmapUsed by:406 407
Symbol 406 GraphicUses:405Used by:408 409 410
Symbol 407 GraphicUses:405Used by:408 410
Symbol 408 MovieClip {obstacleCone}Uses:404 406 407Used by:Timeline
Symbol 409 MovieClip {obstacleConeOver}Uses:406Used by:Timeline
Symbol 410 MovieClip {obstacleOil}Uses:406 407Used by:Timeline
Symbol 411 BitmapUsed by:412
Symbol 412 GraphicUses:411Used by:413
Symbol 413 MovieClip {obstacleRock}Uses:412Used by:Timeline
Symbol 414 BitmapUsed by:415
Symbol 415 GraphicUses:414Used by:416
Symbol 416 MovieClip {obstacleTree1}Uses:415Used by:Timeline
Symbol 417 BitmapUsed by:418
Symbol 418 GraphicUses:417Used by:419
Symbol 419 MovieClip {obstacleTree2}Uses:418Used by:Timeline
Symbol 420 BitmapUsed by:421
Symbol 421 GraphicUses:420Used by:422
Symbol 422 MovieClip {obstacleTree3}Uses:421Used by:Timeline
Symbol 423 BitmapUsed by:424
Symbol 424 GraphicUses:423Used by:425
Symbol 425 MovieClip {obstacleTree4}Uses:424Used by:Timeline
Symbol 426 BitmapUsed by:427
Symbol 427 GraphicUses:426Used by:428
Symbol 428 MovieClip {obstacleTruss}Uses:427Used by:Timeline
Symbol 429 Bitmap {obstacleBillboard7}Used by:Timeline
Symbol 430 Bitmap {obstacleSign}Used by:Timeline
Symbol 431 Bitmap {obstacleArrowLeft}Used by:Timeline
Symbol 432 Bitmap {obstacleArrowRight}Used by:Timeline
Symbol 433 Bitmap {signBack}Used by:Timeline
Symbol 434 Bitmap {obstacleBillboard1}Used by:Timeline
Symbol 435 Bitmap {obstacleBillboard3}Used by:Timeline
Symbol 436 Bitmap {obstacleBillboard8}Used by:Timeline
Symbol 437 Bitmap {obstacleBillboard2}Used by:Timeline
Symbol 438 Bitmap {obstacleBillboard4}Used by:Timeline
Symbol 439 Bitmap {obstacleBillboard5}Used by:Timeline
Symbol 440 Bitmap {obstacleBanner4}Used by:Timeline
Symbol 441 GraphicUsed by:446 451
Symbol 442 GraphicUsed by:446
Symbol 443 GraphicUsed by:446
Symbol 444 GraphicUsed by:446
Symbol 445 GraphicUsed by:446
Symbol 446 ButtonUses:441 442 443 444 445Used by:451
Symbol 447 GraphicUsed by:448
Symbol 448 MovieClipUses:447Used by:451
Symbol 449 GraphicUsed by:450
Symbol 450 MovieClipUses:449Used by:451
Symbol 451 MovieClip {motoracer_fla.AGteaser_mc_92}Uses:441 446 448 450Used by:452
Symbol 452 MovieClip {motoracer_fla.logo_91}Uses:451Used by:Timeline
Symbol 453 ShapeTweeningUsed by:455
Symbol 454 GraphicUsed by:455
Symbol 455 MovieClip {motoracer_fla.score_98}Uses:453 454Used by:456
Symbol 456 MovieClip {motoracer_fla.score_97}Uses:455Used by:505
Symbol 457 BitmapUsed by:458
Symbol 458 GraphicUses:457Used by:459
Symbol 459 MovieClipUses:458Used by:505
Symbol 460 TextUses:82Used by:504
Symbol 461 FontUsed by:462
Symbol 462 TextUses:461Used by:504
Symbol 463 EditableTextUses:82 330Used by:504
Symbol 464 TextUses:82Used by:504
Symbol 465 MovieClipUses:86Used by:469
Symbol 466 MovieClipUses:88Used by:467
Symbol 467 MovieClipUses:88 466Used by:468
Symbol 468 MovieClipUses:467Used by:469
Symbol 469 MovieClip {motoracer_fla.scoreboard_101}Uses:86 465 468 92Used by:504
Symbol 470 TextUses:82Used by:473
Symbol 471 TextUses:82Used by:473
Symbol 472 GraphicUsed by:473
Symbol 473 ButtonUses:470 471 472Used by:504
Symbol 474 TextUses:82Used by:504
Symbol 475 GraphicUsed by:504
Symbol 476 TextUses:82Used by:504
Symbol 477 GraphicUsed by:504
Symbol 478 GraphicUsed by:484
Symbol 479 GraphicUsed by:480
Symbol 480 MovieClipUses:479Used by:484
Symbol 481 GraphicUsed by:484
Symbol 482 FontUsed by:483
Symbol 483 EditableTextUses:482Used by:484
Symbol 484 MovieClip {inputField}Uses:478 480 481 483Used by:504
Symbol 485 GraphicUsed by:489
Symbol 486 GraphicUsed by:489
Symbol 487 TextUses:82Used by:489
Symbol 488 GraphicUsed by:489
Symbol 489 MovieClip {submitButton}Uses:485 486 487 488Used by:504
Symbol 490 GraphicUsed by:491
Symbol 491 MovieClip {ComboBox_upSkin}Uses:490Used by:503
Symbol 492 GraphicUsed by:493
Symbol 493 MovieClip {ComboBox_disabledSkin}Uses:492Used by:503
Symbol 494 GraphicUsed by:495
Symbol 495 MovieClip {ComboBox_overSkin}Uses:494Used by:503
Symbol 496 GraphicUsed by:497
Symbol 497 MovieClip {ComboBox_downSkin}Uses:496Used by:503
Symbol 498 GraphicUsed by:499
Symbol 499 MovieClip {TextInput_disabledSkin}Uses:498Used by:502
Symbol 500 GraphicUsed by:501
Symbol 501 MovieClip {TextInput_upSkin}Uses:500Used by:502
Symbol 502 MovieClip {fl.controls.TextInput}Uses:24 8 499 501 43Used by:503
Symbol 503 MovieClip {fl.controls.ComboBox}Uses:24 8 43 491 493 495 497 502 68Used by:504
Symbol 504 MovieClip {scoreboard}Uses:460 462 463 464 469 473 474 475 476 477 484 489 503Used by:505
Symbol 505 MovieClip {motoracer_fla.score_96}Uses:456 459 504Used by:Timeline

Instance Names

"AGlogo_mc"Frame 1Symbol 85 MovieClip
"preloader"Frame 1Symbol 98 MovieClip {motoracer_fla.preloader_2}
"scoreboard"Frame 45Symbol 505 MovieClip {motoracer_fla.score_96}
"timerText"Symbol 5 MovieClip {Laptime} Frame 1Symbol 4 EditableText
"btnOn"Symbol 81 MovieClip {credits_soundControls} Frame 1Symbol 76 Button
"btnOff"Symbol 81 MovieClip {credits_soundControls} Frame 1Symbol 80 Button
"bar"Symbol 93 MovieClip {motoracer_fla.preloader_3} Frame 1Symbol 87 MovieClip
"title"Symbol 96 MovieClip {motoracer_fla.preloader_8} Frame 1Symbol 94 EditableText
"preloaderBar"Symbol 98 MovieClip {motoracer_fla.preloader_2} Frame 1Symbol 93 MovieClip {motoracer_fla.preloader_3}
"game"Symbol 98 MovieClip {motoracer_fla.preloader_2} Frame 1Symbol 96 MovieClip {motoracer_fla.preloader_8}
"percentage"Symbol 98 MovieClip {motoracer_fla.preloader_2} Frame 1Symbol 97 EditableText
"btnReplay"Symbol 121 MovieClip {src_gameover} Frame 1Symbol 116 Button {credits_playAgainBtn}
"scoreText"Symbol 121 MovieClip {src_gameover} Frame 1Symbol 118 EditableText
"bestText"Symbol 121 MovieClip {src_gameover} Frame 1Symbol 120 EditableText
"btnOn"Symbol 129 MovieClip {credits_musicControls} Frame 1Symbol 76 Button
"btnOff"Symbol 129 MovieClip {credits_musicControls} Frame 1Symbol 80 Button
"guide"Symbol 140 MovieClip {motoracer_fla.mc_bomb_25} Frame 1Symbol 139 MovieClip
"agButton_btn"Symbol 160 MovieClip {credits_help} Frame 1Symbol 132 Button
"btnBlastone"Symbol 160 MovieClip {credits_help} Frame 1Symbol 159 Button
"loadingText"Symbol 184 MovieClip {motoracer_fla.credits_42} Frame 1Symbol 183 EditableText
"loadingDisplay"Symbol 186 MovieClip {trackDetailsDisplay} Frame 1Symbol 184 MovieClip {motoracer_fla.credits_42}
"base"Symbol 198 MovieClip {bike.wheel.fx} Frame 1Symbol 197 MovieClip
"spinner"Symbol 317 MovieClip {motoracer_fla.bike_46} Frame 1Symbol 198 MovieClip {bike.wheel.fx}
"animation"Symbol 318 MovieClip {Racer} Frame 1Symbol 317 MovieClip {motoracer_fla.bike_46}
"dial"Symbol 327 MovieClip {motoracer_fla.hud_53} Frame 1Symbol 325 MovieClip
"totalTimeText"Symbol 343 MovieClip {motoracer_fla.hud_62} Frame 1Symbol 342 EditableText
"Mask"Symbol 344 MovieClip {motoracer_fla.hud_61} Frame 1Symbol 343 MovieClip {motoracer_fla.hud_62}
"textSound"Symbol 361 MovieClip {Controls} Frame 1Symbol 351 EditableText
"textPause"Symbol 361 MovieClip {Controls} Frame 1Symbol 352 EditableText
"textMusic"Symbol 361 MovieClip {Controls} Frame 1Symbol 353 EditableText
"btnQuit"Symbol 361 MovieClip {Controls} Frame 1Symbol 358 Button
"btnMusic"Symbol 361 MovieClip {Controls} Frame 1Symbol 360 Button
"btnSound"Symbol 361 MovieClip {Controls} Frame 1Symbol 360 Button
"btnPause"Symbol 361 MovieClip {Controls} Frame 1Symbol 360 Button
"speedo"Symbol 362 MovieClip {Hud} Frame 1Symbol 327 MovieClip {motoracer_fla.hud_53}
"lapsText"Symbol 362 MovieClip {Hud} Frame 1Symbol 329 EditableText
"wrongway"Symbol 362 MovieClip {Hud} Frame 1Symbol 332 MovieClip
"countdown"Symbol 362 MovieClip {Hud} Frame 1Symbol 341 MovieClip {motoracer_fla.start_anim_56}
"lapTimerDisplay"Symbol 362 MovieClip {Hud} Frame 1Symbol 344 MovieClip {motoracer_fla.hud_61}
"controls"Symbol 362 MovieClip {Hud} Frame 1Symbol 361 MovieClip {Controls}
"countryText"Symbol 369 MovieClip {motoracer_fla.credits_69} Frame 1Symbol 368 EditableText
"countryText"Symbol 372 MovieClip {trackSelect} Frame 1Symbol 367 EditableText
"select"Symbol 372 MovieClip {trackSelect} Frame 1Symbol 369 MovieClip {motoracer_fla.credits_69}
"btn"Symbol 372 MovieClip {trackSelect} Frame 1Symbol 371 Button
"sky"Symbol 376 MovieClip {shanghaiSkybox} Frame 1Symbol 375 MovieClip
"sky"Symbol 384 MovieClip {phillipSkybox} Frame 1Symbol 383 MovieClip
"AGclick_btn"Symbol 451 MovieClip {motoracer_fla.AGteaser_mc_92} Frame 1Symbol 446 Button
"AGpresented_mc"Symbol 451 MovieClip {motoracer_fla.AGteaser_mc_92} Frame 1Symbol 448 MovieClip
"AGlogo_mc"Symbol 451 MovieClip {motoracer_fla.AGteaser_mc_92} Frame 1Symbol 450 MovieClip
"bar"Symbol 469 MovieClip {motoracer_fla.scoreboard_101} Frame 1Symbol 465 MovieClip
"hover"Symbol 484 MovieClip {inputField} Frame 1Symbol 480 MovieClip
"textInput"Symbol 484 MovieClip {inputField} Frame 1Symbol 483 EditableText
"scoreText"Symbol 504 MovieClip {scoreboard} Frame 1Symbol 463 EditableText
"preloaderBar"Symbol 504 MovieClip {scoreboard} Frame 1Symbol 469 MovieClip {motoracer_fla.scoreboard_101}
"btnBack"Symbol 504 MovieClip {scoreboard} Frame 1Symbol 473 Button
"__id2_"Symbol 504 MovieClip {scoreboard} Frame 1Symbol 503 MovieClip {fl.controls.ComboBox}
"scores"Symbol 505 MovieClip {motoracer_fla.score_96} Frame 1Symbol 504 MovieClip {scoreboard}

Special Tags

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

Labels

"preload"Frame 1
"export"Frame 9
"intro"Frame 16
"credits"Frame 23
"game"Frame 30
"bad"Frame 38
"submit"Frame 45
"stand"Symbol 317 MovieClip {motoracer_fla.bike_46} Frame 52
"crash"Symbol 317 MovieClip {motoracer_fla.bike_46} Frame 53
"blast"Symbol 452 MovieClip {motoracer_fla.logo_91} Frame 1




http://swfchan.com/25/123870/info.shtml
Created: 2/3 -2019 07:47:46 Last modified: 2/3 -2019 07:47:46 Server time: 11/05 -2024 23:20:43