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

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

20361.swf

This is the info page for
Flash #87188

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


Text
<p align="left"><font face="DistrictThin" size="34" color="#ffffff" letterSpacing="-1.000000" kerning="1">D</font></p>

<p align="left"><font face="standard 07_55" size="8" color="#a3a4a4" letterSpacing="0.000000" kerning="1">SLOGAN</font></p>

label

label

<p align="left"><font face="Swis721 LtEx BT" size="28" color="#ffffff" letterSpacing="0.000000" kerning="0">text_0</font></p>

<p align="left"><font face="standard 07_55" size="8" color="#bdbdb4" letterSpacing="0.000000" kerning="0">text_1</font></p>

<p align="left"><font face="Swis721 LtEx BT" size="28" color="#ffffff" letterSpacing="0.000000" kerning="0">text_0</font></p>

<p align="left"><font face="standard 07_55" size="8" color="#bdbdb4" letterSpacing="0.000000" kerning="0">text_1</font></p><p align="left"></p>

<p align="left"><font face="Swis721 LtEx BT" size="28" color="#ffffff" letterSpacing="0.000000" kerning="0">text_2</font></p>

formItem_0

formItem_1

formItem_2

formItem_3

formItem_4

<p align="left"><font face="standard 07_55" size="8" color="#c8fc00" letterSpacing="0.000000" kerning="0">text_3</font></p>

<p align="left"><font face="standard 07_55" size="8" color="#c8fc00" letterSpacing="0.000000" kerning="0">text_4</font></p>

<p align="left"><font face="Swis721 LtEx BT" size="28" color="#ffffff" letterSpacing="0.000000" kerning="0">text_0</font></p>

<p align="left"><font face="Swis721 LtEx BT" size="28" color="#ffffff" letterSpacing="0.000000" kerning="0">text_2</font></p>

<p align="left"><font face="standard 07_55" size="8" color="#bdbdb4" letterSpacing="0.000000" kerning="0">text_1</font></p>

<p align="left"><font face="standard 07_55" size="8" color="#c8fc00" letterSpacing="0.000000" kerning="0">text_3</font></p>

<p align="left"><font face="standard 07_55" size="8" color="#c8fc00" letterSpacing="0.000000" kerning="0">text_4</font></p>

<p align="left"><font face="standard 07_55" size="8" color="#c8fc00" letterSpacing="0.000000" kerning="0">text_5</font></p>

<p align="left"><font face="standard 07_55" size="8" color="#c8fc00" letterSpacing="0.000000" kerning="0">text_6</font></p>

GALLERY

12%

12%

men

<p align="left"><font face="standard 07_55" size="8" color="#6b6b6b" letterSpacing="0.000000" kerning="1">DALUZZI &nbsp;© 2008 &nbsp;&nbsp;PRIVACY POLICY</font></p>

ActionScript [AS3]

Section 1
//BinaryItem (br.com.stimuli.loading.loadingtypes.BinaryItem) package br.com.stimuli.loading.loadingtypes { import flash.events.*; import flash.display.*; import br.com.stimuli.loading.*; import flash.net.*; import flash.utils.*; public class BinaryItem extends LoadingItem { public var loader:URLLoader; public function BinaryItem(_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 onErrorHandler(_arg1:Event):void{ super.onErrorHandler(_arg1); } override public function load():void{ super.load(); loader = new URLLoader(); loader.dataFormat = URLLoaderDataFormat.BINARY; 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 = _arg1.target.data; super.onCompleteHandler(_arg1); } override public function destroy():void{ stop(); cleanListeners(); _content = null; loader = null; } } }//package br.com.stimuli.loading.loadingtypes
Section 2
//ImageItem (br.com.stimuli.loading.loadingtypes.ImageItem) package br.com.stimuli.loading.loadingtypes { import flash.events.*; import flash.display.*; 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.events.*; import flash.display.*; 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 br.com.stimuli.loading.*; import flash.media.*; 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.events.*; import flash.display.*; 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); }; fireCanBeginStreamingEvent(); _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)); _bytesRemaining = (_bytesTotal - bytesLoaded); _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{ var bulkErrorEvent:BulkErrorEvent; var evt = _arg1; try { _content = new XML(loader.data); } catch(e:Error) { _content = null; status = STATUS_ERROR; bulkErrorEvent = new BulkErrorEvent(BulkErrorEvent.ERROR); bulkErrorEvent.errors = [this]; dispatchEvent(bulkErrorEvent); }; super.onCompleteHandler(evt); } 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.events.*; import flash.display.*; import br.com.stimuli.loading.loadingtypes.*; import flash.media.*; 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 TYPE_BINARY:String = "binary"; public static const PAUSED_AT_START:String = "pausedAtStart"; public static const TYPE_SOUND:String = "sound"; public static const DEFAULT_LOG_LEVEL:int = 20; public static const ID:String = "id"; public static const PROGRESS:String = "progress"; 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 206 (0.9.9.4)"; public static const AVAILABLE_TYPES:Array = [TYPE_VIDEO, TYPE_XML, TYPE_TEXT, TYPE_SOUND, TYPE_MOVIECLIP, TYPE_IMAGE, TYPE_BINARY]; public static const LOG_VERBOSE:int = 0; public static const OPEN:String = "open"; public static const CHECK_POLICY_FILE:String = "checkPolicyFile"; 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 LOG_WARNINGS:int = 3; 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, binary:BinaryItem}; 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); }; if (_local3.status != LoadingItem.STATUS_FINISHED){ _local3.stop(); }; log("STOPPED ITEM:", _local3, LOG_INFO); _local4 = _removeFromConnections(_local3); if (_arg2){ _loadNext(); }; return (_local4); } public function getBinary(_arg1, _arg2:Boolean=false):ByteArray{ return (ByteArray(_getContentAsType(_arg1, ByteArray, _arg2))); } 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){ 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)){ throw (new Error("[BulkLoader]: When adding a new type and extension, you must determine which class to use")); }; _typeClasses[_arg2] = _arg3; if (!_customTypesExtensions){ _customTypesExtensions = {}; }; if (!_customTypesExtensions[_arg2]){ _customTypesExtensions[_arg2] = []; AVAILABLE_TYPES.push(_arg2); }; _customTypesExtensions[_arg2].push(_arg1); return (true); } else { _customTypesExtensions[_arg2].push(_arg1); }; _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 concatObjects(... _args):Object{ var _local2:Object; var _local3:Object; var _local4:int; var _local5:String; _local2 = {}; _local4 = 0; while (_local4 < _args.length) { _local3 = _args[_local4]; for (_local5 in _local3) { if (_local3[_local5] == null){ delete _local2[_local5]; } else { _local2[_local5] = _local3[_local5]; }; }; _local4++; }; return (_local2); } public static function numberToG(_arg1:Number):Number{ return (((_arg1 & 0xFF00) >> 8)); } public static function numberToR(_arg1:Number):Number{ return (((_arg1 & 0xFF0000) >> 16)); } 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 getObjectLength(_arg1:Object):uint{ var _local2:uint; var _local3:String; _local2 = 0; for (_local3 in _arg1) { _local2++; }; return (_local2); } public static function numberToB(_arg1:Number):Number{ return ((_arg1 & 0xFF)); } } }//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.filters.*; import flash.media.*; 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, _arg2:Array):Array{ var _local3:Array; _local3 = new Array(); if (_arg1 == null){ _local3.push({name:"_color_ra", value:1}); _local3.push({name:"_color_rb", value:0}); _local3.push({name:"_color_ga", value:1}); _local3.push({name:"_color_gb", value:0}); _local3.push({name:"_color_ba", value:1}); _local3.push({name:"_color_bb", value:0}); } else { _local3.push({name:"_color_ra", value:0}); _local3.push({name:"_color_rb", value:AuxFunctions.numberToR(_arg1)}); _local3.push({name:"_color_ga", value:0}); _local3.push({name:"_color_gb", value:AuxFunctions.numberToG(_arg1)}); _local3.push({name:"_color_ba", value:0}); _local3.push({name:"_color_bb", value:AuxFunctions.numberToB(_arg1)}); }; return (_local3); } 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, _arg2:Array):Array{ var _local3:Array; _local3 = new Array(); if ((_arg1 is BlurFilter)){ _local3.push({name:"_blur_blurX", value:BlurFilter(_arg1).blurX}); _local3.push({name:"_blur_blurY", value:BlurFilter(_arg1).blurY}); _local3.push({name:"_blur_quality", value:BlurFilter(_arg1).quality}); } else { trace("??"); }; return (_local3); } 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, _arg2:Array):Array{ var _local3:Array; _local3 = new Array(); _local3.push({name:"scaleX", value:_arg1}); _local3.push({name:"scaleY", value:_arg1}); return (_local3); } public static function _colorTransform_splitter(_arg1, _arg2:Array):Array{ var _local3:Array; _local3 = new Array(); if (_arg1 == null){ _local3.push({name:"_color_ra", value:1}); _local3.push({name:"_color_rb", value:0}); _local3.push({name:"_color_ga", value:1}); _local3.push({name:"_color_gb", value:0}); _local3.push({name:"_color_ba", value:1}); _local3.push({name:"_color_bb", value:0}); } else { if (_arg1.ra != undefined){ _local3.push({name:"_color_ra", value:_arg1.ra}); }; if (_arg1.rb != undefined){ _local3.push({name:"_color_rb", value:_arg1.rb}); }; if (_arg1.ga != undefined){ _local3.push({name:"_color_ba", value:_arg1.ba}); }; if (_arg1.gb != undefined){ _local3.push({name:"_color_bb", value:_arg1.bb}); }; if (_arg1.ba != undefined){ _local3.push({name:"_color_ga", value:_arg1.ga}); }; if (_arg1.bb != undefined){ _local3.push({name:"_color_gb", value:_arg1.gb}); }; if (_arg1.aa != undefined){ _local3.push({name:"_color_aa", value:_arg1.aa}); }; if (_arg1.ab != undefined){ _local3.push({name:"_color_ab", value:_arg1.ab}); }; }; return (_local3); } 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 parameters:Array; public var splitValues:Function; public function SpecialPropertySplitter(_arg1:Function, _arg2:Array){ splitValues = _arg1; } public function toString():String{ var _local1:String; _local1 = ""; _local1 = (_local1 + "[SpecialPropertySplitter "); _local1 = (_local1 + ("splitValues:" + String(splitValues))); _local1 = (_local1 + ", "); _local1 = (_local1 + ("parameters:" + String(parameters))); _local1 = (_local1 + "]"); return (_local1); } } }//package caurina.transitions
Section 18
//Tweener (caurina.transitions.Tweener) package caurina.transitions { import flash.events.*; import flash.display.*; 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.26.62"); } 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) { handleError(tTweening, e, "onStart"); }; }; 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) { handleError(tTweening, e, "onUpdate"); }; }; } else { tTweening.updatesSkipped++; }; }; if (((isOver) && (Boolean(tTweening.onComplete)))){ try { tTweening.onComplete.apply(tScope, tTweening.onCompleteParams); } catch(e:Error) { handleError(tTweening, e, "onComplete"); }; }; 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){ if (_tweenList != null){ _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 handleError(_arg1:TweenListObj, _arg2:Error, _arg3:String):void{ var pTweening = _arg1; var pError = _arg2; var pCallBackName = _arg3; if (((Boolean(pTweening.onError)) && ((pTweening.onError is Function)))){ try { pTweening.onError.apply(pTweening.scope, [pTweening.scope, pError]); } catch(metaError:Error) { trace("## [Tweener] Error:", pTweening.scope, "raised an error while executing the 'onError' handler. Original error:\n", pError.getStackTrace(), "\nonError error:", metaError.getStackTrace()); }; } else { if (!Boolean(pTweening.onError)){ trace("## [Tweener] Error: :", pTweening.scope, (("raised an error while executing the'" + pCallBackName) + "'handler. \n"), pError.getStackTrace()); }; }; } 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 = TweenListObj.makePropertiesChain(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], _specialPropertySplitterList[_local7].parameters); _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.onError = _local9.onError; _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) { handleError(_tweenList[i], e, "onOverwrite"); }; }; _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, _arg3:Array=null):void{ var _local4:SpecialPropertySplitter; if (!_inited){ init(); }; _local4 = new SpecialPropertySplitter(_arg2, _arg3); _specialPropertySplitterList[_arg1] = _local4; } 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 properties:Object; public var onUpdateParams:Array; public var onComplete:Function; public var updatesSkipped:Number; 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 onError:Function; 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.onError = onError; _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 (Boolean(onError)){ _local1 = (_local1 + (", onError:" + String(onError))); }; 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); } public static function makePropertiesChain(_arg1:Object):Object{ var _local2:Object; var _local3:Object; var _local4:Object; var _local5:Object; var _local6:Number; var _local7:Number; var _local8:Number; _local2 = _arg1.base; if (_local2){ _local3 = {}; if ((_local2 is Array)){ _local4 = []; _local8 = 0; while (_local8 < _local2.length) { _local4.push(_local2[_local8]); _local8++; }; } else { _local4 = [_local2]; }; _local4.push(_arg1); _local6 = _local4.length; _local7 = 0; while (_local7 < _local6) { if (_local4[_local7]["base"]){ _local5 = AuxFunctions.concatObjects(makePropertiesChain(_local4[_local7]["base"]), _local4[_local7]); } else { _local5 = _local4[_local7]; }; _local3 = AuxFunctions.concatObjects(_local3, _local5); _local7++; }; if (_local3["base"]){ delete _local3["base"]; }; return (_local3); //unresolved jump }; return (_arg1); } } }//package caurina.transitions
Section 20
//MD5 (com.adobe.crypto.MD5) package com.adobe.crypto { import com.adobe.utils.*; public class MD5 { private static function ff(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int):int{ return (transform(f, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7)); } private static function createBlocks(_arg1:String):Array{ var _local2:Array; var _local3:int; var _local4:int; var _local5:int; _local2 = new Array(); _local3 = (_arg1.length * 8); _local4 = 0xFF; _local5 = 0; while (_local5 < _local3) { _local2[(_local5 >> 5)] = (_local2[(_local5 >> 5)] | ((_arg1.charCodeAt((_local5 / 8)) & _local4) << (_local5 % 32))); _local5 = (_local5 + 8); }; _local2[(_local3 >> 5)] = (_local2[(_local3 >> 5)] | (128 << (_local3 % 32))); _local2[((((_local3 + 64) >>> 9) << 4) + 14)] = _local3; return (_local2); } private static function ii(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int):int{ return (transform(i, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7)); } private static function f(_arg1:int, _arg2:int, _arg3:int):int{ return (((_arg1 & _arg2) | (~(_arg1) & _arg3))); } private static function g(_arg1:int, _arg2:int, _arg3:int):int{ return (((_arg1 & _arg3) | (_arg2 & ~(_arg3)))); } private static function h(_arg1:int, _arg2:int, _arg3:int):int{ return (((_arg1 ^ _arg2) ^ _arg3)); } private static function i(_arg1:int, _arg2:int, _arg3:int):int{ return ((_arg2 ^ (_arg1 | ~(_arg3)))); } private static function transform(_arg1:Function, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int, _arg8:int):int{ var _local9:int; _local9 = (((_arg2 + int(_arg1(_arg3, _arg4, _arg5))) + _arg6) + _arg8); return ((IntUtil.rol(_local9, _arg7) + _arg3)); } private static function hh(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int):int{ return (transform(h, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7)); } public static function hash(_arg1:String):String{ var _local2:int; var _local3:int; var _local4:int; var _local5:int; var _local6:int; var _local7:int; var _local8:int; var _local9:int; var _local10:Array; var _local11:int; var _local12:int; _local2 = 1732584193; _local3 = -271733879; _local4 = -1732584194; _local5 = 271733878; _local10 = createBlocks(_arg1); _local11 = _local10.length; _local12 = 0; while (_local12 < _local11) { _local6 = _local2; _local7 = _local3; _local8 = _local4; _local9 = _local5; _local2 = ff(_local2, _local3, _local4, _local5, _local10[(_local12 + 0)], 7, -680876936); _local5 = ff(_local5, _local2, _local3, _local4, _local10[(_local12 + 1)], 12, -389564586); _local4 = ff(_local4, _local5, _local2, _local3, _local10[(_local12 + 2)], 17, 606105819); _local3 = ff(_local3, _local4, _local5, _local2, _local10[(_local12 + 3)], 22, -1044525330); _local2 = ff(_local2, _local3, _local4, _local5, _local10[(_local12 + 4)], 7, -176418897); _local5 = ff(_local5, _local2, _local3, _local4, _local10[(_local12 + 5)], 12, 1200080426); _local4 = ff(_local4, _local5, _local2, _local3, _local10[(_local12 + 6)], 17, -1473231341); _local3 = ff(_local3, _local4, _local5, _local2, _local10[(_local12 + 7)], 22, -45705983); _local2 = ff(_local2, _local3, _local4, _local5, _local10[(_local12 + 8)], 7, 1770035416); _local5 = ff(_local5, _local2, _local3, _local4, _local10[(_local12 + 9)], 12, -1958414417); _local4 = ff(_local4, _local5, _local2, _local3, _local10[(_local12 + 10)], 17, -42063); _local3 = ff(_local3, _local4, _local5, _local2, _local10[(_local12 + 11)], 22, -1990404162); _local2 = ff(_local2, _local3, _local4, _local5, _local10[(_local12 + 12)], 7, 1804603682); _local5 = ff(_local5, _local2, _local3, _local4, _local10[(_local12 + 13)], 12, -40341101); _local4 = ff(_local4, _local5, _local2, _local3, _local10[(_local12 + 14)], 17, -1502002290); _local3 = ff(_local3, _local4, _local5, _local2, _local10[(_local12 + 15)], 22, 1236535329); _local2 = gg(_local2, _local3, _local4, _local5, _local10[(_local12 + 1)], 5, -165796510); _local5 = gg(_local5, _local2, _local3, _local4, _local10[(_local12 + 6)], 9, -1069501632); _local4 = gg(_local4, _local5, _local2, _local3, _local10[(_local12 + 11)], 14, 643717713); _local3 = gg(_local3, _local4, _local5, _local2, _local10[(_local12 + 0)], 20, -373897302); _local2 = gg(_local2, _local3, _local4, _local5, _local10[(_local12 + 5)], 5, -701558691); _local5 = gg(_local5, _local2, _local3, _local4, _local10[(_local12 + 10)], 9, 38016083); _local4 = gg(_local4, _local5, _local2, _local3, _local10[(_local12 + 15)], 14, -660478335); _local3 = gg(_local3, _local4, _local5, _local2, _local10[(_local12 + 4)], 20, -405537848); _local2 = gg(_local2, _local3, _local4, _local5, _local10[(_local12 + 9)], 5, 568446438); _local5 = gg(_local5, _local2, _local3, _local4, _local10[(_local12 + 14)], 9, -1019803690); _local4 = gg(_local4, _local5, _local2, _local3, _local10[(_local12 + 3)], 14, -187363961); _local3 = gg(_local3, _local4, _local5, _local2, _local10[(_local12 + 8)], 20, 1163531501); _local2 = gg(_local2, _local3, _local4, _local5, _local10[(_local12 + 13)], 5, -1444681467); _local5 = gg(_local5, _local2, _local3, _local4, _local10[(_local12 + 2)], 9, -51403784); _local4 = gg(_local4, _local5, _local2, _local3, _local10[(_local12 + 7)], 14, 1735328473); _local3 = gg(_local3, _local4, _local5, _local2, _local10[(_local12 + 12)], 20, -1926607734); _local2 = hh(_local2, _local3, _local4, _local5, _local10[(_local12 + 5)], 4, -378558); _local5 = hh(_local5, _local2, _local3, _local4, _local10[(_local12 + 8)], 11, -2022574463); _local4 = hh(_local4, _local5, _local2, _local3, _local10[(_local12 + 11)], 16, 1839030562); _local3 = hh(_local3, _local4, _local5, _local2, _local10[(_local12 + 14)], 23, -35309556); _local2 = hh(_local2, _local3, _local4, _local5, _local10[(_local12 + 1)], 4, -1530992060); _local5 = hh(_local5, _local2, _local3, _local4, _local10[(_local12 + 4)], 11, 1272893353); _local4 = hh(_local4, _local5, _local2, _local3, _local10[(_local12 + 7)], 16, -155497632); _local3 = hh(_local3, _local4, _local5, _local2, _local10[(_local12 + 10)], 23, -1094730640); _local2 = hh(_local2, _local3, _local4, _local5, _local10[(_local12 + 13)], 4, 681279174); _local5 = hh(_local5, _local2, _local3, _local4, _local10[(_local12 + 0)], 11, -358537222); _local4 = hh(_local4, _local5, _local2, _local3, _local10[(_local12 + 3)], 16, -722521979); _local3 = hh(_local3, _local4, _local5, _local2, _local10[(_local12 + 6)], 23, 76029189); _local2 = hh(_local2, _local3, _local4, _local5, _local10[(_local12 + 9)], 4, -640364487); _local5 = hh(_local5, _local2, _local3, _local4, _local10[(_local12 + 12)], 11, -421815835); _local4 = hh(_local4, _local5, _local2, _local3, _local10[(_local12 + 15)], 16, 530742520); _local3 = hh(_local3, _local4, _local5, _local2, _local10[(_local12 + 2)], 23, -995338651); _local2 = ii(_local2, _local3, _local4, _local5, _local10[(_local12 + 0)], 6, -198630844); _local5 = ii(_local5, _local2, _local3, _local4, _local10[(_local12 + 7)], 10, 1126891415); _local4 = ii(_local4, _local5, _local2, _local3, _local10[(_local12 + 14)], 15, -1416354905); _local3 = ii(_local3, _local4, _local5, _local2, _local10[(_local12 + 5)], 21, -57434055); _local2 = ii(_local2, _local3, _local4, _local5, _local10[(_local12 + 12)], 6, 1700485571); _local5 = ii(_local5, _local2, _local3, _local4, _local10[(_local12 + 3)], 10, -1894986606); _local4 = ii(_local4, _local5, _local2, _local3, _local10[(_local12 + 10)], 15, -1051523); _local3 = ii(_local3, _local4, _local5, _local2, _local10[(_local12 + 1)], 21, -2054922799); _local2 = ii(_local2, _local3, _local4, _local5, _local10[(_local12 + 8)], 6, 1873313359); _local5 = ii(_local5, _local2, _local3, _local4, _local10[(_local12 + 15)], 10, -30611744); _local4 = ii(_local4, _local5, _local2, _local3, _local10[(_local12 + 6)], 15, -1560198380); _local3 = ii(_local3, _local4, _local5, _local2, _local10[(_local12 + 13)], 21, 1309151649); _local2 = ii(_local2, _local3, _local4, _local5, _local10[(_local12 + 4)], 6, -145523070); _local5 = ii(_local5, _local2, _local3, _local4, _local10[(_local12 + 11)], 10, -1120210379); _local4 = ii(_local4, _local5, _local2, _local3, _local10[(_local12 + 2)], 15, 718787259); _local3 = ii(_local3, _local4, _local5, _local2, _local10[(_local12 + 9)], 21, -343485551); _local2 = (_local2 + _local6); _local3 = (_local3 + _local7); _local4 = (_local4 + _local8); _local5 = (_local5 + _local9); _local12 = (_local12 + 16); }; return ((((IntUtil.toHex(_local2) + IntUtil.toHex(_local3)) + IntUtil.toHex(_local4)) + IntUtil.toHex(_local5))); } private static function gg(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int):int{ return (transform(g, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7)); } } }//package com.adobe.crypto
Section 21
//IntUtil (com.adobe.utils.IntUtil) package com.adobe.utils { public class IntUtil { private static var hexChars:String = "0123456789abcdef"; public static function toHex(_arg1:int, _arg2:Boolean=false):String{ var _local3:String; var _local4:int; var _local5:int; _local3 = ""; if (_arg2){ _local4 = 0; while (_local4 < 4) { _local3 = (_local3 + (hexChars.charAt(((_arg1 >> (((3 - _local4) * 8) + 4)) & 15)) + hexChars.charAt(((_arg1 >> ((3 - _local4) * 8)) & 15)))); _local4++; }; } else { _local5 = 0; while (_local5 < 4) { _local3 = (_local3 + (hexChars.charAt(((_arg1 >> ((_local5 * 8) + 4)) & 15)) + hexChars.charAt(((_arg1 >> (_local5 * 8)) & 15)))); _local5++; }; }; return (_local3); } public static function ror(_arg1:int, _arg2:int):uint{ var _local3:int; _local3 = (32 - _arg2); return (((_arg1 << _local3) | (_arg1 >>> (32 - _local3)))); } public static function rol(_arg1:int, _arg2:int):int{ return (((_arg1 << _arg2) | (_arg1 >>> (32 - _arg2)))); } } }//package com.adobe.utils
Section 22
//DebugDispatcher (com.blitzagency.xray.logger.events.DebugDispatcher) package com.blitzagency.xray.logger.events { import flash.events.*; public class DebugDispatcher extends EventDispatcher { public static var TRACE:String = "trace"; public function sendEvent(_arg1:String, _arg2:Object):void{ trace(_arg2.message); dispatchEvent(new DebugEvent(DebugDispatcher.TRACE, false, false, _arg2)); } } }//package com.blitzagency.xray.logger.events
Section 23
//DebugEvent (com.blitzagency.xray.logger.events.DebugEvent) package com.blitzagency.xray.logger.events { import flash.events.*; public class DebugEvent extends Event { public var obj:Object; public function DebugEvent(_arg1:String, _arg2:Boolean, _arg3:Boolean, _arg4:Object):void{ obj = new Object(); super(_arg1, _arg2, _arg3); obj = _arg4; } } }//package com.blitzagency.xray.logger.events
Section 24
//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 25
//PropertyTools (com.blitzagency.xray.logger.util.PropertyTools) package com.blitzagency.xray.logger.util { import flash.utils.*; public class PropertyTools { private static function getVariables():void{ } public static function getProperties(_arg1:Object):Array{ var ary:Array; var xmlDoc:XML; var item:XML; var name:String; var type:String; var value:Object; var obj = _arg1; ary = []; try { xmlDoc = describeType(obj); for each (item in xmlDoc.variable) { name = item.@name.toString(); type = item.@type.toString(); value = ((obj[name])!=null) ? obj[name] : ""; ary.push({name:name, type:type, value:value}); }; } catch(e:Error) { }; return (ary); } private static function getMethods():void{ } } }//package com.blitzagency.xray.logger.util
Section 26
//Debug (com.blitzagency.xray.logger.Debug) package com.blitzagency.xray.logger { import flash.events.*; import flash.net.*; import flash.utils.*; import com.blitzagency.xray.logger.events.*; public class Debug { private static var connected:Boolean = false; private static var xrayLC:LocalConnection; private static var ed:DebugDispatcher = new DebugDispatcher(); public static function traceObject(_arg1:Object, _arg2:Number=254, _arg3:Number=0, _arg4:String="", _arg5:Number=0):void{ var recurseDepth:Number; var indent:Number; var prop:String; var lead:String; var i:Number; var obj:String; var o = _arg1; var pRecurseDepth = _arg2; var pIndent = _arg3; var pPackage = _arg4; var pLevel = _arg5; try { recurseDepth = pRecurseDepth; indent = pIndent; for (prop in o) { lead = ""; i = 0; while (i < indent) { lead = (lead + " "); i = (i + 1); }; obj = o[prop].toString(); if ((o[prop] is Array)){ obj = "[Array]"; }; if (obj == "[object Object]"){ obj = "[Object]"; }; Debug.trace((((lead + prop) + ": ") + obj), pPackage, pLevel); if (recurseDepth > 0){ Debug.traceObject(o[prop], (recurseDepth - 1), (indent + 1), pPackage, pLevel); }; }; } catch(e:Error) { }; } public static function trace(_arg1:Object, _arg2:String="", _arg3:Number=0):void{ var msg:String; var pMsg = _arg1; var pPackage = _arg2; var pLevel = _arg3; ed.sendEvent(DebugDispatcher.TRACE, {message:pMsg, classPackage:pPackage}); if (!connected){ makeConnection(); }; if (connected){ try { msg = ((String(pMsg).length >= 39995)) ? (String(pMsg).substr(0, 39995) + "...") : String(pMsg); xrayLC.send("_xray_view_conn", "setTrace", msg, pLevel, pPackage); } catch(e:LogError) { LogError("No Xray Interface running"); }; }; } private static function makeConnection():void{ var err:LogError; xrayLC = new LocalConnection(); xrayLC.addEventListener("status", statusHandler); xrayLC.allowDomain("*"); try { xrayLC.connect(("_xray_standAlone_debug" + getTimer())); connected = true; } catch(e:Error) { err = new LogError("log"); setTimeout(makeConnection, 1000); }; } public static function addEventListener(_arg1:String, _arg2:Function):void{ ed.addEventListener(_arg1, _arg2); } private static function initialize():Boolean{ ed = new DebugDispatcher(); return (true); } private static function statusHandler(_arg1:StatusEvent):void{ if ((((((_arg1.code == null)) && ((_arg1.level == "error")))) && (connected))){ connected = false; } else { if ((((_arg1.level == "status")) && ((_arg1.code == null)))){ connected = true; }; }; } } }//package com.blitzagency.xray.logger class LogError extends Error { private function LogError(_arg1:String){ super(_arg1); } }
Section 27
//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 28
//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 29
//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 30
//XrayLogger (com.blitzagency.xray.logger.XrayLogger) package com.blitzagency.xray.logger { import flash.events.*; import flash.utils.*; import com.blitzagency.xray.logger.util.*; 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{ var _local6:String; var _local7:String; var _local8:String; var _local9:Object; _local6 = (("(" + getTimer()) + ") "); if (_arg3.length > 0){ _local6 = (_local6 + (_arg2 + "\n")); }; _local6 = (_local6 + _arg1); if (_arg1.length > 0){ Debug.trace(_local6, _arg3, _arg4); }; if (_arg5 == null){ return; }; _local7 = typeof(_arg5); if ((((((((((_local7 == "string")) || ((_local7 == "number")))) || ((_local7 == "boolean")))) || ((_local7 == "undefined")))) || ((_local7 == "null")))){ Debug.trace(_arg5, _arg3, _arg4); } else { if (_local7 == "xml"){ Debug.trace(_arg5.toString(), _arg3, _arg4); } else { _local8 = ObjectTools.getImmediateClassPath(_arg5); if ((((_local8 == "Object")) || ((_local8 == "Object.Array")))){ Debug.traceObject(_arg5, objectRecursionDepth, indentation, _arg3, _arg4); } else { _local9 = PropertyTools.getProperties(_arg5); Debug.traceObject(_local9, displayObjectRecursionDepth, indentation, _arg3, _arg4); }; }; }; } 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 31
//AboutPageContents_41 (main_fla.AboutPageContents_41) package main_fla { import flash.display.*; import flash.text.*; public dynamic class AboutPageContents_41 extends MovieClip { public var text_1:TextField; public var text_3:TextField; public var text_2:TextField; public var text_4:TextField; public var text_0:TextField; public var text_6:TextField; public var text_5:TextField; public var imageClipHolder_1:MovieClip; public var imageClipHolder_2:MovieClip; public var imageClipHolder_4:MovieClip; public var imageClipHolder_0:MovieClip; public var imageClipHolder_3:MovieClip; } }//package main_fla
Section 32
//BottomLineBackground_18 (main_fla.BottomLineBackground_18) package main_fla { import flash.display.*; public dynamic class BottomLineBackground_18 extends MovieClip { public var bg:MovieClip; } }//package main_fla
Section 33
//BottomLineHolder_17 (main_fla.BottomLineHolder_17) package main_fla { import flash.events.*; import flash.display.*; public dynamic class BottomLineHolder_17 extends MovieClip { public var bottomBackground:MovieClip; public var bottomLineText:MovieClip; public function BottomLineHolder_17(){ addFrameScript(14, frame15, 34, frame35); } function frame15(){ dispatchEvent(new Event("applicationResize", true)); } function frame35(){ stop(); } } }//package main_fla
Section 34
//BottomLineText_20 (main_fla.BottomLineText_20) package main_fla { import flash.display.*; public dynamic class BottomLineText_20 extends MovieClip { public var textHolder:MovieClip; public function BottomLineText_20(){ addFrameScript(19, frame20); } function frame20(){ stop(); } } }//package main_fla
Section 35
//BottomLineTextHolder_21 (main_fla.BottomLineTextHolder_21) package main_fla { import flash.display.*; import flash.text.*; public dynamic class BottomLineTextHolder_21 extends MovieClip { public var bottomText:TextField; } }//package main_fla
Section 36
//closeButton_56 (main_fla.closeButton_56) package main_fla { import flash.display.*; public dynamic class closeButton_56 extends MovieClip { public var button:MovieClip; public function closeButton_56(){ addFrameScript(0, frame1, 19, frame20, 28, frame29); } function frame29(){ stop(); } function frame1(){ stop(); } function frame20(){ stop(); } } }//package main_fla
Section 37
//CloseButtonAnimationElementHolder_60 (main_fla.CloseButtonAnimationElementHolder_60) package main_fla { import flash.display.*; public dynamic class CloseButtonAnimationElementHolder_60 extends MovieClip { public function CloseButtonAnimationElementHolder_60(){ addFrameScript(41, frame42); } function frame42(){ stop(); } } }//package main_fla
Section 38
//ContactsPageContents_47 (main_fla.ContactsPageContents_47) package main_fla { import flash.display.*; import flash.text.*; public dynamic class ContactsPageContents_47 extends MovieClip { public var formItem_1:TextField; public var formItem_4:TextField; public var formItem_3:TextField; public var formButtonClip_reset:MovieClip; public var formButton_submit:MovieClip; public var text_1:TextField; public var text_3:TextField; public var text_2:TextField; public var text_4:TextField; public var text_0:TextField; public var formMessage:TextField; public var imageClipHolder_0:MovieClip; public var formButton_reset:MovieClip; public var formItem_0:TextField; public var formButtonClip_submit:MovieClip; public var formItem_2:TextField; } }//package main_fla
Section 39
//CrossPlaneImage_73 (main_fla.CrossPlaneImage_73) package main_fla { import flash.display.*; public dynamic class CrossPlaneImage_73 extends MovieClip { public var imageHolder:MovieClip; } }//package main_fla
Section 40
//DynamicPageContents_55 (main_fla.DynamicPageContents_55) package main_fla { import flash.display.*; import flash.text.*; public dynamic class DynamicPageContents_55 extends MovieClip { public var closeButton:MovieClip; public var text_1:TextField; public var text_0:TextField; } }//package main_fla
Section 41
//EqualizerHolder_26 (main_fla.EqualizerHolder_26) package main_fla { import flash.display.*; public dynamic class EqualizerHolder_26 extends MovieClip { public function EqualizerHolder_26(){ addFrameScript(24, frame25, 34, frame35); } function frame25(){ stop(); } function frame35(){ stop(); } } }//package main_fla
Section 42
//FormButtonClip_48 (main_fla.FormButtonClip_48) package main_fla { import flash.display.*; public dynamic class FormButtonClip_48 extends MovieClip { public var button:MovieClip; public function FormButtonClip_48(){ addFrameScript(0, frame1, 10, frame11, 22, frame23); } function frame23(){ stop(); } function frame1(){ stop(); } function frame11(){ stop(); } } }//package main_fla
Section 43
//FullScreenButton_22 (main_fla.FullScreenButton_22) package main_fla { import flash.display.*; public dynamic class FullScreenButton_22 extends MovieClip { public var soundSwitch:MovieClip; public var fullScreenSwitch:MovieClip; public function FullScreenButton_22(){ addFrameScript(39, frame40); } function frame40(){ stop(); } } }//package main_fla
Section 44
//FullScreenButtonClip_23 (main_fla.FullScreenButtonClip_23) package main_fla { import flash.display.*; public dynamic class FullScreenButtonClip_23 extends MovieClip { public function FullScreenButtonClip_23(){ addFrameScript(0, frame1, 9, frame10, 19, frame20); } function frame10(){ stop(); } function frame1(){ stop(); } function frame20(){ stop(); } } }//package main_fla
Section 45
//GalleryButton_left_63 (main_fla.GalleryButton_left_63) package main_fla { import flash.display.*; public dynamic class GalleryButton_left_63 extends MovieClip { public var label:MovieClip; public var button:MovieClip; public function GalleryButton_left_63(){ addFrameScript(0, frame1, 19, frame20, 28, frame29); } function frame29(){ stop(); } function frame1(){ stop(); } function frame20(){ stop(); } } }//package main_fla
Section 46
//GalleryButton_right_67 (main_fla.GalleryButton_right_67) package main_fla { import flash.display.*; public dynamic class GalleryButton_right_67 extends MovieClip { public var label:MovieClip; public var button:MovieClip; public function GalleryButton_right_67(){ addFrameScript(0, frame1, 19, frame20, 28, frame29); } function frame29(){ stop(); } function frame1(){ stop(); } function frame20(){ stop(); } } }//package main_fla
Section 47
//GalleryButton_top_69 (main_fla.GalleryButton_top_69) package main_fla { import flash.display.*; public dynamic class GalleryButton_top_69 extends MovieClip { public var label:MovieClip; public var button:MovieClip; public function GalleryButton_top_69(){ addFrameScript(0, frame1, 19, frame20, 28, frame29); } function frame29(){ stop(); } function frame1(){ stop(); } function frame20(){ stop(); } } }//package main_fla
Section 48
//GalleryButton2AnimationElementHolder_70 (main_fla.GalleryButton2AnimationElementHolder_70) package main_fla { import flash.display.*; public dynamic class GalleryButton2AnimationElementHolder_70 extends MovieClip { public function GalleryButton2AnimationElementHolder_70(){ addFrameScript(41, frame42); } function frame42(){ stop(); } } }//package main_fla
Section 49
//GalleryButtonAnimationElementHolder_66 (main_fla.GalleryButtonAnimationElementHolder_66) package main_fla { import flash.display.*; public dynamic class GalleryButtonAnimationElementHolder_66 extends MovieClip { public function GalleryButtonAnimationElementHolder_66(){ addFrameScript(41, frame42); } function frame42(){ stop(); } } }//package main_fla
Section 50
//GalleryButtonLabelHolder_2_68 (main_fla.GalleryButtonLabelHolder_2_68) package main_fla { import flash.display.*; import flash.text.*; public dynamic class GalleryButtonLabelHolder_2_68 extends MovieClip { public var label:TextField; } }//package main_fla
Section 51
//GalleryButtonLabelHolder_65 (main_fla.GalleryButtonLabelHolder_65) package main_fla { import flash.display.*; import flash.text.*; public dynamic class GalleryButtonLabelHolder_65 extends MovieClip { public var label:TextField; } }//package main_fla
Section 52
//LogoAnimationSequence_11 (main_fla.LogoAnimationSequence_11) package main_fla { import flash.display.*; public dynamic class LogoAnimationSequence_11 extends MovieClip { public function LogoAnimationSequence_11(){ addFrameScript(87, frame88); } function frame88(){ stop(); } } }//package main_fla
Section 53
//MenuButtonLabel_36 (main_fla.MenuButtonLabel_36) package main_fla { import flash.display.*; import flash.text.*; public dynamic class MenuButtonLabel_36 extends MovieClip { public var label:TextField; } }//package main_fla
Section 54
//MenuButtonLabelSequence_37 (main_fla.MenuButtonLabelSequence_37) package main_fla { import flash.display.*; public dynamic class MenuButtonLabelSequence_37 extends MovieClip { public var l1:MovieClip; public var l4:MovieClip; public var l3:MovieClip; public var l2:MovieClip; } }//package main_fla
Section 55
//MenuHolder_29 (main_fla.MenuHolder_29) package main_fla { import flash.events.*; import flash.display.*; public dynamic class MenuHolder_29 extends MovieClip { public var menuItemsHolder:MovieClip; public var menuBackground:MovieClip; public function MenuHolder_29(){ addFrameScript(25, frame26, 45, frame46); } function frame26(){ dispatchEvent(new Event("applicationResize", true)); } function frame46(){ stop(); } } }//package main_fla
Section 56
//MenuItemBackground_30 (main_fla.MenuItemBackground_30) package main_fla { import flash.display.*; public dynamic class MenuItemBackground_30 extends MovieClip { public var bg:MovieClip; } }//package main_fla
Section 57
//MenuItemsHolder_32 (main_fla.MenuItemsHolder_32) package main_fla { import tm.com.*; import flash.display.*; public dynamic class MenuItemsHolder_32 extends MovieClip { public var menuButton_1:MenuButtonClip; public var menuButton_2:MenuButtonClip; public var menuButton_3:MenuButtonClip; public function MenuItemsHolder_32(){ addFrameScript(0, frame1, 7, frame8, 15, frame16, 31, frame32); } function frame16(){ TemplateMenu.getInstance().registerMenuButton(menuButton_3, 2); } function frame1(){ TemplateMenu.getInstance().registerMenuButton(menuButton_1, 0); } function frame8(){ TemplateMenu.getInstance().registerMenuButton(menuButton_2, 1); } function frame32(){ stop(); TemplateMenu.getInstance().switchMenuButton(); } } }//package main_fla
Section 58
//PageImageClipHolder_1_42 (main_fla.PageImageClipHolder_1_42) package main_fla { import flash.display.*; public dynamic class PageImageClipHolder_1_42 extends MovieClip { public var imageHolder:MovieClip; public function PageImageClipHolder_1_42(){ addFrameScript(0, frame1, 29, frame30); } function frame1(){ stop(); } function frame30(){ stop(); } } }//package main_fla
Section 59
//PageImageClipHolder_2_45 (main_fla.PageImageClipHolder_2_45) package main_fla { import flash.display.*; public dynamic class PageImageClipHolder_2_45 extends MovieClip { public var imageHolder:MovieClip; public function PageImageClipHolder_2_45(){ addFrameScript(0, frame1, 29, frame30); } function frame1(){ stop(); } function frame30(){ stop(); } } }//package main_fla
Section 60
//PageImageClipHolder_3_51 (main_fla.PageImageClipHolder_3_51) package main_fla { import flash.display.*; public dynamic class PageImageClipHolder_3_51 extends MovieClip { public var imageHolder:MovieClip; public function PageImageClipHolder_3_51(){ addFrameScript(0, frame1, 29, frame30); } function frame1(){ stop(); } function frame30(){ stop(); } } }//package main_fla
Section 61
//Preloader_1 (main_fla.Preloader_1) package main_fla { import flash.display.*; import flash.text.*; public dynamic class Preloader_1 extends MovieClip { public var percentLeft:TextField; public var track:MovieClip; public var percentLoaded:TextField; public var status:MovieClip; } }//package main_fla
Section 62
//SoundSwitchHolder_25 (main_fla.SoundSwitchHolder_25) package main_fla { import flash.display.*; public dynamic class SoundSwitchHolder_25 extends MovieClip { public var soundClip:MovieClip; public function SoundSwitchHolder_25(){ addFrameScript(0, frame1, 9, frame10, 19, frame20); } function frame10(){ stop(); } function frame1(){ stop(); } function frame20(){ stop(); } } }//package main_fla
Section 63
//TooltipAnimationElementHolder_7 (main_fla.TooltipAnimationElementHolder_7) package main_fla { import flash.display.*; public dynamic class TooltipAnimationElementHolder_7 extends MovieClip { public function TooltipAnimationElementHolder_7(){ addFrameScript(41, frame42); } function frame42(){ stop(); } } }//package main_fla
Section 64
//TooltipBox_5 (main_fla.TooltipBox_5) package main_fla { import flash.display.*; public dynamic class TooltipBox_5 extends MovieClip { public var label:MovieClip; public function TooltipBox_5(){ addFrameScript(0, frame1, 39, frame40, 79, frame80); } function frame80(){ stop(); visible = false; } function frame1(){ stop(); } function frame40(){ stop(); } } }//package main_fla
Section 65
//TooltipText_6 (main_fla.TooltipText_6) package main_fla { import flash.display.*; import flash.text.*; public dynamic class TooltipText_6 extends MovieClip { public var label:TextField; } }//package main_fla
Section 66
//FPS (org.ascollada.utils.FPS) package org.ascollada.utils { import flash.events.*; import flash.display.*; import flash.utils.*; import flash.text.*; public class FPS extends Sprite { public var bar:Shape; public var anim:String;// = "" public var prevSecondTime:Number; public var secondTime:Number; public var tf:TextField; public var frames:Number;// = 0 public var time:Number; public var frameTime:Number; public var fps:String;// = "..." public var prevFrameTime:Number; public function FPS():void{ prevFrameTime = getTimer(); prevSecondTime = getTimer(); frames = 0; fps = "..."; anim = ""; super(); bar = new Shape(); addChild(bar); bar.x = 19; bar.y = 4; bar.graphics.beginFill(0xFF0000, 0.5); bar.graphics.lineStyle(); bar.graphics.drawRect(0, 0, 1, 15); bar.graphics.endFill(); tf = new TextField(); addChild(tf); tf.x = 20; tf.y = 5; tf.width = 300; tf.height = 500; tf.defaultTextFormat = new TextFormat("Arial", 9, 0xFFFFFF); tf.alpha = 0.6; addEventListener(Event.ENTER_FRAME, enterFrameHandler); } private function enterFrameHandler(_arg1:Event):void{ time = getTimer(); frameTime = (time - prevFrameTime); secondTime = (time - prevSecondTime); if (secondTime >= 1000){ fps = frames.toString(); frames = 0; prevSecondTime = time; } else { frames++; }; bar.scaleX = frameTime; prevFrameTime = time; tf.text = ((((fps + " FPS / ") + frameTime) + " MS") + anim); } } }//package org.ascollada.utils
Section 67
//FreeCamera3D (org.papervision3d.cameras.FreeCamera3D) package org.papervision3d.cameras { import org.papervision3d.core.proto.*; import org.papervision3d.core.math.*; public class FreeCamera3D extends CameraObject3D { public static const TYPE:String = "FREECAMERA3D"; public function FreeCamera3D(_arg1:Number=2, _arg2:Number=100, _arg3:Object=null){ super(_arg1, _arg2, _arg3); } override public function transformView(_arg1:Matrix3D=null):void{ if (this._transformDirty){ updateTransform(); }; super.transformView(); } } }//package org.papervision3d.cameras
Section 68
//AbstractController (org.papervision3d.core.animation.core.AbstractController) package org.papervision3d.core.animation.core { import flash.events.*; public class AbstractController extends EventDispatcher { protected var engine:AnimationEngine; public var duration:uint;// = 0 protected var totalFrames:uint;// = 0 protected var split:Number; protected var currentFrame:int;// = 0 public var frames:Array; public var playing:Boolean; protected var lastFrame:uint;// = 0 protected var nextFrame:int;// = 0 protected var firstFrame:uint;// = 0 public function AbstractController():void{ duration = 0; currentFrame = 0; nextFrame = 0; totalFrames = 0; lastFrame = 0; firstFrame = 0; super(); this.frames = new Array(); this.engine = AnimationEngine.getInstance(); playing = false; currentFrame = 0; nextFrame = 1; firstFrame = uint.MAX_VALUE; lastFrame = uint.MIN_VALUE; } public function play():void{ gotoAndPlay(currentFrame); } public function gotoAndPlay(_arg1:uint=0):void{ currentFrame = (_arg1 % this.frames.length); nextFrame = ((_arg1 + 1) % this.frames.length); playing = true; } public function stop():void{ playing = false; } public function addFrame(_arg1:AnimationFrame):void{ this.frames[_arg1.frame] = _arg1; totalFrames++; firstFrame = Math.min(firstFrame, _arg1.frame); lastFrame = Math.max(lastFrame, _arg1.frame); } public function findFrameByName(_arg1:String, _arg2:Boolean):AnimationFrame{ var _local3:AnimationFrame; var _local4:RegExp; var _local5:Object; if (_arg2){ _local4 = /^([a-z]+)(\d+)$/i; _local5 = _local4.exec(_arg1); if (((((_local5) && (_local5[1]))) && (_local5[2]))){ _arg1 = _local5[1]; }; }; for each (_local3 in this.frames) { if (_local3.name == _arg1){ return (_local3); }; }; return (null); } public function gotoAndStop(_arg1:uint=0):void{ currentFrame = (_arg1 % this.frames.length); nextFrame = ((_arg1 + 1) % this.frames.length); } public function tick(_arg1:Number):void{ } } }//package org.papervision3d.core.animation.core
Section 69
//AnimationEngine (org.papervision3d.core.animation.core.AnimationEngine) package org.papervision3d.core.animation.core { import org.papervision3d.objects.*; import flash.utils.*; import org.papervision3d.*; import org.papervision3d.core.animation.controllers.*; public class AnimationEngine { public var maxTime:Number; public var currentFrame:uint;// = 0 public var time:Number;// = 0 public static var TICK:Number = 50; private static var _controllers:Array; private static var _animatedObjects:Dictionary; private static var instance:AnimationEngine = new (AnimationEngine); ; private static var _time:Number; public static var NUM_FRAMES:uint = 100; public function AnimationEngine():void{ time = 0; currentFrame = 0; maxTime = (NUM_FRAMES * TICK); super(); if (instance){ throw (new Error("org.papervision3d.animation.AnimationEngine is a singleton class!")); }; _animatedObjects = new Dictionary(); _controllers = new Array(); _time = getTimer(); Papervision3D.log(((("[AnimationEngine] initialized => NUM_FRAMES:" + NUM_FRAMES) + " TICK:") + TICK)); } public function tick():void{ var _local1:*; var _local2:Array; var _local3:int; time = (getTimer() - _time); if (time > TICK){ _time = getTimer(); currentFrame = ((currentFrame < (NUM_FRAMES - 1))) ? (currentFrame + 1) : 0; }; for (_local1 in _animatedObjects) { _local2 = _animatedObjects[_local1]; _local3 = 0; while (_local3 < _local2.length) { _local2[_local3].tick(time); _local3++; }; }; } public static function getControllers(_arg1:DisplayObject3D):Array{ if (_animatedObjects[_arg1]){ return (_animatedObjects[_arg1]); }; return (null); } public static function getInstance():AnimationEngine{ return (instance); } public static function millisToFrame(_arg1:Number):uint{ return (Math.floor((_arg1 / TICK))); } public static function secondsToFrame(_arg1:Number):uint{ return (millisToFrame((_arg1 * 1000))); } public static function setControllers(_arg1:DisplayObject3D, _arg2:Array, _arg3:Boolean=false):void{ var _local4:int; if (_arg3){ _animatedObjects[_arg1] = new Array(); }; _local4 = 0; while (_local4 < _arg2.length) { addController(_arg1, _arg2[_local4]); _local4++; }; } public static function addController(_arg1:DisplayObject3D, _arg2:AbstractController):AbstractController{ var _local3:uint; var _local4:AnimationFrame; var _local5:uint; _local3 = NUM_FRAMES; if (!_animatedObjects[_arg1]){ _animatedObjects[_arg1] = new Array(); }; for each (_local4 in _arg2.frames) { _local5 = _local4.frame; if (_local5 > NUM_FRAMES){ NUM_FRAMES = _local5; }; }; instance.maxTime = (NUM_FRAMES * TICK); if (NUM_FRAMES > _local3){ Papervision3D.log((("[AnimationEngine] resizing timeline to " + NUM_FRAMES) + " frames")); }; _animatedObjects[_arg1].push(_arg2); return (_arg2); } } }//package org.papervision3d.core.animation.core
Section 70
//AnimationFrame (org.papervision3d.core.animation.core.AnimationFrame) package org.papervision3d.core.animation.core { public class AnimationFrame { public var values:Array; public var name:String; public var frame:uint; public var type:uint; public var duration:uint; public var nextFrame:uint; public function AnimationFrame(_arg1:uint, _arg2:uint=1, _arg3:Array=null, _arg4:String=""):void{ this.frame = _arg1; this.duration = _arg2; this.values = ((_arg3) || (new Array())); this.name = _arg4; } } }//package org.papervision3d.core.animation.core
Section 71
//CoordinateTools (org.papervision3d.core.components.as3.utils.CoordinateTools) package org.papervision3d.core.components.as3.utils { import flash.display.*; import flash.geom.*; public class CoordinateTools { public static function random(_arg1:Number):Number{ return (Math.floor((Math.random() * _arg1))); } public static function localToLocal(_arg1:DisplayObject, _arg2:DisplayObject, _arg3:Point=null):Point{ var _local4:Point; _local4 = (_arg3) ? _arg3 : new Point(); _local4 = _arg1.localToGlobal(_local4); _local4 = _arg2.globalToLocal(_local4); return (_local4); } } }//package org.papervision3d.core.components.as3.utils
Section 72
//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 73
//DefaultTriangleCuller (org.papervision3d.core.culling.DefaultTriangleCuller) package org.papervision3d.core.culling { import org.papervision3d.core.proto.*; import org.papervision3d.core.geom.renderables.*; 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 74
//IObjectCuller (org.papervision3d.core.culling.IObjectCuller) package org.papervision3d.core.culling { import org.papervision3d.objects.*; public interface IObjectCuller { function testObject(_arg1:DisplayObject3D):int; } }//package org.papervision3d.core.culling
Section 75
//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 76
//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 77
//RectangleParticleCuller (org.papervision3d.core.culling.RectangleParticleCuller) package org.papervision3d.core.culling { import org.papervision3d.core.geom.renderables.*; import flash.geom.*; public class RectangleParticleCuller implements IParticleCuller { public var cullingRectangle:Rectangle; private static var vInstance:Vertex3DInstance; private static var testPoint:Point; public function RectangleParticleCuller(_arg1:Rectangle=null){ this.cullingRectangle = _arg1; testPoint = new Point(); } public function testParticle(_arg1:Particle):Boolean{ vInstance = _arg1.vertex3D.vertex3DInstance; if (_arg1.material.invisible == false){ if (vInstance.visible){ if (_arg1.renderRect.intersects(cullingRectangle)){ return (true); }; }; }; return (false); } } }//package org.papervision3d.core.culling
Section 78
//RectangleTriangleCuller (org.papervision3d.core.culling.RectangleTriangleCuller) package org.papervision3d.core.culling { import org.papervision3d.core.geom.renderables.*; import flash.geom.*; public class RectangleTriangleCuller extends DefaultTriangleCuller implements ITriangleCuller { public var cullingRectangle:Rectangle; private static const DEFAULT_RECT_X:Number = -((DEFAULT_RECT_W / 2)); private static const DEFAULT_RECT_W:Number = 640; private static const DEFAULT_RECT_H:Number = 480; private static const DEFAULT_RECT_Y:Number = -((DEFAULT_RECT_H / 2)); private static var hitRect:Rectangle = new Rectangle(); public function RectangleTriangleCuller(_arg1:Rectangle=null):void{ cullingRectangle = new Rectangle(DEFAULT_RECT_X, DEFAULT_RECT_Y, DEFAULT_RECT_W, DEFAULT_RECT_H); super(); if (_arg1){ this.cullingRectangle = _arg1; }; } override public function testFace(_arg1:Triangle3D, _arg2:Vertex3DInstance, _arg3:Vertex3DInstance, _arg4:Vertex3DInstance):Boolean{ if (super.testFace(_arg1, _arg2, _arg3, _arg4)){ hitRect.x = Math.min(_arg4.x, Math.min(_arg3.x, _arg2.x)); hitRect.width = (Math.max(_arg4.x, Math.max(_arg3.x, _arg2.x)) + Math.abs(hitRect.x)); hitRect.y = Math.min(_arg4.y, Math.min(_arg3.y, _arg2.y)); hitRect.height = (Math.max(_arg4.y, Math.max(_arg3.y, _arg2.y)) + Math.abs(hitRect.y)); return (cullingRectangle.intersects(hitRect)); }; return (false); } } }//package org.papervision3d.core.culling
Section 79
//ViewportObjectFilter (org.papervision3d.core.culling.ViewportObjectFilter) package org.papervision3d.core.culling { import org.papervision3d.objects.*; import flash.utils.*; public class ViewportObjectFilter implements IObjectCuller { protected var _mode:int; protected var objects:Dictionary; public function ViewportObjectFilter(_arg1:int):void{ this.mode = _arg1; init(); } public function addObject(_arg1:DisplayObject3D):void{ objects[_arg1] = _arg1; } public function removeObject(_arg1:DisplayObject3D):void{ delete objects[_arg1]; } public function set mode(_arg1:int):void{ _mode = _arg1; } public function get mode():int{ return (_mode); } private function init():void{ objects = new Dictionary(true); } public function testObject(_arg1:DisplayObject3D):int{ if (objects[_arg1]){ if (_mode == ViewportObjectFilterMode.INCLUSIVE){ return (1); }; if (_mode == ViewportObjectFilterMode.EXCLUSIVE){ return (0); }; } else { if (_mode == ViewportObjectFilterMode.INCLUSIVE){ return (0); }; if (_mode == ViewportObjectFilterMode.EXCLUSIVE){ return (1); }; }; return (0); } public function destroy():void{ objects = null; } } }//package org.papervision3d.core.culling
Section 80
//ViewportObjectFilterMode (org.papervision3d.core.culling.ViewportObjectFilterMode) package org.papervision3d.core.culling { public class ViewportObjectFilterMode { public static const INCLUSIVE:int = 0; public static const EXCLUSIVE:int = 1; } }//package org.papervision3d.core.culling
Section 81
//AbstractEffect (org.papervision3d.core.effects.AbstractEffect) package org.papervision3d.core.effects { import org.papervision3d.core.layers.*; import flash.filters.*; public class AbstractEffect implements IEffect { public function preRender():void{ } public function getEffect():BitmapFilter{ return (null); } public function postRender():void{ } public function attachEffect(_arg1:EffectLayer):void{ } } }//package org.papervision3d.core.effects
Section 82
//IEffect (org.papervision3d.core.effects.IEffect) package org.papervision3d.core.effects { import org.papervision3d.core.layers.*; import flash.filters.*; public interface IEffect { function postRender():void; function preRender():void; function attachEffect(_arg1:EffectLayer):void; function getEffect():BitmapFilter; } }//package org.papervision3d.core.effects
Section 83
//LayerEffect (org.papervision3d.core.effects.LayerEffect) package org.papervision3d.core.effects { import org.papervision3d.core.layers.*; import flash.filters.*; public class LayerEffect extends AbstractEffect { private var filter:BitmapFilter; private var layer:EffectLayer; public function LayerEffect(_arg1:BitmapFilter){ this.filter = _arg1; } override public function attachEffect(_arg1:EffectLayer):void{ var _local2:Array; this.layer = _arg1; _local2 = _arg1.filters; _local2.push(filter); _arg1.filters = _local2; } override public function getEffect():BitmapFilter{ return (filter); } } }//package org.papervision3d.core.effects
Section 84
//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 85
//Particle (org.papervision3d.core.geom.renderables.Particle) package org.papervision3d.core.geom.renderables { import org.papervision3d.core.render.command.*; import flash.geom.*; import org.papervision3d.materials.special.*; import org.papervision3d.core.geom.*; public class Particle implements IRenderable { public var size:Number; public var renderScale:Number; public var renderCommand:RenderParticle; public var renderRect:Rectangle; public var instance:Particles; public var vertex3D:Vertex3D; public var material:ParticleMaterial; public function Particle(_arg1:ParticleMaterial, _arg2:Number=1, _arg3:Number=0, _arg4:Number=0, _arg5:Number=0){ this.material = _arg1; this.size = _arg2; this.renderCommand = new RenderParticle(this); this.renderRect = new Rectangle(); vertex3D = new Vertex3D(_arg3, _arg4, _arg5); } public function updateRenderRect():void{ material.updateRenderRect(this); } public function set x(_arg1:Number):void{ vertex3D.x = _arg1; } public function set y(_arg1:Number):void{ vertex3D.y = _arg1; } public function set z(_arg1:Number):void{ vertex3D.z = _arg1; } public function get x():Number{ return (vertex3D.x); } public function get y():Number{ return (vertex3D.y); } public function get z():Number{ return (vertex3D.z); } public function getRenderListItem():IRenderListItem{ return (renderCommand); } } }//package org.papervision3d.core.geom.renderables
Section 86
//Triangle3D (org.papervision3d.core.geom.renderables.Triangle3D) package org.papervision3d.core.geom.renderables { import org.papervision3d.core.proto.*; import org.papervision3d.core.render.command.*; import org.papervision3d.core.math.*; import org.papervision3d.objects.*; public class Triangle3D implements IRenderable { public var vertices:Array; public var face3DInstance:Triangle3DInstance; public var visible:Boolean; public var instance:DisplayObject3D; public var id:Number; public var material:MaterialObject3D; public var faceNormal:Number3D; public var renderCommand:RenderTriangle; public var screenZ:Number; public var uv0:NumberUV; public var uv1:NumberUV; public var uv2:NumberUV; public var _materialName:String; private var _uvArray:Array; 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 set uv(_arg1:Array):void{ uv0 = NumberUV(_arg1[0]); uv1 = NumberUV(_arg1[1]); uv2 = NumberUV(_arg1[2]); _uvArray = _arg1; } public function getRenderListItem():IRenderListItem{ return (renderCommand); } public 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(_local4, _local5); faceNormal.normalize(); } public function get uv():Array{ return (_uvArray); } } }//package org.papervision3d.core.geom.renderables
Section 87
//Triangle3DInstance (org.papervision3d.core.geom.renderables.Triangle3DInstance) package org.papervision3d.core.geom.renderables { import flash.display.*; import org.papervision3d.core.math.*; 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 88
//Vertex3D (org.papervision3d.core.geom.renderables.Vertex3D) package org.papervision3d.core.geom.renderables { import org.papervision3d.core.render.command.*; import org.papervision3d.core.math.*; 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 89
//Vertex3DInstance (org.papervision3d.core.geom.renderables.Vertex3DInstance) package org.papervision3d.core.geom.renderables { import org.papervision3d.core.math.*; 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 90
//Particles (org.papervision3d.core.geom.Particles) package org.papervision3d.core.geom { import org.papervision3d.core.render.data.*; import org.papervision3d.core.geom.renderables.*; import org.papervision3d.objects.*; public class Particles extends Vertices3D { public 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:RenderSessionData):Number{ var _local3:Particle; var _local4:Number; super.project(_arg1, _arg2); _local4 = (_arg2.camera.focus * _arg2.camera.zoom); for each (_local3 in particles) { _local3.renderScale = (_local4 / (_arg2.camera.focus + _local3.vertex3D.vertex3DInstance.z)); _local3.updateRenderRect(); if (_arg2.viewPort.particleCuller.testParticle(_local3)){ _local3.renderCommand.screenDepth = _local3.vertex3D.vertex3DInstance.z; _arg2.renderer.addToRenderList(_local3.renderCommand); } else { _arg2.renderStatistics.culledParticles++; }; }; 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 91
//TriangleMesh3D (org.papervision3d.core.geom.TriangleMesh3D) package org.papervision3d.core.geom { import org.papervision3d.core.proto.*; import org.papervision3d.core.render.data.*; import org.papervision3d.core.render.command.*; import org.papervision3d.core.geom.renderables.*; import org.papervision3d.core.math.*; import org.papervision3d.objects.*; import flash.utils.*; import org.papervision3d.core.culling.*; import org.papervision3d.core.render.draw.*; 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:RenderSessionData):Number{ var _local3:Array; var _local4:Number; var _local5:Number; var _local6:ITriangleCuller; var _local7:Vertex3DInstance; var _local8:Vertex3DInstance; var _local9:Vertex3DInstance; var _local10:Triangle3DInstance; var _local11:Triangle3D; var _local12:MaterialObject3D; var _local13:RenderTriangle; super.project(_arg1, _arg2); if (!this.culled){ _local3 = this.geometry.faces; _local4 = 0; _local5 = 0; _local6 = _arg2.triangleCuller; for each (_local11 in _local3) { _local12 = (_local11.material) ? _local11.material : material; _local10 = _local11.face3DInstance; _local7 = _local11.v0.vertex3DInstance; _local8 = _local11.v1.vertex3DInstance; _local9 = _local11.v2.vertex3DInstance; if ((_local10.visible = _local6.testFace(_local11, _local7, _local8, _local9))){ _local4 = (_local4 + (_local10.screenZ = (((_local7.z + _local8.z) + _local9.z) / 3))); _local13 = _local11.renderCommand; _local5++; _local13.renderer = (_local12 as ITriangleDrawer); _local13.screenDepth = _local10.screenZ; _arg2.renderer.addToRenderList(_local13); } else { _arg2.renderStatistics.culledTriangles++; }; }; return ((this.screenZ = (_local4 / _local5))); //unresolved jump }; return (0); } 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 geometry.faces) { _local4.v0 = _local1[_local4.v0]; _local4.v1 = _local1[_local4.v1]; _local4.v2 = _local1[_local4.v2]; }; } public function quarterFaces():void{ var _local1:Array; var _local2:Array; var _local3:Array; var _local4:Triangle3D; var _local5:int; var _local6:Vertex3D; var _local7:Vertex3D; var _local8:Vertex3D; var _local9:Vertex3D; var _local10:Vertex3D; var _local11:Vertex3D; var _local12:NumberUV; var _local13:NumberUV; var _local14:NumberUV; var _local15:NumberUV; var _local16:NumberUV; var _local17:NumberUV; var _local18:Triangle3D; var _local19:Triangle3D; var _local20:Triangle3D; var _local21:Triangle3D; _local1 = new Array(); _local2 = new Array(); _local3 = this.geometry.faces; _local5 = _local3.length; while ((_local4 = _local3[--_local5])) { _local6 = _local4.v0; _local7 = _local4.v1; _local8 = _local4.v2; _local9 = new Vertex3D(((_local6.x + _local7.x) / 2), ((_local6.y + _local7.y) / 2), ((_local6.z + _local7.z) / 2)); _local10 = new Vertex3D(((_local7.x + _local8.x) / 2), ((_local7.y + _local8.y) / 2), ((_local7.z + _local8.z) / 2)); _local11 = new Vertex3D(((_local8.x + _local6.x) / 2), ((_local8.y + _local6.y) / 2), ((_local8.z + _local6.z) / 2)); this.geometry.vertices.push(_local9, _local10, _local11); _local12 = _local4.uv[0]; _local13 = _local4.uv[1]; _local14 = _local4.uv[2]; _local15 = new NumberUV(((_local12.u + _local13.u) / 2), ((_local12.v + _local13.v) / 2)); _local16 = new NumberUV(((_local13.u + _local14.u) / 2), ((_local13.v + _local14.v) / 2)); _local17 = new NumberUV(((_local14.u + _local12.u) / 2), ((_local14.v + _local12.v) / 2)); _local18 = new Triangle3D(this, [_local6, _local9, _local11], _local4.material, [_local12, _local15, _local17]); _local19 = new Triangle3D(this, [_local9, _local7, _local10], _local4.material, [_local15, _local13, _local16]); _local20 = new Triangle3D(this, [_local11, _local10, _local8], _local4.material, [_local17, _local16, _local14]); _local21 = new Triangle3D(this, [_local9, _local10, _local11], _local4.material, [_local15, _local16, _local17]); _local2.push(_local18, _local19, _local20, _local21); }; this.geometry.faces = _local2; this.mergeVertices(); this.geometry.ready = true; } 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 92
//Vertices3D (org.papervision3d.core.geom.Vertices3D) package org.papervision3d.core.geom { import org.papervision3d.core.proto.*; import org.papervision3d.core.render.data.*; import org.papervision3d.core.geom.renderables.*; import flash.geom.*; import org.papervision3d.core.math.*; import org.papervision3d.objects.*; import org.papervision3d.core.culling.*; 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())); } public function projectFrustum(_arg1:DisplayObject3D, _arg2:RenderSessionData):Number{ var _local3:Matrix3D; var _local4:Rectangle; 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:Vertex3D; var _local27:Vertex3DInstance; var _local28:Array; var _local29:int; _local3 = this.view; _local4 = _arg2.camera.viewport; _local5 = _local3.n11; _local6 = _local3.n12; _local7 = _local3.n13; _local8 = _local3.n21; _local9 = _local3.n22; _local10 = _local3.n23; _local11 = _local3.n31; _local12 = _local3.n32; _local13 = _local3.n33; _local14 = _local3.n41; _local15 = _local3.n42; _local16 = _local3.n43; _local24 = (_local4.width / 2); _local25 = (_local4.height / 2); _local28 = this.geometry.vertices; _local29 = _local28.length; while ((_local26 = _local28[--_local29])) { _local17 = _local26.x; _local18 = _local26.y; _local19 = _local26.z; _local22 = ((((_local17 * _local11) + (_local18 * _local12)) + (_local19 * _local13)) + _local3.n34); _local23 = ((((_local17 * _local14) + (_local18 * _local15)) + (_local19 * _local16)) + _local3.n44); _local27 = _local26.vertex3DInstance; _local22 = (_local22 / _local23); if ((_local27.visible = (((_local22 > 0)) && ((_local22 < 1))))){ _local20 = (((((_local17 * _local5) + (_local18 * _local6)) + (_local19 * _local7)) + _local3.n14) / _local23); _local21 = (((((_local17 * _local8) + (_local18 * _local9)) + (_local19 * _local10)) + _local3.n24) / _local23); _local27.x = (_local20 * _local24); _local27.y = (_local21 * _local25); _local27.z = _local22; }; }; return (0); } override public function project(_arg1:DisplayObject3D, _arg2:RenderSessionData):Number{ var _local3:Matrix3D; 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:Vertex3D; var _local20:Vertex3DInstance; var _local21:Number; var _local22:Array; var _local23:int; var _local24:Number; var _local25:Number; super.project(_arg1, _arg2); if (this.culled){ return (0); }; if ((_arg2.camera is IObjectCuller)){ return (projectFrustum(_arg1, _arg2)); }; _local3 = this.view; _local4 = _local3.n11; _local5 = _local3.n12; _local6 = _local3.n13; _local7 = _local3.n21; _local8 = _local3.n22; _local9 = _local3.n23; _local10 = _local3.n31; _local11 = _local3.n32; _local12 = _local3.n33; _local22 = this.geometry.vertices; _local23 = _local22.length; _local24 = _arg2.camera.focus; _local25 = (_local24 * _arg2.camera.zoom); while ((_local19 = _local22[--_local23])) { _local13 = _local19.x; _local14 = _local19.y; _local15 = _local19.z; _local18 = ((((_local13 * _local10) + (_local14 * _local11)) + (_local15 * _local12)) + _local3.n34); _local20 = _local19.vertex3DInstance; if ((_local20.visible = (_local18 > 0))){ _local16 = ((((_local13 * _local4) + (_local14 * _local5)) + (_local15 * _local6)) + _local3.n14); _local17 = ((((_local13 * _local7) + (_local14 * _local8)) + (_local15 * _local9)) + _local3.n24); _local21 = (_local25 / (_local24 + _local18)); _local20.x = (_local16 * _local21); _local20.y = (_local17 * _local21); _local20.z = _local18; }; }; 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 93
//RenderLayerManager (org.papervision3d.core.layers.utils.RenderLayerManager) package org.papervision3d.core.layers.utils { import org.papervision3d.core.proto.*; import flash.events.*; import org.papervision3d.view.*; import flash.display.*; import org.papervision3d.core.layers.*; import org.papervision3d.objects.*; import flash.utils.*; public class RenderLayerManager extends EventDispatcher { public var layers:Dictionary; public var defaultLayer:RenderLayer; public var sortMode:int; private var containerLayers:Dictionary; public var effectLayers:Dictionary; private static var _instance:RenderLayerManager; public function RenderLayerManager(){ sortMode = RenderLayerSortMode.Z_SORT; super(); layers = new Dictionary(); effectLayers = new Dictionary(); containerLayers = new Dictionary(); } public function addRenderLayer(_arg1:RenderLayer):void{ if ((_arg1 is EffectLayer)){ effectLayers[_arg1] = _arg1; } else { layers[_arg1] = _arg1; }; } private function indexSort(_arg1:Sprite):void{ var _local2:Array; var _local3:RenderLayer; var _local4:EffectLayer; var _local5:int; var _local6:uint; _local2 = []; for each (_local3 in layers) { _local3.screenDepth = (_local3.screenDepth / _local3.faceCount); _local2.push({layer:_local3, screenDepth:_local3.layerIndex}); }; for each (_local4 in effectLayers) { _local4.screenDepth = (_local4.screenDepth / _local4.faceCount); _local2.push({layer:_local4, screenDepth:_local4.layerIndex}); }; _local2.sortOn("screenDepth", (Array.DESCENDING | Array.NUMERIC)); _local5 = -1; _local6 = 0; while (_local6 < _local2.length) { if (_local2[_local6].layer.parent == _arg1){ _local5++; _arg1.setChildIndex(_local2[_local6].layer, _local5); }; _local6++; }; } public function updateBeforeRender():void{ var _local1:EffectLayer; for each (_local1 in effectLayers) { _local1.updateBeforeRender(); }; } public function sortlayers(_arg1:Sprite):void{ if (sortMode == RenderLayerSortMode.Z_SORT){ zSort(_arg1); } else { if (sortMode == RenderLayerSortMode.INDEX_SORT){ indexSort(_arg1); }; }; } public function getDefaultLayer():RenderLayer{ return (defaultLayer); } public function addDefaultLayer(_arg1:RenderLayer):void{ defaultLayer = _arg1; addRenderLayer(_arg1); } public function checkIndividualLayers(_arg1:SceneObject3D, _arg2:Viewport3D):void{ var _local3:RenderLayer; var _local4:DisplayObject3D; for each (_local4 in _arg1.children) { if (_local4.hasOwnRenderLayer){ if (_local4.renderLayer == null){ _local3 = new RenderLayer(); _arg2.addRenderLayer(_local3); _local4.renderLayer = _local3; _arg2.containers[_local4] = _local3; }; _local4.renderLayer.filters = _local4.filters; } else { if (_arg2.containers[_local4]){ _arg2.removeRenderLayer(_arg2.containers[_local4]); _arg2.containers[_local4] = null; delete _arg2.containers[_local4]; }; }; }; } public function updateAfterRender():void{ var _local1:EffectLayer; for each (_local1 in effectLayers) { _local1.renderEffects(); }; } public function resetLayers():void{ var _local1:RenderLayer; var _local2:RenderLayer; for each (_local1 in layers) { _local1.faceCount = 0; _local1.screenDepth = 0; _local1.graphics.clear(); }; for each (_local2 in effectLayers) { _local2.faceCount = 0; _local2.screenDepth = 0; _local2.graphics.clear(); }; } public function removeRenderLayer(_arg1:RenderLayer):void{ if ((_arg1 is EffectLayer)){ effectLayers[_arg1] = null; delete effectLayers[_arg1]; } else { layers[_arg1] = null; delete layers[_arg1]; }; } private function zSort(_arg1:Sprite):void{ var _local2:Array; var _local3:RenderLayer; var _local4:EffectLayer; var _local5:int; var _local6:uint; _local2 = []; for each (_local3 in layers) { _local3.screenDepth = (_local3.screenDepth / _local3.faceCount); _local2.push({layer:_local3, screenDepth:_local3.screenDepth}); }; for each (_local4 in effectLayers) { _local4.screenDepth = (_local4.screenDepth / _local4.faceCount); _local2.push({layer:_local4, screenDepth:_local4.screenDepth}); }; _local2.sortOn("screenDepth", (Array.DESCENDING | Array.NUMERIC)); _local5 = -1; _local6 = 0; while (_local6 < _local2.length) { if (_local2[_local6].layer.parent == _arg1){ ++_local5; _arg1.setChildIndex(_local2[_local6].layer, _local5); }; _local6++; }; } public static function getInstance():RenderLayerManager{ if (_instance == null){ _instance = new (RenderLayerManager); }; return (_instance); } } }//package org.papervision3d.core.layers.utils
Section 94
//RenderLayerSortMode (org.papervision3d.core.layers.utils.RenderLayerSortMode) package org.papervision3d.core.layers.utils { public class RenderLayerSortMode { public static var Z_SORT:int = 0; public static var INDEX_SORT:int = 1; } }//package org.papervision3d.core.layers.utils
Section 95
//EffectLayer (org.papervision3d.core.layers.EffectLayer) package org.papervision3d.core.layers { import org.papervision3d.core.effects.*; public class EffectLayer extends RenderLayer { public var effects:Array; public function EffectLayer(){ effects = new Array(); drawLayer = this; } public function removeEffect(_arg1:AbstractEffect):void{ var _local2:AbstractEffect; this.filters = []; effects.splice(effects.indexOf(_arg1), 1); for each (_local2 in effects) { _local2.attachEffect(this); }; } public function updateBeforeRender():void{ var _local1:AbstractEffect; faceCount = 0; screenDepth = 0; for each (_local1 in effects) { _local1.preRender(); }; this.graphics.clear(); } public function addEffect(_arg1:AbstractEffect):void{ _arg1.attachEffect(this); effects.push(_arg1); } public function renderEffects():void{ var _local1:AbstractEffect; for each (_local1 in effects) { _local1.postRender(); }; } public function removeAllEffects():void{ this.filters = []; effects = []; } } }//package org.papervision3d.core.layers
Section 96
//RenderLayer (org.papervision3d.core.layers.RenderLayer) package org.papervision3d.core.layers { import flash.display.*; public class RenderLayer extends Sprite { public var layerIndex:Number;// = 1 public var drawLayer:Sprite; public var screenDepth:Number;// = 0 public var faceCount:Number;// = 0 public function RenderLayer(){ screenDepth = 0; faceCount = 0; layerIndex = 1; super(); drawLayer = this; } } }//package org.papervision3d.core.layers
Section 97
//AbstractLightShadeMaterial (org.papervision3d.core.material.AbstractLightShadeMaterial) package org.papervision3d.core.material { import org.papervision3d.core.proto.*; import org.papervision3d.materials.utils.*; import org.papervision3d.core.render.material.*; import org.papervision3d.core.render.data.*; import org.papervision3d.core.math.*; import org.papervision3d.objects.*; import flash.utils.*; import org.papervision3d.core.render.draw.*; public class AbstractLightShadeMaterial extends TriangleMaterial implements ITriangleDrawer, IUpdateBeforeMaterial { public var lightMatrices:Dictionary; private var _light:LightObject3D; protected static var lightMatrix:Matrix3D; public function AbstractLightShadeMaterial(){ init(); } public function get light():LightObject3D{ return (_light); } protected function init():void{ lightMatrices = new Dictionary(); } public function set light(_arg1:LightObject3D):void{ _light = _arg1; } public function updateBeforeRender(_arg1:RenderSessionData):void{ var _local2:DisplayObject3D; for each (_local2 in objects) { lightMatrices[_local2] = LightMatrix.getLightMatrix(light, _local2, _arg1); }; } } }//package org.papervision3d.core.material
Section 98
//TriangleMaterial (org.papervision3d.core.material.TriangleMaterial) package org.papervision3d.core.material { import org.papervision3d.core.proto.*; import org.papervision3d.core.render.data.*; import org.papervision3d.core.geom.renderables.*; import flash.display.*; import flash.geom.*; import org.papervision3d.core.render.draw.*; public class TriangleMaterial extends MaterialObject3D implements ITriangleDrawer { override public function drawTriangle(_arg1:Triangle3D, _arg2:Graphics, _arg3:RenderSessionData, _arg4:BitmapData=null, _arg5:Matrix=null):void{ } } }//package org.papervision3d.core.material
Section 99
//Matrix3D (org.papervision3d.core.math.Matrix3D) package org.papervision3d.core.math { 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 n42:Number; public var n21:Number; public var n22:Number; public var n23:Number; public var n24:Number; public var n34:Number; public var n41:Number; public var n43:Number; public var n44:Number; private static var _cos:Function = Math.cos; private static var _sin:Function = Math.sin; private static var temp:Matrix3D = Matrix3D.IDENTITY; private static var n3Di:Number3D = Number3D.ZERO; private static var n3Dj:Number3D = Number3D.ZERO; private static var n3Dk:Number3D = Number3D.ZERO; private static var toDEGREES:Number = 57.2957795130823; private static var toRADIANS:Number = 0.0174532925199433; public function Matrix3D(_arg1:Array=null){ reset(_arg1); } 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 calculateMultiply4x4(_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; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; _local3 = _arg1.n11; _local4 = _arg2.n11; _local5 = _arg1.n21; _local6 = _arg2.n21; _local7 = _arg1.n31; _local8 = _arg2.n31; _local9 = _arg1.n41; _local10 = _arg2.n41; _local11 = _arg1.n12; _local12 = _arg2.n12; _local13 = _arg1.n22; _local14 = _arg2.n22; _local15 = _arg1.n32; _local16 = _arg2.n32; _local17 = _arg1.n42; _local18 = _arg2.n42; _local19 = _arg1.n13; _local20 = _arg2.n13; _local21 = _arg1.n23; _local22 = _arg2.n23; _local23 = _arg1.n33; _local24 = _arg2.n33; _local25 = _arg1.n43; _local26 = _arg2.n43; _local27 = _arg1.n14; _local28 = _arg2.n14; _local29 = _arg1.n24; _local30 = _arg2.n24; _local31 = _arg1.n34; _local32 = _arg2.n34; _local33 = _arg1.n44; _local34 = _arg2.n44; this.n11 = (((_local3 * _local4) + (_local11 * _local6)) + (_local19 * _local8)); this.n12 = (((_local3 * _local12) + (_local11 * _local14)) + (_local19 * _local16)); this.n13 = (((_local3 * _local20) + (_local11 * _local22)) + (_local19 * _local24)); this.n14 = ((((_local3 * _local28) + (_local11 * _local30)) + (_local19 * _local32)) + _local27); this.n21 = (((_local5 * _local4) + (_local13 * _local6)) + (_local21 * _local8)); this.n22 = (((_local5 * _local12) + (_local13 * _local14)) + (_local21 * _local16)); this.n23 = (((_local5 * _local20) + (_local13 * _local22)) + (_local21 * _local24)); this.n24 = ((((_local5 * _local28) + (_local13 * _local30)) + (_local21 * _local32)) + _local29); this.n31 = (((_local7 * _local4) + (_local15 * _local6)) + (_local23 * _local8)); this.n32 = (((_local7 * _local12) + (_local15 * _local14)) + (_local23 * _local16)); this.n33 = (((_local7 * _local20) + (_local15 * _local22)) + (_local23 * _local24)); this.n34 = ((((_local7 * _local28) + (_local15 * _local30)) + (_local23 * _local32)) + _local31); this.n41 = (((_local9 * _local4) + (_local17 * _local6)) + (_local25 * _local8)); this.n42 = (((_local9 * _local12) + (_local17 * _local14)) + (_local25 * _local16)); this.n43 = (((_local9 * _local20) + (_local17 * _local22)) + (_local25 * _local24)); this.n44 = ((((_local9 * _local28) + (_local17 * _local30)) + (_local25 * _local32)) + _local33); } 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 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 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 invert():void{ temp.copy(this); calculateInverse(temp); } 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 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")); _local1 = (_local1 + ((((((((int((n41 * 1000)) / 1000) + "\t\t") + (int((n42 * 1000)) / 1000)) + "\t\t") + (int((n43 * 1000)) / 1000)) + "\t\t") + (int((n44 * 1000)) / 1000)) + "\n")); return (_local1); } public function reset(_arg1:Array=null):void{ if (((!(_arg1)) || ((_arg1.length < 12)))){ n11 = (n22 = (n33 = (n44 = 1))); n12 = (n13 = (n14 = (n21 = (n23 = (n24 = (n31 = (n32 = (n34 = (n41 = (n42 = (n43 = 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]; if (_arg1.length == 16){ n41 = _arg1[12]; n42 = _arg1[13]; n43 = _arg1[14]; n44 = _arg1[15]; } else { n41 = (n42 = (n43 = (n44 = 0))); }; }; } 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 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 multiplyVector4x4(_arg1:Matrix3D, _arg2:Number3D):void{ var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; _local3 = _arg2.x; _local4 = _arg2.y; _local5 = _arg2.z; _local6 = (1 / ((((_local3 * _arg1.n41) + (_local4 * _arg1.n42)) + (_local5 * _arg1.n43)) + _arg1.n44)); _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); _arg2.x = (_arg2.x * _local6); _arg2.y = (_arg2.y * _local6); _arg2.z = (_arg2.z * _local6); } 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 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 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 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, _arg5:Matrix3D=null):Matrix3D{ var _local6:Matrix3D; 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; if (!_arg5){ _local6 = IDENTITY; } else { _local6 = _arg5; }; _local7 = Math.cos(_arg4); _local8 = Math.sin(_arg4); _local9 = (1 - _local7); _local10 = ((_arg1 * _arg2) * _local9); _local11 = ((_arg2 * _arg3) * _local9); _local12 = ((_arg1 * _arg3) * _local9); _local13 = (_local8 * _arg3); _local14 = (_local8 * _arg2); _local15 = (_local8 * _arg1); _local6.n11 = (_local7 + ((_arg1 * _arg1) * _local9)); _local6.n12 = (-(_local13) + _local10); _local6.n13 = (_local14 + _local12); _local6.n21 = (_local13 + _local10); _local6.n22 = (_local7 + ((_arg2 * _arg2) * _local9)); _local6.n23 = (-(_local15) + _local11); _local6.n31 = (-(_local14) + _local12); _local6.n32 = (_local15 + _local11); _local6.n33 = (_local7 + ((_arg3 * _arg3) * _local9)); return (_local6); } public static function add(_arg1:Matrix3D, _arg2:Matrix3D):Matrix3D{ var _local3:Matrix3D; _local3 = new (Matrix3D); _local3.calculateAdd(_arg1, _arg2); return (_local3); } public static function multiply(_arg1:Matrix3D, _arg2:Matrix3D):Matrix3D{ var _local3:Matrix3D; _local3 = new (Matrix3D); _local3.calculateMultiply(_arg1, _arg2); return (_local3); } public static function euler2quaternion(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Quaternion=null):Quaternion{ 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:Quaternion; _local5 = Math.sin((_arg1 * 0.5)); _local6 = Math.cos((_arg1 * 0.5)); _local7 = Math.sin((_arg2 * 0.5)); _local8 = Math.cos((_arg2 * 0.5)); _local9 = Math.sin((_arg3 * 0.5)); _local10 = Math.cos((_arg3 * 0.5)); _local11 = (_local6 * _local8); _local12 = (_local5 * _local7); if (!_arg4){ _local13 = new Quaternion(); } else { _local13 = _arg4; }; _local13.x = ((_local9 * _local11) - (_local10 * _local12)); _local13.y = (((_local10 * _local5) * _local8) + ((_local9 * _local6) * _local7)); _local13.z = (((_local10 * _local6) * _local7) - ((_local9 * _local5) * _local8)); _local13.w = ((_local10 * _local11) + (_local9 * _local12)); return (_local13); } public static function quaternion2matrix(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Matrix3D=null):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; var _local15:Matrix3D; _local6 = (_arg1 * _arg1); _local7 = (_arg1 * _arg2); _local8 = (_arg1 * _arg3); _local9 = (_arg1 * _arg4); _local10 = (_arg2 * _arg2); _local11 = (_arg2 * _arg3); _local12 = (_arg2 * _arg4); _local13 = (_arg3 * _arg3); _local14 = (_arg3 * _arg4); if (!_arg5){ _local15 = IDENTITY; } else { _local15 = _arg5; }; _local15.n11 = (1 - (2 * (_local10 + _local13))); _local15.n12 = (2 * (_local7 - _local14)); _local15.n13 = (2 * (_local8 + _local12)); _local15.n21 = (2 * (_local7 + _local14)); _local15.n22 = (1 - (2 * (_local6 + _local13))); _local15.n23 = (2 * (_local11 - _local9)); _local15.n31 = (2 * (_local8 - _local12)); _local15.n32 = (2 * (_local11 + _local9)); _local15.n33 = (1 - (2 * (_local6 + _local10))); return (_local15); } public static function inverse(_arg1:Matrix3D):Matrix3D{ var _local2:Matrix3D; _local2 = new (Matrix3D); _local2.calculateInverse(_arg1); return (_local2); } 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; temp.reset(); _local2 = temp; _local2 = temp; _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 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 matrix2euler(_arg1:Matrix3D, _arg2:Number3D=null):Number3D{ var _local3:Matrix3D; var _local4:Matrix3D; var _local5:Matrix3D; var _local6:Number; if (!_arg2){ _arg2 = Number3D.ZERO; }; n3Di.reset(_arg1.n11, _arg1.n21, _arg1.n31); n3Dj.reset(_arg1.n12, _arg1.n22, _arg1.n32); n3Dk.reset(_arg1.n13, _arg1.n23, _arg1.n33); n3Di.normalize(); n3Dj.normalize(); n3Dk.normalize(); temp.reset([n3Di.x, n3Dj.x, n3Dk.x, 0, n3Di.y, n3Dj.y, n3Dk.y, 0, n3Di.z, n3Dj.z, n3Dk.z, 0]); _local3 = temp; _arg2.x = Math.atan2(_local3.n23, _local3.n33); _local4 = Matrix3D.rotationX(-(_arg2.x)); _local5 = Matrix3D.multiply(_local4, _local3); _local6 = Math.sqrt(((_local5.n11 * _local5.n11) + (_local5.n21 * _local5.n21))); _arg2.y = Math.atan2(-(_local5.n31), _local6); _arg2.z = Math.atan2(-(_local5.n12), _local5.n11); if (_arg2.x == Math.PI){ if (_arg2.y > 0){ _arg2.y = (_arg2.y - Math.PI); } else { _arg2.y = (_arg2.y + Math.PI); }; _arg2.x = 0; _arg2.z = (_arg2.z + Math.PI); }; _arg2.x = (_arg2.x * toDEGREES); _arg2.y = (_arg2.y * toDEGREES); _arg2.z = (_arg2.z * toDEGREES); return (_arg2); } 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 get IDENTITY():Matrix3D{ return (new Matrix3D([1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1])); } } }//package org.papervision3d.core.math
Section 100
//Number3D (org.papervision3d.core.math.Number3D) package org.papervision3d.core.math { import org.papervision3d.*; public class Number3D { public var z:Number; public var x:Number; public var y:Number; public static var toDEGREES:Number = 57.2957795130823; private static var temp:Number3D = Number3D.ZERO; public static var toRADIANS:Number = 0.0174532925199433; public function Number3D(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0){ this.x = _arg1; this.y = _arg2; this.z = _arg3; } 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 copyTo(_arg1:Number3D):void{ _arg1.x = x; _arg1.y = y; _arg1.z = z; } public function get moduloSquared():Number{ return ((((this.x * this.x) + (this.y * this.y)) + (this.z * this.z))); } public function reset(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0):void{ x = _arg1; y = _arg2; z = _arg3; } public function isModuloGreaterThan(_arg1:Number):Boolean{ return ((moduloSquared > (_arg1 * _arg1))); } public function rotateX(_arg1:Number):void{ var _local2:Number; var _local3:Number; if (Papervision3D.useDEGREES){ _arg1 = (_arg1 * toRADIANS); }; _local2 = Math.cos(_arg1); _local3 = Math.sin(_arg1); temp.copyFrom(this); this.y = ((temp.y * _local2) - (temp.z * _local3)); this.z = ((temp.y * _local3) + (temp.z * _local2)); } public function rotateY(_arg1:Number):void{ var _local2:Number; var _local3:Number; if (Papervision3D.useDEGREES){ _arg1 = (_arg1 * toRADIANS); }; _local2 = Math.cos(_arg1); _local3 = Math.sin(_arg1); temp.copyFrom(this); this.x = ((temp.x * _local2) + (temp.z * _local3)); this.z = ((temp.x * -(_local3)) + (temp.z * _local2)); } public function rotateZ(_arg1:Number):void{ var _local2:Number; var _local3:Number; if (Papervision3D.useDEGREES){ _arg1 = (_arg1 * toRADIANS); }; _local2 = Math.cos(_arg1); _local3 = Math.sin(_arg1); temp.copyFrom(this); this.x = ((temp.x * _local2) - (temp.y * _local3)); this.y = ((temp.x * _local3) + (temp.y * _local2)); } public function clone():Number3D{ return (new Number3D(this.x, this.y, this.z)); } public function plusEq(_arg1:Number3D):void{ x = (x + _arg1.x); y = (y + _arg1.y); z = (z + _arg1.z); } public function toString():String{ return (((((("x:" + (Math.round((x * 100)) / 100)) + " y:") + (Math.round((y * 100)) / 100)) + " z:") + (Math.round((z * 100)) / 100))); } public function isModuloEqualTo(_arg1:Number):Boolean{ return ((moduloSquared == (_arg1 * _arg1))); } public function multiplyEq(_arg1:Number):void{ x = (x * _arg1); y = (y * _arg1); z = (z * _arg1); } public function get modulo():Number{ return (Math.sqrt((((this.x * this.x) + (this.y * this.y)) + (this.z * this.z)))); } public function isModuloLessThan(_arg1:Number):Boolean{ return ((moduloSquared < (_arg1 * _arg1))); } public function minusEq(_arg1:Number3D):void{ x = (x - _arg1.x); y = (y - _arg1.y); z = (z - _arg1.z); } public function copyFrom(_arg1:Number3D):void{ x = _arg1.x; y = _arg1.y; z = _arg1.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, _arg3:Number3D=null):Number3D{ if (!_arg3){ _arg3 = ZERO; }; _arg3.reset(((_arg2.y * _arg1.z) - (_arg2.z * _arg1.y)), ((_arg2.z * _arg1.x) - (_arg2.x * _arg1.z)), ((_arg2.x * _arg1.y) - (_arg2.y * _arg1.x))); return (_arg3); } public static function dot(_arg1:Number3D, _arg2:Number3D):Number{ return ((((_arg1.x * _arg2.x) + (_arg1.y * _arg2.y)) + (_arg2.z * _arg1.z))); } public static function get ZERO():Number3D{ return (new Number3D(0, 0, 0)); } } }//package org.papervision3d.core.math
Section 101
//NumberUV (org.papervision3d.core.math.NumberUV) package org.papervision3d.core.math { 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.math
Section 102
//Quaternion (org.papervision3d.core.math.Quaternion) package org.papervision3d.core.math { public class Quaternion { private var _matrix:Matrix3D; public var w:Number; public var x:Number; public var y:Number; public var z:Number; public static const EPSILON:Number = 1E-6; public static const DEGTORAD:Number = 0.0174532925199433; public static const RADTODEG:Number = 57.2957795130823; public function Quaternion(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0, _arg4:Number=1):void{ this.x = _arg1; this.y = _arg2; this.z = _arg3; this.w = _arg4; _matrix = Matrix3D.IDENTITY; } public function normalize():void{ var _local1:Number; var _local2:Number; _local1 = this.modulo; if (Math.abs(_local1) < EPSILON){ x = (y = (z = 0)); w = 1; } else { _local2 = (1 / _local1); x = (x * _local2); y = (y * _local2); z = (z * _local2); w = (w * _local2); }; } public function get modulo():Number{ return (Math.sqrt(((((x * x) + (y * y)) + (z * z)) + (w * w)))); } public function toMatrix():Matrix3D{ var _local1:Number; var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; _local1 = (x * x); _local2 = (x * y); _local3 = (x * z); _local4 = (x * w); _local5 = (y * y); _local6 = (y * z); _local7 = (y * w); _local8 = (z * z); _local9 = (z * w); _matrix.n11 = (1 - (2 * (_local5 + _local8))); _matrix.n12 = (2 * (_local2 - _local9)); _matrix.n13 = (2 * (_local3 + _local7)); _matrix.n21 = (2 * (_local2 + _local9)); _matrix.n22 = (1 - (2 * (_local1 + _local8))); _matrix.n23 = (2 * (_local6 - _local4)); _matrix.n31 = (2 * (_local3 - _local7)); _matrix.n32 = (2 * (_local6 + _local4)); _matrix.n33 = (1 - (2 * (_local1 + _local5))); return (_matrix); } public function mult(_arg1:Quaternion):void{ var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; _local2 = this.w; _local3 = this.x; _local4 = this.y; _local5 = this.z; x = ((((_local2 * _arg1.x) + (_local3 * _arg1.w)) + (_local4 * _arg1.z)) - (_local5 * _arg1.y)); y = ((((_local2 * _arg1.y) - (_local3 * _arg1.z)) + (_local4 * _arg1.w)) + (_local5 * _arg1.x)); z = ((((_local2 * _arg1.z) + (_local3 * _arg1.y)) - (_local4 * _arg1.x)) + (_local5 * _arg1.w)); w = ((((_local2 * _arg1.w) - (_local3 * _arg1.x)) - (_local4 * _arg1.y)) - (_local5 * _arg1.z)); } public static function createFromEuler(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Boolean=false):Quaternion{ 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:Quaternion; if (_arg4){ _arg1 = (_arg1 * DEGTORAD); _arg2 = (_arg2 * DEGTORAD); _arg3 = (_arg3 * DEGTORAD); }; _local5 = Math.sin((_arg1 * 0.5)); _local6 = Math.cos((_arg1 * 0.5)); _local7 = Math.sin((_arg2 * 0.5)); _local8 = Math.cos((_arg2 * 0.5)); _local9 = Math.sin((_arg3 * 0.5)); _local10 = Math.cos((_arg3 * 0.5)); _local11 = (_local6 * _local8); _local12 = (_local5 * _local7); _local13 = new (Quaternion); _local13.x = ((_local9 * _local11) - (_local10 * _local12)); _local13.y = (((_local10 * _local5) * _local8) + ((_local9 * _local6) * _local7)); _local13.z = (((_local10 * _local6) * _local7) - ((_local9 * _local5) * _local8)); _local13.w = ((_local10 * _local11) + (_local9 * _local12)); return (_local13); } public static function createFromMatrix(_arg1:Matrix3D):Quaternion{ var _local2:Quaternion; var _local3:Number; var _local4:Array; var _local5:int; var _local6:int; var _local7:int; var _local8:Number; var _local9:Array; var _local10:Array; _local2 = new (Quaternion); _local4 = new Array(4); _local8 = ((_arg1.n11 + _arg1.n22) + _arg1.n33); if (_local8 > 0){ _local3 = Math.sqrt((_local8 + 1)); _local2.w = (_local3 / 2); _local3 = (0.5 / _local3); _local2.x = ((_arg1.n32 - _arg1.n23) * _local3); _local2.y = ((_arg1.n13 - _arg1.n31) * _local3); _local2.z = ((_arg1.n21 - _arg1.n12) * _local3); } else { _local9 = [1, 2, 0]; _local10 = [[_arg1.n11, _arg1.n12, _arg1.n13, _arg1.n14], [_arg1.n21, _arg1.n22, _arg1.n23, _arg1.n24], [_arg1.n31, _arg1.n32, _arg1.n33, _arg1.n34]]; _local5 = 0; if (_local10[1][1] > _local10[0][0]){ _local5 = 1; }; if (_local10[2][2] > _local10[_local5][_local5]){ _local5 = 2; }; _local6 = _local9[_local5]; _local7 = _local9[_local6]; _local3 = Math.sqrt(((_local10[_local5][_local5] - (_local10[_local6][_local6] + _local10[_local7][_local7])) + 1)); _local4[_local5] = (_local3 * 0.5); if (_local3 != 0){ _local3 = (0.5 / _local3); }; _local4[3] = ((_local10[_local7][_local6] - _local10[_local6][_local7]) * _local3); _local4[_local6] = ((_local10[_local6][_local5] + _local10[_local5][_local6]) * _local3); _local4[_local7] = ((_local10[_local7][_local5] + _local10[_local5][_local7]) * _local3); _local2.x = _local4[0]; _local2.y = _local4[1]; _local2.z = _local4[2]; _local2.w = _local4[3]; }; return (_local2); } public static function dot(_arg1:Quaternion, _arg2:Quaternion):Number{ return (((((_arg1.x * _arg2.x) + (_arg1.y * _arg2.y)) + (_arg1.z * _arg2.z)) + (_arg1.w * _arg2.w))); } public static function multiply(_arg1:Quaternion, _arg2:Quaternion):Quaternion{ var _local3:Quaternion; _local3 = new (Quaternion); _local3.x = ((((_arg1.w * _arg2.x) + (_arg1.x * _arg2.w)) + (_arg1.y * _arg2.z)) - (_arg1.z * _arg2.y)); _local3.y = ((((_arg1.w * _arg2.y) - (_arg1.x * _arg2.z)) + (_arg1.y * _arg2.w)) + (_arg1.z * _arg2.x)); _local3.z = ((((_arg1.w * _arg2.z) + (_arg1.x * _arg2.y)) - (_arg1.y * _arg2.x)) + (_arg1.z * _arg2.w)); _local3.w = ((((_arg1.w * _arg2.w) - (_arg1.x * _arg2.x)) - (_arg1.y * _arg2.y)) - (_arg1.z * _arg2.z)); return (_local3); } public static function createFromAxisAngle(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Quaternion{ var _local5:Number; var _local6:Number; var _local7:Quaternion; _local5 = Math.sin((_arg4 / 2)); _local6 = Math.cos((_arg4 / 2)); _local7 = new (Quaternion); _local7.x = (_arg1 * _local5); _local7.y = (_arg2 * _local5); _local7.z = (_arg3 * _local5); _local7.w = _local6; _local7.normalize(); return (_local7); } public static function slerp(_arg1:Quaternion, _arg2:Quaternion, _arg3:Number):Quaternion{ var _local4:Quaternion; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; _local4 = new (Quaternion); _local5 = ((((_arg1.w * _arg2.w) + (_arg1.x * _arg2.x)) + (_arg1.y * _arg2.y)) + (_arg1.z * _arg2.z)); if (Math.abs(_local5) >= 1){ _local4.w = _arg1.w; _local4.x = _arg1.x; _local4.y = _arg1.y; _local4.z = _arg1.z; return (_local4); }; _local6 = Math.acos(_local5); _local7 = Math.sqrt((1 - (_local5 * _local5))); if (Math.abs(_local7) < 0.001){ _local4.w = ((_arg1.w * 0.5) + (_arg2.w * 0.5)); _local4.x = ((_arg1.x * 0.5) + (_arg2.x * 0.5)); _local4.y = ((_arg1.y * 0.5) + (_arg2.y * 0.5)); _local4.z = ((_arg1.z * 0.5) + (_arg2.z * 0.5)); return (_local4); }; _local8 = (Math.sin(((1 - _arg3) * _local6)) / _local7); _local9 = (Math.sin((_arg3 * _local6)) / _local7); _local4.w = ((_arg1.w * _local8) + (_arg2.w * _local9)); _local4.x = ((_arg1.x * _local8) + (_arg2.x * _local9)); _local4.y = ((_arg1.y * _local8) + (_arg2.y * _local9)); _local4.z = ((_arg1.z * _local8) + (_arg2.z * _local9)); return (_local4); } public static function createFromOrthoMatrix(_arg1:Matrix3D):Quaternion{ var _local2:Quaternion; _local2 = new (Quaternion); _local2.w = (Math.sqrt(Math.max(0, (((1 + _arg1.n11) + _arg1.n22) + _arg1.n33))) / 2); _local2.x = (Math.sqrt(Math.max(0, (((1 + _arg1.n11) - _arg1.n22) - _arg1.n33))) / 2); _local2.y = (Math.sqrt(Math.max(0, (((1 - _arg1.n11) + _arg1.n22) - _arg1.n33))) / 2); _local2.z = (Math.sqrt(Math.max(0, (((1 - _arg1.n11) - _arg1.n22) + _arg1.n33))) / 2); _local2.x = (((_arg1.n32 - _arg1.n23) < 0)) ? ((_local2.x < 0)) ? _local2.x : -(_local2.x) : ((_local2.x < 0)) ? -(_local2.x) : _local2.x; _local2.y = (((_arg1.n13 - _arg1.n31) < 0)) ? ((_local2.y < 0)) ? _local2.y : -(_local2.y) : ((_local2.y < 0)) ? -(_local2.y) : _local2.y; _local2.z = (((_arg1.n21 - _arg1.n12) < 0)) ? ((_local2.z < 0)) ? _local2.z : -(_local2.z) : ((_local2.z < 0)) ? -(_local2.z) : _local2.z; return (_local2); } public static function conjugate(_arg1:Quaternion):Quaternion{ var _local2:Quaternion; _local2 = new (Quaternion); _local2.x = -(_arg1.x); _local2.y = -(_arg1.y); _local2.z = -(_arg1.z); _local2.w = _arg1.w; return (_local2); } } }//package org.papervision3d.core.math
Section 103
//CameraObject3D (org.papervision3d.core.proto.CameraObject3D) package org.papervision3d.core.proto { import flash.geom.*; import org.papervision3d.core.math.*; import org.papervision3d.objects.*; public class CameraObject3D extends DisplayObject3D { public var eye:Matrix3D; public var viewport:Rectangle; public var zoom:Number; public var sort:Boolean; public var focus:Number; public static const TYPE:String = "ABSTRACT"; public static var DEFAULT_POS:Number3D = new Number3D(0, 0, -1000); private static var _flipY:Matrix3D = Matrix3D.scaleMatrix(1, -1, 1); 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.eye = Matrix3D.IDENTITY; this.sort = (_arg3) ? !((_arg3.sort == false)) : true; } public function transformView(_arg1:Matrix3D=null):void{ eye.calculateMultiply(((_arg1) || (this.transform)), _flipY); eye.invert(); } public function pan(_arg1:Number):void{ super.yaw(_arg1); } public function tilt(_arg1:Number):void{ super.pitch(_arg1); } } }//package org.papervision3d.core.proto
Section 104
//DisplayObjectContainer3D (org.papervision3d.core.proto.DisplayObjectContainer3D) package org.papervision3d.core.proto { import org.papervision3d.materials.utils.*; import flash.events.*; 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]]; if (this._children[_arg1]){ _childrenTotal--; }; 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 105
//GeometryObject3D (org.papervision3d.core.proto.GeometryObject3D) package org.papervision3d.core.proto { import flash.events.*; import org.papervision3d.core.geom.renderables.*; import org.papervision3d.core.math.*; import flash.utils.*; public class GeometryObject3D extends EventDispatcher { protected var _boundingSphere2:Number; protected var _boundingSphereDirty:Boolean;// = true public var dirty:Boolean; 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 106
//LightObject3D (org.papervision3d.core.proto.LightObject3D) package org.papervision3d.core.proto { import org.papervision3d.core.math.*; import org.papervision3d.objects.*; import org.papervision3d.materials.*; import org.papervision3d.objects.primitives.*; public class LightObject3D extends DisplayObject3D { private var displaySphere:Sphere; public var lightMatrix:Matrix3D; public var flipped:Boolean; private var _showLight:Boolean; public function LightObject3D(_arg1:Boolean=false, _arg2:Boolean=false){ this.lightMatrix = Matrix3D.IDENTITY; this.showLight = _arg1; this.flipped = _arg2; } public function get showLight():Boolean{ return (_showLight); } public function set showLight(_arg1:Boolean):void{ if (_showLight){ removeChild(displaySphere); }; if (_arg1){ displaySphere = new Sphere(new WireframeMaterial(0xFFFF00), 10, 3, 2); addChild(displaySphere); }; _showLight = _arg1; } } }//package org.papervision3d.core.proto
Section 107
//MaterialObject3D (org.papervision3d.core.proto.MaterialObject3D) package org.papervision3d.core.proto { import flash.events.*; import org.papervision3d.core.render.material.*; import org.papervision3d.core.render.data.*; import org.papervision3d.core.geom.renderables.*; import flash.display.*; import flash.geom.*; import org.papervision3d.core.layers.*; import org.papervision3d.objects.*; import org.papervision3d.materials.*; import flash.utils.*; import org.papervision3d.core.render.draw.*; public class MaterialObject3D extends EventDispatcher implements ITriangleDrawer { public var maxV:Number; public var name:String; public var scene:SceneObject3D; public var heightOffset:Number;// = 0 public var fillAlpha:Number;// = 0 public var fillColor:Number; public var id:Number; protected var objects:Dictionary; 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 renderLayer:RenderLayer;// = null 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 tiled:Boolean;// = false public var widthOffset:Number;// = 0 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; widthOffset = 0; heightOffset = 0; interactive = false; renderLayer = null; super(); this.id = _totalMaterialObjects++; MaterialManager.registerMaterial(this); objects = new Dictionary(); } public function drawTriangle(_arg1:Triangle3D, _arg2:Graphics, _arg3:RenderSessionData, _arg4:BitmapData=null, _arg5:Matrix=null):void{ } public function get doubleSided():Boolean{ return (!(this.oneSide)); } public function unregisterObject(_arg1:DisplayObject3D):void{ if (objects[_arg1] != null){ delete objects[_arg1]; }; } public function set doubleSided(_arg1:Boolean):void{ this.oneSide = !(_arg1); } public function registerObject(_arg1:DisplayObject3D):void{ objects[_arg1] = _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.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; } protected function destroy():void{ MaterialManager.unRegisterMaterial(this); } 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 108
//SceneObject3D (org.papervision3d.core.proto.SceneObject3D) package org.papervision3d.core.proto { import org.papervision3d.materials.utils.*; import org.papervision3d.core.animation.core.*; import org.papervision3d.objects.*; import org.papervision3d.*; public class SceneObject3D extends DisplayObjectContainer3D { public var objects:Array; public var animationEngine:AnimationEngine; public var animated:Boolean;// = false public var materials:MaterialsList; public function SceneObject3D(){ animated = false; super(); this.objects = new Array(); this.materials = new MaterialsList(); Papervision3D.log((((((Papervision3D.NAME + " ") + Papervision3D.VERSION) + " (") + Papervision3D.DATE) + ")\n")); this.root = this; } 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); } 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); } } }//package org.papervision3d.core.proto
Section 109
//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 110
//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 111
//RenderableListItem (org.papervision3d.core.render.command.RenderableListItem) package org.papervision3d.core.render.command { import org.papervision3d.core.render.data.*; import org.papervision3d.core.geom.renderables.*; import flash.geom.*; 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 112
//RenderParticle (org.papervision3d.core.render.command.RenderParticle) package org.papervision3d.core.render.command { import org.papervision3d.core.render.data.*; import org.papervision3d.core.geom.renderables.*; import flash.geom.*; import org.papervision3d.core.layers.*; import org.papervision3d.materials.special.*; public class RenderParticle extends RenderableListItem implements IRenderListItem { public var particle:Particle; public var container:RenderLayer; public var renderMat:ParticleMaterial; public function RenderParticle(_arg1:Particle){ this.particle = _arg1; } override public function hitTestPoint2D(_arg1:Point, _arg2:RenderHitData):RenderHitData{ renderMat = particle.material; if (renderMat.interactive){ if (particle.renderRect.contains(_arg1.x, _arg1.y)){ _arg2.displayObject3D = particle.instance; _arg2.material = renderMat; _arg2.renderable = particle; _arg2.hasHit = true; _arg2.x = particle.x; _arg2.y = particle.y; _arg2.z = particle.z; _arg2.u = 0; _arg2.v = 0; return (_arg2); }; }; return (_arg2); } override public function render(_arg1:RenderSessionData):void{ container = ((((particle.material.renderLayer) || (particle.instance.renderLayer))) || (_arg1.defaultRenderLayer)); particle.material.drawParticle(particle, container.drawLayer.graphics, _arg1); container.faceCount++; container.screenDepth = (container.screenDepth + this.screenDepth); } } }//package org.papervision3d.core.render.command
Section 113
//RenderTriangle (org.papervision3d.core.render.command.RenderTriangle) package org.papervision3d.core.render.command { import org.papervision3d.core.proto.*; import org.papervision3d.core.render.data.*; import org.papervision3d.core.geom.renderables.*; import flash.display.*; import flash.geom.*; import org.papervision3d.core.layers.*; import org.papervision3d.core.math.*; import org.papervision3d.materials.*; import org.papervision3d.materials.shaders.*; 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:RenderLayer; 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 is ShadedMaterial)) ? ShadedMaterial(triangle.material).material : triangle.material; if (!renderMat){ renderMat = ((triangle.material is ShadedMaterial)) ? ShadedMaterial(triangle.instance.material).material : 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); renderMat = ((_arg1.material is ShadedMaterial)) ? ShadedMaterial(_arg1.material).material : _arg1.material; if (!renderMat){ renderMat = ((_arg1.material is ShadedMaterial)) ? ShadedMaterial(_arg1.instance.material).material : _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.material.renderLayer) || (triangle.instance.renderLayer))) || (_arg1.defaultRenderLayer)); container.faceCount++; container.screenDepth = (container.screenDepth + this.screenDepth); renderer.drawTriangle(triangle, container.drawLayer.graphics, _arg1); } } }//package org.papervision3d.core.render.command
Section 114
//RenderHitData (org.papervision3d.core.render.data.RenderHitData) package org.papervision3d.core.render.data { import org.papervision3d.core.proto.*; import org.papervision3d.core.geom.renderables.*; import org.papervision3d.objects.*; public class RenderHitData { public var y:Number; public var endTime:int;// = 0 public var displayObject3D:DisplayObject3D; public var startTime:int;// = 0 public var hasHit:Boolean;// = false public var material:MaterialObject3D; public var renderable:IRenderable; public var u:Number; public var v:Number; public var x:Number; public var z:Number; public function RenderHitData(){ startTime = 0; endTime = 0; hasHit = false; super(); } public function toString():String{ return (((displayObject3D + " ") + renderable)); } } }//package org.papervision3d.core.render.data
Section 115
//RenderSessionData (org.papervision3d.core.render.data.RenderSessionData) package org.papervision3d.core.render.data { import org.papervision3d.core.proto.*; import org.papervision3d.view.*; import flash.display.*; import org.papervision3d.core.layers.*; import org.papervision3d.core.culling.*; import org.papervision3d.core.render.*; public class RenderSessionData { public var renderer:IRenderEngine; public var particleCuller:IParticleCuller; public var viewPort:Viewport3D; public var triangleCuller:ITriangleCuller; public var container:Sprite; public var defaultRenderLayer:RenderLayer; public var scene:SceneObject3D; public var camera:CameraObject3D; public var renderStatistics:RenderStatistics; public var sorted:Boolean; public function RenderSessionData():void{ this.renderStatistics = new RenderStatistics(); } } }//package org.papervision3d.core.render.data
Section 116
//RenderStatistics (org.papervision3d.core.render.data.RenderStatistics) package org.papervision3d.core.render.data { public class RenderStatistics { public var renderTime:int;// = 0 public var culledObjects:int;// = 0 public var shadedTriangles:int;// = 0 public var culledParticles:int;// = 0 public var culledTriangles:int;// = 0 public var triangles:int;// = 0 public var particles:int;// = 0 public var rendered:int;// = 0 public var projectionTime:int;// = 0 public var filteredObjects:int;// = 0 public var lines:int;// = 0 public function RenderStatistics(){ projectionTime = 0; renderTime = 0; rendered = 0; triangles = 0; culledTriangles = 0; particles = 0; culledParticles = 0; lines = 0; shadedTriangles = 0; filteredObjects = 0; culledObjects = 0; super(); } public function clear():void{ projectionTime = 0; renderTime = 0; rendered = 0; particles = 0; triangles = 0; culledTriangles = 0; culledParticles = 0; lines = 0; shadedTriangles = 0; filteredObjects = 0; culledObjects = 0; } public function toString():String{ return (new String((((((((((((((((((("ProjectionTime:" + projectionTime) + " RenderTime:") + renderTime) + " Particles:") + particles) + " CulledParticles :") + culledParticles) + " Triangles:") + triangles) + " ShadedTriangles :") + shadedTriangles) + " CulledTriangles:") + culledTriangles) + " FilteredObjects:") + filteredObjects) + " CulledObjects:") + culledObjects) + ""))); } } }//package org.papervision3d.core.render.data
Section 117
//IParticleDrawer (org.papervision3d.core.render.draw.IParticleDrawer) package org.papervision3d.core.render.draw { import org.papervision3d.core.render.data.*; import org.papervision3d.core.geom.renderables.*; import flash.display.*; public interface IParticleDrawer { function updateRenderRect(_arg1:Particle):void; function drawParticle(_arg1:Particle, _arg2:Graphics, _arg3:RenderSessionData):void; } }//package org.papervision3d.core.render.draw
Section 118
//ITriangleDrawer (org.papervision3d.core.render.draw.ITriangleDrawer) package org.papervision3d.core.render.draw { import org.papervision3d.core.render.data.*; import org.papervision3d.core.geom.renderables.*; import flash.display.*; import flash.geom.*; public interface ITriangleDrawer { function drawTriangle(_arg1:Triangle3D, _arg2:Graphics, _arg3:RenderSessionData, _arg4:BitmapData=null, _arg5:Matrix=null):void; } }//package org.papervision3d.core.render.draw
Section 119
//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 120
//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 121
//IUpdateAfterMaterial (org.papervision3d.core.render.material.IUpdateAfterMaterial) package org.papervision3d.core.render.material { import org.papervision3d.core.render.data.*; public interface IUpdateAfterMaterial { function updateAfterRender(_arg1:RenderSessionData):void; } }//package org.papervision3d.core.render.material
Section 122
//IUpdateBeforeMaterial (org.papervision3d.core.render.material.IUpdateBeforeMaterial) package org.papervision3d.core.render.material { import org.papervision3d.core.render.data.*; public interface IUpdateBeforeMaterial { function updateBeforeRender(_arg1:RenderSessionData):void; } }//package org.papervision3d.core.render.material
Section 123
//MaterialManager (org.papervision3d.core.render.material.MaterialManager) package org.papervision3d.core.render.material { import org.papervision3d.core.proto.*; import org.papervision3d.core.render.data.*; import flash.utils.*; public class MaterialManager { private var materials:Dictionary; private static var instance:MaterialManager; public function MaterialManager():void{ if (instance){ throw (new Error("Only 1 instance of materialmanager allowed")); }; init(); } private function init():void{ materials = new Dictionary(); } private function _unRegisterMaterial(_arg1:MaterialObject3D):void{ delete materials[_arg1]; } public function updateMaterialsAfterRender(_arg1:RenderSessionData):void{ var _local2:IUpdateAfterMaterial; var _local3:MaterialObject3D; for each (_local3 in materials) { if ((_local3 is IUpdateAfterMaterial)){ _local2 = (_local3 as IUpdateAfterMaterial); _local2.updateAfterRender(_arg1); }; }; } private function _registerMaterial(_arg1:MaterialObject3D):void{ materials[_arg1] = _arg1; } public function updateMaterialsBeforeRender(_arg1:RenderSessionData):void{ var _local2:IUpdateBeforeMaterial; var _local3:MaterialObject3D; for each (_local3 in materials) { if ((_local3 is IUpdateBeforeMaterial)){ _local2 = (_local3 as IUpdateBeforeMaterial); _local2.updateBeforeRender(_arg1); }; }; } public static function getInstance():MaterialManager{ if (!instance){ instance = new (MaterialManager); }; return (instance); } public static function unRegisterMaterial(_arg1:MaterialObject3D):void{ getInstance()._unRegisterMaterial(_arg1); } public static function registerMaterial(_arg1:MaterialObject3D):void{ getInstance()._registerMaterial(_arg1); } } }//package org.papervision3d.core.render.material
Section 124
//IShaderRenderer (org.papervision3d.core.render.shader.IShaderRenderer) package org.papervision3d.core.render.shader { import org.papervision3d.core.render.data.*; import flash.display.*; import org.papervision3d.materials.shaders.*; public interface IShaderRenderer { function getLayerForShader(_arg1:Shader):Sprite; function render(_arg1:RenderSessionData):void; function destroy():void; function clear():void; } }//package org.papervision3d.core.render.shader
Section 125
//ShaderObjectData (org.papervision3d.core.render.shader.ShaderObjectData) package org.papervision3d.core.render.shader { import org.papervision3d.core.geom.renderables.*; import flash.display.*; import flash.geom.*; import org.papervision3d.objects.*; import org.papervision3d.materials.*; import org.papervision3d.materials.shaders.*; import flash.utils.*; public class ShaderObjectData { public var shaderRenderer:ShaderRenderer; public var triangleUVS:Dictionary; public var renderTriangleUVS:Dictionary; public var lightMatrices:Dictionary; public var shadedMaterial:ShadedMaterial; public var uvMatrices:Dictionary; private var origin:Point; public var triangleRects:Dictionary; public var material:BitmapMaterial; protected var triangleBitmaps:Dictionary; public var object:DisplayObject3D; public function ShaderObjectData(_arg1:DisplayObject3D, _arg2:BitmapMaterial, _arg3:ShadedMaterial):void{ origin = new Point(0, 0); super(); shaderRenderer = new ShaderRenderer(); lightMatrices = new Dictionary(); uvMatrices = new Dictionary(); this.object = _arg1; this.material = _arg2; this.shadedMaterial = _arg3; triangleUVS = new Dictionary(); renderTriangleUVS = new Dictionary(); triangleBitmaps = new Dictionary(); triangleRects = new Dictionary(); } public function getRectFor(_arg1:Triangle3D):Rectangle{ 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; if (!triangleRects[_arg1]){ _local2 = material.bitmap.width; _local3 = material.bitmap.height; _local4 = (_arg1.uv[0].u * _local2); _local5 = ((1 - _arg1.uv[0].v) * _local3); _local6 = (_arg1.uv[1].u * _local2); _local7 = ((1 - _arg1.uv[1].v) * _local3); _local8 = (_arg1.uv[2].u * _local2); _local9 = ((1 - _arg1.uv[2].v) * _local3); _local10 = Math.min(Math.min(_local4, _local6), _local8); _local11 = Math.min(Math.min(_local5, _local7), _local9); _local12 = Math.max(Math.max(_local4, _local6), _local8); _local13 = Math.max(Math.max(_local5, _local7), _local9); _local14 = (_local12 - _local10); _local15 = (_local13 - _local11); if (_local14 <= 0){ _local14 = 1; }; if (_local15 <= 0){ _local15 = 1; }; return ((triangleRects[_arg1] = new Rectangle(_local10, _local11, _local14, _local15))); }; return (triangleRects[_arg1]); } private function perturbUVMatrix(_arg1:Matrix, _arg2:Triangle3D, _arg3:Number=2):void{ 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; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; _local4 = material.bitmap.width; _local5 = material.bitmap.height; _local6 = _arg2.uv[0].u; _local7 = (1 - _arg2.uv[0].v); _local8 = _arg2.uv[1].u; _local9 = (1 - _arg2.uv[1].v); _local10 = _arg2.uv[2].u; _local11 = (1 - _arg2.uv[2].v); _local12 = (_local6 * _local4); _local13 = (_local7 * _local5); _local14 = (_local8 * _local4); _local15 = (_local9 * _local5); _local16 = (_local10 * _local4); _local17 = (_local11 * _local5); _local18 = (((_local10 + _local8) + _local6) / 3); _local19 = (((_local11 + _local9) + _local7) / 3); _local20 = (_local6 - _local18); _local21 = (_local7 - _local19); _local22 = (_local8 - _local18); _local23 = (_local9 - _local19); _local24 = (_local10 - _local18); _local25 = (_local11 - _local19); _local26 = ((_local20)<0) ? -(_local20) : _local20; _local27 = ((_local21)<0) ? -(_local21) : _local21; _local28 = ((_local22)<0) ? -(_local22) : _local22; _local29 = ((_local23)<0) ? -(_local23) : _local23; _local30 = ((_local24)<0) ? -(_local24) : _local24; _local31 = ((_local25)<0) ? -(_local25) : _local25; _local32 = ((_local26)>_local27) ? (1 / _local26) : (1 / _local27); _local33 = ((_local28)>_local29) ? (1 / _local28) : (1 / _local29); _local34 = ((_local30)>_local31) ? (1 / _local30) : (1 / _local31); _local12 = (_local12 - ((-(_local20) * _local32) * _arg3)); _local13 = (_local13 - ((-(_local21) * _local32) * _arg3)); _local14 = (_local14 - ((-(_local22) * _local33) * _arg3)); _local15 = (_local15 - ((-(_local23) * _local33) * _arg3)); _local16 = (_local16 - ((-(_local24) * _local34) * _arg3)); _local17 = (_local17 - ((-(_local25) * _local34) * _arg3)); _arg1.tx = _local12; _arg1.ty = _local13; _arg1.a = (_local14 - _local12); _arg1.b = (_local15 - _local13); _arg1.c = (_local16 - _local12); _arg1.d = (_local17 - _local13); } public function getOutputBitmapFor(_arg1:Triangle3D):BitmapData{ var _local2:Rectangle; var _local3:BitmapData; var _local4:Rectangle; if (!triangleBitmaps[_arg1]){ _local2 = getRectFor(_arg1); _local3 = (triangleBitmaps[_arg1] = new BitmapData(Math.ceil(_local2.width), Math.ceil(_local2.height), false, 0)); _local4 = new Rectangle(0, 0, _local3.width, _local3.height); _local3.copyPixels(material.bitmap, _local4, origin); } else { _local2 = getRectFor(_arg1); }; if (((material.bitmap) && (_local2))){ triangleBitmaps[_arg1].copyPixels(material.bitmap, _local2, origin); }; return (triangleBitmaps[_arg1]); } public function updateBeforeRender():void{ } public function getPerTriUVForShader(_arg1:Triangle3D):Matrix{ var _local2:Matrix; 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:Rectangle; if (!renderTriangleUVS[_arg1]){ _local2 = (renderTriangleUVS[_arg1] = new Matrix()); _local3 = material.bitmap.width; _local4 = material.bitmap.height; _local5 = (_arg1.uv[0].u * _local3); _local6 = ((1 - _arg1.uv[0].v) * _local4); _local7 = (_arg1.uv[1].u * _local3); _local8 = ((1 - _arg1.uv[1].v) * _local4); _local9 = (_arg1.uv[2].u * _local3); _local10 = ((1 - _arg1.uv[2].v) * _local4); _local11 = getRectFor(_arg1); _local2.tx = (_local5 - _local11.x); _local2.ty = (_local6 - _local11.y); _local2.a = (_local7 - _local5); _local2.b = (_local8 - _local6); _local2.c = (_local9 - _local5); _local2.d = (_local10 - _local6); }; return (renderTriangleUVS[_arg1]); } public function getPerTriUVForDraw(_arg1:Triangle3D):Matrix{ var _local2:Matrix; 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:Rectangle; if (!triangleUVS[_arg1]){ _local2 = (triangleUVS[_arg1] = new Matrix()); _local3 = material.bitmap.width; _local4 = material.bitmap.height; _local5 = (_arg1.uv[0].u * _local3); _local6 = ((1 - _arg1.uv[0].v) * _local4); _local7 = (_arg1.uv[1].u * _local3); _local8 = ((1 - _arg1.uv[1].v) * _local4); _local9 = (_arg1.uv[2].u * _local3); _local10 = ((1 - _arg1.uv[2].v) * _local4); _local11 = getRectFor(_arg1); _local2.tx = (_local5 - _local11.x); _local2.ty = (_local6 - _local11.y); _local2.a = (_local7 - _local5); _local2.b = (_local8 - _local6); _local2.c = (_local9 - _local5); _local2.d = (_local10 - _local6); _local2.invert(); }; return (triangleUVS[_arg1]); } public function getUVMatrixForTriangle(_arg1:Triangle3D, _arg2:Boolean=false):Matrix{ var _local3:Matrix; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; _local3 = uvMatrices[_arg1]; if (!_local3){ _local3 = new Matrix(); if (_arg2){ perturbUVMatrix(_local3, _arg1, 2); } else { _local4 = material.bitmap.width; _local5 = material.bitmap.height; _local6 = (_arg1.uv[0].u * _local4); _local7 = ((1 - _arg1.uv[0].v) * _local5); _local8 = (_arg1.uv[1].u * _local4); _local9 = ((1 - _arg1.uv[1].v) * _local5); _local10 = (_arg1.uv[2].u * _local4); _local11 = ((1 - _arg1.uv[2].v) * _local5); _local3.tx = _local6; _local3.ty = _local7; _local3.a = (_local8 - _local6); _local3.b = (_local9 - _local7); _local3.c = (_local10 - _local6); _local3.d = (_local11 - _local7); }; uvMatrices[_arg1] = _local3; }; return (_local3); } public function destroy():void{ var _local1:Object; for each (_local1 in uvMatrices) { uvMatrices[_local1] = null; }; uvMatrices = null; shaderRenderer.destroy(); shaderRenderer = null; lightMatrices = null; } } }//package org.papervision3d.core.render.shader
Section 126
//ShaderRenderer (org.papervision3d.core.render.shader.ShaderRenderer) package org.papervision3d.core.render.shader { import flash.events.*; import org.papervision3d.core.render.data.*; import flash.display.*; import org.papervision3d.materials.shaders.*; import flash.utils.*; public class ShaderRenderer extends EventDispatcher implements IShaderRenderer { public var container:Sprite; public var outputBitmap:BitmapData; public var bitmapContainer:Bitmap; public var shadeLayers:Dictionary; public var bitmapLayer:Sprite; private var _inputBitmapData:BitmapData; public function ShaderRenderer(){ container = new Sprite(); bitmapLayer = new Sprite(); bitmapContainer = new Bitmap(); bitmapLayer.addChild(bitmapContainer); bitmapLayer.blendMode = BlendMode.NORMAL; shadeLayers = new Dictionary(); container.addChild(bitmapLayer); } public function getLayerForShader(_arg1:Shader):Sprite{ var _local2:Sprite; var _local3:Sprite; _local2 = new Sprite(); shadeLayers[_arg1] = _local2; _local3 = new Sprite(); _local2.addChild(_local3); _local3.graphics.beginFill(0, 0); _local3.graphics.drawRect(0, 0, inputBitmap.width, inputBitmap.height); _local3.graphics.endFill(); container.addChild(_local2); _local2.blendMode = _arg1.layerBlendMode; return (_local2); } public function get inputBitmap():BitmapData{ return (_inputBitmapData); } public function clear():void{ var _local1:Sprite; for each (_local1 in shadeLayers) { _local1.graphics.clear(); _local1.graphics.beginFill(0, 1); _local1.graphics.drawRect(0, 0, inputBitmap.width, inputBitmap.height); _local1.graphics.endFill(); }; } public function render(_arg1:RenderSessionData):void{ outputBitmap.fillRect(outputBitmap.rect, 0); bitmapContainer.bitmapData = inputBitmap; outputBitmap.draw(container, null, null, null, outputBitmap.rect, false); } public function set inputBitmap(_arg1:BitmapData):void{ _inputBitmapData = _arg1; outputBitmap = _inputBitmapData.clone(); } public function destroy():void{ bitmapLayer = null; outputBitmap.dispose(); } } }//package org.papervision3d.core.render.shader
Section 127
//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 128
//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 129
//AbstractRenderEngine (org.papervision3d.core.render.AbstractRenderEngine) package org.papervision3d.core.render { import org.papervision3d.core.proto.*; import flash.events.*; import org.papervision3d.core.render.data.*; import org.papervision3d.view.*; import org.papervision3d.core.render.command.*; public class AbstractRenderEngine extends EventDispatcher implements IRenderEngine { public function AbstractRenderEngine(_arg1:IEventDispatcher=null){ super(_arg1); } public function removeFromRenderList(_arg1:IRenderListItem):int{ return (0); } public function addToRenderList(_arg1:IRenderListItem):int{ return (0); } public function renderScene(_arg1:SceneObject3D, _arg2:CameraObject3D, _arg3:Viewport3D, _arg4:Boolean=true):RenderStatistics{ return (null); } } }//package org.papervision3d.core.render
Section 130
//IRenderEngine (org.papervision3d.core.render.IRenderEngine) package org.papervision3d.core.render { import org.papervision3d.core.proto.*; import org.papervision3d.core.render.data.*; import org.papervision3d.view.*; import org.papervision3d.core.render.command.*; public interface IRenderEngine { function addToRenderList(_arg1:IRenderListItem):int; function removeFromRenderList(_arg1:IRenderListItem):int; function renderScene(_arg1:SceneObject3D, _arg2:CameraObject3D, _arg3:Viewport3D, _arg4:Boolean=true):RenderStatistics; } }//package org.papervision3d.core.render
Section 131
//IVirtualMouseEvent (org.papervision3d.core.utils.virtualmouse.IVirtualMouseEvent) package org.papervision3d.core.utils.virtualmouse { public interface IVirtualMouseEvent { } }//package org.papervision3d.core.utils.virtualmouse
Section 132
//VirtualMouse (org.papervision3d.core.utils.virtualmouse.VirtualMouse) package org.papervision3d.core.utils.virtualmouse { import flash.events.*; import flash.display.*; import flash.geom.*; import com.blitzagency.xray.logger.*; import flash.utils.*; import org.papervision3d.core.components.as3.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 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; private static var ignoredInstances:Dictionary = new Dictionary(true); 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(); 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); trace("Location point?"); 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(new mouseEventEvent(MouseEvent.MOUSE_OUT, true, false, _local1.x, _local1.y, container, ctrlKey, altKey, shiftKey, _mouseIsDown, delta)); dispatchEvent(new mouseEventEvent(MouseEvent.MOUSE_OUT, true, false, _local1.x, _local1.y, container, ctrlKey, altKey, shiftKey, _mouseIsDown, delta)); }; 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(new mouseEventEvent(MouseEvent.ROLL_OUT, false, false, _local1.x, _local1.y, container, ctrlKey, altKey, shiftKey, _mouseIsDown, delta)); dispatchEvent(new mouseEventEvent(MouseEvent.ROLL_OUT, false, false, _local1.x, _local1.y, container, ctrlKey, altKey, shiftKey, _mouseIsDown, delta)); }; 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(new mouseEventEvent(MouseEvent.MOUSE_OUT, true, false, _local1.x, _local1.y, container, ctrlKey, altKey, shiftKey, _mouseIsDown, delta)); dispatchEvent(new mouseEventEvent(MouseEvent.MOUSE_OUT, true, false, _local1.x, _local1.y, container, ctrlKey, altKey, shiftKey, _mouseIsDown, delta)); }; 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(new mouseEventEvent(MouseEvent.ROLL_OUT, false, false, _local1.x, _local1.y, container, ctrlKey, altKey, shiftKey, _mouseIsDown, delta)); dispatchEvent(new mouseEventEvent(MouseEvent.ROLL_OUT, false, false, _local1.x, _local1.y, container, ctrlKey, altKey, shiftKey, _mouseIsDown, delta)); }; }; target = _stage; } public function release():void{ updateMouseDown = true; _mouseIsDown = false; if (!isLocked){ update(); }; } public function click():void{ press(); release(); } private function handleUpdate(_arg1:Event):void{ var _local2:Point; var _local3:Array; var _local4:InteractiveObject; var _local5:DisplayObject; var _local6:int; var _local7:Point; var _local8:Point; var _local9:Boolean; if (!container){ return; }; _local2 = CoordinateTools.localToLocal(container, stage, location); _local3 = container.getObjectsUnderPoint(location); _local6 = _local3.length; while (_local6--) { _local5 = _local3[_local6]; while (_local5) { if (ignoredInstances[_local5]){ _local4 = null; break; }; if (((_local4) && ((_local5 is SimpleButton)))){ _local4 = null; } else { if (((_local4) && (!(DisplayObjectContainer(_local5).mouseChildren)))){ _local4 = null; }; }; if (((((!(_local4)) && ((_local5 is InteractiveObject)))) && (InteractiveObject(_local5).mouseEnabled))){ _local4 = InteractiveObject(_local5); }; _local5 = _local5.parent; }; if (_local4){ break; }; }; if (!_local4){ _local4 = _stage; }; _local7 = target.globalToLocal(location); _local8 = _local4.globalToLocal(location); if (((!((lastLocation.x == location.x))) || (!((lastLocation.y == location.y))))){ _local9 = false; if (stage){ _local9 = (((((((location.x >= 0)) && ((location.y >= 0)))) && ((location.x <= stage.stageWidth)))) && ((location.y <= stage.stageHeight))); }; if (((((!(_local9)) && (lastWithinStage))) && (!(disabledEvents[Event.MOUSE_LEAVE])))){ _lastEvent = new eventEvent(Event.MOUSE_LEAVE, false, false); stage.dispatchEvent(_lastEvent); dispatchEvent(_lastEvent); }; if (((_local9) && (!(disabledEvents[MouseEvent.MOUSE_MOVE])))){ _lastEvent = new mouseEventEvent(MouseEvent.MOUSE_MOVE, true, false, _local8.x, _local8.y, _local4, ctrlKey, altKey, shiftKey, _mouseIsDown, delta); _local4.dispatchEvent(_lastEvent); dispatchEvent(_lastEvent); }; lastWithinStage = _local9; }; if (_local4 != target){ if (!disabledEvents[MouseEvent.MOUSE_OUT]){ _lastEvent = new mouseEventEvent(MouseEvent.MOUSE_OUT, true, false, _local7.x, _local7.y, _local4, ctrlKey, altKey, shiftKey, _mouseIsDown, delta); target.dispatchEvent(_lastEvent); dispatchEvent(_lastEvent); }; if (!disabledEvents[MouseEvent.ROLL_OUT]){ _lastEvent = new mouseEventEvent(MouseEvent.ROLL_OUT, false, false, _local7.x, _local7.y, _local4, ctrlKey, altKey, shiftKey, _mouseIsDown, delta); target.dispatchEvent(_lastEvent); dispatchEvent(_lastEvent); }; if (!disabledEvents[MouseEvent.MOUSE_OVER]){ _lastEvent = new mouseEventEvent(MouseEvent.MOUSE_OVER, true, false, _local8.x, _local8.y, target, ctrlKey, altKey, shiftKey, _mouseIsDown, delta); _local4.dispatchEvent(_lastEvent); dispatchEvent(_lastEvent); }; if (!disabledEvents[MouseEvent.ROLL_OVER]){ _lastEvent = new mouseEventEvent(MouseEvent.ROLL_OVER, false, false, _local8.x, _local8.y, target, ctrlKey, altKey, shiftKey, _mouseIsDown, delta); _local4.dispatchEvent(_lastEvent); dispatchEvent(_lastEvent); }; }; if (updateMouseDown){ if (_mouseIsDown){ if (!disabledEvents[MouseEvent.MOUSE_DOWN]){ _lastEvent = new mouseEventEvent(MouseEvent.MOUSE_DOWN, true, false, _local8.x, _local8.y, _local4, ctrlKey, altKey, shiftKey, _mouseIsDown, delta); _local4.dispatchEvent(_lastEvent); dispatchEvent(_lastEvent); }; lastDownTarget = _local4; updateMouseDown = false; } else { if (!disabledEvents[MouseEvent.MOUSE_UP]){ _lastEvent = new mouseEventEvent(MouseEvent.MOUSE_UP, true, false, _local8.x, _local8.y, _local4, ctrlKey, altKey, shiftKey, _mouseIsDown, delta); _local4.dispatchEvent(_lastEvent); dispatchEvent(_lastEvent); }; if (((!(disabledEvents[MouseEvent.CLICK])) && ((_local4 == lastDownTarget)))){ _lastEvent = new mouseEventEvent(MouseEvent.CLICK, true, false, _local8.x, _local8.y, _local4, ctrlKey, altKey, shiftKey, _mouseIsDown, delta); _local4.dispatchEvent(_lastEvent); dispatchEvent(_lastEvent); }; lastDownTarget = null; updateMouseDown = false; }; }; if (((((isDoubleClickEvent) && (!(disabledEvents[MouseEvent.DOUBLE_CLICK])))) && (_local4.doubleClickEnabled))){ _lastEvent = new mouseEventEvent(MouseEvent.DOUBLE_CLICK, true, false, _local8.x, _local8.y, _local4, ctrlKey, altKey, shiftKey, _mouseIsDown, delta); _local4.dispatchEvent(_lastEvent); dispatchEvent(_lastEvent); }; lastLocation = location.clone(); lastMouseDown = _mouseIsDown; target = _local4; } 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); } 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 = (_arg1 as Point); trace(_local3); 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 press():void{ updateMouseDown = true; _mouseIsDown = true; if (!isLocked){ update(); }; } public function unlock():void{ isLocked = false; update(); } public function enableEvent(_arg1:String):void{ if ((_arg1 in disabledEvents)){ delete disabledEvents[_arg1]; }; } 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(); }; }; } public static function ignore(_arg1:DisplayObject):void{ ignoredInstances[_arg1] = true; } } }//package org.papervision3d.core.utils.virtualmouse
Section 133
//VirtualMouseEvent (org.papervision3d.core.utils.virtualmouse.VirtualMouseEvent) package org.papervision3d.core.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.core.utils.virtualmouse
Section 134
//VirtualMouseMouseEvent (org.papervision3d.core.utils.virtualmouse.VirtualMouseMouseEvent) package org.papervision3d.core.utils.virtualmouse { import flash.events.*; import flash.display.*; 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.core.utils.virtualmouse
Section 135
//InteractiveSceneManager (org.papervision3d.core.utils.InteractiveSceneManager) package org.papervision3d.core.utils { import org.papervision3d.core.proto.*; import flash.events.*; import org.papervision3d.core.render.data.*; import org.papervision3d.view.*; import org.papervision3d.core.geom.renderables.*; import flash.display.*; import flash.geom.*; import org.papervision3d.objects.*; import com.blitzagency.xray.logger.*; import org.papervision3d.materials.*; import org.papervision3d.materials.shaders.*; import org.papervision3d.events.*; import org.papervision3d.core.utils.virtualmouse.*; public class InteractiveSceneManager extends EventDispatcher { protected var log:XrayLog; public var container:Sprite; public var debug:Boolean;// = false public var mouse3D:Mouse3D; public var enableOverOut:Boolean;// = true public var currentDisplayObject3D:DisplayObject3D; public var virtualMouse:VirtualMouse; public var currentMaterial:MaterialObject3D; public var viewport:Viewport3D; public var renderHitData:RenderHitData; public var currentMouseDO3D:DisplayObject3D;// = null public static var MOUSE_IS_DOWN:Boolean = false; public function InteractiveSceneManager(_arg1:Viewport3D){ virtualMouse = new VirtualMouse(); mouse3D = new Mouse3D(); enableOverOut = true; currentMouseDO3D = null; debug = false; log = new XrayLog(); super(); this.viewport = _arg1; this.container = _arg1.containerSprite; init(); } protected function resolveRenderHitData():void{ var _local1:Point; _local1 = new Point(); _local1.x = container.mouseX; _local1.y = container.mouseY; renderHitData = (viewport.hitTestPoint2D(_local1) as RenderHitData); } protected function handleMouseMove(_arg1:MouseEvent):void{ var _local2:MovieMaterial; if ((((_arg1 is IVirtualMouseEvent)) || (!(renderHitData)))){ return; }; if (((virtualMouse) && (renderHitData))){ _local2 = ((currentMaterial is ShadedMaterial)) ? (ShadedMaterial(currentMaterial).material as MovieMaterial) : (currentMaterial as MovieMaterial); if (_local2){ virtualMouse.container = (_local2.movie as Sprite); }; if (virtualMouse.container){ virtualMouse.setLocation(renderHitData.u, renderHitData.v); }; if (((((Mouse3D.enabled) && (renderHitData))) && (!((renderHitData.renderable == null))))){ mouse3D.updatePosition(renderHitData); }; dispatchObjectEvent(InteractiveScene3DEvent.OBJECT_MOVE, currentDisplayObject3D); } else { if (((renderHitData) && (renderHitData.hasHit))){ dispatchObjectEvent(InteractiveScene3DEvent.OBJECT_MOVE, currentDisplayObject3D); }; }; } public function initListeners():void{ if (viewport.interactive){ container.addEventListener(MouseEvent.MOUSE_DOWN, handleMousePress); container.addEventListener(MouseEvent.MOUSE_UP, handleMouseRelease); container.addEventListener(MouseEvent.CLICK, handleMouseClick); container.stage.addEventListener(MouseEvent.MOUSE_MOVE, handleMouseMove); }; } public function init():void{ if (container){ if (container.stage){ initVirtualMouse(); } else { container.addEventListener(Event.ADDED_TO_STAGE, handleAddedToStage); }; }; } protected function dispatchObjectEvent(_arg1:String, _arg2:DisplayObject3D):void{ var _local3:Number; var _local4:Number; if (debug){ log.debug(_arg1, _arg2.name); }; if (((renderHitData) && (renderHitData.hasHit))){ _local3 = (renderHitData.u) ? renderHitData.u : 0; _local4 = (renderHitData.v) ? renderHitData.v : 0; dispatchEvent(new InteractiveScene3DEvent(_arg1, _arg2, container, (renderHitData.renderable as Triangle3D), _local3, _local4)); _arg2.dispatchEvent(new InteractiveScene3DEvent(_arg1, _arg2, container, (renderHitData.renderable as Triangle3D), _local3, _local4)); } else { dispatchEvent(new InteractiveScene3DEvent(_arg1, _arg2, container)); if (_arg2){ _arg2.dispatchEvent(new InteractiveScene3DEvent(_arg1, _arg2, container)); }; }; } protected function handleMouseClick(_arg1:MouseEvent):void{ if ((_arg1 is IVirtualMouseEvent)){ return; }; if (((renderHitData) && (renderHitData.hasHit))){ dispatchObjectEvent(InteractiveScene3DEvent.OBJECT_CLICK, currentDisplayObject3D); }; } public function updateRenderHitData():void{ resolveRenderHitData(); currentDisplayObject3D = renderHitData.displayObject3D; currentMaterial = renderHitData.material; manageOverOut(); } protected function handleMouseOver(_arg1:DisplayObject3D):void{ dispatchObjectEvent(InteractiveScene3DEvent.OBJECT_OVER, _arg1); } protected function handleMouseRelease(_arg1:MouseEvent):void{ if ((_arg1 is IVirtualMouseEvent)){ return; }; MOUSE_IS_DOWN = false; if (virtualMouse){ virtualMouse.release(); }; if (((((Mouse3D.enabled) && (renderHitData))) && (!((renderHitData.renderable == null))))){ mouse3D.updatePosition(renderHitData); }; if (((renderHitData) && (renderHitData.hasHit))){ dispatchObjectEvent(InteractiveScene3DEvent.OBJECT_RELEASE, currentDisplayObject3D); }; } protected function handleAddedToStage(_arg1:Event):void{ initVirtualMouse(); initListeners(); } protected function handleMouseOut(_arg1:DisplayObject3D):void{ var _local2:MovieMaterial; if (_arg1){ _local2 = (_arg1.material as MovieMaterial); if (_local2){ virtualMouse.exitContainer(); }; }; dispatchObjectEvent(InteractiveScene3DEvent.OBJECT_OUT, _arg1); } protected function initVirtualMouse():void{ virtualMouse.stage = container.stage; virtualMouse.container = container; } protected function manageOverOut():void{ if (!enableOverOut){ return; }; if (((renderHitData) && (renderHitData.hasHit))){ if (((!(currentMouseDO3D)) && (currentDisplayObject3D))){ handleMouseOver(currentDisplayObject3D); currentMouseDO3D = currentDisplayObject3D; } else { if (((currentMouseDO3D) && (!((currentMouseDO3D == currentDisplayObject3D))))){ handleMouseOut(currentMouseDO3D); handleMouseOver(currentDisplayObject3D); currentMouseDO3D = currentDisplayObject3D; }; }; } else { if (currentMouseDO3D != null){ handleMouseOut(currentMouseDO3D); currentMouseDO3D = null; }; }; } protected function handleMousePress(_arg1:MouseEvent):void{ if ((_arg1 is IVirtualMouseEvent)){ return; }; MOUSE_IS_DOWN = true; if (virtualMouse){ virtualMouse.press(); }; if (((((Mouse3D.enabled) && (renderHitData))) && (!((renderHitData.renderable == null))))){ mouse3D.updatePosition(renderHitData); }; if (((renderHitData) && (renderHitData.hasHit))){ dispatchObjectEvent(InteractiveScene3DEvent.OBJECT_PRESS, currentDisplayObject3D); }; } } }//package org.papervision3d.core.utils
Section 136
//Mouse3D (org.papervision3d.core.utils.Mouse3D) package org.papervision3d.core.utils { import org.papervision3d.core.render.data.*; import org.papervision3d.core.geom.renderables.*; import org.papervision3d.core.math.*; 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.core.utils
Section 137
//StopWatch (org.papervision3d.core.utils.StopWatch) package org.papervision3d.core.utils { import flash.events.*; import flash.utils.*; public class StopWatch extends EventDispatcher { private var startTime:int; private var elapsedTime:int; private var stopTime:int; private var isRunning:Boolean; public function stop():int{ if (isRunning){ stopTime = getTimer(); elapsedTime = (stopTime - startTime); isRunning = false; return (elapsedTime); }; return (0); } public function start():void{ if (!isRunning){ startTime = getTimer(); isRunning = true; }; } public function reset():void{ isRunning = false; } } }//package org.papervision3d.core.utils
Section 138
//InteractiveScene3DEvent (org.papervision3d.events.InteractiveScene3DEvent) package org.papervision3d.events { import flash.events.*; import org.papervision3d.core.render.data.*; import org.papervision3d.core.geom.renderables.*; import flash.display.*; 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 renderHitData:RenderHitData; 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:RenderHitData=null, _arg8:Boolean=false, _arg9:Boolean=false){ displayObject3D = null; sprite = null; face3d = null; x = 0; y = 0; super(_arg1, _arg8, _arg9); this.displayObject3D = _arg2; this.sprite = _arg3; this.face3d = _arg4; this.x = _arg5; this.y = _arg6; this.renderHitData = _arg7; } } }//package org.papervision3d.events
Section 139
//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 140
//PointLight3D (org.papervision3d.lights.PointLight3D) package org.papervision3d.lights { import org.papervision3d.core.proto.*; import org.papervision3d.core.math.*; public class PointLight3D extends LightObject3D { public static var DEFAULT_POS:Number3D = new Number3D(0, 0, -1000); public function PointLight3D(_arg1:Boolean=false, _arg2:Boolean=false){ super(_arg1, _arg2); x = DEFAULT_POS.x; y = DEFAULT_POS.y; z = DEFAULT_POS.z; } } }//package org.papervision3d.lights
Section 141
//FlatShadeMaterial (org.papervision3d.materials.shadematerials.FlatShadeMaterial) package org.papervision3d.materials.shadematerials { import org.papervision3d.core.proto.*; import org.papervision3d.materials.utils.*; import org.papervision3d.core.render.data.*; import org.papervision3d.core.geom.renderables.*; import flash.display.*; import flash.geom.*; import org.papervision3d.core.math.*; import org.papervision3d.core.render.draw.*; import org.papervision3d.core.material.*; public class FlatShadeMaterial extends AbstractLightShadeMaterial implements ITriangleDrawer { private var _colors:Array; private static var zd:Number; private static var y0:Number; private static var x0:Number; private static var zAngle:int; private static var currentColor:int; public function FlatShadeMaterial(_arg1:LightObject3D, _arg2:uint=0xFFFFFF, _arg3:uint=0){ this.light = _arg1; _colors = LightMaps.getFlatMapArray(_arg2, _arg3, 1); } override public function drawTriangle(_arg1:Triangle3D, _arg2:Graphics, _arg3:RenderSessionData, _arg4:BitmapData=null, _arg5:Matrix=null):void{ lightMatrix = Matrix3D(lightMatrices[_arg1.instance]); zd = (((_arg1.faceNormal.x * lightMatrix.n31) + (_arg1.faceNormal.y * lightMatrix.n32)) + (_arg1.faceNormal.z * lightMatrix.n33)); if (zd < 0){ zd = 0; }; x0 = _arg1.v0.vertex3DInstance.x; y0 = _arg1.v0.vertex3DInstance.y; zAngle = (zd * 0xFF); currentColor = _colors[zAngle]; _arg2.beginFill(currentColor, 1); _arg2.moveTo(x0, y0); _arg2.lineTo(_arg1.v1.vertex3DInstance.x, _arg1.v1.vertex3DInstance.y); _arg2.lineTo(_arg1.v2.vertex3DInstance.x, _arg1.v2.vertex3DInstance.y); _arg2.lineTo(x0, y0); _arg2.endFill(); _arg3.renderStatistics.shadedTriangles++; } } }//package org.papervision3d.materials.shadematerials
Section 142
//ILightShader (org.papervision3d.materials.shaders.ILightShader) package org.papervision3d.materials.shaders { import org.papervision3d.core.render.data.*; import org.papervision3d.core.render.shader.*; public interface ILightShader { function updateLightMatrix(_arg1:ShaderObjectData, _arg2:RenderSessionData):void; } }//package org.papervision3d.materials.shaders
Section 143
//IShader (org.papervision3d.materials.shaders.IShader) package org.papervision3d.materials.shaders { import org.papervision3d.core.render.data.*; import org.papervision3d.core.geom.renderables.*; import flash.display.*; import org.papervision3d.core.render.shader.*; public interface IShader { function renderTri(_arg1:Triangle3D, _arg2:RenderSessionData, _arg3:ShaderObjectData, _arg4:BitmapData):void; function updateAfterRender(_arg1:RenderSessionData, _arg2:ShaderObjectData):void; function destroy():void; function renderLayer(_arg1:Triangle3D, _arg2:RenderSessionData, _arg3:ShaderObjectData):void; } }//package org.papervision3d.materials.shaders
Section 144
//ShadedMaterial (org.papervision3d.materials.shaders.ShadedMaterial) package org.papervision3d.materials.shaders { import org.papervision3d.core.render.material.*; import org.papervision3d.core.render.data.*; import org.papervision3d.core.geom.renderables.*; import flash.display.*; import flash.geom.*; import org.papervision3d.objects.*; import org.papervision3d.materials.*; import org.papervision3d.core.render.shader.*; import flash.utils.*; import org.papervision3d.core.render.draw.*; import org.papervision3d.core.material.*; public class ShadedMaterial extends TriangleMaterial implements ITriangleDrawer, IUpdateBeforeMaterial, IUpdateAfterMaterial { private var _shaderCompositeMode:int; public var material:BitmapMaterial; public var shader:Shader; public var shaderObjectData:Dictionary; private static var bmp:BitmapData; public function ShadedMaterial(_arg1:BitmapMaterial, _arg2:Shader, _arg3:int=0){ this.shader = _arg2; this.material = _arg1; shaderCompositeMode = _arg3; init(); } public function updateBeforeRender(_arg1:RenderSessionData):void{ var _local2:ShaderObjectData; var _local3:ILightShader; for each (_local2 in shaderObjectData) { if (shaderCompositeMode == ShaderCompositeModes.PER_LAYER){ _local2.shaderRenderer.clear(); }; if ((shader is ILightShader)){ _local3 = (shader as ILightShader); _local3.updateLightMatrix(_local2, _arg1); }; }; } public function updateAfterRender(_arg1:RenderSessionData):void{ var _local2:ShaderObjectData; for each (_local2 in shaderObjectData) { shader.updateAfterRender(_arg1, _local2); if (shaderCompositeMode == ShaderCompositeModes.PER_LAYER){ _local2.shaderRenderer.render(_arg1); }; }; } private function init():void{ shaderObjectData = new Dictionary(); } override public function unregisterObject(_arg1:DisplayObject3D):void{ var _local2:ShaderObjectData; super.unregisterObject(_arg1); _local2 = shaderObjectData[_arg1]; _local2.destroy(); delete shaderObjectData[_arg1]; } public function set shaderCompositeMode(_arg1:int):void{ _shaderCompositeMode = _arg1; } override public function registerObject(_arg1:DisplayObject3D):void{ var _local2:ShaderObjectData; super.registerObject(_arg1); _local2 = (shaderObjectData[_arg1] = new ShaderObjectData(_arg1, material, this)); _local2.shaderRenderer.inputBitmap = material.bitmap; shader.setContainerForObject(_arg1, _local2.shaderRenderer.getLayerForShader(shader)); } public function getOutputBitmapDataFor(_arg1:DisplayObject3D):BitmapData{ var _local2:ShaderObjectData; if (shaderCompositeMode == ShaderCompositeModes.PER_LAYER){ if (shaderObjectData[_arg1]){ _local2 = shaderObjectData[_arg1]; return (_local2.shaderRenderer.outputBitmap); }; trace("object not registered with shaded material"); } else { trace("getOutputBitmapDataFor only works on per layer mode"); }; return (null); } override public function drawTriangle(_arg1:Triangle3D, _arg2:Graphics, _arg3:RenderSessionData, _arg4:BitmapData=null, _arg5:Matrix=null):void{ var _local6:ShaderObjectData; _local6 = shaderObjectData[_arg1.instance]; if (shaderCompositeMode == ShaderCompositeModes.PER_LAYER){ material.drawTriangle(_arg1, _arg2, _arg3, _local6.shaderRenderer.outputBitmap); shader.renderLayer(_arg1, _arg3, _local6); } else { if (shaderCompositeMode == ShaderCompositeModes.PER_TRIANGLE_IN_BITMAP){ bmp = _local6.getOutputBitmapFor(_arg1); material.drawTriangle(_arg1, _arg2, _arg3, bmp, (_local6.triangleUVS[_arg1]) ? _local6.triangleUVS[_arg1] : _local6.getPerTriUVForDraw(_arg1)); shader.renderTri(_arg1, _arg3, _local6, bmp); }; }; } override protected function destroy():void{ var _local1:ShaderObjectData; super.destroy(); for each (_local1 in shaderObjectData) { _local1.destroy(); }; material = null; shader = null; } public function get shaderCompositeMode():int{ return (_shaderCompositeMode); } } }//package org.papervision3d.materials.shaders
Section 145
//Shader (org.papervision3d.materials.shaders.Shader) package org.papervision3d.materials.shaders { import flash.events.*; import org.papervision3d.core.render.data.*; import org.papervision3d.core.geom.renderables.*; import flash.display.*; import flash.filters.*; import org.papervision3d.objects.*; import org.papervision3d.core.render.shader.*; import flash.utils.*; import org.papervision3d.core.utils.virtualmouse.*; public class Shader extends EventDispatcher implements IShader { protected var layers:Dictionary; protected var _filter:BitmapFilter; protected var _blendMode:String;// = "multiply" protected var _object:DisplayObject3D; public function Shader(){ _blendMode = BlendMode.MULTIPLY; super(); this.layers = new Dictionary(true); } public function get layerBlendMode():String{ return (_blendMode); } public function updateAfterRender(_arg1:RenderSessionData, _arg2:ShaderObjectData):void{ } public function renderLayer(_arg1:Triangle3D, _arg2:RenderSessionData, _arg3:ShaderObjectData):void{ } public function set layerBlendMode(_arg1:String):void{ _blendMode = _arg1; } public function setContainerForObject(_arg1:DisplayObject3D, _arg2:Sprite):void{ VirtualMouse.ignore(_arg2); layers[_arg1] = _arg2; } public function set filter(_arg1:BitmapFilter):void{ _filter = _arg1; } public function renderTri(_arg1:Triangle3D, _arg2:RenderSessionData, _arg3:ShaderObjectData, _arg4:BitmapData):void{ } public function get filter():BitmapFilter{ return (_filter); } public function destroy():void{ } } }//package org.papervision3d.materials.shaders
Section 146
//ShaderCompositeModes (org.papervision3d.materials.shaders.ShaderCompositeModes) package org.papervision3d.materials.shaders { public class ShaderCompositeModes { public static var PER_TRIANGLE_IN_BITMAP:int = 1; public static var PER_LAYER:int = 0; } }//package org.papervision3d.materials.shaders
Section 147
//ParticleMaterial (org.papervision3d.materials.special.ParticleMaterial) package org.papervision3d.materials.special { import org.papervision3d.core.proto.*; import org.papervision3d.core.render.data.*; import org.papervision3d.core.geom.renderables.*; import flash.display.*; import flash.geom.*; import org.papervision3d.core.render.draw.*; public class ParticleMaterial extends MaterialObject3D implements IParticleDrawer { public var shape:int; public static var SHAPE_SQUARE:int = 0; public static var SHAPE_CIRCLE:int = 1; public function ParticleMaterial(_arg1:Number, _arg2:Number, _arg3:int=0){ this.shape = _arg3; this.fillAlpha = _arg2; this.fillColor = _arg1; } public function updateRenderRect(_arg1:Particle):void{ var _local2:Rectangle; _local2 = _arg1.renderRect; if (_arg1.size == 0){ _local2.width = 1; _local2.height = 1; } else { _local2.width = (_arg1.renderScale * _arg1.size); _local2.height = (_arg1.renderScale * _arg1.size); }; _local2.x = (_arg1.vertex3D.vertex3DInstance.x - (_local2.width / 2)); _local2.y = (_arg1.vertex3D.vertex3DInstance.y - (_local2.width / 2)); } public function drawParticle(_arg1:Particle, _arg2:Graphics, _arg3:RenderSessionData):void{ var _local4:Rectangle; _arg2.beginFill(fillColor, fillAlpha); _local4 = _arg1.renderRect; if (shape == SHAPE_SQUARE){ _arg2.drawRect(_local4.x, _local4.y, _local4.width, _local4.height); } else { if (shape == SHAPE_CIRCLE){ _arg2.drawCircle((_local4.x + (_local4.width / 2)), (_local4.y + (_local4.width / 2)), (_local4.width / 2)); } else { trace("warning - Particle material has no valid shape - Must be ParticleMaterial.SHAPE_SQUARE or ParticleMaterial.SHAPE_CIRCLE"); }; }; _arg2.endFill(); _arg3.renderStatistics.particles++; } } }//package org.papervision3d.materials.special
Section 148
//LightMaps (org.papervision3d.materials.utils.LightMaps) package org.papervision3d.materials.utils { import flash.display.*; import flash.geom.*; import flash.filters.*; public class LightMaps { private static var origin:Point = new Point(); public static function getPhongMap(_arg1:int, _arg2:int, _arg3:int, _arg4:int=0xFF, _arg5:int=0xFF):BitmapData{ var _local6:Number; var _local7:Number; var _local8:Sprite; var _local9:Matrix; var _local10:BitmapData; _local6 = _arg4; _local7 = _arg5; _local8 = new Sprite(); _local9 = new Matrix(); _local9.createGradientBox(_local6, _local6, 0, 0, 0); _local8.graphics.beginGradientFill(GradientType.RADIAL, [_arg1, _arg2, _arg2], [1, 1, 1], [0, (0xFF - _arg3), 0xFF], _local9); _local8.graphics.drawRect(0, 0, _local6, _local6); _local8.graphics.endFill(); _local10 = new BitmapData(_local6, _local6, false, 0xFF); _local10.draw(_local8); return (_local10); } public static function getCellMap(_arg1:int, _arg2:int, _arg3:int):BitmapData{ var _local4:BitmapData; var _local5:Number; var _local6:int; var _local7:int; var _local8:int; var _local9:Array; var _local10:Array; var _local11:Array; var _local12:int; _local4 = LightMaps.getPhongMap(_arg1, _arg2, 0, 0xFF, 0xFF); _local5 = 0; _local6 = ((_arg1 & 0xFF0000) >> 16); _local7 = ((_arg2 & 0xFF0000) >> 16); _local8 = (_local7 - _local6); _local9 = new Array(); _local10 = new Array(); _local11 = new Array(); _local12 = 0; while (_local12 <= 0xFF) { _local9[_local12] = ((_local12 - (_local12 % Math.round((0x0100 / _arg3)))) << 16); _local10[_local12] = ((_local12 - (_local12 % Math.round((0x0100 / _arg3)))) << 8); _local11[_local12] = (_local12 - (_local12 % Math.round((0x0100 / _arg3)))); _local12++; }; _local4.paletteMap(_local4, _local4.rect, origin, _local9, _local10, _local11); _local4.applyFilter(_local4, _local4.rect, origin, new BlurFilter(2, 2, 2)); return (_local4); } public static function getGouraudMap(_arg1:int, _arg2:int):BitmapData{ var _local3:BitmapData; var _local4:Sprite; var _local5:Matrix; _local3 = new BitmapData(0x0100, 3, false, 0xFFFFFF); _local4 = new Sprite(); _local5 = new Matrix(); _local5.createGradientBox(0x0100, 3, 0, 0, 0); _local4.graphics.beginGradientFill(GradientType.LINEAR, [_arg2, _arg1], [1, 1], [0, 0xFF], _local5); _local4.graphics.drawRect(0, 0, 0x0100, 3); _local4.graphics.endFill(); _local3.draw(_local4); return (_local3); } public static function getFlatMapArray(_arg1:int, _arg2:int, _arg3:int):Array{ var _local4:Array; var _local5:BitmapData; var _local6:Sprite; var _local7:Matrix; var _local8:int; _local4 = new Array(); _local5 = new BitmapData(0xFF, 1, false, 0); _local6 = new Sprite(); _local7 = new Matrix(); _local7.createGradientBox(0xFF, 1, 0, 0, 0); _local6.graphics.beginGradientFill(GradientType.LINEAR, [_arg1, _arg2], [1, 1], [0, 0xFF], _local7); _local6.graphics.drawRect(0, 0, 0xFF, 1); _local6.graphics.endFill(); _local5.draw(_local6); _local8 = 0xFF; while (_local8--) { _local4.push(_local5.getPixel(_local8, 0)); }; return (_local4); } public static function getFlatMap(_arg1:int, _arg2:int, _arg3:int):BitmapData{ var _local4:Array; var _local5:BitmapData; var _local6:Sprite; var _local7:Matrix; _local4 = new Array(); _local5 = new BitmapData(0xFF, 1, false, 0); _local6 = new Sprite(); _local7 = new Matrix(); _local7.createGradientBox(0xFF, 1, 0, 0, 0); _local6.graphics.beginGradientFill(GradientType.LINEAR, [_arg2, _arg1], [1, 1], [0, 0xFF], _local7); _local6.graphics.drawRect(0, 0, 0xFF, 1); _local6.graphics.endFill(); _local5.draw(_local6); return (_local5); } } }//package org.papervision3d.materials.utils
Section 149
//LightMatrix (org.papervision3d.materials.utils.LightMatrix) package org.papervision3d.materials.utils { import org.papervision3d.core.proto.*; import org.papervision3d.core.render.data.*; import org.papervision3d.core.math.*; import org.papervision3d.objects.*; import org.papervision3d.lights.*; public class LightMatrix { private static var _targetPos:Number3D; private static var _lightSide:Number3D; private static var _lightUp:Number3D; private static var _lightDir:Number3D; private static var lightMatrix:Matrix3D = Matrix3D.IDENTITY; protected static var UP:Number3D = new Number3D(0, 1, 0); private static var _lightPos:Number3D; public static function getLightMatrix(_arg1:LightObject3D, _arg2:DisplayObject3D, _arg3:RenderSessionData):Matrix3D{ var _local4:Matrix3D; var _local5:Matrix3D; var _local6:Matrix3D; _local4 = Matrix3D.IDENTITY; if (_arg1 == null){ _arg1 = new PointLight3D(); _arg1.copyPosition(_arg3.camera); }; _targetPos = new Number3D(); _lightPos = new Number3D(); _lightDir = new Number3D(); _lightUp = new Number3D(); _lightSide = new Number3D(); _local5 = _arg1.transform; _local6 = _arg2.world; _lightPos.x = -(_local5.n14); _lightPos.y = -(_local5.n24); _lightPos.z = -(_local5.n34); _targetPos.x = -(_local6.n14); _targetPos.y = -(_local6.n24); _targetPos.z = -(_local6.n34); _lightDir.x = (_targetPos.x - _lightPos.x); _lightDir.y = (_targetPos.y - _lightPos.y); _lightDir.z = (_targetPos.z - _lightPos.z); Matrix3D.multiplyVector3x3(Matrix3D.inverse(_arg2.world), _lightDir); _lightDir.normalize(); _lightSide.x = ((_lightDir.y * UP.z) - (_lightDir.z * UP.y)); _lightSide.y = ((_lightDir.z * UP.x) - (_lightDir.x * UP.z)); _lightSide.z = ((_lightDir.x * UP.y) - (_lightDir.y * UP.x)); _lightSide.normalize(); _lightUp.x = ((_lightSide.y * _lightDir.z) - (_lightSide.z * _lightDir.y)); _lightUp.y = ((_lightSide.z * _lightDir.x) - (_lightSide.x * _lightDir.z)); _lightUp.z = ((_lightSide.x * _lightDir.y) - (_lightSide.y * _lightDir.x)); _lightUp.normalize(); if (_arg1.flipped){ _lightDir.x = -(_lightDir.x); _lightDir.y = -(_lightDir.y); _lightDir.z = -(_lightDir.z); }; _local4.n11 = _lightSide.x; _local4.n12 = _lightSide.y; _local4.n13 = _lightSide.z; _local4.n21 = _lightUp.x; _local4.n22 = _lightUp.y; _local4.n23 = _lightUp.z; _local4.n31 = _lightDir.x; _local4.n32 = _lightDir.y; _local4.n33 = _lightDir.z; return (_local4); } } }//package org.papervision3d.materials.utils
Section 150
//MaterialsList (org.papervision3d.materials.utils.MaterialsList) package org.papervision3d.materials.utils { 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.utils
Section 151
//BitmapMaterial (org.papervision3d.materials.BitmapMaterial) package org.papervision3d.materials { import org.papervision3d.core.proto.*; import org.papervision3d.core.render.data.*; import org.papervision3d.core.geom.renderables.*; import flash.display.*; import flash.geom.*; import flash.utils.*; import org.papervision3d.core.render.draw.*; import org.papervision3d.*; import org.papervision3d.core.material.*; public class BitmapMaterial extends TriangleMaterial implements ITriangleDrawer { private var _precise:Boolean; public var uvMatrices:Dictionary; public var focus:Number;// = 100 protected var _texture:Object; public var minimumRenderSize:Number;// = 2 public var precision:Number;// = 8 protected static var _triMap:Matrix; 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, _arg2:Boolean=false){ focus = 100; minimumRenderSize = 2; precision = 8; uvMatrices = new Dictionary(); super(); if (_arg1){ texture = _arg1; }; this.precise = _arg2; } override public function toString():String{ return (((((("Texture:" + this.texture) + " lineColor:") + this.lineColor) + " lineAlpha:") + this.lineAlpha)); } 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++; }; }; } public function resetMapping():void{ uvMatrices = new Dictionary(); } public function set precise(_arg1:Boolean):void{ _precise = _arg1; } public function renderRec(_arg1:Graphics, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number, _arg8:Number, _arg9:Number, _arg10:Number, _arg11:Number, _arg12:Number, _arg13:Number, _arg14:Number, _arg15:Number, _arg16:Number, _arg17:Number, _arg18:RenderSessionData, _arg19:BitmapData):void{ 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:Number; 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:Number; var _local40:Number; var _local41:Number; if ((((((_arg10 <= 0)) && ((_arg13 <= 0)))) && ((_arg16 <= 0)))){ return; }; if ((((((((_arg17 >= 100)) || ((focus == Infinity)))) || (((Math.max(Math.max(_arg8, _arg11), _arg14) - Math.min(Math.min(_arg8, _arg11), _arg14)) < minimumRenderSize)))) || (((Math.max(Math.max(_arg9, _arg12), _arg15) - Math.min(Math.min(_arg9, _arg12), _arg15)) < minimumRenderSize)))){ renderTriangleBitmap(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8, _arg9, _arg11, _arg12, _arg14, _arg15, smooth, tiled, _arg19); _arg18.renderStatistics.triangles++; return; }; _local20 = (focus + _arg10); _local21 = (focus + _arg13); _local22 = (focus + _arg16); _local23 = (2 / (_local20 + _local21)); _local24 = (2 / (_local21 + _local22)); _local25 = (2 / (_local22 + _local20)); _local26 = (((_arg8 * _local20) + (_arg11 * _local21)) * _local23); _local27 = (((_arg9 * _local20) + (_arg12 * _local21)) * _local23); _local28 = (((_arg11 * _local21) + (_arg14 * _local22)) * _local24); _local29 = (((_arg12 * _local21) + (_arg15 * _local22)) * _local24); _local30 = (((_arg14 * _local22) + (_arg8 * _local20)) * _local25); _local31 = (((_arg15 * _local22) + (_arg9 * _local20)) * _local25); _local32 = ((_arg8 + _arg11) - _local26); _local33 = ((_arg9 + _arg12) - _local27); _local34 = ((_arg11 + _arg14) - _local28); _local35 = ((_arg12 + _arg15) - _local29); _local36 = ((_arg14 + _arg8) - _local30); _local37 = ((_arg15 + _arg9) - _local31); _local38 = ((_local32 * _local32) + (_local33 * _local33)); _local39 = ((_local34 * _local34) + (_local35 * _local35)); _local40 = ((_local36 * _local36) + (_local37 * _local37)); if ((((((_local38 <= precision)) && ((_local40 <= precision)))) && ((_local39 <= precision)))){ renderTriangleBitmap(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8, _arg9, _arg11, _arg12, _arg14, _arg15, smooth, tiled, _arg19); _arg18.renderStatistics.triangles++; return; }; if ((((((_local38 > precision)) && ((_local40 > precision)))) && ((_local39 > precision)))){ renderRec(_arg1, (_arg2 * 2), (_arg3 * 2), (_arg4 * 2), (_arg5 * 2), (_arg6 * 2), (_arg7 * 2), _arg8, _arg9, _arg10, (_local26 * 0.5), (_local27 * 0.5), ((_arg10 + _arg13) * 0.5), (_local30 * 0.5), (_local31 * 0.5), ((_arg16 + _arg10) * 0.5), (_arg17 + 1), _arg18, _arg19); renderRec(_arg1, (_arg2 * 2), (_arg3 * 2), (_arg4 * 2), (_arg5 * 2), ((_arg6 * 2) - 1), (_arg7 * 2), (_local26 * 0.5), (_local27 * 0.5), ((_arg10 + _arg13) * 0.5), _arg11, _arg12, _arg13, (_local28 * 0.5), (_local29 * 0.5), ((_arg13 + _arg16) * 0.5), (_arg17 + 1), _arg18, _arg19); renderRec(_arg1, (_arg2 * 2), (_arg3 * 2), (_arg4 * 2), (_arg5 * 2), (_arg6 * 2), ((_arg7 * 2) - 1), (_local30 * 0.5), (_local31 * 0.5), ((_arg16 + _arg10) * 0.5), (_local28 * 0.5), (_local29 * 0.5), ((_arg13 + _arg16) * 0.5), _arg14, _arg15, _arg16, (_arg17 + 1), _arg18, _arg19); renderRec(_arg1, (-(_arg2) * 2), (-(_arg3) * 2), (-(_arg4) * 2), (-(_arg5) * 2), ((-(_arg6) * 2) + 1), ((-(_arg7) * 2) + 1), (_local28 * 0.5), (_local29 * 0.5), ((_arg13 + _arg16) * 0.5), (_local30 * 0.5), (_local31 * 0.5), ((_arg16 + _arg10) * 0.5), (_local26 * 0.5), (_local27 * 0.5), ((_arg10 + _arg13) * 0.5), (_arg17 + 1), _arg18, _arg19); return; }; _local41 = Math.max(_local38, Math.max(_local40, _local39)); if (_local38 == _local41){ renderRec(_arg1, (_arg2 * 2), (_arg3 * 1), (_arg4 * 2), (_arg5 * 1), (_arg6 * 2), (_arg7 * 1), _arg8, _arg9, _arg10, (_local26 * 0.5), (_local27 * 0.5), ((_arg10 + _arg13) * 0.5), _arg14, _arg15, _arg16, (_arg17 + 1), _arg18, _arg19); renderRec(_arg1, ((_arg2 * 2) + _arg3), (_arg3 * 1), ((2 * _arg4) + _arg5), (_arg5 * 1), (((_arg6 * 2) + _arg7) - 1), (_arg7 * 1), (_local26 * 0.5), (_local27 * 0.5), ((_arg10 + _arg13) * 0.5), _arg11, _arg12, _arg13, _arg14, _arg15, _arg16, (_arg17 + 1), _arg18, _arg19); return; }; if (_local40 == _local41){ renderRec(_arg1, (_arg2 * 1), (_arg3 * 2), (_arg4 * 1), (_arg5 * 2), (_arg6 * 1), (_arg7 * 2), _arg8, _arg9, _arg10, _arg11, _arg12, _arg13, (_local30 * 0.5), (_local31 * 0.5), ((_arg16 + _arg10) * 0.5), (_arg17 + 1), _arg18, _arg19); renderRec(_arg1, (_arg2 * 1), ((_arg3 * 2) + _arg2), (_arg4 * 1), ((_arg5 * 2) + _arg4), _arg6, (((_arg7 * 2) + _arg6) - 1), (_local30 * 0.5), (_local31 * 0.5), ((_arg16 + _arg10) * 0.5), _arg11, _arg12, _arg13, _arg14, _arg15, _arg16, (_arg17 + 1), _arg18, _arg19); return; }; renderRec(_arg1, (_arg2 - _arg3), (_arg3 * 2), (_arg4 - _arg5), (_arg5 * 2), (_arg6 - _arg7), (_arg7 * 2), _arg8, _arg9, _arg10, _arg11, _arg12, _arg13, (_local28 * 0.5), (_local29 * 0.5), ((_arg13 + _arg16) * 0.5), (_arg17 + 1), _arg18, _arg19); renderRec(_arg1, (2 * _arg2), (_arg3 - _arg2), (_arg4 * 2), (_arg5 - _arg4), (2 * _arg6), (_arg7 - _arg6), _arg8, _arg9, _arg10, (_local28 * 0.5), (_local29 * 0.5), ((_arg13 + _arg16) * 0.5), _arg14, _arg15, _arg16, (_arg17 + 1), _arg18, _arg19); } 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 * _arg1.uv0.u); _local6 = (_local4 * (1 - _arg1.uv0.v)); _local7 = (_local3 * _arg1.uv1.u); _local8 = (_local4 * (1 - _arg1.uv1.v)); _local9 = (_local3 * _arg1.uv2.u); _local10 = (_local4 * (1 - _arg1.uv2.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 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 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 renderTriangleBitmap(_arg1:Graphics, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number, _arg8:Number, _arg9:Number, _arg10:Number, _arg11:Number, _arg12:Number, _arg13:Number, _arg14:Boolean, _arg15:Boolean, _arg16:BitmapData):void{ var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Matrix; _local17 = (_arg10 - _arg8); _local18 = (_arg11 - _arg9); _local19 = (_arg12 - _arg8); _local20 = (_arg13 - _arg9); _local21 = new Matrix(((_arg2 * _local17) + (_arg3 * _local19)), ((_arg2 * _local18) + (_arg3 * _local20)), ((_arg4 * _local17) + (_arg5 * _local19)), ((_arg4 * _local18) + (_arg5 * _local20)), (((_arg6 * _local17) + (_arg7 * _local19)) + _arg8), (((_arg6 * _local18) + (_arg7 * _local20)) + _arg9)); _arg1.beginBitmapFill(_arg16, _local21, _arg15, _arg14); _arg1.moveTo(_arg8, _arg9); _arg1.lineTo(_arg10, _arg11); _arg1.lineTo(_arg12, _arg13); _arg1.endFill(); } public function get texture():Object{ return (this._texture); } protected function createBitmap(_arg1:BitmapData):BitmapData{ resetMapping(); if (AUTO_MIP_MAPPING){ return (correctBitmap(_arg1)); }; this.maxU = (this.maxV = 1); return (_arg1); } public function get precise():Boolean{ return (_precise); } override public function drawTriangle(_arg1:Triangle3D, _arg2:Graphics, _arg3:RenderSessionData, _arg4:BitmapData=null, _arg5:Matrix=null):void{ var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; if (!_precise){ if (lineAlpha){ _arg2.lineStyle(0, lineColor, lineAlpha); }; if (bitmap){ _triMap = (_arg5) ? _arg5 : ((uvMatrices[_arg1]) || (transformUV(_arg1))); _local6 = _arg1.v0.vertex3DInstance.x; _local7 = _arg1.v0.vertex3DInstance.y; _local8 = _arg1.v1.vertex3DInstance.x; _local9 = _arg1.v1.vertex3DInstance.y; _local10 = _arg1.v2.vertex3DInstance.x; _local11 = _arg1.v2.vertex3DInstance.y; _triMatrix.a = (_local8 - _local6); _triMatrix.b = (_local9 - _local7); _triMatrix.c = (_local10 - _local6); _triMatrix.d = (_local11 - _local7); _triMatrix.tx = _local6; _triMatrix.ty = _local7; _localMatrix.a = _triMap.a; _localMatrix.b = _triMap.b; _localMatrix.c = _triMap.c; _localMatrix.d = _triMap.d; _localMatrix.tx = _triMap.tx; _localMatrix.ty = _triMap.ty; _localMatrix.concat(_triMatrix); _arg2.beginBitmapFill((_arg4) ? _arg4 : bitmap, _localMatrix, tiled, smooth); }; _arg2.moveTo(_local6, _local7); _arg2.lineTo(_local8, _local9); _arg2.lineTo(_local10, _local11); _arg2.lineTo(_local6, _local7); if (bitmap){ _arg2.endFill(); }; if (lineAlpha){ _arg2.lineStyle(); }; _arg3.renderStatistics.triangles++; } else { _triMap = (_arg5) ? _arg5 : ((uvMatrices[_arg1]) || (transformUV(_arg1))); focus = _arg3.camera.focus; renderRec(_arg2, _triMap.a, _triMap.b, _triMap.c, _triMap.d, _triMap.tx, _triMap.ty, _arg1.v0.vertex3DInstance.x, _arg1.v0.vertex3DInstance.y, _arg1.v0.vertex3DInstance.z, _arg1.v1.vertex3DInstance.x, _arg1.v1.vertex3DInstance.y, _arg1.v1.vertex3DInstance.z, _arg1.v2.vertex3DInstance.x, _arg1.v2.vertex3DInstance.y, _arg1.v2.vertex3DInstance.z, 0, _arg3, (_arg4) ? _arg4 : bitmap); }; } override public function copy(_arg1:MaterialObject3D):void{ super.copy(_arg1); this.maxU = _arg1.maxU; this.maxV = _arg1.maxV; } 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 152
//ColorMaterial (org.papervision3d.materials.ColorMaterial) package org.papervision3d.materials { import org.papervision3d.core.render.data.*; import org.papervision3d.core.geom.renderables.*; import flash.display.*; import flash.geom.*; import org.papervision3d.core.render.draw.*; import org.papervision3d.core.material.*; public class ColorMaterial extends TriangleMaterial implements ITriangleDrawer { public function ColorMaterial(_arg1:Number=0xFF00FF, _arg2:Number=1, _arg3:Boolean=false){ this.fillColor = _arg1; this.fillAlpha = _arg2; this.interactive = _arg3; } override public function toString():String{ return (((("ColorMaterial - color:" + this.fillColor) + " alpha:") + this.fillAlpha)); } override public function drawTriangle(_arg1:Triangle3D, _arg2:Graphics, _arg3:RenderSessionData, _arg4:BitmapData=null, _arg5:Matrix=null):void{ var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; _local6 = _arg1.v0.vertex3DInstance.x; _local7 = _arg1.v0.vertex3DInstance.y; _local8 = _arg1.v1.vertex3DInstance.x; _local9 = _arg1.v1.vertex3DInstance.y; _local10 = _arg1.v2.vertex3DInstance.x; _local11 = _arg1.v2.vertex3DInstance.y; _arg2.beginFill(fillColor, fillAlpha); _arg2.moveTo(_local6, _local7); _arg2.lineTo(_local8, _local9); _arg2.lineTo(_local10, _local11); _arg2.lineTo(_local6, _local7); _arg2.endFill(); _arg3.renderStatistics.triangles++; } } }//package org.papervision3d.materials
Section 153
//MovieMaterial (org.papervision3d.materials.MovieMaterial) package org.papervision3d.materials { import org.papervision3d.core.render.material.*; import org.papervision3d.core.render.data.*; import flash.display.*; import flash.geom.*; import org.papervision3d.core.render.draw.*; import org.papervision3d.*; public class MovieMaterial extends BitmapMaterial implements ITriangleDrawer, IUpdateBeforeMaterial { private var _animated:Boolean; public var movieTransparent:Boolean; public var movie:DisplayObject; public var allowAutoResize:Boolean;// = true public function MovieMaterial(_arg1:DisplayObject=null, _arg2:Boolean=false, _arg3:Boolean=false, _arg4:Boolean=false){ allowAutoResize = true; super(); movieTransparent = _arg2; this.animated = _arg3; this.interactive = interactive; this.precise = _arg4; if (_arg1){ texture = _arg1; }; } override public function get texture():Object{ return (this._texture); } 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; } public function set animated(_arg1:Boolean):void{ _animated = _arg1; } public function updateBeforeRender(_arg1:RenderSessionData):void{ var _local2:int; var _local3:int; if (_animated){ _local2 = int(movie.width); _local3 = int(movie.height); if (((allowAutoResize) && (((!((_local2 == bitmap.width))) || (!((_local3 == 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 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 (_animated); } protected function createBitmapFromSprite(_arg1:DisplayObject):BitmapData{ movie = _arg1; initBitmap(movie); drawBitmap(); bitmap = super.createBitmap(bitmap); return (bitmap); } override protected function destroy():void{ super.destroy(); bitmap.dispose(); } } }//package org.papervision3d.materials
Section 154
//WireframeMaterial (org.papervision3d.materials.WireframeMaterial) package org.papervision3d.materials { import org.papervision3d.core.render.data.*; import org.papervision3d.core.geom.renderables.*; import flash.display.*; import flash.geom.*; import org.papervision3d.core.render.draw.*; import org.papervision3d.core.material.*; public class WireframeMaterial extends TriangleMaterial implements ITriangleDrawer { public function WireframeMaterial(_arg1:Number=0xFF00FF, _arg2:Number=100, _arg3:Number=0){ this.lineColor = _arg1; this.lineAlpha = _arg2; this.lineThickness = _arg3; 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, _arg4:BitmapData=null, _arg5:Matrix=null):void{ var _local6:Number; var _local7:Number; _local6 = _arg1.v0.vertex3DInstance.x; _local7 = _arg1.v0.vertex3DInstance.y; if (lineAlpha){ _arg2.lineStyle(lineThickness, lineColor, lineAlpha); _arg2.moveTo(_local6, _local7); _arg2.lineTo(_arg1.v1.vertex3DInstance.x, _arg1.v1.vertex3DInstance.y); _arg2.lineTo(_arg1.v2.vertex3DInstance.x, _arg1.v2.vertex3DInstance.y); _arg2.lineTo(_local6, _local7); _arg2.lineStyle(); _arg3.renderStatistics.triangles++; }; } } }//package org.papervision3d.materials
Section 155
//Cube (org.papervision3d.objects.primitives.Cube) package org.papervision3d.objects.primitives { import org.papervision3d.core.proto.*; import org.papervision3d.materials.utils.*; import org.papervision3d.core.geom.renderables.*; import org.papervision3d.core.math.*; import org.papervision3d.*; import org.papervision3d.core.geom.*; public class Cube extends TriangleMesh3D { private var insideFaces:int; public var segments:Number3D; private var excludeFaces:int; public static var ALL:int = (((((FRONT + BACK) + RIGHT) + LEFT) + TOP) + BOTTOM); public static var LEFT:int = 8; public static var FRONT:int = 1; public static var BOTTOM:int = 32; public static var TOP:int = 16; public static var BACK:int = 2; public static var NONE:int = 0; public static var RIGHT:int = 4; public function Cube(_arg1:MaterialsList, _arg2:Number=500, _arg3:Number=500, _arg4:Number=500, _arg5:int=1, _arg6:int=1, _arg7:int=1, _arg8:int=0, _arg9:int=0, _arg10:Object=null){ super(_arg1.getMaterialByName("all"), new Array(), new Array(), null, _arg10); this.materials = _arg1; this.insideFaces = _arg8; this.excludeFaces = _arg9; segments = new Number3D(_arg5, _arg6, _arg7); buildCube(_arg2, _arg4, _arg3); } private function buildPlane(_arg1:String, _arg2:String, _arg3:String, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Boolean=false):void{ var _local8:MaterialObject3D; var _local9:String; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Array; var _local16:Array; var _local17:Array; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:int; var _local23:NumberUV; var _local24:NumberUV; var _local25:NumberUV; var _local26:int; var _local27:Vertex3D; var _local28:Vertex3D; var _local29:Vertex3D; var _local30:Vertex3D; _local8 = materials.getMaterialByName(_arg1); if (!_local8){ _local8 = materials.getMaterialByName("all"); if (!_local8){ Papervision3D.log("Cube: Required material not found in given materials list. Supported materials are: front, back, right, left, top, bottom & all."); return; }; }; if ((((((_arg2 == "x")) && ((_arg3 == "y")))) || ((((_arg2 == "y")) && ((_arg3 == "x")))))){ _local9 = "z"; } else { if ((((((_arg2 == "x")) && ((_arg3 == "z")))) || ((((_arg2 == "z")) && ((_arg3 == "x")))))){ _local9 = "y"; } else { if ((((((_arg2 == "z")) && ((_arg3 == "y")))) || ((((_arg2 == "y")) && ((_arg3 == "z")))))){ _local9 = "x"; }; }; }; _local10 = (_arg7) ? -1 : 1; _local11 = this.segments[_arg2]; _local12 = this.segments[_arg3]; _local13 = (_local11 + 1); _local14 = (_local12 + 1); _local15 = this.geometry.vertices; _local16 = this.geometry.faces; _local17 = new Array(); _local18 = (_arg4 / 2); _local19 = (_arg5 / 2); _local20 = (_arg4 / _local11); _local21 = (_arg5 / _local12); _local22 = 0; while (_local22 < _local13) { _local26 = 0; while (_local26 < _local14) { _local27 = new Vertex3D(); _local27[_arg2] = (((_local22 * _local20) - _local18) * _local10); _local27[_arg3] = ((_local26 * _local21) - _local19); _local27[_local9] = _arg6; _local15.push(_local27); _local17.push(_local27); _local26++; }; _local22++; }; _local22 = 0; while (_local22 < _local11) { _local26 = 0; while (_local26 < _local12) { _local28 = _local17[((_local22 * _local14) + _local26)]; _local29 = _local17[((_local22 * _local14) + (_local26 + 1))]; _local30 = _local17[(((_local22 + 1) * _local14) + _local26)]; _local23 = new NumberUV((_local22 / _local11), (_local26 / _local12)); _local24 = new NumberUV((_local22 / _local11), ((_local26 + 1) / _local12)); _local25 = new NumberUV(((_local22 + 1) / _local11), (_local26 / _local12)); _local16.push(new Triangle3D(this, [_local28, _local30, _local29], _local8, [_local23, _local25, _local24])); _local28 = _local17[(((_local22 + 1) * _local14) + (_local26 + 1))]; _local29 = _local17[(((_local22 + 1) * _local14) + _local26)]; _local30 = _local17[((_local22 * _local14) + (_local26 + 1))]; _local23 = new NumberUV(((_local22 + 1) / _local11), ((_local26 + 1) / _local12)); _local24 = new NumberUV(((_local22 + 1) / _local11), (_local26 / _local12)); _local25 = new NumberUV((_local22 / _local11), ((_local26 + 1) / _local12)); _local16.push(new Triangle3D(this, [_local29, _local28, _local30], _local8, [_local24, _local23, _local25])); _local26++; }; _local22++; }; } private function buildCube(_arg1:Number, _arg2:Number, _arg3:Number):void{ var _local4:Number; var _local5:Number; var _local6:Number; _local4 = (_arg1 / 2); _local5 = (_arg2 / 2); _local6 = (_arg3 / 2); if (!(excludeFaces & FRONT)){ buildPlane("front", "x", "y", _arg1, _arg2, _local6, !(Boolean((insideFaces & FRONT)))); }; if (!(excludeFaces & BACK)){ buildPlane("back", "x", "y", _arg1, _arg2, -(_local6), Boolean((insideFaces & BACK))); }; if (!(excludeFaces & RIGHT)){ buildPlane("right", "z", "y", _arg3, _arg2, _local4, Boolean((insideFaces & RIGHT))); }; if (!(excludeFaces & LEFT)){ buildPlane("left", "z", "y", _arg3, _arg2, -(_local4), !(Boolean((insideFaces & LEFT)))); }; if (!(excludeFaces & TOP)){ buildPlane("top", "x", "z", _arg1, _arg3, _local5, Boolean((insideFaces & TOP))); }; if (!(excludeFaces & BOTTOM)){ buildPlane("bottom", "x", "z", _arg1, _arg3, -(_local5), !(Boolean((insideFaces & BOTTOM)))); }; mergeVertices(); this.geometry.ready = true; } } }//package org.papervision3d.objects.primitives
Section 156
//Plane (org.papervision3d.objects.primitives.Plane) package org.papervision3d.objects.primitives { import org.papervision3d.core.proto.*; import org.papervision3d.core.geom.renderables.*; import org.papervision3d.core.math.*; 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], material, [_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], material, [_local14, _local16, _local15])); _local17++; }; _local13++; }; this.geometry.ready = true; } } }//package org.papervision3d.objects.primitives
Section 157
//Sphere (org.papervision3d.objects.primitives.Sphere) package org.papervision3d.objects.primitives { import org.papervision3d.core.proto.*; import org.papervision3d.core.geom.renderables.*; import org.papervision3d.core.math.*; import org.papervision3d.core.geom.*; import org.papervision3d.core.*; public class Sphere extends TriangleMesh3D { public var segmentsH:Number; public var segmentsW:Number; public static var MIN_SEGMENTSW:Number = 3; public static var DEFAULT_SCALE:Number = 1; public static var DEFAULT_RADIUS:Number = 100; public static var DEFAULT_SEGMENTSH:Number = 6; public static var MIN_SEGMENTSH:Number = 2; public static var DEFAULT_SEGMENTSW:Number = 8; public function Sphere(_arg1:MaterialObject3D=null, _arg2:Number=100, _arg3:int=8, _arg4:int=6, _arg5:Object=null){ var _local6:Number; super(_arg1, new Array(), new Array(), null, _arg5); this.segmentsW = Math.max(MIN_SEGMENTSW, ((_arg3) || (DEFAULT_SEGMENTSW))); this.segmentsH = Math.max(MIN_SEGMENTSH, ((_arg4) || (DEFAULT_SEGMENTSH))); if (_arg2 == 0){ _arg2 = DEFAULT_RADIUS; }; _local6 = DEFAULT_SCALE; buildSphere(_arg2); } private function buildSphere(_arg1:Number):void{ var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Array; var _local8:Array; var _local9:Array; var _local10:int; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Array; var _local15:Vertex3D; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:int; var _local20:Boolean; var _local21:Vertex3D; var _local22:Vertex3D; var _local23:Vertex3D; var _local24:Vertex3D; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; var _local29:NumberUV; var _local30:NumberUV; var _local31:NumberUV; var _local32:NumberUV; _local5 = Math.max(3, this.segmentsW); _local6 = Math.max(2, this.segmentsH); _local7 = this.geometry.vertices; _local8 = this.geometry.faces; _local9 = new Array(); _local3 = 0; while (_local3 < (_local6 + 1)) { _local11 = Number((_local3 / _local6)); _local12 = (-(_arg1) * Math.cos((_local11 * Math.PI))); _local13 = (_arg1 * Math.sin((_local11 * Math.PI))); _local14 = new Array(); _local2 = 0; while (_local2 < _local5) { _local16 = Number(((2 * _local2) / _local5)); _local17 = (_local13 * Math.sin((_local16 * Math.PI))); _local18 = (_local13 * Math.cos((_local16 * Math.PI))); if (!(((((_local3 == 0)) || ((_local3 == _local6)))) && ((_local2 > 0)))){ _local15 = new Vertex3D(_local18, _local12, _local17); _local7.push(_local15); }; _local14.push(_local15); _local2++; }; _local9.push(_local14); _local3++; }; _local10 = _local9.length; _local3 = 0; while (_local3 < _local10) { _local19 = _local9[_local3].length; if (_local3 > 0){ _local2 = 0; while (_local2 < _local19) { _local20 = (_local2 == (_local19 - 0)); _local21 = _local9[_local3][(_local20) ? 0 : _local2]; _local22 = _local9[_local3][(((_local2 == 0)) ? _local19 : _local2 - 1)]; _local23 = _local9[(_local3 - 1)][(((_local2 == 0)) ? _local19 : _local2 - 1)]; _local24 = _local9[(_local3 - 1)][(_local20) ? 0 : _local2]; _local25 = (_local3 / (_local10 - 1)); _local26 = ((_local3 - 1) / (_local10 - 1)); _local27 = ((_local2 + 1) / _local19); _local28 = (_local2 / _local19); _local29 = new NumberUV(_local27, _local26); _local30 = new NumberUV(_local27, _local25); _local31 = new NumberUV(_local28, _local25); _local32 = new NumberUV(_local28, _local26); if (_local3 < (_local9.length - 1)){ _local8.push(new Triangle3D(this, new Array(_local21, _local22, _local23), material, new Array(_local30, _local31, _local32))); }; if (_local3 > 1){ _local8.push(new Triangle3D(this, new Array(_local21, _local23, _local24), material, new Array(_local30, _local32, _local29))); }; _local2++; }; }; _local3++; }; this.geometry.ready = true; } } }//package org.papervision3d.objects.primitives
Section 158
//DisplayObject3D (org.papervision3d.objects.DisplayObject3D) package org.papervision3d.objects { import org.papervision3d.core.proto.*; import org.papervision3d.materials.utils.*; import org.papervision3d.core.render.data.*; import flash.display.*; import org.papervision3d.core.layers.*; import org.papervision3d.core.math.*; import com.blitzagency.xray.logger.*; import org.papervision3d.core.culling.*; import org.papervision3d.*; public class DisplayObject3D extends DisplayObjectContainer3D { public var filters:Array; public var extra:Object; public var id:int; private var _rotationY:Number; private var _rotationZ:Number; private var position:Number3D; private var _rotationX:Number; public var meshSort:uint;// = 1 public var materials:MaterialsList; public var hasOwnRenderLayer:Boolean; private var xAxis:Number3D; private var zAxis:Number3D; private var _scaleDirty:Boolean;// = false public var renderLayer:RenderLayer; public var transform:Matrix3D; public var screenZ:Number; public var visible:Boolean; private var _scaleY:Number; public var geometry:GeometryObject3D; private var _scaleX:Number; protected var _useOwnContainer:Boolean; public var screen:Number3D; public var name:String; public var container:Sprite; public var culled:Boolean; public var world:Matrix3D; private var _material:MaterialObject3D; private var target:Number3D; private var _scaleZ:Number; public var parent:DisplayObjectContainer3D; public var view:Matrix3D; protected var _scene:SceneObject3D;// = null protected var _containerSortMode:int; public var faces:Array; protected var _containerBlendMode:int; private var yAxis:Number3D; protected var _filters:Array; private var _rotation:Number3D; 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 entry_count:uint = 0; private static var LEFT:Number3D = new Number3D(-1, 0, 0); private static var _totalDisplayObjects:int = 0; private static var UP:Number3D = new Number3D(0, 1, 0); public static var sortedArray:Array = new Array(); 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 _tempMatrix:Matrix3D = Matrix3D.IDENTITY; private static var _tempQuat:Quaternion = new Quaternion(); private static var toDEGREES:Number = 57.2957795130823; private static var RIGHT:Number3D = new Number3D(1, 0, 0); private static var toRADIANS:Number = 0.0174532925199433; 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; position = Number3D.ZERO; target = Number3D.ZERO; zAxis = Number3D.ZERO; xAxis = Number3D.ZERO; yAxis = Number3D.ZERO; _rotation = Number3D.ZERO; _rotationDirty = false; _scaleDirty = false; super(); Papervision3D.log(("DisplayObject3D: " + _arg1)); this.culled = false; this.filters = new Array(); this.transform = Matrix3D.IDENTITY; this.world = Matrix3D.IDENTITY; this.view = Matrix3D.IDENTITY; if (_arg3 != null){ this.x = (_arg3.x) ? ((_arg3.x) || (0)) : 0; this.y = (_arg3.y) ? ((_arg3.y) || (0)) : 0; this.z = (_arg3.z) ? ((_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 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:RenderSessionData):Number{ var _local3:Number; var _local4:Number; var _local5:DisplayObject3D; if (this._transformDirty){ updateTransform(); }; this.world.calculateMultiply(_arg1.world, this.transform); if ((_arg2.camera is IObjectCuller)){ if (this === _arg2.camera){ this.culled = true; } else { this.culled = (IObjectCuller(_arg2.camera).testObject(this) < 0); }; if (this.culled){ _arg2.renderStatistics.culledObjects++; return (0); }; if (_arg1 !== _arg2.camera){ this.view.calculateMultiply4x4(_arg1.view, this.transform); }; } else { if (_arg1 !== _arg2.camera){ this.view.calculateMultiply(_arg1.view, this.transform); }; }; calculateScreenCoords(_arg2.camera); _local3 = 0; _local4 = 0; for each (_local5 in this._childrenByName) { if (_local5.visible){ _local3 = (_local3 + _local5.project(this, _arg2)); _local4++; }; }; return ((this.screenZ = (_local3 / _local4))); } public function get material():MaterialObject3D{ return (_material); } 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:Matrix3D; var _local4:XrayLog; position.reset(this.x, this.y, this.z); target.reset(_arg1.x, _arg1.y, _arg1.z); zAxis.copyFrom(target); zAxis.minusEq(position); zAxis.normalize(); if (zAxis.modulo > 0.1){ xAxis = Number3D.cross(zAxis, ((_arg2) || (UP)), xAxis); xAxis.normalize(); yAxis = Number3D.cross(zAxis, xAxis, yAxis); yAxis.normalize(); _local3 = this.transform; _local3.n11 = (xAxis.x * _scaleX); _local3.n21 = (xAxis.y * _scaleX); _local3.n31 = (xAxis.z * _scaleX); _local3.n12 = (-(yAxis.x) * _scaleY); _local3.n22 = (-(yAxis.y) * _scaleY); _local3.n32 = (-(yAxis.z) * _scaleY); _local3.n13 = (zAxis.x * _scaleZ); _local3.n23 = (zAxis.y * _scaleZ); _local3.n33 = (zAxis.z * _scaleZ); this._transformDirty = false; this._rotationDirty = true; } else { _local4 = new XrayLog(); _local4.debug("lookAt Error"); }; } public function set rotationX(_arg1:Number):void{ this._rotationX = (Papervision3D.useDEGREES) ? (-(_arg1) * toRADIANS) : -(_arg1); this._transformDirty = true; } public function moveDown(_arg1:Number):void{ translate(_arg1, DOWN); } 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 set material(_arg1:MaterialObject3D):void{ if (_material){ _material.unregisterObject(this); }; _material = _arg1; _material.registerObject(this); } 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{ _rotation = Matrix3D.matrix2euler(this.transform, _rotation); this._rotationX = (_rotation.x * toRADIANS); this._rotationY = (_rotation.y * toRADIANS); this._rotationZ = (_rotation.z * toRADIANS); this._rotationDirty = false; } public function pitch(_arg1:Number):void{ var _local2:Number3D; _arg1 = (Papervision3D.useDEGREES) ? (_arg1 * toRADIANS) : _arg1; _local2 = RIGHT.clone(); if (this._transformDirty){ updateTransform(); }; Matrix3D.rotateAxis(transform, _local2); _tempMatrix = Matrix3D.rotationMatrix(_local2.x, _local2.y, _local2.z, _arg1, _tempMatrix); this.transform.calculateMultiply3x3(_tempMatrix, transform); this._rotationDirty = true; } public function yaw(_arg1:Number):void{ var _local2:Number3D; _arg1 = (Papervision3D.useDEGREES) ? (_arg1 * toRADIANS) : _arg1; _local2 = UP.clone(); if (this._transformDirty){ updateTransform(); }; Matrix3D.rotateAxis(transform, _local2); _tempMatrix = Matrix3D.rotationMatrix(_local2.x, _local2.y, _local2.z, _arg1, _tempMatrix); this.transform.calculateMultiply3x3(_tempMatrix, transform); this._rotationDirty = true; } 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 get x():Number{ return (this.transform.n14); } 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; _arg1 = (Papervision3D.useDEGREES) ? (_arg1 * toRADIANS) : _arg1; _local2 = FORWARD.clone(); if (this._transformDirty){ updateTransform(); }; Matrix3D.rotateAxis(transform, _local2); _tempMatrix = Matrix3D.rotationMatrix(_local2.x, _local2.y, _local2.z, _arg1, _tempMatrix); this.transform.calculateMultiply3x3(_tempMatrix, 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 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 moveLeft(_arg1:Number):void{ translate(_arg1, LEFT); } public function get scene():SceneObject3D{ return (_scene); } 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 setRenderLayer(_arg1:RenderLayer):void{ var _local2:DisplayObject3D; this.renderLayer = _arg1; for each (_local2 in this.children) { _local2.setRenderLayer(_arg1); }; } 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; } public function get y():Number{ return (this.transform.n24); } protected function updateTransform():void{ var _local1:Matrix3D; _tempQuat = Matrix3D.euler2quaternion(-(this._rotationY), -(this._rotationZ), this._rotationX, _tempQuat); _tempMatrix = Matrix3D.quaternion2matrix(_tempQuat.x, _tempQuat.y, _tempQuat.z, _tempQuat.w, _tempMatrix); _local1 = this.transform; _tempMatrix.n14 = _local1.n14; _tempMatrix.n24 = _local1.n24; _tempMatrix.n34 = _local1.n34; _local1.copy(_tempMatrix); _tempMatrix.reset(); _tempMatrix.n11 = this._scaleX; _tempMatrix.n22 = this._scaleY; _tempMatrix.n33 = this._scaleZ; this.transform.calculateMultiply(_local1, _tempMatrix); 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 = (((_local4 * _local4) + (_local5 * _local5)) + (_local6 * _local6)); _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 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 159
//BasicRenderEngine (org.papervision3d.render.BasicRenderEngine) package org.papervision3d.render { import org.papervision3d.core.proto.*; import org.papervision3d.core.render.material.*; import org.papervision3d.core.render.data.*; import org.papervision3d.view.*; import org.papervision3d.core.render.command.*; import flash.geom.*; import org.papervision3d.objects.*; import org.papervision3d.events.*; import org.papervision3d.core.layers.utils.*; import org.papervision3d.core.culling.*; import org.papervision3d.core.render.*; import org.papervision3d.core.render.sort.*; import org.papervision3d.core.render.filter.*; import org.papervision3d.core.utils.*; public class BasicRenderEngine extends AbstractRenderEngine implements IRenderEngine { public var sorter:IRenderSorter; private var renderStatistics:RenderStatistics; private var renderList:Array; private var renderSessionData:RenderSessionData; private var stopWatch:StopWatch; public var filter:IRenderFilter; private var cleanRHD:RenderHitData; public function BasicRenderEngine():void{ cleanRHD = new RenderHitData(); super(); init(); } override public function removeFromRenderList(_arg1:IRenderListItem):int{ return (renderList.splice(renderList.indexOf(_arg1), 1)); } protected function doRender(_arg1:RenderSessionData):RenderStatistics{ var _local2:IRenderListItem; stopWatch.reset(); stopWatch.start(); MaterialManager.getInstance().updateMaterialsBeforeRender(_arg1); filter.filter(renderList); sorter.sort(renderList); while ((_local2 = renderList.pop())) { _local2.render(_arg1); _arg1.viewPort.lastRenderList.push(_local2); }; MaterialManager.getInstance().updateMaterialsAfterRender(_arg1); _arg1.renderStatistics.renderTime = stopWatch.stop(); dispatchEvent(new RendererEvent(RendererEvent.RENDER_DONE, _arg1)); _arg1.viewPort.updateAfterRender(); return (renderStatistics); } protected function doProject(_arg1:RenderSessionData):void{ var _local2:Array; var _local3:DisplayObject3D; var _local4:Number; stopWatch.reset(); stopWatch.start(); _arg1.camera.transformView(); _local2 = _arg1.scene.objects; _local4 = _local2.length; if ((_arg1.camera is IObjectCuller)){ for each (_local3 in _local2) { if (_local3.visible){ if (_arg1.viewPort.viewportObjectFilter){ if (_arg1.viewPort.viewportObjectFilter.testObject(_local3)){ _local3.view.calculateMultiply4x4(_arg1.camera.eye, _local3.transform); _local3.project(_arg1.camera, _arg1); } else { _arg1.renderStatistics.filteredObjects++; }; } else { _local3.view.calculateMultiply4x4(_arg1.camera.eye, _local3.transform); _local3.project(_arg1.camera, _arg1); }; }; }; } else { for each (_local3 in _local2) { if (_local3.visible){ if (_arg1.viewPort.viewportObjectFilter){ if (_arg1.viewPort.viewportObjectFilter.testObject(_local3)){ _local3.view.calculateMultiply(_arg1.camera.eye, _local3.transform); _local3.project(_arg1.camera, _arg1); } else { _arg1.renderStatistics.filteredObjects++; }; } else { _local3.view.calculateMultiply(_arg1.camera.eye, _local3.transform); _local3.project(_arg1.camera, _arg1); }; }; }; }; _arg1.renderStatistics.projectionTime = stopWatch.stop(); } protected function init():void{ renderStatistics = new RenderStatistics(); stopWatch = new StopWatch(); sorter = new BasicRenderSorter(); filter = new BasicRenderFilter(); renderList = new Array(); renderSessionData = new RenderSessionData(); renderSessionData.renderer = this; } override public function renderScene(_arg1:SceneObject3D, _arg2:CameraObject3D, _arg3:Viewport3D, _arg4:Boolean=true):RenderStatistics{ _arg3.updateBeforeRender(); _arg3.lastRenderer = this; RenderLayerManager.getInstance().checkIndividualLayers(_arg1, _arg3); if (_arg1.animationEngine){ _arg1.animationEngine.tick(); }; renderSessionData.scene = _arg1; renderSessionData.camera = _arg2; renderSessionData.viewPort = _arg3; renderSessionData.container = _arg3.containerSprite; renderSessionData.triangleCuller = _arg3.triangleCuller; renderSessionData.particleCuller = _arg3.particleCuller; renderSessionData.defaultRenderLayer = _arg3.renderLayerManager.defaultLayer; renderSessionData.renderStatistics.clear(); doProject(renderSessionData); doRender(renderSessionData); return (renderSessionData.renderStatistics); } public function hitTestPoint2D(_arg1:Point, _arg2:Viewport3D):RenderHitData{ return (_arg2.hitTestPoint2D(_arg1)); } override public function addToRenderList(_arg1:IRenderListItem):int{ return (renderList.push(_arg1)); } } }//package org.papervision3d.render
Section 160
//Scene3D (org.papervision3d.scenes.Scene3D) package org.papervision3d.scenes { import org.papervision3d.core.proto.*; import org.papervision3d.core.animation.core.*; public class Scene3D extends SceneObject3D { public function Scene3D(_arg1:Boolean=false){ this.animated = _arg1; if (_arg1){ this.animationEngine = AnimationEngine.getInstance(); }; } } }//package org.papervision3d.scenes
Section 161
//IViewport3D (org.papervision3d.view.IViewport3D) package org.papervision3d.view { public interface IViewport3D { function updateAfterRender():void; function updateBeforeRender():void; } }//package org.papervision3d.view
Section 162
//Viewport3D (org.papervision3d.view.Viewport3D) package org.papervision3d.view { import flash.events.*; import org.papervision3d.core.render.data.*; import org.papervision3d.core.render.command.*; import flash.display.*; import flash.geom.*; import org.papervision3d.core.layers.*; import flash.utils.*; import org.papervision3d.events.*; import org.papervision3d.core.layers.utils.*; import org.papervision3d.render.*; import org.papervision3d.core.culling.*; import org.papervision3d.core.render.*; import org.papervision3d.core.utils.*; public class Viewport3D extends Sprite implements IViewport3D { public var containers:Dictionary; protected var _interactive:Boolean; public var cullingRectangle:Rectangle; protected var _viewportObjectFilter:ViewportObjectFilter; protected var _hWidth:Number; protected var _autoScaleToStage:Boolean; protected var _lastRenderer:IRenderEngine; public var sizeRectangle:Rectangle; protected var _hHeight:Number; protected var _containerSprite:Sprite; protected var _autoClipping:Boolean; protected var _height:Number; public var interactiveSceneManager:InteractiveSceneManager; public var lastRenderList:Array; protected var _autoCulling:Boolean; public var particleCuller:IParticleCuller; protected var _width:Number; public var renderLayerManager:RenderLayerManager; public var triangleCuller:ITriangleCuller; public function Viewport3D(_arg1:Number=640, _arg2:Number=480, _arg3:Boolean=false, _arg4:Boolean=false, _arg5:Boolean=true, _arg6:Boolean=true){ this.interactive = _arg4; init(); this.viewportWidth = _arg1; this.viewportHeight = _arg2; this.autoClipping = _arg5; this.autoCulling = _arg6; this.autoScaleToStage = _arg3; } public function addRenderLayer(_arg1:RenderLayer):void{ _containerSprite.addChild(_arg1); renderLayerManager.addRenderLayer(_arg1); } public function set autoCulling(_arg1:Boolean):void{ if (_arg1){ triangleCuller = new RectangleTriangleCuller(cullingRectangle); particleCuller = new RectangleParticleCuller(cullingRectangle); } else { if (!_arg1){ triangleCuller = new DefaultTriangleCuller(); particleCuller = new DefaultParticleCuller(); }; }; _autoCulling = _arg1; } protected function onStageResize(_arg1:Event=null):void{ if (_autoScaleToStage){ viewportWidth = stage.stageWidth; viewportHeight = stage.stageHeight; }; } public function hitTestMouse():RenderHitData{ var _local1:Point; _local1 = new Point(containerSprite.mouseX, containerSprite.mouseY); return (hitTestPoint2D(_local1)); } protected function init():void{ var _local1:RenderLayer; containers = new Dictionary(); lastRenderList = new Array(); sizeRectangle = new Rectangle(); cullingRectangle = new Rectangle(); _containerSprite = new Sprite(); addChild(_containerSprite); renderLayerManager = new RenderLayerManager(); _local1 = new RenderLayer(); _containerSprite.addChild(_local1); renderLayerManager.addDefaultLayer(_local1); if (interactive){ interactiveSceneManager = new InteractiveSceneManager(this); }; addEventListener(Event.ADDED_TO_STAGE, onAddedToStage); addEventListener(Event.REMOVED_FROM_STAGE, onRemovedFromStage); } public function set autoClipping(_arg1:Boolean):void{ if (_arg1){ scrollRect = sizeRectangle; } else { scrollRect = null; }; _autoClipping = _arg1; } public function updateAfterRender():void{ renderLayerManager.sortlayers(_containerSprite); renderLayerManager.updateAfterRender(); } public function removeRenderLayer(_arg1:RenderLayer):void{ _containerSprite.removeChild(_arg1); renderLayerManager.removeRenderLayer(_arg1); } public function get viewportHeight():Number{ return (_height); } public function hitTestPoint2D(_arg1:Point):RenderHitData{ var _local2:RenderableListItem; var _local3:RenderHitData; var _local4:IRenderListItem; var _local5:uint; if (interactive){ _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 (new RenderHitData()); } public function get autoCulling():Boolean{ return (_autoCulling); } public function get viewportObjectFilter():ViewportObjectFilter{ return (_viewportObjectFilter); } public function updateBeforeRender():void{ renderLayerManager.resetLayers(); renderLayerManager.updateBeforeRender(); lastRenderList.length = 0; _containerSprite.graphics.clear(); } protected function handleRenderDone(_arg1:RendererEvent):void{ interactiveSceneManager.updateRenderHitData(); } protected function onAddedToStage(_arg1:Event):void{ stage.addEventListener(Event.RESIZE, onStageResize); onStageResize(); } public function set viewportWidth(_arg1:Number):void{ _width = _arg1; _hWidth = (_arg1 / 2); containerSprite.x = _hWidth; sizeRectangle.width = _arg1; cullingRectangle.x = -(_hWidth); cullingRectangle.width = _arg1; scrollRect = sizeRectangle; } public function get containerSprite():Sprite{ return (_containerSprite); } public function get autoClipping():Boolean{ return (_autoClipping); } public function set viewportObjectFilter(_arg1:ViewportObjectFilter):void{ _viewportObjectFilter = _arg1; } public function get viewportWidth():Number{ return (_width); } public function set autoScaleToStage(_arg1:Boolean):void{ _autoScaleToStage = _arg1; if (((_arg1) && (!((stage == null))))){ onStageResize(); }; } public function set interactive(_arg1:Boolean):void{ _interactive = _arg1; } public function set viewportHeight(_arg1:Number):void{ _height = _arg1; _hHeight = (_arg1 / 2); containerSprite.y = _hHeight; sizeRectangle.height = _arg1; cullingRectangle.y = -(_hHeight); cullingRectangle.height = _arg1; scrollRect = sizeRectangle; } public function get autoScaleToStage():Boolean{ return (_autoScaleToStage); } public function get interactive():Boolean{ return (_interactive); } public function set lastRenderer(_arg1:BasicRenderEngine):void{ if (!interactive){ return; }; _arg1.removeEventListener(RendererEvent.RENDER_DONE, handleRenderDone); _arg1.addEventListener(RendererEvent.RENDER_DONE, handleRenderDone); } protected function onRemovedFromStage(_arg1:Event):void{ stage.removeEventListener(Event.RESIZE, onStageResize); } } }//package org.papervision3d.view
Section 163
//Papervision3D (org.papervision3d.Papervision3D) package org.papervision3d { public class Papervision3D { public static var useDEGREES:Boolean = true; public static var VERBOSE:Boolean = true; public static var AUTHOR:String = "(c) 2006-2007 Copyright by Carlos Ulloa - | John Grden | Ralph Hauwert | Tim Knip"; public static var DATE:String = "21.11.07"; public static var NAME:String = "Papervision3D"; public static var VERSION:String = "Alpha 2.0 - Effects"; public static var usePERCENT:Boolean = false; public static function log(_arg1:String):void{ if (Papervision3D.VERBOSE){ trace(_arg1); }; } } }//package org.papervision3d
Section 164
//TemplateEvent (tm.com.TemplateEvent) package tm.com { import flash.events.*; public class TemplateEvent extends Event { public var info:Object; public function TemplateEvent(_arg1:String, _arg2:Object, _arg3=false, _arg4=false){ super(_arg1, _arg3, _arg4); this.info = _arg2; } override public function clone():Event{ return (new TemplateEvent(type, info)); } } }//package tm.com
Section 165
//TemplateMenu (tm.com.TemplateMenu) package tm.com { import tm.template.*; public class TemplateMenu { public var selectedMenuButton:MenuButton; private var _menuButonsCollection:Array; private static var _instance:TemplateMenu; public function TemplateMenu(){ _menuButonsCollection = new Array(); } public function registerMenuButton(_arg1:MenuButton, _arg2:uint):void{ _menuButonsCollection[_arg2] = _arg1; _arg1.init(_arg2); } public function switchMenuButton():void{ var _local1:uint; var _local2:uint; _local1 = TemplateState.getInstance().currentTemplatePage; if (((selectedMenuButton) && (!((selectedMenuButton.targetPage == _local1))))){ selectedMenuButton.rollOut(); selectedMenuButton = null; }; _local2 = 0; while (_local2 < _menuButonsCollection.length) { if ((_menuButonsCollection[_local2] as MenuButton).targetPage == _local1){ if ((_menuButonsCollection[_local2] as MenuButton) != selectedMenuButton){ selectedMenuButton = (_menuButonsCollection[_local2] as MenuButton); selectedMenuButton.rollOver(); }; }; _local2++; }; } public static function getInstance():TemplateMenu{ if (_instance == null){ _instance = new (TemplateMenu); }; return (_instance); } } }//package tm.com
Section 166
//TemplatePage (tm.com.TemplatePage) package tm.com { import tm.template.*; import flash.display.*; import org.papervision3d.objects.*; public class TemplatePage extends MovieClip { protected var _engine:PagesEngine; protected var _pageHolder:DisplayObject3D; public function init(_arg1:PagesEngine, _arg2:Object=null):void{ } public function get pageHolder():DisplayObject3D{ return (_pageHolder); } protected function renderPage():void{ } public function enable():void{ if (_pageHolder){ _pageHolder.visible = true; }; enabled = true; } public function render():void{ if (enabled){ renderPage(); }; } public function hide():void{ } public function disable():void{ if (_pageHolder){ _pageHolder.visible = false; }; enabled = false; } public function show():void{ } } }//package tm.com
Section 167
//TemplateSound (tm.com.TemplateSound) package tm.com { import flash.events.*; import br.com.stimuli.loading.*; import flash.media.*; import flash.utils.*; public class TemplateSound extends EventDispatcher { public var soundChannel:SoundChannel; private var _soundObject:Object; public var sound:Sound; public var soundTransform:SoundTransform; public function TemplateSound(_arg1:String){ sound = BulkLoader.getLoader("mainLoader").getSound(_arg1); _soundObject = TemplateState.getInstance().sounds[_arg1]; } private function loopSound():void{ soundChannel.stop(); setTimeout(loopSound, (_soundObject.skipTo - _soundObject.skipFrom)); soundChannel = sound.play(_soundObject.skipFrom, 0, soundTransform); dispatchEvent(new Event("soundChannelUpdated")); } public function play():void{ if (((sound) && (_soundObject))){ soundTransform = new SoundTransform(_soundObject.volume, _soundObject.panning); if (_soundObject.loops > 0){ if ((((_soundObject.skipFrom > 0)) || ((_soundObject.skipTo > 0)))){ soundChannel = sound.play(_soundObject.skipFrom, 0, soundTransform); setTimeout(loopSound, (_soundObject.skipTo - _soundObject.skipFrom)); } else { sound.play(0, _soundObject.loops, soundTransform); }; } else { sound.play(0, 0, soundTransform); }; }; } } }//package tm.com
Section 168
//TemplateState (tm.com.TemplateState) package tm.com { public class TemplateState { public var currentTemplatePage:uint; public var pages:Array; public var sounds:Object; public var readMorePages:Array; public var previousTemplatePage:uint; public var currentReadMorePage:uint; public var menu:Array; public var settings:Object; public var galleries:Object; public var soundEnabled:Boolean;// = true public var effectLayers:Array; private static var _instance:TemplateState; public function TemplateState(){ settings = new Object(); menu = new Array(); pages = new Array(); readMorePages = new Array(); galleries = new Object(); sounds = new Object(); effectLayers = new Array(); soundEnabled = true; super(); } public static function getInstance():TemplateState{ if (_instance == null){ _instance = new (TemplateState); }; return (_instance); } } }//package tm.com
Section 169
//TemplateUtils (tm.com.TemplateUtils) package tm.com { import flash.events.*; import flash.utils.*; public class TemplateUtils { public static function getTEventFromString(_arg1:String, _arg2:Object=false, _arg3:Object=false):TemplateEvent{ var _local4:Array; var _local5:String; if (((_arg1) && ((_arg1.length > 0)))){ _local4 = new Array(); _local4 = _arg1.split(","); _local5 = _local4[0]; if (((_local5) && ((_local5.length > 0)))){ _local4.splice(0, 1); return (new TemplateEvent(_local5, _local4, _arg2, _arg3)); }; return (null); //unresolved jump }; return (null); } public static function callFunctionWithDelay(_arg1:Function, _arg2:Number, _arg3:Array=null):void{ var timer:Timer; var timedFunction:Function; var functionToCall = _arg1; var delay = _arg2; var params = _arg3; timer = new Timer((delay * 1000)); timedFunction = function (_arg1:TimerEvent):void{ timer.stop(); functionToCall.apply(this, params); }; timer.addEventListener("timer", timedFunction); timer.start(); } } }//package tm.com
Section 170
//AboutPage (tm.template.pages.AboutPage) package tm.template.pages { import flash.events.*; import tm.com.*; import caurina.transitions.*; import tm.template.*; import org.papervision3d.core.render.material.*; import flash.display.*; import org.papervision3d.objects.*; import org.papervision3d.materials.*; import br.com.stimuli.loading.*; import org.papervision3d.events.*; import flash.text.*; import com.adobe.crypto.*; import org.papervision3d.objects.primitives.*; import flash.system.*; public class AboutPage extends TemplatePage { private var _cameraMovementAllowed:Boolean;// = true private var _mainLogoHolder:DisplayObject3D; private var _contentsPlane:Plane; private var _images:Array; public var pageContents:MovieClip; private var _contentsPositionX:Number;// = 277 private var _contentsPositionY:Number;// = 212 private var _texts:Array; private var _pageContentsMaterial:MovieMaterial; public static const IMAGE_LABEL_MAX_WIDTH:Number = 115; public function AboutPage(){ _cameraMovementAllowed = true; _contentsPositionX = 277; _contentsPositionY = 212; super(); } private function textLinkClick(_arg1:TextEvent):void{ var _local2:TemplateEvent; _local2 = TemplateUtils.getTEventFromString(_arg1.text, true); if (_local2){ dispatchEvent(_local2); }; } private function addLogo():void{ var _local1:MovieClip; var _local2:MovieMaterial; var _local3:Plane; var _local4:Sprite; var _local5:MovieClip; var _local6:TextFormat; var _local7:MovieClip; var _local8:MovieMaterial; var _local9:Plane; _mainLogoHolder = new DisplayObject3D(); _mainLogoHolder.y = 295; _local1 = (addChild(new LogoImage()) as MovieClip); _local2 = new MovieMaterial(_local1, true); _local2.interactive = true; _local2.smooth = true; _local3 = new Plane(_local2, _local1.width, _local1.height); removeChild(_local1); _local3.addEventListener(InteractiveScene3DEvent.OBJECT_CLICK, onLogoClick); _local3.addEventListener(InteractiveScene3DEvent.OBJECT_OVER, onLogoOver); _local3.addEventListener(InteractiveScene3DEvent.OBJECT_OUT, onLogoOut); _mainLogoHolder.addChild(_local3); _local4 = new Sprite(); _local5 = (_local4.addChild(new CompanyNameLetter()) as MovieClip); _local5.letter.width = 500; _local5.letter.text = TemplateState.getInstance().settings["companyName"]; _local6 = (_local5.letter as TextField).getTextFormat(); _local6.letterSpacing = -1; (_local5.letter as TextField).setTextFormat(_local6); _local5.letter.width = (_local5.letter.textWidth + 5); _local7 = (_local4.addChild(new SloganLetter()) as MovieClip); _local7.letter.text = TemplateState.getInstance().settings["slogan"]; _local7.letter.width = (_local7.letter.textWidth + 5); _local5.x = ((_local4.width - _local5.width) / 2); _local7.x = Math.floor(((_local4.width - _local7.letter.textWidth) / 2)); _local7.y = 38; _local8 = new MovieMaterial(_local4, true); _local9 = new Plane(_local8, _local4.width, _local4.height); _local9.y = -47; _mainLogoHolder.addChild(_local9); MaterialManager.unRegisterMaterial(_local2); _local2 = null; MaterialManager.unRegisterMaterial(_local8); _local8 = null; _pageHolder.addChild(_mainLogoHolder); } override public function init(_arg1:PagesEngine, _arg2:Object=null):void{ var _local3:XML; var _local4:MovieClip; var _local5:uint; var _local6:BulkLoader; var _local7:Boolean; var _local8:TextField; var _local9:MovieClip; var _local10:Bitmap; _engine = _arg1; _pageHolder = new DisplayObject3D(); if (_arg2){ _pageHolder.x = _arg2.properties.x; _pageHolder.y = _arg2.properties.y; _pageHolder.z = _arg2.properties.z; _pageHolder.rotationX = _arg2.properties.rotationX; _pageHolder.rotationY = _arg2.properties.rotationY; _pageHolder.rotationZ = _arg2.properties.rotationZ; }; _arg1.scene.addChild(_pageHolder); _texts = new Array(); for each (_local3 in _arg2.texts.elements()) { _texts.push(_local3.valueOf()); }; _images = new Array(); for each (_local3 in _arg2.images.elements()) { _images.push({url:_local3.@url.toString(), click:_local3.@click.toString()}); }; _local4 = (getChildByName("pageContents") as MovieClip); _local4.initObject = _arg2; this.alpha = 0; this.x = ((Capabilities.screenResolutionX / 2) - _contentsPositionX); this.y = ((Capabilities.screenResolutionY / 2) - _contentsPositionY); _local5 = 0; while (_local5 < _texts.length) { _local8 = (_local4.getChildByName(("text_" + _local5)) as TextField); if (_local8){ _local8.htmlText = _texts[_local5]; if ((((_local5 >= 3)) && ((_local5 <= 6)))){ _local8.x = Math.floor(((_local8.x + (IMAGE_LABEL_MAX_WIDTH / 2)) - (_local8.textWidth / 2))); }; }; _local5++; }; _local4.addEventListener(TextEvent.LINK, textLinkClick); _local6 = BulkLoader.getLoader("mainLoader"); _local7 = true; _local5 = 0; while (_local7) { _local9 = (_local4.getChildByName(("imageClipHolder_" + _local5.toString())) as MovieClip); if (((_local9) && (_local9.getChildByName("imageHolder")))){ _local10 = _local6.getBitmap(MD5.hash(_images[_local5].url)); if (_local10){ (_local9.getChildByName("imageHolder") as MovieClip).addChild(_local10); }; _local9.imageID = _local5; _local9.addEventListener(MouseEvent.ROLL_OVER, onObjectRollOver); _local9.addEventListener(MouseEvent.ROLL_OUT, onObjectRollOut); _local9.addEventListener(MouseEvent.CLICK, onObjectClick); _local9.gotoAndStop(1); _local9.buttonMode = true; _local9.useHandCursor = true; } else { _local7 = false; }; _local5++; }; _pageContentsMaterial = new MovieMaterial(_local4, true, true); _pageContentsMaterial.smooth = true; _pageContentsMaterial.interactive = true; _contentsPlane = new Plane(_pageContentsMaterial, _local4.width, _local4.height, 5, 5); _pageHolder.addChild(_contentsPlane); _contentsPlane.addEventListener(InteractiveScene3DEvent.OBJECT_OVER, onPlaneOver); _contentsPlane.addEventListener(InteractiveScene3DEvent.OBJECT_OUT, onPlaneOut); addLogo(); } private function onLogoOver(_arg1:InteractiveScene3DEvent):void{ if (enabled){ _engine.viewport.buttonMode = true; }; } private function onPlaneOver(_arg1:InteractiveScene3DEvent):void{ _cameraMovementAllowed = false; if (enabled){ Tweener.addTween(_contentsPlane, {rotationX:0, rotationY:0, rotationZ:0, time:2, transition:"easeOutQuint"}); TemplateUtils.callFunctionWithDelay(show, 2); }; } private function onObjectRollOver(_arg1:MouseEvent):void{ _arg1.currentTarget.gotoAndPlay("over"); new TemplateSound("pageImageSound").play(); } override protected function renderPage():void{ var _local1:Number; var _local2:Number; var _local3:*; var _local4:Number; var _local5:Number; var _local6:Number; if (_cameraMovementAllowed){ _local1 = (root.mouseX - (stage.stageWidth * 0.5)); _local2 = (root.mouseY - (stage.stageHeight * 0.5)); _local3 = (Math.round(Math.sqrt(((_local1 * _local1) + (_local2 * _local2)))) * 0.08); _local4 = (-(_local1) * 0.08); _local5 = (_local2 * 0.08); _local6 = (((_local1 * _local2))>=0) ? -(Math.abs((_local3 * 0.1))) : Math.abs((_local3 * 0.1)); Tweener.addTween(_contentsPlane, {rotationY:_local4, rotationX:_local5, rotationZ:_local6, time:1.2, transition:"easeOutCubic"}); }; } private function onObjectClick(_arg1:MouseEvent):void{ var _local2:TemplateEvent; _local2 = TemplateUtils.getTEventFromString(_images[_arg1.currentTarget.imageID].click, true); if (_local2){ dispatchEvent(_local2); }; } private function onPlaneOut(_arg1:InteractiveScene3DEvent):void{ _cameraMovementAllowed = true; if (enabled){ _contentsPlane.material.smooth = true; }; } private function onObjectRollOut(_arg1:MouseEvent):void{ _arg1.currentTarget.gotoAndPlay("out"); } private function onLogoClick(_arg1:InteractiveScene3DEvent):void{ if (enabled){ dispatchEvent(new TemplateEvent("switchPage", [0], true)); }; } private function onLogoOut(_arg1:InteractiveScene3DEvent):void{ if (enabled){ _engine.viewport.buttonMode = false; }; } override public function disable():void{ super.disable(); if (_pageHolder){ if (_pageContentsMaterial){ _pageContentsMaterial.animated = false; _pageContentsMaterial.smooth = false; MaterialManager.unRegisterMaterial(_pageContentsMaterial); }; if (_contentsPlane){ _contentsPlane.removeEventListener(InteractiveScene3DEvent.OBJECT_OVER, onPlaneOver); _contentsPlane.removeEventListener(InteractiveScene3DEvent.OBJECT_OUT, onPlaneOut); _pageHolder.removeChild(_contentsPlane); }; if (_mainLogoHolder){ _pageHolder.removeChild(_mainLogoHolder); }; _engine.scene.removeChild(_pageHolder); }; parent.removeChild(this); } override public function show():void{ if (!_cameraMovementAllowed){ _contentsPlane.material.smooth = false; }; } } }//package tm.template.pages
Section 171
//ContactsPage (tm.template.pages.ContactsPage) package tm.template.pages { import flash.events.*; import tm.com.*; import caurina.transitions.*; import tm.template.*; import org.papervision3d.core.render.material.*; import flash.display.*; import org.papervision3d.objects.*; import org.papervision3d.materials.*; import br.com.stimuli.loading.*; import flash.net.*; import org.papervision3d.events.*; import flash.text.*; import com.adobe.crypto.*; import org.papervision3d.objects.primitives.*; import flash.system.*; public class ContactsPage extends TemplatePage { private var _cameraMovementAllowed:Boolean;// = true private var _mainLogoHolder:DisplayObject3D; private var _formItemsCollection:Array; private var _contentsPlane:Plane; private var _images:Array; private var _formXML:XML; public var pageContents:MovieClip; private var _contentsPositionX:Number;// = 277 private var _contentsPositionY:Number;// = 212 private var _formItems:Array; private var _texts:Array; private var _pageContentsMaterial:MovieMaterial; public function ContactsPage(){ _cameraMovementAllowed = true; _contentsPositionX = 277; _contentsPositionY = 212; super(); } private function textLinkClick(_arg1:TextEvent):void{ var _local2:TemplateEvent; _local2 = TemplateUtils.getTEventFromString(_arg1.text, true); if (_local2){ dispatchEvent(_local2); }; } private function addLogo():void{ var _local1:MovieClip; var _local2:MovieMaterial; var _local3:Plane; var _local4:Sprite; var _local5:MovieClip; var _local6:TextFormat; var _local7:MovieClip; var _local8:MovieMaterial; var _local9:Plane; _mainLogoHolder = new DisplayObject3D(); _mainLogoHolder.y = 295; _local1 = (addChild(new LogoImage()) as MovieClip); _local2 = new MovieMaterial(_local1, true); _local2.interactive = true; _local2.smooth = true; _local3 = new Plane(_local2, _local1.width, _local1.height); removeChild(_local1); _local3.addEventListener(InteractiveScene3DEvent.OBJECT_CLICK, onLogoClick); _local3.addEventListener(InteractiveScene3DEvent.OBJECT_OVER, onLogoOver); _local3.addEventListener(InteractiveScene3DEvent.OBJECT_OUT, onLogoOut); _mainLogoHolder.addChild(_local3); _local4 = new Sprite(); _local5 = (_local4.addChild(new CompanyNameLetter()) as MovieClip); _local5.letter.width = 500; _local5.letter.text = TemplateState.getInstance().settings["companyName"]; _local6 = (_local5.letter as TextField).getTextFormat(); _local6.letterSpacing = -1; (_local5.letter as TextField).setTextFormat(_local6); _local5.letter.width = (_local5.letter.textWidth + 5); _local7 = (_local4.addChild(new SloganLetter()) as MovieClip); _local7.letter.text = TemplateState.getInstance().settings["slogan"]; _local7.letter.width = (_local7.letter.textWidth + 5); _local5.x = ((_local4.width - _local5.width) / 2); _local7.x = Math.floor(((_local4.width - _local7.letter.textWidth) / 2)); _local7.y = 38; _local8 = new MovieMaterial(_local4, true); _local9 = new Plane(_local8, _local4.width, _local4.height); _local9.y = -47; _mainLogoHolder.addChild(_local9); MaterialManager.unRegisterMaterial(_local2); _local2 = null; MaterialManager.unRegisterMaterial(_local8); _local8 = null; _pageHolder.addChild(_mainLogoHolder); } override public function init(_arg1:PagesEngine, _arg2:Object=null):void{ var _local3:XML; var _local4:MovieClip; var _local5:uint; var _local6:BulkLoader; var _local7:Boolean; var _local8:MovieClip; var _local9:MovieClip; var _local10:TextField; var _local11:MovieClip; var _local12:Bitmap; var _local13:Boolean; var _local14:TextField; _engine = _arg1; _pageHolder = new DisplayObject3D(); if (_arg2){ _pageHolder.x = _arg2.properties.x; _pageHolder.y = _arg2.properties.y; _pageHolder.z = _arg2.properties.z; _pageHolder.rotationX = _arg2.properties.rotationX; _pageHolder.rotationY = _arg2.properties.rotationY; _pageHolder.rotationZ = _arg2.properties.rotationZ; }; _arg1.scene.addChild(_pageHolder); _texts = new Array(); for each (_local3 in _arg2.texts.elements()) { _texts.push(_local3.valueOf()); }; _images = new Array(); for each (_local3 in _arg2.images.elements()) { _images.push({url:_local3.@url.toString(), click:_local3.@click.toString()}); }; _local4 = (getChildByName("pageContents") as MovieClip); _local4.initObject = _arg2; this.alpha = 0; this.x = ((Capabilities.screenResolutionX / 2) - _contentsPositionX); this.y = ((Capabilities.screenResolutionY / 2) - _contentsPositionY); _local5 = 0; while (_local5 < _texts.length) { _local10 = (_local4.getChildByName(("text_" + _local5)) as TextField); if (_local10){ _local10.htmlText = _texts[_local5]; }; _local5++; }; _local4.addEventListener(TextEvent.LINK, textLinkClick); _local6 = BulkLoader.getLoader("mainLoader"); _local7 = true; _local5 = 0; while (_local7) { _local11 = (_local4.getChildByName(("imageClipHolder_" + _local5.toString())) as MovieClip); if (((_local11) && (_local11.getChildByName("imageHolder")))){ _local12 = _local6.getBitmap(MD5.hash(_images[_local5].url)); if (_local12){ (_local11.getChildByName("imageHolder") as MovieClip).addChild(_local12); }; _local11.imageID = _local5; _local11.addEventListener(MouseEvent.ROLL_OVER, onObjectRollOver); _local11.addEventListener(MouseEvent.ROLL_OUT, onObjectRollOut); _local11.addEventListener(MouseEvent.CLICK, onObjectClick); _local11.gotoAndStop(1); _local11.buttonMode = true; _local11.useHandCursor = true; } else { _local7 = false; }; _local5++; }; _formItems = new Array(); _formItemsCollection = new Array(); if (((_arg2.form) && (_arg2.form.@configuration))){ _formXML = _local6.getXML(MD5.hash(_arg2.form.@configuration)); for each (_local3 in _arg2.form.items.elements()) { _formItems.push({label:_local3.@label.toString(), textToShow:_local3.valueOf().toString()}); }; _local13 = true; _local5 = 0; while (_local13) { _local14 = (_local4.getChildByName(("formItem_" + _local5.toString())) as TextField); if (((_local14) && (_formItems[_local5]))){ _local14.tabIndex = (_local5 + 1); _local14.text = _formItems[_local5].textToShow; _local14.addEventListener(FocusEvent.FOCUS_IN, onFormItemFocusIn); _local14.addEventListener(FocusEvent.FOCUS_OUT, onFormItemFocusOut); _formItemsCollection.push(_local14); } else { _local13 = false; }; _local5++; }; }; _local8 = (_local4.getChildByName("formButton_reset") as MovieClip); _local8.addEventListener(MouseEvent.ROLL_OVER, onFormButtonRollOver); _local8.addEventListener(MouseEvent.ROLL_OUT, onFormButtonRollOut); _local8.addEventListener(MouseEvent.CLICK, onFormReset); _local8.buttonMode = true; _local8.useHandCursor = true; _local8.targetClip = (_local4.getChildByName("formButtonClip_reset") as MovieClip); (_local4.getChildByName("formButtonClip_reset") as MovieClip).gotoAndStop(1); _local9 = (_local4.getChildByName("formButton_submit") as MovieClip); _local9.addEventListener(MouseEvent.ROLL_OVER, onFormButtonRollOver); _local9.addEventListener(MouseEvent.ROLL_OUT, onFormButtonRollOut); _local9.addEventListener(MouseEvent.CLICK, onFormSubmit); _local9.buttonMode = true; _local9.useHandCursor = true; _local9.targetClip = (_local4.getChildByName("formButtonClip_submit") as MovieClip); (_local4.getChildByName("formButtonClip_submit") as MovieClip).gotoAndStop(1); _pageContentsMaterial = new MovieMaterial(_local4, true, true); _pageContentsMaterial.smooth = true; _pageContentsMaterial.interactive = true; _contentsPlane = new Plane(_pageContentsMaterial, _local4.width, _local4.height, 5, 5); _pageHolder.addChild(_contentsPlane); _contentsPlane.addEventListener(InteractiveScene3DEvent.OBJECT_OVER, onPlaneOver); _contentsPlane.addEventListener(InteractiveScene3DEvent.OBJECT_OUT, onPlaneOut); addLogo(); } private function onLogoOver(_arg1:InteractiveScene3DEvent):void{ if (enabled){ _engine.viewport.buttonMode = true; }; } private function onPlaneOver(_arg1:InteractiveScene3DEvent):void{ _cameraMovementAllowed = false; if (enabled){ Tweener.addTween(_contentsPlane, {rotationX:0, rotationY:0, rotationZ:0, time:2, transition:"easeOutQuint"}); TemplateUtils.callFunctionWithDelay(show, 2); }; } private function onFormSubmit(_arg1:MouseEvent):void{ var _local2:MovieClip; if (_formXML){ _local2 = (getChildByName("pageContents") as MovieClip); resetForm(); _local2.formMessage.text = _formXML.messageSentText; }; } private function onObjectRollOver(_arg1:MouseEvent):void{ _arg1.currentTarget.gotoAndPlay("over"); new TemplateSound("pageImageSound").play(); } override protected function renderPage():void{ var _local1:Number; var _local2:Number; var _local3:*; var _local4:Number; var _local5:Number; var _local6:Number; if (_cameraMovementAllowed){ _local1 = (root.mouseX - (stage.stageWidth * 0.5)); _local2 = (root.mouseY - (stage.stageHeight * 0.5)); _local3 = (Math.round(Math.sqrt(((_local1 * _local1) + (_local2 * _local2)))) * 0.08); _local4 = (-(_local1) * 0.08); _local5 = (_local2 * 0.08); _local6 = (((_local1 * _local2))>=0) ? -(Math.abs((_local3 * 0.1))) : Math.abs((_local3 * 0.1)); Tweener.addTween(_contentsPlane, {rotationY:_local4, rotationX:_local5, rotationZ:_local6, time:1.2, transition:"easeOutCubic"}); }; } private function onObjectClick(_arg1:MouseEvent):void{ var _local2:TemplateEvent; if ((((_arg1.currentTarget.imageID >= 0)) && (_images[_arg1.currentTarget.imageID]))){ _local2 = TemplateUtils.getTEventFromString(_images[_arg1.currentTarget.imageID].click, true); if (_local2){ dispatchEvent(_local2); }; }; } private function onFormItemFocusIn(_arg1:FocusEvent):void{ var _local2:TextField; var _local3:uint; _local2 = (_arg1.target as TextField); _local3 = uint(_local2.name.slice((_local2.name.lastIndexOf("_") + 1), _local2.name.length)); if (_local2.text == _formItems[_local3].textToShow){ _local2.text = ""; }; } private function onFormButtonRollOver(_arg1:MouseEvent):void{ if (_arg1.currentTarget.targetClip){ _arg1.currentTarget.targetClip.gotoAndPlay("over"); new TemplateSound("pageButtonSound").play(); }; } private function onPlaneOut(_arg1:InteractiveScene3DEvent):void{ _cameraMovementAllowed = true; if (enabled){ _contentsPlane.material.smooth = true; }; } private function onServerResponse(_arg1:Event):void{ var loader:URLLoader; var contentsMovieClip:MovieClip; var event = _arg1; loader = URLLoader(event.target); contentsMovieClip = (getChildByName("pageContents") as MovieClip); try { if ((((Number(XML(loader.data).mail) == 1)) || ((XML(loader.data).mail == "1")))){ resetForm(); contentsMovieClip.formMessage.text = _formXML.messageSentText; } else { contentsMovieClip.formMessage.text = _formXML.messageSentFailedText; }; } catch(error:Error) { contentsMovieClip.formMessage.text = _formXML.messageSentFailedText; }; } private function onFormButtonRollOut(_arg1:MouseEvent):void{ if (_arg1.currentTarget.targetClip){ _arg1.currentTarget.targetClip.gotoAndPlay("out"); }; } private function onFormItemFocusOut(_arg1:FocusEvent):void{ var _local2:TextField; var _local3:uint; _local2 = (_arg1.target as TextField); _local3 = uint(_local2.name.slice((_local2.name.lastIndexOf("_") + 1), _local2.name.length)); if (_local2.text == ""){ _local2.text = _formItems[_local3].textToShow; }; } private function onObjectRollOut(_arg1:MouseEvent):void{ _arg1.currentTarget.gotoAndPlay("out"); } private function onLogoClick(_arg1:InteractiveScene3DEvent):void{ if (enabled){ dispatchEvent(new TemplateEvent("switchPage", [0], true)); }; } private function onFormReset(_arg1:MouseEvent):void{ resetForm(); } private function onLogoOut(_arg1:InteractiveScene3DEvent):void{ if (enabled){ _engine.viewport.buttonMode = false; }; } private function resetForm():void{ var _local1:uint; var _local2:MovieClip; _local1 = 0; while (_local1 < _formItemsCollection.length) { if (_formItems[_local1]){ (_formItemsCollection[_local1] as TextField).text = _formItems[_local1].textToShow; }; _local1++; }; _local2 = (getChildByName("pageContents") as MovieClip); _local2.formMessage.text = ""; } override public function disable():void{ super.disable(); if (_pageHolder){ if (_pageContentsMaterial){ _pageContentsMaterial.animated = false; _pageContentsMaterial.smooth = false; MaterialManager.unRegisterMaterial(_pageContentsMaterial); }; if (_contentsPlane){ _contentsPlane.removeEventListener(InteractiveScene3DEvent.OBJECT_OVER, onPlaneOver); _contentsPlane.removeEventListener(InteractiveScene3DEvent.OBJECT_OUT, onPlaneOut); _pageHolder.removeChild(_contentsPlane); }; if (_mainLogoHolder){ _pageHolder.removeChild(_mainLogoHolder); }; _engine.scene.removeChild(_pageHolder); }; parent.removeChild(this); } override public function show():void{ if (!_cameraMovementAllowed){ _contentsPlane.material.smooth = false; }; } } }//package tm.template.pages
Section 172
//DynamicGalleryPlane (tm.template.pages.DynamicGalleryPlane) package tm.template.pages { import flash.events.*; import tm.com.*; import caurina.transitions.*; import org.papervision3d.core.render.material.*; import flash.display.*; import org.papervision3d.objects.*; import org.papervision3d.materials.*; import flash.net.*; import org.papervision3d.events.*; import org.papervision3d.objects.primitives.*; public class DynamicGalleryPlane extends EventDispatcher { public var imagePlane:Plane; public var materialMovie:MovieClip; private var _temporaryPlaneMaterialSprite:Sprite; public var IMAGE_BORDER_WIDTH:uint;// = 9 public var targetHeight:Number; public var imageMaterial:MovieMaterial; public var planesHolder:DisplayObject3D; public var galleryHolder:DisplayObject3D; private var _temporaryPlane:DisplayObject3D; public var targetWidth:Number; private var _temporaryPlaneMaterial:MovieMaterial; public function DynamicGalleryPlane(_arg1:DisplayObject3D, _arg2:Number, _arg3:Number, _arg4:Object, _arg5:String){ IMAGE_BORDER_WIDTH = 9; super(); galleryHolder = _arg1; targetWidth = _arg2; targetHeight = _arg3; planesHolder = new DisplayObject3D(); planesHolder.x = _arg4.x; planesHolder.y = _arg4.y; planesHolder.z = _arg4.z; galleryHolder.addChild(planesHolder); _temporaryPlaneMaterialSprite = new Sprite(); _temporaryPlaneMaterialSprite.alpha = 0; _temporaryPlaneMaterialSprite.graphics.beginFill(0x888888); _temporaryPlaneMaterialSprite.graphics.drawRect(0, 0, targetWidth, targetHeight); _temporaryPlaneMaterialSprite.graphics.endFill(); _temporaryPlaneMaterial = new MovieMaterial(_temporaryPlaneMaterialSprite, true, true); _temporaryPlane = new Plane(_temporaryPlaneMaterial, _arg2, _arg3); planesHolder.addChild(_temporaryPlane); Tweener.addTween((_temporaryPlane.material as MovieMaterial).movie, {alpha:0.1, time:2, transition:"easeOutQuint", onComplete:temporaryPlaneAppeared, onCompleteParams:[_arg5]}); _temporaryPlaneMaterial = null; MaterialManager.unRegisterMaterial(_temporaryPlaneMaterial); } private function temporaryPlaneMovementComplete():void{ _temporaryPlaneMaterialSprite = null; planesHolder.removeChild(_temporaryPlane); _temporaryPlaneMaterial = null; MaterialManager.unRegisterMaterial(_temporaryPlaneMaterial); } private function onPlaneOver(_arg1:InteractiveScene3DEvent):void{ dispatchEvent(new TemplateEvent("galleryPlaneOver", {plane:planesHolder})); } private function onImageLoad(_arg1:Event):void{ var _local2:Number; materialMovie = (new GalleryItemPlane() as MovieClip); materialMovie.imageBorder.width = targetWidth; materialMovie.imageBorder.height = targetHeight; materialMovie.imageHolder.addChild(_arg1.currentTarget.content); _local2 = Math.min(((targetWidth - (IMAGE_BORDER_WIDTH * 2)) / materialMovie.imageHolder.width), ((targetHeight - (IMAGE_BORDER_WIDTH * 2)) / materialMovie.imageHolder.height)); materialMovie.imageHolder.scaleX = _local2; materialMovie.imageHolder.scaleY = _local2; materialMovie.imageHolder.x = ((targetWidth - materialMovie.imageHolder.width) / 2); materialMovie.imageHolder.y = ((targetHeight - materialMovie.imageHolder.height) / 2); imageMaterial = new MovieMaterial(materialMovie); imageMaterial.interactive = true; imagePlane = new Plane(imageMaterial, targetWidth, targetHeight, 3, 3); imagePlane.z = -4000; planesHolder.addChild(imagePlane); imageMaterial = null; MaterialManager.unRegisterMaterial(imageMaterial); imagePlane.addEventListener(InteractiveScene3DEvent.OBJECT_PRESS, onPlanePress); imagePlane.addEventListener(InteractiveScene3DEvent.OBJECT_OVER, onPlaneOver); imagePlane.addEventListener(InteractiveScene3DEvent.OBJECT_OUT, onPlaneOut); Tweener.addTween(imagePlane, {z:0, time:1, delay:1, transition:"easeOutQuart"}); Tweener.addTween(_temporaryPlane, {z:1000, rotationY:(Math.random() * 360), rotationX:(Math.random() * 360), rotationZ:(Math.random() * 360), time:3, delay:1, transition:"easeOutQuint"}); Tweener.addTween((_temporaryPlane.material as MovieMaterial).movie, {alpha:0, time:3, delay:1, transition:"easeOutQuint", onComplete:temporaryPlaneMovementComplete}); } public function destroy():void{ if (((((imagePlane) && (planesHolder))) && (galleryHolder))){ imagePlane.removeEventListener(InteractiveScene3DEvent.OBJECT_PRESS, onPlanePress); imagePlane.removeEventListener(InteractiveScene3DEvent.OBJECT_OVER, onPlaneOver); imagePlane.removeEventListener(InteractiveScene3DEvent.OBJECT_OUT, onPlaneOut); planesHolder.removeChild(imagePlane); galleryHolder.removeChild(planesHolder); materialMovie.removeChild(materialMovie.getChildByName("imageHolder")); materialMovie = null; imageMaterial = null; MaterialManager.unRegisterMaterial(imageMaterial); }; } private function onPlaneOut(_arg1:InteractiveScene3DEvent):void{ dispatchEvent(new TemplateEvent("galleryPlaneOut", {plane:planesHolder})); } private function temporaryPlaneAppeared(_arg1:String):void{ var _local2:Loader; var _local3:URLRequest; _local2 = new Loader(); _local3 = new URLRequest(_arg1); _local2.load(_local3); _local2.contentLoaderInfo.addEventListener(Event.COMPLETE, onImageLoad); } private function onPlanePress(_arg1:InteractiveScene3DEvent):void{ dispatchEvent(new TemplateEvent("galleryPlaneClick", {plane:planesHolder})); } } }//package tm.template.pages
Section 173
//DynamicPage (tm.template.pages.DynamicPage) package tm.template.pages { import flash.events.*; import tm.com.*; import caurina.transitions.*; import tm.template.*; import org.papervision3d.core.render.material.*; import flash.display.*; import org.papervision3d.objects.*; import org.papervision3d.materials.*; import br.com.stimuli.loading.*; import org.papervision3d.events.*; import flash.text.*; import com.adobe.crypto.*; import org.papervision3d.objects.primitives.*; import flash.system.*; public class DynamicPage extends TemplatePage { private var _cameraMovementAllowed:Boolean;// = true private var _mainLogoHolder:DisplayObject3D; private var _contentsPlane:Plane; private var _images:Array; public var pageContents:MovieClip; private var _contentsPositionX:Number;// = 277 private var _contentsPositionY:Number;// = 229 private var _texts:Array; private var _pageContentsMaterial:MovieMaterial; public function DynamicPage(){ _cameraMovementAllowed = true; _contentsPositionX = 277; _contentsPositionY = 229; super(); } private function textLinkClick(_arg1:TextEvent):void{ var _local2:TemplateEvent; _local2 = TemplateUtils.getTEventFromString(_arg1.text, true); if (_local2){ dispatchEvent(_local2); }; } private function addLogo():void{ var _local1:MovieClip; var _local2:MovieMaterial; var _local3:Plane; var _local4:Sprite; var _local5:MovieClip; var _local6:TextFormat; var _local7:MovieClip; var _local8:MovieMaterial; var _local9:Plane; _mainLogoHolder = new DisplayObject3D(); _mainLogoHolder.y = 295; _local1 = (addChild(new LogoImage()) as MovieClip); _local2 = new MovieMaterial(_local1, true); _local2.interactive = true; _local2.smooth = true; _local3 = new Plane(_local2, _local1.width, _local1.height); removeChild(_local1); _local3.addEventListener(InteractiveScene3DEvent.OBJECT_CLICK, onLogoClick); _local3.addEventListener(InteractiveScene3DEvent.OBJECT_OVER, onLogoOver); _local3.addEventListener(InteractiveScene3DEvent.OBJECT_OUT, onLogoOut); _mainLogoHolder.addChild(_local3); _local4 = new Sprite(); _local5 = (_local4.addChild(new CompanyNameLetter()) as MovieClip); _local5.letter.width = 500; _local5.letter.text = TemplateState.getInstance().settings["companyName"]; _local6 = (_local5.letter as TextField).getTextFormat(); _local6.letterSpacing = -1; (_local5.letter as TextField).setTextFormat(_local6); _local5.letter.width = (_local5.letter.textWidth + 5); _local7 = (_local4.addChild(new SloganLetter()) as MovieClip); _local7.letter.text = TemplateState.getInstance().settings["slogan"]; _local7.letter.width = (_local7.letter.textWidth + 5); _local5.x = ((_local4.width - _local5.width) / 2); _local7.x = Math.floor(((_local4.width - _local7.letter.textWidth) / 2)); _local7.y = 38; _local8 = new MovieMaterial(_local4, true); _local9 = new Plane(_local8, _local4.width, _local4.height); _local9.y = -47; _mainLogoHolder.addChild(_local9); MaterialManager.unRegisterMaterial(_local2); _local2 = null; MaterialManager.unRegisterMaterial(_local8); _local8 = null; _pageHolder.addChild(_mainLogoHolder); } override public function init(_arg1:PagesEngine, _arg2:Object=null):void{ var _local3:XML; var _local4:MovieClip; var _local5:uint; var _local6:BulkLoader; var _local7:Boolean; var _local8:MovieClip; var _local9:TextField; var _local10:MovieClip; var _local11:Bitmap; _engine = _arg1; _pageHolder = new DisplayObject3D(); if (_arg2){ _pageHolder.x = _arg2.properties.x; _pageHolder.y = _arg2.properties.y; _pageHolder.z = _arg2.properties.z; _pageHolder.rotationX = _arg2.properties.rotationX; _pageHolder.rotationY = _arg2.properties.rotationY; _pageHolder.rotationZ = _arg2.properties.rotationZ; }; _arg1.scene.addChild(_pageHolder); _texts = new Array(); for each (_local3 in _arg2.texts.elements()) { _texts.push(_local3.valueOf()); }; _images = new Array(); for each (_local3 in _arg2.images.elements()) { _images.push({url:_local3.@url.toString(), click:_local3.@click.toString()}); }; _local4 = (getChildByName("pageContents") as MovieClip); _local4.initObject = _arg2; this.alpha = 0; this.x = ((Capabilities.screenResolutionX / 2) - _contentsPositionX); this.y = ((Capabilities.screenResolutionY / 2) - _contentsPositionY); _local5 = 0; while (_local5 < _texts.length) { _local9 = (_local4.getChildByName(("text_" + _local5)) as TextField); if (_local9){ _local9.htmlText = _texts[_local5]; }; _local5++; }; _local4.addEventListener(TextEvent.LINK, textLinkClick); _local6 = BulkLoader.getLoader("mainLoader"); _local7 = true; _local5 = 0; while (_local7) { _local10 = (_local4.getChildByName(("imageClipHolder_" + _local5.toString())) as MovieClip); if (((_local10) && (_local10.getChildByName("imageHolder")))){ _local11 = _local6.getBitmap(MD5.hash(_images[_local5].url)); if (_local11){ (_local10.getChildByName("imageHolder") as MovieClip).addChild(_local11); }; _local10.imageID = _local5; _local10.addEventListener(MouseEvent.ROLL_OVER, onObjectRollOver); _local10.addEventListener(MouseEvent.ROLL_OUT, onObjectRollOut); _local10.addEventListener(MouseEvent.CLICK, onObjectClick); _local10.gotoAndStop(1); } else { _local7 = false; }; _local5++; }; _local8 = (_local4.getChildByName("closeButton") as MovieClip); if (_local8){ if (((_arg2.properties.closeButton) && ((_arg2.properties.closeButton == "true")))){ _local8.gotoAndStop(1); _local8.addEventListener(MouseEvent.ROLL_OVER, onObjectRollOver); _local8.addEventListener(MouseEvent.ROLL_OUT, onObjectRollOut); _local8.addEventListener(MouseEvent.CLICK, onCloseButtonClick); _local8.buttonMode = true; _local8.useHandCursor = true; } else { _local8.visible = false; _local4.removeChild(_local8); }; }; _pageContentsMaterial = new MovieMaterial(_local4, true, true); _pageContentsMaterial.smooth = true; _pageContentsMaterial.interactive = true; _contentsPlane = new Plane(_pageContentsMaterial, _local4.width, _local4.height, 7, 7); _pageHolder.addChild(_contentsPlane); _contentsPlane.addEventListener(InteractiveScene3DEvent.OBJECT_OVER, onPlaneOver); _contentsPlane.addEventListener(InteractiveScene3DEvent.OBJECT_OUT, onPlaneOut); addLogo(); } private function onLogoOver(_arg1:InteractiveScene3DEvent):void{ if (enabled){ _engine.viewport.buttonMode = true; }; } private function onPlaneOver(_arg1:InteractiveScene3DEvent):void{ _cameraMovementAllowed = false; if (enabled){ Tweener.addTween(_contentsPlane, {rotationX:0, rotationY:0, rotationZ:0, time:2, transition:"easeOutQuint"}); TemplateUtils.callFunctionWithDelay(show, 2); }; } private function onObjectRollOver(_arg1:MouseEvent):void{ _arg1.currentTarget.gotoAndPlay("over"); new TemplateSound("pageButtonSound").play(); } override protected function renderPage():void{ var _local1:Number; var _local2:Number; var _local3:*; var _local4:Number; var _local5:Number; var _local6:Number; if (_cameraMovementAllowed){ _local1 = (root.mouseX - (stage.stageWidth * 0.5)); _local2 = (root.mouseY - (stage.stageHeight * 0.5)); _local3 = (Math.round(Math.sqrt(((_local1 * _local1) + (_local2 * _local2)))) * 0.08); _local4 = (-(_local1) * 0.08); _local5 = (_local2 * 0.08); _local6 = (((_local1 * _local2))>=0) ? -(Math.abs((_local3 * 0.1))) : Math.abs((_local3 * 0.1)); Tweener.addTween(_contentsPlane, {rotationY:_local4, rotationX:_local5, rotationZ:_local6, time:1.2, transition:"easeOutCubic"}); }; } private function onObjectClick(_arg1:MouseEvent):void{ var _local2:TemplateEvent; _local2 = TemplateUtils.getTEventFromString(_images[_arg1.currentTarget.imageID].click, true); if (_local2){ dispatchEvent(_local2); }; } private function onCloseButtonClick(_arg1:MouseEvent):void{ if (TemplateState.getInstance().previousTemplatePage >= 0){ dispatchEvent(new TemplateEvent("switchPage", [TemplateState.getInstance().previousTemplatePage], true)); }; } private function onPlaneOut(_arg1:InteractiveScene3DEvent):void{ _cameraMovementAllowed = true; if (enabled){ _contentsPlane.material.smooth = true; }; } private function onObjectRollOut(_arg1:MouseEvent):void{ _arg1.currentTarget.gotoAndPlay("out"); } private function onLogoClick(_arg1:InteractiveScene3DEvent):void{ if (enabled){ dispatchEvent(new TemplateEvent("switchPage", [0], true)); }; } private function onLogoOut(_arg1:InteractiveScene3DEvent):void{ if (enabled){ _engine.viewport.buttonMode = false; }; } override public function disable():void{ super.disable(); if (_pageHolder){ if (_pageContentsMaterial){ _pageContentsMaterial.animated = false; _pageContentsMaterial.smooth = false; MaterialManager.unRegisterMaterial(_pageContentsMaterial); }; if (_contentsPlane){ _contentsPlane.removeEventListener(InteractiveScene3DEvent.OBJECT_OVER, onPlaneOver); _contentsPlane.removeEventListener(InteractiveScene3DEvent.OBJECT_OUT, onPlaneOut); _pageHolder.removeChild(_contentsPlane); }; if (_mainLogoHolder){ _pageHolder.removeChild(_mainLogoHolder); }; _engine.scene.removeChild(_pageHolder); }; parent.removeChild(this); } override public function show():void{ if (!_cameraMovementAllowed){ _contentsPlane.material.smooth = false; }; } } }//package tm.template.pages
Section 174
//GalleryPage (tm.template.pages.GalleryPage) package tm.template.pages { import flash.events.*; import tm.com.*; import caurina.transitions.*; import tm.template.*; import org.papervision3d.core.render.material.*; import flash.display.*; import org.papervision3d.objects.*; import org.papervision3d.materials.*; import org.papervision3d.events.*; import flash.text.*; import org.papervision3d.objects.primitives.*; import flash.system.*; public class GalleryPage extends TemplatePage { public var galleryButton_3:MovieClip; private var HORIZONTAL_SPACING:uint;// = 5 public var zoomedGalleryPlane:DisplayObject3D;// = null private var MAX_WIDTH:uint;// = 706 private var _cameraMovementAllowed:Boolean;// = true private var _textHolder:DisplayObject3D; private var _sloganHolder:DisplayObject3D; private var _planesCollection:Array; private var VERTICAL_SPACING:uint;// = 5 private var _galleryID:String; private var _isLogoMoving:Boolean;// = false private var _planesSequence:Array; private var MAX_HEIGHT:uint;// = 493 private var _buttons:Array; private var _holder:DisplayObject3D; public var galleryButton_0:MovieClip; public var galleryButton_1:MovieClip; public var galleryButton_2:MovieClip; private var _logoHolder:DisplayObject3D; private var _companyNamePlanes:Array; private var _mainLogoHolder:DisplayObject3D; public static const HOLDER_MAX_DISTANCE:uint = 2600; public static const HOLDER_VERTICAL_OFFSET:int = -220; public static const HOLDER_ZOOM_DISTANCE:uint = 0; public static var SCALE_INDEX:Number = 3; public function GalleryPage(){ _cameraMovementAllowed = true; _isLogoMoving = false; zoomedGalleryPlane = null; MAX_WIDTH = 706; MAX_HEIGHT = 493; HORIZONTAL_SPACING = 5; VERTICAL_SPACING = 5; super(); } private function addLogo():void{ var _local1:MovieClip; var _local2:MovieMaterial; var _local3:Plane; var _local4:Sprite; var _local5:MovieClip; var _local6:TextFormat; var _local7:MovieClip; var _local8:MovieMaterial; var _local9:Plane; _mainLogoHolder = new DisplayObject3D(); _mainLogoHolder.y = 295; _local1 = (addChild(new LogoImage()) as MovieClip); _local2 = new MovieMaterial(_local1, true); _local2.interactive = true; _local2.smooth = true; _local3 = new Plane(_local2, _local1.width, _local1.height); removeChild(_local1); _local3.addEventListener(InteractiveScene3DEvent.OBJECT_CLICK, onLogoClick); _local3.addEventListener(InteractiveScene3DEvent.OBJECT_OVER, onLogoOver); _local3.addEventListener(InteractiveScene3DEvent.OBJECT_OUT, onLogoOut); _mainLogoHolder.addChild(_local3); _local4 = new Sprite(); _local5 = (_local4.addChild(new CompanyNameLetter()) as MovieClip); _local5.letter.width = 500; _local5.letter.text = TemplateState.getInstance().settings["companyName"]; _local6 = (_local5.letter as TextField).getTextFormat(); _local6.letterSpacing = -1; (_local5.letter as TextField).setTextFormat(_local6); _local5.letter.width = (_local5.letter.textWidth + 5); _local7 = (_local4.addChild(new SloganLetter()) as MovieClip); _local7.letter.text = TemplateState.getInstance().settings["slogan"]; _local7.letter.width = (_local7.letter.textWidth + 5); _local5.x = ((_local4.width - _local5.width) / 2); _local7.x = Math.floor(((_local4.width - _local7.letter.textWidth) / 2)); _local7.y = 38; _local8 = new MovieMaterial(_local4, true); _local9 = new Plane(_local8, _local4.width, _local4.height); _local9.y = -47; _mainLogoHolder.addChild(_local9); MaterialManager.unRegisterMaterial(_local2); _local2 = null; MaterialManager.unRegisterMaterial(_local8); _local8 = null; _pageHolder.addChild(_mainLogoHolder); } override public function init(_arg1:PagesEngine, _arg2:Object=null):void{ var _local3:XML; var _local4:Number; var _local5:Number; var _local6:MovieClip; _engine = _arg1; _galleryID = _arg2.properties.galleryID; _pageHolder = new DisplayObject3D(); if (_arg2){ _pageHolder.x = _arg2.properties.x; _pageHolder.y = _arg2.properties.y; _pageHolder.z = _arg2.properties.z; _pageHolder.rotationX = _arg2.properties.rotationX; _pageHolder.rotationY = _arg2.properties.rotationY; _pageHolder.rotationZ = _arg2.properties.rotationZ; }; _arg1.scene.addChild(_pageHolder); _buttons = new Array(); for each (_local3 in _arg2.buttons.elements()) { _buttons.push({label:_local3.valueOf(), click:_local3.@click}); }; _holder = new DisplayObject3D(); _holder.z = HOLDER_MAX_DISTANCE; _holder.y = HOLDER_VERTICAL_OFFSET; _pageHolder.addChild(_holder); _local4 = (Capabilities.screenResolutionX / 2); _local5 = (Capabilities.screenResolutionY / 2); _local6 = (getChildByName("galleryButton_0") as MovieClip); _local6.visible = false; _local6.buttonID = 0; _local6.alpha = 0; _local6.x = Math.round((_local4 - 318)); _local6.y = Math.round((_local5 - 195)); _local6 = (getChildByName("galleryButton_1") as MovieClip); _local6.visible = false; _local6.buttonID = 1; _local6.alpha = 0; _local6.x = Math.round((_local4 - 318)); _local6.y = Math.round((_local5 + 305)); _local6 = (getChildByName("galleryButton_2") as MovieClip); _local6.visible = false; _local6.buttonID = 2; _local6.alpha = 0; _local6.x = Math.round((_local4 + 223)); _local6.y = Math.round((_local5 + 305)); _local6 = (getChildByName("galleryButton_3") as MovieClip); _local6.visible = false; _local6.buttonID = 3; _local6.alpha = 0; _local6.x = Math.round((_local4 + 223)); _local6.y = Math.round((_local5 - 195)); addLogo(); _pageHolder.addChild(_mainLogoHolder); } private function onGalleryPlaneOver(_arg1:TemplateEvent):void{ if (!zoomedGalleryPlane){ Tweener.addTween(_arg1.info.plane, {z:-300, time:1.5, transition:"easeOutQuint"}); new TemplateSound("galleryPlaneSound").play(); }; } private function onLogoOver(_arg1:InteractiveScene3DEvent):void{ if (enabled){ _engine.viewport.buttonMode = true; }; } private function onObjectRollOver(_arg1:MouseEvent):void{ _arg1.currentTarget.gotoAndPlay("over"); new TemplateSound("pageButtonSound").play(); } override protected function renderPage():void{ var _local1:Number; var _local2:Number; var _local3:*; var _local4:Number; var _local5:Number; var _local6:Number; if (_cameraMovementAllowed){ _local1 = (root.mouseX - (stage.stageWidth * 0.5)); _local2 = (root.mouseY - (stage.stageHeight * 0.5)); _local3 = (Math.round(Math.sqrt(((_local1 * _local1) + (_local2 * _local2)))) * 0.08); _local4 = (-(_local1) * 0.08); _local5 = (_local2 * 0.08); _local6 = (((_local1 * _local2))>=0) ? -(Math.abs((_local3 * 0.1))) : Math.abs((_local3 * 0.1)); Tweener.addTween(_holder, {rotationY:_local4, rotationX:_local5, rotationZ:_local6, time:1.2, transition:"easeOutCubic"}); }; } private function onGalleryPlaneOut(_arg1:TemplateEvent):void{ if (!zoomedGalleryPlane){ Tweener.addTween(_arg1.info.plane, {z:0, time:1.5, transition:"easeOutQuint"}); }; } private function onGalleryButtonClick(_arg1:MouseEvent):void{ var _local2:TemplateEvent; if (((!(zoomedGalleryPlane)) && ((_arg1.currentTarget.buttonID >= 0)))){ _local2 = TemplateUtils.getTEventFromString(_buttons[_arg1.currentTarget.buttonID].click, true); if (_local2){ dispatchEvent(_local2); }; }; } private function onGalleryPlaneClick(_arg1:TemplateEvent):void{ var _local2:uint; if (!zoomedGalleryPlane){ hideControls(); _local2 = 0; while (_local2 < _planesCollection.length) { if ((_planesCollection[_local2] as DynamicGalleryPlane).imagePlane){ (_planesCollection[_local2] as DynamicGalleryPlane).imagePlane.material.smooth = true; }; _local2++; }; Tweener.addTween(_arg1.info.plane, {z:-100, time:1.5, transition:"easeOutQuint"}); Tweener.addTween(_holder, {x:-(_arg1.info.plane.x), y:-(_arg1.info.plane.y), z:HOLDER_ZOOM_DISTANCE, time:1.5, transition:"easeOutQuart"}); zoomedGalleryPlane = _arg1.info.plane; new TemplateSound("galleryZoomInSound").play(); } else { if (_arg1.info.plane == zoomedGalleryPlane){ showControls(); _local2 = 0; while (_local2 < _planesCollection.length) { if ((_planesCollection[_local2] as DynamicGalleryPlane).imagePlane){ (_planesCollection[_local2] as DynamicGalleryPlane).imagePlane.material.smooth = false; }; _local2++; }; Tweener.addTween(_arg1.info.plane, {z:0, time:1.5, transition:"easeOutQuint"}); Tweener.addTween(_holder, {x:0, y:HOLDER_VERTICAL_OFFSET, z:HOLDER_MAX_DISTANCE, time:1.5, transition:"easeOutQuart"}); zoomedGalleryPlane = null; new TemplateSound("galleryZoomOutSound").play(); } else { Tweener.addTween(_holder, {x:-(_arg1.info.plane.x), y:-(_arg1.info.plane.y), time:1.5, transition:"easeOutQuart"}); Tweener.addTween(zoomedGalleryPlane, {z:0, time:1.5, transition:"easeOutQuint"}); Tweener.addTween(_arg1.info.plane, {z:-100, time:1.5, transition:"easeOutQuint"}); zoomedGalleryPlane = _arg1.info.plane; new TemplateSound("galleryPlaneSound").play(); }; }; } private function createGalleryPlane(_arg1:Number, _arg2:Number, _arg3:Number):void{ var _local4:DynamicGalleryPlane; _local4 = new DynamicGalleryPlane(_holder, (SCALE_INDEX * _planesSequence[_arg1].width), (SCALE_INDEX * _planesSequence[_arg1].height), {x:(_arg2 + ((SCALE_INDEX * _planesSequence[_arg1].width) / 2)), y:(_arg3 - ((SCALE_INDEX * _planesSequence[_arg1].height) / 2)), z:0}, _planesSequence[_arg1].image); _local4.addEventListener("galleryPlaneClick", onGalleryPlaneClick); _local4.addEventListener("galleryPlaneOver", onGalleryPlaneOver); _local4.addEventListener("galleryPlaneOut", onGalleryPlaneOut); _planesCollection.push(_local4); } override public function hide():void{ var _local1:MovieClip; var _local2:Number; var _local3:uint; _local2 = 4; _local3 = 0; while (_local2 >= 0) { _local1 = (getChildByName(("galleryButton_" + _local2.toString())) as MovieClip); if (_local1){ _local1.enabled = false; _local1.buttonMode = false; Tweener.addTween(_local1, {alpha:0, time:1, delay:(_local3 * 0.1), transition:"easeOutQuart"}); }; _local2--; _local3++; }; } private function hideControls():void{ var _local1:MovieClip; var _local2:Number; var _local3:uint; if (_mainLogoHolder){ Tweener.addTween(_mainLogoHolder, {y:2000, time:3, transition:"easeOutQuart"}); }; _local2 = 4; _local3 = 0; while (_local2 >= 0) { _local1 = (getChildByName(("galleryButton_" + _local2.toString())) as MovieClip); if (_local1){ _local1.enabled = false; _local1.buttonMode = false; Tweener.addTween(_local1, {alpha:0, time:1, delay:(_local3 * 0.1), transition:"easeOutQuart"}); }; _local2--; _local3++; }; } private function addGalleryButtons():void{ var _local1:MovieClip; var _local2:uint; _local2 = 0; while (_local2 < 4) { _local1 = (getChildByName(("galleryButton_" + _local2.toString())) as MovieClip); _local1.label.label.text = _buttons[_local2].label; _local1.gotoAndStop(1); _local1.addEventListener(MouseEvent.ROLL_OVER, onObjectRollOver); _local1.addEventListener(MouseEvent.ROLL_OUT, onObjectRollOut); _local1.addEventListener(MouseEvent.CLICK, onGalleryButtonClick); _local1.buttonMode = true; _local1.useHandCursor = true; _local1.visible = true; Tweener.addTween(_local1, {alpha:1, time:1, delay:(_local2 * 0.3), transition:"easeOutQuart"}); _local2++; }; } private function showControls():void{ var _local1:MovieClip; var _local2:Number; if (_mainLogoHolder){ Tweener.addTween(_mainLogoHolder, {y:295, time:1.5, transition:"easeOutQuart"}); }; _local2 = 0; while (_local2 < 4) { _local1 = (getChildByName(("galleryButton_" + _local2.toString())) as MovieClip); _local1.enabled = true; _local1.buttonMode = true; Tweener.addTween(_local1, {alpha:1, time:1, delay:(_local2 * 0.3), transition:"easeOutQuart"}); _local2++; }; } private function onLogoClick(_arg1:InteractiveScene3DEvent):void{ if (enabled){ dispatchEvent(new TemplateEvent("switchPage", [0], true)); }; } private function onLogoOut(_arg1:InteractiveScene3DEvent):void{ if (enabled){ _engine.viewport.buttonMode = false; }; } override public function disable():void{ var _local1:MovieClip; var _local2:uint; var _local3:uint; super.disable(); if (_pageHolder){ if (_holder){ _pageHolder.removeChild(_holder); }; if (_planesCollection){ _local3 = 0; while (_local3 < _planesCollection.length) { (_planesCollection[_local3] as DynamicGalleryPlane).removeEventListener("galleryPlaneClick", onGalleryPlaneClick); (_planesCollection[_local3] as DynamicGalleryPlane).removeEventListener("galleryPlaneOver", onGalleryPlaneOver); (_planesCollection[_local3] as DynamicGalleryPlane).removeEventListener("galleryPlaneOut", onGalleryPlaneOut); (_planesCollection[_local3] as DynamicGalleryPlane).destroy(); _local3++; }; }; if (_holder){ _pageHolder.removeChild(_holder); }; if (_mainLogoHolder){ pageHolder.removeChild(_mainLogoHolder); }; _engine.scene.removeChild(_pageHolder); }; _local2 = 0; while (_local2 < 4) { _local1 = (getChildByName(("galleryButton_" + _local2.toString())) as MovieClip); if (_local1){ removeChild(_local1); }; _local2++; }; } private function onObjectRollOut(_arg1:MouseEvent):void{ _arg1.currentTarget.gotoAndPlay("out"); } override public function show():void{ var _local1:Number; var _local2:Number; var _local3:Number; var _local4:Number; var _local5:uint; _local1 = ((-(SCALE_INDEX) * MAX_WIDTH) / 2); _local2 = ((SCALE_INDEX * MAX_HEIGHT) / 2); _local3 = 0; _local4 = 0; if (TemplateState.getInstance().galleries[_galleryID].images){ _planesSequence = TemplateState.getInstance().galleries[_galleryID].images; _planesCollection = new Array(); _local5 = 0; while (_local5 < _planesSequence.length) { TemplateUtils.callFunctionWithDelay(createGalleryPlane, (_local5 * 0.3), [_local5, _local1, _local2]); _local3 = (_local3 + (SCALE_INDEX * (_planesSequence[_local5].width + HORIZONTAL_SPACING))); _local1 = (_local1 + (SCALE_INDEX * (_planesSequence[_local5].width + HORIZONTAL_SPACING))); if ((((_local5 < (_planesSequence.length - 1))) && (((_local3 + (SCALE_INDEX * _planesSequence[(_local5 + 1)].width)) > (SCALE_INDEX * MAX_WIDTH))))){ _local1 = ((-(SCALE_INDEX) * MAX_WIDTH) / 2); _local3 = 0; _local4 = (_local4 + (SCALE_INDEX * (_planesSequence[_local5].height + VERTICAL_SPACING))); _local2 = (_local2 - (SCALE_INDEX * (_planesSequence[_local5].height + VERTICAL_SPACING))); if ((((_local5 < (_planesSequence.length - 1))) && (((_local4 + (SCALE_INDEX * _planesSequence[(_local5 + 1)].height)) > (SCALE_INDEX * MAX_HEIGHT))))){ break; }; }; _local5++; }; }; TemplateUtils.callFunctionWithDelay(addGalleryButtons, 3); } } }//package tm.template.pages
Section 175
//SplashPage (tm.template.pages.SplashPage) package tm.template.pages { import org.papervision3d.materials.utils.*; import tm.com.*; import caurina.transitions.*; import tm.template.*; import org.papervision3d.core.render.material.*; import flash.display.*; import flash.geom.*; import org.papervision3d.core.layers.*; import org.papervision3d.objects.*; import org.papervision3d.materials.*; import br.com.stimuli.loading.*; import org.papervision3d.events.*; import flash.text.*; import com.adobe.crypto.*; import org.papervision3d.objects.primitives.*; import org.papervision3d.lights.*; import org.papervision3d.materials.shadematerials.*; public class SplashPage extends TemplatePage { private var _textHolder:DisplayObject3D; public var crossPlane:CrossPlane; private var _planesHolder:DisplayObject3D; private var _cameraMovementAllowed:Boolean;// = false private var _sloganHolder:DisplayObject3D; private var _overMenuFlag:Boolean;// = false private var _sloganMaterial:MovieMaterial; private var _isLogoMoving:Boolean;// = false private var _material:MovieMaterial; private var _images:Array; public var sloganLetter:SloganLetter; private var _cubeMat:FlatShadeMaterial; private var _primitive1:Plane; private var _primitive2:Plane; private var _primitive4:Plane; private var _holder:DisplayObject3D; private var _wCubeMat:FlatShadeMaterial; private var _logoHolder:DisplayObject3D; private var _primitive3:Plane; private var _companyNamePlanes:Array; public var companyNameLetter:CompanyNameLetter; public var dataCollection:Object; public static const SLOGAN_OFFSET_X:Number = 1.3; public static const COMPANY_NAME_OFFSET_X:Number = 3; public function SplashPage(){ _overMenuFlag = false; _isLogoMoving = false; _cameraMovementAllowed = false; super(); } override public function init(_arg1:PagesEngine, _arg2:Object=null):void{ var _local3:Array; var _local4:XML; var _local5:Array; var _local6:uint; var _local7:String; var _local8:Number; var _local9:Number; var _local10:Array; var _local11:BulkLoader; var _local12:*; var _local13:Bitmap; var _local14:PointLight3D; var _local15:MaterialsList; var _local16:MaterialsList; var _local17:Sphere; var _local18:Cube; var _local19:Cube; var _local20:Cube; var _local21:Cube; var _local22:ColorMaterial; var _local23:Plane; var _local24:EffectLayer; var _local25:EffectLayer; var _local26:Number; var _local27:Number; var _local28:uint; var _local29:*; var _local30:MovieMaterial; var _local31:Plane; _engine = _arg1; _local3 = new Array(); for each (_local4 in _arg2.texts.elements()) { _local3.push(_local4.valueOf()); }; dataCollection = {tlabels:_local3, targetCoordinates:[{x:563, y:453}, {x:299, y:648}, {x:395, y:109}, {x:114, y:305}]}; _local5 = new Array(); _local6 = 0; while (_local6 < TemplateState.getInstance().galleries.length) { _local5.push(TemplateState.getInstance().galleries[_local6].name); _local6++; }; dataCollection.labels = _local5; _pageHolder = new DisplayObject3D(); if (_arg2){ _pageHolder.x = _arg2.properties.x; _pageHolder.y = _arg2.properties.y; _pageHolder.z = _arg2.properties.z; _pageHolder.rotationX = _arg2.properties.rotationX; _pageHolder.rotationY = _arg2.properties.rotationY; _pageHolder.rotationZ = _arg2.properties.rotationZ; }; _arg1.scene.addChild(_pageHolder); _holder = new DisplayObject3D(); _pageHolder.addChild(_holder); _planesHolder = new DisplayObject3D(); _holder.addChild(_planesHolder); removeChild(crossPlane); _local7 = TemplateState.getInstance().settings["companyName"]; _local8 = companyNameLetter.width; _local9 = -1; removeChild(companyNameLetter); _local10 = new Array(); for each (_local4 in _arg2.images.elements()) { _local10.push({url:_local4.@url.toString(), click:_local4.@click.toString()}); }; _local11 = BulkLoader.getLoader("mainLoader"); _local12 = addChild(new CrossPlane()); _local13 = _local11.getBitmap(MD5.hash(_local10[0].url)); if (_local13){ _local12.crossPlaneImage.imageHolder.addChild(_local13); _local12.crossPlaneImage2.imageHolder.addChild(_local13); }; _local12.scrollRect = new Rectangle(0, 0, 116, 240); _material = new MovieMaterial(_local12, false, true); _material.interactive = true; _material.doubleSided = false; _material.smooth = true; _primitive1 = new Plane(_material, 116, 240, 3, 3); _primitive1.rotationZ = 45; _primitive1.x = 140; _primitive1.y = -140; _primitive1.rotationY = 270; _primitive1.extra = {targetX:dataCollection.targetCoordinates[0].x, targetY:dataCollection.targetCoordinates[0].y, text:dataCollection.tlabels[0], click:_local10[0].click}; _planesHolder.addChild(_primitive1); removeChild(_local12); _local12 = addChild(new CrossPlane()); _local13 = _local11.getBitmap(MD5.hash(_local10[1].url)); if (_local13){ _local12.crossPlaneImage.imageHolder.addChild(_local13); _local12.crossPlaneImage2.imageHolder.addChild(_local13); }; _local12.scrollRect = new Rectangle(0, 0, 116, 240); _material = new MovieMaterial(_local12, false, true); _material.interactive = true; _material.doubleSided = false; _material.smooth = true; _primitive2 = new Plane(_material, 116, 240, 3, 3); _primitive2.rotationZ = -45; _primitive2.x = -140; _primitive2.y = -140; _primitive2.rotationY = 270; _primitive2.extra = {targetX:dataCollection.targetCoordinates[1].x, targetY:dataCollection.targetCoordinates[1].y, text:dataCollection.tlabels[1], click:_local10[1].click}; _planesHolder.addChild(_primitive2); removeChild(_local12); _local12 = addChild(new CrossPlane()); _local13 = _local11.getBitmap(MD5.hash(_local10[2].url)); if (_local13){ _local12.crossPlaneImage.imageHolder.addChild(_local13); _local12.crossPlaneImage2.imageHolder.addChild(_local13); }; _local12.scrollRect = new Rectangle(0, 0, 116, 240); _material = new MovieMaterial(_local12, false, true); _material.interactive = true; _material.doubleSided = false; _material.smooth = true; _primitive3 = new Plane(_material, 116, 240, 3, 3); _primitive3.rotationZ = 135; _primitive3.x = 140; _primitive3.y = 140; _primitive3.rotationY = 270; _primitive3.extra = {targetX:dataCollection.targetCoordinates[2].x, targetY:dataCollection.targetCoordinates[2].y, text:dataCollection.tlabels[2], click:_local10[2].click}; _planesHolder.addChild(_primitive3); removeChild(_local12); _local12 = addChild(new CrossPlane()); _local13 = _local11.getBitmap(MD5.hash(_local10[3].url)); if (_local13){ _local12.crossPlaneImage.imageHolder.addChild(_local13); _local12.crossPlaneImage2.imageHolder.addChild(_local13); }; _local12.scrollRect = new Rectangle(0, 0, 116, 240); _material = new MovieMaterial(_local12, false, true); _material.interactive = true; _material.doubleSided = false; _material.smooth = true; _primitive4 = new Plane(_material, 116, 240, 3, 3); _primitive4.rotationZ = -135; _primitive4.x = -140; _primitive4.y = 140; _primitive4.rotationY = 270; _primitive4.extra = {targetX:dataCollection.targetCoordinates[3].x, targetY:dataCollection.targetCoordinates[3].y, text:dataCollection.tlabels[3], click:_local10[3].click}; _planesHolder.addChild(_primitive4); removeChild(_local12); _primitive1.addEventListener(InteractiveScene3DEvent.OBJECT_PRESS, onPlanePress); _primitive1.addEventListener(InteractiveScene3DEvent.OBJECT_OVER, onPlaneOver); _primitive1.addEventListener(InteractiveScene3DEvent.OBJECT_OUT, onPlaneOut); _primitive2.addEventListener(InteractiveScene3DEvent.OBJECT_PRESS, onPlanePress); _primitive2.addEventListener(InteractiveScene3DEvent.OBJECT_OVER, onPlaneOver); _primitive2.addEventListener(InteractiveScene3DEvent.OBJECT_OUT, onPlaneOut); _primitive3.addEventListener(InteractiveScene3DEvent.OBJECT_PRESS, onPlanePress); _primitive3.addEventListener(InteractiveScene3DEvent.OBJECT_OVER, onPlaneOver); _primitive3.addEventListener(InteractiveScene3DEvent.OBJECT_OUT, onPlaneOut); _primitive4.addEventListener(InteractiveScene3DEvent.OBJECT_PRESS, onPlanePress); _primitive4.addEventListener(InteractiveScene3DEvent.OBJECT_OVER, onPlaneOver); _primitive4.addEventListener(InteractiveScene3DEvent.OBJECT_OUT, onPlaneOut); _material = null; _logoHolder = new Plane(new ColorMaterial(0xFFFFFF, 0)); _logoHolder.y = 25; _logoHolder.z = 10; _logoHolder.visible = false; _holder.addChild(_logoHolder); _local14 = new PointLight3D(); _cubeMat = new FlatShadeMaterial(_local14, 0xCAFC00, 0x9ABF00); _wCubeMat = new FlatShadeMaterial(_local14, 0xFFFFFF, 0xBFBFBF); _local15 = new MaterialsList({all:_cubeMat}); _local16 = new MaterialsList({all:_wCubeMat}); _local17 = new Sphere(_cubeMat, 5, 16, 16); _local18 = new Cube(_local15, 10, 10, 21); _local18.rotationZ = 45; _local18.x = 12; _local18.y = -12; _local19 = new Cube(_local15, 10, 10, 21); _local19.rotationZ = -45; _local19.x = -12; _local19.y = -12; _local20 = new Cube(_local16, 10, 10, 21); _local20.rotationZ = 135; _local20.x = 12; _local20.y = 12; _local21 = new Cube(_local15, 10, 10, 21); _local21.rotationZ = -135; _local21.x = -12; _local21.y = 12; _logoHolder.addChild(_local17); _logoHolder.addChild(_local18); _logoHolder.addChild(_local19); _logoHolder.addChild(_local20); _logoHolder.addChild(_local21); _local22 = new ColorMaterial(0, 0, true); _local23 = new Plane(_local22, 100, 120); _local23.name = "logoPlane"; _local23.z = 10; _holder.addChild(_local23); _local23.addEventListener(InteractiveScene3DEvent.OBJECT_OVER, onLogoOver); _local23.addEventListener(InteractiveScene3DEvent.OBJECT_OUT, onLogoOut); _local24 = TemplateState.getInstance().effectLayers["fx1"]; _cubeMat.renderLayer = _local24; _wCubeMat.renderLayer = _local24; _local25 = TemplateState.getInstance().effectLayers["fx2"]; _textHolder = new Plane(new ColorMaterial(0xFFFFFF, 0)); _textHolder.y = -16; _textHolder.z = 0; _textHolder.x = 0; _holder.addChild(_textHolder); _companyNamePlanes = new Array(); _local26 = 0; _local27 = 0; _local28 = 0; while (_local28 < _local7.length) { _local29 = addChild(new CompanyNameLetter()); _local29.letter.text = _local7.charAt(_local28); _local29.alpha = 0; _local30 = new MovieMaterial(_local29, true, true); _local30.renderLayer = _local25; _local30.smooth = true; _local31 = new Plane(_local30, _local29.width, _local29.height); _local31.visible = false; _local31.x = _local26; _local26 = (_local26 + ((_local29.letter as TextField).textWidth + _local9)); _local31.z = -200; _textHolder.addChild(_local31); _local31.visible = true; removeChild(_local29); _companyNamePlanes.push(_local31); _local28++; }; _local28 = 0; while (_local28 < _companyNamePlanes.length) { _companyNamePlanes[_local28].x = (_companyNamePlanes[_local28].x - (((_local26 / 2) - (_local8 / 2)) + COMPANY_NAME_OFFSET_X)); _local28++; }; sloganLetter.letter.text = TemplateState.getInstance().settings["slogan"]; sloganLetter.letter.width = (sloganLetter.letter.textWidth + 5); sloganLetter.alpha = 0; _sloganMaterial = new MovieMaterial(sloganLetter, true, true); _sloganMaterial.smooth = true; _sloganHolder = new Plane(_sloganMaterial, sloganLetter.width, sloganLetter.height); _sloganHolder.x = SLOGAN_OFFSET_X; _sloganHolder.y = -40; _sloganHolder.z = 500; _holder.addChild(_sloganHolder); removeChild(sloganLetter); } private function onLogoOver(_arg1:InteractiveScene3DEvent):void{ if (enabled){ if (!_isLogoMoving){ _isLogoMoving = true; Tweener.addTween(_logoHolder, {rotationX:360, z:-100, time:1, transition:"easeOutQuint", onComplete:onLogoMoveComplete}); }; }; } private function onPlaneOver(_arg1:InteractiveScene3DEvent):void{ var _local2:Plane; var _local3:MovieClip; if (enabled){ _local2 = (_arg1.target as Plane); _local3 = ((_local2.material as MovieMaterial).movie as MovieClip); _local3.gotoAndPlay("over"); _engine.viewport.buttonMode = true; Tweener.addTween(_local2, {z:-140, time:1, delay:0.1, transition:"easeOutQuart"}); new TemplateSound("splashPlanesSound").play(); if (((((_local2.extra) && (_local2.extra.targetX))) && (_local2.extra.targetY))){ dispatchEvent(new TemplateEvent("showCrossMenuTooltip", _local2.extra, true)); }; }; } override protected function renderPage():void{ var _local1:Number; var _local2:Number; var _local3:Number; var _local4:*; var _local5:Number; var _local6:Number; var _local7:Number; if (_cameraMovementAllowed){ _local1 = 0; _local2 = (root.mouseX - (stage.stageWidth * 0.5)); _local3 = (root.mouseY - (stage.stageHeight * 0.5)); if (!_overMenuFlag){ _local1 = ((Math.round(Math.sqrt(((_local2 * _local2) + (_local3 * _local3)))) * 0.1) - 50); if (_local1 > 20){ _local1 = 20; }; }; _local4 = (Math.round(Math.sqrt(((_local2 * _local2) + (_local3 * _local3)))) * 0.1); _local5 = (-(_local2) * 0.1); _local6 = (_local3 * 0.1); _local7 = (((_local2 * _local3))>=0) ? -(Math.abs((_local4 * 0.1))) : Math.abs((_local4 * 0.1)); Tweener.addTween(_holder, {rotationY:_local5, rotationX:_local6, rotationZ:_local7, time:1.2, transition:"easeOutCubic"}); Tweener.addTween(_primitive1, {rotationX:_local1, time:0.2, transition:"easeInOutCubic"}); Tweener.addTween(_primitive2, {rotationX:_local1, time:0.2, transition:"easeInOutCubic"}); Tweener.addTween(_primitive3, {rotationX:_local1, time:0.2, transition:"easeInOutCubic"}); Tweener.addTween(_primitive4, {rotationX:_local1, time:0.2, transition:"easeInOutCubic"}); }; } private function onStartAnimationComplete():void{ _cameraMovementAllowed = true; _isLogoMoving = false; } private function sloganMoved():void{ _sloganMaterial.animated = false; } private function onPlaneOut(_arg1:InteractiveScene3DEvent):void{ var _local2:Plane; var _local3:MovieClip; if (enabled){ _local2 = (_arg1.target as Plane); _local3 = ((_local2.material as MovieMaterial).movie as MovieClip); _local3.gotoAndPlay("out"); _engine.viewport.buttonMode = false; Tweener.addTween(_local2, {z:0, time:1, delay:0.1, transition:"easeInOutQuart"}); dispatchEvent(new TemplateEvent("hideCrossMenuTooltip", {}, true)); }; } private function onLogoMoveComplete():void{ _isLogoMoving = false; } private function onPlanePress(_arg1:InteractiveScene3DEvent):void{ var _local2:Plane; var _local3:TemplateEvent; if (enabled){ _local2 = (_arg1.target as Plane); _local3 = TemplateUtils.getTEventFromString(_local2.extra.click, true); if (_local3){ dispatchEvent(_local3); }; dispatchEvent(new TemplateEvent("hideCrossMenuTooltip", {}, true)); }; } private function companyNamePlanesMoved():void{ var _local1:uint; _local1 = 0; while (_local1 < _companyNamePlanes.length) { ((_companyNamePlanes[_local1] as Plane).material as MovieMaterial).animated = false; _local1++; }; } private function onLogoOut(_arg1:InteractiveScene3DEvent):void{ if (enabled){ Tweener.addTween(_logoHolder, {rotationX:720, z:10, time:2.2, transition:"easeOutBack", onComplete:onLogoMoveComplete}); _isLogoMoving = false; }; } override public function disable():void{ var _local1:DisplayObject3D; var _local2:uint; super.disable(); if (_pageHolder){ if (((((((_primitive1) && (_primitive2))) && (_primitive3))) && (_primitive4))){ (_primitive1.material as MovieMaterial).animated = false; (_primitive1.material as MovieMaterial).smooth = false; (_primitive2.material as MovieMaterial).animated = false; (_primitive2.material as MovieMaterial).smooth = false; (_primitive3.material as MovieMaterial).animated = false; (_primitive3.material as MovieMaterial).smooth = false; (_primitive4.material as MovieMaterial).animated = false; (_primitive4.material as MovieMaterial).smooth = false; _primitive1.removeEventListener(InteractiveScene3DEvent.OBJECT_PRESS, onPlanePress); _primitive1.removeEventListener(InteractiveScene3DEvent.OBJECT_OVER, onPlaneOver); _primitive1.removeEventListener(InteractiveScene3DEvent.OBJECT_OUT, onPlaneOut); _primitive2.removeEventListener(InteractiveScene3DEvent.OBJECT_PRESS, onPlanePress); _primitive2.removeEventListener(InteractiveScene3DEvent.OBJECT_OVER, onPlaneOver); _primitive2.removeEventListener(InteractiveScene3DEvent.OBJECT_OUT, onPlaneOut); _primitive3.removeEventListener(InteractiveScene3DEvent.OBJECT_PRESS, onPlanePress); _primitive3.removeEventListener(InteractiveScene3DEvent.OBJECT_OVER, onPlaneOver); _primitive3.removeEventListener(InteractiveScene3DEvent.OBJECT_OUT, onPlaneOut); _primitive4.removeEventListener(InteractiveScene3DEvent.OBJECT_PRESS, onPlanePress); _primitive4.removeEventListener(InteractiveScene3DEvent.OBJECT_OVER, onPlaneOver); _primitive4.removeEventListener(InteractiveScene3DEvent.OBJECT_OUT, onPlaneOut); _planesHolder.removeChild(_primitive1); _planesHolder.removeChild(_primitive2); _planesHolder.removeChild(_primitive3); _planesHolder.removeChild(_primitive4); }; MaterialManager.unRegisterMaterial(_cubeMat); MaterialManager.unRegisterMaterial(_wCubeMat); _cubeMat = null; _wCubeMat = null; if (_sloganMaterial){ _sloganMaterial.smooth = false; MaterialManager.unRegisterMaterial(_sloganMaterial); _sloganMaterial = null; }; if (_holder){ _holder.removeChild(_planesHolder); _local1 = _holder.getChildByName("logoPlane"); _local1.removeEventListener(InteractiveScene3DEvent.OBJECT_OVER, onLogoOver); _local1.removeEventListener(InteractiveScene3DEvent.OBJECT_OUT, onLogoOut); _holder.removeChild(_local1); _local2 = 0; while (_local2 < _companyNamePlanes.length) { ((_companyNamePlanes[_local2] as Plane).material as MovieMaterial).smooth = false; _textHolder.removeChild((_companyNamePlanes[_local2] as Plane)); _local2++; }; _holder.removeChild(_logoHolder); _holder.removeChild(_textHolder); _holder.removeChild(_sloganHolder); }; _engine.scene.removeChild(_pageHolder); }; parent.removeChild(this); } override public function show():void{ var _local1:uint; var _local2:Plane; _logoHolder.visible = true; Tweener.addTween(_logoHolder, {rotationY:360, time:2, transition:"easeOutQuint"}); Tweener.addTween(_logoHolder, {rotationZ:360, time:2, delay:0.3, transition:"easeOutQuint", onComplete:onStartAnimationComplete}); TemplateUtils.callFunctionWithDelay(companyNamePlanesMoved, (_companyNamePlanes.length * 0.2)); _local1 = 0; while (_local1 < _companyNamePlanes.length) { _local2 = (_companyNamePlanes[_local1] as Plane); Tweener.addTween((_local2.material as MovieMaterial).movie, {alpha:1, time:0.3, delay:(_local1 * 0.2), transition:"linear"}); Tweener.addTween(_local2, {z:0, time:0.3, delay:(_local1 * 0.2), transition:"easeOutElastic"}); _local1++; }; Tweener.addTween((_sloganHolder.material as MovieMaterial).movie, {alpha:1, time:2, delay:1, transition:"linear"}); Tweener.addTween(_sloganHolder, {z:0, rotationX:360, time:2, delay:1, transition:"easeOutQuint", onComplete:sloganMoved}); Tweener.addTween(_primitive1, {rotationY:0, time:3, delay:0.1, transition:"easeOutElastic"}); Tweener.addTween(_primitive2, {rotationY:0, time:3, delay:0.3, transition:"easeOutElastic"}); Tweener.addTween(_primitive3, {rotationY:0, time:3, delay:0.2, transition:"easeOutElastic"}); Tweener.addTween(_primitive4, {rotationY:0, time:3, delay:0.4, transition:"easeOutElastic"}); Tweener.addTween(_logoHolder, {rotationY:360, time:4, delay:1, transition:"easeOutQuint"}); Tweener.addTween(_logoHolder, {rotationZ:360, time:2, delay:1.5, transition:"easeInOutQuint", onComplete:onStartAnimationComplete}); } } }//package tm.template.pages
Section 176
//BitmapBackgroundFill (tm.template.BitmapBackgroundFill) package tm.template { import flash.display.*; import flash.geom.*; public class BitmapBackgroundFill extends MovieClip { private var backgroundTileBitmap:BitmapData; public var backgroundTileClip:MovieClip; public var tile:MovieClip; public function BitmapBackgroundFill(){ backgroundTileClip = (getChildByName("tile") as MovieClip); if (backgroundTileClip){ backgroundTileBitmap = new BitmapData(backgroundTileClip.width, backgroundTileClip.height, false); backgroundTileBitmap.draw(backgroundTileClip); removeChild(backgroundTileClip); }; resize(); } public function resize(_arg1:Number=undefined, _arg2:Number=undefined):void{ if (!_arg1){ _arg1 = stage.stageWidth; }; if (!_arg2){ _arg2 = stage.stageHeight; }; if (backgroundTileBitmap){ this.graphics.clear(); this.graphics.beginBitmapFill(backgroundTileBitmap, new Matrix(), true); this.graphics.drawRect(0, 0, _arg1, _arg2); this.graphics.endFill(); }; } } }//package tm.template
Section 177
//MenuButton (tm.template.MenuButton) package tm.template { import flash.events.*; import tm.com.*; import flash.display.*; import flash.text.*; public class MenuButton extends MovieClip { public var labels2:MovieClip; private var isOver:Boolean;// = false private var _buttonID:uint; public var label:MovieClip; private var _targetPage:int;// = -1 public var labels:MovieClip; public function MenuButton(){ _targetPage = -1; isOver = false; super(); } public function init(_arg1:uint):void{ var _local2:String; _buttonID = _arg1; _local2 = TemplateState.getInstance().menu[_buttonID].label; setAndCenterLabel(label.label, _local2); setAndCenterLabel(labels.l1.label, _local2); setAndCenterLabel(labels.l2.label, _local2); setAndCenterLabel(labels.l3.label, _local2); setAndCenterLabel(labels.l4.label, _local2); setAndCenterLabel(labels2.l1.label, _local2); setAndCenterLabel(labels2.l2.label, _local2); setAndCenterLabel(labels2.l3.label, _local2); setAndCenterLabel(labels2.l4.label, _local2); if (TemplateState.getInstance().menu[_buttonID].targetPage.toString().length > 0){ _targetPage = TemplateState.getInstance().menu[_buttonID].targetPage; }; addEventListener(MouseEvent.CLICK, onButtonClick); addEventListener(MouseEvent.ROLL_OVER, onButtonOver); addEventListener(MouseEvent.ROLL_OUT, onButtonOut); this.buttonMode = true; this.useHandCursor = true; } private function onButtonClick(_arg1:MouseEvent):void{ var _local2:TemplateEvent; if (_targetPage != -1){ dispatchEvent(new TemplateEvent("switchPage", [_targetPage], true)); } else { if (TemplateState.getInstance().menu[_buttonID].click){ _local2 = TemplateUtils.getTEventFromString(TemplateState.getInstance().menu[_buttonID].click, true); if (_local2){ dispatchEvent(_local2); }; }; }; } private function setAndCenterLabel(_arg1:TextField, _arg2:String):void{ _arg1.text = TemplateState.getInstance().menu[_buttonID].label; _arg1.x = Math.round(((_arg1.width / 2) - (_arg1.textWidth / 2))); } private function onButtonOver(_arg1:MouseEvent):void{ if (_targetPage != -1){ if (((!((_targetPage == TemplateState.getInstance().currentTemplatePage))) || (!(TemplateMenu.getInstance().selectedMenuButton)))){ rollOver(); }; } else { rollOver(); }; } public function rollOut():void{ if (isOver){ gotoAndPlay("out"); isOver = false; }; } private function onButtonOut(_arg1:MouseEvent):void{ if (_targetPage != -1){ if (((!((_targetPage == TemplateState.getInstance().currentTemplatePage))) || (!(TemplateMenu.getInstance().selectedMenuButton)))){ rollOut(); }; } else { rollOut(); }; } public function get targetPage():int{ return (_targetPage); } public function rollOver():void{ if (!isOver){ gotoAndPlay("over"); isOver = true; new TemplateSound("topMenuButtonSound").play(); }; } } }//package tm.template
Section 178
//PagesEngine (tm.template.PagesEngine) package tm.template { import flash.events.*; import tm.com.*; import caurina.transitions.*; import org.papervision3d.view.*; import flash.display.*; import org.papervision3d.core.layers.*; import flash.filters.*; import org.papervision3d.render.*; import org.papervision3d.core.effects.*; import tm.template.pages.*; import org.papervision3d.scenes.*; import org.papervision3d.cameras.*; import org.ascollada.utils.*; import flash.system.*; public class PagesEngine extends Sprite { public var camera:FreeCamera3D; private var _pagesIsSwitching:Boolean;// = false private var _currentTemplatePage:TemplatePage; public var scene:Scene3D; public var viewport:Viewport3D; public var renderer:BasicRenderEngine; public var fps:FPS; public function PagesEngine(){ var _local1:EffectLayer; var _local2:EffectLayer; _pagesIsSwitching = false; super(); viewport = new Viewport3D(Capabilities.screenResolutionX, Capabilities.screenResolutionY, false, true); addChild(viewport); scene = new Scene3D(); camera = new FreeCamera3D(); camera.zoom = 11; camera.focus = 100; renderer = new BasicRenderEngine(); _local1 = new EffectLayer(); viewport.addRenderLayer(_local1); _local1.addEffect(new LayerEffect(new GlowFilter(0xCAFC00, 1, 5, 5, 0.5, 2))); TemplateState.getInstance().effectLayers["fx1"] = _local1; _local2 = new EffectLayer(); viewport.addRenderLayer(_local2); _local2.addEffect(new LayerEffect(new GlowFilter(0xFFFFFF, 0.2, 2, 2, 2, 1))); TemplateState.getInstance().effectLayers["fx2"] = _local2; } public function switchPage(_arg1:Number):void{ var _local2:Array; var _local3:uint; var _local4:TemplatePage; var _local5:TemplatePage; _local2 = TemplateState.getInstance().pages; _local3 = TemplateState.getInstance().currentTemplatePage; if ((((((((((_arg1 >= 0)) && (!((_arg1 == _local3))))) || (!(_currentTemplatePage)))) && (!(_pagesIsSwitching)))) && (_local2[_arg1]))){ _pagesIsSwitching = true; if (_currentTemplatePage){ _local5 = _currentTemplatePage; _local5.hide(); TemplateUtils.callFunctionWithDelay(_local5.disable, 2); TemplateUtils.callFunctionWithDelay(new TemplateSound("pagesSwitchingSound").play, 2.1); }; _local4 = addNewPage(_local2[_arg1].type, _local2[_arg1], true); _local4.show(); _local4.pageHolder.moveBackward(1000); Tweener.addTween(camera, {x:_local4.pageHolder.x, y:_local4.pageHolder.y, z:_local4.pageHolder.z, transition:"easeInOutQuint", time:4}); Tweener.addTween(camera, {rotationX:_local4.pageHolder.rotationX, rotationY:_local4.pageHolder.rotationY, rotationZ:_local4.pageHolder.rotationZ, transition:"easeInOutQuint", time:4, onComplete:pageSwitchingComplete}); _local4.pageHolder.moveForward(1000); TemplateState.getInstance().previousTemplatePage = _local3; _currentTemplatePage = _local4; TemplateState.getInstance().currentTemplatePage = _arg1; TemplateMenu.getInstance().switchMenuButton(); }; } private function addTemplatePage(_arg1:TemplatePage, _arg2:Object=null):TemplatePage{ addChild(_arg1); _arg1.init(this, _arg2); _arg1.enable(); return (_arg1); } private function addNewPage(_arg1:String, _arg2:Object=null, _arg3:Boolean=true):TemplatePage{ var _local4:Object; var _local5:String; switch (_arg1){ case "splash": return (addTemplatePage(new SplashPageClip(), _arg2)); case "about": return (addTemplatePage(new AboutPageClip(), _arg2)); case "contacts": return (addTemplatePage(new ContactsPageClip(), _arg2)); case "gallery": return (addTemplatePage(new GalleryPageClip(), _arg2)); case "readmore": _local4 = TemplateState.getInstance().readMorePages[TemplateState.getInstance().currentReadMorePage]; if (_local4){ for (_local5 in _local4) { _arg2[_local5] = _local4[_local5]; }; }; return (addTemplatePage(new DynamicPageClip(), _arg2)); case "simple": return (addTemplatePage(new DynamicPageClip(), _arg2)); }; return (null); } public function disableCurrentPage():void{ _currentTemplatePage.disable(); } private function onEnterFrame(_arg1:Event):void{ if (_currentTemplatePage){ _currentTemplatePage.render(); }; renderer.renderScene(scene, camera, viewport); } public function showPages(_arg1:uint=0):void{ var _local2:Array; _local2 = TemplateState.getInstance().pages; if (((_local2) && ((_local2.length > 0)))){ switchPage(_arg1); addEventListener(Event.ENTER_FRAME, onEnterFrame); }; } private function pageSwitchingComplete():void{ _pagesIsSwitching = false; } } }//package tm.template
Section 179
//Template (tm.Template) package tm { import flash.events.*; import tm.com.*; import caurina.transitions.*; import tm.template.*; import flash.display.*; import br.com.stimuli.loading.*; import flash.media.*; import flash.net.*; import flash.utils.*; import com.adobe.crypto.*; import flash.system.*; public class Template extends MovieClip { public var applicationPreloader:MovieClip; private var _galleriesXMLLoaded:Boolean;// = false public var pagesEngine:PagesEngineClip; public var background:BitmapBackgroundFillClip; private var _mainXMLLoaded:Boolean;// = false public var menu:MovieClip; private var _assetsLoaded:Boolean;// = false private var _bulkLoaderErrorCounter:uint;// = 0 public var bgCircle:BackgroundCircle; private var _templateBackgroundSound:TemplateSound; private var _assetsPercentLoaded:Number;// = 0 private var _backgroundSoundChannel:SoundChannel; private var _backgroundSoundTransform:SoundTransform; private var _applicationStarted:Boolean;// = false public var bottomLine:MovieClip; public var tooltipBox:MovieClip; public var bottomButtons:MovieClip; public var startLogoAnimation:MovieClip; public static const TEMPLATE_WIDTH:Number = 780; public static const APPLICATION_PRELOADER_UPDATE_TIME:Number = 1300; public static const TEMPLATE_HEIGHT:Number = 800; public static const MAIN_XML_PATH:String = "20361_main.xml"; public static const BACKGROUND_MUSIC_DELAY:Number = 2; public static const GALLERIES_XML_PATH:String = "20361_galleries.xml"; public function Template(){ var _local1:URLLoader; var _local2:URLLoader; var _local3:BulkLoader; var _local4:Timer; _applicationStarted = false; _mainXMLLoaded = false; _galleriesXMLLoaded = false; _assetsLoaded = false; _assetsPercentLoaded = 0; _bulkLoaderErrorCounter = 0; super(); addFrameScript(0, frame1, 9, frame10, 13, frame14, 102, frame103, 109, frame110, 115, frame116, 128, frame129, 134, frame135); stage.align = StageAlign.TOP_LEFT; stage.scaleMode = StageScaleMode.NO_SCALE; stage.addEventListener(Event.RESIZE, appResizeHandler); _local1 = new URLLoader(); _local1.addEventListener(Event.COMPLETE, onMainXMLLoad); _local1.load(new URLRequest(MAIN_XML_PATH)); _local2 = new URLLoader(); _local2.addEventListener(Event.COMPLETE, onGalleryXMLLoad); _local2.load(new URLRequest(GALLERIES_XML_PATH)); addEventListener("showCrossMenuTooltip", showCrossMenuTooltip); addEventListener("hideCrossMenuTooltip", hideCrossMenuTooltip); addEventListener("applicationResize", appResizeHandler); addEventListener("switchFullScreen", switchFullScreen); addEventListener("switchSound", switchSound); addEventListener("switchPage", onSwitchPage); addEventListener("getURL", onGetURL); onApplicationResize(); _local3 = new BulkLoader("mainLoader"); _local3.addEventListener(BulkLoader.COMPLETE, onAssetsLoaded); _local3.addEventListener(BulkLoader.PROGRESS, onAssetsProgress); _local3.addEventListener(BulkLoader.ERROR, onAssetsError); _local4 = new Timer(APPLICATION_PRELOADER_UPDATE_TIME); _local4.addEventListener(TimerEvent.TIMER, appLoadingHandler); _local4.start(); } private function textLinkClick(_arg1:TextEvent):void{ var _local2:TemplateEvent; _local2 = TemplateUtils.getTEventFromString(_arg1.text, true); if (_local2){ dispatchEvent(_local2); }; } private function onApplicationResize():void{ if (background){ (background as BitmapBackgroundFill).resize(); }; if (applicationPreloader){ applicationPreloader.x = 0; Tweener.addTween(applicationPreloader, {y:Math.round(((stage.stageHeight / 2) - (applicationPreloader.height / 2))), time:1, transition:"easeOutQuart"}); applicationPreloader.track.width = stage.stageWidth; }; if (bgCircle){ Tweener.addTween(bgCircle, {x:(stage.stageWidth / 2), y:(stage.stageHeight / 2), time:3, transition:"easeOutCubic"}); }; if (startLogoAnimation){ Tweener.addTween(startLogoAnimation, {x:Math.round((stage.stageWidth / 2)), y:Math.round((stage.stageHeight / 2)), time:1.2, transition:"easeOutCubic"}); }; if (pagesEngine){ Tweener.addTween(pagesEngine, {x:Math.round(((stage.stageWidth / 2) - (Capabilities.screenResolutionX / 2))), y:Math.round(((stage.stageHeight / 2) - (Capabilities.screenResolutionY / 2))), time:1.2, transition:"easeOutCubic"}); }; if (((menu) && (menu.menuBackground.bg))){ menu.menuBackground.bg.width = stage.stageWidth; if (menu.menuItemsHolder){ menu.menuItemsHolder.x = Math.round(((stage.stageWidth / 2) - (TEMPLATE_WIDTH / 2))); }; }; if (((bottomLine) && (bottomLine.bottomBackground.bg))){ bottomLine.bottomBackground.bg.width = stage.stageWidth; bottomLine.y = Math.ceil((stage.stageHeight - bottomLine.bottomBackground.bg.height)); if (bottomLine.bottomLineText){ bottomLine.bottomLineText.textHolder.addEventListener(TextEvent.LINK, textLinkClick); bottomLine.bottomLineText.textHolder.bottomText.htmlText = TemplateState.getInstance().settings["copyright"]; bottomLine.bottomLineText.x = Math.round(((stage.stageWidth / 2) - (bottomLine.bottomLineText.textHolder.bottomText.textWidth / 2))); }; }; if (bottomButtons){ bottomButtons.x = (stage.stageWidth / 2); bottomButtons.y = (stage.stageHeight - 50); }; } private function onBackgroundSoundUpdate(_arg1:Event):void{ _backgroundSoundTransform = _templateBackgroundSound.soundTransform; _backgroundSoundChannel = _templateBackgroundSound.soundChannel; } private function onSwitchPage(_arg1:TemplateEvent):void{ var _local2:Number; var _local3:Number; if (pagesEngine){ _local2 = _arg1.info[0]; _local3 = _arg1.info[1]; if (_local3 >= 0){ TemplateState.getInstance().currentReadMorePage = _local3; }; (pagesEngine as PagesEngine).switchPage(_local2); }; } private function switchFullScreen(_arg1:Event=null):void{ if (stage.displayState == StageDisplayState.NORMAL){ stage.displayState = StageDisplayState.FULL_SCREEN; } else { stage.displayState = StageDisplayState.NORMAL; }; } private function switchSound(_arg1:Event=null):void{ _backgroundSoundTransform = _templateBackgroundSound.soundTransform; _backgroundSoundChannel = _templateBackgroundSound.soundChannel; if (TemplateState.getInstance().soundEnabled){ bottomButtons.soundSwitch.soundClip.gotoAndPlay("hide"); TemplateState.getInstance().soundEnabled = false; Tweener.addTween(_backgroundSoundTransform, {volume:0, time:3, onUpdate:updateSoundVolume}); } else { bottomButtons.soundSwitch.soundClip.gotoAndPlay("show"); TemplateState.getInstance().soundEnabled = true; Tweener.addTween(_backgroundSoundTransform, {volume:1, time:1.5, onUpdate:updateSoundVolume, transition:"easeInQuart"}); }; } private function onMainXMLLoad(_arg1:Event):void{ var mainData:XML; var parsedSettings:Object; var element:XML; var parsedMenuItems:Array; var parsedSounds:Object; var soundID:String; var soundPath:String; var soundVolume:Number; var soundLoops:Number; var skipFromTheStart:Number; var skipAtTheEnd:Number; var soundPanning:Number; var parsedPages:Array; var attributesCollection:Object; var attribute:XML; var page:Object; var imageElement:XML; var imagePath:String; var parsedReadMorePages:Array; var readMorePage:Object; var readMoreImageElement:XML; var readMoreImagePath:String; var event = _arg1; try { mainData = new XML(event.target.data); if (mainData.settings){ parsedSettings = new Object(); for each (element in mainData.settings.children()) { parsedSettings[element.name().toString()] = element.text().toString(); }; TemplateState.getInstance().settings = parsedSettings; }; if (mainData.menu){ parsedMenuItems = new Array(); for each (element in mainData.menu.elements()) { parsedMenuItems.push({label:element.text().toString(), targetPage:element.@targetPage, click:element.@click.toString()}); }; TemplateState.getInstance().menu = parsedMenuItems; }; if (mainData.sounds){ parsedSounds = new Object(); for each (element in mainData.sounds.elements()) { soundID = element.@id; soundPath = element.@url; soundVolume = 1; if (((((((element.@volume) && ((element.@volume.toString().length > 0)))) && ((Number(element.@volume) >= 0)))) && ((Number(element.@volume) < 100)))){ soundVolume = (Number(element.@volume) / 100); }; soundLoops = 0; if (((((((element.@loops) && ((element.@loops.toString().length > 0)))) && ((Number(element.@loops) >= 0)))) && ((Number(element.@loops) < 99999)))){ soundLoops = Number(element.@loops); }; skipFromTheStart = 0; if (((((element.@skipFrom) && ((element.@skipFrom.toString().length > 0)))) && ((Number(element.@skipFrom) >= 0)))){ skipFromTheStart = Number(element.@skipFrom); }; skipAtTheEnd = 0; if (((((element.@skipTo) && ((element.@skipTo.toString().length > 0)))) && ((Number(element.@skipTo) >= 0)))){ skipAtTheEnd = Number(element.@skipTo); }; soundPanning = 0; if (((((((element.@panning) && ((element.@panning.toString().length > 0)))) && ((Number(element.@panning) >= -100)))) && ((Number(element.@panning) <= 100)))){ soundPanning = (Number(element.@panning) / 100); }; if (((((((soundID) && (soundPath))) && ((soundID.length > 0)))) && ((soundPath.length > 0)))){ BulkLoader.getLoader("mainLoader").add(soundPath, {id:soundID}); parsedSounds[soundID] = {id:soundID, url:soundPath, volume:soundVolume, panning:soundPanning, loops:soundLoops, skipFrom:skipFromTheStart, skipTo:skipAtTheEnd}; }; }; TemplateState.getInstance().sounds = parsedSounds; }; if (mainData.pages){ parsedPages = new Array(); for each (element in mainData.pages.elements()) { attributesCollection = new Object(); for each (attribute in element.attributes()) { attributesCollection[attribute.name().toString()] = attribute.valueOf().toString(); }; page = {type:element.@type.toString(), properties:attributesCollection}; if (element.images){ page.images = element.images; }; for each (imageElement in element.images.elements()) { imagePath = imageElement.@url.toString(); if (((imagePath) && ((imagePath.length > 0)))){ BulkLoader.getLoader("mainLoader").add(imagePath, {id:MD5.hash(imagePath)}); }; }; if (element.texts){ page.texts = element.texts; }; if (element.buttons){ page.buttons = element.buttons; }; if (((element.form) && ((element.form.@configuration.toString().length > 0)))){ BulkLoader.getLoader("mainLoader").add(element.form.@configuration.toString(), {id:MD5.hash(element.form.@configuration)}); page.form = element.form; }; parsedPages.push(page); }; TemplateState.getInstance().pages = parsedPages; }; if (mainData.readMorePages){ parsedReadMorePages = new Array(); for each (element in mainData.readMorePages.elements()) { readMorePage = {}; if (element.images){ readMorePage.images = element.images; }; for each (readMoreImageElement in element.images.elements()) { readMoreImagePath = readMoreImageElement.@url.toString(); if (((readMoreImagePath) && ((readMoreImagePath.length > 0)))){ BulkLoader.getLoader("mainLoader").add(readMoreImagePath, {id:MD5.hash(readMoreImagePath)}); }; }; if (element.texts){ readMorePage.texts = element.texts; }; parsedReadMorePages.push(readMorePage); }; TemplateState.getInstance().readMorePages = parsedReadMorePages; }; if (BulkLoader.getLoader("mainLoader")._itemsTotal > 0){ BulkLoader.getLoader("mainLoader").start(); } else { _assetsPercentLoaded = 1; _assetsLoaded = true; }; _mainXMLLoaded = true; } catch(e:Error) { trace(("Main XML Loading Error: " + e.message)); if (BulkLoader.getLoader("mainLoader")._itemsTotal > 0){ BulkLoader.getLoader("mainLoader").start(); } else { _assetsPercentLoaded = 1; _assetsLoaded = true; }; _mainXMLLoaded = true; return; }; } function frame14(){ onApplicationResize(); } function frame10(){ onApplicationResize(); } private function onApplicationLoaded():void{ applicationPreloader.percentLoaded.visible = false; applicationPreloader.percentLeft.visible = false; Tweener.addTween(applicationPreloader, {x:(stage.stageWidth / 2), width:0, time:0.5, delay:1, transition:"easeInOutExpo"}); Tweener.addTween(applicationPreloader, {height:2, time:0.2, transition:"easeOutQuart"}); TemplateUtils.callFunctionWithDelay(startApplication, 1.4); } function frame1(){ stop(); } private function appResizeHandler(_arg1:Event):void{ onApplicationResize(); } function frame103(){ onApplicationResize(); bgCircle.visible = false; } private function onBottomIconMouseOut(_arg1:MouseEvent):void{ _arg1.currentTarget.gotoAndPlay("out"); } private function updateSoundVolume():void{ _backgroundSoundChannel.soundTransform = _backgroundSoundTransform; } function frame110(){ pagesEngine.showPages(); bgCircle.visible = true; } function frame116(){ initBottomButtons(); } private function showCrossMenuTooltip(_arg1:TemplateEvent):void{ var _local2:Number; tooltipBox.x = Math.round((((stage.stageWidth / 2) - (TEMPLATE_WIDTH / 2)) + _arg1.info.targetX)); tooltipBox.y = Math.round((((stage.stageHeight / 2) - (TEMPLATE_HEIGHT / 2)) + _arg1.info.targetY)); tooltipBox.label.label.autoSize = "left"; tooltipBox.label.label.text = (_arg1.info.text) ? _arg1.info.text : ""; tooltipBox.label.label.x = 0; _local2 = tooltipBox.width; tooltipBox.label.label.x = Math.round((10 - (tooltipBox.label.label.textWidth / 2))); tooltipBox.visible = true; tooltipBox.gotoAndPlay("over"); } private function startApplication():void{ _applicationStarted = true; gotoAndPlay("startApplication"); new TemplateSound("pagesAppearenceSound").play(); TemplateUtils.callFunctionWithDelay(playBackgroundMusic, BACKGROUND_MUSIC_DELAY); } private function hideCrossMenuTooltip(_arg1:TemplateEvent):void{ tooltipBox.gotoAndPlay("out"); } private function onAssetsProgress(_arg1:BulkProgressEvent):void{ _assetsPercentLoaded = _arg1._percentLoaded; } private function onGalleryXMLLoad(_arg1:Event):void{ var galleryData:XML; var parsedGalleryData:Object; var element:XML; var galleryObject:Object; var imagesCollection:Array; var subElement:XML; var imageObject:Object; var event = _arg1; try { galleryData = new XML(event.target.data); parsedGalleryData = new Object(); for each (element in galleryData.elements()) { galleryObject = {galleryID:element.@id.toString(), name:element.@name.toString()}; if (element.elements().length() > 0){ imagesCollection = new Array(); for each (subElement in element.elements()) { imageObject = {width:Number(subElement.@width), height:Number(subElement.@height), image:subElement.@image.toString()}; imagesCollection.push(imageObject); }; galleryObject.images = imagesCollection; }; parsedGalleryData[galleryObject.galleryID] = galleryObject; }; TemplateState.getInstance().galleries = parsedGalleryData; _galleriesXMLLoaded = true; } catch(e:Error) { trace(("Gallery XML Loading Error: " + e.message)); _galleriesXMLLoaded = true; return; }; } function frame129(){ onApplicationResize(); } private function playBackgroundMusic():void{ _templateBackgroundSound = new TemplateSound("templateBackgroundMusic"); _backgroundSoundTransform = _templateBackgroundSound.soundTransform; _backgroundSoundChannel = _templateBackgroundSound.soundChannel; _templateBackgroundSound.play(); _templateBackgroundSound.addEventListener("soundChannelUpdated", onBackgroundSoundUpdate); } function frame135(){ stop(); onApplicationResize(); } public function initBottomButtons():void{ bottomButtons.fullScreenSwitch.addEventListener(MouseEvent.ROLL_OVER, onBottomIconMouseOver); bottomButtons.fullScreenSwitch.addEventListener(MouseEvent.ROLL_OUT, onBottomIconMouseOut); bottomButtons.fullScreenSwitch.addEventListener(MouseEvent.CLICK, switchFullScreen); bottomButtons.fullScreenSwitch.buttonMode = true; bottomButtons.fullScreenSwitch.useHandCursor = true; bottomButtons.soundSwitch.addEventListener(MouseEvent.ROLL_OVER, onBottomIconMouseOver); bottomButtons.soundSwitch.addEventListener(MouseEvent.ROLL_OUT, onBottomIconMouseOut); bottomButtons.soundSwitch.addEventListener(MouseEvent.CLICK, switchSound); bottomButtons.soundSwitch.buttonMode = true; bottomButtons.soundSwitch.useHandCursor = true; } private function onBottomIconMouseOver(_arg1:MouseEvent):void{ _arg1.currentTarget.gotoAndPlay("over"); new TemplateSound("bottomIconSound").play(); } private function onAssetsError(_arg1:BulkErrorEvent):void{ _bulkLoaderErrorCounter++; if (_bulkLoaderErrorCounter >= BulkLoader.getLoader("mainLoader").itemsLoaded){ _assetsPercentLoaded = 1; _assetsLoaded = true; }; } private function onAssetsLoaded(_arg1:Event):void{ _assetsLoaded = true; } private function appLoadingHandler(_arg1:TimerEvent):void{ var _local2:*; var _local3:*; var _local4:Number; var _local5:Number; _local2 = stage.loaderInfo.bytesTotal; _local3 = stage.loaderInfo.bytesLoaded; _local4 = Math.floor(((Math.round(((_local3 * 100) / _local2)) + Math.round((_assetsPercentLoaded * 100))) / 2)); _local5 = ((stage.stageWidth * _local4) / 100); applicationPreloader.percentLoaded.text = (_local4.toString() + "%"); applicationPreloader.percentLeft.text = ((100 - _local4).toString() + "%"); Tweener.addTween(applicationPreloader.percentLoaded, {x:Math.round((_local5 - 30)), time:1, transition:"easeOutQuart"}); Tweener.addTween(applicationPreloader.percentLeft, {x:Math.round((_local5 + 2)), time:1, transition:"easeOutQuart"}); Tweener.addTween(applicationPreloader.status, {width:_local5, time:1, transition:"easeOutQuart"}); if ((((((((_local3 >= _local2)) && (_assetsLoaded))) && (_mainXMLLoaded))) && (_galleriesXMLLoaded))){ Timer(_arg1.currentTarget).stop(); Timer(_arg1.currentTarget).removeEventListener(TimerEvent.TIMER, appLoadingHandler); onApplicationLoaded(); }; } private function onGetURL(_arg1:TemplateEvent):void{ var url:String; var window:String; var request:URLRequest; var event = _arg1; url = event.info[0].toString(); window = event.info[1].toString(); if (((url) && ((url.length > 0)))){ request = new URLRequest(url); try { navigateToURL(request, window); } catch(e:Error) { }; }; } } }//package tm
Section 180
//AboutPageClip (AboutPageClip) package { import tm.template.pages.*; public dynamic class AboutPageClip extends AboutPage { } }//package
Section 181
//BackgroundCircle (BackgroundCircle) package { import flash.display.*; public dynamic class BackgroundCircle extends MovieClip { public function BackgroundCircle(){ addFrameScript(58, frame59); } function frame59(){ stop(); } } }//package
Section 182
//BitmapBackgroundFillClip (BitmapBackgroundFillClip) package { import tm.template.*; public dynamic class BitmapBackgroundFillClip extends BitmapBackgroundFill { } }//package
Section 183
//CompanyNameLetter (CompanyNameLetter) package { import flash.display.*; import flash.text.*; public dynamic class CompanyNameLetter extends MovieClip { public var letter:TextField; } }//package
Section 184
//ContactsPageClip (ContactsPageClip) package { import tm.template.pages.*; public dynamic class ContactsPageClip extends ContactsPage { } }//package
Section 185
//CrossPlane (CrossPlane) package { import flash.events.*; import flash.display.*; public dynamic class CrossPlane extends MovieClip { public var crossPlaneImage2:MovieClip; public var planeButton:MovieClip; public var crossPlaneImage:MovieClip; public function CrossPlane(){ addFrameScript(0, frame1, 7, frame8, 17, frame18); } public function onMouseOver(_arg1:MouseEvent):void{ gotoAndPlay("over"); } function frame18(){ stop(); } public function onMouseOut(_arg1:MouseEvent):void{ gotoAndPlay("out"); } function frame1(){ stop(); planeButton.addEventListener(MouseEvent.MOUSE_OVER, onMouseOver); planeButton.addEventListener(MouseEvent.MOUSE_OUT, onMouseOut); } function frame8(){ stop(); } } }//package
Section 186
//DynamicPageClip (DynamicPageClip) package { import tm.template.pages.*; public dynamic class DynamicPageClip extends DynamicPage { } }//package
Section 187
//GalleryItemPlane (GalleryItemPlane) package { import flash.display.*; public dynamic class GalleryItemPlane extends MovieClip { public var imageBorder:MovieClip; public var imageHolder:MovieClip; } }//package
Section 188
//GalleryPageClip (GalleryPageClip) package { import tm.template.pages.*; public dynamic class GalleryPageClip extends GalleryPage { } }//package
Section 189
//LogoImage (LogoImage) package { import flash.display.*; public dynamic class LogoImage extends MovieClip { } }//package
Section 190
//MenuButtonClip (MenuButtonClip) package { import tm.template.*; public dynamic class MenuButtonClip extends MenuButton { public function MenuButtonClip(){ addFrameScript(0, frame1, 27, frame28); } function frame1(){ stop(); } function frame28(){ stop(); } } }//package
Section 191
//PagesEngineClip (PagesEngineClip) package { import tm.template.*; public dynamic class PagesEngineClip extends PagesEngine { } }//package
Section 192
//SloganLetter (SloganLetter) package { import flash.display.*; import flash.text.*; public dynamic class SloganLetter extends MovieClip { public var letter:TextField; } }//package
Section 193
//SplashPageClip (SplashPageClip) package { import tm.template.pages.*; public dynamic class SplashPageClip extends SplashPage { } }//package

Library Items

Symbol 1 GraphicUsed by:2 10 63 126 128 359
Symbol 2 MovieClipUses:1Used by:4
Symbol 3 MovieClipUsed by:4
Symbol 4 MovieClip {GalleryItemPlane}Uses:2 3
Symbol 5 GraphicUsed by:10 34 48 158
Symbol 6 MovieClipUsed by:7
Symbol 7 MovieClip {main_fla.CrossPlaneImage_73}Uses:6Used by:10
Symbol 8 GraphicUsed by:9 115 126
Symbol 9 MovieClipUses:8Used by:10
Symbol 10 MovieClip {CrossPlane}Uses:1 5 7 9Used by:18
Symbol 11 GraphicUsed by:14 26 46 49 116 360
Symbol 12 FontUsed by:13
Symbol 13 EditableTextUses:12Used by:14
Symbol 14 MovieClip {CompanyNameLetter}Uses:11 13Used by:18
Symbol 15 FontUsed by:16 24 31 40 53 55 56 57 58 59 60 61 62 121 122 123 124 125 137 155 346
Symbol 16 EditableTextUses:15Used by:17
Symbol 17 MovieClip {SloganLetter}Uses:16Used by:18
Symbol 18 MovieClip {SplashPageClip}Uses:10 14 17
Symbol 19 GraphicUsed by:20
Symbol 20 MovieClipUses:19Used by:30 33 36 45
Symbol 21 BitmapUsed by:22
Symbol 22 GraphicUses:21Used by:23
Symbol 23 MovieClipUses:22Used by:30 33 36
Symbol 24 EditableTextUses:15Used by:25
Symbol 25 MovieClip {main_fla.GalleryButtonLabelHolder_65}Uses:24Used by:30
Symbol 26 MovieClipUses:11Used by:30 33 36 45
Symbol 27 GraphicUsed by:28 136 149
Symbol 28 MovieClipUses:27Used by:29 44
Symbol 29 MovieClip {main_fla.GalleryButtonAnimationElementHolder_66}Uses:28Used by:30 33
Symbol 30 MovieClip {main_fla.GalleryButton_left_63}Uses:20 23 25 26 29Used by:37
Symbol 31 EditableTextUses:15Used by:32
Symbol 32 MovieClip {main_fla.GalleryButtonLabelHolder_2_68}Uses:31Used by:33 36
Symbol 33 MovieClip {main_fla.GalleryButton_right_67}Uses:20 32 23 26 29Used by:37
Symbol 34 MovieClipUses:5Used by:35 157
Symbol 35 MovieClip {main_fla.GalleryButton2AnimationElementHolder_70}Uses:34Used by:36
Symbol 36 MovieClip {main_fla.GalleryButton_top_69}Uses:20 32 23 26 35Used by:37
Symbol 37 MovieClip {GalleryPageClip}Uses:30 33 36
Symbol 38 FontUsed by:39 52 54 119 120
Symbol 39 EditableTextUses:38Used by:46
Symbol 40 EditableTextUses:15Used by:46
Symbol 41 BitmapUsed by:42
Symbol 42 GraphicUses:41Used by:43
Symbol 43 MovieClipUses:42Used by:45
Symbol 44 MovieClip {main_fla.CloseButtonAnimationElementHolder_60}Uses:28Used by:45
Symbol 45 MovieClip {main_fla.closeButton_56}Uses:20 43 26 44Used by:46
Symbol 46 MovieClip {main_fla.DynamicPageContents_55}Uses:11 39 40 45Used by:47
Symbol 47 MovieClip {DynamicPageClip}Uses:46
Symbol 48 MovieClipUses:5Used by:50
Symbol 49 MovieClipUses:11Used by:50 116
Symbol 50 MovieClip {main_fla.FormButtonClip_48}Uses:48 49Used by:116
Symbol 51 GraphicUsed by:116
Symbol 52 EditableTextUses:38Used by:116
Symbol 53 EditableTextUses:15Used by:116
Symbol 54 EditableTextUses:38Used by:116
Symbol 55 EditableTextUses:15Used by:116
Symbol 56 EditableTextUses:15Used by:116
Symbol 57 EditableTextUses:15Used by:116
Symbol 58 EditableTextUses:15Used by:116
Symbol 59 EditableTextUses:15Used by:116
Symbol 60 EditableTextUses:15Used by:116
Symbol 61 EditableTextUses:15Used by:116
Symbol 62 EditableTextUses:15Used by:116
Symbol 63 MovieClipUses:1Used by:64
Symbol 64 MovieClipUses:63Used by:115
Symbol 65 MovieClipUsed by:115 126 128
Symbol 66 BitmapUsed by:67
Symbol 67 GraphicUses:66Used by:68
Symbol 68 MovieClipUses:67Used by:115 126 128
Symbol 69 BitmapUsed by:70
Symbol 70 GraphicUses:69Used by:115 126 128
Symbol 71 BitmapUsed by:72
Symbol 72 GraphicUses:71Used by:115 126 128
Symbol 73 BitmapUsed by:74
Symbol 74 GraphicUses:73Used by:115 126 128
Symbol 75 BitmapUsed by:76
Symbol 76 GraphicUses:75Used by:115 126 128
Symbol 77 BitmapUsed by:78
Symbol 78 GraphicUses:77Used by:115 126 128
Symbol 79 BitmapUsed by:80
Symbol 80 GraphicUses:79Used by:115 126 128
Symbol 81 BitmapUsed by:82
Symbol 82 GraphicUses:81Used by:115 126 128
Symbol 83 BitmapUsed by:84
Symbol 84 GraphicUses:83Used by:115 126 128
Symbol 85 BitmapUsed by:86
Symbol 86 GraphicUses:85Used by:115 126 128
Symbol 87 BitmapUsed by:88
Symbol 88 GraphicUses:87Used by:115 126 128
Symbol 89 BitmapUsed by:90
Symbol 90 GraphicUses:89Used by:115 126 128
Symbol 91 BitmapUsed by:92
Symbol 92 GraphicUses:91Used by:115 126 128
Symbol 93 BitmapUsed by:94
Symbol 94 GraphicUses:93Used by:115 126 128
Symbol 95 BitmapUsed by:96
Symbol 96 GraphicUses:95Used by:115 126 128
Symbol 97 BitmapUsed by:98
Symbol 98 GraphicUses:97Used by:115 126 128
Symbol 99 BitmapUsed by:100
Symbol 100 GraphicUses:99Used by:115 126 128
Symbol 101 BitmapUsed by:102
Symbol 102 GraphicUses:101Used by:115 126 128
Symbol 103 BitmapUsed by:104
Symbol 104 GraphicUses:103Used by:115 126 128
Symbol 105 BitmapUsed by:106
Symbol 106 GraphicUses:105Used by:115 126 128
Symbol 107 BitmapUsed by:108
Symbol 108 GraphicUses:107Used by:115 126 128
Symbol 109 BitmapUsed by:110
Symbol 110 GraphicUses:109Used by:115 126 128
Symbol 111 BitmapUsed by:112
Symbol 112 GraphicUses:111Used by:115 126 128
Symbol 113 BitmapUsed by:114
Symbol 114 GraphicUses:113Used by:115 126 128
Symbol 115 MovieClip {main_fla.PageImageClipHolder_3_51}Uses:64 65 8 68 70 72 74 76 78 80 82 84 86 88 90 92 94 96 98 100 102 104 106 108 110 112 114Used by:116
Symbol 116 MovieClip {main_fla.ContactsPageContents_47}Uses:11 50 51 52 53 54 55 56 57 58 59 60 61 62 49 115Used by:117
Symbol 117 MovieClip {ContactsPageClip}Uses:116
Symbol 118 GraphicUsed by:129
Symbol 119 EditableTextUses:38Used by:129
Symbol 120 EditableTextUses:38Used by:129
Symbol 121 EditableTextUses:15Used by:129
Symbol 122 EditableTextUses:15Used by:129
Symbol 123 EditableTextUses:15Used by:129
Symbol 124 EditableTextUses:15Used by:129
Symbol 125 EditableTextUses:15Used by:129
Symbol 126 MovieClip {main_fla.PageImageClipHolder_1_42}Uses:1 65 8 68 70 72 74 76 78 80 82 84 86 88 90 92 94 96 98 100 102 104 106 108 110 112 114Used by:129
Symbol 127 GraphicUsed by:128
Symbol 128 MovieClip {main_fla.PageImageClipHolder_2_45}Uses:1 65 127 68 70 72 74 76 78 80 82 84 86 88 90 92 94 96 98 100 102 104 106 108 110 112 114Used by:129
Symbol 129 MovieClip {main_fla.AboutPageContents_41}Uses:118 119 120 121 122 123 124 125 126 128Used by:130
Symbol 130 MovieClip {AboutPageClip}Uses:129
Symbol 131 BitmapUsed by:132
Symbol 132 GraphicUses:131Used by:133
Symbol 133 MovieClip {LogoImage}Uses:132
Symbol 134 GraphicUsed by:135 363
Symbol 135 MovieClipUses:134Used by:142
Symbol 136 MovieClipUses:27Used by:142
Symbol 137 EditableTextUses:15Used by:138
Symbol 138 MovieClip {main_fla.MenuButtonLabel_36}Uses:137Used by:139 142
Symbol 139 MovieClip {main_fla.MenuButtonLabelSequence_37}Uses:138Used by:142
Symbol 140 GraphicUsed by:141
Symbol 141 MovieClipUses:140Used by:142
Symbol 142 MovieClip {MenuButtonClip}Uses:135 136 138 139 141Used by:365
Symbol 143 BitmapUsed by:144
Symbol 144 GraphicUses:143Used by:145
Symbol 145 MovieClipUses:144Used by:146
Symbol 146 MovieClip {BackgroundCircle}Uses:145Used by:Timeline
Symbol 147 GraphicUsed by:148
Symbol 148 MovieClipUses:147Used by:153
Symbol 149 MovieClipUses:27Used by:153
Symbol 150 FontUsed by:151 152
Symbol 151 EditableTextUses:150Used by:153
Symbol 152 EditableTextUses:150Used by:153
Symbol 153 MovieClip {main_fla.Preloader_1}Uses:148 149 151 152Used by:Timeline
Symbol 154 MovieClip {PagesEngineClip}Used by:Timeline
Symbol 155 EditableTextUses:15Used by:156
Symbol 156 MovieClip {main_fla.TooltipText_6}Uses:155Used by:159
Symbol 157 MovieClip {main_fla.TooltipAnimationElementHolder_7}Uses:34Used by:159
Symbol 158 MovieClipUses:5Used by:159
Symbol 159 MovieClip {main_fla.TooltipBox_5}Uses:156 157 158Used by:Timeline
Symbol 160 BitmapUsed by:161
Symbol 161 GraphicUses:160Used by:337
Symbol 162 BitmapUsed by:163
Symbol 163 GraphicUses:162Used by:337
Symbol 164 BitmapUsed by:165
Symbol 165 GraphicUses:164Used by:337
Symbol 166 BitmapUsed by:167
Symbol 167 GraphicUses:166Used by:337
Symbol 168 BitmapUsed by:169
Symbol 169 GraphicUses:168Used by:337
Symbol 170 BitmapUsed by:171
Symbol 171 GraphicUses:170Used by:337
Symbol 172 BitmapUsed by:173
Symbol 173 GraphicUses:172Used by:337
Symbol 174 BitmapUsed by:175
Symbol 175 GraphicUses:174Used by:337
Symbol 176 BitmapUsed by:177
Symbol 177 GraphicUses:176Used by:337
Symbol 178 BitmapUsed by:179
Symbol 179 GraphicUses:178Used by:337
Symbol 180 BitmapUsed by:181
Symbol 181 GraphicUses:180Used by:337
Symbol 182 BitmapUsed by:183
Symbol 183 GraphicUses:182Used by:337
Symbol 184 BitmapUsed by:185
Symbol 185 GraphicUses:184Used by:337
Symbol 186 BitmapUsed by:187
Symbol 187 GraphicUses:186Used by:337
Symbol 188 BitmapUsed by:189
Symbol 189 GraphicUses:188Used by:337
Symbol 190 BitmapUsed by:191
Symbol 191 GraphicUses:190Used by:337
Symbol 192 BitmapUsed by:193
Symbol 193 GraphicUses:192Used by:337
Symbol 194 BitmapUsed by:195
Symbol 195 GraphicUses:194Used by:337
Symbol 196 BitmapUsed by:197
Symbol 197 GraphicUses:196Used by:337
Symbol 198 BitmapUsed by:199
Symbol 199 GraphicUses:198Used by:337
Symbol 200 BitmapUsed by:201
Symbol 201 GraphicUses:200Used by:337
Symbol 202 BitmapUsed by:203
Symbol 203 GraphicUses:202Used by:337
Symbol 204 BitmapUsed by:205
Symbol 205 GraphicUses:204Used by:337
Symbol 206 BitmapUsed by:207
Symbol 207 GraphicUses:206Used by:337
Symbol 208 BitmapUsed by:209
Symbol 209 GraphicUses:208Used by:337
Symbol 210 BitmapUsed by:211
Symbol 211 GraphicUses:210Used by:337
Symbol 212 BitmapUsed by:213
Symbol 213 GraphicUses:212Used by:337
Symbol 214 BitmapUsed by:215
Symbol 215 GraphicUses:214Used by:337
Symbol 216 BitmapUsed by:217
Symbol 217 GraphicUses:216Used by:337
Symbol 218 BitmapUsed by:219
Symbol 219 GraphicUses:218Used by:337
Symbol 220 BitmapUsed by:221
Symbol 221 GraphicUses:220Used by:337
Symbol 222 BitmapUsed by:223
Symbol 223 GraphicUses:222Used by:337
Symbol 224 BitmapUsed by:225
Symbol 225 GraphicUses:224Used by:337
Symbol 226 BitmapUsed by:227
Symbol 227 GraphicUses:226Used by:337
Symbol 228 BitmapUsed by:229
Symbol 229 GraphicUses:228Used by:337
Symbol 230 BitmapUsed by:231
Symbol 231 GraphicUses:230Used by:337
Symbol 232 BitmapUsed by:233
Symbol 233 GraphicUses:232Used by:337
Symbol 234 BitmapUsed by:235
Symbol 235 GraphicUses:234Used by:337
Symbol 236 BitmapUsed by:237
Symbol 237 GraphicUses:236Used by:337
Symbol 238 BitmapUsed by:239
Symbol 239 GraphicUses:238Used by:337
Symbol 240 BitmapUsed by:241
Symbol 241 GraphicUses:240Used by:337
Symbol 242 BitmapUsed by:243
Symbol 243 GraphicUses:242Used by:337
Symbol 244 BitmapUsed by:245
Symbol 245 GraphicUses:244Used by:337
Symbol 246 BitmapUsed by:247
Symbol 247 GraphicUses:246Used by:337
Symbol 248 BitmapUsed by:249
Symbol 249 GraphicUses:248Used by:337
Symbol 250 BitmapUsed by:251
Symbol 251 GraphicUses:250Used by:337
Symbol 252 BitmapUsed by:253
Symbol 253 GraphicUses:252Used by:337
Symbol 254 BitmapUsed by:255
Symbol 255 GraphicUses:254Used by:337
Symbol 256 BitmapUsed by:257
Symbol 257 GraphicUses:256Used by:337
Symbol 258 BitmapUsed by:259
Symbol 259 GraphicUses:258Used by:337
Symbol 260 BitmapUsed by:261
Symbol 261 GraphicUses:260Used by:337
Symbol 262 BitmapUsed by:263
Symbol 263 GraphicUses:262Used by:337
Symbol 264 BitmapUsed by:265
Symbol 265 GraphicUses:264Used by:337
Symbol 266 BitmapUsed by:267
Symbol 267 GraphicUses:266Used by:337
Symbol 268 BitmapUsed by:269
Symbol 269 GraphicUses:268Used by:337
Symbol 270 BitmapUsed by:271
Symbol 271 GraphicUses:270Used by:337
Symbol 272 BitmapUsed by:273
Symbol 273 GraphicUses:272Used by:337
Symbol 274 BitmapUsed by:275
Symbol 275 GraphicUses:274Used by:337
Symbol 276 BitmapUsed by:277
Symbol 277 GraphicUses:276Used by:337
Symbol 278 BitmapUsed by:279
Symbol 279 GraphicUses:278Used by:337
Symbol 280 BitmapUsed by:281
Symbol 281 GraphicUses:280Used by:337
Symbol 282 BitmapUsed by:283
Symbol 283 GraphicUses:282Used by:337
Symbol 284 BitmapUsed by:285
Symbol 285 GraphicUses:284Used by:337
Symbol 286 BitmapUsed by:287
Symbol 287 GraphicUses:286Used by:337
Symbol 288 BitmapUsed by:289
Symbol 289 GraphicUses:288Used by:337
Symbol 290 BitmapUsed by:291
Symbol 291 GraphicUses:290Used by:337
Symbol 292 BitmapUsed by:293
Symbol 293 GraphicUses:292Used by:337
Symbol 294 BitmapUsed by:295
Symbol 295 GraphicUses:294Used by:337
Symbol 296 BitmapUsed by:297
Symbol 297 GraphicUses:296Used by:337
Symbol 298 BitmapUsed by:299
Symbol 299 GraphicUses:298Used by:337
Symbol 300 BitmapUsed by:301
Symbol 301 GraphicUses:300Used by:337
Symbol 302 BitmapUsed by:303
Symbol 303 GraphicUses:302Used by:337
Symbol 304 BitmapUsed by:305
Symbol 305 GraphicUses:304Used by:337
Symbol 306 BitmapUsed by:307
Symbol 307 GraphicUses:306Used by:337
Symbol 308 BitmapUsed by:309
Symbol 309 GraphicUses:308Used by:337
Symbol 310 BitmapUsed by:311
Symbol 311 GraphicUses:310Used by:337
Symbol 312 BitmapUsed by:313
Symbol 313 GraphicUses:312Used by:337
Symbol 314 BitmapUsed by:315
Symbol 315 GraphicUses:314Used by:337
Symbol 316 BitmapUsed by:317
Symbol 317 GraphicUses:316Used by:337
Symbol 318 BitmapUsed by:319
Symbol 319 GraphicUses:318Used by:337
Symbol 320 BitmapUsed by:321
Symbol 321 GraphicUses:320Used by:337
Symbol 322 BitmapUsed by:323
Symbol 323 GraphicUses:322Used by:337
Symbol 324 BitmapUsed by:325
Symbol 325 GraphicUses:324Used by:337
Symbol 326 BitmapUsed by:327
Symbol 327 GraphicUses:326Used by:337
Symbol 328 BitmapUsed by:329
Symbol 329 GraphicUses:328Used by:337
Symbol 330 BitmapUsed by:331
Symbol 331 GraphicUses:330Used by:337
Symbol 332 BitmapUsed by:333
Symbol 333 GraphicUses:332Used by:337
Symbol 334 BitmapUsed by:335
Symbol 335 GraphicUses:334Used by:336
Symbol 336 MovieClipUses:335Used by:337
Symbol 337 MovieClip {main_fla.LogoAnimationSequence_11}Uses:161 163 165 167 169 171 173 175 177 179 181 183 185 187 189 191 193 195 197 199 201 203 205 207 209 211 213 215 217 219 221 223 225 227 229 231 233 235 237 239 241 243 245 247 249 251 253 255 257 259 261 263 265 267 269 271 273 275 277 279 281 283 285 287 289 291 293 295 297 299 301 303 305 307 309 311 313 315 317 319 321 323 325 327 329 331 333 336Used by:338
Symbol 338 MovieClipUses:337Used by:Timeline
Symbol 339 BitmapUsed by:340
Symbol 340 GraphicUses:339Used by:341
Symbol 341 MovieClipUses:340Used by:342
Symbol 342 MovieClip {BitmapBackgroundFillClip}Uses:341Used by:Timeline
Symbol 343 GraphicUsed by:344
Symbol 344 MovieClipUses:343Used by:345
Symbol 345 MovieClip {main_fla.BottomLineBackground_18}Uses:344Used by:349
Symbol 346 EditableTextUses:15Used by:347
Symbol 347 MovieClip {main_fla.BottomLineTextHolder_21}Uses:346Used by:348
Symbol 348 MovieClip {main_fla.BottomLineText_20}Uses:347Used by:349
Symbol 349 MovieClip {main_fla.BottomLineHolder_17}Uses:345 348Used by:Timeline
Symbol 350 BitmapUsed by:351
Symbol 351 GraphicUses:350Used by:352
Symbol 352 MovieClipUses:351Used by:353
Symbol 353 MovieClip {main_fla.FullScreenButtonClip_23}Uses:352Used by:362
Symbol 354 ShapeTweeningUsed by:358
Symbol 355 ShapeTweeningUsed by:358
Symbol 356 ShapeTweeningUsed by:358
Symbol 357 GraphicUsed by:358 359
Symbol 358 MovieClipUses:354 355 356 357Used by:359
Symbol 359 MovieClip {main_fla.EqualizerHolder_26}Uses:1 358 357Used by:361
Symbol 360 MovieClipUses:11Used by:361
Symbol 361 MovieClip {main_fla.SoundSwitchHolder_25}Uses:359 360Used by:362
Symbol 362 MovieClip {main_fla.FullScreenButton_22}Uses:353 361Used by:Timeline
Symbol 363 MovieClipUses:134Used by:364
Symbol 364 MovieClip {main_fla.MenuItemBackground_30}Uses:363Used by:366
Symbol 365 MovieClip {main_fla.MenuItemsHolder_32}Uses:142Used by:366
Symbol 366 MovieClip {main_fla.MenuHolder_29}Uses:364 365Used by:Timeline

Instance Names

"applicationPreloader"Frame 1Symbol 153 MovieClip {main_fla.Preloader_1}
"pagesEngine"Frame 10Symbol 154 MovieClip {PagesEngineClip}
"tooltipBox"Frame 10Symbol 159 MovieClip {main_fla.TooltipBox_5}
"startLogoAnimation"Frame 14Symbol 338 MovieClip
"background"Frame 103Symbol 342 MovieClip {BitmapBackgroundFillClip}
"bgCircle"Frame 103Symbol 146 MovieClip {BackgroundCircle}
"bottomLine"Frame 116Symbol 349 MovieClip {main_fla.BottomLineHolder_17}
"bottomButtons"Frame 116Symbol 362 MovieClip {main_fla.FullScreenButton_22}
"menu"Frame 116Symbol 366 MovieClip {main_fla.MenuHolder_29}
"imageBorder"Symbol 4 MovieClip {GalleryItemPlane} Frame 1Symbol 2 MovieClip
"imageHolder"Symbol 4 MovieClip {GalleryItemPlane} Frame 1Symbol 3 MovieClip
"imageHolder"Symbol 7 MovieClip {main_fla.CrossPlaneImage_73} Frame 1Symbol 6 MovieClip
"crossPlaneImage2"Symbol 10 MovieClip {CrossPlane} Frame 1Symbol 7 MovieClip {main_fla.CrossPlaneImage_73}
"crossPlaneImage"Symbol 10 MovieClip {CrossPlane} Frame 1Symbol 7 MovieClip {main_fla.CrossPlaneImage_73}
"planeButton"Symbol 10 MovieClip {CrossPlane} Frame 1Symbol 9 MovieClip
"letter"Symbol 14 MovieClip {CompanyNameLetter} Frame 1Symbol 13 EditableText
"letter"Symbol 17 MovieClip {SloganLetter} Frame 1Symbol 16 EditableText
"crossPlane"Symbol 18 MovieClip {SplashPageClip} Frame 1Symbol 10 MovieClip {CrossPlane}
"companyNameLetter"Symbol 18 MovieClip {SplashPageClip} Frame 1Symbol 14 MovieClip {CompanyNameLetter}
"sloganLetter"Symbol 18 MovieClip {SplashPageClip} Frame 1Symbol 17 MovieClip {SloganLetter}
"label"Symbol 25 MovieClip {main_fla.GalleryButtonLabelHolder_65} Frame 1Symbol 24 EditableText
"label"Symbol 30 MovieClip {main_fla.GalleryButton_left_63} Frame 1Symbol 25 MovieClip {main_fla.GalleryButtonLabelHolder_65}
"button"Symbol 30 MovieClip {main_fla.GalleryButton_left_63} Frame 1Symbol 26 MovieClip
"label"Symbol 32 MovieClip {main_fla.GalleryButtonLabelHolder_2_68} Frame 1Symbol 31 EditableText
"label"Symbol 33 MovieClip {main_fla.GalleryButton_right_67} Frame 1Symbol 32 MovieClip {main_fla.GalleryButtonLabelHolder_2_68}
"button"Symbol 33 MovieClip {main_fla.GalleryButton_right_67} Frame 1Symbol 26 MovieClip
"label"Symbol 36 MovieClip {main_fla.GalleryButton_top_69} Frame 1Symbol 32 MovieClip {main_fla.GalleryButtonLabelHolder_2_68}
"button"Symbol 36 MovieClip {main_fla.GalleryButton_top_69} Frame 1Symbol 26 MovieClip
"galleryButton_0"Symbol 37 MovieClip {GalleryPageClip} Frame 1Symbol 30 MovieClip {main_fla.GalleryButton_left_63}
"galleryButton_1"Symbol 37 MovieClip {GalleryPageClip} Frame 1Symbol 30 MovieClip {main_fla.GalleryButton_left_63}
"galleryButton_2"Symbol 37 MovieClip {GalleryPageClip} Frame 1Symbol 33 MovieClip {main_fla.GalleryButton_right_67}
"galleryButton_3"Symbol 37 MovieClip {GalleryPageClip} Frame 1Symbol 36 MovieClip {main_fla.GalleryButton_top_69}
"button"Symbol 45 MovieClip {main_fla.closeButton_56} Frame 1Symbol 26 MovieClip
"text_0"Symbol 46 MovieClip {main_fla.DynamicPageContents_55} Frame 1Symbol 39 EditableText
"text_1"Symbol 46 MovieClip {main_fla.DynamicPageContents_55} Frame 1Symbol 40 EditableText
"closeButton"Symbol 46 MovieClip {main_fla.DynamicPageContents_55} Frame 1Symbol 45 MovieClip {main_fla.closeButton_56}
"pageContents"Symbol 47 MovieClip {DynamicPageClip} Frame 1Symbol 46 MovieClip {main_fla.DynamicPageContents_55}
"button"Symbol 50 MovieClip {main_fla.FormButtonClip_48} Frame 1Symbol 49 MovieClip
"imageHolder"Symbol 115 MovieClip {main_fla.PageImageClipHolder_3_51} Frame 1Symbol 65 MovieClip
"formButtonClip_reset"Symbol 116 MovieClip {main_fla.ContactsPageContents_47} Frame 1Symbol 50 MovieClip {main_fla.FormButtonClip_48}
"formButtonClip_submit"Symbol 116 MovieClip {main_fla.ContactsPageContents_47} Frame 1Symbol 50 MovieClip {main_fla.FormButtonClip_48}
"text_0"Symbol 116 MovieClip {main_fla.ContactsPageContents_47} Frame 1Symbol 52 EditableText
"text_1"Symbol 116 MovieClip {main_fla.ContactsPageContents_47} Frame 1Symbol 53 EditableText
"text_2"Symbol 116 MovieClip {main_fla.ContactsPageContents_47} Frame 1Symbol 54 EditableText
"formItem_0"Symbol 116 MovieClip {main_fla.ContactsPageContents_47} Frame 1Symbol 55 EditableText
"formItem_1"Symbol 116 MovieClip {main_fla.ContactsPageContents_47} Frame 1Symbol 56 EditableText
"formItem_2"Symbol 116 MovieClip {main_fla.ContactsPageContents_47} Frame 1Symbol 57 EditableText
"formItem_3"Symbol 116 MovieClip {main_fla.ContactsPageContents_47} Frame 1Symbol 58 EditableText
"formItem_4"Symbol 116 MovieClip {main_fla.ContactsPageContents_47} Frame 1Symbol 59 EditableText
"text_3"Symbol 116 MovieClip {main_fla.ContactsPageContents_47} Frame 1Symbol 60 EditableText
"text_4"Symbol 116 MovieClip {main_fla.ContactsPageContents_47} Frame 1Symbol 61 EditableText
"formMessage"Symbol 116 MovieClip {main_fla.ContactsPageContents_47} Frame 1Symbol 62 EditableText
"formButton_reset"Symbol 116 MovieClip {main_fla.ContactsPageContents_47} Frame 1Symbol 49 MovieClip
"formButton_submit"Symbol 116 MovieClip {main_fla.ContactsPageContents_47} Frame 1Symbol 49 MovieClip
"imageClipHolder_0"Symbol 116 MovieClip {main_fla.ContactsPageContents_47} Frame 1Symbol 115 MovieClip {main_fla.PageImageClipHolder_3_51}
"pageContents"Symbol 117 MovieClip {ContactsPageClip} Frame 1Symbol 116 MovieClip {main_fla.ContactsPageContents_47}
"imageHolder"Symbol 126 MovieClip {main_fla.PageImageClipHolder_1_42} Frame 1Symbol 65 MovieClip
"imageHolder"Symbol 128 MovieClip {main_fla.PageImageClipHolder_2_45} Frame 1Symbol 65 MovieClip
"text_0"Symbol 129 MovieClip {main_fla.AboutPageContents_41} Frame 1Symbol 119 EditableText
"text_2"Symbol 129 MovieClip {main_fla.AboutPageContents_41} Frame 1Symbol 120 EditableText
"text_1"Symbol 129 MovieClip {main_fla.AboutPageContents_41} Frame 1Symbol 121 EditableText
"text_3"Symbol 129 MovieClip {main_fla.AboutPageContents_41} Frame 1Symbol 122 EditableText
"text_4"Symbol 129 MovieClip {main_fla.AboutPageContents_41} Frame 1Symbol 123 EditableText
"text_5"Symbol 129 MovieClip {main_fla.AboutPageContents_41} Frame 1Symbol 124 EditableText
"text_6"Symbol 129 MovieClip {main_fla.AboutPageContents_41} Frame 1Symbol 125 EditableText
"imageClipHolder_0"Symbol 129 MovieClip {main_fla.AboutPageContents_41} Frame 1Symbol 126 MovieClip {main_fla.PageImageClipHolder_1_42}
"imageClipHolder_1"Symbol 129 MovieClip {main_fla.AboutPageContents_41} Frame 1Symbol 128 MovieClip {main_fla.PageImageClipHolder_2_45}
"imageClipHolder_2"Symbol 129 MovieClip {main_fla.AboutPageContents_41} Frame 1Symbol 128 MovieClip {main_fla.PageImageClipHolder_2_45}
"imageClipHolder_3"Symbol 129 MovieClip {main_fla.AboutPageContents_41} Frame 1Symbol 128 MovieClip {main_fla.PageImageClipHolder_2_45}
"imageClipHolder_4"Symbol 129 MovieClip {main_fla.AboutPageContents_41} Frame 1Symbol 128 MovieClip {main_fla.PageImageClipHolder_2_45}
"pageContents"Symbol 130 MovieClip {AboutPageClip} Frame 1Symbol 129 MovieClip {main_fla.AboutPageContents_41}
"label"Symbol 138 MovieClip {main_fla.MenuButtonLabel_36} Frame 1Symbol 137 EditableText
"l4"Symbol 139 MovieClip {main_fla.MenuButtonLabelSequence_37} Frame 1Symbol 138 MovieClip {main_fla.MenuButtonLabel_36}
"l3"Symbol 139 MovieClip {main_fla.MenuButtonLabelSequence_37} Frame 1Symbol 138 MovieClip {main_fla.MenuButtonLabel_36}
"l2"Symbol 139 MovieClip {main_fla.MenuButtonLabelSequence_37} Frame 1Symbol 138 MovieClip {main_fla.MenuButtonLabel_36}
"l1"Symbol 139 MovieClip {main_fla.MenuButtonLabelSequence_37} Frame 1Symbol 138 MovieClip {main_fla.MenuButtonLabel_36}
"label"Symbol 142 MovieClip {MenuButtonClip} Frame 1Symbol 138 MovieClip {main_fla.MenuButtonLabel_36}
"labels"Symbol 142 MovieClip {MenuButtonClip} Frame 1Symbol 139 MovieClip {main_fla.MenuButtonLabelSequence_37}
"labels2"Symbol 142 MovieClip {MenuButtonClip} Frame 1Symbol 139 MovieClip {main_fla.MenuButtonLabelSequence_37}
"track"Symbol 153 MovieClip {main_fla.Preloader_1} Frame 1Symbol 148 MovieClip
"status"Symbol 153 MovieClip {main_fla.Preloader_1} Frame 1Symbol 149 MovieClip
"percentLeft"Symbol 153 MovieClip {main_fla.Preloader_1} Frame 1Symbol 151 EditableText
"percentLoaded"Symbol 153 MovieClip {main_fla.Preloader_1} Frame 1Symbol 152 EditableText
"label"Symbol 156 MovieClip {main_fla.TooltipText_6} Frame 1Symbol 155 EditableText
"label"Symbol 159 MovieClip {main_fla.TooltipBox_5} Frame 1Symbol 156 MovieClip {main_fla.TooltipText_6}
"tile"Symbol 342 MovieClip {BitmapBackgroundFillClip} Frame 1Symbol 341 MovieClip
"bg"Symbol 345 MovieClip {main_fla.BottomLineBackground_18} Frame 1Symbol 344 MovieClip
"bottomText"Symbol 347 MovieClip {main_fla.BottomLineTextHolder_21} Frame 1Symbol 346 EditableText
"textHolder"Symbol 348 MovieClip {main_fla.BottomLineText_20} Frame 1Symbol 347 MovieClip {main_fla.BottomLineTextHolder_21}
"bottomBackground"Symbol 349 MovieClip {main_fla.BottomLineHolder_17} Frame 1Symbol 345 MovieClip {main_fla.BottomLineBackground_18}
"bottomLineText"Symbol 349 MovieClip {main_fla.BottomLineHolder_17} Frame 15Symbol 348 MovieClip {main_fla.BottomLineText_20}
"soundClip"Symbol 361 MovieClip {main_fla.SoundSwitchHolder_25} Frame 1Symbol 359 MovieClip {main_fla.EqualizerHolder_26}
"fullScreenSwitch"Symbol 362 MovieClip {main_fla.FullScreenButton_22} Frame 1Symbol 353 MovieClip {main_fla.FullScreenButtonClip_23}
"soundSwitch"Symbol 362 MovieClip {main_fla.FullScreenButton_22} Frame 1Symbol 361 MovieClip {main_fla.SoundSwitchHolder_25}
"bg"Symbol 364 MovieClip {main_fla.MenuItemBackground_30} Frame 1Symbol 363 MovieClip
"menuButton_1"Symbol 365 MovieClip {main_fla.MenuItemsHolder_32} Frame 1Symbol 142 MovieClip {MenuButtonClip}
"menuButton_2"Symbol 365 MovieClip {main_fla.MenuItemsHolder_32} Frame 8Symbol 142 MovieClip {MenuButtonClip}
"menuButton_3"Symbol 365 MovieClip {main_fla.MenuItemsHolder_32} Frame 16Symbol 142 MovieClip {MenuButtonClip}
"menuBackground"Symbol 366 MovieClip {main_fla.MenuHolder_29} Frame 1Symbol 364 MovieClip {main_fla.MenuItemBackground_30}
"menuItemsHolder"Symbol 366 MovieClip {main_fla.MenuHolder_29} Frame 26Symbol 365 MovieClip {main_fla.MenuItemsHolder_32}

Special Tags

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

Labels

"startApplication"Frame 10
"over"Symbol 10 MovieClip {CrossPlane} Frame 2
"out"Symbol 10 MovieClip {CrossPlane} Frame 9
"over"Symbol 30 MovieClip {main_fla.GalleryButton_left_63} Frame 2
"out"Symbol 30 MovieClip {main_fla.GalleryButton_left_63} Frame 21
"over"Symbol 33 MovieClip {main_fla.GalleryButton_right_67} Frame 2
"out"Symbol 33 MovieClip {main_fla.GalleryButton_right_67} Frame 21
"over"Symbol 36 MovieClip {main_fla.GalleryButton_top_69} Frame 2
"out"Symbol 36 MovieClip {main_fla.GalleryButton_top_69} Frame 21
"over"Symbol 45 MovieClip {main_fla.closeButton_56} Frame 2
"out"Symbol 45 MovieClip {main_fla.closeButton_56} Frame 21
"over"Symbol 50 MovieClip {main_fla.FormButtonClip_48} Frame 2
"out"Symbol 50 MovieClip {main_fla.FormButtonClip_48} Frame 12
"over"Symbol 115 MovieClip {main_fla.PageImageClipHolder_3_51} Frame 2
"out"Symbol 115 MovieClip {main_fla.PageImageClipHolder_3_51} Frame 31
"over"Symbol 126 MovieClip {main_fla.PageImageClipHolder_1_42} Frame 2
"out"Symbol 126 MovieClip {main_fla.PageImageClipHolder_1_42} Frame 31
"over"Symbol 128 MovieClip {main_fla.PageImageClipHolder_2_45} Frame 2
"out"Symbol 128 MovieClip {main_fla.PageImageClipHolder_2_45} Frame 31
"over"Symbol 142 MovieClip {MenuButtonClip} Frame 2
"out"Symbol 142 MovieClip {MenuButtonClip} Frame 29
"over"Symbol 159 MovieClip {main_fla.TooltipBox_5} Frame 2
"out"Symbol 159 MovieClip {main_fla.TooltipBox_5} Frame 41
"over"Symbol 353 MovieClip {main_fla.FullScreenButtonClip_23} Frame 2
"out"Symbol 353 MovieClip {main_fla.FullScreenButtonClip_23} Frame 11
"show"Symbol 359 MovieClip {main_fla.EqualizerHolder_26} Frame 1
"hide"Symbol 359 MovieClip {main_fla.EqualizerHolder_26} Frame 26
"over"Symbol 361 MovieClip {main_fla.SoundSwitchHolder_25} Frame 2
"out"Symbol 361 MovieClip {main_fla.SoundSwitchHolder_25} Frame 11




http://swfchan.com/18/87188/info.shtml
Created: 30/3 -2019 02:41:11 Last modified: 30/3 -2019 02:41:11 Server time: 19/05 -2024 01:57:21