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

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

Oliver.swf

This is the info page for
Flash #126513

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


ActionScript [AS3]
Section 1
//AdLoader (CPMStar.AdLoader) package CPMStar { import flash.display.*; import mx.core.*; import flash.events.*; import flash.system.*; import flash.net.*; public class AdLoader extends FlexSprite { private var cpmstarLoader:Loader; private var contentspotid:String; public function AdLoader(contentspotid:String){ super(); this.contentspotid = contentspotid; addEventListener(Event.ADDED, addedHandler); } private function dispatchHandler(event:Event):void{ dispatchEvent(event); } private function addedHandler(event:Event):void{ removeEventListener(Event.ADDED, addedHandler); Security.allowDomain("server.cpmstar.com"); var cpmstarViewSWFUrl:String = "http://server.cpmstar.com/adviewas3.swf"; var container:DisplayObjectContainer = parent; cpmstarLoader = new Loader(); cpmstarLoader.contentLoaderInfo.addEventListener(Event.INIT, dispatchHandler); cpmstarLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, dispatchHandler); cpmstarLoader.load(new URLRequest(((cpmstarViewSWFUrl + "?contentspotid=") + contentspotid))); addChild(cpmstarLoader); } } }//package CPMStar
Section 2
//MochiCoins (mochi.as3.MochiCoins) package mochi.as3 { public class MochiCoins { public static const STORE_HIDE:String = "StoreHide"; public static const NO_USER:String = "NoUser"; public static const IO_ERROR:String = "IOError"; public static const ITEM_NEW:String = "ItemNew"; public static const ITEM_OWNED:String = "ItemOwned"; public static const STORE_ITEMS:String = "StoreItems"; public static const ERROR:String = "Error"; public static const STORE_SHOW:String = "StoreShow"; public static var _inventory:MochiInventory; public function MochiCoins(){ super(); } public static function triggerEvent(eventType:String, args:Object):void{ MochiSocial.triggerEvent(eventType, args); } public static function removeEventListener(eventType:String, delegate:Function):void{ MochiSocial.removeEventListener(eventType, delegate); } public static function addEventListener(eventType:String, delegate:Function):void{ MochiSocial.addEventListener(eventType, delegate); } public static function getStoreItems():void{ MochiServices.send("coins_getStoreItems"); } public static function get inventory():MochiInventory{ return (_inventory); } public static function showStore(options:Object=null):void{ MochiServices.bringToTop(); MochiServices.send("coins_showStore", {options:options}, null, null); } public static function showItem(options:Object=null):void{ if (((!(options)) || (!((typeof(options.item) == "string"))))){ trace("ERROR: showItem call must pass an Object with an item key"); return; }; MochiServices.bringToTop(); MochiServices.send("coins_showItem", {options:options}, null, null); } public static function getVersion():String{ return (MochiServices.getVersion()); } public static function showVideo(options:Object=null):void{ if (((!(options)) || (!((typeof(options.item) == "string"))))){ trace("ERROR: showVideo call must pass an Object with an item key"); return; }; MochiServices.bringToTop(); MochiServices.send("coins_showVideo", {options:options}, null, null); } MochiSocial.addEventListener(MochiSocial.LOGGED_IN, function (args:Object):void{ _inventory = new MochiInventory(); }); MochiSocial.addEventListener(MochiSocial.LOGGED_OUT, function (args:Object):void{ _inventory = null; }); } }//package mochi.as3
Section 3
//MochiDigits (mochi.as3.MochiDigits) package mochi.as3 { public final class MochiDigits { private var Sibling:MochiDigits; private var Fragment:Number; private var Encoder:Number; public function MochiDigits(digit:Number=0, index:uint=0):void{ super(); Encoder = 0; setValue(digit, index); } public function reencode():void{ var newEncode:uint = int((2147483647 * Math.random())); Fragment = (Fragment ^ (newEncode ^ Encoder)); Encoder = newEncode; } public function set value(v:Number):void{ setValue(v); } public function toString():String{ var s:String = String.fromCharCode((Fragment ^ Encoder)); if (Sibling != null){ s = (s + Sibling.toString()); }; return (s); } public function setValue(digit:Number=0, index:uint=0):void{ var s:String = digit.toString(); var _temp1 = index; index = (index + 1); Fragment = (s.charCodeAt(_temp1) ^ Encoder); if (index < s.length){ Sibling = new MochiDigits(digit, index); } else { Sibling = null; }; reencode(); } public function get value():Number{ return (Number(this.toString())); } public function addValue(inc:Number):void{ value = (value + inc); } } }//package mochi.as3
Section 4
//MochiEventDispatcher (mochi.as3.MochiEventDispatcher) package mochi.as3 { public class MochiEventDispatcher { private var eventTable:Object; public function MochiEventDispatcher():void{ super(); eventTable = {}; } public function triggerEvent(event:String, args:Object):void{ var i:Object; if (eventTable[event] == undefined){ return; }; for (i in eventTable[event]) { var _local6 = eventTable[event]; _local6[i](args); }; } public function removeEventListener(event:String, delegate:Function):void{ var s:Object; if (eventTable[event] == undefined){ eventTable[event] = []; return; }; for (s in eventTable[event]) { if (eventTable[event][s] != delegate){ } else { eventTable[event].splice(Number(s), 1); }; }; } public function addEventListener(event:String, delegate:Function):void{ removeEventListener(event, delegate); eventTable[event].push(delegate); } } }//package mochi.as3
Section 5
//MochiEvents (mochi.as3.MochiEvents) package mochi.as3 { import flash.display.*; public class MochiEvents { public static const ALIGN_BOTTOM_LEFT:String = "ALIGN_BL"; public static const FORMAT_LONG:String = "LongForm"; public static const ALIGN_BOTTOM:String = "ALIGN_B"; public static const ACHIEVEMENT_RECEIVED:String = "AchievementReceived"; public static const FORMAT_SHORT:String = "ShortForm"; public static const ALIGN_TOP_RIGHT:String = "ALIGN_TR"; public static const ALIGN_BOTTOM_RIGHT:String = "ALIGN_BR"; public static const ALIGN_TOP:String = "ALIGN_T"; public static const ALIGN_LEFT:String = "ALIGN_L"; public static const ALIGN_RIGHT:String = "ALIGN_R"; public static const ALIGN_TOP_LEFT:String = "ALIGN_TL"; public static const ALIGN_CENTER:String = "ALIGN_C"; private static var _dispatcher:MochiEventDispatcher = new MochiEventDispatcher(); private static var gameStart:Number; private static var levelStart:Number; public function MochiEvents(){ super(); } public static function endPlay():void{ MochiServices.send("events_clearRoundID", null, null, null); } public static function addEventListener(eventType:String, delegate:Function):void{ _dispatcher.addEventListener(eventType, delegate); } public static function trackEvent(tag:String, value=null):void{ MochiServices.send("events_trackEvent", {tag:tag, value:value}, null, null); } public static function removeEventListener(eventType:String, delegate:Function):void{ _dispatcher.removeEventListener(eventType, delegate); } public static function startSession(achievementID:String):void{ MochiServices.send("events_beginSession", {achievementID:achievementID}, null, null); } public static function triggerEvent(eventType:String, args:Object):void{ _dispatcher.triggerEvent(eventType, args); } public static function setNotifications(clip:MovieClip, style:Object):void{ var s:Object; var args:Object = {}; for (s in style) { args[s] = style[s]; }; args.clip = clip; MochiServices.send("events_setNotifications", args, null, null); } public static function getVersion():String{ return (MochiServices.getVersion()); } public static function startPlay(tag:String="gameplay"):void{ MochiServices.send("events_setRoundID", {tag:String(tag)}, null, null); } } }//package mochi.as3
Section 6
//MochiInventory (mochi.as3.MochiInventory) package mochi.as3 { import flash.events.*; import flash.utils.*; public dynamic class MochiInventory extends Proxy { private var _timer:Timer; private var _names:Array; private var _syncID:Number; private var _consumableProperties:Object; private var _storeSync:Object; private var _outstandingID:Number; private var _syncPending:Boolean; public static const READY:String = "InvReady"; public static const ERROR:String = "Error"; public static const IO_ERROR:String = "IoError"; private static const KEY_SALT:String = " syncMaint"; public static const WRITTEN:String = "InvWritten"; public static const NOT_READY:String = "InvNotReady"; public static const VALUE_ERROR:String = "InvValueError"; private static const CONSUMER_KEY:String = "MochiConsumables"; private static var _dispatcher:MochiEventDispatcher = new MochiEventDispatcher(); public function MochiInventory():void{ super(); MochiCoins.addEventListener(MochiCoins.ITEM_OWNED, itemOwned); MochiCoins.addEventListener(MochiCoins.ITEM_NEW, newItems); MochiSocial.addEventListener(MochiSocial.LOGGED_IN, loggedIn); MochiSocial.addEventListener(MochiSocial.LOGGED_OUT, loggedOut); _storeSync = new Object(); _syncPending = false; _outstandingID = 0; _syncID = 0; _timer = new Timer(1000); _timer.addEventListener(TimerEvent.TIMER, sync); _timer.start(); if (MochiSocial.loggedIn){ loggedIn(); } else { loggedOut(); }; } private function newItems(event:Object):void{ if (!this[(event.id + KEY_SALT)]){ this[(event.id + KEY_SALT)] = 0; }; if (!this[event.id]){ this[event.id] = 0; }; this[(event.id + KEY_SALT)] = (this[(event.id + KEY_SALT)] + event.count); this[event.id] = (this[event.id] + event.count); if (event.privateProperties.consumable){ if (!this[event.privateProperties.tag]){ this[event.privateProperties.tag] = 0; }; this[event.privateProperties.tag] = (this[event.privateProperties.tag] + (event.privateProperties.inc * event.count)); }; } public function release():void{ MochiCoins.removeEventListener(MochiCoins.ITEM_NEW, newItems); MochiSocial.removeEventListener(MochiSocial.LOGGED_IN, loggedIn); MochiSocial.removeEventListener(MochiSocial.LOGGED_OUT, loggedOut); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function getProperty(name){ if (_consumableProperties == null){ triggerEvent(ERROR, {type:NOT_READY}); return (-1); }; if (_consumableProperties[name]){ return (MochiDigits(_consumableProperties[name]).value); }; return (undefined); } private function loggedIn(args:Object=null):void{ MochiUserData.get(CONSUMER_KEY, getConsumableBag); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function hasProperty(name):Boolean{ if (_consumableProperties == null){ triggerEvent(ERROR, {type:NOT_READY}); return (false); }; if (_consumableProperties[name] == undefined){ return (false); }; return (true); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function nextNameIndex(index:int):int{ return (((index)>=_names.length) ? 0 : (index + 1)); } private function putConsumableBag(userData:MochiUserData):void{ _syncPending = false; if (userData.error){ triggerEvent(ERROR, {type:IO_ERROR, error:userData.error}); _outstandingID = -1; }; triggerEvent(WRITTEN, {}); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function setProperty(name, value):void{ var d:MochiDigits; if (_consumableProperties == null){ triggerEvent(ERROR, {type:NOT_READY}); return; }; if (!(value is Number)){ triggerEvent(ERROR, {type:VALUE_ERROR, error:"Invalid type", arg:value}); return; }; if (_consumableProperties[name]){ d = MochiDigits(_consumableProperties[name]); if (d.value == value){ return; }; d.value = value; } else { _names.push(name); _consumableProperties[name] = new MochiDigits(value); }; _syncID++; } private function itemOwned(event:Object):void{ _storeSync[event.id] = {properties:event.properties, count:event.count}; } private function sync(e:Event=null):void{ var key:String; if (((_syncPending) || ((_syncID == _outstandingID)))){ return; }; _outstandingID = _syncID; var output:Object = {}; for (key in _consumableProperties) { output[key] = MochiDigits(_consumableProperties[key]).value; }; MochiUserData.put(CONSUMER_KEY, output, putConsumableBag); _syncPending = true; } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function nextName(index:int):String{ return (_names[(index - 1)]); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function deleteProperty(name):Boolean{ if (!_consumableProperties[name]){ return (false); }; _names.splice(_names.indexOf(name), 1); delete _consumableProperties[name]; return (true); } private function getConsumableBag(userData:MochiUserData):void{ var key:String; var unsynced:Number; if (userData.error){ triggerEvent(ERROR, {type:IO_ERROR, error:userData.error}); return; }; _consumableProperties = {}; _names = new Array(); if (userData.data){ for (key in userData.data) { _names.push(key); _consumableProperties[key] = new MochiDigits(userData.data[key]); }; }; for (key in _storeSync) { unsynced = _storeSync[key].count; if (_consumableProperties[(key + KEY_SALT)]){ unsynced = (unsynced - _consumableProperties[key]); }; if (unsynced == 0){ } else { newItems({id:key, count:unsynced, properties:_storeSync[key].properties}); }; }; triggerEvent(READY, {}); } private function loggedOut(args:Object=null):void{ _consumableProperties = null; } public static function triggerEvent(eventType:String, args:Object):void{ _dispatcher.triggerEvent(eventType, args); } public static function removeEventListener(eventType:String, delegate:Function):void{ _dispatcher.removeEventListener(eventType, delegate); } public static function addEventListener(eventType:String, delegate:Function):void{ _dispatcher.addEventListener(eventType, delegate); } } }//package mochi.as3
Section 7
//MochiScores (mochi.as3.MochiScores) package mochi.as3 { import flash.display.*; import flash.text.*; public class MochiScores { private static var boardID:String; public static var onErrorHandler:Object; public static var onCloseHandler:Object; public function MochiScores(){ super(); } public static function showLeaderboard(options:Object=null):void{ var n:Number; var options = options; if (options != null){ delete options.clip; MochiServices.setContainer(); MochiServices.bringToTop(); if (options.name != null){ if ((options.name is TextField)){ if (options.name.text.length > 0){ options.name = options.name.text; }; }; }; if (options.score != null){ if ((options.score is TextField)){ if (options.score.text.length > 0){ options.score = options.score.text; }; } else { if ((options.score is MochiDigits)){ options.score = options.score.value; }; }; n = Number(options.score); if (isNaN(n)){ trace((("ERROR: Submitted score '" + options.score) + "' will be rejected, score is 'Not a Number'")); } else { if ((((n == Number.NEGATIVE_INFINITY)) || ((n == Number.POSITIVE_INFINITY)))){ trace((("ERROR: Submitted score '" + options.score) + "' will be rejected, score is an infinite")); } else { if (Math.floor(n) != n){ trace((("WARNING: Submitted score '" + options.score) + "' will be truncated")); }; options.score = n; }; }; }; if (options.onDisplay != null){ options.onDisplay(); } else { if (MochiServices.clip != null){ if ((MochiServices.clip is MovieClip)){ MochiServices.clip.stop(); } else { trace("Warning: Container is not a MovieClip, cannot call default onDisplay."); }; }; }; } else { options = {}; if ((MochiServices.clip is MovieClip)){ MochiServices.clip.stop(); } else { trace("Warning: Container is not a MovieClip, cannot call default onDisplay."); }; }; if (options.onClose != null){ onCloseHandler = options.onClose; } else { onCloseHandler = function ():void{ if ((MochiServices.clip is MovieClip)){ MochiServices.clip.play(); } else { trace("Warning: Container is not a MovieClip, cannot call default onClose."); }; }; }; if (options.onError != null){ onErrorHandler = options.onError; } else { onErrorHandler = null; }; if (options.boardID == null){ if (MochiScores.boardID != null){ options.boardID = MochiScores.boardID; }; }; MochiServices.warnID(options.boardID, true); trace("[MochiScores] NOTE: Security Sandbox Violation errors below are normal"); MochiServices.send("scores_showLeaderboard", {options:options}, null, onClose); } public static function closeLeaderboard():void{ MochiServices.send("scores_closeLeaderboard"); } public static function getPlayerInfo(callbackObj:Object, callbackMethod:Object=null):void{ MochiServices.send("scores_getPlayerInfo", null, callbackObj, callbackMethod); } public static function requestList(callbackObj:Object, callbackMethod:Object=null):void{ MochiServices.send("scores_requestList", null, callbackObj, callbackMethod); } public static function scoresArrayToObjects(scores:Object):Object{ var i:Number; var j:Number; var o:Object; var row_obj:Object; var item:String; var param:String; var so:Object = {}; for (item in scores) { if (typeof(scores[item]) == "object"){ if (((!((scores[item].cols == null))) && (!((scores[item].rows == null))))){ so[item] = []; o = scores[item]; j = 0; while (j < o.rows.length) { row_obj = {}; i = 0; while (i < o.cols.length) { row_obj[o.cols[i]] = o.rows[j][i]; i++; }; so[item].push(row_obj); j++; }; } else { so[item] = {}; for (param in scores[item]) { so[item][param] = scores[item][param]; }; }; } else { so[item] = scores[item]; }; }; return (so); } public static function submit(score:Number, name:String, callbackObj:Object=null, callbackMethod:Object=null):void{ score = Number(score); if (isNaN(score)){ trace((("ERROR: Submitted score '" + String(score)) + "' will be rejected, score is 'Not a Number'")); } else { if ((((score == Number.NEGATIVE_INFINITY)) || ((score == Number.POSITIVE_INFINITY)))){ trace((("ERROR: Submitted score '" + String(score)) + "' will be rejected, score is an infinite")); } else { if (Math.floor(score) != score){ trace((("WARNING: Submitted score '" + String(score)) + "' will be truncated")); }; score = Number(score); }; }; MochiServices.send("scores_submit", {score:score, name:name}, callbackObj, callbackMethod); } public static function onClose(args:Object=null):void{ if (((((args) && ((args.error == true)))) && (onErrorHandler))){ if (args.errorCode == null){ args.errorCode = "IOError"; }; onErrorHandler(args.errorCode); MochiServices.doClose(); return; }; onCloseHandler(); MochiServices.doClose(); } public static function setBoardID(boardID:String):void{ MochiServices.warnID(boardID, true); MochiScores.boardID = boardID; MochiServices.send("scores_setBoardID", {boardID:boardID}); } } }//package mochi.as3
Section 8
//MochiServices (mochi.as3.MochiServices) package mochi.as3 { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.utils.*; import flash.system.*; import flash.net.*; public class MochiServices { private static var _container:Object; private static var _connected:Boolean = false; private static var _queue:Array; private static var _swfVersion:String; private static var _preserved:Object; public static var netupAttempted:Boolean = false; private static var _sendChannel:LocalConnection; public static var servicesSync:MochiSync = new MochiSync(); private static var _nextCallbackID:Number; private static var _clip:MovieClip; private static var _id:String; private static var _services:String = "services.swf"; private static var _servURL:String = "http://www.mochiads.com/static/lib/services/"; public static var widget:Boolean = false; private static var _timer:Timer; private static var _sendChannelName:String; private static var _loader:Loader; private static var _callbacks:Object; private static var _connecting:Boolean = false; private static var _mochiLocalConnection:MovieClip; private static var _listenChannelName:String = "__ms_"; public static var onError:Object; public static var netup:Boolean = true; private static var _mochiLC:String = "MochiLC.swf"; public function MochiServices(){ super(); } public static function isNetworkAvailable():Boolean{ return (!((Security.sandboxType == "localWithFile"))); } public static function get connected():Boolean{ return (_connected); } private static function onReceive(pkg:Object):void{ var methodName:String; var pkg = pkg; var cb:String = pkg.callbackID; var cblst:Object = _callbacks[cb]; if (!cblst){ return; }; var method:* = cblst.callbackMethod; methodName = ""; var obj:Object = cblst.callbackObject; if (((obj) && ((typeof(method) == "string")))){ methodName = method; if (obj[method] != null){ method = obj[method]; } else { trace((("Error: Method " + method) + " does not exist.")); }; }; if (method != undefined){ method.apply(obj, pkg.args); //unresolved jump var _slot1 = error; trace(((("Error invoking callback method '" + methodName) + "': ") + _slot1.toString())); } else { if (obj != null){ obj(pkg.args); //unresolved jump var _slot1 = error; trace(("Error invoking method on object: " + _slot1.toString())); }; }; delete _callbacks[cb]; } public static function send(methodName:String, args:Object=null, callbackObject:Object=null, callbackMethod:Object=null):void{ if (_connected){ _mochiLocalConnection.send(_sendChannelName, "onReceive", {methodName:methodName, args:args, callbackID:_nextCallbackID}); } else { if ((((_clip == null)) || (!(_connecting)))){ trace(("Error: MochiServices not connected. Please call MochiServices.connect(). Function: " + methodName)); handleError(args, callbackObject, callbackMethod); flush(true); return; }; _queue.push({methodName:methodName, args:args, callbackID:_nextCallbackID}); }; if (_clip != null){ if (_callbacks != null){ _callbacks[_nextCallbackID] = {callbackObject:callbackObject, callbackMethod:callbackMethod}; _nextCallbackID++; }; }; } private static function init(id:String, clip:Object):void{ _id = id; if (clip != null){ _container = clip; loadCommunicator(id, _container); }; } public static function get childClip():Object{ return (_clip); } private static function clickMovie(url:String, cb:Function):MovieClip{ var b:int; var loader:Loader; var avm1_bytecode:Array = [150, 21, 0, 7, 1, 0, 0, 0, 0, 98, 116, 110, 0, 7, 2, 0, 0, 0, 0, 116, 104, 105, 115, 0, 28, 150, 22, 0, 0, 99, 114, 101, 97, 116, 101, 69, 109, 112, 116, 121, 77, 111, 118, 105, 101, 67, 108, 105, 112, 0, 82, 135, 1, 0, 0, 23, 150, 13, 0, 4, 0, 0, 111, 110, 82, 101, 108, 101, 97, 115, 101, 0, 142, 8, 0, 0, 0, 0, 2, 42, 0, 114, 0, 150, 17, 0, 0, 32, 0, 7, 1, 0, 0, 0, 8, 0, 0, 115, 112, 108, 105, 116, 0, 82, 135, 1, 0, 1, 23, 150, 7, 0, 4, 1, 7, 0, 0, 0, 0, 78, 150, 8, 0, 0, 95, 98, 108, 97, 110, 107, 0, 154, 1, 0, 0, 150, 7, 0, 0, 99, 108, 105, 99, 107, 0, 150, 7, 0, 4, 1, 7, 1, 0, 0, 0, 78, 150, 27, 0, 7, 2, 0, 0, 0, 7, 0, 0, 0, 0, 0, 76, 111, 99, 97, 108, 67, 111, 110, 110, 101, 99, 116, 105, 111, 110, 0, 64, 150, 6, 0, 0, 115, 101, 110, 100, 0, 82, 79, 150, 15, 0, 4, 0, 0, 95, 97, 108, 112, 104, 97, 0, 7, 0, 0, 0, 0, 79, 150, 23, 0, 7, 0xFF, 0, 0xFF, 0, 7, 1, 0, 0, 0, 4, 0, 0, 98, 101, 103, 105, 110, 70, 105, 108, 108, 0, 82, 23, 150, 25, 0, 7, 0, 0, 0, 0, 7, 0, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 109, 111, 118, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 100, 0, 0, 0, 7, 0, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 100, 0, 0, 0, 7, 100, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 0, 0, 0, 0, 7, 100, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 0, 0, 0, 0, 7, 0, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 16, 0, 7, 0, 0, 0, 0, 4, 0, 0, 101, 110, 100, 70, 105, 108, 108, 0, 82, 23]; var header:Array = [104, 0, 31, 64, 0, 7, 208, 0, 0, 12, 1, 0, 67, 2, 0xFF, 0xFF, 0xFF, 63, 3]; var footer:Array = [0, 64, 0, 0, 0]; var mc:MovieClip = new MovieClip(); var lc:LocalConnection = new LocalConnection(); var lc_name:String = ((("_click_" + Math.floor((Math.random() * 999999))) + "_") + Math.floor(new Date().time)); lc = new LocalConnection(); mc.lc = lc; mc.click = cb; lc.client = mc; lc.connect(lc_name); var ba:ByteArray = new ByteArray(); var cpool:ByteArray = new ByteArray(); cpool.endian = Endian.LITTLE_ENDIAN; cpool.writeShort(1); cpool.writeUTFBytes(((url + " ") + lc_name)); cpool.writeByte(0); var actionLength:uint = ((avm1_bytecode.length + cpool.length) + 4); var fileLength:uint = (actionLength + 35); ba.endian = Endian.LITTLE_ENDIAN; ba.writeUTFBytes("FWS"); ba.writeByte(8); ba.writeUnsignedInt(fileLength); for each (b in header) { ba.writeByte(b); }; ba.writeUnsignedInt(actionLength); ba.writeByte(136); ba.writeShort(cpool.length); ba.writeBytes(cpool); for each (b in avm1_bytecode) { ba.writeByte(b); }; for each (b in footer) { ba.writeByte(b); }; loader = new Loader(); loader.loadBytes(ba); mc.addChild(loader); return (mc); } public static function stayOnTop():void{ _container.addEventListener(Event.ENTER_FRAME, MochiServices.bringToTop, false, 0, true); if (_clip != null){ _clip.visible = true; }; } public static function addLinkEvent(url:String, burl:String, btn:DisplayObjectContainer, onClick:Function=null):void{ var avm1Click:DisplayObject; var x:String; var req:URLRequest; var loader:Loader; var setURL:Function; var err:Function; var complete:Function; var url = url; var burl = burl; var btn = btn; var onClick = onClick; var vars:Object = new Object(); vars["mav"] = getVersion(); vars["swfv"] = "9"; vars["swfurl"] = btn.loaderInfo.loaderURL; vars["fv"] = Capabilities.version; vars["os"] = Capabilities.os; vars["lang"] = Capabilities.language; vars["scres"] = ((Capabilities.screenResolutionX + "x") + Capabilities.screenResolutionY); var s = "?"; var i:Number = 0; for (x in vars) { if (i != 0){ s = (s + "&"); }; i = (i + 1); s = (((s + x) + "=") + escape(vars[x])); }; req = new URLRequest("http://x.mochiads.com/linkping.swf"); loader = new Loader(); setURL = function (url:String):void{ if (avm1Click){ btn.removeChild(avm1Click); }; avm1Click = clickMovie(url, onClick); var rect:Rectangle = btn.getBounds(btn); btn.addChild(avm1Click); avm1Click.x = rect.x; avm1Click.y = rect.y; avm1Click.scaleX = (0.01 * rect.width); avm1Click.scaleY = (0.01 * rect.height); }; err = function (ev:Object):void{ netup = false; ev.target.removeEventListener(ev.type, arguments.callee); setURL(burl); }; complete = function (ev:Object):void{ ev.target.removeEventListener(ev.type, arguments.callee); }; if (netup){ setURL((url + s)); } else { setURL(burl); }; if (!((netupAttempted) || (_connected))){ netupAttempted = true; loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, err); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, complete); loader.load(req); }; } public static function disconnect():void{ if (((_connected) || (_connecting))){ if (_clip != null){ if (_clip.parent != null){ if ((_clip.parent is Sprite)){ Sprite(_clip.parent).removeChild(_clip); _clip = null; }; }; }; _connecting = (_connected = false); flush(true); _mochiLocalConnection.close(); //unresolved jump var _slot1 = error; }; if (_timer != null){ _timer.stop(); //unresolved jump var _slot1 = error; }; } public static function allowDomains(server:String):String{ var hostname:String; if (Security.sandboxType != "application"){ Security.allowDomain("*"); Security.allowInsecureDomain("*"); }; if (server.indexOf("http://") != -1){ hostname = server.split("/")[2].split(":")[0]; if (Security.sandboxType != "application"){ Security.allowDomain(hostname); Security.allowInsecureDomain(hostname); }; }; return (hostname); } public static function getVersion():String{ return ("3.8 as3"); } public static function doClose():void{ _container.removeEventListener(Event.ENTER_FRAME, MochiServices.bringToTop); } public static function warnID(bid:String, leaderboard:Boolean):void{ bid = bid.toLowerCase(); if (bid.length != 16){ trace((("WARNING: " + (leaderboard) ? "board" : "game") + " ID is not the appropriate length")); return; } else { if (bid == "1e113c7239048b3f"){ if (leaderboard){ trace("WARNING: Using testing board ID"); } else { trace("WARNING: Using testing board ID as game ID"); }; return; } else { if (bid == "84993a1de4031cd8"){ if (leaderboard){ trace("WARNING: Using testing game ID as board ID"); } else { trace("WARNING: Using testing game ID"); }; return; }; }; }; var i:Number = 0; while (i < bid.length) { switch (bid.charAt(i)){ case "0": case "1": case "2": case "3": case "4": case "5": case "6": case "7": case "8": case "9": case "a": case "b": case "c": case "d": case "e": case "f": break; default: trace(("WARNING: Board ID contains illegal characters: " + bid)); return; }; i++; }; } private static function flush(error:Boolean):void{ var request:Object; var callback:Object; if (((_clip) && (_queue))){ while (_queue.length > 0) { request = _queue.shift(); callback = null; if (request != null){ if (request.callbackID != null){ callback = _callbacks[request.callbackID]; }; delete _callbacks[request.callbackID]; if (((error) && (!((callback == null))))){ handleError(request.args, callback.callbackObject, callback.callbackMethod); }; }; }; }; } public static function get id():String{ return (_id); } private static function onEvent(pkg:Object):void{ var target:String = pkg.target; var event:String = pkg.event; switch (target){ case "events": MochiEvents.triggerEvent(pkg.event, pkg.args); break; case "coins": MochiCoins.triggerEvent(pkg.event, pkg.args); break; case "sync": servicesSync.triggerEvent(pkg.event, pkg.args); break; }; } private static function urlOptions(clip:Object):Object{ var options:String; var pairs:Array; var i:Number; var kv:Array; var opts:Object = {}; if (clip.stage != null){ options = clip.stage.loaderInfo.parameters.mochiad_options; } else { options = clip.loaderInfo.parameters.mochiad_options; }; if (options){ pairs = options.split("&"); i = 0; while (i < pairs.length) { kv = pairs[i].split("="); opts[unescape(kv[0])] = unescape(kv[1]); i++; }; }; return (opts); } public static function setContainer(container:Object=null, doAdd:Boolean=true):void{ if (_clip.parent){ _clip.parent.removeChild(_clip); }; if (container != null){ if ((container is DisplayObjectContainer)){ _container = container; }; }; if (doAdd){ if ((_container is DisplayObjectContainer)){ DisplayObjectContainer(_container).addChild(_clip); }; }; } private static function handleError(args:Object, callbackObject:Object, callbackMethod:Object):void{ var args = args; var callbackObject = callbackObject; var callbackMethod = callbackMethod; if (args != null){ if (args.onError != null){ args.onError.apply(null, ["NotConnected"]); }; if (((!((args.options == null))) && (!((args.options.onError == null))))){ args.options.onError.apply(null, ["NotConnected"]); }; }; if (callbackMethod != null){ args = {}; args.error = true; args.errorCode = "NotConnected"; if (((!((callbackObject == null))) && ((callbackMethod is String)))){ var _local5 = callbackObject; _local5[callbackMethod](args); //unresolved jump var _slot1 = error; } else { if (callbackMethod != null){ callbackMethod.apply(args); //unresolved jump var _slot1 = error; }; }; }; } private static function loadError(ev:Object):void{ _clip._mochiad_ctr_failed = true; trace("MochiServices could not load."); MochiServices.disconnect(); MochiServices.onError("IOError"); } private static function initComChannels():void{ if (!_connected){ trace("[SERVICES_API] connected!"); _connecting = false; _connected = true; _mochiLocalConnection.send(_sendChannelName, "onReceive", {methodName:"handshakeDone"}); _mochiLocalConnection.send(_sendChannelName, "onReceive", {methodName:"registerGame", preserved:_preserved, id:_id, version:getVersion(), parentURL:_container.loaderInfo.loaderURL}); _clip.onReceive = onReceive; _clip.onEvent = onEvent; _clip.onError = function ():void{ MochiServices.onError("IOError"); }; while (_queue.length > 0) { _mochiLocalConnection.send(_sendChannelName, "onReceive", _queue.shift()); }; }; } private static function loadLCBridge(clip:Object):void{ var loader:Loader; var clip = clip; loader = new Loader(); var mochiLCURL:String = (_servURL + _mochiLC); var req:URLRequest = new URLRequest(mochiLCURL); var complete:Function = function (ev:Object):void{ _mochiLocalConnection = MovieClip(loader.content); listen(); }; loader.contentLoaderInfo.addEventListener(Event.COMPLETE, complete); loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, loadError); loader.load(req); clip.addChild(loader); } private static function listen():void{ _mochiLocalConnection.connect(_listenChannelName); _clip.handshake = function (args:Object):void{ MochiServices.comChannelName = args.newChannel; }; trace("Waiting for MochiAds services to connect..."); } public static function get clip():Object{ return (_container); } public static function set comChannelName(val:String):void{ if (val != null){ if (val.length > 3){ _sendChannelName = (val + "_fromgame"); initComChannels(); }; }; } private static function loadCommunicator(id:String, clip:Object):MovieClip{ if (_clip != null){ return (_clip); }; if (!MochiServices.isNetworkAvailable()){ return (null); }; if (urlOptions(clip).servURL){ _servURL = urlOptions(clip).servURL; }; var servicesURL:String = (_servURL + _services); if (urlOptions(clip).servicesURL){ servicesURL = urlOptions(clip).servicesURL; }; _listenChannelName = (_listenChannelName + ((Math.floor(new Date().time) + "_") + Math.floor((Math.random() * 99999)))); MochiServices.allowDomains(servicesURL); _clip = new MovieClip(); loadLCBridge(_clip); _loader = new Loader(); _loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, loadError); var req:URLRequest = new URLRequest(servicesURL); var vars:URLVariables = new URLVariables(); vars.listenLC = _listenChannelName; vars.mochiad_options = clip.loaderInfo.parameters.mochiad_options; vars.api_version = getVersion(); if (widget){ vars.widget = true; }; req.data = vars; _loader.load(req); _clip.addChild(_loader); _sendChannel = new LocalConnection(); _queue = []; _nextCallbackID = 0; _callbacks = {}; _timer = new Timer(10000, 1); _timer.addEventListener(TimerEvent.TIMER, connectWait); _timer.start(); return (_clip); } public static function connect(id:String, clip:Object, onError:Object=null):void{ var id = id; var clip = clip; var onError = onError; warnID(id, false); if ((clip is DisplayObject)){ if (clip.stage == null){ trace("MochiServices connect requires the containing clip be attached to the stage"); }; if (((!(_connected)) && ((_clip == null)))){ trace("MochiServices Connecting..."); _connecting = true; init(id, clip); }; } else { trace("Error, MochiServices requires a Sprite, Movieclip or instance of the stage."); }; if (onError != null){ MochiServices.onError = onError; } else { if (MochiServices.onError == null){ MochiServices.onError = function (errorCode:String):void{ trace(errorCode); }; }; }; } public static function updateCopy(args:Object):void{ MochiServices.send("coins_updateCopy", args, null, null); } public static function bringToTop(e:Event=null):void{ var e = e; if (((!((MochiServices.clip == null))) && (!((MochiServices.childClip == null))))){ if (MochiServices.clip.numChildren > 1){ MochiServices.clip.setChildIndex(MochiServices.childClip, (MochiServices.clip.numChildren - 1)); }; //unresolved jump var _slot1 = errorObject; trace("Warning: Depth sort error."); _container.removeEventListener(Event.ENTER_FRAME, MochiServices.bringToTop); }; } public static function connectWait(e:TimerEvent):void{ if (!_connected){ _clip._mochiad_ctr_failed = true; trace("MochiServices could not load. (timeout)"); MochiServices.disconnect(); MochiServices.onError("IOError"); }; } } }//package mochi.as3
Section 9
//MochiSocial (mochi.as3.MochiSocial) package mochi.as3 { public class MochiSocial { public static const LOGGED_IN:String = "LoggedIn"; public static const PROFILE_HIDE:String = "ProfileHide"; public static const NO_USER:String = "NoUser"; public static const PROPERTIES_SIZE:String = "PropertiesSize"; public static const IO_ERROR:String = "IOError"; public static const PROPERTIES_SAVED:String = "PropertySaved"; public static const WIDGET_LOADED:String = "WidgetLoaded"; public static const USER_INFO:String = "UserInfo"; public static const ERROR:String = "Error"; public static const LOGIN_SHOW:String = "LoginShow"; public static const LOGGED_OUT:String = "LoggedOut"; public static const PROFILE_SHOW:String = "ProfileShow"; public static const LOGIN_SHOWN:String = "LoginShown"; public static const LOGIN_HIDE:String = "LoginHide"; private static var _dispatcher:MochiEventDispatcher = new MochiEventDispatcher(); public static var _user_info:Object = null; public function MochiSocial(){ super(); } public static function getVersion():String{ return (MochiServices.getVersion()); } public static function saveUserProperties(properties:Object):void{ MochiServices.send("coins_saveUserProperties", properties); } public static function get loggedIn():Boolean{ return (!((_user_info == null))); } public static function triggerEvent(eventType:String, args:Object):void{ _dispatcher.triggerEvent(eventType, args); } public static function addEventListener(eventType:String, delegate:Function):void{ _dispatcher.addEventListener(eventType, delegate); } public static function getUserInfo():void{ MochiServices.send("coins_getUserInfo"); } public static function showLoginWidget(options:Object=null):void{ MochiServices.setContainer(); MochiServices.bringToTop(); MochiServices.send("coins_showLoginWidget", {options:options}); } public static function removeEventListener(eventType:String, delegate:Function):void{ _dispatcher.removeEventListener(eventType, delegate); } public static function requestLogin():void{ MochiServices.send("coins_requestLogin"); } public static function getAPIURL():String{ if (!_user_info){ return (null); }; return (_user_info.api_url); } public static function hideLoginWidget():void{ MochiServices.send("coins_hideLoginWidget"); } public static function getAPIToken():String{ if (!_user_info){ return (null); }; return (_user_info.api_token); } MochiSocial.addEventListener(MochiSocial.LOGGED_IN, function (args:Object):void{ _user_info = args; }); MochiSocial.addEventListener(MochiSocial.LOGGED_OUT, function (args:Object):void{ _user_info = null; }); } }//package mochi.as3
Section 10
//MochiSync (mochi.as3.MochiSync) package mochi.as3 { import flash.utils.*; public dynamic class MochiSync extends Proxy { private var _syncContainer:Object; public static var SYNC_PROPERTY:String = "UpdateProperty"; public static var SYNC_REQUEST:String = "SyncRequest"; public function MochiSync():void{ super(); _syncContainer = {}; } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function setProperty(name, value):void{ if (_syncContainer[name] == value){ return; }; var n:String = name.toString(); _syncContainer[n] = value; MochiServices.send("sync_propUpdate", {name:n, value:value}); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function getProperty(name){ return (_syncContainer[name]); } public function triggerEvent(eventType:String, args:Object):void{ switch (eventType){ case SYNC_REQUEST: MochiServices.send("sync_syncronize", _syncContainer); break; case SYNC_PROPERTY: _syncContainer[args.name] = args.value; break; }; } } }//package mochi.as3
Section 11
//MochiUserData (mochi.as3.MochiUserData) package mochi.as3 { import flash.events.*; import flash.utils.*; import flash.net.*; public class MochiUserData extends EventDispatcher { public var callback:Function;// = null public var operation:String;// = null public var error:Event;// = null public var data;// = null public var _loader:URLLoader; public var key:String;// = null public function MochiUserData(key:String="", callback:Function=null){ super(); this.key = key; this.callback = callback; } public function serialize(obj):ByteArray{ var arr:ByteArray = new ByteArray(); arr.objectEncoding = ObjectEncoding.AMF3; arr.writeObject(obj); arr.compress(); return (arr); } public function errorHandler(event:IOErrorEvent):void{ data = null; error = event; if (callback != null){ performCallback(); } else { dispatchEvent(event); }; close(); } public function putEvent(obj):void{ request("put", serialize(obj)); } public function deserialize(arr:ByteArray){ arr.objectEncoding = ObjectEncoding.AMF3; arr.uncompress(); return (arr.readObject()); } public function securityErrorHandler(event:SecurityErrorEvent):void{ errorHandler(new IOErrorEvent(IOErrorEvent.IO_ERROR, false, false, ("security error: " + event.toString()))); } public function getEvent():void{ request("get", serialize(null)); } override public function toString():String{ return ((((((((("[MochiUserData operation=" + operation) + " key=\"") + key) + "\" data=") + data) + " error=\"") + error) + "\"]")); } public function performCallback():void{ callback(this); //unresolved jump var _slot1 = e; trace(("[MochiUserData] exception during callback: " + _slot1)); } public function request(_operation:String, _data:ByteArray):void{ var _operation = _operation; var _data = _data; operation = _operation; var api_url:String = MochiSocial.getAPIURL(); var api_token:String = MochiSocial.getAPIToken(); if ((((api_url == null)) || ((api_token == null)))){ errorHandler(new IOErrorEvent(IOErrorEvent.IO_ERROR, false, false, "not logged in")); return; }; _loader = new URLLoader(); var args:URLVariables = new URLVariables(); args.op = _operation; args.key = key; var req:URLRequest = new URLRequest((((MochiSocial.getAPIURL() + "/") + "MochiUserData?") + args.toString())); req.method = URLRequestMethod.POST; req.contentType = "application/x-mochi-userdata"; req.requestHeaders = [new URLRequestHeader("x-mochi-services-version", MochiServices.getVersion()), new URLRequestHeader("x-mochi-api-token", api_token)]; req.data = _data; _loader.dataFormat = URLLoaderDataFormat.BINARY; _loader.addEventListener(Event.COMPLETE, completeHandler); _loader.addEventListener(IOErrorEvent.IO_ERROR, errorHandler); _loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler); _loader.load(req); //unresolved jump var _slot1 = e; errorHandler(new IOErrorEvent(IOErrorEvent.IO_ERROR, false, false, ("security error: " + _slot1.toString()))); } public function completeHandler(event:Event):void{ var event = event; if (_loader.data.length){ data = deserialize(_loader.data); } else { data = null; }; //unresolved jump var _slot1 = e; errorHandler(new IOErrorEvent(IOErrorEvent.IO_ERROR, false, false, ("deserialize error: " + _slot1.toString()))); return; if (callback != null){ performCallback(); } else { dispatchEvent(event); }; close(); } public function close():void{ if (_loader){ _loader.removeEventListener(Event.COMPLETE, completeHandler); _loader.removeEventListener(IOErrorEvent.IO_ERROR, errorHandler); _loader.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler); _loader.close(); _loader = null; }; error = null; callback = null; } public static function get(key:String, callback:Function):void{ var userData:MochiUserData = new MochiUserData(key, callback); userData.getEvent(); } public static function put(key:String, obj, callback:Function):void{ var userData:MochiUserData = new MochiUserData(key, callback); userData.putEvent(obj); } } }//package mochi.as3
Section 12
//IAutomationObject (mx.automation.IAutomationObject) package mx.automation { import flash.events.*; public interface IAutomationObject { function createAutomationIDPart(:IAutomationObject):Object; function get automationName():String; function get showInAutomationHierarchy():Boolean; function set automationName(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\automation;IAutomationObject.as:String):void; function getAutomationChildAt(delegate:int):IAutomationObject; function get automationDelegate():Object; function get automationTabularData():Object; function resolveAutomationIDPart(Object:Object):Array; function replayAutomatableEvent(void:Event):Boolean; function set automationDelegate(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\automation;IAutomationObject.as:Object):void; function get automationValue():Array; function get numAutomationChildren():int; function set showInAutomationHierarchy(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\automation;IAutomationObject.as:Boolean):void; } }//package mx.automation
Section 13
//BindabilityInfo (mx.binding.BindabilityInfo) package mx.binding { import mx.events.*; public class BindabilityInfo { private var classChangeEvents:Object; private var typeDescription:XML; private var childChangeEvents:Object; public static const METHOD:String = "method"; public static const ACCESSOR:String = "accessor"; public static const CHANGE_EVENT:String = "ChangeEvent"; public static const NON_COMMITTING_CHANGE_EVENT:String = "NonCommittingChangeEvent"; public static const BINDABLE:String = "Bindable"; mx_internal static const VERSION:String = "3.2.0.3958"; public static const MANAGED:String = "Managed"; public function BindabilityInfo(typeDescription:XML){ childChangeEvents = {}; super(); this.typeDescription = typeDescription; } private function addChangeEvents(metadata:XMLList, eventListObj:Object, isCommit:Boolean):void{ var md:XML; var arg:XMLList; var eventName:String; for each (md in metadata) { arg = md.arg; if (arg.length() > 0){ eventName = arg[0].@value; eventListObj[eventName] = isCommit; } else { trace((("warning: unconverted Bindable metadata in class '" + typeDescription.@name) + "'")); }; }; } private function getClassChangeEvents():Object{ if (!classChangeEvents){ classChangeEvents = {}; addBindabilityEvents(typeDescription.metadata, classChangeEvents); if (typeDescription.metadata.(@name == MANAGED).length() > 0){ classChangeEvents[PropertyChangeEvent.PROPERTY_CHANGE] = true; }; }; return (classChangeEvents); } private function addBindabilityEvents(metadata:XMLList, eventListObj:Object):void{ var metadata = metadata; var eventListObj = eventListObj; addChangeEvents(metadata.(@name == BINDABLE), eventListObj, true); addChangeEvents(metadata.(@name == CHANGE_EVENT), eventListObj, true); addChangeEvents(metadata.(@name == NON_COMMITTING_CHANGE_EVENT), eventListObj, false); } private function copyProps(from:Object, to:Object):Object{ var propName:String; for (propName in from) { to[propName] = from[propName]; }; return (to); } public function getChangeEvents(childName:String):Object{ var childDesc:XMLList; var numChildren:int; var childName = childName; var changeEvents:Object = childChangeEvents[childName]; if (!changeEvents){ changeEvents = copyProps(getClassChangeEvents(), {}); childDesc = (typeDescription.accessor.(@name == childName) + typeDescription.method.(@name == childName)); numChildren = childDesc.length(); if (numChildren == 0){ if (!typeDescription.@dynamic){ trace((((("warning: no describeType entry for '" + childName) + "' on non-dynamic type '") + typeDescription.@name) + "'")); }; } else { if (numChildren > 1){ trace(((((("warning: multiple describeType entries for '" + childName) + "' on type '") + typeDescription.@name) + "':\n") + childDesc)); }; addBindabilityEvents(childDesc.metadata, changeEvents); }; childChangeEvents[childName] = changeEvents; }; return (changeEvents); } } }//package mx.binding
Section 14
//Binding (mx.binding.Binding) package mx.binding { import flash.utils.*; public class Binding { mx_internal var destFunc:Function; mx_internal var srcFunc:Function; mx_internal var destString:String; mx_internal var document:Object; private var hasHadValue:Boolean; mx_internal var disabledRequests:Dictionary; mx_internal var isExecuting:Boolean; mx_internal var isHandlingEvent:Boolean; public var twoWayCounterpart:Binding; private var wrappedFunctionSuccessful:Boolean; mx_internal var _isEnabled:Boolean; public var uiComponentWatcher:int; private var lastValue:Object; mx_internal static const VERSION:String = "3.2.0.3958"; public function Binding(document:Object, srcFunc:Function, destFunc:Function, destString:String){ super(); this.document = document; this.srcFunc = srcFunc; this.destFunc = destFunc; this.destString = destString; _isEnabled = true; isExecuting = false; isHandlingEvent = false; hasHadValue = false; uiComponentWatcher = -1; BindingManager.addBinding(document, destString, this); } private function registerDisabledExecute(o:Object):void{ if (o != null){ disabledRequests = ((disabledRequests)!=null) ? disabledRequests : new Dictionary(true); disabledRequests[o] = true; }; } protected function wrapFunctionCall(thisArg:Object, wrappedFunction:Function, object:Object=null, ... _args):Object{ var result:Object; var thisArg = thisArg; var wrappedFunction = wrappedFunction; var object = object; var args = _args; wrappedFunctionSuccessful = false; result = wrappedFunction.apply(thisArg, args); wrappedFunctionSuccessful = true; return (result); //unresolved jump var _slot1 = itemPendingError; _slot1.addResponder(new EvalBindingResponder(this, object)); if (BindingManager.debugDestinationStrings[destString]){ trace(((("Binding: destString = " + destString) + ", error = ") + _slot1)); }; //unresolved jump var _slot1 = rangeError; if (BindingManager.debugDestinationStrings[destString]){ trace(((("Binding: destString = " + destString) + ", error = ") + _slot1)); }; //unresolved jump var _slot1 = error; if (((((((((!((_slot1.errorID == 1006))) && (!((_slot1.errorID == 1009))))) && (!((_slot1.errorID == 1010))))) && (!((_slot1.errorID == 1055))))) && (!((_slot1.errorID == 1069))))){ throw (_slot1); } else { if (BindingManager.debugDestinationStrings[destString]){ trace(((("Binding: destString = " + destString) + ", error = ") + _slot1)); }; }; return (null); } public function watcherFired(commitEvent:Boolean, cloneIndex:int):void{ var commitEvent = commitEvent; var cloneIndex = cloneIndex; if (isHandlingEvent){ return; }; try { try { isHandlingEvent = true; execute(cloneIndex); } finally { }; } finally { isHandlingEvent = false; }; } private function nodeSeqEqual(x:XMLList, y:XMLList):Boolean{ var i:uint; var n:uint = x.length(); if (n == y.length()){ i = 0; while ((((i < n)) && ((x[i] === y[i])))) { i++; }; return ((i == n)); //unresolved jump }; return (false); } mx_internal function set isEnabled(value:Boolean):void{ _isEnabled = value; if (value){ processDisabledRequests(); }; } private function processDisabledRequests():void{ var key:Object; if (disabledRequests != null){ for (key in disabledRequests) { execute(key); }; disabledRequests = null; }; } public function execute(o:Object=null):void{ var o = o; if (!isEnabled){ if (o != null){ registerDisabledExecute(o); }; return; }; if (((isExecuting) || (((twoWayCounterpart) && (twoWayCounterpart.isExecuting))))){ hasHadValue = true; return; }; try { try { isExecuting = true; wrapFunctionCall(this, innerExecute, o); } finally { }; } finally { isExecuting = false; }; } mx_internal function get isEnabled():Boolean{ return (_isEnabled); } private function innerExecute():void{ var value:Object = wrapFunctionCall(document, srcFunc); if (BindingManager.debugDestinationStrings[destString]){ trace(((("Binding: destString = " + destString) + ", srcFunc result = ") + value)); }; if (((hasHadValue) || (wrappedFunctionSuccessful))){ if (((!((((((lastValue is XML)) && (lastValue.hasComplexContent()))) && ((lastValue === value))))) && (!((((((((lastValue is XMLList)) && (lastValue.hasComplexContent()))) && ((value is XMLList)))) && (nodeSeqEqual((lastValue as XMLList), (value as XMLList)))))))){ destFunc.call(document, value); lastValue = value; hasHadValue = true; }; }; } } }//package mx.binding
Section 15
//BindingManager (mx.binding.BindingManager) package mx.binding { public class BindingManager { mx_internal static const VERSION:String = "3.2.0.3958"; static var debugDestinationStrings:Object = {}; public function BindingManager(){ super(); } public static function executeBindings(document:Object, destStr:String, destObj:Object):void{ var binding:String; if (((!(destStr)) || ((destStr == "")))){ return; }; if (((((((document) && ((((document is IBindingClient)) || (document.hasOwnProperty("_bindingsByDestination")))))) && (document._bindingsByDestination))) && (document._bindingsBeginWithWord[getFirstWord(destStr)]))){ for (binding in document._bindingsByDestination) { if (binding.charAt(0) == destStr.charAt(0)){ if ((((((binding.indexOf((destStr + ".")) == 0)) || ((binding.indexOf((destStr + "[")) == 0)))) || ((binding == destStr)))){ document._bindingsByDestination[binding].execute(destObj); }; }; }; }; } public static function addBinding(document:Object, destStr:String, b:Binding):void{ if (!document._bindingsByDestination){ document._bindingsByDestination = {}; document._bindingsBeginWithWord = {}; }; document._bindingsByDestination[destStr] = b; document._bindingsBeginWithWord[getFirstWord(destStr)] = true; } public static function debugBinding(destinationString:String):void{ debugDestinationStrings[destinationString] = true; } private static function getFirstWord(destStr:String):String{ var indexPeriod:int = destStr.indexOf("."); var indexBracket:int = destStr.indexOf("["); if (indexPeriod == indexBracket){ return (destStr); }; var minIndex:int = Math.min(indexPeriod, indexBracket); if (minIndex == -1){ minIndex = Math.max(indexPeriod, indexBracket); }; return (destStr.substr(0, minIndex)); } public static function setEnabled(document:Object, isEnabled:Boolean):void{ var bindings:Array; var i:uint; var binding:Binding; if ((((document is IBindingClient)) && (document._bindings))){ bindings = (document._bindings as Array); i = 0; while (i < bindings.length) { binding = bindings[i]; binding.isEnabled = isEnabled; i++; }; }; } } }//package mx.binding
Section 16
//EvalBindingResponder (mx.binding.EvalBindingResponder) package mx.binding { import mx.rpc.*; public class EvalBindingResponder implements IResponder { private var binding:Binding; private var object:Object; mx_internal static const VERSION:String = "3.2.0.3958"; public function EvalBindingResponder(binding:Binding, object:Object){ super(); this.binding = binding; this.object = object; } public function fault(data:Object):void{ } public function result(data:Object):void{ binding.execute(object); } } }//package mx.binding
Section 17
//IBindingClient (mx.binding.IBindingClient) package mx.binding { public interface IBindingClient { } }//package mx.binding
Section 18
//IWatcherSetupUtil (mx.binding.IWatcherSetupUtil) package mx.binding { public interface IWatcherSetupUtil { function setup(_arg1:Object, _arg2:Function, _arg3:Array, _arg4:Array):void; } }//package mx.binding
Section 19
//PropertyWatcher (mx.binding.PropertyWatcher) package mx.binding { import mx.core.*; import flash.events.*; import mx.events.*; import flash.utils.*; import mx.utils.*; public class PropertyWatcher extends Watcher { protected var propertyGetter:Function; private var parentObj:Object; protected var events:Object; private var useRTTI:Boolean; private var _propertyName:String; mx_internal static const VERSION:String = "3.2.0.3958"; public function PropertyWatcher(propertyName:String, events:Object, listeners:Array, propertyGetter:Function=null){ super(listeners); _propertyName = propertyName; this.events = events; this.propertyGetter = propertyGetter; useRTTI = !(events); } private function eventNamesToString():String{ var ev:String; var s:String = " "; for (ev in events) { s = (s + (ev + " ")); }; return (s); } override public function updateParent(parent:Object):void{ var eventType:String; var info:BindabilityInfo; if (((parentObj) && ((parentObj is IEventDispatcher)))){ for (eventType in events) { parentObj.removeEventListener(eventType, eventHandler); }; }; if ((parent is Watcher)){ parentObj = parent.value; } else { parentObj = parent; }; if (parentObj){ if (useRTTI){ events = {}; if ((parentObj is IEventDispatcher)){ info = DescribeTypeCache.describeType(parentObj).bindabilityInfo; events = info.getChangeEvents(_propertyName); if (objectIsEmpty(events)){ trace((((("warning: unable to bind to property '" + _propertyName) + "' on class '") + getQualifiedClassName(parentObj)) + "'")); } else { addParentEventListeners(); }; } else { trace((((("warning: unable to bind to property '" + _propertyName) + "' on class '") + getQualifiedClassName(parentObj)) + "' (class is not an IEventDispatcher)")); }; } else { if ((parentObj is IEventDispatcher)){ addParentEventListeners(); }; }; }; wrapUpdate(updateProperty); } private function objectIsEmpty(o:Object):Boolean{ var p:String; for (p in o) { return (false); }; return (true); } override protected function shallowClone():Watcher{ var clone:PropertyWatcher = new PropertyWatcher(_propertyName, events, listeners, propertyGetter); return (clone); } private function traceInfo():String{ return ((((((("Watcher(" + getQualifiedClassName(parentObj)) + ".") + _propertyName) + "): events = [") + eventNamesToString()) + (useRTTI) ? "] (RTTI)" : "]")); } public function get propertyName():String{ return (_propertyName); } private function addParentEventListeners():void{ var eventType:String; for (eventType in events) { if (eventType != "__NoChangeEvent__"){ parentObj.addEventListener(eventType, eventHandler, false, EventPriority.BINDING, true); }; }; } private function updateProperty():void{ if (parentObj){ if (_propertyName == "this"){ value = parentObj; } else { if (propertyGetter != null){ value = propertyGetter.apply(parentObj, [_propertyName]); } else { value = parentObj[_propertyName]; }; }; } else { value = null; }; updateChildren(); } public function eventHandler(event:Event):void{ var propName:Object; if ((event is PropertyChangeEvent)){ propName = PropertyChangeEvent(event).property; if (propName != _propertyName){ return; }; }; wrapUpdate(updateProperty); notifyListeners(events[event.type]); } } }//package mx.binding
Section 20
//Watcher (mx.binding.Watcher) package mx.binding { public class Watcher { protected var children:Array; public var value:Object; protected var cloneIndex:int; protected var listeners:Array; mx_internal static const VERSION:String = "3.2.0.3958"; public function Watcher(listeners:Array=null){ super(); this.listeners = listeners; } public function removeChildren(startingIndex:int):void{ children.splice(startingIndex); } public function updateChildren():void{ var n:int; var i:int; if (children){ n = children.length; i = 0; while (i < n) { children[i].updateParent(this); i++; }; }; } protected function shallowClone():Watcher{ return (new Watcher()); } protected function wrapUpdate(wrappedFunction:Function):void{ var wrappedFunction = wrappedFunction; wrappedFunction.apply(this); //unresolved jump var _slot1 = itemPendingError; value = null; //unresolved jump var _slot1 = rangeError; value = null; //unresolved jump var _slot1 = error; if (((((((((!((_slot1.errorID == 1006))) && (!((_slot1.errorID == 1009))))) && (!((_slot1.errorID == 1010))))) && (!((_slot1.errorID == 1055))))) && (!((_slot1.errorID == 1069))))){ throw (_slot1); }; } private function valueChanged(oldval:Object):Boolean{ if ((((oldval == null)) && ((value == null)))){ return (false); }; var valType = typeof(value); if (valType == "string"){ if ((((oldval == null)) && ((value == "")))){ return (false); }; return (!((oldval == value))); }; if (valType == "number"){ if ((((oldval == null)) && ((value == 0)))){ return (false); }; return (!((oldval == value))); }; if (valType == "boolean"){ if ((((oldval == null)) && ((value == false)))){ return (false); }; return (!((oldval == value))); }; return (true); } public function notifyListeners(commitEvent:Boolean):void{ var n:int; var i:int; if (listeners){ n = listeners.length; i = 0; while (i < n) { listeners[i].watcherFired(commitEvent, cloneIndex); i++; }; }; } protected function deepClone(index:int):Watcher{ var n:int; var i:int; var clonedChild:Watcher; var w:Watcher = shallowClone(); w.cloneIndex = index; if (listeners){ w.listeners = listeners.concat(); }; if (children){ n = children.length; i = 0; while (i < n) { clonedChild = children[i].deepClone(index); w.addChild(clonedChild); i++; }; }; return (w); } public function updateParent(parent:Object):void{ } public function addChild(child:Watcher):void{ if (!children){ children = [child]; } else { children.push(child); }; child.updateParent(this); } } }//package mx.binding
Section 21
//CollectionViewError (mx.collections.errors.CollectionViewError) package mx.collections.errors { public class CollectionViewError extends Error { mx_internal static const VERSION:String = "3.2.0.3958"; public function CollectionViewError(message:String){ super(message); } } }//package mx.collections.errors
Section 22
//CursorError (mx.collections.errors.CursorError) package mx.collections.errors { public class CursorError extends Error { mx_internal static const VERSION:String = "3.2.0.3958"; public function CursorError(message:String){ super(message); } } }//package mx.collections.errors
Section 23
//ItemPendingError (mx.collections.errors.ItemPendingError) package mx.collections.errors { import mx.rpc.*; public class ItemPendingError extends Error { private var _responders:Array; mx_internal static const VERSION:String = "3.2.0.3958"; public function ItemPendingError(message:String){ super(message); } public function get responders():Array{ return (_responders); } public function addResponder(responder:IResponder):void{ if (!_responders){ _responders = []; }; _responders.push(responder); } } }//package mx.collections.errors
Section 24
//SortError (mx.collections.errors.SortError) package mx.collections.errors { public class SortError extends Error { mx_internal static const VERSION:String = "3.2.0.3958"; public function SortError(message:String){ super(message); } } }//package mx.collections.errors
Section 25
//ArrayCollection (mx.collections.ArrayCollection) package mx.collections { import flash.utils.*; public class ArrayCollection extends ListCollectionView implements IExternalizable { mx_internal static const VERSION:String = "3.2.0.3958"; public function ArrayCollection(source:Array=null){ super(); this.source = source; } public function set source(s:Array):void{ list = new ArrayList(s); } public function readExternal(input:IDataInput):void{ if ((list is IExternalizable)){ IExternalizable(list).readExternal(input); } else { source = (input.readObject() as Array); }; } public function writeExternal(output:IDataOutput):void{ if ((list is IExternalizable)){ IExternalizable(list).writeExternal(output); } else { output.writeObject(source); }; } public function get source():Array{ if (((list) && ((list is ArrayList)))){ return (ArrayList(list).source); }; return (null); } } }//package mx.collections
Section 26
//ArrayList (mx.collections.ArrayList) package mx.collections { import mx.core.*; import flash.events.*; import mx.events.*; import mx.resources.*; import flash.utils.*; import mx.utils.*; public class ArrayList extends EventDispatcher implements IList, IExternalizable, IPropertyChangeNotifier { private var _source:Array; private var _dispatchEvents:int;// = 0 private var _uid:String; private var resourceManager:IResourceManager; mx_internal static const VERSION:String = "3.2.0.3958"; public function ArrayList(source:Array=null){ resourceManager = ResourceManager.getInstance(); super(); disableEvents(); this.source = source; enableEvents(); _uid = UIDUtil.createUID(); } public function itemUpdated(item:Object, property:Object=null, oldValue:Object=null, newValue:Object=null):void{ var event:PropertyChangeEvent = new PropertyChangeEvent(PropertyChangeEvent.PROPERTY_CHANGE); event.kind = PropertyChangeEventKind.UPDATE; event.source = item; event.property = property; event.oldValue = oldValue; event.newValue = newValue; itemUpdateHandler(event); } public function readExternal(input:IDataInput):void{ source = input.readObject(); } private function internalDispatchEvent(kind:String, item:Object=null, location:int=-1):void{ var event:CollectionEvent; var objEvent:PropertyChangeEvent; if (_dispatchEvents == 0){ if (hasEventListener(CollectionEvent.COLLECTION_CHANGE)){ event = new CollectionEvent(CollectionEvent.COLLECTION_CHANGE); event.kind = kind; event.items.push(item); event.location = location; dispatchEvent(event); }; if (((hasEventListener(PropertyChangeEvent.PROPERTY_CHANGE)) && ((((kind == CollectionEventKind.ADD)) || ((kind == CollectionEventKind.REMOVE)))))){ objEvent = new PropertyChangeEvent(PropertyChangeEvent.PROPERTY_CHANGE); objEvent.property = location; if (kind == CollectionEventKind.ADD){ objEvent.newValue = item; } else { objEvent.oldValue = item; }; dispatchEvent(objEvent); }; }; } public function removeAll():void{ var len:int; var i:int; if (length > 0){ len = length; i = 0; while (i < len) { stopTrackUpdates(source[i]); i++; }; source.splice(0, length); internalDispatchEvent(CollectionEventKind.RESET); }; } public function removeItemAt(index:int):Object{ var message:String; if ((((index < 0)) || ((index >= length)))){ message = resourceManager.getString("collections", "outOfBounds", [index]); throw (new RangeError(message)); }; var removed:Object = source.splice(index, 1)[0]; stopTrackUpdates(removed); internalDispatchEvent(CollectionEventKind.REMOVE, removed, index); return (removed); } public function get uid():String{ return (_uid); } public function getItemIndex(item:Object):int{ return (ArrayUtil.getItemIndex(item, source)); } public function writeExternal(output:IDataOutput):void{ output.writeObject(_source); } public function addItem(item:Object):void{ addItemAt(item, length); } public function toArray():Array{ return (source.concat()); } private function disableEvents():void{ _dispatchEvents--; } public function get source():Array{ return (_source); } public function getItemAt(index:int, prefetch:int=0):Object{ var message:String; if ((((index < 0)) || ((index >= length)))){ message = resourceManager.getString("collections", "outOfBounds", [index]); throw (new RangeError(message)); }; return (source[index]); } public function set uid(value:String):void{ _uid = value; } public function setItemAt(item:Object, index:int):Object{ var message:String; var hasCollectionListener:Boolean; var hasPropertyListener:Boolean; var updateInfo:PropertyChangeEvent; var event:CollectionEvent; if ((((index < 0)) || ((index >= length)))){ message = resourceManager.getString("collections", "outOfBounds", [index]); throw (new RangeError(message)); }; var oldItem:Object = source[index]; source[index] = item; stopTrackUpdates(oldItem); startTrackUpdates(item); if (_dispatchEvents == 0){ hasCollectionListener = hasEventListener(CollectionEvent.COLLECTION_CHANGE); hasPropertyListener = hasEventListener(PropertyChangeEvent.PROPERTY_CHANGE); if (((hasCollectionListener) || (hasPropertyListener))){ updateInfo = new PropertyChangeEvent(PropertyChangeEvent.PROPERTY_CHANGE); updateInfo.kind = PropertyChangeEventKind.UPDATE; updateInfo.oldValue = oldItem; updateInfo.newValue = item; updateInfo.property = index; }; if (hasCollectionListener){ event = new CollectionEvent(CollectionEvent.COLLECTION_CHANGE); event.kind = CollectionEventKind.REPLACE; event.location = index; event.items.push(updateInfo); dispatchEvent(event); }; if (hasPropertyListener){ dispatchEvent(updateInfo); }; }; return (oldItem); } public function get length():int{ if (source){ return (source.length); }; return (0); } protected function stopTrackUpdates(item:Object):void{ if (((item) && ((item is IEventDispatcher)))){ IEventDispatcher(item).removeEventListener(PropertyChangeEvent.PROPERTY_CHANGE, itemUpdateHandler); }; } protected function itemUpdateHandler(event:PropertyChangeEvent):void{ var objEvent:PropertyChangeEvent; var index:uint; internalDispatchEvent(CollectionEventKind.UPDATE, event); if ((((_dispatchEvents == 0)) && (hasEventListener(PropertyChangeEvent.PROPERTY_CHANGE)))){ objEvent = PropertyChangeEvent(event.clone()); index = getItemIndex(event.target); objEvent.property = ((index.toString() + ".") + event.property); dispatchEvent(objEvent); }; } public function addItemAt(item:Object, index:int):void{ var message:String; if ((((index < 0)) || ((index > length)))){ message = resourceManager.getString("collections", "outOfBounds", [index]); throw (new RangeError(message)); }; source.splice(index, 0, item); startTrackUpdates(item); internalDispatchEvent(CollectionEventKind.ADD, item, index); } public function removeItem(item:Object):Boolean{ var index:int = getItemIndex(item); var result = (index >= 0); if (result){ removeItemAt(index); }; return (result); } protected function startTrackUpdates(item:Object):void{ if (((item) && ((item is IEventDispatcher)))){ IEventDispatcher(item).addEventListener(PropertyChangeEvent.PROPERTY_CHANGE, itemUpdateHandler, false, 0, true); }; } override public function toString():String{ if (source){ return (source.toString()); }; return (getQualifiedClassName(this)); } private function enableEvents():void{ _dispatchEvents++; if (_dispatchEvents > 0){ _dispatchEvents = 0; }; } public function set source(s:Array):void{ var i:int; var len:int; var event:CollectionEvent; if (((_source) && (_source.length))){ len = _source.length; i = 0; while (i < len) { stopTrackUpdates(_source[i]); i++; }; }; _source = (s) ? s : []; len = _source.length; i = 0; while (i < len) { startTrackUpdates(_source[i]); i++; }; if (_dispatchEvents == 0){ event = new CollectionEvent(CollectionEvent.COLLECTION_CHANGE); event.kind = CollectionEventKind.RESET; dispatchEvent(event); }; } } }//package mx.collections
Section 27
//CursorBookmark (mx.collections.CursorBookmark) package mx.collections { public class CursorBookmark { private var _value:Object; mx_internal static const VERSION:String = "3.2.0.3958"; private static var _first:CursorBookmark; private static var _last:CursorBookmark; private static var _current:CursorBookmark; public function CursorBookmark(value:Object){ super(); _value = value; } public function get value():Object{ return (_value); } public function getViewIndex():int{ return (-1); } public static function get LAST():CursorBookmark{ if (!_last){ _last = new CursorBookmark("${L}"); }; return (_last); } public static function get FIRST():CursorBookmark{ if (!_first){ _first = new CursorBookmark("${F}"); }; return (_first); } public static function get CURRENT():CursorBookmark{ if (!_current){ _current = new CursorBookmark("${C}"); }; return (_current); } } }//package mx.collections
Section 28
//ICollectionView (mx.collections.ICollectionView) package mx.collections { import flash.events.*; public interface ICollectionView extends IEventDispatcher { function set filterFunction(mx.collections:ICollectionView/mx.collections:ICollectionView:length/get:Function):void; function enableAutoUpdate():void; function get length():int; function disableAutoUpdate():void; function itemUpdated(_arg1:Object, _arg2:Object=null, _arg3:Object=null, _arg4:Object=null):void; function get filterFunction():Function; function createCursor():IViewCursor; function refresh():Boolean; function set sort(mx.collections:ICollectionView/mx.collections:ICollectionView:length/get:Sort):void; function get sort():Sort; function contains(Function:Object):Boolean; } }//package mx.collections
Section 29
//IList (mx.collections.IList) package mx.collections { import flash.events.*; public interface IList extends IEventDispatcher { function addItem(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\collections;IList.as:Object):void; function get length():int; function addItemAt(_arg1:Object, _arg2:int):void; function itemUpdated(_arg1:Object, _arg2:Object=null, _arg3:Object=null, _arg4:Object=null):void; function getItemIndex(:Object):int; function removeItemAt(mx.collections:IList/mx.collections:IList:length/get:int):Object; function getItemAt(_arg1:int, _arg2:int=0):Object; function removeAll():void; function toArray():Array; function setItemAt(_arg1:Object, _arg2:int):Object; } }//package mx.collections
Section 30
//ItemResponder (mx.collections.ItemResponder) package mx.collections { import mx.rpc.*; public class ItemResponder implements IResponder { private var _faultHandler:Function; private var _token:Object; private var _resultHandler:Function; mx_internal static const VERSION:String = "3.2.0.3958"; public function ItemResponder(result:Function, fault:Function, token:Object=null){ super(); _resultHandler = result; _faultHandler = fault; _token = token; } public function result(data:Object):void{ _resultHandler(data, _token); } public function fault(info:Object):void{ _faultHandler(info, _token); } } }//package mx.collections
Section 31
//IViewCursor (mx.collections.IViewCursor) package mx.collections { import flash.events.*; public interface IViewCursor extends IEventDispatcher { function get current():Object; function moveNext():Boolean; function get view():ICollectionView; function movePrevious():Boolean; function remove():Object; function findLast(:Object):Boolean; function get beforeFirst():Boolean; function get afterLast():Boolean; function findAny(:Object):Boolean; function get bookmark():CursorBookmark; function findFirst(:Object):Boolean; function seek(_arg1:CursorBookmark, _arg2:int=0, _arg3:int=0):void; function insert(mx.collections:IViewCursor/mx.collections:IViewCursor:beforeFirst/get:Object):void; } }//package mx.collections
Section 32
//ListCollectionView (mx.collections.ListCollectionView) package mx.collections { import mx.core.*; import flash.events.*; import mx.events.*; import mx.resources.*; import flash.utils.*; import mx.utils.*; import mx.collections.errors.*; public class ListCollectionView extends Proxy implements ICollectionView, IList, IMXMLObject { private var autoUpdateCounter:int; private var _list:IList; private var _filterFunction:Function; protected var localIndex:Array; mx_internal var dispatchResetEvent:Boolean;// = true private var pendingUpdates:Array; private var resourceManager:IResourceManager; private var eventDispatcher:EventDispatcher; private var revision:int; private var _sort:Sort; mx_internal static const VERSION:String = "3.2.0.3958"; public function ListCollectionView(list:IList=null){ resourceManager = ResourceManager.getInstance(); super(); eventDispatcher = new EventDispatcher(this); this.list = list; } private function handlePendingUpdates():void{ var pu:Array; var singleUpdateEvent:CollectionEvent; var i:int; var event:CollectionEvent; var j:int; if (pendingUpdates){ pu = pendingUpdates; pendingUpdates = null; i = 0; while (i < pu.length) { event = pu[i]; if (event.kind == CollectionEventKind.UPDATE){ if (!singleUpdateEvent){ singleUpdateEvent = event; } else { j = 0; while (j < event.items.length) { singleUpdateEvent.items.push(event.items[j]); j++; }; }; } else { listChangeHandler(event); }; i++; }; if (singleUpdateEvent){ listChangeHandler(singleUpdateEvent); }; }; } public function removeEventListener(type:String, listener:Function, useCapture:Boolean=false):void{ eventDispatcher.removeEventListener(type, listener, useCapture); } private function replaceItemsInView(items:Array, location:int, dispatch:Boolean=true):void{ var len:int; var oldItems:Array; var newItems:Array; var i:int; var propertyEvent:PropertyChangeEvent; var event:CollectionEvent; if (localIndex){ len = items.length; oldItems = []; newItems = []; i = 0; while (i < len) { propertyEvent = items[i]; oldItems.push(propertyEvent.oldValue); newItems.push(propertyEvent.newValue); i++; }; removeItemsFromView(oldItems, location, dispatch); addItemsToView(newItems, location, dispatch); } else { event = new CollectionEvent(CollectionEvent.COLLECTION_CHANGE); event.kind = CollectionEventKind.REPLACE; event.location = location; event.items = items; dispatchEvent(event); }; } public function willTrigger(type:String):Boolean{ return (eventDispatcher.willTrigger(type)); } private function getFilteredItemIndex(item:Object):int{ var prevItem:Object; var len:int; var j:int; var loc:int = list.getItemIndex(item); if (loc == 0){ return (0); }; var i:int = (loc - 1); while (i >= 0) { prevItem = list.getItemAt(i); if (filterFunction(prevItem)){ len = localIndex.length; j = 0; while (j < len) { if (localIndex[j] == prevItem){ return ((j + 1)); }; j++; }; }; i--; }; return (0); } mx_internal function findItem(values:Object, mode:String, insertIndex:Boolean=false):int{ var message:String; if (!sort){ message = resourceManager.getString("collections", "itemNotFound"); throw (new CollectionViewError(message)); }; if (localIndex.length == 0){ return ((insertIndex) ? 0 : -1); }; return (sort.findItem(localIndex, values, mode, insertIndex)); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function nextName(index:int):String{ return ((index - 1).toString()); } public function removeAll():void{ var i:int; var len:int = length; if (len > 0){ if (localIndex){ i = (len - 1); while (i >= 0) { removeItemAt(i); i--; }; } else { list.removeAll(); }; }; } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function hasProperty(name):Boolean{ var n:Number; var name = name; if ((name is QName)){ name = name.localName; }; var index = -1; n = parseInt(String(name)); if (!isNaN(n)){ index = int(n); }; //unresolved jump var _slot1 = e; if (index == -1){ return (false); }; return ((((index >= 0)) && ((index < length)))); } public function getItemAt(index:int, prefetch:int=0):Object{ var message:String; if ((((index < 0)) || ((index >= length)))){ message = resourceManager.getString("collections", "outOfBounds", [index]); throw (new RangeError(message)); }; if (localIndex){ return (localIndex[index]); }; if (list){ return (list.getItemAt(index, prefetch)); }; return (null); } private function moveItemInView(item:Object, dispatch:Boolean=true, updateEventItems:Array=null):void{ var removeLocation:int; var i:int; var addLocation:int; var event:CollectionEvent; if (localIndex){ removeLocation = -1; i = 0; while (i < localIndex.length) { if (localIndex[i] == item){ removeLocation = i; break; }; i++; }; if (removeLocation > -1){ localIndex.splice(removeLocation, 1); }; addLocation = addItemsToView([item], removeLocation, false); if (dispatch){ event = new CollectionEvent(CollectionEvent.COLLECTION_CHANGE); event.items.push(item); if (((((updateEventItems) && ((addLocation == removeLocation)))) && ((addLocation > -1)))){ updateEventItems.push(item); return; }; if ((((addLocation > -1)) && ((removeLocation > -1)))){ event.kind = CollectionEventKind.MOVE; event.location = addLocation; event.oldLocation = removeLocation; } else { if (addLocation > -1){ event.kind = CollectionEventKind.ADD; event.location = addLocation; } else { if (removeLocation > -1){ event.kind = CollectionEventKind.REMOVE; event.location = removeLocation; } else { dispatch = false; }; }; }; if (dispatch){ dispatchEvent(event); }; }; }; } public function contains(item:Object):Boolean{ return (!((getItemIndex(item) == -1))); } public function get sort():Sort{ return (_sort); } private function removeItemsFromView(items:Array, sourceLocation:int, dispatch:Boolean=true):void{ var i:int; var item:Object; var loc:int; var event:CollectionEvent; var removedItems:Array = (localIndex) ? [] : items; var removeLocation:int = sourceLocation; if (localIndex){ i = 0; while (i < items.length) { item = items[i]; loc = getItemIndex(item); if (loc > -1){ localIndex.splice(loc, 1); removedItems.push(item); removeLocation = loc; }; i++; }; }; if (((dispatch) && ((removedItems.length > 0)))){ event = new CollectionEvent(CollectionEvent.COLLECTION_CHANGE); event.kind = CollectionEventKind.REMOVE; event.location = (((!(localIndex)) || ((removedItems.length == 1)))) ? removeLocation : -1; event.items = removedItems; dispatchEvent(event); }; } public function get list():IList{ return (_list); } public function addItemAt(item:Object, index:int):void{ var message:String; if ((((((index < 0)) || (!(list)))) || ((index > length)))){ message = resourceManager.getString("collections", "outOfBounds", [index]); throw (new RangeError(message)); }; var listIndex:int = index; if (((localIndex) && (sort))){ listIndex = list.length; } else { if (((localIndex) && (!((filterFunction == null))))){ if (listIndex == localIndex.length){ listIndex = list.length; } else { listIndex = list.getItemIndex(localIndex[index]); }; }; }; list.addItemAt(item, listIndex); } public function itemUpdated(item:Object, property:Object=null, oldValue:Object=null, newValue:Object=null):void{ list.itemUpdated(item, property, oldValue, newValue); } private function populateLocalIndex():void{ if (list){ localIndex = list.toArray(); } else { localIndex = []; }; } private function handlePropertyChangeEvents(events:Array):void{ var updatedItems:Array; var updateEntry:Object; var i:int; var temp:Array; var ctr:int; var updateInfo:PropertyChangeEvent; var item:Object; var defaultMove:Boolean; var j:int; var ctr1:int; var updateEvent:CollectionEvent; var eventItems:Array = events; if (((sort) || (!((filterFunction == null))))){ updatedItems = []; i = 0; while (i < events.length) { updateInfo = events[i]; if (updateInfo.target){ item = updateInfo.target; defaultMove = !((updateInfo.target == updateInfo.source)); } else { item = updateInfo.source; defaultMove = false; }; j = 0; while (j < updatedItems.length) { if (updatedItems[j].item == item){ break; }; j++; }; if (j < updatedItems.length){ updateEntry = updatedItems[j]; } else { updateEntry = {item:item, move:defaultMove, event:updateInfo}; updatedItems.push(updateEntry); }; updateEntry.move = ((((((updateEntry.move) || (filterFunction))) || (!(updateInfo.property)))) || (((sort) && (sort.propertyAffectsSort(String(updateInfo.property)))))); i++; }; eventItems = []; i = 0; while (i < updatedItems.length) { updateEntry = updatedItems[i]; if (updateEntry.move){ moveItemInView(updateEntry.item, updateEntry.item, eventItems); } else { eventItems.push(updateEntry.item); }; i++; }; temp = []; ctr = 0; while (ctr < eventItems.length) { ctr1 = 0; while (ctr1 < updatedItems.length) { if (eventItems[ctr] == updatedItems[ctr1].item){ temp.push(updatedItems[ctr1].event); }; ctr1++; }; ctr++; }; eventItems = temp; }; if (eventItems.length > 0){ updateEvent = new CollectionEvent(CollectionEvent.COLLECTION_CHANGE); updateEvent.kind = CollectionEventKind.UPDATE; updateEvent.items = eventItems; dispatchEvent(updateEvent); }; } public function set sort(s:Sort):void{ _sort = s; dispatchEvent(new Event("sortChanged")); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function nextValue(index:int){ return (getItemAt((index - 1))); } public function setItemAt(item:Object, index:int):Object{ var message:String; var oldItem:Object; if ((((((index < 0)) || (!(list)))) || ((index >= length)))){ message = resourceManager.getString("collections", "outOfBounds", [index]); throw (new RangeError(message)); }; var listIndex:int = index; if (localIndex){ if (index > localIndex.length){ listIndex = list.length; } else { oldItem = localIndex[index]; listIndex = list.getItemIndex(oldItem); }; }; return (list.setItemAt(item, listIndex)); } mx_internal function getBookmark(index:int):ListCollectionViewBookmark{ var value:Object; var message:String; var index = index; if ((((index < 0)) || ((index > length)))){ message = resourceManager.getString("collections", "invalidIndex", [index]); throw (new CollectionViewError(message)); }; value = getItemAt(index); //unresolved jump var _slot1 = e; value = null; return (new ListCollectionViewBookmark(value, this, revision, index)); } private function addItemsToView(items:Array, sourceLocation:int, dispatch:Boolean=true):int{ var loc:int; var i:int; var item:Object; var message:String; var event:CollectionEvent; var addedItems:Array = (localIndex) ? [] : items; var addLocation:int = sourceLocation; var firstOne:Boolean; if (localIndex){ loc = sourceLocation; i = 0; while (i < items.length) { item = items[i]; if ((((filterFunction == null)) || (filterFunction(item)))){ if (sort){ loc = findItem(item, Sort.ANY_INDEX_MODE, true); if (firstOne){ addLocation = loc; firstOne = false; }; } else { loc = getFilteredItemIndex(item); if (firstOne){ addLocation = loc; firstOne = false; }; }; if (((((sort) && (sort.unique))) && ((sort.compareFunction(item, localIndex[loc]) == 0)))){ message = resourceManager.getString("collections", "incorrectAddition"); throw (new CollectionViewError(message)); }; var _temp1 = loc; loc = (loc + 1); localIndex.splice(_temp1, 0, item); addedItems.push(item); } else { addLocation = -1; }; i++; }; }; if (((localIndex) && ((addedItems.length > 1)))){ addLocation = -1; }; if (((dispatch) && ((addedItems.length > 0)))){ event = new CollectionEvent(CollectionEvent.COLLECTION_CHANGE); event.kind = CollectionEventKind.ADD; event.location = addLocation; event.items = addedItems; dispatchEvent(event); }; return (addLocation); } public function dispatchEvent(event:Event):Boolean{ return (eventDispatcher.dispatchEvent(event)); } public function set list(value:IList):void{ var oldHasItems:Boolean; var newHasItems:Boolean; if (_list != value){ if (_list){ _list.removeEventListener(CollectionEvent.COLLECTION_CHANGE, listChangeHandler); oldHasItems = (_list.length > 0); }; _list = value; if (_list){ _list.addEventListener(CollectionEvent.COLLECTION_CHANGE, listChangeHandler, false, 0, true); newHasItems = (_list.length > 0); }; if (((oldHasItems) || (newHasItems))){ reset(); }; dispatchEvent(new Event("listChanged")); }; } mx_internal function getBookmarkIndex(bookmark:CursorBookmark):int{ var message:String; if (((!((bookmark is ListCollectionViewBookmark))) || (!((ListCollectionViewBookmark(bookmark).view == this))))){ message = resourceManager.getString("collections", "bookmarkNotFound"); throw (new CollectionViewError(message)); }; var bm:ListCollectionViewBookmark = ListCollectionViewBookmark(bookmark); if (bm.viewRevision != revision){ if ((((((bm.index < 0)) || ((bm.index >= length)))) || (!((getItemAt(bm.index) == bm.value))))){ bm.index = getItemIndex(bm.value); }; bm.viewRevision = revision; }; return (bm.index); } public function addEventListener(type:String, listener:Function, useCapture:Boolean=false, priority:int=0, useWeakReference:Boolean=false):void{ eventDispatcher.addEventListener(type, listener, useCapture, priority, useWeakReference); } public function getItemIndex(item:Object):int{ var i:int; var startIndex:int; var endIndex:int; var len:int; if (sort){ startIndex = sort.findItem(localIndex, item, Sort.FIRST_INDEX_MODE); if (startIndex == -1){ return (-1); }; endIndex = sort.findItem(localIndex, item, Sort.LAST_INDEX_MODE); i = startIndex; while (i <= endIndex) { if (localIndex[i] == item){ return (i); }; i++; }; return (-1); } else { if (filterFunction != null){ len = localIndex.length; i = 0; while (i < len) { if (localIndex[i] == item){ return (i); }; i++; }; return (-1); }; }; return (list.getItemIndex(item)); } public function removeItemAt(index:int):Object{ var message:String; var oldItem:Object; if ((((index < 0)) || ((index >= length)))){ message = resourceManager.getString("collections", "outOfBounds", [index]); throw (new RangeError(message)); }; var listIndex:int = index; if (localIndex){ oldItem = localIndex[index]; listIndex = list.getItemIndex(oldItem); }; return (list.removeItemAt(listIndex)); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function getProperty(name){ var n:Number; var message:String; var name = name; if ((name is QName)){ name = name.localName; }; var index = -1; n = parseInt(String(name)); if (!isNaN(n)){ index = int(n); }; //unresolved jump var _slot1 = e; if (index == -1){ message = resourceManager.getString("collections", "unknownProperty", [name]); throw (new Error(message)); }; return (getItemAt(index)); } public function enableAutoUpdate():void{ if (autoUpdateCounter > 0){ autoUpdateCounter--; if (autoUpdateCounter == 0){ handlePendingUpdates(); }; }; } mx_internal function reset():void{ var event:CollectionEvent; internalRefresh(false); if (dispatchResetEvent){ event = new CollectionEvent(CollectionEvent.COLLECTION_CHANGE); event.kind = CollectionEventKind.RESET; dispatchEvent(event); }; } public function toArray():Array{ var ret:Array; if (localIndex){ ret = localIndex.concat(); } else { ret = list.toArray(); }; return (ret); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function callProperty(name, ... _args){ return (null); } public function initialized(document:Object, id:String):void{ refresh(); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function setProperty(name, value):void{ var n:Number; var message:String; var name = name; var value = value; if ((name is QName)){ name = name.localName; }; var index = -1; n = parseInt(String(name)); if (!isNaN(n)){ index = int(n); }; //unresolved jump var _slot1 = e; if (index == -1){ message = resourceManager.getString("collections", "unknownProperty", [name]); throw (new Error(message)); }; setItemAt(value, index); } public function addItem(item:Object):void{ addItemAt(item, length); } private function internalRefresh(dispatch:Boolean):Boolean{ var tmp:Array; var len:int; var i:int; var item:Object; var refreshEvent:CollectionEvent; var dispatch = dispatch; if (((sort) || (!((filterFunction == null))))){ populateLocalIndex(); //unresolved jump var _slot1 = pending; _slot1.addResponder(new ItemResponder(function (data:Object, token:Object=null):void{ internalRefresh(dispatch); }, function (info:Object, token:Object=null):void{ })); return (false); if (filterFunction != null){ tmp = []; len = localIndex.length; i = 0; while (i < len) { item = localIndex[i]; if (filterFunction(item)){ tmp.push(item); }; i = (i + 1); }; localIndex = tmp; }; if (sort){ sort.sort(localIndex); dispatch = true; }; } else { if (localIndex){ localIndex = null; }; }; revision++; pendingUpdates = null; if (dispatch){ refreshEvent = new CollectionEvent(CollectionEvent.COLLECTION_CHANGE); refreshEvent.kind = CollectionEventKind.REFRESH; dispatchEvent(refreshEvent); }; return (true); } public function set filterFunction(f:Function):void{ _filterFunction = f; dispatchEvent(new Event("filterFunctionChanged")); } public function refresh():Boolean{ return (internalRefresh(true)); } public function get filterFunction():Function{ return (_filterFunction); } public function createCursor():IViewCursor{ return (new ListCollectionViewCursor(this)); } public function hasEventListener(type:String):Boolean{ return (eventDispatcher.hasEventListener(type)); } public function get length():int{ if (localIndex){ return (localIndex.length); }; if (list){ return (list.length); }; return (0); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function nextNameIndex(index:int):int{ return (((index < length)) ? (index + 1) : 0); } public function disableAutoUpdate():void{ autoUpdateCounter++; } public function toString():String{ if (localIndex){ return (ObjectUtil.toString(localIndex)); }; if (((list) && (Object(list).toString))){ return (Object(list).toString()); }; return (getQualifiedClassName(this)); } private function listChangeHandler(event:CollectionEvent):void{ if (autoUpdateCounter > 0){ if (!pendingUpdates){ pendingUpdates = []; }; pendingUpdates.push(event); } else { switch (event.kind){ case CollectionEventKind.ADD: addItemsToView(event.items, event.location); break; case CollectionEventKind.RESET: reset(); break; case CollectionEventKind.REMOVE: removeItemsFromView(event.items, event.location); break; case CollectionEventKind.REPLACE: replaceItemsInView(event.items, event.location); break; case CollectionEventKind.UPDATE: handlePropertyChangeEvents(event.items); break; default: dispatchEvent(event); }; }; } } }//package mx.collections import flash.events.*; import mx.events.*; import mx.resources.*; import mx.collections.errors.*; class ListCollectionViewBookmark extends CursorBookmark { mx_internal var viewRevision:int; mx_internal var index:int; mx_internal var view:ListCollectionView; private function ListCollectionViewBookmark(value:Object, view:ListCollectionView, viewRevision:int, index:int){ super(value); this.view = view; this.viewRevision = viewRevision; this.index = index; } override public function getViewIndex():int{ return (view.getBookmarkIndex(this)); } } class ListCollectionViewCursor extends EventDispatcher implements IViewCursor { private var _view:ListCollectionView; private var invalid:Boolean; private var resourceManager:IResourceManager; private var currentIndex:int; private var currentValue:Object; private static const BEFORE_FIRST_INDEX:int = -1; private static const AFTER_LAST_INDEX:int = -2; private function ListCollectionViewCursor(view:ListCollectionView){ var view = view; resourceManager = ResourceManager.getInstance(); super(); _view = view; _view.addEventListener(CollectionEvent.COLLECTION_CHANGE, collectionEventHandler, false, 0, true); currentIndex = ((view.length > 0)) ? 0 : AFTER_LAST_INDEX; if (currentIndex == 0){ setCurrent(view.getItemAt(0), false); //unresolved jump var _slot1 = e; currentIndex = BEFORE_FIRST_INDEX; setCurrent(null, false); }; } public function findAny(values:Object):Boolean{ var index:int; var values = values; checkValid(); var lcView:ListCollectionView = ListCollectionView(view); index = lcView.findItem(values, Sort.ANY_INDEX_MODE); //unresolved jump var _slot1 = e; throw (new CursorError(_slot1.message)); if (index > -1){ currentIndex = index; setCurrent(lcView.getItemAt(currentIndex)); }; return ((index > -1)); } public function remove():Object{ var oldIndex:int; var message:String; if (((beforeFirst) || (afterLast))){ message = resourceManager.getString("collections", "invalidRemove"); throw (new CursorError(message)); }; oldIndex = currentIndex; currentIndex++; if (currentIndex >= view.length){ currentIndex = AFTER_LAST_INDEX; setCurrent(null); } else { setCurrent(ListCollectionView(view).getItemAt(currentIndex)); //unresolved jump var _slot1 = e; setCurrent(null, false); ListCollectionView(view).removeItemAt(oldIndex); throw (_slot1); }; var removed:Object = ListCollectionView(view).removeItemAt(oldIndex); return (removed); } private function setCurrent(value:Object, dispatch:Boolean=true):void{ currentValue = value; if (dispatch){ dispatchEvent(new FlexEvent(FlexEvent.CURSOR_UPDATE)); }; } public function seek(bookmark:CursorBookmark, offset:int=0, prefetch:int=0):void{ var message:String; var bookmark = bookmark; var offset = offset; var prefetch = prefetch; checkValid(); if (view.length == 0){ currentIndex = AFTER_LAST_INDEX; setCurrent(null, false); return; }; var newIndex:int = currentIndex; if (bookmark == CursorBookmark.FIRST){ newIndex = 0; } else { if (bookmark == CursorBookmark.LAST){ newIndex = (view.length - 1); } else { if (bookmark != CursorBookmark.CURRENT){ newIndex = ListCollectionView(view).getBookmarkIndex(bookmark); if (newIndex < 0){ setCurrent(null); message = resourceManager.getString("collections", "bookmarkInvalid"); throw (new CursorError(message)); }; //unresolved jump var _slot1 = bmError; message = resourceManager.getString("collections", "bookmarkInvalid"); throw (new CursorError(message)); }; }; }; newIndex = (newIndex + offset); var newCurrent:Object; if (newIndex >= view.length){ currentIndex = AFTER_LAST_INDEX; } else { if (newIndex < 0){ currentIndex = BEFORE_FIRST_INDEX; } else { newCurrent = ListCollectionView(view).getItemAt(newIndex, prefetch); currentIndex = newIndex; }; }; setCurrent(newCurrent); } public function insert(item:Object):void{ var insertIndex:int; var message:String; if (afterLast){ insertIndex = view.length; } else { if (beforeFirst){ if (view.length > 0){ message = resourceManager.getString("collections", "invalidInsert"); throw (new CursorError(message)); }; insertIndex = 0; } else { insertIndex = currentIndex; }; }; ListCollectionView(view).addItemAt(item, insertIndex); } public function get afterLast():Boolean{ checkValid(); return ((((currentIndex == AFTER_LAST_INDEX)) || ((view.length == 0)))); } private function checkValid():void{ var message:String; if (invalid){ message = resourceManager.getString("collections", "invalidCursor"); throw (new CursorError(message)); }; } private function collectionEventHandler(event:CollectionEvent):void{ var event = event; switch (event.kind){ case CollectionEventKind.ADD: if (event.location <= currentIndex){ currentIndex = (currentIndex + event.items.length); }; break; case CollectionEventKind.REMOVE: if (event.location < currentIndex){ currentIndex = (currentIndex - event.items.length); } else { if (event.location == currentIndex){ if (currentIndex < view.length){ setCurrent(ListCollectionView(view).getItemAt(currentIndex)); //unresolved jump var _slot1 = error; setCurrent(null, false); } else { currentIndex = AFTER_LAST_INDEX; setCurrent(null); }; }; }; break; case CollectionEventKind.MOVE: if (event.oldLocation == currentIndex){ currentIndex = event.location; } else { if (event.oldLocation < currentIndex){ currentIndex = (currentIndex - event.items.length); }; if (event.location <= currentIndex){ currentIndex = (currentIndex + event.items.length); }; }; break; case CollectionEventKind.REFRESH: if (!((beforeFirst) || (afterLast))){ currentIndex = ListCollectionView(view).getItemIndex(currentValue); if (currentIndex == -1){ setCurrent(null); }; }; break; case CollectionEventKind.REPLACE: if (event.location == currentIndex){ setCurrent(ListCollectionView(view).getItemAt(currentIndex)); //unresolved jump var _slot1 = error; setCurrent(null, false); }; break; case CollectionEventKind.RESET: currentIndex = BEFORE_FIRST_INDEX; setCurrent(null); break; }; } public function moveNext():Boolean{ if (afterLast){ return (false); }; var tempIndex:int = (beforeFirst) ? 0 : (currentIndex + 1); if (tempIndex >= view.length){ tempIndex = AFTER_LAST_INDEX; setCurrent(null); } else { setCurrent(ListCollectionView(view).getItemAt(tempIndex)); }; currentIndex = tempIndex; return (!(afterLast)); } public function get view():ICollectionView{ checkValid(); return (_view); } public function movePrevious():Boolean{ if (beforeFirst){ return (false); }; var tempIndex:int = (afterLast) ? (view.length - 1) : (currentIndex - 1); if (tempIndex == -1){ tempIndex = BEFORE_FIRST_INDEX; setCurrent(null); } else { setCurrent(ListCollectionView(view).getItemAt(tempIndex)); }; currentIndex = tempIndex; return (!(beforeFirst)); } public function findLast(values:Object):Boolean{ var index:int; var values = values; checkValid(); var lcView:ListCollectionView = ListCollectionView(view); index = lcView.findItem(values, Sort.LAST_INDEX_MODE); //unresolved jump var _slot1 = sortError; throw (new CursorError(_slot1.message)); if (index > -1){ currentIndex = index; setCurrent(lcView.getItemAt(currentIndex)); }; return ((index > -1)); } public function get beforeFirst():Boolean{ checkValid(); return ((((currentIndex == BEFORE_FIRST_INDEX)) || ((view.length == 0)))); } public function get bookmark():CursorBookmark{ checkValid(); if ((((view.length == 0)) || (beforeFirst))){ return (CursorBookmark.FIRST); }; if (afterLast){ return (CursorBookmark.LAST); }; return (ListCollectionView(view).getBookmark(currentIndex)); } public function findFirst(values:Object):Boolean{ var index:int; var values = values; checkValid(); var lcView:ListCollectionView = ListCollectionView(view); index = lcView.findItem(values, Sort.FIRST_INDEX_MODE); //unresolved jump var _slot1 = sortError; throw (new CursorError(_slot1.message)); if (index > -1){ currentIndex = index; setCurrent(lcView.getItemAt(currentIndex)); }; return ((index > -1)); } public function get current():Object{ checkValid(); return (currentValue); } }
Section 33
//Sort (mx.collections.Sort) package mx.collections { import flash.events.*; import mx.resources.*; import mx.utils.*; import mx.collections.errors.*; public class Sort extends EventDispatcher { private var noFieldsDescending:Boolean;// = false private var usingCustomCompareFunction:Boolean; private var defaultEmptyField:SortField; private var _fields:Array; private var _compareFunction:Function; private var _unique:Boolean; private var fieldList:Array; private var resourceManager:IResourceManager; public static const ANY_INDEX_MODE:String = "any"; mx_internal static const VERSION:String = "3.2.0.3958"; public static const LAST_INDEX_MODE:String = "last"; public static const FIRST_INDEX_MODE:String = "first"; public function Sort(){ resourceManager = ResourceManager.getInstance(); fieldList = []; super(); } public function get unique():Boolean{ return (_unique); } public function get compareFunction():Function{ return ((usingCustomCompareFunction) ? _compareFunction : internalCompare); } public function set unique(value:Boolean):void{ _unique = value; } public function sort(items:Array):void{ var fixedCompareFunction:Function; var message:String; var uniqueRet1:Object; var fields:Array; var i:int; var sortArgs:Object; var uniqueRet2:Object; var items = items; if (((!(items)) || ((items.length <= 1)))){ return; }; if (usingCustomCompareFunction){ fixedCompareFunction = function (a:Object, b:Object):int{ return (compareFunction(a, b, _fields)); }; if (unique){ uniqueRet1 = items.sort(fixedCompareFunction, Array.UNIQUESORT); if (uniqueRet1 == 0){ message = resourceManager.getString("collections", "nonUnique"); throw (new SortError(message)); }; } else { items.sort(fixedCompareFunction); }; } else { fields = this.fields; if (((fields) && ((fields.length > 0)))){ sortArgs = initSortFields(items[0], true); if (unique){ if (((sortArgs) && ((fields.length == 1)))){ uniqueRet2 = items.sortOn(sortArgs.fields[0], (sortArgs.options[0] | Array.UNIQUESORT)); } else { uniqueRet2 = items.sort(internalCompare, Array.UNIQUESORT); }; if (uniqueRet2 == 0){ message = resourceManager.getString("collections", "nonUnique"); throw (new SortError(message)); }; } else { if (sortArgs){ items.sortOn(sortArgs.fields, sortArgs.options); } else { items.sort(internalCompare); }; }; } else { items.sort(internalCompare); }; }; } public function propertyAffectsSort(property:String):Boolean{ var field:SortField; if (((usingCustomCompareFunction) || (!(fields)))){ return (true); }; var i:int; while (i < fields.length) { field = fields[i]; if ((((field.name == property)) || (field.usingCustomCompareFunction))){ return (true); }; i++; }; return (false); } private function internalCompare(a:Object, b:Object, fields:Array=null):int{ var i:int; var len:int; var sf:SortField; var result:int; if (!_fields){ result = noFieldsCompare(a, b); } else { i = 0; len = (fields) ? fields.length : _fields.length; while ((((result == 0)) && ((i < len)))) { sf = SortField(_fields[i]); result = sf.internalCompare(a, b); i++; }; }; return (result); } public function reverse():void{ var i:int; if (fields){ i = 0; while (i < fields.length) { SortField(fields[i]).reverse(); i++; }; }; noFieldsDescending = !(noFieldsDescending); } private function noFieldsCompare(a:Object, b:Object, fields:Array=null):int{ var message:String; var a = a; var b = b; var fields = fields; if (!defaultEmptyField){ defaultEmptyField = new SortField(); defaultEmptyField.initCompare(a); //unresolved jump var _slot1 = e; message = resourceManager.getString("collections", "noComparator", [a]); throw (new SortError(message)); }; var result:int = defaultEmptyField.compareFunction(a, b); if (noFieldsDescending){ result = (result * -1); }; return (result); } public function findItem(items:Array, values:Object, mode:String, returnInsertionIndex:Boolean=false, compareFunction:Function=null):int{ var compareForFind:Function; var fieldsForCompare:Array; var message:String; var index:int; var fieldName:String; var hadPreviousFieldName:Boolean; var i:int; var hasFieldName:Boolean; var objIndex:int; var match:Boolean; var prevCompare:int; var nextCompare:int; var items = items; var values = values; var mode = mode; var returnInsertionIndex = returnInsertionIndex; var compareFunction = compareFunction; if (!items){ message = resourceManager.getString("collections", "noItems"); throw (new SortError(message)); }; if (items.length == 0){ return ((returnInsertionIndex) ? 1 : -1); }; if (compareFunction == null){ compareForFind = this.compareFunction; if (((values) && ((fieldList.length > 0)))){ fieldsForCompare = []; hadPreviousFieldName = true; i = 0; for (;i < fieldList.length;if (hasFieldName){ if (!hadPreviousFieldName){ message = resourceManager.getString("collections", "findCondition", [fieldName]); throw (new SortError(message)); }; fieldsForCompare.push(fieldName); } else { hadPreviousFieldName = false; }, continue, fieldsForCompare.push(null), (i = (i + 1))) { fieldName = fieldList[i]; //unresolved if hasFieldName = !((values[fieldName] === undefined)); continue; var _slot1 = e; hasFieldName = false; }; if (fieldsForCompare.length == 0){ message = resourceManager.getString("collections", "findRestriction"); throw (new SortError(message)); }; initSortFields(items[0]); //unresolved jump var _slot1 = initSortError; }; } else { compareForFind = compareFunction; }; var found:Boolean; var objFound:Boolean; index = 0; var lowerBound:int; var upperBound:int = (items.length - 1); var obj:Object; var direction = 1; while (((!(objFound)) && ((lowerBound <= upperBound)))) { index = Math.round(((lowerBound + upperBound) / 2)); obj = items[index]; direction = (fieldsForCompare) ? compareForFind(values, obj, fieldsForCompare) : compareForFind(values, obj); switch (direction){ case -1: upperBound = (index - 1); break; case 0: objFound = true; switch (mode){ case ANY_INDEX_MODE: found = true; break; case FIRST_INDEX_MODE: found = (index == lowerBound); objIndex = (index - 1); match = true; while (((((match) && (!(found)))) && ((objIndex >= lowerBound)))) { obj = items[objIndex]; prevCompare = (fieldsForCompare) ? compareForFind(values, obj, fieldsForCompare) : compareForFind(values, obj); match = (prevCompare == 0); if (((!(match)) || (((match) && ((objIndex == lowerBound)))))){ found = true; index = (objIndex + (match) ? 0 : 1); }; objIndex = (objIndex - 1); }; break; case LAST_INDEX_MODE: found = (index == upperBound); objIndex = (index + 1); match = true; while (((((match) && (!(found)))) && ((objIndex <= upperBound)))) { obj = items[objIndex]; nextCompare = (fieldsForCompare) ? compareForFind(values, obj, fieldsForCompare) : compareForFind(values, obj); match = (nextCompare == 0); if (((!(match)) || (((match) && ((objIndex == upperBound)))))){ found = true; index = (objIndex - (match) ? 0 : 1); }; objIndex = (objIndex + 1); }; break; default: message = resourceManager.getString("collections", "unknownMode"); throw (new SortError(message)); }; break; case 1: lowerBound = (index + 1); break; }; }; if (((!(found)) && (!(returnInsertionIndex)))){ return (-1); }; return (((direction)>0) ? (index + 1) : index); } private function initSortFields(item:Object, buildArraySortArgs:Boolean=false):Object{ var i:int; var field:SortField; var options:int; var arraySortArgs:Object; i = 0; while (i < fields.length) { SortField(fields[i]).initCompare(item); i++; }; if (buildArraySortArgs){ arraySortArgs = {fields:[], options:[]}; i = 0; while (i < fields.length) { field = fields[i]; options = field.getArraySortOnOptions(); if (options == -1){ return (null); }; arraySortArgs.fields.push(field.name); arraySortArgs.options.push(options); i++; }; }; return (arraySortArgs); } public function set fields(value:Array):void{ var field:SortField; var i:int; _fields = value; fieldList = []; if (_fields){ i = 0; while (i < _fields.length) { field = SortField(_fields[i]); fieldList.push(field.name); i++; }; }; dispatchEvent(new Event("fieldsChanged")); } public function get fields():Array{ return (_fields); } public function set compareFunction(value:Function):void{ _compareFunction = value; usingCustomCompareFunction = !((_compareFunction == null)); } override public function toString():String{ return (ObjectUtil.toString(this)); } } }//package mx.collections
Section 34
//SortField (mx.collections.SortField) package mx.collections { import flash.events.*; import mx.resources.*; import mx.utils.*; import mx.collections.errors.*; public class SortField extends EventDispatcher { private var _caseInsensitive:Boolean; private var _numeric:Object; private var _descending:Boolean; private var _compareFunction:Function; private var _usingCustomCompareFunction:Boolean; private var _name:String; private var resourceManager:IResourceManager; mx_internal static const VERSION:String = "3.2.0.3958"; public function SortField(name:String=null, caseInsensitive:Boolean=false, descending:Boolean=false, numeric:Object=null){ resourceManager = ResourceManager.getInstance(); super(); _name = name; _caseInsensitive = caseInsensitive; _descending = descending; _numeric = numeric; _compareFunction = stringCompare; } public function get caseInsensitive():Boolean{ return (_caseInsensitive); } mx_internal function get usingCustomCompareFunction():Boolean{ return (_usingCustomCompareFunction); } public function set caseInsensitive(value:Boolean):void{ if (value != _caseInsensitive){ _caseInsensitive = value; dispatchEvent(new Event("caseInsensitiveChanged")); }; } public function get name():String{ return (_name); } public function get numeric():Object{ return (_numeric); } public function set name(n:String):void{ _name = n; dispatchEvent(new Event("nameChanged")); } private function numericCompare(a:Object, b:Object):int{ var fa:Number; var fb:Number; var a = a; var b = b; fa = ((_name == null)) ? Number(a) : Number(a[_name]); //unresolved jump var _slot1 = error; fb = ((_name == null)) ? Number(b) : Number(b[_name]); //unresolved jump var _slot1 = error; return (ObjectUtil.numericCompare(fa, fb)); } public function set numeric(value:Object):void{ if (_numeric != value){ _numeric = value; dispatchEvent(new Event("numericChanged")); }; } private function stringCompare(a:Object, b:Object):int{ var fa:String; var fb:String; var a = a; var b = b; fa = ((_name == null)) ? String(a) : String(a[_name]); //unresolved jump var _slot1 = error; fb = ((_name == null)) ? String(b) : String(b[_name]); //unresolved jump var _slot1 = error; return (ObjectUtil.stringCompare(fa, fb, _caseInsensitive)); } public function get compareFunction():Function{ return (_compareFunction); } public function reverse():void{ descending = !(descending); } mx_internal function getArraySortOnOptions():int{ if (((((((usingCustomCompareFunction) || ((name == null)))) || ((_compareFunction == xmlCompare)))) || ((_compareFunction == dateCompare)))){ return (-1); }; var options:int; if (caseInsensitive){ options = (options | Array.CASEINSENSITIVE); }; if (descending){ options = (options | Array.DESCENDING); }; if ((((numeric == true)) || ((_compareFunction == numericCompare)))){ options = (options | Array.NUMERIC); }; return (options); } private function dateCompare(a:Object, b:Object):int{ var fa:Date; var fb:Date; var a = a; var b = b; fa = ((_name == null)) ? (a as Date) : (a[_name] as Date); //unresolved jump var _slot1 = error; fb = ((_name == null)) ? (b as Date) : (b[_name] as Date); //unresolved jump var _slot1 = error; return (ObjectUtil.dateCompare(fa, fb)); } mx_internal function internalCompare(a:Object, b:Object):int{ var result:int = compareFunction(a, b); if (descending){ result = (result * -1); }; return (result); } override public function toString():String{ return (ObjectUtil.toString(this)); } private function nullCompare(a:Object, b:Object):int{ var value:Object; var left:Object; var right:Object; var message:String; var a = a; var b = b; var found:Boolean; if ((((a == null)) && ((b == null)))){ return (0); }; if (_name){ left = a[_name]; //unresolved jump var _slot1 = error; right = b[_name]; //unresolved jump var _slot1 = error; }; if ((((left == null)) && ((right == null)))){ return (0); }; if (left == null){ left = a; }; if (right == null){ right = b; }; var typeLeft = typeof(left); var typeRight = typeof(right); if ((((typeLeft == "string")) || ((typeRight == "string")))){ found = true; _compareFunction = stringCompare; } else { if ((((typeLeft == "object")) || ((typeRight == "object")))){ if ((((left is Date)) || ((right is Date)))){ found = true; _compareFunction = dateCompare; }; } else { if ((((typeLeft == "xml")) || ((typeRight == "xml")))){ found = true; _compareFunction = xmlCompare; } else { if ((((((((typeLeft == "number")) || ((typeRight == "number")))) || ((typeLeft == "boolean")))) || ((typeRight == "boolean")))){ found = true; _compareFunction = numericCompare; }; }; }; }; if (found){ return (_compareFunction(left, right)); }; message = resourceManager.getString("collections", "noComparatorSortField", [name]); throw (new SortError(message)); } public function set descending(value:Boolean):void{ if (_descending != value){ _descending = value; dispatchEvent(new Event("descendingChanged")); }; } mx_internal function initCompare(obj:Object):void{ var value:Object; var typ:String; var test:String; var obj = obj; if (!usingCustomCompareFunction){ if (numeric == true){ _compareFunction = numericCompare; } else { if (((caseInsensitive) || ((numeric == false)))){ _compareFunction = stringCompare; } else { if (_name){ value = obj[_name]; //unresolved jump var _slot1 = error; }; if (value == null){ value = obj; }; typ = typeof(value); switch (typ){ case "string": _compareFunction = stringCompare; break; case "object": if ((value is Date)){ _compareFunction = dateCompare; } else { _compareFunction = stringCompare; test = value.toString(); //unresolved jump var _slot1 = error2; if (((!(test)) || ((test == "[object Object]")))){ _compareFunction = nullCompare; }; }; break; case "xml": _compareFunction = xmlCompare; break; case "boolean": case "number": _compareFunction = numericCompare; break; }; }; }; }; } public function get descending():Boolean{ return (_descending); } public function set compareFunction(c:Function):void{ _compareFunction = c; _usingCustomCompareFunction = !((c == null)); } private function xmlCompare(a:Object, b:Object):int{ var sa:String; var sb:String; var a = a; var b = b; sa = ((_name == null)) ? a.toString() : a[_name].toString(); //unresolved jump var _slot1 = error; sb = ((_name == null)) ? b.toString() : b[_name].toString(); //unresolved jump var _slot1 = error; if (numeric == true){ return (ObjectUtil.numericCompare(parseFloat(sa), parseFloat(sb))); }; return (ObjectUtil.stringCompare(sa, sb, _caseInsensitive)); } } }//package mx.collections
Section 35
//ConstraintError (mx.containers.errors.ConstraintError) package mx.containers.errors { public class ConstraintError extends Error { mx_internal static const VERSION:String = "3.2.0.3958"; public function ConstraintError(message:String){ super(message); } } }//package mx.containers.errors
Section 36
//ApplicationLayout (mx.containers.utilityClasses.ApplicationLayout) package mx.containers.utilityClasses { import mx.core.*; public class ApplicationLayout extends BoxLayout { mx_internal static const VERSION:String = "3.2.0.3958"; public function ApplicationLayout(){ super(); } override public function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void{ var paddingLeft:Number; var paddingTop:Number; var oX:Number; var oY:Number; var n:int; var i:int; var child:IFlexDisplayObject; super.updateDisplayList(unscaledWidth, unscaledHeight); var target:Container = super.target; if (((((target.horizontalScrollBar) && ((getHorizontalAlignValue() > 0)))) || (((target.verticalScrollBar) && ((getVerticalAlignValue() > 0)))))){ paddingLeft = target.getStyle("paddingLeft"); paddingTop = target.getStyle("paddingTop"); oX = 0; oY = 0; n = target.numChildren; i = 0; while (i < n) { child = IFlexDisplayObject(target.getChildAt(i)); if (child.x < paddingLeft){ oX = Math.max(oX, (paddingLeft - child.x)); }; if (child.y < paddingTop){ oY = Math.max(oY, (paddingTop - child.y)); }; i++; }; if (((!((oX == 0))) || (!((oY == 0))))){ i = 0; while (i < n) { child = IFlexDisplayObject(target.getChildAt(i)); child.move((child.x + oX), (child.y + oY)); i++; }; }; }; } } }//package mx.containers.utilityClasses
Section 37
//BoxLayout (mx.containers.utilityClasses.BoxLayout) package mx.containers.utilityClasses { import mx.core.*; import mx.controls.scrollClasses.*; import mx.containers.*; public class BoxLayout extends Layout { public var direction:String;// = "vertical" mx_internal static const VERSION:String = "3.2.0.3958"; public function BoxLayout(){ super(); } private function isVertical():Boolean{ return (!((direction == BoxDirection.HORIZONTAL))); } mx_internal function getHorizontalAlignValue():Number{ var horizontalAlign:String = target.getStyle("horizontalAlign"); if (horizontalAlign == "center"){ return (0.5); }; if (horizontalAlign == "right"){ return (1); }; return (0); } override public function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void{ var gap:Number; var numChildrenWithOwnSpace:int; var excessSpace:Number; var top:Number; var left:Number; var i:int; var obj:IUIComponent; var child:IUIComponent; var percentWidth:Number; var percentHeight:Number; var width:Number; var height:Number; var target:Container = super.target; var n:int = target.numChildren; if (n == 0){ return; }; var vm:EdgeMetrics = target.viewMetricsAndPadding; var paddingLeft:Number = target.getStyle("paddingLeft"); var paddingTop:Number = target.getStyle("paddingTop"); var horizontalAlign:Number = getHorizontalAlignValue(); var verticalAlign:Number = getVerticalAlignValue(); var mw:Number = ((((target.scaleX > 0)) && (!((target.scaleX == 1))))) ? (target.minWidth / Math.abs(target.scaleX)) : target.minWidth; var mh:Number = ((((target.scaleY > 0)) && (!((target.scaleY == 1))))) ? (target.minHeight / Math.abs(target.scaleY)) : target.minHeight; var w:Number = ((Math.max(unscaledWidth, mw) - vm.right) - vm.left); var h:Number = ((Math.max(unscaledHeight, mh) - vm.bottom) - vm.top); var horizontalScrollBar:ScrollBar = target.horizontalScrollBar; var verticalScrollBar:ScrollBar = target.verticalScrollBar; if (n == 1){ child = IUIComponent(target.getChildAt(0)); percentWidth = child.percentWidth; percentHeight = child.percentHeight; if (percentWidth){ width = Math.max(child.minWidth, Math.min(child.maxWidth, ((percentWidth)>=100) ? w : ((w * percentWidth) / 100))); } else { width = child.getExplicitOrMeasuredWidth(); }; if (percentHeight){ height = Math.max(child.minHeight, Math.min(child.maxHeight, ((percentHeight)>=100) ? h : ((h * percentHeight) / 100))); } else { height = child.getExplicitOrMeasuredHeight(); }; if ((((child.scaleX == 1)) && ((child.scaleY == 1)))){ child.setActualSize(Math.floor(width), Math.floor(height)); } else { child.setActualSize(width, height); }; if (((!((verticalScrollBar == null))) && ((target.verticalScrollPolicy == ScrollPolicy.AUTO)))){ w = (w + verticalScrollBar.minWidth); }; if (((!((horizontalScrollBar == null))) && ((target.horizontalScrollPolicy == ScrollPolicy.AUTO)))){ h = (h + horizontalScrollBar.minHeight); }; left = (((w - child.width) * horizontalAlign) + paddingLeft); top = (((h - child.height) * verticalAlign) + paddingTop); child.move(Math.floor(left), Math.floor(top)); } else { if (isVertical()){ gap = target.getStyle("verticalGap"); numChildrenWithOwnSpace = n; i = 0; while (i < n) { if (!IUIComponent(target.getChildAt(i)).includeInLayout){ numChildrenWithOwnSpace--; }; i++; }; excessSpace = Flex.flexChildHeightsProportionally(target, (h - ((numChildrenWithOwnSpace - 1) * gap)), w); if (((!((horizontalScrollBar == null))) && ((target.horizontalScrollPolicy == ScrollPolicy.AUTO)))){ excessSpace = (excessSpace + horizontalScrollBar.minHeight); }; if (((!((verticalScrollBar == null))) && ((target.verticalScrollPolicy == ScrollPolicy.AUTO)))){ w = (w + verticalScrollBar.minWidth); }; top = (paddingTop + (excessSpace * verticalAlign)); i = 0; while (i < n) { obj = IUIComponent(target.getChildAt(i)); left = (((w - obj.width) * horizontalAlign) + paddingLeft); obj.move(Math.floor(left), Math.floor(top)); if (obj.includeInLayout){ top = (top + (obj.height + gap)); }; i++; }; } else { gap = target.getStyle("horizontalGap"); numChildrenWithOwnSpace = n; i = 0; while (i < n) { if (!IUIComponent(target.getChildAt(i)).includeInLayout){ numChildrenWithOwnSpace--; }; i++; }; excessSpace = Flex.flexChildWidthsProportionally(target, (w - ((numChildrenWithOwnSpace - 1) * gap)), h); if (((!((horizontalScrollBar == null))) && ((target.horizontalScrollPolicy == ScrollPolicy.AUTO)))){ h = (h + horizontalScrollBar.minHeight); }; if (((!((verticalScrollBar == null))) && ((target.verticalScrollPolicy == ScrollPolicy.AUTO)))){ excessSpace = (excessSpace + verticalScrollBar.minWidth); }; left = (paddingLeft + (excessSpace * horizontalAlign)); i = 0; while (i < n) { obj = IUIComponent(target.getChildAt(i)); top = (((h - obj.height) * verticalAlign) + paddingTop); obj.move(Math.floor(left), Math.floor(top)); if (obj.includeInLayout){ left = (left + (obj.width + gap)); }; i++; }; }; }; } mx_internal function getVerticalAlignValue():Number{ var verticalAlign:String = target.getStyle("verticalAlign"); if (verticalAlign == "middle"){ return (0.5); }; if (verticalAlign == "bottom"){ return (1); }; return (0); } mx_internal function heightPadding(numChildren:Number):Number{ var vm:EdgeMetrics = target.viewMetricsAndPadding; var padding:Number = (vm.top + vm.bottom); if ((((numChildren > 1)) && (isVertical()))){ padding = (padding + (target.getStyle("verticalGap") * (numChildren - 1))); }; return (padding); } mx_internal function widthPadding(numChildren:Number):Number{ var vm:EdgeMetrics = target.viewMetricsAndPadding; var padding:Number = (vm.left + vm.right); if ((((numChildren > 1)) && ((isVertical() == false)))){ padding = (padding + (target.getStyle("horizontalGap") * (numChildren - 1))); }; return (padding); } override public function measure():void{ var target:Container; var wPadding:Number; var hPadding:Number; var child:IUIComponent; var wPref:Number; var hPref:Number; target = super.target; var isVertical:Boolean = isVertical(); var minWidth:Number = 0; var minHeight:Number = 0; var preferredWidth:Number = 0; var preferredHeight:Number = 0; var n:int = target.numChildren; var numChildrenWithOwnSpace:int = n; var i:int; while (i < n) { child = IUIComponent(target.getChildAt(i)); if (!child.includeInLayout){ numChildrenWithOwnSpace--; } else { wPref = child.getExplicitOrMeasuredWidth(); hPref = child.getExplicitOrMeasuredHeight(); if (isVertical){ minWidth = Math.max((isNaN(child.percentWidth)) ? wPref : child.minWidth, minWidth); preferredWidth = Math.max(wPref, preferredWidth); minHeight = (minHeight + (isNaN(child.percentHeight)) ? hPref : child.minHeight); preferredHeight = (preferredHeight + hPref); } else { minWidth = (minWidth + (isNaN(child.percentWidth)) ? wPref : child.minWidth); preferredWidth = (preferredWidth + wPref); minHeight = Math.max((isNaN(child.percentHeight)) ? hPref : child.minHeight, minHeight); preferredHeight = Math.max(hPref, preferredHeight); }; }; i++; }; wPadding = widthPadding(numChildrenWithOwnSpace); hPadding = heightPadding(numChildrenWithOwnSpace); target.measuredMinWidth = (minWidth + wPadding); target.measuredMinHeight = (minHeight + hPadding); target.measuredWidth = (preferredWidth + wPadding); target.measuredHeight = (preferredHeight + hPadding); } } }//package mx.containers.utilityClasses
Section 38
//CanvasLayout (mx.containers.utilityClasses.CanvasLayout) package mx.containers.utilityClasses { import flash.display.*; import flash.geom.*; import mx.core.*; import mx.events.*; import flash.utils.*; import mx.containers.errors.*; public class CanvasLayout extends Layout { private var colSpanChildren:Array; private var constraintRegionsInUse:Boolean;// = false private var rowSpanChildren:Array; private var constraintCache:Dictionary; private var _contentArea:Rectangle; mx_internal static const VERSION:String = "3.2.0.3958"; private static var r:Rectangle = new Rectangle(); public function CanvasLayout(){ colSpanChildren = []; rowSpanChildren = []; constraintCache = new Dictionary(true); super(); } private function parseConstraints(child:IUIComponent=null):ChildConstraintInfo{ var left:Number; var right:Number; var horizontalCenter:Number; var top:Number; var bottom:Number; var verticalCenter:Number; var baseline:Number; var leftBoundary:String; var rightBoundary:String; var hcBoundary:String; var topBoundary:String; var bottomBoundary:String; var vcBoundary:String; var baselineBoundary:String; var temp:Array; var i:int; var col:ConstraintColumn; var found:Boolean; var row:ConstraintRow; var constraints:LayoutConstraints = getLayoutConstraints(child); if (!constraints){ return (null); }; while (true) { temp = parseConstraintExp(constraints.left); if (!temp){ left = NaN; } else { if (temp.length == 1){ left = Number(temp[0]); } else { leftBoundary = temp[0]; left = temp[1]; }; }; temp = parseConstraintExp(constraints.right); if (!temp){ right = NaN; } else { if (temp.length == 1){ right = Number(temp[0]); } else { rightBoundary = temp[0]; right = temp[1]; }; }; temp = parseConstraintExp(constraints.horizontalCenter); if (!temp){ horizontalCenter = NaN; } else { if (temp.length == 1){ horizontalCenter = Number(temp[0]); } else { hcBoundary = temp[0]; horizontalCenter = temp[1]; }; }; temp = parseConstraintExp(constraints.top); if (!temp){ top = NaN; } else { if (temp.length == 1){ top = Number(temp[0]); } else { topBoundary = temp[0]; top = temp[1]; }; }; temp = parseConstraintExp(constraints.bottom); if (!temp){ bottom = NaN; } else { if (temp.length == 1){ bottom = Number(temp[0]); } else { bottomBoundary = temp[0]; bottom = temp[1]; }; }; temp = parseConstraintExp(constraints.verticalCenter); if (!temp){ verticalCenter = NaN; } else { if (temp.length == 1){ verticalCenter = Number(temp[0]); } else { vcBoundary = temp[0]; verticalCenter = temp[1]; }; }; temp = parseConstraintExp(constraints.baseline); if (!temp){ baseline = NaN; } else { if (temp.length == 1){ baseline = Number(temp[0]); } else { baselineBoundary = temp[0]; baseline = temp[1]; }; }; break; }; var colEntry:ContentColumnChild = new ContentColumnChild(); var pushEntry:Boolean; var leftIndex:Number = 0; var rightIndex:Number = 0; var hcIndex:Number = 0; i = 0; while (i < IConstraintLayout(target).constraintColumns.length) { col = IConstraintLayout(target).constraintColumns[i]; if (col.mx_internal::contentSize){ if (col.id == leftBoundary){ colEntry.leftCol = col; colEntry.leftOffset = left; leftIndex = i; colEntry.left = leftIndex; pushEntry = true; }; if (col.id == rightBoundary){ colEntry.rightCol = col; colEntry.rightOffset = right; rightIndex = (i + 1); colEntry.right = rightIndex; pushEntry = true; }; if (col.id == hcBoundary){ colEntry.hcCol = col; colEntry.hcOffset = horizontalCenter; hcIndex = (i + 1); colEntry.hc = hcIndex; pushEntry = true; }; }; i++; }; if (pushEntry){ colEntry.child = child; if (((((((colEntry.leftCol) && (!(colEntry.rightCol)))) || (((colEntry.rightCol) && (!(colEntry.leftCol)))))) || (colEntry.hcCol))){ colEntry.span = 1; } else { colEntry.span = (rightIndex - leftIndex); }; found = false; i = 0; while (i < colSpanChildren.length) { if (colEntry.child == colSpanChildren[i].child){ found = true; break; }; i++; }; if (!found){ colSpanChildren.push(colEntry); }; }; pushEntry = false; var rowEntry:ContentRowChild = new ContentRowChild(); var topIndex:Number = 0; var bottomIndex:Number = 0; var vcIndex:Number = 0; var baselineIndex:Number = 0; i = 0; while (i < IConstraintLayout(target).constraintRows.length) { row = IConstraintLayout(target).constraintRows[i]; if (row.mx_internal::contentSize){ if (row.id == topBoundary){ rowEntry.topRow = row; rowEntry.topOffset = top; topIndex = i; rowEntry.top = topIndex; pushEntry = true; }; if (row.id == bottomBoundary){ rowEntry.bottomRow = row; rowEntry.bottomOffset = bottom; bottomIndex = (i + 1); rowEntry.bottom = bottomIndex; pushEntry = true; }; if (row.id == vcBoundary){ rowEntry.vcRow = row; rowEntry.vcOffset = verticalCenter; vcIndex = (i + 1); rowEntry.vc = vcIndex; pushEntry = true; }; if (row.id == baselineBoundary){ rowEntry.baselineRow = row; rowEntry.baselineOffset = baseline; baselineIndex = (i + 1); rowEntry.baseline = baselineIndex; pushEntry = true; }; }; i++; }; if (pushEntry){ rowEntry.child = child; if (((((((((rowEntry.topRow) && (!(rowEntry.bottomRow)))) || (((rowEntry.bottomRow) && (!(rowEntry.topRow)))))) || (rowEntry.vcRow))) || (rowEntry.baselineRow))){ rowEntry.span = 1; } else { rowEntry.span = (bottomIndex - topIndex); }; found = false; i = 0; while (i < rowSpanChildren.length) { if (rowEntry.child == rowSpanChildren[i].child){ found = true; break; }; i++; }; if (!found){ rowSpanChildren.push(rowEntry); }; }; var info:ChildConstraintInfo = new ChildConstraintInfo(left, right, horizontalCenter, top, bottom, verticalCenter, baseline, leftBoundary, rightBoundary, hcBoundary, topBoundary, bottomBoundary, vcBoundary, baselineBoundary); constraintCache[child] = info; return (info); } private function bound(a:Number, min:Number, max:Number):Number{ if (a < min){ a = min; } else { if (a > max){ a = max; } else { a = Math.floor(a); }; }; return (a); } private function shareRowSpace(entry:ContentRowChild, availableHeight:Number):Number{ var tempTopHeight:Number; var tempBtmHeight:Number; var share:Number; var topRow:ConstraintRow = entry.topRow; var bottomRow:ConstraintRow = entry.bottomRow; var child:IUIComponent = entry.child; var topHeight:Number = 0; var bottomHeight:Number = 0; var top:Number = (entry.topOffset) ? entry.topOffset : 0; var bottom:Number = (entry.bottomOffset) ? entry.bottomOffset : 0; if (((topRow) && (topRow.height))){ topHeight = (topHeight + topRow.height); } else { if (((bottomRow) && (!(topRow)))){ topRow = IConstraintLayout(target).constraintRows[(entry.bottom - 2)]; if (((topRow) && (topRow.height))){ topHeight = (topHeight + topRow.height); }; }; }; if (((bottomRow) && (bottomRow.height))){ bottomHeight = (bottomHeight + bottomRow.height); } else { if (((topRow) && (!(bottomRow)))){ bottomRow = IConstraintLayout(target).constraintRows[(entry.top + 1)]; if (((bottomRow) && (bottomRow.height))){ bottomHeight = (bottomHeight + bottomRow.height); }; }; }; if (((topRow) && (isNaN(topRow.height)))){ topRow.setActualHeight(Math.max(0, topRow.maxHeight)); }; if (((bottomRow) && (isNaN(bottomRow.height)))){ bottomRow.setActualHeight(Math.max(0, bottomRow.height)); }; var childHeight:Number = child.getExplicitOrMeasuredHeight(); if (childHeight){ if (!entry.topRow){ if (childHeight > topHeight){ tempBtmHeight = ((childHeight - topHeight) + bottom); } else { tempBtmHeight = (childHeight + bottom); }; }; if (!entry.bottomRow){ if (childHeight > bottomHeight){ tempTopHeight = ((childHeight - bottomHeight) + top); } else { tempTopHeight = (childHeight + top); }; }; if (((entry.topRow) && (entry.bottomRow))){ share = (childHeight / Number(entry.span)); if ((share + top) < topHeight){ tempTopHeight = topHeight; tempBtmHeight = ((childHeight - (topHeight - top)) + bottom); } else { tempTopHeight = (share + top); }; if ((share + bottom) < bottomHeight){ tempBtmHeight = bottomHeight; tempTopHeight = ((childHeight - (bottomHeight - bottom)) + top); } else { tempBtmHeight = (share + bottom); }; }; tempBtmHeight = bound(tempBtmHeight, bottomRow.minHeight, bottomRow.maxHeight); bottomRow.setActualHeight(tempBtmHeight); availableHeight = (availableHeight - tempBtmHeight); tempTopHeight = bound(tempTopHeight, topRow.minHeight, topRow.maxHeight); topRow.setActualHeight(tempTopHeight); availableHeight = (availableHeight - tempTopHeight); }; return (availableHeight); } private function parseConstraintExp(val:String):Array{ if (!val){ return (null); }; var temp:String = val.replace(/:/g, " "); var args:Array = temp.split(/\s+/); return (args); } private function measureColumnsAndRows():void{ var i:int; var k:int; var cc:ConstraintColumn; var cr:ConstraintRow; var spaceToDistribute:Number; var w:Number; var h:Number; var remainingSpace:Number; var colEntry:ContentColumnChild; var rowEntry:ContentRowChild; var cols:Array = IConstraintLayout(target).constraintColumns; var rows:Array = IConstraintLayout(target).constraintRows; if ((((!(rows.length) > 0)) && ((!(cols.length) > 0)))){ constraintRegionsInUse = false; return; }; constraintRegionsInUse = true; var canvasX:Number = 0; var canvasY:Number = 0; var vm:EdgeMetrics = Container(target).viewMetrics; var availableWidth:Number = ((Container(target).width - vm.left) - vm.right); var availableHeight:Number = ((Container(target).height - vm.top) - vm.bottom); var fixedSize:Array = []; var percentageSize:Array = []; var contentSize:Array = []; if (cols.length > 0){ i = 0; while (i < cols.length) { cc = cols[i]; if (!isNaN(cc.percentWidth)){ percentageSize.push(cc); } else { if (((!(isNaN(cc.width))) && (!(cc.mx_internal::contentSize)))){ fixedSize.push(cc); } else { contentSize.push(cc); cc.mx_internal::contentSize = true; }; }; i++; }; i = 0; while (i < fixedSize.length) { cc = ConstraintColumn(fixedSize[i]); availableWidth = (availableWidth - cc.width); i++; }; if (contentSize.length > 0){ if (colSpanChildren.length > 0){ colSpanChildren.sortOn("span"); k = 0; while (k < colSpanChildren.length) { colEntry = colSpanChildren[k]; if (colEntry.span == 1){ if (colEntry.hcCol){ cc = ConstraintColumn(cols[cols.indexOf(colEntry.hcCol)]); } else { if (colEntry.leftCol){ cc = ConstraintColumn(cols[cols.indexOf(colEntry.leftCol)]); } else { if (colEntry.rightCol){ cc = ConstraintColumn(cols[cols.indexOf(colEntry.rightCol)]); }; }; }; w = colEntry.child.getExplicitOrMeasuredWidth(); if (colEntry.hcOffset){ w = (w + colEntry.hcOffset); } else { if (colEntry.leftOffset){ w = (w + colEntry.leftOffset); }; if (colEntry.rightOffset){ w = (w + colEntry.rightOffset); }; }; if (!isNaN(cc.width)){ w = Math.max(cc.width, w); }; w = bound(w, cc.minWidth, cc.maxWidth); cc.setActualWidth(w); availableWidth = (availableWidth - cc.width); } else { availableWidth = shareColumnSpace(colEntry, availableWidth); }; k++; }; colSpanChildren = []; }; i = 0; while (i < contentSize.length) { cc = contentSize[i]; if (!cc.width){ w = bound(0, cc.minWidth, 0); cc.setActualWidth(w); }; i++; }; }; remainingSpace = availableWidth; i = 0; while (i < percentageSize.length) { cc = ConstraintColumn(percentageSize[i]); if (remainingSpace <= 0){ w = 0; } else { w = Math.round(((remainingSpace * cc.percentWidth) / 100)); }; w = bound(w, cc.minWidth, cc.maxWidth); cc.setActualWidth(w); availableWidth = (availableWidth - w); i++; }; i = 0; while (i < cols.length) { cc = ConstraintColumn(cols[i]); cc.x = canvasX; canvasX = (canvasX + cc.width); i++; }; }; fixedSize = []; percentageSize = []; contentSize = []; if (rows.length > 0){ i = 0; while (i < rows.length) { cr = rows[i]; if (!isNaN(cr.percentHeight)){ percentageSize.push(cr); } else { if (((!(isNaN(cr.height))) && (!(cr.mx_internal::contentSize)))){ fixedSize.push(cr); } else { contentSize.push(cr); cr.mx_internal::contentSize = true; }; }; i++; }; i = 0; while (i < fixedSize.length) { cr = ConstraintRow(fixedSize[i]); availableHeight = (availableHeight - cr.height); i++; }; if (contentSize.length > 0){ if (rowSpanChildren.length > 0){ rowSpanChildren.sortOn("span"); k = 0; while (k < rowSpanChildren.length) { rowEntry = rowSpanChildren[k]; if (rowEntry.span == 1){ if (rowEntry.vcRow){ cr = ConstraintRow(rows[rows.indexOf(rowEntry.vcRow)]); } else { if (rowEntry.baselineRow){ cr = ConstraintRow(rows[rows.indexOf(rowEntry.baselineRow)]); } else { if (rowEntry.topRow){ cr = ConstraintRow(rows[rows.indexOf(rowEntry.topRow)]); } else { if (rowEntry.bottomRow){ cr = ConstraintRow(rows[rows.indexOf(rowEntry.bottomRow)]); }; }; }; }; h = rowEntry.child.getExplicitOrMeasuredHeight(); if (rowEntry.baselineOffset){ h = (h + rowEntry.baselineOffset); } else { if (rowEntry.vcOffset){ h = (h + rowEntry.vcOffset); } else { if (rowEntry.topOffset){ h = (h + rowEntry.topOffset); }; if (rowEntry.bottomOffset){ h = (h + rowEntry.bottomOffset); }; }; }; if (!isNaN(cr.height)){ h = Math.max(cr.height, h); }; h = bound(h, cr.minHeight, cr.maxHeight); cr.setActualHeight(h); availableHeight = (availableHeight - cr.height); } else { availableHeight = shareRowSpace(rowEntry, availableHeight); }; k++; }; rowSpanChildren = []; }; i = 0; while (i < contentSize.length) { cr = ConstraintRow(contentSize[i]); if (!cr.height){ h = bound(0, cr.minHeight, 0); cr.setActualHeight(h); }; i++; }; }; remainingSpace = availableHeight; i = 0; while (i < percentageSize.length) { cr = ConstraintRow(percentageSize[i]); if (remainingSpace <= 0){ h = 0; } else { h = Math.round(((remainingSpace * cr.percentHeight) / 100)); }; h = bound(h, cr.minHeight, cr.maxHeight); cr.setActualHeight(h); availableHeight = (availableHeight - h); i++; }; i = 0; while (i < rows.length) { cr = rows[i]; cr.y = canvasY; canvasY = (canvasY + cr.height); i++; }; }; } private function child_moveHandler(event:MoveEvent):void{ if ((event.target is IUIComponent)){ if (!IUIComponent(event.target).includeInLayout){ return; }; }; var target:Container = super.target; if (target){ target.invalidateSize(); target.invalidateDisplayList(); _contentArea = null; }; } private function applyAnchorStylesDuringMeasure(child:IUIComponent, r:Rectangle):void{ var i:int; var constraintChild:IConstraintClient = (child as IConstraintClient); if (!constraintChild){ return; }; var childInfo:ChildConstraintInfo = constraintCache[constraintChild]; if (!childInfo){ childInfo = parseConstraints(child); }; var left:Number = childInfo.left; var right:Number = childInfo.right; var horizontalCenter:Number = childInfo.hc; var top:Number = childInfo.top; var bottom:Number = childInfo.bottom; var verticalCenter:Number = childInfo.vc; var cols:Array = IConstraintLayout(target).constraintColumns; var rows:Array = IConstraintLayout(target).constraintRows; var holder:Number = 0; if (!(cols.length) > 0){ if (!isNaN(horizontalCenter)){ r.x = Math.round((((target.width - child.width) / 2) + horizontalCenter)); } else { if (((!(isNaN(left))) && (!(isNaN(right))))){ r.x = left; r.width = (r.width + right); } else { if (!isNaN(left)){ r.x = left; } else { if (!isNaN(right)){ r.x = 0; r.width = (r.width + right); }; }; }; }; } else { r.x = 0; i = 0; while (i < cols.length) { holder = (holder + ConstraintColumn(cols[i]).width); i++; }; r.width = holder; }; if (!(rows.length) > 0){ if (!isNaN(verticalCenter)){ r.y = Math.round((((target.height - child.height) / 2) + verticalCenter)); } else { if (((!(isNaN(top))) && (!(isNaN(bottom))))){ r.y = top; r.height = (r.height + bottom); } else { if (!isNaN(top)){ r.y = top; } else { if (!isNaN(bottom)){ r.y = 0; r.height = (r.height + bottom); }; }; }; }; } else { holder = 0; r.y = 0; i = 0; while (i < rows.length) { holder = (holder + ConstraintRow(rows[i]).height); i++; }; r.height = holder; }; } override public function measure():void{ var target:Container; var vm:EdgeMetrics; var contentArea:Rectangle; var child:IUIComponent; var col:ConstraintColumn; var row:ConstraintRow; target = super.target; var w:Number = 0; var h:Number = 0; var i:Number = 0; vm = target.viewMetrics; i = 0; while (i < target.numChildren) { child = (target.getChildAt(i) as IUIComponent); parseConstraints(child); i++; }; i = 0; while (i < IConstraintLayout(target).constraintColumns.length) { col = IConstraintLayout(target).constraintColumns[i]; if (col.mx_internal::contentSize){ col.mx_internal::_width = NaN; }; i++; }; i = 0; while (i < IConstraintLayout(target).constraintRows.length) { row = IConstraintLayout(target).constraintRows[i]; if (row.mx_internal::contentSize){ row.mx_internal::_height = NaN; }; i++; }; measureColumnsAndRows(); _contentArea = null; contentArea = measureContentArea(); target.measuredWidth = ((contentArea.width + vm.left) + vm.right); target.measuredHeight = ((contentArea.height + vm.top) + vm.bottom); } private function target_childRemoveHandler(event:ChildExistenceChangedEvent):void{ DisplayObject(event.relatedObject).removeEventListener(MoveEvent.MOVE, child_moveHandler); delete constraintCache[event.relatedObject]; } override public function set target(value:Container):void{ var i:int; var n:int; var target:Container = super.target; if (value != target){ if (target){ target.removeEventListener(ChildExistenceChangedEvent.CHILD_ADD, target_childAddHandler); target.removeEventListener(ChildExistenceChangedEvent.CHILD_REMOVE, target_childRemoveHandler); n = target.numChildren; i = 0; while (i < n) { DisplayObject(target.getChildAt(i)).removeEventListener(MoveEvent.MOVE, child_moveHandler); i++; }; }; if (value){ value.addEventListener(ChildExistenceChangedEvent.CHILD_ADD, target_childAddHandler); value.addEventListener(ChildExistenceChangedEvent.CHILD_REMOVE, target_childRemoveHandler); n = value.numChildren; i = 0; while (i < n) { DisplayObject(value.getChildAt(i)).addEventListener(MoveEvent.MOVE, child_moveHandler); i++; }; }; super.target = value; }; } private function measureContentArea():Rectangle{ var i:int; var cols:Array; var rows:Array; var child:IUIComponent; var childConstraints:LayoutConstraints; var cx:Number; var cy:Number; var pw:Number; var ph:Number; var rightEdge:Number; var bottomEdge:Number; if (_contentArea){ return (_contentArea); }; _contentArea = new Rectangle(); var n:int = target.numChildren; if ((((n == 0)) && (constraintRegionsInUse))){ cols = IConstraintLayout(target).constraintColumns; rows = IConstraintLayout(target).constraintRows; if (cols.length > 0){ _contentArea.right = (cols[(cols.length - 1)].x + cols[(cols.length - 1)].width); } else { _contentArea.right = 0; }; if (rows.length > 0){ _contentArea.bottom = (rows[(rows.length - 1)].y + rows[(rows.length - 1)].height); } else { _contentArea.bottom = 0; }; }; i = 0; while (i < n) { child = (target.getChildAt(i) as IUIComponent); childConstraints = getLayoutConstraints(child); if (!child.includeInLayout){ } else { cx = child.x; cy = child.y; pw = child.getExplicitOrMeasuredWidth(); ph = child.getExplicitOrMeasuredHeight(); if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_3_0){ if (((!(isNaN(child.percentWidth))) || (((((childConstraints) && (!(isNaN(childConstraints.left))))) && (!(isNaN(childConstraints.right))))))){ pw = child.minWidth; }; } else { if (((!(isNaN(child.percentWidth))) || (((((((childConstraints) && (!(isNaN(childConstraints.left))))) && (!(isNaN(childConstraints.right))))) && (isNaN(child.explicitWidth)))))){ pw = child.minWidth; }; }; if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_3_0){ if (((!(isNaN(child.percentHeight))) || (((((childConstraints) && (!(isNaN(childConstraints.top))))) && (!(isNaN(childConstraints.bottom))))))){ ph = child.minHeight; }; } else { if (((!(isNaN(child.percentHeight))) || (((((((childConstraints) && (!(isNaN(childConstraints.top))))) && (!(isNaN(childConstraints.bottom))))) && (isNaN(child.explicitHeight)))))){ ph = child.minHeight; }; }; r.x = cx; r.y = cy; r.width = pw; r.height = ph; applyAnchorStylesDuringMeasure(child, r); cx = r.x; cy = r.y; pw = r.width; ph = r.height; if (isNaN(cx)){ cx = child.x; }; if (isNaN(cy)){ cy = child.y; }; rightEdge = cx; bottomEdge = cy; if (isNaN(pw)){ pw = child.width; }; if (isNaN(ph)){ ph = child.height; }; rightEdge = (rightEdge + pw); bottomEdge = (bottomEdge + ph); _contentArea.right = Math.max(_contentArea.right, rightEdge); _contentArea.bottom = Math.max(_contentArea.bottom, bottomEdge); }; i++; }; return (_contentArea); } private function shareColumnSpace(entry:ContentColumnChild, availableWidth:Number):Number{ var tempLeftWidth:Number; var tempRightWidth:Number; var share:Number; var leftCol:ConstraintColumn = entry.leftCol; var rightCol:ConstraintColumn = entry.rightCol; var child:IUIComponent = entry.child; var leftWidth:Number = 0; var rightWidth:Number = 0; var right:Number = (entry.rightOffset) ? entry.rightOffset : 0; var left:Number = (entry.leftOffset) ? entry.leftOffset : 0; if (((leftCol) && (leftCol.width))){ leftWidth = (leftWidth + leftCol.width); } else { if (((rightCol) && (!(leftCol)))){ leftCol = IConstraintLayout(target).constraintColumns[(entry.right - 2)]; if (((leftCol) && (leftCol.width))){ leftWidth = (leftWidth + leftCol.width); }; }; }; if (((rightCol) && (rightCol.width))){ rightWidth = (rightWidth + rightCol.width); } else { if (((leftCol) && (!(rightCol)))){ rightCol = IConstraintLayout(target).constraintColumns[(entry.left + 1)]; if (((rightCol) && (rightCol.width))){ rightWidth = (rightWidth + rightCol.width); }; }; }; if (((leftCol) && (isNaN(leftCol.width)))){ leftCol.setActualWidth(Math.max(0, leftCol.maxWidth)); }; if (((rightCol) && (isNaN(rightCol.width)))){ rightCol.setActualWidth(Math.max(0, rightCol.maxWidth)); }; var childWidth:Number = child.getExplicitOrMeasuredWidth(); if (childWidth){ if (!entry.leftCol){ if (childWidth > leftWidth){ tempRightWidth = ((childWidth - leftWidth) + right); } else { tempRightWidth = (childWidth + right); }; }; if (!entry.rightCol){ if (childWidth > rightWidth){ tempLeftWidth = ((childWidth - rightWidth) + left); } else { tempLeftWidth = (childWidth + left); }; }; if (((entry.leftCol) && (entry.rightCol))){ share = (childWidth / Number(entry.span)); if ((share + left) < leftWidth){ tempLeftWidth = leftWidth; tempRightWidth = ((childWidth - (leftWidth - left)) + right); } else { tempLeftWidth = (share + left); }; if ((share + right) < rightWidth){ tempRightWidth = rightWidth; tempLeftWidth = ((childWidth - (rightWidth - right)) + left); } else { tempRightWidth = (share + right); }; }; tempLeftWidth = bound(tempLeftWidth, leftCol.minWidth, leftCol.maxWidth); leftCol.setActualWidth(tempLeftWidth); availableWidth = (availableWidth - tempLeftWidth); tempRightWidth = bound(tempRightWidth, rightCol.minWidth, rightCol.maxWidth); rightCol.setActualWidth(tempRightWidth); availableWidth = (availableWidth - tempRightWidth); }; return (availableWidth); } private function getLayoutConstraints(child:IUIComponent):LayoutConstraints{ var constraintChild:IConstraintClient = (child as IConstraintClient); if (!constraintChild){ return (null); }; var constraints:LayoutConstraints = new LayoutConstraints(); constraints.baseline = constraintChild.getConstraintValue("baseline"); constraints.bottom = constraintChild.getConstraintValue("bottom"); constraints.horizontalCenter = constraintChild.getConstraintValue("horizontalCenter"); constraints.left = constraintChild.getConstraintValue("left"); constraints.right = constraintChild.getConstraintValue("right"); constraints.top = constraintChild.getConstraintValue("top"); constraints.verticalCenter = constraintChild.getConstraintValue("verticalCenter"); return (constraints); } override public function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void{ var i:int; var child:IUIComponent; var col:ConstraintColumn; var row:ConstraintRow; var target:Container = super.target; var n:int = target.numChildren; target.mx_internal::doingLayout = false; var vm:EdgeMetrics = target.viewMetrics; target.mx_internal::doingLayout = true; var viewableWidth:Number = ((unscaledWidth - vm.left) - vm.right); var viewableHeight:Number = ((unscaledHeight - vm.top) - vm.bottom); if ((((IConstraintLayout(target).constraintColumns.length > 0)) || ((IConstraintLayout(target).constraintRows.length > 0)))){ constraintRegionsInUse = true; }; if (constraintRegionsInUse){ i = 0; while (i < n) { child = (target.getChildAt(i) as IUIComponent); parseConstraints(child); i++; }; i = 0; while (i < IConstraintLayout(target).constraintColumns.length) { col = IConstraintLayout(target).constraintColumns[i]; if (col.mx_internal::contentSize){ col.mx_internal::_width = NaN; }; i++; }; i = 0; while (i < IConstraintLayout(target).constraintRows.length) { row = IConstraintLayout(target).constraintRows[i]; if (row.mx_internal::contentSize){ row.mx_internal::_height = NaN; }; i++; }; measureColumnsAndRows(); }; i = 0; while (i < n) { child = (target.getChildAt(i) as IUIComponent); applyAnchorStylesDuringUpdateDisplayList(viewableWidth, viewableHeight, child); i++; }; } private function applyAnchorStylesDuringUpdateDisplayList(availableWidth:Number, availableHeight:Number, child:IUIComponent=null):void{ var i:int; var w:Number; var h:Number; var x:Number; var y:Number; var message:String; var vcHolder:Number; var hcHolder:Number; var vcY:Number; var hcX:Number; var baselineY:Number; var matchLeft:Boolean; var matchRight:Boolean; var matchHC:Boolean; var col:ConstraintColumn; var matchTop:Boolean; var matchBottom:Boolean; var matchVC:Boolean; var matchBaseline:Boolean; var row:ConstraintRow; var constraintChild:IConstraintClient = (child as IConstraintClient); if (!constraintChild){ return; }; var childInfo:ChildConstraintInfo = parseConstraints(child); var left:Number = childInfo.left; var right:Number = childInfo.right; var horizontalCenter:Number = childInfo.hc; var top:Number = childInfo.top; var bottom:Number = childInfo.bottom; var verticalCenter:Number = childInfo.vc; var baseline:Number = childInfo.baseline; var leftBoundary:String = childInfo.leftBoundary; var rightBoundary:String = childInfo.rightBoundary; var hcBoundary:String = childInfo.hcBoundary; var topBoundary:String = childInfo.topBoundary; var bottomBoundary:String = childInfo.bottomBoundary; var vcBoundary:String = childInfo.vcBoundary; var baselineBoundary:String = childInfo.baselineBoundary; var checkWidth:Boolean; var checkHeight:Boolean; var parentBoundariesLR:Boolean = ((((!(hcBoundary)) && (!(leftBoundary)))) && (!(rightBoundary))); var parentBoundariesTB:Boolean = ((((((!(vcBoundary)) && (!(topBoundary)))) && (!(bottomBoundary)))) && (!(baselineBoundary))); var leftHolder:Number = 0; var rightHolder:Number = availableWidth; var topHolder:Number = 0; var bottomHolder:Number = availableHeight; if (!parentBoundariesLR){ matchLeft = (leftBoundary) ? true : false; matchRight = (rightBoundary) ? true : false; matchHC = (hcBoundary) ? true : false; i = 0; while (i < IConstraintLayout(target).constraintColumns.length) { col = ConstraintColumn(IConstraintLayout(target).constraintColumns[i]); if (matchLeft){ if (leftBoundary == col.id){ leftHolder = col.x; matchLeft = false; }; }; if (matchRight){ if (rightBoundary == col.id){ rightHolder = (col.x + col.width); matchRight = false; }; }; if (matchHC){ if (hcBoundary == col.id){ hcHolder = col.width; hcX = col.x; matchHC = false; }; }; i++; }; if (matchLeft){ message = resourceManager.getString("containers", "columnNotFound", [leftBoundary]); throw (new ConstraintError(message)); }; if (matchRight){ message = resourceManager.getString("containers", "columnNotFound", [rightBoundary]); throw (new ConstraintError(message)); }; if (matchHC){ message = resourceManager.getString("containers", "columnNotFound", [hcBoundary]); throw (new ConstraintError(message)); }; } else { if (!parentBoundariesLR){ message = resourceManager.getString("containers", "noColumnsFound"); throw (new ConstraintError(message)); }; }; availableWidth = Math.round((rightHolder - leftHolder)); if (((!(isNaN(left))) && (!(isNaN(right))))){ w = ((availableWidth - left) - right); if (w < child.minWidth){ w = child.minWidth; }; } else { if (!isNaN(child.percentWidth)){ w = ((child.percentWidth / 100) * availableWidth); w = bound(w, child.minWidth, child.maxWidth); checkWidth = true; } else { w = child.getExplicitOrMeasuredWidth(); }; }; if (((!(parentBoundariesTB)) && ((IConstraintLayout(target).constraintRows.length > 0)))){ matchTop = (topBoundary) ? true : false; matchBottom = (bottomBoundary) ? true : false; matchVC = (vcBoundary) ? true : false; matchBaseline = (baselineBoundary) ? true : false; i = 0; while (i < IConstraintLayout(target).constraintRows.length) { row = ConstraintRow(IConstraintLayout(target).constraintRows[i]); if (matchTop){ if (topBoundary == row.id){ topHolder = row.y; matchTop = false; }; }; if (matchBottom){ if (bottomBoundary == row.id){ bottomHolder = (row.y + row.height); matchBottom = false; }; }; if (matchVC){ if (vcBoundary == row.id){ vcHolder = row.height; vcY = row.y; matchVC = false; }; }; if (matchBaseline){ if (baselineBoundary == row.id){ baselineY = row.y; matchBaseline = false; }; }; i++; }; if (matchTop){ message = resourceManager.getString("containers", "rowNotFound", [topBoundary]); throw (new ConstraintError(message)); }; if (matchBottom){ message = resourceManager.getString("containers", "rowNotFound", [bottomBoundary]); throw (new ConstraintError(message)); }; if (matchVC){ message = resourceManager.getString("containers", "rowNotFound", [vcBoundary]); throw (new ConstraintError(message)); }; if (matchBaseline){ message = resourceManager.getString("containers", "rowNotFound", [baselineBoundary]); throw (new ConstraintError(message)); }; } else { if (((!(parentBoundariesTB)) && (!((IConstraintLayout(target).constraintRows.length > 0))))){ message = resourceManager.getString("containers", "noRowsFound"); throw (new ConstraintError(message)); }; }; availableHeight = Math.round((bottomHolder - topHolder)); if (((!(isNaN(top))) && (!(isNaN(bottom))))){ h = ((availableHeight - top) - bottom); if (h < child.minHeight){ h = child.minHeight; }; } else { if (!isNaN(child.percentHeight)){ h = ((child.percentHeight / 100) * availableHeight); h = bound(h, child.minHeight, child.maxHeight); checkHeight = true; } else { h = child.getExplicitOrMeasuredHeight(); }; }; if (!isNaN(horizontalCenter)){ if (hcBoundary){ x = Math.round(((((hcHolder - w) / 2) + horizontalCenter) + hcX)); } else { x = Math.round((((availableWidth - w) / 2) + horizontalCenter)); }; } else { if (!isNaN(left)){ if (leftBoundary){ x = (leftHolder + left); } else { x = left; }; } else { if (!isNaN(right)){ if (rightBoundary){ x = ((rightHolder - right) - w); } else { x = ((availableWidth - right) - w); }; }; }; }; if (!isNaN(baseline)){ if (baselineBoundary){ y = ((baselineY - child.baselinePosition) + baseline); } else { y = baseline; }; }; if (!isNaN(verticalCenter)){ if (vcBoundary){ y = Math.round(((((vcHolder - h) / 2) + verticalCenter) + vcY)); } else { y = Math.round((((availableHeight - h) / 2) + verticalCenter)); }; } else { if (!isNaN(top)){ if (topBoundary){ y = (topHolder + top); } else { y = top; }; } else { if (!isNaN(bottom)){ if (bottomBoundary){ y = ((bottomHolder - bottom) - h); } else { y = ((availableHeight - bottom) - h); }; }; }; }; x = (isNaN(x)) ? child.x : x; y = (isNaN(y)) ? child.y : y; child.move(x, y); if (checkWidth){ if ((x + w) > availableWidth){ w = Math.max((availableWidth - x), child.minWidth); }; }; if (checkHeight){ if ((y + h) > availableHeight){ h = Math.max((availableHeight - y), child.minHeight); }; }; if (((!(isNaN(w))) && (!(isNaN(h))))){ child.setActualSize(w, h); }; } private function target_childAddHandler(event:ChildExistenceChangedEvent):void{ DisplayObject(event.relatedObject).addEventListener(MoveEvent.MOVE, child_moveHandler); } } }//package mx.containers.utilityClasses import mx.core.*; class LayoutConstraints { public var baseline; public var left; public var bottom; public var top; public var horizontalCenter; public var verticalCenter; public var right; private function LayoutConstraints():void{ super(); } } class ChildConstraintInfo { public var baseline:Number; public var left:Number; public var baselineBoundary:String; public var leftBoundary:String; public var hcBoundary:String; public var top:Number; public var right:Number; public var topBoundary:String; public var rightBoundary:String; public var bottom:Number; public var vc:Number; public var bottomBoundary:String; public var vcBoundary:String; public var hc:Number; private function ChildConstraintInfo(left:Number, right:Number, hc:Number, top:Number, bottom:Number, vc:Number, baseline:Number, leftBoundary:String=null, rightBoundary:String=null, hcBoundary:String=null, topBoundary:String=null, bottomBoundary:String=null, vcBoundary:String=null, baselineBoundary:String=null):void{ super(); this.left = left; this.right = right; this.hc = hc; this.top = top; this.bottom = bottom; this.vc = vc; this.baseline = baseline; this.leftBoundary = leftBoundary; this.rightBoundary = rightBoundary; this.hcBoundary = hcBoundary; this.topBoundary = topBoundary; this.bottomBoundary = bottomBoundary; this.vcBoundary = vcBoundary; this.baselineBoundary = baselineBoundary; } } class ContentColumnChild { public var rightCol:ConstraintColumn; public var hcCol:ConstraintColumn; public var left:Number; public var child:IUIComponent; public var rightOffset:Number; public var span:Number; public var hcOffset:Number; public var leftCol:ConstraintColumn; public var leftOffset:Number; public var hc:Number; public var right:Number; private function ContentColumnChild():void{ super(); } } class ContentRowChild { public var topRow:ConstraintRow; public var topOffset:Number; public var baseline:Number; public var baselineRow:ConstraintRow; public var span:Number; public var top:Number; public var vcOffset:Number; public var child:IUIComponent; public var bottomOffset:Number; public var bottom:Number; public var vc:Number; public var bottomRow:ConstraintRow; public var vcRow:ConstraintRow; public var baselineOffset:Number; private function ContentRowChild():void{ super(); } }
Section 39
//ConstraintColumn (mx.containers.utilityClasses.ConstraintColumn) package mx.containers.utilityClasses { import mx.core.*; import flash.events.*; public class ConstraintColumn extends EventDispatcher implements IMXMLObject { private var _container:IInvalidating; private var _explicitMinWidth:Number; mx_internal var _width:Number; mx_internal var contentSize:Boolean;// = false private var _percentWidth:Number; private var _explicitWidth:Number; private var _explicitMaxWidth:Number; private var _x:Number; private var _id:String; mx_internal static const VERSION:String = "3.2.0.3958"; public function ConstraintColumn(){ super(); } public function get container():IInvalidating{ return (_container); } public function get width():Number{ return (_width); } public function get percentWidth():Number{ return (_percentWidth); } public function set container(value:IInvalidating):void{ _container = value; } public function set maxWidth(value:Number):void{ if (_explicitMaxWidth != value){ _explicitMaxWidth = value; if (container){ container.invalidateSize(); container.invalidateDisplayList(); }; dispatchEvent(new Event("maxWidthChanged")); }; } public function set width(value:Number):void{ if (explicitWidth != value){ explicitWidth = value; if (_width != value){ _width = value; if (container){ container.invalidateSize(); container.invalidateDisplayList(); }; dispatchEvent(new Event("widthChanged")); }; }; } public function get maxWidth():Number{ return (_explicitMaxWidth); } public function get minWidth():Number{ return (_explicitMinWidth); } public function get id():String{ return (_id); } public function initialized(document:Object, id:String):void{ this.id = id; if (((!(this.width)) && (!(this.percentWidth)))){ contentSize = true; }; } public function set explicitWidth(value:Number):void{ if (_explicitWidth == value){ return; }; if (!isNaN(value)){ _percentWidth = NaN; }; _explicitWidth = value; if (container){ container.invalidateSize(); container.invalidateDisplayList(); }; dispatchEvent(new Event("explicitWidthChanged")); } public function setActualWidth(w:Number):void{ if (_width != w){ _width = w; dispatchEvent(new Event("widthChanged")); }; } public function set minWidth(value:Number):void{ if (_explicitMinWidth != value){ _explicitMinWidth = value; if (container){ container.invalidateSize(); container.invalidateDisplayList(); }; dispatchEvent(new Event("minWidthChanged")); }; } public function set percentWidth(value:Number):void{ if (_percentWidth == value){ return; }; if (!isNaN(value)){ _explicitWidth = NaN; }; _percentWidth = value; if (container){ container.invalidateSize(); container.invalidateDisplayList(); }; dispatchEvent(new Event("percentWidthChanged")); } public function set x(value:Number):void{ if (value != _x){ _x = value; dispatchEvent(new Event("xChanged")); }; } public function get explicitWidth():Number{ return (_explicitWidth); } public function set id(value:String):void{ _id = value; } public function get x():Number{ return (_x); } } }//package mx.containers.utilityClasses
Section 40
//ConstraintRow (mx.containers.utilityClasses.ConstraintRow) package mx.containers.utilityClasses { import mx.core.*; import flash.events.*; public class ConstraintRow extends EventDispatcher implements IMXMLObject { private var _container:IInvalidating; mx_internal var _height:Number; private var _explicitMinHeight:Number; private var _y:Number; private var _percentHeight:Number; private var _explicitMaxHeight:Number; mx_internal var contentSize:Boolean;// = false private var _explicitHeight:Number; private var _id:String; mx_internal static const VERSION:String = "3.2.0.3958"; public function ConstraintRow(){ super(); } public function get container():IInvalidating{ return (_container); } public function set container(value:IInvalidating):void{ _container = value; } public function set y(value:Number):void{ if (value != _y){ _y = value; dispatchEvent(new Event("yChanged")); }; } public function set height(value:Number):void{ if (explicitHeight != value){ explicitHeight = value; if (_height != value){ _height = value; if (container){ container.invalidateSize(); container.invalidateDisplayList(); }; dispatchEvent(new Event("heightChanged")); }; }; } public function set maxHeight(value:Number):void{ if (_explicitMaxHeight != value){ _explicitMaxHeight = value; if (container){ container.invalidateSize(); container.invalidateDisplayList(); }; dispatchEvent(new Event("maxHeightChanged")); }; } public function setActualHeight(h:Number):void{ if (_height != h){ _height = h; dispatchEvent(new Event("heightChanged")); }; } public function get minHeight():Number{ return (_explicitMinHeight); } public function get id():String{ return (_id); } public function set percentHeight(value:Number):void{ if (_percentHeight == value){ return; }; if (!isNaN(value)){ _explicitHeight = NaN; }; _percentHeight = value; if (container){ container.invalidateSize(); container.invalidateDisplayList(); }; } public function initialized(document:Object, id:String):void{ this.id = id; if (((!(this.height)) && (!(this.percentHeight)))){ contentSize = true; }; } public function get percentHeight():Number{ return (_percentHeight); } public function get height():Number{ return (_height); } public function get maxHeight():Number{ return (_explicitMaxHeight); } public function set minHeight(value:Number):void{ if (_explicitMinHeight != value){ _explicitMinHeight = value; if (container){ container.invalidateSize(); container.invalidateDisplayList(); }; dispatchEvent(new Event("minHeightChanged")); }; } public function set id(value:String):void{ _id = value; } public function get y():Number{ return (_y); } public function get explicitHeight():Number{ return (_explicitHeight); } public function set explicitHeight(value:Number):void{ if (_explicitHeight == value){ return; }; if (!isNaN(value)){ _percentHeight = NaN; }; _explicitHeight = value; if (container){ container.invalidateSize(); container.invalidateDisplayList(); }; dispatchEvent(new Event("explicitHeightChanged")); } } }//package mx.containers.utilityClasses
Section 41
//Flex (mx.containers.utilityClasses.Flex) package mx.containers.utilityClasses { import mx.core.*; public class Flex { mx_internal static const VERSION:String = "3.2.0.3958"; public function Flex(){ super(); } public static function flexChildWidthsProportionally(parent:Container, spaceForChildren:Number, h:Number):Number{ var childInfoArray:Array; var childInfo:FlexChildInfo; var child:IUIComponent; var i:int; var percentWidth:Number; var percentHeight:Number; var height:Number; var width:Number; var spaceToDistribute:Number = spaceForChildren; var totalPercentWidth:Number = 0; childInfoArray = []; var n:int = parent.numChildren; i = 0; while (i < n) { child = IUIComponent(parent.getChildAt(i)); percentWidth = child.percentWidth; percentHeight = child.percentHeight; if (((!(isNaN(percentHeight))) && (child.includeInLayout))){ height = Math.max(child.minHeight, Math.min(child.maxHeight, ((percentHeight)>=100) ? h : ((h * percentHeight) / 100))); } else { height = child.getExplicitOrMeasuredHeight(); }; if (((!(isNaN(percentWidth))) && (child.includeInLayout))){ totalPercentWidth = (totalPercentWidth + percentWidth); childInfo = new FlexChildInfo(); childInfo.percent = percentWidth; childInfo.min = child.minWidth; childInfo.max = child.maxWidth; childInfo.height = height; childInfo.child = child; childInfoArray.push(childInfo); } else { width = child.getExplicitOrMeasuredWidth(); if ((((child.scaleX == 1)) && ((child.scaleY == 1)))){ child.setActualSize(Math.floor(width), Math.floor(height)); } else { child.setActualSize(width, height); }; if (child.includeInLayout){ spaceToDistribute = (spaceToDistribute - child.width); }; }; i++; }; if (totalPercentWidth){ spaceToDistribute = flexChildrenProportionally(spaceForChildren, spaceToDistribute, totalPercentWidth, childInfoArray); n = childInfoArray.length; i = 0; while (i < n) { childInfo = childInfoArray[i]; child = childInfo.child; if ((((child.scaleX == 1)) && ((child.scaleY == 1)))){ child.setActualSize(Math.floor(childInfo.size), Math.floor(childInfo.height)); } else { child.setActualSize(childInfo.size, childInfo.height); }; i++; }; if (FlexVersion.compatibilityVersion >= FlexVersion.VERSION_3_0){ distributeExtraWidth(parent, spaceForChildren); }; }; return (spaceToDistribute); } public static function distributeExtraHeight(parent:Container, spaceForChildren:Number):void{ var i:int; var percentHeight:Number; var child:IUIComponent; var childHeight:Number; var wantSpace:Number; var n:int = parent.numChildren; var wantToGrow:Boolean; var spaceToDistribute:Number = spaceForChildren; var spaceUsed:Number = 0; i = 0; while (i < n) { child = IUIComponent(parent.getChildAt(i)); if (!child.includeInLayout){ } else { childHeight = child.height; percentHeight = child.percentHeight; spaceUsed = (spaceUsed + childHeight); if (!isNaN(percentHeight)){ wantSpace = Math.ceil(((percentHeight / 100) * spaceForChildren)); if (wantSpace > childHeight){ wantToGrow = true; }; }; }; i++; }; if (!wantToGrow){ return; }; spaceToDistribute = (spaceToDistribute - spaceUsed); var stillFlexibleComponents:Boolean; while (((stillFlexibleComponents) && ((spaceToDistribute > 0)))) { stillFlexibleComponents = false; i = 0; while (i < n) { child = IUIComponent(parent.getChildAt(i)); childHeight = child.height; percentHeight = child.percentHeight; if (((((!(isNaN(percentHeight))) && (child.includeInLayout))) && ((childHeight < child.maxHeight)))){ wantSpace = Math.ceil(((percentHeight / 100) * spaceForChildren)); if (wantSpace > childHeight){ child.setActualSize(child.width, (childHeight + 1)); spaceToDistribute--; stillFlexibleComponents = true; if (spaceToDistribute == 0){ return; }; }; }; i++; }; }; } public static function distributeExtraWidth(parent:Container, spaceForChildren:Number):void{ var i:int; var percentWidth:Number; var child:IUIComponent; var childWidth:Number; var wantSpace:Number; var n:int = parent.numChildren; var wantToGrow:Boolean; var spaceToDistribute:Number = spaceForChildren; var spaceUsed:Number = 0; i = 0; while (i < n) { child = IUIComponent(parent.getChildAt(i)); if (!child.includeInLayout){ } else { childWidth = child.width; percentWidth = child.percentWidth; spaceUsed = (spaceUsed + childWidth); if (!isNaN(percentWidth)){ wantSpace = Math.ceil(((percentWidth / 100) * spaceForChildren)); if (wantSpace > childWidth){ wantToGrow = true; }; }; }; i++; }; if (!wantToGrow){ return; }; spaceToDistribute = (spaceToDistribute - spaceUsed); var stillFlexibleComponents:Boolean; while (((stillFlexibleComponents) && ((spaceToDistribute > 0)))) { stillFlexibleComponents = false; i = 0; while (i < n) { child = IUIComponent(parent.getChildAt(i)); childWidth = child.width; percentWidth = child.percentWidth; if (((((!(isNaN(percentWidth))) && (child.includeInLayout))) && ((childWidth < child.maxWidth)))){ wantSpace = Math.ceil(((percentWidth / 100) * spaceForChildren)); if (wantSpace > childWidth){ child.setActualSize((childWidth + 1), child.height); spaceToDistribute--; stillFlexibleComponents = true; if (spaceToDistribute == 0){ return; }; }; }; i++; }; }; } public static function flexChildrenProportionally(spaceForChildren:Number, spaceToDistribute:Number, totalPercent:Number, childInfoArray:Array):Number{ var flexConsumed:Number; var done:Boolean; var spacePerPercent:*; var i:*; var childInfo:*; var size:*; var min:*; var max:*; var numChildren:int = childInfoArray.length; var unused:Number = (spaceToDistribute - ((spaceForChildren * totalPercent) / 100)); if (unused > 0){ spaceToDistribute = (spaceToDistribute - unused); }; do { flexConsumed = 0; done = true; spacePerPercent = (spaceToDistribute / totalPercent); i = 0; while (i < numChildren) { childInfo = childInfoArray[i]; size = (childInfo.percent * spacePerPercent); if (size < childInfo.min){ min = childInfo.min; childInfo.size = min; --numChildren; childInfoArray[i] = childInfoArray[numChildren]; childInfoArray[numChildren] = childInfo; totalPercent = (totalPercent - childInfo.percent); spaceToDistribute = (spaceToDistribute - min); done = false; break; } else { if (size > childInfo.max){ max = childInfo.max; childInfo.size = max; --numChildren; childInfoArray[i] = childInfoArray[numChildren]; childInfoArray[numChildren] = childInfo; totalPercent = (totalPercent - childInfo.percent); spaceToDistribute = (spaceToDistribute - max); done = false; break; } else { childInfo.size = size; flexConsumed = (flexConsumed + size); }; }; i++; }; } while (!(done)); return (Math.max(0, Math.floor((spaceToDistribute - flexConsumed)))); } public static function flexChildHeightsProportionally(parent:Container, spaceForChildren:Number, w:Number):Number{ var childInfo:FlexChildInfo; var child:IUIComponent; var i:int; var percentWidth:Number; var percentHeight:Number; var width:Number; var height:Number; var spaceToDistribute:Number = spaceForChildren; var totalPercentHeight:Number = 0; var childInfoArray:Array = []; var n:int = parent.numChildren; i = 0; while (i < n) { child = IUIComponent(parent.getChildAt(i)); percentWidth = child.percentWidth; percentHeight = child.percentHeight; if (((!(isNaN(percentWidth))) && (child.includeInLayout))){ width = Math.max(child.minWidth, Math.min(child.maxWidth, ((percentWidth)>=100) ? w : ((w * percentWidth) / 100))); } else { width = child.getExplicitOrMeasuredWidth(); }; if (((!(isNaN(percentHeight))) && (child.includeInLayout))){ totalPercentHeight = (totalPercentHeight + percentHeight); childInfo = new FlexChildInfo(); childInfo.percent = percentHeight; childInfo.min = child.minHeight; childInfo.max = child.maxHeight; childInfo.width = width; childInfo.child = child; childInfoArray.push(childInfo); } else { height = child.getExplicitOrMeasuredHeight(); if ((((child.scaleX == 1)) && ((child.scaleY == 1)))){ child.setActualSize(Math.floor(width), Math.floor(height)); } else { child.setActualSize(width, height); }; if (child.includeInLayout){ spaceToDistribute = (spaceToDistribute - child.height); }; }; i++; }; if (totalPercentHeight){ spaceToDistribute = flexChildrenProportionally(spaceForChildren, spaceToDistribute, totalPercentHeight, childInfoArray); n = childInfoArray.length; i = 0; while (i < n) { childInfo = childInfoArray[i]; child = childInfo.child; if ((((child.scaleX == 1)) && ((child.scaleY == 1)))){ child.setActualSize(Math.floor(childInfo.width), Math.floor(childInfo.size)); } else { child.setActualSize(childInfo.width, childInfo.size); }; i++; }; if (FlexVersion.compatibilityVersion >= FlexVersion.VERSION_3_0){ distributeExtraHeight(parent, spaceForChildren); }; }; return (spaceToDistribute); } } }//package mx.containers.utilityClasses
Section 42
//FlexChildInfo (mx.containers.utilityClasses.FlexChildInfo) package mx.containers.utilityClasses { import mx.core.*; public class FlexChildInfo { public var flex:Number;// = 0 public var preferred:Number;// = 0 public var percent:Number; public var width:Number; public var height:Number; public var size:Number;// = 0 public var max:Number; public var min:Number; public var child:IUIComponent; mx_internal static const VERSION:String = "3.2.0.3958"; public function FlexChildInfo(){ super(); } } }//package mx.containers.utilityClasses
Section 43
//IConstraintLayout (mx.containers.utilityClasses.IConstraintLayout) package mx.containers.utilityClasses { public interface IConstraintLayout { function get constraintColumns():Array; function set constraintRows(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\containers\utilityClasses;IConstraintLayout.as:Array):void; function get constraintRows():Array; function set constraintColumns(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\containers\utilityClasses;IConstraintLayout.as:Array):void; } }//package mx.containers.utilityClasses
Section 44
//Layout (mx.containers.utilityClasses.Layout) package mx.containers.utilityClasses { import mx.core.*; import mx.resources.*; public class Layout { private var _target:Container; protected var resourceManager:IResourceManager; mx_internal static const VERSION:String = "3.2.0.3958"; public function Layout(){ resourceManager = ResourceManager.getInstance(); super(); } public function get target():Container{ return (_target); } public function set target(value:Container):void{ _target = value; } public function measure():void{ } public function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void{ } } }//package mx.containers.utilityClasses
Section 45
//Box (mx.containers.Box) package mx.containers { import mx.core.*; import flash.events.*; import mx.containers.utilityClasses.*; public class Box extends Container { mx_internal var layoutObject:BoxLayout; mx_internal static const VERSION:String = "3.2.0.3958"; public function Box(){ layoutObject = new BoxLayout(); super(); layoutObject.target = this; } mx_internal function isVertical():Boolean{ return (!((direction == BoxDirection.HORIZONTAL))); } public function set direction(value:String):void{ layoutObject.direction = value; invalidateSize(); invalidateDisplayList(); dispatchEvent(new Event("directionChanged")); } override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void{ super.updateDisplayList(unscaledWidth, unscaledHeight); layoutObject.updateDisplayList(unscaledWidth, unscaledHeight); } public function pixelsToPercent(pxl:Number):Number{ var child:IUIComponent; var size:Number; var perc:Number; var vertical:Boolean = isVertical(); var totalPerc:Number = 0; var totalSize:Number = 0; var n:int = numChildren; var i:int; while (i < n) { child = IUIComponent(getChildAt(i)); size = (vertical) ? child.height : child.width; perc = (vertical) ? child.percentHeight : child.percentWidth; if (!isNaN(perc)){ totalPerc = (totalPerc + perc); totalSize = (totalSize + size); }; i++; }; var p:Number = 100; if (totalSize != pxl){ p = (((totalSize * totalPerc) / (totalSize - pxl)) - totalPerc); }; return (p); } override protected function measure():void{ super.measure(); layoutObject.measure(); } public function get direction():String{ return (layoutObject.direction); } } }//package mx.containers
Section 46
//BoxDirection (mx.containers.BoxDirection) package mx.containers { public final class BoxDirection { public static const HORIZONTAL:String = "horizontal"; public static const VERTICAL:String = "vertical"; mx_internal static const VERSION:String = "3.2.0.3958"; public function BoxDirection(){ super(); } } }//package mx.containers
Section 47
//Canvas (mx.containers.Canvas) package mx.containers { import mx.core.*; import mx.containers.utilityClasses.*; public class Canvas extends Container implements IConstraintLayout { private var _constraintColumns:Array; private var layoutObject:CanvasLayout; private var _constraintRows:Array; mx_internal static const VERSION:String = "3.2.0.3958"; public function Canvas(){ layoutObject = new CanvasLayout(); _constraintColumns = []; _constraintRows = []; super(); layoutObject.target = this; } public function get constraintColumns():Array{ return (_constraintColumns); } override mx_internal function get usePadding():Boolean{ return (false); } public function set constraintRows(value:Array):void{ var n:int; var i:int; if (value != _constraintRows){ n = value.length; i = 0; while (i < n) { ConstraintRow(value[i]).container = this; i++; }; _constraintRows = value; invalidateSize(); invalidateDisplayList(); }; } public function get constraintRows():Array{ return (_constraintRows); } override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void{ super.updateDisplayList(unscaledWidth, unscaledHeight); layoutObject.updateDisplayList(unscaledWidth, unscaledHeight); } public function set constraintColumns(value:Array):void{ var n:int; var i:int; if (value != _constraintColumns){ n = value.length; i = 0; while (i < n) { ConstraintColumn(value[i]).container = this; i++; }; _constraintColumns = value; invalidateSize(); invalidateDisplayList(); }; } override protected function measure():void{ super.measure(); layoutObject.measure(); } } }//package mx.containers
Section 48
//DataGridListData (mx.controls.dataGridClasses.DataGridListData) package mx.controls.dataGridClasses { import mx.core.*; import mx.controls.listClasses.*; public class DataGridListData extends BaseListData { public var dataField:String; mx_internal static const VERSION:String = "3.2.0.3958"; public function DataGridListData(text:String, dataField:String, columnIndex:int, uid:String, owner:IUIComponent, rowIndex:int=0){ super(text, uid, owner, rowIndex, columnIndex); this.dataField = dataField; } } }//package mx.controls.dataGridClasses
Section 49
//BaseListData (mx.controls.listClasses.BaseListData) package mx.controls.listClasses { import mx.core.*; public class BaseListData { private var _uid:String; public var owner:IUIComponent; public var label:String; public var rowIndex:int; public var columnIndex:int; mx_internal static const VERSION:String = "3.2.0.3958"; public function BaseListData(label:String, uid:String, owner:IUIComponent, rowIndex:int=0, columnIndex:int=0){ super(); this.label = label; this.uid = uid; this.owner = owner; this.rowIndex = rowIndex; this.columnIndex = columnIndex; } public function set uid(value:String):void{ _uid = value; } public function get uid():String{ return (_uid); } } }//package mx.controls.listClasses
Section 50
//IDropInListItemRenderer (mx.controls.listClasses.IDropInListItemRenderer) package mx.controls.listClasses { public interface IDropInListItemRenderer { function get listData():BaseListData; function set listData(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\controls\listClasses;IDropInListItemRenderer.as:BaseListData):void; } }//package mx.controls.listClasses
Section 51
//IListItemRenderer (mx.controls.listClasses.IListItemRenderer) package mx.controls.listClasses { import mx.core.*; import mx.managers.*; import flash.events.*; import mx.styles.*; public interface IListItemRenderer extends IDataRenderer, IEventDispatcher, IFlexDisplayObject, ILayoutManagerClient, ISimpleStyleClient, IUIComponent { } }//package mx.controls.listClasses
Section 52
//ScrollBar (mx.controls.scrollClasses.ScrollBar) package mx.controls.scrollClasses { import flash.display.*; import flash.geom.*; import mx.core.*; import flash.events.*; import mx.events.*; import mx.styles.*; import mx.controls.*; import flash.utils.*; import flash.ui.*; public class ScrollBar extends UIComponent { private var _direction:String;// = "vertical" private var _pageScrollSize:Number;// = 0 mx_internal var scrollTrack:Button; mx_internal var downArrow:Button; mx_internal var scrollThumb:ScrollThumb; private var trackScrollRepeatDirection:int; private var _minScrollPosition:Number;// = 0 private var trackPosition:Number; private var _pageSize:Number;// = 0 mx_internal var _minHeight:Number;// = 32 private var _maxScrollPosition:Number;// = 0 private var trackScrollTimer:Timer; mx_internal var upArrow:Button; private var _lineScrollSize:Number;// = 1 private var _scrollPosition:Number;// = 0 private var trackScrolling:Boolean;// = false mx_internal var isScrolling:Boolean; mx_internal var oldPosition:Number; mx_internal var _minWidth:Number;// = 16 mx_internal static const VERSION:String = "3.2.0.3958"; public static const THICKNESS:Number = 16; public function ScrollBar(){ super(); } override public function set enabled(value:Boolean):void{ super.enabled = value; invalidateDisplayList(); } public function set lineScrollSize(value:Number):void{ _lineScrollSize = value; } public function get minScrollPosition():Number{ return (_minScrollPosition); } mx_internal function dispatchScrollEvent(oldPosition:Number, detail:String):void{ var event:ScrollEvent = new ScrollEvent(ScrollEvent.SCROLL); event.detail = detail; event.position = scrollPosition; event.delta = (scrollPosition - oldPosition); event.direction = direction; dispatchEvent(event); } private function downArrow_buttonDownHandler(event:FlexEvent):void{ if (isNaN(oldPosition)){ oldPosition = scrollPosition; }; lineScroll(1); } private function scrollTrack_mouseDownHandler(event:MouseEvent):void{ if (!(((event.target == this)) || ((event.target == scrollTrack)))){ return; }; trackScrolling = true; var sbRoot:DisplayObject = systemManager.getSandboxRoot(); sbRoot.addEventListener(MouseEvent.MOUSE_UP, scrollTrack_mouseUpHandler, true); sbRoot.addEventListener(MouseEvent.MOUSE_MOVE, scrollTrack_mouseMoveHandler, true); sbRoot.addEventListener(SandboxMouseEvent.MOUSE_UP_SOMEWHERE, scrollTrack_mouseLeaveHandler); systemManager.deployMouseShields(true); var pt:Point = new Point(event.localX, event.localY); pt = event.target.localToGlobal(pt); pt = globalToLocal(pt); trackPosition = pt.y; if (isNaN(oldPosition)){ oldPosition = scrollPosition; }; trackScrollRepeatDirection = (((scrollThumb.y + scrollThumb.height) < pt.y)) ? 1 : ((scrollThumb.y > pt.y)) ? -1 : 0; pageScroll(trackScrollRepeatDirection); if (!trackScrollTimer){ trackScrollTimer = new Timer(getStyle("repeatDelay"), 1); trackScrollTimer.addEventListener(TimerEvent.TIMER, trackScrollTimerHandler); }; trackScrollTimer.start(); } public function set minScrollPosition(value:Number):void{ _minScrollPosition = value; invalidateDisplayList(); } public function get scrollPosition():Number{ return (_scrollPosition); } mx_internal function get linePlusDetail():String{ return (((direction == ScrollBarDirection.VERTICAL)) ? ScrollEventDetail.LINE_DOWN : ScrollEventDetail.LINE_RIGHT); } public function get maxScrollPosition():Number{ return (_maxScrollPosition); } protected function get thumbStyleFilters():Object{ return (null); } override public function set doubleClickEnabled(value:Boolean):void{ } public function get lineScrollSize():Number{ return (_lineScrollSize); } mx_internal function get virtualHeight():Number{ return (unscaledHeight); } public function set scrollPosition(value:Number):void{ var denom:Number; var y:Number; var x:Number; _scrollPosition = value; if (scrollThumb){ if (!cacheAsBitmap){ cacheHeuristic = (scrollThumb.cacheHeuristic = true); }; if (!isScrolling){ value = Math.min(value, maxScrollPosition); value = Math.max(value, minScrollPosition); denom = (maxScrollPosition - minScrollPosition); y = ((((denom == 0)) || (isNaN(denom)))) ? 0 : ((((value - minScrollPosition) * (trackHeight - scrollThumb.height)) / denom) + trackY); x = (((virtualWidth - scrollThumb.width) / 2) + getStyle("thumbOffset")); scrollThumb.move(Math.round(x), Math.round(y)); }; }; } protected function get downArrowStyleFilters():Object{ return (null); } public function get pageSize():Number{ return (_pageSize); } public function set pageScrollSize(value:Number):void{ _pageScrollSize = value; } public function set maxScrollPosition(value:Number):void{ _maxScrollPosition = value; invalidateDisplayList(); } mx_internal function pageScroll(direction:int):void{ var oldPosition:Number; var detail:String; var delta:Number = ((_pageScrollSize)!=0) ? _pageScrollSize : pageSize; var newPos:Number = (_scrollPosition + (direction * delta)); if (newPos > maxScrollPosition){ newPos = maxScrollPosition; } else { if (newPos < minScrollPosition){ newPos = minScrollPosition; }; }; if (newPos != scrollPosition){ oldPosition = scrollPosition; scrollPosition = newPos; detail = ((direction < 0)) ? pageMinusDetail : pagePlusDetail; dispatchScrollEvent(oldPosition, detail); }; } override protected function createChildren():void{ super.createChildren(); if (!scrollTrack){ scrollTrack = new Button(); scrollTrack.focusEnabled = false; scrollTrack.skinName = "trackSkin"; scrollTrack.upSkinName = "trackUpSkin"; scrollTrack.overSkinName = "trackOverSkin"; scrollTrack.downSkinName = "trackDownSkin"; scrollTrack.disabledSkinName = "trackDisabledSkin"; if ((scrollTrack is ISimpleStyleClient)){ ISimpleStyleClient(scrollTrack).styleName = this; }; addChild(scrollTrack); scrollTrack.validateProperties(); }; if (!upArrow){ upArrow = new Button(); upArrow.enabled = false; upArrow.autoRepeat = true; upArrow.focusEnabled = false; upArrow.upSkinName = "upArrowUpSkin"; upArrow.overSkinName = "upArrowOverSkin"; upArrow.downSkinName = "upArrowDownSkin"; upArrow.disabledSkinName = "upArrowDisabledSkin"; upArrow.skinName = "upArrowSkin"; upArrow.upIconName = ""; upArrow.overIconName = ""; upArrow.downIconName = ""; upArrow.disabledIconName = ""; addChild(upArrow); upArrow.styleName = new StyleProxy(this, upArrowStyleFilters); upArrow.validateProperties(); upArrow.addEventListener(FlexEvent.BUTTON_DOWN, upArrow_buttonDownHandler); }; if (!downArrow){ downArrow = new Button(); downArrow.enabled = false; downArrow.autoRepeat = true; downArrow.focusEnabled = false; downArrow.upSkinName = "downArrowUpSkin"; downArrow.overSkinName = "downArrowOverSkin"; downArrow.downSkinName = "downArrowDownSkin"; downArrow.disabledSkinName = "downArrowDisabledSkin"; downArrow.skinName = "downArrowSkin"; downArrow.upIconName = ""; downArrow.overIconName = ""; downArrow.downIconName = ""; downArrow.disabledIconName = ""; addChild(downArrow); downArrow.styleName = new StyleProxy(this, downArrowStyleFilters); downArrow.validateProperties(); downArrow.addEventListener(FlexEvent.BUTTON_DOWN, downArrow_buttonDownHandler); }; } private function scrollTrack_mouseOverHandler(event:MouseEvent):void{ if (!(((event.target == this)) || ((event.target == scrollTrack)))){ return; }; if (trackScrolling){ trackScrollTimer.start(); }; } private function get minDetail():String{ return (((direction == ScrollBarDirection.VERTICAL)) ? ScrollEventDetail.AT_TOP : ScrollEventDetail.AT_LEFT); } mx_internal function isScrollBarKey(key:uint):Boolean{ var oldPosition:Number; if (key == Keyboard.HOME){ if (scrollPosition != 0){ oldPosition = scrollPosition; scrollPosition = 0; dispatchScrollEvent(oldPosition, minDetail); }; return (true); } else { if (key == Keyboard.END){ if (scrollPosition < maxScrollPosition){ oldPosition = scrollPosition; scrollPosition = maxScrollPosition; dispatchScrollEvent(oldPosition, maxDetail); }; return (true); }; }; return (false); } mx_internal function get lineMinusDetail():String{ return (((direction == ScrollBarDirection.VERTICAL)) ? ScrollEventDetail.LINE_UP : ScrollEventDetail.LINE_LEFT); } mx_internal function get pageMinusDetail():String{ return (((direction == ScrollBarDirection.VERTICAL)) ? ScrollEventDetail.PAGE_UP : ScrollEventDetail.PAGE_LEFT); } private function get maxDetail():String{ return (((direction == ScrollBarDirection.VERTICAL)) ? ScrollEventDetail.AT_BOTTOM : ScrollEventDetail.AT_RIGHT); } private function scrollTrack_mouseLeaveHandler(event:Event):void{ trackScrolling = false; var sbRoot:DisplayObject = systemManager.getSandboxRoot(); sbRoot.removeEventListener(MouseEvent.MOUSE_UP, scrollTrack_mouseUpHandler, true); sbRoot.removeEventListener(MouseEvent.MOUSE_MOVE, scrollTrack_mouseMoveHandler, true); sbRoot.removeEventListener(SandboxMouseEvent.MOUSE_UP_SOMEWHERE, scrollTrack_mouseLeaveHandler); systemManager.deployMouseShields(false); if (trackScrollTimer){ trackScrollTimer.reset(); }; if (event.target != scrollTrack){ return; }; var detail:String = ((oldPosition > scrollPosition)) ? pageMinusDetail : pagePlusDetail; dispatchScrollEvent(oldPosition, detail); oldPosition = NaN; } protected function get upArrowStyleFilters():Object{ return (null); } private function get trackHeight():Number{ return ((virtualHeight - (upArrow.getExplicitOrMeasuredHeight() + downArrow.getExplicitOrMeasuredHeight()))); } public function get pageScrollSize():Number{ return (_pageScrollSize); } override protected function measure():void{ super.measure(); upArrow.validateSize(); downArrow.validateSize(); scrollTrack.validateSize(); if (FlexVersion.compatibilityVersion >= FlexVersion.VERSION_3_0){ _minWidth = (scrollThumb) ? scrollThumb.getExplicitOrMeasuredWidth() : 0; _minWidth = Math.max(scrollTrack.getExplicitOrMeasuredWidth(), upArrow.getExplicitOrMeasuredWidth(), downArrow.getExplicitOrMeasuredWidth(), _minWidth); } else { _minWidth = upArrow.getExplicitOrMeasuredWidth(); }; _minHeight = (upArrow.getExplicitOrMeasuredHeight() + downArrow.getExplicitOrMeasuredHeight()); } mx_internal function lineScroll(direction:int):void{ var oldPosition:Number; var detail:String; var delta:Number = _lineScrollSize; var newPos:Number = (_scrollPosition + (direction * delta)); if (newPos > maxScrollPosition){ newPos = maxScrollPosition; } else { if (newPos < minScrollPosition){ newPos = minScrollPosition; }; }; if (newPos != scrollPosition){ oldPosition = scrollPosition; scrollPosition = newPos; detail = ((direction < 0)) ? lineMinusDetail : linePlusDetail; dispatchScrollEvent(oldPosition, detail); }; } public function setScrollProperties(pageSize:Number, minScrollPosition:Number, maxScrollPosition:Number, pageScrollSize:Number=0):void{ var thumbHeight:Number; this.pageSize = pageSize; _pageScrollSize = ((pageScrollSize)>0) ? pageScrollSize : pageSize; this.minScrollPosition = Math.max(minScrollPosition, 0); this.maxScrollPosition = Math.max(maxScrollPosition, 0); _scrollPosition = Math.max(this.minScrollPosition, _scrollPosition); _scrollPosition = Math.min(this.maxScrollPosition, _scrollPosition); if (((((this.maxScrollPosition - this.minScrollPosition) > 0)) && (enabled))){ upArrow.enabled = true; downArrow.enabled = true; scrollTrack.enabled = true; addEventListener(MouseEvent.MOUSE_DOWN, scrollTrack_mouseDownHandler); addEventListener(MouseEvent.MOUSE_OVER, scrollTrack_mouseOverHandler); addEventListener(MouseEvent.MOUSE_OUT, scrollTrack_mouseOutHandler); if (!scrollThumb){ scrollThumb = new ScrollThumb(); scrollThumb.focusEnabled = false; addChildAt(scrollThumb, getChildIndex(downArrow)); scrollThumb.styleName = new StyleProxy(this, thumbStyleFilters); scrollThumb.upSkinName = "thumbUpSkin"; scrollThumb.overSkinName = "thumbOverSkin"; scrollThumb.downSkinName = "thumbDownSkin"; scrollThumb.iconName = "thumbIcon"; scrollThumb.skinName = "thumbSkin"; }; thumbHeight = ((trackHeight < 0)) ? 0 : Math.round(((pageSize / ((this.maxScrollPosition - this.minScrollPosition) + pageSize)) * trackHeight)); if (thumbHeight < scrollThumb.minHeight){ if (trackHeight < scrollThumb.minHeight){ scrollThumb.visible = false; } else { thumbHeight = scrollThumb.minHeight; scrollThumb.visible = true; scrollThumb.setActualSize(scrollThumb.measuredWidth, scrollThumb.minHeight); }; } else { scrollThumb.visible = true; scrollThumb.setActualSize(scrollThumb.measuredWidth, thumbHeight); }; scrollThumb.setRange((upArrow.getExplicitOrMeasuredHeight() + 0), ((virtualHeight - downArrow.getExplicitOrMeasuredHeight()) - scrollThumb.height), this.minScrollPosition, this.maxScrollPosition); scrollPosition = Math.max(Math.min(scrollPosition, this.maxScrollPosition), this.minScrollPosition); } else { upArrow.enabled = false; downArrow.enabled = false; scrollTrack.enabled = false; if (scrollThumb){ scrollThumb.visible = false; }; }; } private function trackScrollTimerHandler(event:Event):void{ if (trackScrollRepeatDirection == 1){ if ((scrollThumb.y + scrollThumb.height) > trackPosition){ return; }; }; if (trackScrollRepeatDirection == -1){ if (scrollThumb.y < trackPosition){ return; }; }; pageScroll(trackScrollRepeatDirection); if (((trackScrollTimer) && ((trackScrollTimer.repeatCount == 1)))){ trackScrollTimer.delay = getStyle("repeatInterval"); trackScrollTimer.repeatCount = 0; }; } private function upArrow_buttonDownHandler(event:FlexEvent):void{ if (isNaN(oldPosition)){ oldPosition = scrollPosition; }; lineScroll(-1); } public function set pageSize(value:Number):void{ _pageSize = value; } private function get trackY():Number{ return (upArrow.getExplicitOrMeasuredHeight()); } private function scrollTrack_mouseOutHandler(event:MouseEvent):void{ if (trackScrolling){ trackScrollTimer.stop(); }; } private function scrollTrack_mouseUpHandler(event:MouseEvent):void{ scrollTrack_mouseLeaveHandler(event); } private function scrollTrack_mouseMoveHandler(event:MouseEvent):void{ var pt:Point; if (trackScrolling){ pt = new Point(event.stageX, event.stageY); pt = globalToLocal(pt); trackPosition = pt.y; }; } override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void{ if ($height == 1){ return; }; if (!upArrow){ return; }; super.updateDisplayList(unscaledWidth, unscaledHeight); if (cacheAsBitmap){ cacheHeuristic = (scrollThumb.cacheHeuristic = false); }; upArrow.setActualSize(upArrow.getExplicitOrMeasuredWidth(), upArrow.getExplicitOrMeasuredHeight()); if (FlexVersion.compatibilityVersion >= FlexVersion.VERSION_3_0){ upArrow.move(((virtualWidth - upArrow.width) / 2), 0); } else { upArrow.move(0, 0); }; scrollTrack.setActualSize(scrollTrack.getExplicitOrMeasuredWidth(), virtualHeight); if (FlexVersion.compatibilityVersion >= FlexVersion.VERSION_3_0){ scrollTrack.x = ((virtualWidth - scrollTrack.width) / 2); }; scrollTrack.y = 0; downArrow.setActualSize(downArrow.getExplicitOrMeasuredWidth(), downArrow.getExplicitOrMeasuredHeight()); if (FlexVersion.compatibilityVersion >= FlexVersion.VERSION_3_0){ downArrow.move(((virtualWidth - downArrow.width) / 2), (virtualHeight - downArrow.getExplicitOrMeasuredHeight())); } else { downArrow.move(0, (virtualHeight - downArrow.getExplicitOrMeasuredHeight())); }; setScrollProperties(pageSize, minScrollPosition, maxScrollPosition, _pageScrollSize); scrollPosition = _scrollPosition; } mx_internal function get pagePlusDetail():String{ return (((direction == ScrollBarDirection.VERTICAL)) ? ScrollEventDetail.PAGE_DOWN : ScrollEventDetail.PAGE_RIGHT); } mx_internal function get virtualWidth():Number{ return (unscaledWidth); } public function set direction(value:String):void{ _direction = value; invalidateSize(); invalidateDisplayList(); dispatchEvent(new Event("directionChanged")); } public function get direction():String{ return (_direction); } } }//package mx.controls.scrollClasses
Section 53
//ScrollBarDirection (mx.controls.scrollClasses.ScrollBarDirection) package mx.controls.scrollClasses { public final class ScrollBarDirection { public static const HORIZONTAL:String = "horizontal"; public static const VERTICAL:String = "vertical"; mx_internal static const VERSION:String = "3.2.0.3958"; public function ScrollBarDirection(){ super(); } } }//package mx.controls.scrollClasses
Section 54
//ScrollThumb (mx.controls.scrollClasses.ScrollThumb) package mx.controls.scrollClasses { import flash.geom.*; import flash.events.*; import mx.events.*; import mx.controls.*; public class ScrollThumb extends Button { private var lastY:Number; private var datamin:Number; private var ymax:Number; private var ymin:Number; private var datamax:Number; mx_internal static const VERSION:String = "3.2.0.3958"; public function ScrollThumb(){ super(); explicitMinHeight = 10; stickyHighlighting = true; } private function stopDragThumb():void{ var scrollBar:ScrollBar = ScrollBar(parent); scrollBar.isScrolling = false; scrollBar.dispatchScrollEvent(scrollBar.oldPosition, ScrollEventDetail.THUMB_POSITION); scrollBar.oldPosition = NaN; systemManager.getSandboxRoot().removeEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler, true); } override protected function mouseDownHandler(event:MouseEvent):void{ super.mouseDownHandler(event); var scrollBar:ScrollBar = ScrollBar(parent); scrollBar.oldPosition = scrollBar.scrollPosition; lastY = event.localY; systemManager.getSandboxRoot().addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler, true); } private function mouseMoveHandler(event:MouseEvent):void{ if (ymin == ymax){ return; }; var pt:Point = new Point(event.stageX, event.stageY); pt = globalToLocal(pt); var scrollMove:Number = (pt.y - lastY); scrollMove = (scrollMove + y); if (scrollMove < ymin){ scrollMove = ymin; } else { if (scrollMove > ymax){ scrollMove = ymax; }; }; var scrollBar:ScrollBar = ScrollBar(parent); scrollBar.isScrolling = true; $y = scrollMove; var oldPosition:Number = scrollBar.scrollPosition; var pos:Number = (Math.round((((datamax - datamin) * (y - ymin)) / (ymax - ymin))) + datamin); scrollBar.scrollPosition = pos; scrollBar.dispatchScrollEvent(oldPosition, ScrollEventDetail.THUMB_TRACK); event.updateAfterEvent(); } override mx_internal function buttonReleased():void{ super.buttonReleased(); stopDragThumb(); } mx_internal function setRange(ymin:Number, ymax:Number, datamin:Number, datamax:Number):void{ this.ymin = ymin; this.ymax = ymax; this.datamin = datamin; this.datamax = datamax; } } }//package mx.controls.scrollClasses
Section 55
//Button (mx.controls.Button) package mx.controls { import flash.display.*; import flash.text.*; import mx.core.*; import mx.managers.*; import flash.events.*; import mx.events.*; import mx.styles.*; import flash.utils.*; import mx.controls.listClasses.*; import flash.ui.*; import mx.controls.dataGridClasses.*; public class Button extends UIComponent implements IDataRenderer, IDropInListItemRenderer, IFocusManagerComponent, IListItemRenderer, IFontContextComponent, IButton { mx_internal var _emphasized:Boolean;// = false mx_internal var extraSpacing:Number;// = 20 private var icons:Array; public var selectedField:String;// = null private var labelChanged:Boolean;// = false private var skinMeasuredWidth:Number; mx_internal var checkedDefaultSkin:Boolean;// = false private var autoRepeatTimer:Timer; mx_internal var disabledIconName:String;// = "disabledIcon" mx_internal var disabledSkinName:String;// = "disabledSkin" mx_internal var checkedDefaultIcon:Boolean;// = false public var stickyHighlighting:Boolean;// = false private var enabledChanged:Boolean;// = false mx_internal var selectedUpIconName:String;// = "selectedUpIcon" mx_internal var selectedUpSkinName:String;// = "selectedUpSkin" mx_internal var upIconName:String;// = "upIcon" mx_internal var upSkinName:String;// = "upSkin" mx_internal var centerContent:Boolean;// = true mx_internal var buttonOffset:Number;// = 0 private var skinMeasuredHeight:Number; private var oldUnscaledWidth:Number; mx_internal var downIconName:String;// = "downIcon" mx_internal var _labelPlacement:String;// = "right" mx_internal var downSkinName:String;// = "downSkin" mx_internal var _toggle:Boolean;// = false private var _phase:String;// = "up" private var toolTipSet:Boolean;// = false private var _data:Object; mx_internal var currentIcon:IFlexDisplayObject; mx_internal var currentSkin:IFlexDisplayObject; mx_internal var overIconName:String;// = "overIcon" mx_internal var selectedDownIconName:String;// = "selectedDownIcon" mx_internal var overSkinName:String;// = "overSkin" mx_internal var iconName:String;// = "icon" mx_internal var skinName:String;// = "skin" mx_internal var selectedDownSkinName:String;// = "selectedDownSkin" private var skins:Array; private var selectedSet:Boolean; private var _autoRepeat:Boolean;// = false private var styleChangedFlag:Boolean;// = true mx_internal var selectedOverIconName:String;// = "selectedOverIcon" private var _listData:BaseListData; mx_internal var selectedOverSkinName:String;// = "selectedOverSkin" protected var textField:IUITextField; private var labelSet:Boolean; mx_internal var defaultIconUsesStates:Boolean;// = false mx_internal var defaultSkinUsesStates:Boolean;// = false mx_internal var toggleChanged:Boolean;// = false private var emphasizedChanged:Boolean;// = false private var _label:String;// = "" mx_internal var _selected:Boolean;// = false mx_internal var selectedDisabledIconName:String;// = "selectedDisabledIcon" mx_internal var selectedDisabledSkinName:String;// = "selectedDisabledSkin" mx_internal static const VERSION:String = "3.2.0.3958"; mx_internal static var createAccessibilityImplementation:Function; mx_internal static var TEXT_WIDTH_PADDING:Number = 6; public function Button(){ skins = []; icons = []; super(); mouseChildren = false; addEventListener(MouseEvent.ROLL_OVER, rollOverHandler); addEventListener(MouseEvent.ROLL_OUT, rollOutHandler); addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler); addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler); addEventListener(MouseEvent.CLICK, clickHandler); } private function previousVersion_measure():void{ var bm:EdgeMetrics; var lineMetrics:TextLineMetrics; var paddingLeft:Number; var paddingRight:Number; var paddingTop:Number; var paddingBottom:Number; var horizontalGap:Number; super.measure(); var textWidth:Number = 0; var textHeight:Number = 0; if (label){ lineMetrics = measureText(label); textWidth = lineMetrics.width; textHeight = lineMetrics.height; paddingLeft = getStyle("paddingLeft"); paddingRight = getStyle("paddingRight"); paddingTop = getStyle("paddingTop"); paddingBottom = getStyle("paddingBottom"); textWidth = (textWidth + ((paddingLeft + paddingRight) + getStyle("textIndent"))); textHeight = (textHeight + (paddingTop + paddingBottom)); }; bm = currentSkin["borderMetrics"]; //unresolved jump var _slot1 = e; bm = new EdgeMetrics(3, 3, 3, 3); var tempCurrentIcon:IFlexDisplayObject = getCurrentIcon(); var iconWidth:Number = (tempCurrentIcon) ? tempCurrentIcon.width : 0; var iconHeight:Number = (tempCurrentIcon) ? tempCurrentIcon.height : 0; var w:Number = 0; var h:Number = 0; if ((((labelPlacement == ButtonLabelPlacement.LEFT)) || ((labelPlacement == ButtonLabelPlacement.RIGHT)))){ w = (textWidth + iconWidth); if (iconWidth != 0){ horizontalGap = getStyle("horizontalGap"); w = (w + (horizontalGap - 2)); }; h = Math.max(textHeight, (iconHeight + 6)); } else { w = Math.max(textWidth, iconWidth); h = (textHeight + iconHeight); if (iconHeight != 0){ h = (h + getStyle("verticalGap")); }; }; if (bm){ w = (w + (bm.left + bm.right)); h = (h + (bm.top + bm.bottom)); }; if (((label) && (!((label.length == 0))))){ w = (w + extraSpacing); } else { w = (w + 6); }; if (((currentSkin) && (((isNaN(skinMeasuredWidth)) || (isNaN(skinMeasuredHeight)))))){ skinMeasuredWidth = currentSkin.measuredWidth; skinMeasuredHeight = currentSkin.measuredHeight; }; if (!isNaN(skinMeasuredWidth)){ w = Math.max(skinMeasuredWidth, w); }; if (!isNaN(skinMeasuredHeight)){ h = Math.max(skinMeasuredHeight, h); }; measuredMinWidth = (measuredWidth = w); measuredMinHeight = (measuredHeight = h); } public function get label():String{ return (_label); } mx_internal function getCurrentIconName():String{ var tempIconName:String; if (!enabled){ tempIconName = (selected) ? selectedDisabledIconName : disabledIconName; } else { if (phase == ButtonPhase.UP){ tempIconName = (selected) ? selectedUpIconName : upIconName; } else { if (phase == ButtonPhase.OVER){ tempIconName = (selected) ? selectedOverIconName : overIconName; } else { if (phase == ButtonPhase.DOWN){ tempIconName = (selected) ? selectedDownIconName : downIconName; }; }; }; }; return (tempIconName); } protected function mouseUpHandler(event:MouseEvent):void{ if (!enabled){ return; }; phase = ButtonPhase.OVER; buttonReleased(); if (!toggle){ event.updateAfterEvent(); }; } override protected function adjustFocusRect(object:DisplayObject=null):void{ super.adjustFocusRect((currentSkin) ? this : DisplayObject(currentIcon)); } mx_internal function set phase(value:String):void{ _phase = value; invalidateSize(); invalidateDisplayList(); } mx_internal function viewIconForPhase(tempIconName:String):IFlexDisplayObject{ var newIcon:IFlexDisplayObject; var sizeIcon:Boolean; var stateName:String; var newIconClass:Class = Class(getStyle(tempIconName)); if (!newIconClass){ newIconClass = Class(getStyle(iconName)); if (defaultIconUsesStates){ tempIconName = iconName; }; if (((!(checkedDefaultIcon)) && (newIconClass))){ newIcon = IFlexDisplayObject(new (newIconClass)); if (((!((newIcon is IProgrammaticSkin))) && ((newIcon is IStateClient)))){ defaultIconUsesStates = true; tempIconName = iconName; }; if (newIcon){ checkedDefaultIcon = true; }; }; }; newIcon = IFlexDisplayObject(getChildByName(tempIconName)); if (newIcon == null){ if (newIconClass != null){ newIcon = IFlexDisplayObject(new (newIconClass)); newIcon.name = tempIconName; if ((newIcon is ISimpleStyleClient)){ ISimpleStyleClient(newIcon).styleName = this; }; addChild(DisplayObject(newIcon)); sizeIcon = false; if ((newIcon is IInvalidating)){ IInvalidating(newIcon).validateNow(); sizeIcon = true; } else { if ((newIcon is IProgrammaticSkin)){ IProgrammaticSkin(newIcon).validateDisplayList(); sizeIcon = true; }; }; if (((newIcon) && ((newIcon is IUIComponent)))){ IUIComponent(newIcon).enabled = enabled; }; if (sizeIcon){ newIcon.setActualSize(newIcon.measuredWidth, newIcon.measuredHeight); }; icons.push(newIcon); }; }; if (currentIcon != null){ currentIcon.visible = false; }; currentIcon = newIcon; if (((defaultIconUsesStates) && ((currentIcon is IStateClient)))){ stateName = ""; if (!enabled){ stateName = (selected) ? "selectedDisabled" : "disabled"; } else { if (phase == ButtonPhase.UP){ stateName = (selected) ? "selectedUp" : "up"; } else { if (phase == ButtonPhase.OVER){ stateName = (selected) ? "selectedOver" : "over"; } else { if (phase == ButtonPhase.DOWN){ stateName = (selected) ? "selectedDown" : "down"; }; }; }; }; IStateClient(currentIcon).currentState = stateName; }; if (currentIcon != null){ currentIcon.visible = true; }; return (newIcon); } mx_internal function viewSkinForPhase(tempSkinName:String, stateName:String):void{ var newSkin:IFlexDisplayObject; var labelColor:Number; var styleableSkin:ISimpleStyleClient; var newSkinClass:Class = Class(getStyle(tempSkinName)); if (!newSkinClass){ newSkinClass = Class(getStyle(skinName)); if (defaultSkinUsesStates){ tempSkinName = skinName; }; if (((!(checkedDefaultSkin)) && (newSkinClass))){ newSkin = IFlexDisplayObject(new (newSkinClass)); if (((!((newSkin is IProgrammaticSkin))) && ((newSkin is IStateClient)))){ defaultSkinUsesStates = true; tempSkinName = skinName; }; if (newSkin){ checkedDefaultSkin = true; }; }; }; newSkin = IFlexDisplayObject(getChildByName(tempSkinName)); if (!newSkin){ if (newSkinClass){ newSkin = IFlexDisplayObject(new (newSkinClass)); newSkin.name = tempSkinName; styleableSkin = (newSkin as ISimpleStyleClient); if (styleableSkin){ styleableSkin.styleName = this; }; addChild(DisplayObject(newSkin)); newSkin.setActualSize(unscaledWidth, unscaledHeight); if ((((newSkin is IInvalidating)) && (initialized))){ IInvalidating(newSkin).validateNow(); } else { if ((((newSkin is IProgrammaticSkin)) && (initialized))){ IProgrammaticSkin(newSkin).validateDisplayList(); }; }; skins.push(newSkin); }; }; if (currentSkin){ currentSkin.visible = false; }; currentSkin = newSkin; if (((defaultSkinUsesStates) && ((currentSkin is IStateClient)))){ IStateClient(currentSkin).currentState = stateName; }; if (currentSkin){ currentSkin.visible = true; }; if (enabled){ if (phase == ButtonPhase.OVER){ labelColor = textField.getStyle("textRollOverColor"); } else { if (phase == ButtonPhase.DOWN){ labelColor = textField.getStyle("textSelectedColor"); } else { labelColor = textField.getStyle("color"); }; }; textField.setColor(labelColor); }; } mx_internal function getTextField():IUITextField{ return (textField); } protected function rollOverHandler(event:MouseEvent):void{ if (phase == ButtonPhase.UP){ if (event.buttonDown){ return; }; phase = ButtonPhase.OVER; event.updateAfterEvent(); } else { if (phase == ButtonPhase.OVER){ phase = ButtonPhase.DOWN; event.updateAfterEvent(); if (autoRepeatTimer){ autoRepeatTimer.start(); }; }; }; } override protected function createChildren():void{ super.createChildren(); if (!textField){ textField = IUITextField(createInFontContext(UITextField)); textField.styleName = this; addChild(DisplayObject(textField)); }; } mx_internal function setSelected(value:Boolean, isProgrammatic:Boolean=false):void{ if (_selected != value){ _selected = value; invalidateDisplayList(); if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_3_0){ if (toggle){ dispatchEvent(new Event(Event.CHANGE)); }; } else { if (((toggle) && (!(isProgrammatic)))){ dispatchEvent(new Event(Event.CHANGE)); }; }; dispatchEvent(new FlexEvent(FlexEvent.VALUE_COMMIT)); }; } private function autoRepeatTimer_timerDelayHandler(event:Event):void{ if (!enabled){ return; }; dispatchEvent(new FlexEvent(FlexEvent.BUTTON_DOWN)); if (autoRepeat){ autoRepeatTimer.reset(); autoRepeatTimer.removeEventListener(TimerEvent.TIMER, autoRepeatTimer_timerDelayHandler); autoRepeatTimer.delay = getStyle("repeatInterval"); autoRepeatTimer.addEventListener(TimerEvent.TIMER, autoRepeatTimer_timerHandler); autoRepeatTimer.start(); }; } public function get autoRepeat():Boolean{ return (_autoRepeat); } public function set selected(value:Boolean):void{ selectedSet = true; setSelected(value, true); } override protected function focusOutHandler(event:FocusEvent):void{ super.focusOutHandler(event); if (phase != ButtonPhase.UP){ phase = ButtonPhase.UP; }; } public function get labelPlacement():String{ return (_labelPlacement); } public function set autoRepeat(value:Boolean):void{ _autoRepeat = value; if (value){ autoRepeatTimer = new Timer(1); } else { autoRepeatTimer = null; }; } mx_internal function changeIcons():void{ var n:int = icons.length; var i:int; while (i < n) { removeChild(icons[i]); i++; }; icons = []; checkedDefaultIcon = false; defaultIconUsesStates = false; } public function set data(value:Object):void{ var newSelected:*; var newLabel:*; _data = value; if (((((_listData) && ((_listData is DataGridListData)))) && (!((DataGridListData(_listData).dataField == null))))){ newSelected = _data[DataGridListData(_listData).dataField]; newLabel = ""; } else { if (_listData){ if (selectedField){ newSelected = _data[selectedField]; }; newLabel = _listData.label; } else { newSelected = _data; }; }; if (((!((newSelected === undefined))) && (!(selectedSet)))){ selected = (newSelected as Boolean); selectedSet = false; }; if (((!((newLabel === undefined))) && (!(labelSet)))){ label = newLabel; labelSet = false; }; dispatchEvent(new FlexEvent(FlexEvent.DATA_CHANGE)); } mx_internal function getCurrentIcon():IFlexDisplayObject{ var tempIconName:String = getCurrentIconName(); if (!tempIconName){ return (null); }; return (viewIconForPhase(tempIconName)); } public function get fontContext():IFlexModuleFactory{ return (moduleFactory); } public function get emphasized():Boolean{ return (_emphasized); } public function get listData():BaseListData{ return (_listData); } mx_internal function layoutContents(unscaledWidth:Number, unscaledHeight:Number, offset:Boolean):void{ var lineMetrics:TextLineMetrics; var moveEvent:MoveEvent; if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_3_0){ previousVersion_layoutContents(unscaledWidth, unscaledHeight, offset); return; }; var labelWidth:Number = 0; var labelHeight:Number = 0; var labelX:Number = 0; var labelY:Number = 0; var iconWidth:Number = 0; var iconHeight:Number = 0; var iconX:Number = 0; var iconY:Number = 0; var horizontalGap:Number = 0; var verticalGap:Number = 0; var paddingLeft:Number = getStyle("paddingLeft"); var paddingRight:Number = getStyle("paddingRight"); var paddingTop:Number = getStyle("paddingTop"); var paddingBottom:Number = getStyle("paddingBottom"); var textWidth:Number = 0; var textHeight:Number = 0; if (label){ lineMetrics = measureText(label); textWidth = (lineMetrics.width + TEXT_WIDTH_PADDING); textHeight = (lineMetrics.height + UITextField.TEXT_HEIGHT_PADDING); } else { lineMetrics = measureText("Wj"); textHeight = (lineMetrics.height + UITextField.TEXT_HEIGHT_PADDING); }; var n:Number = (offset) ? buttonOffset : 0; var textAlign:String = getStyle("textAlign"); var viewWidth:Number = unscaledWidth; var viewHeight:Number = unscaledHeight; var bm:EdgeMetrics = (((((currentSkin) && ((currentSkin is IBorder)))) && (!((currentSkin is IFlexAsset))))) ? IBorder(currentSkin).borderMetrics : null; if (bm){ viewWidth = (viewWidth - (bm.left + bm.right)); viewHeight = (viewHeight - (bm.top + bm.bottom)); }; if (currentIcon){ iconWidth = currentIcon.width; iconHeight = currentIcon.height; }; if ((((labelPlacement == ButtonLabelPlacement.LEFT)) || ((labelPlacement == ButtonLabelPlacement.RIGHT)))){ horizontalGap = getStyle("horizontalGap"); if ((((iconWidth == 0)) || ((textWidth == 0)))){ horizontalGap = 0; }; if (textWidth > 0){ labelWidth = Math.max(Math.min(((((viewWidth - iconWidth) - horizontalGap) - paddingLeft) - paddingRight), textWidth), 0); textField.width = labelWidth; } else { labelWidth = 0; textField.width = labelWidth; }; labelHeight = Math.min(viewHeight, textHeight); textField.height = labelHeight; if (textAlign == "left"){ labelX = (labelX + paddingLeft); } else { if (textAlign == "right"){ labelX = (labelX + ((((viewWidth - labelWidth) - iconWidth) - horizontalGap) - paddingRight)); } else { labelX = (labelX + (((((((viewWidth - labelWidth) - iconWidth) - horizontalGap) - paddingLeft) - paddingRight) / 2) + paddingLeft)); }; }; if (labelPlacement == ButtonLabelPlacement.RIGHT){ labelX = (labelX + (iconWidth + horizontalGap)); iconX = (labelX - (iconWidth + horizontalGap)); } else { iconX = ((labelX + labelWidth) + horizontalGap); }; iconY = (((((viewHeight - iconHeight) - paddingTop) - paddingBottom) / 2) + paddingTop); labelY = (((((viewHeight - labelHeight) - paddingTop) - paddingBottom) / 2) + paddingTop); } else { verticalGap = getStyle("verticalGap"); if ((((iconHeight == 0)) || ((label == "")))){ verticalGap = 0; }; if (textWidth > 0){ labelWidth = Math.max(((viewWidth - paddingLeft) - paddingRight), 0); textField.width = labelWidth; labelHeight = Math.min(((((viewHeight - iconHeight) - paddingTop) - paddingBottom) - verticalGap), textHeight); textField.height = labelHeight; } else { labelWidth = 0; textField.width = labelWidth; labelHeight = 0; textField.height = labelHeight; }; labelX = paddingLeft; if (textAlign == "left"){ iconX = (iconX + paddingLeft); } else { if (textAlign == "right"){ iconX = (iconX + Math.max(((viewWidth - iconWidth) - paddingRight), paddingLeft)); } else { iconX = (iconX + (((((viewWidth - iconWidth) - paddingLeft) - paddingRight) / 2) + paddingLeft)); }; }; if (labelPlacement == ButtonLabelPlacement.TOP){ labelY = (labelY + (((((((viewHeight - labelHeight) - iconHeight) - paddingTop) - paddingBottom) - verticalGap) / 2) + paddingTop)); iconY = (iconY + ((labelY + labelHeight) + verticalGap)); } else { iconY = (iconY + (((((((viewHeight - labelHeight) - iconHeight) - paddingTop) - paddingBottom) - verticalGap) / 2) + paddingTop)); labelY = (labelY + ((iconY + iconHeight) + verticalGap)); }; }; var buffX:Number = n; var buffY:Number = n; if (bm){ buffX = (buffX + bm.left); buffY = (buffY + bm.top); }; textField.x = Math.round((labelX + buffX)); textField.y = Math.round((labelY + buffY)); if (currentIcon){ iconX = (iconX + buffX); iconY = (iconY + buffY); moveEvent = new MoveEvent(MoveEvent.MOVE); moveEvent.oldX = currentIcon.x; moveEvent.oldY = currentIcon.y; currentIcon.x = Math.round(iconX); currentIcon.y = Math.round(iconY); currentIcon.dispatchEvent(moveEvent); }; if (currentSkin){ setChildIndex(DisplayObject(currentSkin), (numChildren - 1)); }; if (currentIcon){ setChildIndex(DisplayObject(currentIcon), (numChildren - 1)); }; if (textField){ setChildIndex(DisplayObject(textField), (numChildren - 1)); }; } protected function mouseDownHandler(event:MouseEvent):void{ if (!enabled){ return; }; systemManager.getSandboxRoot().addEventListener(MouseEvent.MOUSE_UP, systemManager_mouseUpHandler, true); systemManager.getSandboxRoot().addEventListener(SandboxMouseEvent.MOUSE_UP_SOMEWHERE, stage_mouseLeaveHandler); buttonPressed(); event.updateAfterEvent(); } override protected function keyDownHandler(event:KeyboardEvent):void{ if (!enabled){ return; }; if (event.keyCode == Keyboard.SPACE){ buttonPressed(); }; } protected function rollOutHandler(event:MouseEvent):void{ if (phase == ButtonPhase.OVER){ phase = ButtonPhase.UP; event.updateAfterEvent(); } else { if ((((phase == ButtonPhase.DOWN)) && (!(stickyHighlighting)))){ phase = ButtonPhase.OVER; event.updateAfterEvent(); if (autoRepeatTimer){ autoRepeatTimer.stop(); }; }; }; } mx_internal function get phase():String{ return (_phase); } override public function set enabled(value:Boolean):void{ if (super.enabled == value){ return; }; super.enabled = value; enabledChanged = true; invalidateProperties(); invalidateDisplayList(); } override protected function measure():void{ var lineMetrics:TextLineMetrics; if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_3_0){ previousVersion_measure(); return; }; super.measure(); var textWidth:Number = 0; var textHeight:Number = 0; if (label){ lineMetrics = measureText(label); textWidth = (lineMetrics.width + TEXT_WIDTH_PADDING); textHeight = (lineMetrics.height + UITextField.TEXT_HEIGHT_PADDING); }; var tempCurrentIcon:IFlexDisplayObject = getCurrentIcon(); var iconWidth:Number = (tempCurrentIcon) ? tempCurrentIcon.width : 0; var iconHeight:Number = (tempCurrentIcon) ? tempCurrentIcon.height : 0; var w:Number = 0; var h:Number = 0; if ((((labelPlacement == ButtonLabelPlacement.LEFT)) || ((labelPlacement == ButtonLabelPlacement.RIGHT)))){ w = (textWidth + iconWidth); if (((textWidth) && (iconWidth))){ w = (w + getStyle("horizontalGap")); }; h = Math.max(textHeight, iconHeight); } else { w = Math.max(textWidth, iconWidth); h = (textHeight + iconHeight); if (((textHeight) && (iconHeight))){ h = (h + getStyle("verticalGap")); }; }; if (((textWidth) || (iconWidth))){ w = (w + (getStyle("paddingLeft") + getStyle("paddingRight"))); h = (h + (getStyle("paddingTop") + getStyle("paddingBottom"))); }; var bm:EdgeMetrics = (((((currentSkin) && ((currentSkin is IBorder)))) && (!((currentSkin is IFlexAsset))))) ? IBorder(currentSkin).borderMetrics : null; if (bm){ w = (w + (bm.left + bm.right)); h = (h + (bm.top + bm.bottom)); }; if (((currentSkin) && (((isNaN(skinMeasuredWidth)) || (isNaN(skinMeasuredHeight)))))){ skinMeasuredWidth = currentSkin.measuredWidth; skinMeasuredHeight = currentSkin.measuredHeight; }; if (!isNaN(skinMeasuredWidth)){ w = Math.max(skinMeasuredWidth, w); }; if (!isNaN(skinMeasuredHeight)){ h = Math.max(skinMeasuredHeight, h); }; measuredMinWidth = (measuredWidth = w); measuredMinHeight = (measuredHeight = h); } public function get toggle():Boolean{ return (_toggle); } mx_internal function buttonReleased():void{ systemManager.getSandboxRoot().removeEventListener(MouseEvent.MOUSE_UP, systemManager_mouseUpHandler, true); systemManager.getSandboxRoot().removeEventListener(SandboxMouseEvent.MOUSE_UP_SOMEWHERE, stage_mouseLeaveHandler); if (autoRepeatTimer){ autoRepeatTimer.removeEventListener(TimerEvent.TIMER, autoRepeatTimer_timerDelayHandler); autoRepeatTimer.removeEventListener(TimerEvent.TIMER, autoRepeatTimer_timerHandler); autoRepeatTimer.reset(); }; } mx_internal function buttonPressed():void{ phase = ButtonPhase.DOWN; dispatchEvent(new FlexEvent(FlexEvent.BUTTON_DOWN)); if (autoRepeat){ autoRepeatTimer.delay = getStyle("repeatDelay"); autoRepeatTimer.addEventListener(TimerEvent.TIMER, autoRepeatTimer_timerDelayHandler); autoRepeatTimer.start(); }; } override protected function keyUpHandler(event:KeyboardEvent):void{ if (!enabled){ return; }; if (event.keyCode == Keyboard.SPACE){ buttonReleased(); if (phase == ButtonPhase.DOWN){ dispatchEvent(new MouseEvent(MouseEvent.CLICK)); }; phase = ButtonPhase.UP; }; } public function get selected():Boolean{ return (_selected); } public function set labelPlacement(value:String):void{ _labelPlacement = value; invalidateSize(); invalidateDisplayList(); dispatchEvent(new Event("labelPlacementChanged")); } protected function clickHandler(event:MouseEvent):void{ if (!enabled){ event.stopImmediatePropagation(); return; }; if (toggle){ setSelected(!(selected)); event.updateAfterEvent(); }; } override protected function initializeAccessibility():void{ if (Button.createAccessibilityImplementation != null){ Button.createAccessibilityImplementation(this); }; } public function set toggle(value:Boolean):void{ _toggle = value; toggleChanged = true; invalidateProperties(); invalidateDisplayList(); dispatchEvent(new Event("toggleChanged")); } override public function get baselinePosition():Number{ var t:String; var lineMetrics:TextLineMetrics; if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_3_0){ t = label; if (!t){ t = "Wj"; }; validateNow(); if (((!(label)) && ((((labelPlacement == ButtonLabelPlacement.TOP)) || ((labelPlacement == ButtonLabelPlacement.BOTTOM)))))){ lineMetrics = measureText(t); return ((((measuredHeight - lineMetrics.height) / 2) + lineMetrics.ascent)); }; return ((textField.y + measureText(t).ascent)); }; if (!validateBaselinePosition()){ return (NaN); }; return ((textField.y + textField.baselinePosition)); } public function get data():Object{ return (_data); } public function set fontContext(moduleFactory:IFlexModuleFactory):void{ this.moduleFactory = moduleFactory; } mx_internal function viewSkin():void{ var tempSkinName:String; var stateName:String; if (!enabled){ tempSkinName = (selected) ? selectedDisabledSkinName : disabledSkinName; stateName = (selected) ? "selectedDisabled" : "disabled"; } else { if (phase == ButtonPhase.UP){ tempSkinName = (selected) ? selectedUpSkinName : upSkinName; stateName = (selected) ? "selectedUp" : "up"; } else { if (phase == ButtonPhase.OVER){ tempSkinName = (selected) ? selectedOverSkinName : overSkinName; stateName = (selected) ? "selectedOver" : "over"; } else { if (phase == ButtonPhase.DOWN){ tempSkinName = (selected) ? selectedDownSkinName : downSkinName; stateName = (selected) ? "selectedDown" : "down"; }; }; }; }; viewSkinForPhase(tempSkinName, stateName); } override public function styleChanged(styleProp:String):void{ styleChangedFlag = true; super.styleChanged(styleProp); if (((!(styleProp)) || ((styleProp == "styleName")))){ changeSkins(); changeIcons(); if (initialized){ viewSkin(); viewIcon(); }; } else { if (styleProp.toLowerCase().indexOf("skin") != -1){ changeSkins(); } else { if (styleProp.toLowerCase().indexOf("icon") != -1){ changeIcons(); invalidateSize(); }; }; }; } public function set emphasized(value:Boolean):void{ _emphasized = value; emphasizedChanged = true; invalidateDisplayList(); } mx_internal function viewIcon():void{ var tempIconName:String = getCurrentIconName(); viewIconForPhase(tempIconName); } override public function set toolTip(value:String):void{ super.toolTip = value; if (value){ toolTipSet = true; } else { toolTipSet = false; invalidateDisplayList(); }; } override protected function commitProperties():void{ super.commitProperties(); if (((hasFontContextChanged()) && (!((textField == null))))){ removeChild(DisplayObject(textField)); textField = null; }; if (!textField){ textField = IUITextField(createInFontContext(UITextField)); textField.styleName = this; addChild(DisplayObject(textField)); enabledChanged = true; toggleChanged = true; }; if (!initialized){ viewSkin(); viewIcon(); }; if (enabledChanged){ textField.enabled = enabled; if (((currentIcon) && ((currentIcon is IUIComponent)))){ IUIComponent(currentIcon).enabled = enabled; }; enabledChanged = false; }; if (toggleChanged){ if (!toggle){ selected = false; }; toggleChanged = false; }; } mx_internal function changeSkins():void{ var n:int = skins.length; var i:int; while (i < n) { removeChild(skins[i]); i++; }; skins = []; skinMeasuredWidth = NaN; skinMeasuredHeight = NaN; checkedDefaultSkin = false; defaultSkinUsesStates = false; if (((initialized) && ((FlexVersion.compatibilityVersion >= FlexVersion.VERSION_3_0)))){ viewSkin(); invalidateSize(); }; } private function autoRepeatTimer_timerHandler(event:Event):void{ if (!enabled){ return; }; dispatchEvent(new FlexEvent(FlexEvent.BUTTON_DOWN)); } private function previousVersion_layoutContents(unscaledWidth:Number, unscaledHeight:Number, offset:Boolean):void{ var lineMetrics:TextLineMetrics; var disp:Number; var moveEvent:MoveEvent; var labelWidth:Number = 0; var labelHeight:Number = 0; var labelX:Number = 0; var labelY:Number = 0; var iconWidth:Number = 0; var iconHeight:Number = 0; var iconX:Number = 0; var iconY:Number = 0; var horizontalGap:Number = 2; var verticalGap:Number = 2; var paddingLeft:Number = getStyle("paddingLeft"); var paddingRight:Number = getStyle("paddingRight"); var paddingTop:Number = getStyle("paddingTop"); var paddingBottom:Number = getStyle("paddingBottom"); var textWidth:Number = 0; var textHeight:Number = 0; if (label){ lineMetrics = measureText(label); if (lineMetrics.width > 0){ textWidth = (((paddingLeft + paddingRight) + getStyle("textIndent")) + lineMetrics.width); }; textHeight = lineMetrics.height; } else { lineMetrics = measureText("Wj"); textHeight = lineMetrics.height; }; var n:Number = (offset) ? buttonOffset : 0; var textAlign:String = getStyle("textAlign"); var bm:EdgeMetrics = (((currentSkin) && ((currentSkin is IRectangularBorder)))) ? IRectangularBorder(currentSkin).borderMetrics : null; var viewWidth:Number = unscaledWidth; var viewHeight:Number = ((unscaledHeight - paddingTop) - paddingBottom); if (bm){ viewWidth = (viewWidth - (bm.left + bm.right)); viewHeight = (viewHeight - (bm.top + bm.bottom)); }; if (currentIcon){ iconWidth = currentIcon.width; iconHeight = currentIcon.height; }; if ((((labelPlacement == ButtonLabelPlacement.LEFT)) || ((labelPlacement == ButtonLabelPlacement.RIGHT)))){ horizontalGap = getStyle("horizontalGap"); if ((((iconWidth == 0)) || ((textWidth == 0)))){ horizontalGap = 0; }; if (textWidth > 0){ labelWidth = Math.max(((((viewWidth - iconWidth) - horizontalGap) - paddingLeft) - paddingRight), 0); textField.width = labelWidth; } else { labelWidth = 0; textField.width = labelWidth; }; labelHeight = Math.min((viewHeight + 2), (textHeight + UITextField.TEXT_HEIGHT_PADDING)); textField.height = labelHeight; if (labelPlacement == ButtonLabelPlacement.RIGHT){ labelX = (iconWidth + horizontalGap); if (centerContent){ if (textAlign == "left"){ labelX = (labelX + paddingLeft); } else { if (textAlign == "right"){ labelX = (labelX + ((((viewWidth - labelWidth) - iconWidth) - horizontalGap) - paddingLeft)); } else { disp = ((((viewWidth - labelWidth) - iconWidth) - horizontalGap) / 2); labelX = (labelX + Math.max(disp, paddingLeft)); }; }; }; iconX = (labelX - (iconWidth + horizontalGap)); if (!centerContent){ labelX = (labelX + paddingLeft); }; } else { labelX = ((((viewWidth - labelWidth) - iconWidth) - horizontalGap) - paddingRight); if (centerContent){ if (textAlign == "left"){ labelX = 2; } else { if (textAlign == "right"){ labelX--; } else { if (labelX > 0){ labelX = (labelX / 2); }; }; }; }; iconX = ((labelX + labelWidth) + horizontalGap); }; labelY = 0; iconY = labelY; if (centerContent){ iconY = (Math.round(((viewHeight - iconHeight) / 2)) + paddingTop); labelY = (Math.round(((viewHeight - labelHeight) / 2)) + paddingTop); } else { labelY = (labelY + (Math.max(0, ((viewHeight - labelHeight) / 2)) + paddingTop)); iconY = (iconY + (Math.max(0, (((viewHeight - iconHeight) / 2) - 1)) + paddingTop)); }; } else { verticalGap = getStyle("verticalGap"); if ((((iconHeight == 0)) || ((textHeight == 0)))){ verticalGap = 0; }; if (textWidth > 0){ labelWidth = Math.min(viewWidth, (textWidth + UITextField.TEXT_WIDTH_PADDING)); textField.width = labelWidth; labelHeight = Math.min(((viewHeight - iconHeight) + 1), (textHeight + 5)); textField.height = labelHeight; } else { labelWidth = 0; textField.width = labelWidth; labelHeight = 0; textField.height = labelHeight; }; labelX = ((viewWidth - labelWidth) / 2); iconX = ((viewWidth - iconWidth) / 2); if (labelPlacement == ButtonLabelPlacement.TOP){ labelY = (((viewHeight - labelHeight) - iconHeight) - verticalGap); if (((centerContent) && ((labelY > 0)))){ labelY = (labelY / 2); }; labelY = (labelY + paddingTop); iconY = (((labelY + labelHeight) + verticalGap) - 3); } else { labelY = ((iconHeight + verticalGap) + paddingTop); if (centerContent){ labelY = (labelY + (((((viewHeight - labelHeight) - iconHeight) - verticalGap) / 2) + 1)); }; iconY = (((labelY - iconHeight) - verticalGap) + 3); }; }; var buffX:Number = n; var buffY:Number = n; if (bm){ buffX = (buffX + bm.left); buffY = (buffY + bm.top); }; textField.x = (labelX + buffX); textField.y = (labelY + buffY); if (currentIcon){ iconX = (iconX + buffX); iconY = (iconY + buffY); moveEvent = new MoveEvent(MoveEvent.MOVE); moveEvent.oldX = currentIcon.x; moveEvent.oldY = currentIcon.y; currentIcon.x = Math.round(iconX); currentIcon.y = Math.round(iconY); currentIcon.dispatchEvent(moveEvent); }; if (currentSkin){ setChildIndex(DisplayObject(currentSkin), (numChildren - 1)); }; if (currentIcon){ setChildIndex(DisplayObject(currentIcon), (numChildren - 1)); }; if (textField){ setChildIndex(DisplayObject(textField), (numChildren - 1)); }; } private function systemManager_mouseUpHandler(event:MouseEvent):void{ if (contains(DisplayObject(event.target))){ return; }; phase = ButtonPhase.UP; buttonReleased(); event.updateAfterEvent(); } public function set label(value:String):void{ labelSet = true; if (_label != value){ _label = value; labelChanged = true; invalidateSize(); invalidateDisplayList(); dispatchEvent(new Event("labelChanged")); }; } override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void{ var skin:IFlexDisplayObject; var truncated:Boolean; super.updateDisplayList(unscaledWidth, unscaledHeight); if (emphasizedChanged){ changeSkins(); emphasizedChanged = false; }; var n:int = skins.length; var i:int; while (i < n) { skin = IFlexDisplayObject(skins[i]); skin.setActualSize(unscaledWidth, unscaledHeight); i++; }; viewSkin(); viewIcon(); layoutContents(unscaledWidth, unscaledHeight, (phase == ButtonPhase.DOWN)); if ((((((((oldUnscaledWidth > unscaledWidth)) || (!((textField.text == label))))) || (labelChanged))) || (styleChangedFlag))){ textField.text = label; truncated = textField.truncateToFit(); if (!toolTipSet){ if (truncated){ super.toolTip = label; } else { super.toolTip = null; }; }; styleChangedFlag = false; labelChanged = false; }; oldUnscaledWidth = unscaledWidth; } private function stage_mouseLeaveHandler(event:Event):void{ phase = ButtonPhase.UP; buttonReleased(); } public function set listData(value:BaseListData):void{ _listData = value; } } }//package mx.controls
Section 56
//ButtonLabelPlacement (mx.controls.ButtonLabelPlacement) package mx.controls { public final class ButtonLabelPlacement { public static const TOP:String = "top"; public static const LEFT:String = "left"; mx_internal static const VERSION:String = "3.2.0.3958"; public static const BOTTOM:String = "bottom"; public static const RIGHT:String = "right"; public function ButtonLabelPlacement(){ super(); } } }//package mx.controls
Section 57
//ButtonPhase (mx.controls.ButtonPhase) package mx.controls { public final class ButtonPhase { public static const DOWN:String = "down"; public static const OVER:String = "over"; mx_internal static const VERSION:String = "3.2.0.3958"; public static const UP:String = "up"; public function ButtonPhase(){ super(); } } }//package mx.controls
Section 58
//HScrollBar (mx.controls.HScrollBar) package mx.controls { import mx.controls.scrollClasses.*; import flash.ui.*; public class HScrollBar extends ScrollBar { mx_internal static const VERSION:String = "3.2.0.3958"; public function HScrollBar(){ super(); super.direction = ScrollBarDirection.HORIZONTAL; scaleX = -1; rotation = -90; } override mx_internal function get virtualHeight():Number{ return (unscaledWidth); } override protected function measure():void{ super.measure(); measuredWidth = _minHeight; measuredHeight = _minWidth; } override public function get minHeight():Number{ return (_minWidth); } override mx_internal function get virtualWidth():Number{ return (unscaledHeight); } override public function get minWidth():Number{ return (_minHeight); } override mx_internal function isScrollBarKey(key:uint):Boolean{ if (key == Keyboard.LEFT){ lineScroll(-1); return (true); }; if (key == Keyboard.RIGHT){ lineScroll(1); return (true); }; return (super.isScrollBarKey(key)); } override public function set direction(value:String):void{ } } }//package mx.controls
Section 59
//IFlexContextMenu (mx.controls.IFlexContextMenu) package mx.controls { import flash.display.*; public interface IFlexContextMenu { function setContextMenu(:InteractiveObject):void; function unsetContextMenu(:InteractiveObject):void; } }//package mx.controls
Section 60
//Image (mx.controls.Image) package mx.controls { import flash.display.*; import mx.core.*; import flash.events.*; import mx.events.*; import mx.controls.listClasses.*; public class Image extends SWFLoader implements IDataRenderer, IDropInListItemRenderer, IListItemRenderer { private var _listData:BaseListData; private var sourceSet:Boolean; private var _data:Object; private var settingBrokenImage:Boolean; private var makeContentVisible:Boolean;// = false mx_internal static const VERSION:String = "3.2.0.3958"; public function Image(){ super(); tabChildren = false; tabEnabled = true; showInAutomationHierarchy = true; } override mx_internal function contentLoaderInfo_completeEventHandler(event:Event):void{ var obj:DisplayObject = DisplayObject(event.target.loader); super.contentLoaderInfo_completeEventHandler(event); obj.visible = false; makeContentVisible = true; invalidateDisplayList(); } public function get listData():BaseListData{ return (_listData); } public function set listData(value:BaseListData):void{ _listData = value; } public function get data():Object{ return (_data); } public function set data(value:Object):void{ _data = value; if (!sourceSet){ source = (listData) ? listData.label : data; sourceSet = false; }; dispatchEvent(new FlexEvent(FlexEvent.DATA_CHANGE)); } override public function invalidateSize():void{ if (((data) && (settingBrokenImage))){ return; }; super.invalidateSize(); } override public function set source(value:Object):void{ settingBrokenImage = (value == getStyle("brokenImageSkin")); sourceSet = !(settingBrokenImage); super.source = value; } override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void{ super.updateDisplayList(unscaledWidth, unscaledHeight); if (((makeContentVisible) && (contentHolder))){ contentHolder.visible = true; makeContentVisible = false; }; } } }//package mx.controls
Section 61
//Label (mx.controls.Label) package mx.controls { import flash.display.*; import flash.geom.*; import flash.text.*; import mx.core.*; import flash.events.*; import mx.events.*; import mx.controls.listClasses.*; public class Label extends UIComponent implements IDataRenderer, IDropInListItemRenderer, IListItemRenderer, IFontContextComponent { private var _selectable:Boolean;// = false private var _text:String;// = "" private var _data:Object; mx_internal var htmlTextChanged:Boolean;// = false private var _tabIndex:int;// = -1 private var _textWidth:Number; private var explicitHTMLText:String;// = null private var enabledChanged:Boolean;// = false private var condenseWhiteChanged:Boolean;// = false private var _listData:BaseListData; private var _textHeight:Number; protected var textField:IUITextField; private var _htmlText:String;// = "" private var _condenseWhite:Boolean;// = false mx_internal var textChanged:Boolean;// = false public var truncateToFit:Boolean;// = true private var textSet:Boolean; private var selectableChanged:Boolean; private var toolTipSet:Boolean;// = false mx_internal static const VERSION:String = "3.2.0.3958"; public function Label(){ super(); tabChildren = true; } override public function set enabled(value:Boolean):void{ if (value == enabled){ return; }; super.enabled = value; enabledChanged = true; invalidateProperties(); } private function textField_textFieldStyleChangeHandler(event:Event):void{ textFieldChanged(true); } override public function get baselinePosition():Number{ var t:String; var lineMetrics:TextLineMetrics; if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_3_0){ if (!textField){ return (NaN); }; validateNow(); t = (isHTML) ? explicitHTMLText : text; if (t == ""){ t = " "; }; lineMetrics = (isHTML) ? measureHTMLText(t) : measureText(t); return ((textField.y + lineMetrics.ascent)); }; if (!validateBaselinePosition()){ return (NaN); }; return ((textField.y + textField.baselinePosition)); } public function set condenseWhite(value:Boolean):void{ if (value == _condenseWhite){ return; }; _condenseWhite = value; condenseWhiteChanged = true; if (isHTML){ htmlTextChanged = true; }; invalidateProperties(); invalidateSize(); invalidateDisplayList(); dispatchEvent(new Event("condenseWhiteChanged")); } public function get textWidth():Number{ return (_textWidth); } override protected function createChildren():void{ super.createChildren(); if (!textField){ createTextField(-1); }; } mx_internal function getTextField():IUITextField{ return (textField); } private function measureTextFieldBounds(s:String):Rectangle{ var lineMetrics:TextLineMetrics = (isHTML) ? measureHTMLText(s) : measureText(s); return (new Rectangle(0, 0, (lineMetrics.width + UITextField.TEXT_WIDTH_PADDING), (lineMetrics.height + UITextField.TEXT_HEIGHT_PADDING))); } mx_internal function getMinimumText(t:String):String{ if (((!(t)) || ((t.length < 2)))){ t = "Wj"; }; return (t); } private function textFieldChanged(styleChangeOnly:Boolean):void{ var changed1:Boolean; var changed2:Boolean; if (!styleChangeOnly){ changed1 = !((_text == textField.text)); _text = textField.text; }; changed2 = !((_htmlText == textField.htmlText)); _htmlText = textField.htmlText; if (changed1){ dispatchEvent(new FlexEvent(FlexEvent.VALUE_COMMIT)); }; if (changed2){ dispatchEvent(new Event("htmlTextChanged")); }; _textWidth = textField.textWidth; _textHeight = textField.textHeight; } public function get data():Object{ return (_data); } public function get text():String{ return (_text); } mx_internal function removeTextField():void{ if (textField){ textField.removeEventListener("textFieldStyleChange", textField_textFieldStyleChangeHandler); textField.removeEventListener("textInsert", textField_textModifiedHandler); textField.removeEventListener("textReplace", textField_textModifiedHandler); removeChild(DisplayObject(textField)); textField = null; }; } public function get textHeight():Number{ return (_textHeight); } mx_internal function get styleSheet():StyleSheet{ return (textField.styleSheet); } public function set selectable(value:Boolean):void{ if (value == selectable){ return; }; _selectable = value; selectableChanged = true; invalidateProperties(); } override public function get tabIndex():int{ return (_tabIndex); } public function set fontContext(moduleFactory:IFlexModuleFactory):void{ this.moduleFactory = moduleFactory; } override public function set toolTip(value:String):void{ super.toolTip = value; toolTipSet = !((value == null)); } mx_internal function createTextField(childIndex:int):void{ if (!textField){ textField = IUITextField(createInFontContext(UITextField)); textField.enabled = enabled; textField.ignorePadding = true; textField.selectable = selectable; textField.styleName = this; textField.addEventListener("textFieldStyleChange", textField_textFieldStyleChangeHandler); textField.addEventListener("textInsert", textField_textModifiedHandler); textField.addEventListener("textReplace", textField_textModifiedHandler); if (childIndex == -1){ addChild(DisplayObject(textField)); } else { addChildAt(DisplayObject(textField), childIndex); }; }; } override protected function commitProperties():void{ super.commitProperties(); if (((hasFontContextChanged()) && (!((textField == null))))){ removeTextField(); condenseWhiteChanged = true; enabledChanged = true; selectableChanged = true; textChanged = true; }; if (!textField){ createTextField(-1); }; if (condenseWhiteChanged){ textField.condenseWhite = _condenseWhite; condenseWhiteChanged = false; }; textField.tabIndex = tabIndex; if (enabledChanged){ textField.enabled = enabled; enabledChanged = false; }; if (selectableChanged){ textField.selectable = _selectable; selectableChanged = false; }; if (((textChanged) || (htmlTextChanged))){ if (isHTML){ textField.htmlText = explicitHTMLText; } else { textField.text = _text; }; textFieldChanged(false); textChanged = false; htmlTextChanged = false; }; } public function get condenseWhite():Boolean{ return (_condenseWhite); } public function set listData(value:BaseListData):void{ _listData = value; } private function get isHTML():Boolean{ return (!((explicitHTMLText == null))); } public function get selectable():Boolean{ return (_selectable); } public function set text(value:String):void{ textSet = true; if (!value){ value = ""; }; if (((!(isHTML)) && ((value == _text)))){ return; }; _text = value; textChanged = true; _htmlText = null; explicitHTMLText = null; invalidateProperties(); invalidateSize(); invalidateDisplayList(); dispatchEvent(new FlexEvent(FlexEvent.VALUE_COMMIT)); } public function set data(value:Object):void{ var newText:*; _data = value; if (_listData){ newText = _listData.label; } else { if (_data != null){ if ((_data is String)){ newText = String(_data); } else { newText = _data.toString(); }; }; }; if (((!((newText === undefined))) && (!(textSet)))){ text = newText; textSet = false; }; dispatchEvent(new FlexEvent(FlexEvent.DATA_CHANGE)); } override protected function measure():void{ super.measure(); var t:String = (isHTML) ? explicitHTMLText : text; t = getMinimumText(t); var textFieldBounds:Rectangle = measureTextFieldBounds(t); measuredMinWidth = (measuredWidth = ((textFieldBounds.width + getStyle("paddingLeft")) + getStyle("paddingRight"))); measuredMinHeight = (measuredHeight = ((textFieldBounds.height + getStyle("paddingTop")) + getStyle("paddingBottom"))); } public function get fontContext():IFlexModuleFactory{ return (moduleFactory); } private function textField_textModifiedHandler(event:Event):void{ textFieldChanged(false); } public function get listData():BaseListData{ return (_listData); } mx_internal function set styleSheet(value:StyleSheet):void{ textField.styleSheet = value; } public function set htmlText(value:String):void{ textSet = true; if (!value){ value = ""; }; if (((isHTML) && ((value == explicitHTMLText)))){ return; }; _htmlText = value; htmlTextChanged = true; _text = null; explicitHTMLText = value; invalidateProperties(); invalidateSize(); invalidateDisplayList(); dispatchEvent(new Event("htmlTextChanged")); } override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void{ var truncated:Boolean; super.updateDisplayList(unscaledWidth, unscaledHeight); var paddingLeft:Number = getStyle("paddingLeft"); var paddingTop:Number = getStyle("paddingTop"); var paddingRight:Number = getStyle("paddingRight"); var paddingBottom:Number = getStyle("paddingBottom"); textField.setActualSize(((unscaledWidth - paddingLeft) - paddingRight), ((unscaledHeight - paddingTop) - paddingBottom)); textField.x = paddingLeft; textField.y = paddingTop; var t:String = (isHTML) ? explicitHTMLText : text; var textFieldBounds:Rectangle = measureTextFieldBounds(t); if (truncateToFit){ if (isHTML){ truncated = (textFieldBounds.width > textField.width); } else { textField.text = _text; truncated = textField.truncateToFit(); }; if (!toolTipSet){ super.toolTip = (truncated) ? text : null; }; }; } public function get htmlText():String{ return (_htmlText); } public function getLineMetrics(lineIndex:int):TextLineMetrics{ return ((textField) ? textField.getLineMetrics(lineIndex) : null); } override public function set tabIndex(value:int):void{ _tabIndex = value; invalidateProperties(); } } }//package mx.controls
Section 62
//SWFLoader (mx.controls.SWFLoader) package mx.controls { import flash.display.*; import flash.geom.*; import mx.core.*; import mx.managers.*; import flash.events.*; import mx.events.*; import mx.styles.*; import flash.utils.*; import flash.system.*; import mx.utils.*; import flash.net.*; public class SWFLoader extends UIComponent implements ISWFLoader { private var _loadForCompatibility:Boolean;// = false private var _loaderContext:LoaderContext; private var requestedURL:URLRequest; private var _swfBridge:IEventDispatcher; private var _bytesTotal:Number;// = NAN private var useUnloadAndStop:Boolean; private var flexContent:Boolean;// = false private var explicitLoaderContext:Boolean;// = false private var resizableContent:Boolean;// = false private var brokenImageBorder:IFlexDisplayObject; private var _maintainAspectRatio:Boolean;// = true private var _source:Object; private var mouseShield:Sprite; private var contentRequestID:String;// = null mx_internal var contentHolder:DisplayObject; private var brokenImage:Boolean;// = false private var _bytesLoaded:Number;// = NAN private var _autoLoad:Boolean;// = true private var _showBusyCursor:Boolean;// = false private var _scaleContent:Boolean;// = true private var isContentLoaded:Boolean;// = false private var unloadAndStopGC:Boolean; private var _trustContent:Boolean;// = false private var attemptingChildAppDomain:Boolean;// = false private var scaleContentChanged:Boolean;// = false private var contentChanged:Boolean;// = false mx_internal static const VERSION:String = "3.2.0.3958"; public function SWFLoader(){ super(); tabChildren = true; tabEnabled = false; addEventListener(FlexEvent.INITIALIZE, initializeHandler); addEventListener(Event.ADDED_TO_STAGE, addedToStageHandler); showInAutomationHierarchy = false; } public function get contentHeight():Number{ return ((contentHolder) ? contentHolder.height : NaN); } public function get trustContent():Boolean{ return (_trustContent); } public function set trustContent(value:Boolean):void{ if (_trustContent != value){ _trustContent = value; invalidateProperties(); invalidateSize(); invalidateDisplayList(); dispatchEvent(new Event("trustContentChanged")); }; } public function get maintainAspectRatio():Boolean{ return (_maintainAspectRatio); } private function unScaleContent():void{ contentHolder.scaleX = 1; contentHolder.scaleY = 1; contentHolder.x = 0; contentHolder.y = 0; } public function set maintainAspectRatio(value:Boolean):void{ _maintainAspectRatio = value; dispatchEvent(new Event("maintainAspectRatioChanged")); } override public function regenerateStyleCache(recursive:Boolean):void{ var sm:ISystemManager; var recursive = recursive; super.regenerateStyleCache(recursive); sm = (content as ISystemManager); if (sm != null){ Object(sm).regenerateStyleCache(recursive); }; //unresolved jump var _slot1 = error; } private function get contentHolderHeight():Number{ var loaderInfo:LoaderInfo; var content:IFlexDisplayObject; var bridge:IEventDispatcher; var request:SWFBridgeRequest; var testContent:DisplayObject; if ((contentHolder is Loader)){ loaderInfo = Loader(contentHolder).contentLoaderInfo; }; if (loaderInfo){ if (loaderInfo.contentType == "application/x-shockwave-flash"){ if (systemManager.swfBridgeGroup){ bridge = swfBridge; if (bridge){ request = new SWFBridgeRequest(SWFBridgeRequest.GET_SIZE_REQUEST); bridge.dispatchEvent(request); return (request.data.height); }; }; content = (Loader(contentHolder).content as IFlexDisplayObject); if (content){ return (content.measuredHeight); }; //unresolved jump var _slot1 = error; return (contentHolder.height); } else { testContent = Loader(contentHolder).content; //unresolved jump var _slot1 = error; return (contentHolder.height); }; return (loaderInfo.height); }; if ((contentHolder is IUIComponent)){ return (IUIComponent(contentHolder).getExplicitOrMeasuredHeight()); }; if ((contentHolder is IFlexDisplayObject)){ return (IFlexDisplayObject(contentHolder).measuredHeight); }; return (contentHolder.height); } public function get loaderContext():LoaderContext{ return (_loaderContext); } public function set showBusyCursor(value:Boolean):void{ if (_showBusyCursor != value){ _showBusyCursor = value; if (_showBusyCursor){ CursorManager.registerToUseBusyCursor(this); } else { CursorManager.unRegisterToUseBusyCursor(this); }; }; } override public function notifyStyleChangeInChildren(styleProp:String, recursive:Boolean):void{ var sm:ISystemManager; var styleProp = styleProp; var recursive = recursive; super.notifyStyleChangeInChildren(styleProp, recursive); sm = (content as ISystemManager); if (sm != null){ Object(sm).notifyStyleChangeInChildren(styleProp, recursive); }; //unresolved jump var _slot1 = error; } private function getHorizontalAlignValue():Number{ var horizontalAlign:String = getStyle("horizontalAlign"); if (horizontalAlign == "left"){ return (0); }; if (horizontalAlign == "right"){ return (1); }; return (0.5); } public function get source():Object{ return (_source); } public function get loadForCompatibility():Boolean{ return (_loadForCompatibility); } private function contentLoaderInfo_httpStatusEventHandler(event:HTTPStatusEvent):void{ dispatchEvent(event); } public function get autoLoad():Boolean{ return (_autoLoad); } public function set source(value:Object):void{ if (_source != value){ _source = value; contentChanged = true; invalidateProperties(); invalidateSize(); invalidateDisplayList(); dispatchEvent(new Event("sourceChanged")); }; } public function set loaderContext(value:LoaderContext):void{ _loaderContext = value; explicitLoaderContext = true; dispatchEvent(new Event("loaderContextChanged")); } private function get contentHolderWidth():Number{ var loaderInfo:LoaderInfo; var content:IFlexDisplayObject; var request:SWFBridgeRequest; var testContent:DisplayObject; if ((contentHolder is Loader)){ loaderInfo = Loader(contentHolder).contentLoaderInfo; }; if (loaderInfo){ if (loaderInfo.contentType == "application/x-shockwave-flash"){ if (swfBridge){ request = new SWFBridgeRequest(SWFBridgeRequest.GET_SIZE_REQUEST); swfBridge.dispatchEvent(request); return (request.data.width); }; content = (Loader(contentHolder).content as IFlexDisplayObject); if (content){ return (content.measuredWidth); }; //unresolved jump var _slot1 = error; return (contentHolder.width); } else { testContent = Loader(contentHolder).content; //unresolved jump var _slot1 = error; return (contentHolder.width); }; return (loaderInfo.width); }; if ((contentHolder is IUIComponent)){ return (IUIComponent(contentHolder).getExplicitOrMeasuredWidth()); }; if ((contentHolder is IFlexDisplayObject)){ return (IFlexDisplayObject(contentHolder).measuredWidth); }; return (contentHolder.width); } public function get bytesLoaded():Number{ return (_bytesLoaded); } private function removeInitSystemManagerCompleteListener(loaderInfo:LoaderInfo):void{ var bridge:EventDispatcher; if (loaderInfo.contentType == "application/x-shockwave-flash"){ bridge = loaderInfo.sharedEvents; bridge.removeEventListener(SWFBridgeEvent.BRIDGE_NEW_APPLICATION, initSystemManagerCompleteEventHandler); }; } public function set loadForCompatibility(value:Boolean):void{ if (_loadForCompatibility != value){ _loadForCompatibility = value; contentChanged = true; invalidateProperties(); invalidateSize(); invalidateDisplayList(); dispatchEvent(new Event("loadForCompatibilityChanged")); }; } override protected function measure():void{ var oldScaleX:Number; var oldScaleY:Number; super.measure(); if (isContentLoaded){ oldScaleX = contentHolder.scaleX; oldScaleY = contentHolder.scaleY; contentHolder.scaleX = 1; contentHolder.scaleY = 1; measuredWidth = contentHolderWidth; measuredHeight = contentHolderHeight; contentHolder.scaleX = oldScaleX; contentHolder.scaleY = oldScaleY; } else { if (((!(_source)) || ((_source == "")))){ measuredWidth = 0; measuredHeight = 0; }; }; } private function contentLoaderInfo_initEventHandler(event:Event):void{ dispatchEvent(event); addInitSystemManagerCompleteListener(LoaderInfo(event.target).loader.contentLoaderInfo); } public function set autoLoad(value:Boolean):void{ if (_autoLoad != value){ _autoLoad = value; contentChanged = true; invalidateProperties(); invalidateSize(); invalidateDisplayList(); dispatchEvent(new Event("autoLoadChanged")); }; } private function doScaleLoader():void{ if (!isContentLoaded){ return; }; unScaleContent(); var w:Number = unscaledWidth; var h:Number = unscaledHeight; if ((((((contentHolderWidth > w)) || ((contentHolderHeight > h)))) || (!(parentAllowsChild)))){ contentHolder.scrollRect = new Rectangle(0, 0, w, h); } else { contentHolder.scrollRect = null; }; contentHolder.x = ((w - contentHolderWidth) * getHorizontalAlignValue()); contentHolder.y = ((h - contentHolderHeight) * getVerticalAlignValue()); } private function getVerticalAlignValue():Number{ var verticalAlign:String = getStyle("verticalAlign"); if (verticalAlign == "top"){ return (0); }; if (verticalAlign == "bottom"){ return (1); }; return (0.5); } public function get content():DisplayObject{ if ((contentHolder is Loader)){ return (Loader(contentHolder).content); }; return (contentHolder); } private function dispatchInvalidateRequest(invalidateProperites:Boolean, invalidateSize:Boolean, invalidateDisplayList:Boolean):void{ var sm:ISystemManager = systemManager; if (!sm.useSWFBridge()){ return; }; var bridge:IEventDispatcher = sm.swfBridgeGroup.parentBridge; var flags:uint; if (invalidateProperites){ flags = (flags | InvalidateRequestData.PROPERTIES); }; if (invalidateSize){ flags = (flags | InvalidateRequestData.SIZE); }; if (invalidateDisplayList){ flags = (flags | InvalidateRequestData.DISPLAY_LIST); }; var request:SWFBridgeRequest = new SWFBridgeRequest(SWFBridgeRequest.INVALIDATE_REQUEST, false, false, bridge, flags); bridge.dispatchEvent(request); } public function getVisibleApplicationRect(allApplications:Boolean=false):Rectangle{ var rect:Rectangle = getVisibleRect(); if (allApplications){ rect = systemManager.getVisibleApplicationRect(rect); }; return (rect); } public function unloadAndStop(invokeGarbageCollector:Boolean=true):void{ useUnloadAndStop = true; unloadAndStopGC = invokeGarbageCollector; source = null; } private function contentLoaderInfo_progressEventHandler(event:ProgressEvent):void{ _bytesTotal = event.bytesTotal; _bytesLoaded = event.bytesLoaded; dispatchEvent(event); } public function get showBusyCursor():Boolean{ return (_showBusyCursor); } override public function get baselinePosition():Number{ if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_3_0){ return (0); }; return (super.baselinePosition); } private function initSystemManagerCompleteEventHandler(event:Event):void{ var sm:ISystemManager; var eObj:Object = Object(event); if ((((contentHolder is Loader)) && ((eObj.data == Loader(contentHolder).contentLoaderInfo.sharedEvents)))){ _swfBridge = Loader(contentHolder).contentLoaderInfo.sharedEvents; sm = systemManager; sm.addChildBridge(_swfBridge, this); removeInitSystemManagerCompleteListener(Loader(contentHolder).contentLoaderInfo); _swfBridge.addEventListener(SWFBridgeRequest.INVALIDATE_REQUEST, invalidateRequestHandler); }; } public function get bytesTotal():Number{ return (_bytesTotal); } private function initializeHandler(event:FlexEvent):void{ if (contentChanged){ contentChanged = false; if (_autoLoad){ load(_source); }; }; } private function contentLoaderInfo_unloadEventHandler(event:Event):void{ var sm:ISystemManager; dispatchEvent(event); if (_swfBridge){ _swfBridge.removeEventListener(SWFBridgeRequest.INVALIDATE_REQUEST, invalidateRequestHandler); sm = systemManager; sm.removeChildBridge(_swfBridge); _swfBridge = null; }; if ((contentHolder is Loader)){ removeInitSystemManagerCompleteListener(Loader(contentHolder).contentLoaderInfo); }; } mx_internal function contentLoaderInfo_completeEventHandler(event:Event):void{ if (LoaderInfo(event.target).loader != contentHolder){ return; }; dispatchEvent(event); contentLoaded(); if ((contentHolder is Loader)){ removeInitSystemManagerCompleteListener(Loader(contentHolder).contentLoaderInfo); }; } public function set scaleContent(value:Boolean):void{ if (_scaleContent != value){ _scaleContent = value; scaleContentChanged = true; invalidateDisplayList(); }; dispatchEvent(new Event("scaleContentChanged")); } private function contentLoaderInfo_openEventHandler(event:Event):void{ dispatchEvent(event); } private function addedToStageHandler(event:Event):void{ systemManager.getSandboxRoot().addEventListener(InterManagerRequest.DRAG_MANAGER_REQUEST, mouseShieldHandler, false, 0, true); } public function get percentLoaded():Number{ var p:Number = (((isNaN(_bytesTotal)) || ((_bytesTotal == 0)))) ? 0 : (100 * (_bytesLoaded / _bytesTotal)); if (isNaN(p)){ p = 0; }; return (p); } public function get swfBridge():IEventDispatcher{ return (_swfBridge); } private function loadContent(classOrString:Object):DisplayObject{ var child:DisplayObject; var cls:Class; var url:String; var byteArray:ByteArray; var loader:Loader; var lc:LoaderContext; var rootURL:String; var lastIndex:int; var currentDomain:ApplicationDomain; var topmostDomain:ApplicationDomain; var message:String; var classOrString = classOrString; if ((classOrString is Class)){ cls = Class(classOrString); } else { if ((classOrString is String)){ cls = Class(systemManager.getDefinitionByName(String(classOrString))); //unresolved jump var _slot1 = e; url = String(classOrString); } else { if ((classOrString is ByteArray)){ byteArray = ByteArray(classOrString); } else { url = classOrString.toString(); }; }; }; if (cls){ var _local3 = new (cls); child = _local3; contentHolder = _local3; addChild(child); contentLoaded(); } else { if ((classOrString is DisplayObject)){ _local3 = DisplayObject(classOrString); child = _local3; contentHolder = _local3; addChild(child); contentLoaded(); } else { if (byteArray){ loader = new FlexLoader(); child = loader; addChild(child); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, contentLoaderInfo_completeEventHandler); loader.contentLoaderInfo.addEventListener(Event.INIT, contentLoaderInfo_initEventHandler); loader.contentLoaderInfo.addEventListener(Event.UNLOAD, contentLoaderInfo_unloadEventHandler); loader.loadBytes(byteArray, loaderContext); } else { if (url){ loader = new FlexLoader(); child = loader; addChild(loader); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, contentLoaderInfo_completeEventHandler); loader.contentLoaderInfo.addEventListener(HTTPStatusEvent.HTTP_STATUS, contentLoaderInfo_httpStatusEventHandler); loader.contentLoaderInfo.addEventListener(Event.INIT, contentLoaderInfo_initEventHandler); loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, contentLoaderInfo_ioErrorEventHandler); loader.contentLoaderInfo.addEventListener(Event.OPEN, contentLoaderInfo_openEventHandler); loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, contentLoaderInfo_progressEventHandler); loader.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR, contentLoaderInfo_securityErrorEventHandler); loader.contentLoaderInfo.addEventListener(Event.UNLOAD, contentLoaderInfo_unloadEventHandler); if ((((((Capabilities.isDebugger == true)) && ((url.indexOf(".jpg") == -1)))) && ((LoaderUtil.normalizeURL(Application.application.systemManager.loaderInfo).indexOf("debug=true") > -1)))){ url = (url + ((url.indexOf("?"))>-1) ? "&debug=true" : "?debug=true"); }; if (!(((((url.indexOf(":") > -1)) || ((url.indexOf("/") == 0)))) || ((url.indexOf("\\") == 0)))){ if (((!((SystemManagerGlobals.bootstrapLoaderInfoURL == null))) && (!((SystemManagerGlobals.bootstrapLoaderInfoURL == ""))))){ rootURL = SystemManagerGlobals.bootstrapLoaderInfoURL; } else { if (root){ rootURL = LoaderUtil.normalizeURL(root.loaderInfo); } else { if (systemManager){ rootURL = LoaderUtil.normalizeURL(DisplayObject(systemManager).loaderInfo); }; }; }; if (rootURL){ lastIndex = Math.max(rootURL.lastIndexOf("\\"), rootURL.lastIndexOf("/")); if (lastIndex != -1){ url = (rootURL.substr(0, (lastIndex + 1)) + url); }; }; }; requestedURL = new URLRequest(url); lc = loaderContext; if (!lc){ lc = new LoaderContext(); _loaderContext = lc; if (loadForCompatibility){ currentDomain = ApplicationDomain.currentDomain.parentDomain; topmostDomain = null; while (currentDomain) { topmostDomain = currentDomain; currentDomain = currentDomain.parentDomain; }; lc.applicationDomain = new ApplicationDomain(topmostDomain); }; if (trustContent){ lc.securityDomain = SecurityDomain.currentDomain; } else { if (!loadForCompatibility){ attemptingChildAppDomain = true; lc.applicationDomain = new ApplicationDomain(ApplicationDomain.currentDomain); }; }; }; loader.load(requestedURL, lc); } else { message = resourceManager.getString("controls", "notLoadable", [source]); throw (new Error(message)); }; }; }; }; invalidateDisplayList(); return (child); } public function get contentWidth():Number{ return ((contentHolder) ? contentHolder.width : NaN); } public function get scaleContent():Boolean{ return (_scaleContent); } public function get childAllowsParent():Boolean{ if (!isContentLoaded){ return (false); }; if ((contentHolder is Loader)){ return (Loader(contentHolder).contentLoaderInfo.childAllowsParent); }; return (true); } override protected function commitProperties():void{ super.commitProperties(); if (contentChanged){ contentChanged = false; if (_autoLoad){ load(_source); }; }; } private function contentLoaderInfo_securityErrorEventHandler(event:SecurityErrorEvent):void{ var lc:LoaderContext; if (attemptingChildAppDomain){ attemptingChildAppDomain = false; lc = new LoaderContext(); _loaderContext = lc; callLater(load); return; }; dispatchEvent(event); if ((contentHolder is Loader)){ removeInitSystemManagerCompleteListener(Loader(contentHolder).contentLoaderInfo); }; } private function sizeShield():void{ if (((mouseShield) && (mouseShield.parent))){ mouseShield.width = unscaledWidth; mouseShield.height = unscaledHeight; }; } private function addInitSystemManagerCompleteListener(loaderInfo:LoaderInfo):void{ var bridge:EventDispatcher; if (loaderInfo.contentType == "application/x-shockwave-flash"){ bridge = loaderInfo.sharedEvents; bridge.addEventListener(SWFBridgeEvent.BRIDGE_NEW_APPLICATION, initSystemManagerCompleteEventHandler); }; } private function invalidateRequestHandler(event:Event):void{ if ((event is SWFBridgeRequest)){ return; }; var request:SWFBridgeRequest = SWFBridgeRequest.marshal(event); var invalidateFlags:uint = uint(request.data); if ((invalidateFlags & InvalidateRequestData.PROPERTIES)){ invalidateProperties(); }; if ((invalidateFlags & InvalidateRequestData.SIZE)){ invalidateSize(); }; if ((invalidateFlags & InvalidateRequestData.DISPLAY_LIST)){ invalidateDisplayList(); }; dispatchInvalidateRequest(!(((invalidateFlags & InvalidateRequestData.PROPERTIES) == 0)), !(((invalidateFlags & InvalidateRequestData.SIZE) == 0)), !(((invalidateFlags & InvalidateRequestData.DISPLAY_LIST) == 0))); } private function contentLoaded():void{ var loaderInfo:LoaderInfo; isContentLoaded = true; if ((contentHolder is Loader)){ loaderInfo = Loader(contentHolder).contentLoaderInfo; }; resizableContent = false; if (loaderInfo){ if (loaderInfo.contentType == "application/x-shockwave-flash"){ resizableContent = true; }; if (resizableContent){ if ((Loader(contentHolder).content is IFlexDisplayObject)){ flexContent = true; } else { flexContent = !((swfBridge == null)); }; //unresolved jump var _slot1 = e; flexContent = !((swfBridge == null)); }; }; if (((((tabChildren) && ((contentHolder is Loader)))) && ((((loaderInfo.contentType == "application/x-shockwave-flash")) || ((Loader(contentHolder).content is DisplayObjectContainer)))))){ Loader(contentHolder).tabChildren = true; DisplayObjectContainer(Loader(contentHolder).content).tabChildren = true; }; //unresolved jump var _slot1 = e; invalidateSize(); invalidateDisplayList(); } private function getContentSize():Point{ var bridge:IEventDispatcher; var request:SWFBridgeRequest; var pt:Point = new Point(); if ((!(contentHolder) is Loader)){ return (pt); }; var holder:Loader = Loader(contentHolder); if (holder.contentLoaderInfo.childAllowsParent){ pt.x = holder.content.width; pt.y = holder.content.height; } else { bridge = swfBridge; if (bridge){ request = new SWFBridgeRequest(SWFBridgeRequest.GET_SIZE_REQUEST); bridge.dispatchEvent(request); pt.x = request.data.width; pt.y = request.data.height; }; }; if (pt.x == 0){ pt.x = holder.contentLoaderInfo.width; }; if (pt.y == 0){ pt.y = holder.contentLoaderInfo.height; }; return (pt); } public function load(url:Object=null):void{ var imageData:Bitmap; var request:SWFBridgeEvent; var url = url; if (url){ _source = url; }; if (contentHolder){ if (isContentLoaded){ if ((contentHolder is Loader)){ if ((Loader(contentHolder).content is Bitmap)){ imageData = Bitmap(Loader(contentHolder).content); if (imageData.bitmapData){ imageData.bitmapData = null; }; }; //unresolved jump var _slot1 = error; if (_swfBridge){ request = new SWFBridgeEvent(SWFBridgeEvent.BRIDGE_APPLICATION_UNLOADING, false, false, _swfBridge); _swfBridge.dispatchEvent(request); }; if (((useUnloadAndStop) && (("unloadAndStop" in contentHolder)))){ var _local3 = contentHolder; _local3["unloadAndStop"](unloadAndStopGC); } else { Loader(contentHolder).unload(); }; if (!explicitLoaderContext){ _loaderContext = null; }; } else { if ((contentHolder is Bitmap)){ imageData = Bitmap(contentHolder); if (imageData.bitmapData){ imageData.bitmapData = null; }; }; }; } else { if ((contentHolder is Loader)){ Loader(contentHolder).close(); //unresolved jump var _slot1 = error; }; }; if (contentHolder.parent == this){ removeChild(contentHolder); }; //unresolved jump var _slot1 = error; removeChild(contentHolder); //unresolved jump var _slot1 = error1; contentHolder = null; }; isContentLoaded = false; brokenImage = false; useUnloadAndStop = false; if (((!(_source)) || ((_source == "")))){ return; }; contentHolder = loadContent(_source); } public function get parentAllowsChild():Boolean{ if (!isContentLoaded){ return (false); }; if ((contentHolder is Loader)){ return (Loader(contentHolder).contentLoaderInfo.parentAllowsChild); }; return (true); } private function contentLoaderInfo_ioErrorEventHandler(event:IOErrorEvent):void{ source = getStyle("brokenImageSkin"); load(); contentChanged = false; brokenImage = true; if (hasEventListener(event.type)){ dispatchEvent(event); }; if ((contentHolder is Loader)){ removeInitSystemManagerCompleteListener(Loader(contentHolder).contentLoaderInfo); }; } override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void{ var skinClass:Class; super.updateDisplayList(unscaledWidth, unscaledHeight); if (contentChanged){ contentChanged = false; if (_autoLoad){ load(_source); }; }; if (isContentLoaded){ if (((_scaleContent) && (!(brokenImage)))){ doScaleContent(); } else { doScaleLoader(); }; scaleContentChanged = false; }; if (((brokenImage) && (!(brokenImageBorder)))){ skinClass = getStyle("brokenImageBorderSkin"); if (skinClass){ brokenImageBorder = IFlexDisplayObject(new (skinClass)); if ((brokenImageBorder is ISimpleStyleClient)){ ISimpleStyleClient(brokenImageBorder).styleName = this; }; addChild(DisplayObject(brokenImageBorder)); }; } else { if (((!(brokenImage)) && (brokenImageBorder))){ removeChild(DisplayObject(brokenImageBorder)); brokenImageBorder = null; }; }; if (brokenImageBorder){ brokenImageBorder.setActualSize(unscaledWidth, unscaledHeight); }; sizeShield(); } private function doScaleContent():void{ var interiorWidth:Number; var interiorHeight:Number; var contentWidth:Number; var contentHeight:Number; var x:Number; var y:Number; var newXScale:Number; var newYScale:Number; var scale:Number; var w:Number; var h:Number; var holder:Loader; var sizeSet:Boolean; var lInfo:LoaderInfo; if (!isContentLoaded){ return; }; if (((!(resizableContent)) || (((maintainAspectRatio) && (!(flexContent)))))){ unScaleContent(); interiorWidth = unscaledWidth; interiorHeight = unscaledHeight; contentWidth = contentHolderWidth; contentHeight = contentHolderHeight; x = 0; y = 0; newXScale = ((contentWidth == 0)) ? 1 : (interiorWidth / contentWidth); newYScale = ((contentHeight == 0)) ? 1 : (interiorHeight / contentHeight); if (_maintainAspectRatio){ if (newXScale > newYScale){ x = Math.floor(((interiorWidth - (contentWidth * newYScale)) * getHorizontalAlignValue())); scale = newYScale; } else { y = Math.floor(((interiorHeight - (contentHeight * newXScale)) * getVerticalAlignValue())); scale = newXScale; }; contentHolder.scaleX = scale; contentHolder.scaleY = scale; } else { contentHolder.scaleX = newXScale; contentHolder.scaleY = newYScale; }; contentHolder.x = x; contentHolder.y = y; } else { contentHolder.x = 0; contentHolder.y = 0; w = unscaledWidth; h = unscaledHeight; if ((contentHolder is Loader)){ holder = Loader(contentHolder); if (getContentSize().x > 0){ sizeSet = false; if (holder.contentLoaderInfo.contentType == "application/x-shockwave-flash"){ if (childAllowsParent){ if ((holder.content is IFlexDisplayObject)){ IFlexDisplayObject(holder.content).setActualSize(w, h); sizeSet = true; }; }; if (!sizeSet){ if (swfBridge){ swfBridge.dispatchEvent(new SWFBridgeRequest(SWFBridgeRequest.SET_ACTUAL_SIZE_REQUEST, false, false, null, {width:w, height:h})); sizeSet = true; }; }; } else { lInfo = holder.contentLoaderInfo; if (lInfo){ contentHolder.scaleX = (w / lInfo.width); contentHolder.scaleY = (h / lInfo.height); sizeSet = true; }; }; if (!sizeSet){ contentHolder.width = w; contentHolder.height = h; }; } else { if (((childAllowsParent) && (!((holder.content is IFlexDisplayObject))))){ contentHolder.width = w; contentHolder.height = h; }; }; //unresolved jump var _slot1 = error; contentHolder.width = w; contentHolder.height = h; if (!parentAllowsChild){ contentHolder.scrollRect = new Rectangle(0, 0, (w / contentHolder.scaleX), (h / contentHolder.scaleY)); }; } else { contentHolder.width = w; contentHolder.height = h; }; }; } private function mouseShieldHandler(event:Event):void{ if (event["name"] != "mouseShield"){ return; }; if (parentAllowsChild){ return; }; if (event["value"]){ if (!mouseShield){ mouseShield = new Sprite(); mouseShield.graphics.beginFill(0, 0); mouseShield.graphics.drawRect(0, 0, 100, 100); mouseShield.graphics.endFill(); }; if (!mouseShield.parent){ addChild(mouseShield); }; sizeShield(); } else { if (((mouseShield) && (mouseShield.parent))){ removeChild(mouseShield); }; }; } } }//package mx.controls
Section 63
//Text (mx.controls.Text) package mx.controls { import mx.core.*; import mx.events.*; public class Text extends Label { private var widthChanged:Boolean;// = true private var lastUnscaledWidth:Number;// = NAN mx_internal static const VERSION:String = "3.2.0.3958"; public function Text(){ super(); selectable = true; truncateToFit = false; addEventListener(FlexEvent.UPDATE_COMPLETE, updateCompleteHandler); } private function measureUsingWidth(w:Number):void{ var paddingLeft:Number; var paddingTop:Number; var paddingBottom:Number; var oldWordWrap:Boolean; paddingLeft = getStyle("paddingLeft"); paddingTop = getStyle("paddingTop"); var paddingRight:Number = getStyle("paddingRight"); paddingBottom = getStyle("paddingBottom"); textField.validateNow(); textField.autoSize = "left"; if (!isNaN(w)){ textField.width = ((w - paddingLeft) - paddingRight); measuredWidth = (Math.ceil(textField.textWidth) + UITextField.TEXT_WIDTH_PADDING); measuredHeight = (Math.ceil(textField.textHeight) + UITextField.TEXT_HEIGHT_PADDING); } else { oldWordWrap = textField.wordWrap; textField.wordWrap = false; measuredWidth = (Math.ceil(textField.textWidth) + UITextField.TEXT_WIDTH_PADDING); measuredHeight = (Math.ceil(textField.textHeight) + UITextField.TEXT_HEIGHT_PADDING); textField.wordWrap = oldWordWrap; }; textField.autoSize = "none"; measuredWidth = (measuredWidth + (paddingLeft + paddingRight)); measuredHeight = (measuredHeight + (paddingTop + paddingBottom)); if (isNaN(explicitWidth)){ measuredMinWidth = DEFAULT_MEASURED_MIN_WIDTH; measuredMinHeight = DEFAULT_MEASURED_MIN_HEIGHT; } else { measuredMinWidth = measuredWidth; measuredMinHeight = measuredHeight; }; } override public function set percentWidth(value:Number):void{ if (value != percentWidth){ widthChanged = true; invalidateProperties(); invalidateSize(); }; super.percentWidth = value; } override public function set explicitWidth(value:Number):void{ if (value != explicitWidth){ widthChanged = true; invalidateProperties(); invalidateSize(); }; super.explicitWidth = value; } private function updateCompleteHandler(event:FlexEvent):void{ lastUnscaledWidth = NaN; } override protected function childrenCreated():void{ super.childrenCreated(); textField.wordWrap = true; textField.multiline = true; textField.mouseWheelEnabled = false; } override protected function commitProperties():void{ super.commitProperties(); if (widthChanged){ textField.wordWrap = ((!(isNaN(percentWidth))) || (!(isNaN(explicitWidth)))); widthChanged = false; }; } override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void{ var firstTime:Boolean; if (isSpecialCase()){ firstTime = ((isNaN(lastUnscaledWidth)) || (!((lastUnscaledWidth == unscaledWidth)))); lastUnscaledWidth = unscaledWidth; if (firstTime){ invalidateSize(); return; }; }; var paddingLeft:Number = getStyle("paddingLeft"); var paddingTop:Number = getStyle("paddingTop"); var paddingRight:Number = getStyle("paddingRight"); var paddingBottom:Number = getStyle("paddingBottom"); textField.setActualSize(((unscaledWidth - paddingLeft) - paddingRight), ((unscaledHeight - paddingTop) - paddingBottom)); textField.x = paddingLeft; textField.y = paddingTop; if (Math.floor(width) < Math.floor(measuredWidth)){ textField.wordWrap = true; }; } override protected function measure():void{ if (isSpecialCase()){ if (!isNaN(lastUnscaledWidth)){ measureUsingWidth(lastUnscaledWidth); } else { measuredWidth = 0; measuredHeight = 0; }; return; }; measureUsingWidth(explicitWidth); } private function isSpecialCase():Boolean{ var left:Number = getStyle("left"); var right:Number = getStyle("right"); return (((((((!(isNaN(percentWidth))) || (((!(isNaN(left))) && (!(isNaN(right))))))) && (isNaN(explicitHeight)))) && (isNaN(percentHeight)))); } } }//package mx.controls
Section 64
//ToolTip (mx.controls.ToolTip) package mx.controls { import flash.display.*; import flash.text.*; import mx.core.*; import mx.styles.*; public class ToolTip extends UIComponent implements IToolTip, IFontContextComponent { private var textChanged:Boolean; private var _text:String; protected var textField:IUITextField; mx_internal var border:IFlexDisplayObject; mx_internal static const VERSION:String = "3.2.0.3958"; public static var maxWidth:Number = 300; public function ToolTip(){ super(); mouseEnabled = false; } public function set fontContext(moduleFactory:IFlexModuleFactory):void{ this.moduleFactory = moduleFactory; } override public function styleChanged(styleProp:String):void{ super.styleChanged(styleProp); if ((((((styleProp == "borderStyle")) || ((styleProp == "styleName")))) || ((styleProp == null)))){ invalidateDisplayList(); }; } override protected function commitProperties():void{ var index:int; var textFormat:TextFormat; super.commitProperties(); if (((hasFontContextChanged()) && (!((textField == null))))){ index = getChildIndex(DisplayObject(textField)); removeTextField(); createTextField(index); invalidateSize(); textChanged = true; }; if (textChanged){ textFormat = textField.getTextFormat(); textFormat.leftMargin = 0; textFormat.rightMargin = 0; textField.defaultTextFormat = textFormat; textField.text = _text; textChanged = false; }; } mx_internal function getTextField():IUITextField{ return (textField); } override protected function createChildren():void{ var borderClass:Class; super.createChildren(); if (!border){ borderClass = getStyle("borderSkin"); border = new (borderClass); if ((border is ISimpleStyleClient)){ ISimpleStyleClient(border).styleName = this; }; addChild(DisplayObject(border)); }; createTextField(-1); } override protected function measure():void{ var heightSlop:Number; super.measure(); var bm:EdgeMetrics = borderMetrics; var leftInset:Number = (bm.left + getStyle("paddingLeft")); var topInset:Number = (bm.top + getStyle("paddingTop")); var rightInset:Number = (bm.right + getStyle("paddingRight")); var bottomInset:Number = (bm.bottom + getStyle("paddingBottom")); var widthSlop:Number = (leftInset + rightInset); heightSlop = (topInset + bottomInset); textField.wordWrap = false; if ((textField.textWidth + widthSlop) > ToolTip.maxWidth){ textField.width = (ToolTip.maxWidth - widthSlop); textField.wordWrap = true; }; measuredWidth = (textField.width + widthSlop); measuredHeight = (textField.height + heightSlop); } public function get fontContext():IFlexModuleFactory{ return (moduleFactory); } public function set text(value:String):void{ _text = value; textChanged = true; invalidateProperties(); invalidateSize(); invalidateDisplayList(); } public function get text():String{ return (_text); } mx_internal function removeTextField():void{ if (textField){ removeChild(DisplayObject(textField)); textField = null; }; } mx_internal function createTextField(childIndex:int):void{ if (!textField){ textField = IUITextField(createInFontContext(UITextField)); textField.autoSize = TextFieldAutoSize.LEFT; textField.mouseEnabled = false; textField.multiline = true; textField.selectable = false; textField.wordWrap = false; textField.styleName = this; if (childIndex == -1){ addChild(DisplayObject(textField)); } else { addChildAt(DisplayObject(textField), childIndex); }; }; } override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void{ super.updateDisplayList(unscaledWidth, unscaledHeight); var bm:EdgeMetrics = borderMetrics; var leftInset:Number = (bm.left + getStyle("paddingLeft")); var topInset:Number = (bm.top + getStyle("paddingTop")); var rightInset:Number = (bm.right + getStyle("paddingRight")); var bottomInset:Number = (bm.bottom + getStyle("paddingBottom")); var widthSlop:Number = (leftInset + rightInset); var heightSlop:Number = (topInset + bottomInset); border.setActualSize(unscaledWidth, unscaledHeight); textField.move(leftInset, topInset); textField.setActualSize((unscaledWidth - widthSlop), (unscaledHeight - heightSlop)); } private function get borderMetrics():EdgeMetrics{ if ((border is IRectangularBorder)){ return (IRectangularBorder(border).borderMetrics); }; return (EdgeMetrics.EMPTY); } } }//package mx.controls
Section 65
//VScrollBar (mx.controls.VScrollBar) package mx.controls { import mx.controls.scrollClasses.*; import flash.ui.*; public class VScrollBar extends ScrollBar { mx_internal static const VERSION:String = "3.2.0.3958"; public function VScrollBar(){ super(); super.direction = ScrollBarDirection.VERTICAL; } override protected function measure():void{ super.measure(); measuredWidth = _minWidth; measuredHeight = _minHeight; } override public function get minHeight():Number{ return (_minHeight); } override mx_internal function isScrollBarKey(key:uint):Boolean{ if (key == Keyboard.UP){ lineScroll(-1); return (true); }; if (key == Keyboard.DOWN){ lineScroll(1); return (true); }; if (key == Keyboard.PAGE_UP){ pageScroll(-1); return (true); }; if (key == Keyboard.PAGE_DOWN){ pageScroll(1); return (true); }; return (super.isScrollBarKey(key)); } override public function get minWidth():Number{ return (_minWidth); } override public function set direction(value:String):void{ } } }//package mx.controls
Section 66
//Application (mx.core.Application) package mx.core { import flash.display.*; import mx.managers.*; import flash.events.*; import mx.events.*; import mx.styles.*; import mx.effects.*; import flash.utils.*; import flash.system.*; import mx.containers.utilityClasses.*; import flash.ui.*; import flash.net.*; import flash.external.*; public class Application extends LayoutContainer { public var preloader:Object; public var pageTitle:String; private var resizeWidth:Boolean;// = true private var _applicationViewMetrics:EdgeMetrics; mx_internal var _parameters:Object; private var processingCreationQueue:Boolean;// = false public var scriptRecursionLimit:int; private var resizeHandlerAdded:Boolean;// = false private var preloadObj:Object; public var usePreloader:Boolean; mx_internal var _url:String; private var _viewSourceURL:String; public var resetHistory:Boolean;// = true public var historyManagementEnabled:Boolean;// = true public var scriptTimeLimit:Number; public var frameRate:Number; private var creationQueue:Array; private var resizeHeight:Boolean;// = true public var controlBar:IUIComponent; private var viewSourceCMI:ContextMenuItem; mx_internal static const VERSION:String = "3.2.0.3958"; mx_internal static var useProgressiveLayout:Boolean = false; public function Application(){ creationQueue = []; name = "application"; UIComponentGlobals.layoutManager = ILayoutManager(Singleton.getInstance("mx.managers::ILayoutManager")); UIComponentGlobals.layoutManager.usePhasedInstantiation = true; if (!ApplicationGlobals.application){ ApplicationGlobals.application = this; }; super(); layoutObject = new ApplicationLayout(); layoutObject.target = this; boxLayoutClass = ApplicationLayout; showInAutomationHierarchy = true; } public function set viewSourceURL(value:String):void{ _viewSourceURL = value; } override public function set percentWidth(value:Number):void{ super.percentWidth = value; invalidateDisplayList(); } override public function prepareToPrint(target:IFlexDisplayObject):Object{ var objData:Object = {}; if (target == this){ objData.width = width; objData.height = height; objData.verticalScrollPosition = verticalScrollPosition; objData.horizontalScrollPosition = horizontalScrollPosition; objData.horizontalScrollBarVisible = !((horizontalScrollBar == null)); objData.verticalScrollBarVisible = !((verticalScrollBar == null)); objData.whiteBoxVisible = !((whiteBox == null)); setActualSize(measuredWidth, measuredHeight); horizontalScrollPosition = 0; verticalScrollPosition = 0; if (horizontalScrollBar){ horizontalScrollBar.visible = false; }; if (verticalScrollBar){ verticalScrollBar.visible = false; }; if (whiteBox){ whiteBox.visible = false; }; updateDisplayList(unscaledWidth, unscaledHeight); }; objData.scrollRect = super.prepareToPrint(target); return (objData); } override protected function measure():void{ var controlWidth:Number; super.measure(); var bm:EdgeMetrics = borderMetrics; if (((controlBar) && (controlBar.includeInLayout))){ controlWidth = ((controlBar.getExplicitOrMeasuredWidth() + bm.left) + bm.right); measuredWidth = Math.max(measuredWidth, controlWidth); measuredMinWidth = Math.max(measuredMinWidth, controlWidth); }; } override public function getChildIndex(child:DisplayObject):int{ if (((controlBar) && ((child == controlBar)))){ return (-1); }; return (super.getChildIndex(child)); } private function resizeHandler(event:Event):void{ var w:Number; var h:Number; if (resizeWidth){ if (isNaN(percentWidth)){ w = DisplayObject(systemManager).width; } else { super.percentWidth = Math.max(percentWidth, 0); super.percentWidth = Math.min(percentWidth, 100); w = ((percentWidth * screen.width) / 100); }; if (!isNaN(explicitMaxWidth)){ w = Math.min(w, explicitMaxWidth); }; if (!isNaN(explicitMinWidth)){ w = Math.max(w, explicitMinWidth); }; } else { w = width; }; if (resizeHeight){ if (isNaN(percentHeight)){ h = DisplayObject(systemManager).height; } else { super.percentHeight = Math.max(percentHeight, 0); super.percentHeight = Math.min(percentHeight, 100); h = ((percentHeight * screen.height) / 100); }; if (!isNaN(explicitMaxHeight)){ h = Math.min(h, explicitMaxHeight); }; if (!isNaN(explicitMinHeight)){ h = Math.max(h, explicitMinHeight); }; } else { h = height; }; if (((!((w == width))) || (!((h == height))))){ invalidateProperties(); invalidateSize(); }; setActualSize(w, h); invalidateDisplayList(); } private function initManagers(sm:ISystemManager):void{ if (sm.isTopLevel()){ focusManager = new FocusManager(this); sm.activate(this); }; } override public function initialize():void{ var properties:Object; var sm:ISystemManager = systemManager; _url = sm.loaderInfo.url; _parameters = sm.loaderInfo.parameters; initManagers(sm); _descriptor = null; if (documentDescriptor){ creationPolicy = documentDescriptor.properties.creationPolicy; if ((((creationPolicy == null)) || ((creationPolicy.length == 0)))){ creationPolicy = ContainerCreationPolicy.AUTO; }; properties = documentDescriptor.properties; if (properties.width != null){ width = properties.width; delete properties.width; }; if (properties.height != null){ height = properties.height; delete properties.height; }; documentDescriptor.events = null; }; initContextMenu(); super.initialize(); addEventListener(Event.ADDED, addedHandler); if (((sm.isTopLevelRoot()) && ((Capabilities.isDebugger == true)))){ setInterval(debugTickler, 1500); }; } override public function set percentHeight(value:Number):void{ super.percentHeight = value; invalidateDisplayList(); } override public function get id():String{ if (((((!(super.id)) && ((this == Application.application)))) && (ExternalInterface.available))){ return (ExternalInterface.objectID); }; return (super.id); } override mx_internal function setUnscaledWidth(value:Number):void{ invalidateProperties(); super.setUnscaledWidth(value); } private function debugTickler():void{ var i:int; } private function doNextQueueItem(event:FlexEvent=null):void{ processingCreationQueue = true; Application.useProgressiveLayout = true; callLater(processNextQueueItem); } private function initContextMenu():void{ var caption:String; if (flexContextMenu != null){ if ((systemManager is InteractiveObject)){ InteractiveObject(systemManager).contextMenu = contextMenu; }; return; }; var defaultMenu:ContextMenu = new ContextMenu(); defaultMenu.hideBuiltInItems(); defaultMenu.builtInItems.print = true; if (_viewSourceURL){ caption = resourceManager.getString("core", "viewSource"); viewSourceCMI = new ContextMenuItem(caption, true); viewSourceCMI.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, menuItemSelectHandler); defaultMenu.customItems.push(viewSourceCMI); }; contextMenu = defaultMenu; if ((systemManager is InteractiveObject)){ InteractiveObject(systemManager).contextMenu = defaultMenu; }; } private function addedHandler(event:Event):void{ if ((((event.target == this)) && ((creationQueue.length > 0)))){ doNextQueueItem(); }; } public function get viewSourceURL():String{ return (_viewSourceURL); } override mx_internal function get usePadding():Boolean{ return (!((layout == ContainerLayout.ABSOLUTE))); } override mx_internal function setUnscaledHeight(value:Number):void{ invalidateProperties(); super.setUnscaledHeight(value); } mx_internal function dockControlBar(controlBar:IUIComponent, dock:Boolean):void{ var controlBar = controlBar; var dock = dock; if (dock){ removeChild(DisplayObject(controlBar)); //unresolved jump var _slot1 = e; return; rawChildren.addChildAt(DisplayObject(controlBar), firstChildIndex); setControlBar(controlBar); } else { rawChildren.removeChild(DisplayObject(controlBar)); //unresolved jump var _slot1 = e; return; setControlBar(null); addChildAt(DisplayObject(controlBar), 0); }; } override public function styleChanged(styleProp:String):void{ super.styleChanged(styleProp); if ((((styleProp == "backgroundColor")) && ((getStyle("backgroundImage") == getStyle("defaultBackgroundImage"))))){ clearStyle("backgroundImage"); }; } override protected function layoutChrome(unscaledWidth:Number, unscaledHeight:Number):void{ super.layoutChrome(unscaledWidth, unscaledHeight); if (!doingLayout){ createBorder(); }; var bm:EdgeMetrics = borderMetrics; var thickness:Number = getStyle("borderThickness"); var em:EdgeMetrics = new EdgeMetrics(); em.left = (bm.left - thickness); em.top = (bm.top - thickness); em.right = (bm.right - thickness); em.bottom = (bm.bottom - thickness); if (((controlBar) && (controlBar.includeInLayout))){ if ((controlBar is IInvalidating)){ IInvalidating(controlBar).invalidateDisplayList(); }; controlBar.setActualSize((width - (em.left + em.right)), controlBar.getExplicitOrMeasuredHeight()); controlBar.move(em.left, em.top); }; } protected function menuItemSelectHandler(event:Event):void{ navigateToURL(new URLRequest(_viewSourceURL), "_blank"); } private function printCreationQueue():void{ var child:Object; var msg:String = ""; var n:Number = creationQueue.length; var i:int; while (i < n) { child = creationQueue[i]; msg = (msg + (((((" [" + i) + "] ") + child.id) + " ") + child.index)); i++; }; } override protected function resourcesChanged():void{ super.resourcesChanged(); if (viewSourceCMI){ viewSourceCMI.caption = resourceManager.getString("core", "viewSource"); }; } override protected function commitProperties():void{ super.commitProperties(); resizeWidth = isNaN(explicitWidth); resizeHeight = isNaN(explicitHeight); if (((resizeWidth) || (resizeHeight))){ resizeHandler(new Event(Event.RESIZE)); if (!resizeHandlerAdded){ systemManager.addEventListener(Event.RESIZE, resizeHandler, false, 0, true); resizeHandlerAdded = true; }; } else { if (resizeHandlerAdded){ systemManager.removeEventListener(Event.RESIZE, resizeHandler); resizeHandlerAdded = false; }; }; } override public function set toolTip(value:String):void{ } public function addToCreationQueue(id:Object, preferredIndex:int=-1, callbackFunc:Function=null, parent:IFlexDisplayObject=null):void{ var insertIndex:int; var pointerIndex:int; var pointerLevel:int; var parentLevel:int; var queueLength:int = creationQueue.length; var queueObj:Object = {}; var insertedItem:Boolean; queueObj.id = id; queueObj.parent = parent; queueObj.callbackFunc = callbackFunc; queueObj.index = preferredIndex; var i:int; while (i < queueLength) { pointerIndex = creationQueue[i].index; pointerLevel = (creationQueue[i].parent) ? creationQueue[i].parent.nestLevel : 0; if (queueObj.index != -1){ if ((((pointerIndex == -1)) || ((queueObj.index < pointerIndex)))){ insertIndex = i; insertedItem = true; break; }; } else { parentLevel = (queueObj.parent) ? queueObj.parent.nestLevel : 0; if ((((pointerIndex == -1)) && ((pointerLevel < parentLevel)))){ insertIndex = i; insertedItem = true; break; }; }; i++; }; if (!insertedItem){ creationQueue.push(queueObj); insertedItem = true; } else { creationQueue.splice(insertIndex, 0, queueObj); }; if (((initialized) && (!(processingCreationQueue)))){ doNextQueueItem(); }; } override mx_internal function initThemeColor():Boolean{ var tc:Object; var rc:Number; var sc:Number; var globalSelector:CSSStyleDeclaration; var result:Boolean = super.initThemeColor(); if (!result){ globalSelector = StyleManager.getStyleDeclaration("global"); if (globalSelector){ tc = globalSelector.getStyle("themeColor"); rc = globalSelector.getStyle("rollOverColor"); sc = globalSelector.getStyle("selectionColor"); }; if (((((tc) && (isNaN(rc)))) && (isNaN(sc)))){ setThemeColor(tc); }; result = true; }; return (result); } override public function finishPrint(obj:Object, target:IFlexDisplayObject):void{ if (target == this){ setActualSize(obj.width, obj.height); if (horizontalScrollBar){ horizontalScrollBar.visible = obj.horizontalScrollBarVisible; }; if (verticalScrollBar){ verticalScrollBar.visible = obj.verticalScrollBarVisible; }; if (whiteBox){ whiteBox.visible = obj.whiteBoxVisible; }; horizontalScrollPosition = obj.horizontalScrollPosition; verticalScrollPosition = obj.verticalScrollPosition; updateDisplayList(unscaledWidth, unscaledHeight); }; super.finishPrint(obj.scrollRect, target); } private function processNextQueueItem():void{ var queueItem:Object; var nextChild:IUIComponent; if (EffectManager.effectsPlaying.length > 0){ callLater(processNextQueueItem); } else { if (creationQueue.length > 0){ queueItem = creationQueue.shift(); nextChild = ((queueItem.id is String)) ? document[queueItem.id] : queueItem.id; if ((nextChild is Container)){ Container(nextChild).createComponentsFromDescriptors(true); }; if ((((nextChild is Container)) && ((Container(nextChild).creationPolicy == ContainerCreationPolicy.QUEUED)))){ doNextQueueItem(); } else { nextChild.addEventListener("childrenCreationComplete", doNextQueueItem); }; //unresolved jump var _slot1 = e; processNextQueueItem(); } else { processingCreationQueue = false; Application.useProgressiveLayout = false; }; }; } override public function set label(value:String):void{ } public function get parameters():Object{ return (_parameters); } override public function get viewMetrics():EdgeMetrics{ if (!_applicationViewMetrics){ _applicationViewMetrics = new EdgeMetrics(); }; var vm:EdgeMetrics = _applicationViewMetrics; var o:EdgeMetrics = super.viewMetrics; var thickness:Number = getStyle("borderThickness"); vm.left = o.left; vm.top = o.top; vm.right = o.right; vm.bottom = o.bottom; if (((controlBar) && (controlBar.includeInLayout))){ vm.top = (vm.top - thickness); vm.top = (vm.top + Math.max(controlBar.getExplicitOrMeasuredHeight(), thickness)); }; return (vm); } public function get url():String{ return (_url); } override public function set icon(value:Class):void{ } override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void{ super.updateDisplayList(unscaledWidth, unscaledHeight); createBorder(); } private function setControlBar(newControlBar:IUIComponent):void{ if (newControlBar == controlBar){ return; }; if (((controlBar) && ((controlBar is IStyleClient)))){ IStyleClient(controlBar).clearStyle("cornerRadius"); IStyleClient(controlBar).clearStyle("docked"); }; controlBar = newControlBar; if (((controlBar) && ((controlBar is IStyleClient)))){ IStyleClient(controlBar).setStyle("cornerRadius", 0); IStyleClient(controlBar).setStyle("docked", true); }; invalidateSize(); invalidateDisplayList(); invalidateViewMetricsAndPadding(); } override public function set tabIndex(value:int):void{ } public static function get application():Object{ return (ApplicationGlobals.application); } } }//package mx.core
Section 67
//ApplicationGlobals (mx.core.ApplicationGlobals) package mx.core { public class ApplicationGlobals { public static var application:Object; public function ApplicationGlobals(){ super(); } } }//package mx.core
Section 68
//BitmapAsset (mx.core.BitmapAsset) package mx.core { import flash.display.*; public class BitmapAsset extends FlexBitmap implements IFlexAsset, IFlexDisplayObject { mx_internal static const VERSION:String = "3.2.0.3958"; public function BitmapAsset(bitmapData:BitmapData=null, pixelSnapping:String="auto", smoothing:Boolean=false){ super(bitmapData, pixelSnapping, smoothing); } public function get measuredWidth():Number{ if (bitmapData){ return (bitmapData.width); }; return (0); } public function get measuredHeight():Number{ if (bitmapData){ return (bitmapData.height); }; return (0); } public function setActualSize(newWidth:Number, newHeight:Number):void{ width = newWidth; height = newHeight; } public function move(x:Number, y:Number):void{ this.x = x; this.y = y; } } }//package mx.core
Section 69
//ByteArrayAsset (mx.core.ByteArrayAsset) package mx.core { import flash.utils.*; public class ByteArrayAsset extends ByteArray implements IFlexAsset { mx_internal static const VERSION:String = "3.2.0.3958"; public function ByteArrayAsset(){ super(); } } }//package mx.core
Section 70
//ComponentDescriptor (mx.core.ComponentDescriptor) package mx.core { public class ComponentDescriptor { public var events:Object; public var type:Class; public var document:Object; private var _properties:Object; public var propertiesFactory:Function; public var id:String; mx_internal static const VERSION:String = "3.2.0.3958"; public function ComponentDescriptor(descriptorProperties:Object){ var p:String; super(); for (p in descriptorProperties) { this[p] = descriptorProperties[p]; }; } public function toString():String{ return (("ComponentDescriptor_" + id)); } public function invalidateProperties():void{ _properties = null; } public function get properties():Object{ var cd:Array; var n:int; var i:int; if (_properties){ return (_properties); }; if (propertiesFactory != null){ _properties = propertiesFactory.call(document); }; if (_properties){ cd = _properties.childDescriptors; if (cd){ n = cd.length; i = 0; while (i < n) { cd[i].document = document; i++; }; }; } else { _properties = {}; }; return (_properties); } } }//package mx.core
Section 71
//Container (mx.core.Container) package mx.core { import flash.display.*; import flash.geom.*; import flash.text.*; import mx.managers.*; import flash.events.*; import mx.events.*; import mx.styles.*; import mx.controls.*; import mx.graphics.*; import mx.controls.scrollClasses.*; import mx.binding.*; import flash.utils.*; import mx.controls.listClasses.*; import flash.ui.*; public class Container extends UIComponent implements IContainer, IDataRenderer, IFocusManagerContainer, IListItemRenderer, IRawChildrenContainer { private var forceLayout:Boolean;// = false private var _numChildrenCreated:int;// = -1 private var _horizontalLineScrollSize:Number;// = 5 mx_internal var border:IFlexDisplayObject; protected var actualCreationPolicy:String; private var _viewMetricsAndPadding:EdgeMetrics; private var _creatingContentPane:Boolean;// = false private var _childRepeaters:Array; private var scrollableWidth:Number;// = 0 private var _childDescriptors:Array; private var _rawChildren:ContainerRawChildrenList; private var _data:Object; private var _verticalPageScrollSize:Number;// = 0 private var _viewMetrics:EdgeMetrics; private var _verticalScrollBar:ScrollBar; private var scrollPropertiesChanged:Boolean;// = false private var changedStyles:String;// = null private var scrollPositionChanged:Boolean;// = true private var _defaultButton:IFlexDisplayObject; private var mouseEventReferenceCount:int;// = 0 private var _focusPane:Sprite; protected var whiteBox:Shape; private var _forceClippingCount:int; private var _horizontalPageScrollSize:Number;// = 0 private var _creationPolicy:String; private var _creationIndex:int;// = -1 private var _clipContent:Boolean;// = true private var _verticalScrollPosition:Number;// = 0 private var _autoLayout:Boolean;// = true private var _icon:Class;// = null mx_internal var doingLayout:Boolean;// = false private var _horizontalScrollBar:ScrollBar; private var numChildrenBefore:int; private var viewableHeight:Number;// = 0 private var viewableWidth:Number;// = 0 mx_internal var contentPane:Sprite;// = null private var _createdComponents:Array; private var _firstChildIndex:int;// = 0 private var scrollableHeight:Number;// = 0 private var _verticalLineScrollSize:Number;// = 5 private var _horizontalScrollPosition:Number;// = 0 mx_internal var _horizontalScrollPolicy:String;// = "auto" private var verticalScrollPositionPending:Number; mx_internal var _verticalScrollPolicy:String;// = "auto" private var horizontalScrollPositionPending:Number; mx_internal var _numChildren:int;// = 0 private var recursionFlag:Boolean;// = true private var _label:String;// = "" mx_internal var blocker:Sprite; mx_internal static const VERSION:String = "3.2.0.3958"; private static const MULTIPLE_PROPERTIES:String = "<MULTIPLE>"; public function Container(){ super(); tabChildren = true; tabEnabled = false; showInAutomationHierarchy = false; } public function set verticalScrollPolicy(value:String):void{ if (_verticalScrollPolicy != value){ _verticalScrollPolicy = value; invalidateDisplayList(); dispatchEvent(new Event("verticalScrollPolicyChanged")); }; } private function createContentPaneAndScrollbarsIfNeeded():Boolean{ var bounds:Rectangle; var changed:Boolean; if (_clipContent){ bounds = getScrollableRect(); changed = createScrollbarsIfNeeded(bounds); if (border){ updateBackgroundImageRect(); }; return (changed); } else { changed = createOrDestroyScrollbars(false, false, false); bounds = getScrollableRect(); scrollableWidth = bounds.right; scrollableHeight = bounds.bottom; if (((changed) && (border))){ updateBackgroundImageRect(); }; }; return (changed); } override protected function initializationComplete():void{ } mx_internal function rawChildren_getObjectsUnderPoint(pt:Point):Array{ return (super.getObjectsUnderPoint(pt)); } public function set creatingContentPane(value:Boolean):void{ _creatingContentPane = value; } public function set clipContent(value:Boolean):void{ if (_clipContent != value){ _clipContent = value; invalidateDisplayList(); }; } protected function scrollChildren():void{ if (!contentPane){ return; }; var vm:EdgeMetrics = viewMetrics; var x:Number = 0; var y:Number = 0; var w:Number = ((unscaledWidth - vm.left) - vm.right); var h:Number = ((unscaledHeight - vm.top) - vm.bottom); if (_clipContent){ x = (x + _horizontalScrollPosition); if (horizontalScrollBar){ w = viewableWidth; }; y = (y + _verticalScrollPosition); if (verticalScrollBar){ h = viewableHeight; }; } else { w = scrollableWidth; h = scrollableHeight; }; var sr:Rectangle = getScrollableRect(); if ((((((((((((((x == 0)) && ((y == 0)))) && ((w >= sr.right)))) && ((h >= sr.bottom)))) && ((sr.left >= 0)))) && ((sr.top >= 0)))) && ((_forceClippingCount <= 0)))){ contentPane.scrollRect = null; contentPane.opaqueBackground = null; contentPane.cacheAsBitmap = false; } else { contentPane.scrollRect = new Rectangle(x, y, w, h); }; if (focusPane){ focusPane.scrollRect = contentPane.scrollRect; }; if (((((border) && ((border is IRectangularBorder)))) && (IRectangularBorder(border).hasBackgroundImage))){ IRectangularBorder(border).layoutBackgroundImage(); }; } override public function set doubleClickEnabled(value:Boolean):void{ var n:int; var i:int; var child:InteractiveObject; super.doubleClickEnabled = value; if (contentPane){ n = contentPane.numChildren; i = 0; while (i < n) { child = (contentPane.getChildAt(i) as InteractiveObject); if (child){ child.doubleClickEnabled = value; }; i++; }; }; } override public function notifyStyleChangeInChildren(styleProp:String, recursive:Boolean):void{ var child:ISimpleStyleClient; var n:int = super.numChildren; var i:int; while (i < n) { if (((((contentPane) || ((i < _firstChildIndex)))) || ((i >= (_firstChildIndex + _numChildren))))){ child = (super.getChildAt(i) as ISimpleStyleClient); if (child){ child.styleChanged(styleProp); if ((child is IStyleClient)){ IStyleClient(child).notifyStyleChangeInChildren(styleProp, recursive); }; }; }; i++; }; if (recursive){ changedStyles = (((!((changedStyles == null))) || ((styleProp == null)))) ? MULTIPLE_PROPERTIES : styleProp; invalidateProperties(); }; } mx_internal function get createdComponents():Array{ return (_createdComponents); } public function get childDescriptors():Array{ return (_childDescriptors); } override public function get contentMouseY():Number{ if (contentPane){ return (contentPane.mouseY); }; return (super.contentMouseY); } mx_internal function get childRepeaters():Array{ return (_childRepeaters); } override public function contains(child:DisplayObject):Boolean{ if (contentPane){ return (contentPane.contains(child)); }; return (super.contains(child)); } override public function get contentMouseX():Number{ if (contentPane){ return (contentPane.mouseX); }; return (super.contentMouseX); } mx_internal function set createdComponents(value:Array):void{ _createdComponents = value; } public function get horizontalScrollBar():ScrollBar{ return (_horizontalScrollBar); } override public function validateSize(recursive:Boolean=false):void{ var n:int; var i:int; var child:DisplayObject; if ((((autoLayout == false)) && ((forceLayout == false)))){ if (recursive){ n = super.numChildren; i = 0; while (i < n) { child = super.getChildAt(i); if ((child is ILayoutManagerClient)){ ILayoutManagerClient(child).validateSize(true); }; i++; }; }; adjustSizesForScaleChanges(); } else { super.validateSize(recursive); }; } public function get rawChildren():IChildList{ if (!_rawChildren){ _rawChildren = new ContainerRawChildrenList(this); }; return (_rawChildren); } override public function getChildAt(index:int):DisplayObject{ if (contentPane){ return (contentPane.getChildAt(index)); }; return (super.getChildAt((_firstChildIndex + index))); } override protected function attachOverlay():void{ rawChildren_addChild(overlay); } override public function addEventListener(type:String, listener:Function, useCapture:Boolean=false, priority:int=0, useWeakReference:Boolean=false):void{ super.addEventListener(type, listener, useCapture, priority, useWeakReference); if ((((((((((((((((type == MouseEvent.CLICK)) || ((type == MouseEvent.DOUBLE_CLICK)))) || ((type == MouseEvent.MOUSE_DOWN)))) || ((type == MouseEvent.MOUSE_MOVE)))) || ((type == MouseEvent.MOUSE_OVER)))) || ((type == MouseEvent.MOUSE_OUT)))) || ((type == MouseEvent.MOUSE_UP)))) || ((type == MouseEvent.MOUSE_WHEEL)))){ if ((((mouseEventReferenceCount < 2147483647)) && ((mouseEventReferenceCount++ == 0)))){ setStyle("mouseShield", true); setStyle("mouseShieldChildren", true); }; }; } override public function localToContent(point:Point):Point{ if (!contentPane){ return (point); }; point = localToGlobal(point); return (globalToContent(point)); } public function executeChildBindings(recurse:Boolean):void{ var child:IUIComponent; var n:int = numChildren; var i:int; while (i < n) { child = IUIComponent(getChildAt(i)); if ((child is IDeferredInstantiationUIComponent)){ IDeferredInstantiationUIComponent(child).executeBindings(recurse); }; i++; }; } protected function createBorder():void{ var borderClass:Class; if (((!(border)) && (isBorderNeeded()))){ borderClass = getStyle("borderSkin"); if (borderClass != null){ border = new (borderClass); border.name = "border"; if ((border is IUIComponent)){ IUIComponent(border).enabled = enabled; }; if ((border is ISimpleStyleClient)){ ISimpleStyleClient(border).styleName = this; }; rawChildren.addChildAt(DisplayObject(border), 0); invalidateDisplayList(); }; }; } public function get verticalScrollPosition():Number{ if (!isNaN(verticalScrollPositionPending)){ return (verticalScrollPositionPending); }; return (_verticalScrollPosition); } public function get horizontalScrollPosition():Number{ if (!isNaN(horizontalScrollPositionPending)){ return (horizontalScrollPositionPending); }; return (_horizontalScrollPosition); } protected function layoutChrome(unscaledWidth:Number, unscaledHeight:Number):void{ if (border){ updateBackgroundImageRect(); border.move(0, 0); border.setActualSize(unscaledWidth, unscaledHeight); }; } mx_internal function set childRepeaters(value:Array):void{ _childRepeaters = value; } override public function get focusPane():Sprite{ return (_focusPane); } public function set creationIndex(value:int):void{ _creationIndex = value; } public function get viewMetrics():EdgeMetrics{ var bm:EdgeMetrics = borderMetrics; var verticalScrollBarIncluded:Boolean = ((!((verticalScrollBar == null))) && (((doingLayout) || ((verticalScrollPolicy == ScrollPolicy.ON))))); var horizontalScrollBarIncluded:Boolean = ((!((horizontalScrollBar == null))) && (((doingLayout) || ((horizontalScrollPolicy == ScrollPolicy.ON))))); if (((!(verticalScrollBarIncluded)) && (!(horizontalScrollBarIncluded)))){ return (bm); }; if (!_viewMetrics){ _viewMetrics = bm.clone(); } else { _viewMetrics.left = bm.left; _viewMetrics.right = bm.right; _viewMetrics.top = bm.top; _viewMetrics.bottom = bm.bottom; }; if (verticalScrollBarIncluded){ _viewMetrics.right = (_viewMetrics.right + verticalScrollBar.minWidth); }; if (horizontalScrollBarIncluded){ _viewMetrics.bottom = (_viewMetrics.bottom + horizontalScrollBar.minHeight); }; return (_viewMetrics); } public function set verticalScrollBar(value:ScrollBar):void{ _verticalScrollBar = value; } public function set verticalScrollPosition(value:Number):void{ if (_verticalScrollPosition == value){ return; }; _verticalScrollPosition = value; scrollPositionChanged = true; if (!initialized){ verticalScrollPositionPending = value; }; invalidateDisplayList(); dispatchEvent(new Event("viewChanged")); } private function createOrDestroyScrollbars(needHorizontal:Boolean, needVertical:Boolean, needContentPane:Boolean):Boolean{ var fm:IFocusManager; var horizontalScrollBarStyleName:String; var verticalScrollBarStyleName:String; var g:Graphics; var changed:Boolean; if (((((needHorizontal) || (needVertical))) || (needContentPane))){ createContentPane(); }; if (needHorizontal){ if (!horizontalScrollBar){ horizontalScrollBar = new HScrollBar(); horizontalScrollBar.name = "horizontalScrollBar"; horizontalScrollBarStyleName = getStyle("horizontalScrollBarStyleName"); if (((horizontalScrollBarStyleName) && ((horizontalScrollBar is ISimpleStyleClient)))){ ISimpleStyleClient(horizontalScrollBar).styleName = horizontalScrollBarStyleName; }; rawChildren.addChild(DisplayObject(horizontalScrollBar)); horizontalScrollBar.lineScrollSize = horizontalLineScrollSize; horizontalScrollBar.pageScrollSize = horizontalPageScrollSize; horizontalScrollBar.addEventListener(ScrollEvent.SCROLL, horizontalScrollBar_scrollHandler); horizontalScrollBar.enabled = enabled; if ((horizontalScrollBar is IInvalidating)){ IInvalidating(horizontalScrollBar).validateNow(); }; invalidateDisplayList(); invalidateViewMetricsAndPadding(); changed = true; if (!verticalScrollBar){ addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler); }; }; } else { if (horizontalScrollBar){ horizontalScrollBar.removeEventListener(ScrollEvent.SCROLL, horizontalScrollBar_scrollHandler); rawChildren.removeChild(DisplayObject(horizontalScrollBar)); horizontalScrollBar = null; viewableWidth = (scrollableWidth = 0); if (_horizontalScrollPosition != 0){ _horizontalScrollPosition = 0; scrollPositionChanged = true; }; invalidateDisplayList(); invalidateViewMetricsAndPadding(); changed = true; fm = focusManager; if (((!(verticalScrollBar)) && (((!(fm)) || (!((fm.getFocus() == this))))))){ removeEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler); }; }; }; if (needVertical){ if (!verticalScrollBar){ verticalScrollBar = new VScrollBar(); verticalScrollBar.name = "verticalScrollBar"; verticalScrollBarStyleName = getStyle("verticalScrollBarStyleName"); if (((verticalScrollBarStyleName) && ((verticalScrollBar is ISimpleStyleClient)))){ ISimpleStyleClient(verticalScrollBar).styleName = verticalScrollBarStyleName; }; rawChildren.addChild(DisplayObject(verticalScrollBar)); verticalScrollBar.lineScrollSize = verticalLineScrollSize; verticalScrollBar.pageScrollSize = verticalPageScrollSize; verticalScrollBar.addEventListener(ScrollEvent.SCROLL, verticalScrollBar_scrollHandler); verticalScrollBar.enabled = enabled; if ((verticalScrollBar is IInvalidating)){ IInvalidating(verticalScrollBar).validateNow(); }; invalidateDisplayList(); invalidateViewMetricsAndPadding(); changed = true; if (!horizontalScrollBar){ addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler); }; addEventListener(MouseEvent.MOUSE_WHEEL, mouseWheelHandler); }; } else { if (verticalScrollBar){ verticalScrollBar.removeEventListener(ScrollEvent.SCROLL, verticalScrollBar_scrollHandler); rawChildren.removeChild(DisplayObject(verticalScrollBar)); verticalScrollBar = null; viewableHeight = (scrollableHeight = 0); if (_verticalScrollPosition != 0){ _verticalScrollPosition = 0; scrollPositionChanged = true; }; invalidateDisplayList(); invalidateViewMetricsAndPadding(); changed = true; fm = focusManager; if (((!(horizontalScrollBar)) && (((!(fm)) || (!((fm.getFocus() == this))))))){ removeEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler); }; removeEventListener(MouseEvent.MOUSE_WHEEL, mouseWheelHandler); }; }; if (((horizontalScrollBar) && (verticalScrollBar))){ if (!whiteBox){ whiteBox = new FlexShape(); whiteBox.name = "whiteBox"; g = whiteBox.graphics; g.beginFill(0xFFFFFF); g.drawRect(0, 0, verticalScrollBar.minWidth, horizontalScrollBar.minHeight); g.endFill(); rawChildren.addChild(whiteBox); }; } else { if (whiteBox){ rawChildren.removeChild(whiteBox); whiteBox = null; }; }; return (changed); } override protected function keyDownHandler(event:KeyboardEvent):void{ var direction:String; var oldPos:Number; var focusObj:Object = getFocus(); if ((focusObj is TextField)){ return; }; if (verticalScrollBar){ direction = ScrollEventDirection.VERTICAL; oldPos = verticalScrollPosition; switch (event.keyCode){ case Keyboard.DOWN: verticalScrollPosition = (verticalScrollPosition + verticalLineScrollSize); dispatchScrollEvent(direction, oldPos, verticalScrollPosition, ScrollEventDetail.LINE_DOWN); event.stopPropagation(); break; case Keyboard.UP: verticalScrollPosition = (verticalScrollPosition - verticalLineScrollSize); dispatchScrollEvent(direction, oldPos, verticalScrollPosition, ScrollEventDetail.LINE_UP); event.stopPropagation(); break; case Keyboard.PAGE_UP: verticalScrollPosition = (verticalScrollPosition - verticalPageScrollSize); dispatchScrollEvent(direction, oldPos, verticalScrollPosition, ScrollEventDetail.PAGE_UP); event.stopPropagation(); break; case Keyboard.PAGE_DOWN: verticalScrollPosition = (verticalScrollPosition + verticalPageScrollSize); dispatchScrollEvent(direction, oldPos, verticalScrollPosition, ScrollEventDetail.PAGE_DOWN); event.stopPropagation(); break; case Keyboard.HOME: verticalScrollPosition = verticalScrollBar.minScrollPosition; dispatchScrollEvent(direction, oldPos, verticalScrollPosition, ScrollEventDetail.AT_TOP); event.stopPropagation(); break; case Keyboard.END: verticalScrollPosition = verticalScrollBar.maxScrollPosition; dispatchScrollEvent(direction, oldPos, verticalScrollPosition, ScrollEventDetail.AT_BOTTOM); event.stopPropagation(); break; }; }; if (horizontalScrollBar){ direction = ScrollEventDirection.HORIZONTAL; oldPos = horizontalScrollPosition; switch (event.keyCode){ case Keyboard.LEFT: horizontalScrollPosition = (horizontalScrollPosition - horizontalLineScrollSize); dispatchScrollEvent(direction, oldPos, horizontalScrollPosition, ScrollEventDetail.LINE_LEFT); event.stopPropagation(); break; case Keyboard.RIGHT: horizontalScrollPosition = (horizontalScrollPosition + horizontalLineScrollSize); dispatchScrollEvent(direction, oldPos, horizontalScrollPosition, ScrollEventDetail.LINE_RIGHT); event.stopPropagation(); break; }; }; } public function get icon():Class{ return (_icon); } private function createOrDestroyBlocker():void{ var o:DisplayObject; var sm:ISystemManager; if (enabled){ if (blocker){ rawChildren.removeChild(blocker); blocker = null; }; } else { if (!blocker){ blocker = new FlexSprite(); blocker.name = "blocker"; blocker.mouseEnabled = true; rawChildren.addChild(blocker); blocker.addEventListener(MouseEvent.CLICK, blocker_clickHandler); o = (focusManager) ? DisplayObject(focusManager.getFocus()) : null; while (o) { if (o == this){ sm = systemManager; if (((sm) && (sm.stage))){ sm.stage.focus = null; }; break; }; o = o.parent; }; }; }; } private function horizontalScrollBar_scrollHandler(event:Event):void{ var oldPos:Number; if ((event is ScrollEvent)){ oldPos = horizontalScrollPosition; horizontalScrollPosition = horizontalScrollBar.scrollPosition; dispatchScrollEvent(ScrollEventDirection.HORIZONTAL, oldPos, horizontalScrollPosition, ScrollEvent(event).detail); }; } public function createComponentFromDescriptor(descriptor:ComponentDescriptor, recurse:Boolean):IFlexDisplayObject{ var p:String; var rChild:IRepeaterClient; var scChild:IStyleClient; var eventName:String; var eventHandler:String; var childDescriptor:UIComponentDescriptor = UIComponentDescriptor(descriptor); var childProperties:Object = childDescriptor.properties; if (((((((!((numChildrenBefore == 0))) || (!((numChildrenCreated == -1))))) && ((childDescriptor.instanceIndices == null)))) && (hasChildMatchingDescriptor(childDescriptor)))){ return (null); }; UIComponentGlobals.layoutManager.usePhasedInstantiation = true; var childType:Class = childDescriptor.type; var child:IDeferredInstantiationUIComponent = new (childType); child.id = childDescriptor.id; if (((child.id) && (!((child.id == ""))))){ child.name = child.id; }; child.descriptor = childDescriptor; if (((childProperties.childDescriptors) && ((child is Container)))){ Container(child)._childDescriptors = childProperties.childDescriptors; delete childProperties.childDescriptors; }; for (p in childProperties) { child[p] = childProperties[p]; }; if ((child is Container)){ Container(child).recursionFlag = recurse; }; if (childDescriptor.instanceIndices){ if ((child is IRepeaterClient)){ rChild = IRepeaterClient(child); rChild.instanceIndices = childDescriptor.instanceIndices; rChild.repeaters = childDescriptor.repeaters; rChild.repeaterIndices = childDescriptor.repeaterIndices; }; }; if ((child is IStyleClient)){ scChild = IStyleClient(child); if (childDescriptor.stylesFactory != null){ if (!scChild.styleDeclaration){ scChild.styleDeclaration = new CSSStyleDeclaration(); }; scChild.styleDeclaration.factory = childDescriptor.stylesFactory; }; }; var childEvents:Object = childDescriptor.events; if (childEvents){ for (eventName in childEvents) { eventHandler = childEvents[eventName]; child.addEventListener(eventName, childDescriptor.document[eventHandler]); }; }; var childEffects:Array = childDescriptor.effects; if (childEffects){ child.registerEffects(childEffects); }; if ((child is IRepeaterClient)){ IRepeaterClient(child).initializeRepeaterArrays(this); }; child.createReferenceOnParentDocument(IFlexDisplayObject(childDescriptor.document)); if (!child.document){ child.document = childDescriptor.document; }; if ((child is IRepeater)){ if (!childRepeaters){ childRepeaters = []; }; childRepeaters.push(child); child.executeBindings(); IRepeater(child).initializeRepeater(this, recurse); } else { addChild(DisplayObject(child)); child.executeBindings(); if ((((creationPolicy == ContainerCreationPolicy.QUEUED)) || ((creationPolicy == ContainerCreationPolicy.NONE)))){ child.addEventListener(FlexEvent.CREATION_COMPLETE, creationCompleteHandler); }; }; return (child); } override public function set enabled(value:Boolean):void{ super.enabled = value; if (horizontalScrollBar){ horizontalScrollBar.enabled = value; }; if (verticalScrollBar){ verticalScrollBar.enabled = value; }; invalidateProperties(); } public function set horizontalScrollBar(value:ScrollBar):void{ _horizontalScrollBar = value; } mx_internal function get usePadding():Boolean{ return (true); } override public function get baselinePosition():Number{ var child:IUIComponent; if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_3_0){ if ((((getStyle("verticalAlign") == "top")) && ((numChildren > 0)))){ child = (getChildAt(0) as IUIComponent); if (child){ return ((child.y + child.baselinePosition)); }; }; return (super.baselinePosition); }; if (!validateBaselinePosition()){ return (NaN); }; var lineMetrics:TextLineMetrics = measureText("Wj"); if (height < (((2 * viewMetrics.top) + 4) + lineMetrics.ascent)){ return (int((height + ((lineMetrics.ascent - height) / 2)))); }; return (((viewMetrics.top + 2) + lineMetrics.ascent)); } override public function getChildByName(name:String):DisplayObject{ var child:DisplayObject; var index:int; if (contentPane){ return (contentPane.getChildByName(name)); }; child = super.getChildByName(name); if (!child){ return (null); }; index = (super.getChildIndex(child) - _firstChildIndex); if ((((index < 0)) || ((index >= _numChildren)))){ return (null); }; return (child); } public function get verticalLineScrollSize():Number{ return (_verticalLineScrollSize); } public function get horizontalScrollPolicy():String{ return (_horizontalScrollPolicy); } override public function addChildAt(child:DisplayObject, index:int):DisplayObject{ var formerParent:DisplayObjectContainer = child.parent; if (((formerParent) && (!((formerParent is Loader))))){ if (formerParent == this){ index = ((index)==numChildren) ? (index - 1) : index; }; formerParent.removeChild(child); }; addingChild(child); if (contentPane){ contentPane.addChildAt(child, index); } else { $addChildAt(child, (_firstChildIndex + index)); }; childAdded(child); if ((((child is UIComponent)) && (UIComponent(child).isDocument))){ BindingManager.setEnabled(child, true); }; return (child); } public function get maxVerticalScrollPosition():Number{ return ((verticalScrollBar) ? verticalScrollBar.maxScrollPosition : Math.max((scrollableHeight - viewableHeight), 0)); } public function set horizontalScrollPosition(value:Number):void{ if (_horizontalScrollPosition == value){ return; }; _horizontalScrollPosition = value; scrollPositionChanged = true; if (!initialized){ horizontalScrollPositionPending = value; }; invalidateDisplayList(); dispatchEvent(new Event("viewChanged")); } mx_internal function invalidateViewMetricsAndPadding():void{ _viewMetricsAndPadding = null; } public function get horizontalLineScrollSize():Number{ return (_horizontalLineScrollSize); } override public function set focusPane(o:Sprite):void{ var oldInvalidateSizeFlag:Boolean = invalidateSizeFlag; var oldInvalidateDisplayListFlag:Boolean = invalidateDisplayListFlag; invalidateSizeFlag = true; invalidateDisplayListFlag = true; if (o){ rawChildren.addChild(o); o.x = 0; o.y = 0; o.scrollRect = null; _focusPane = o; } else { rawChildren.removeChild(_focusPane); _focusPane = null; }; if (((o) && (contentPane))){ o.x = contentPane.x; o.y = contentPane.y; o.scrollRect = contentPane.scrollRect; }; invalidateSizeFlag = oldInvalidateSizeFlag; invalidateDisplayListFlag = oldInvalidateDisplayListFlag; } private function updateBackgroundImageRect():void{ var rectBorder:IRectangularBorder = (border as IRectangularBorder); if (!rectBorder){ return; }; if ((((viewableWidth == 0)) && ((viewableHeight == 0)))){ rectBorder.backgroundImageBounds = null; return; }; var vm:EdgeMetrics = viewMetrics; var bkWidth:Number = (viewableWidth) ? viewableWidth : ((unscaledWidth - vm.left) - vm.right); var bkHeight:Number = (viewableHeight) ? viewableHeight : ((unscaledHeight - vm.top) - vm.bottom); if (getStyle("backgroundAttachment") == "fixed"){ rectBorder.backgroundImageBounds = new Rectangle(vm.left, vm.top, bkWidth, bkHeight); } else { rectBorder.backgroundImageBounds = new Rectangle(vm.left, vm.top, Math.max(scrollableWidth, bkWidth), Math.max(scrollableHeight, bkHeight)); }; } private function blocker_clickHandler(event:Event):void{ event.stopPropagation(); } private function mouseWheelHandler(event:MouseEvent):void{ var scrollDirection:int; var lineScrollSize:int; var scrollAmount:Number; var oldPosition:Number; if (verticalScrollBar){ event.stopPropagation(); scrollDirection = ((event.delta <= 0)) ? 1 : -1; lineScrollSize = (verticalScrollBar) ? verticalScrollBar.lineScrollSize : 1; scrollAmount = Math.max(Math.abs(event.delta), lineScrollSize); oldPosition = verticalScrollPosition; verticalScrollPosition = (verticalScrollPosition + ((3 * scrollAmount) * scrollDirection)); dispatchScrollEvent(ScrollEventDirection.VERTICAL, oldPosition, verticalScrollPosition, ((event.delta <= 0)) ? ScrollEventDetail.LINE_UP : ScrollEventDetail.LINE_DOWN); }; } public function get defaultButton():IFlexDisplayObject{ return (_defaultButton); } mx_internal function createContentPane():void{ var childIndex:int; var child:IUIComponent; if (contentPane){ return; }; creatingContentPane = true; var n:int = numChildren; var newPane:Sprite = new FlexSprite(); newPane.name = "contentPane"; newPane.tabChildren = true; if (border){ childIndex = (rawChildren.getChildIndex(DisplayObject(border)) + 1); if ((((border is IRectangularBorder)) && (IRectangularBorder(border).hasBackgroundImage))){ childIndex++; }; } else { childIndex = 0; }; rawChildren.addChildAt(newPane, childIndex); var i:int; while (i < n) { child = IUIComponent(super.getChildAt(_firstChildIndex)); newPane.addChild(DisplayObject(child)); child.parentChanged(newPane); _numChildren--; i++; }; contentPane = newPane; creatingContentPane = false; contentPane.visible = true; } public function set verticalPageScrollSize(value:Number):void{ scrollPropertiesChanged = true; _verticalPageScrollSize = value; invalidateDisplayList(); dispatchEvent(new Event("verticalPageScrollSizeChanged")); } mx_internal function setDocumentDescriptor(desc:UIComponentDescriptor):void{ var message:String; if (processedDescriptors){ return; }; if (((_documentDescriptor) && (_documentDescriptor.properties.childDescriptors))){ if (desc.properties.childDescriptors){ message = resourceManager.getString("core", "multipleChildSets_ClassAndSubclass"); throw (new Error(message)); }; } else { _documentDescriptor = desc; _documentDescriptor.document = this; }; } private function verticalScrollBar_scrollHandler(event:Event):void{ var oldPos:Number; if ((event is ScrollEvent)){ oldPos = verticalScrollPosition; verticalScrollPosition = verticalScrollBar.scrollPosition; dispatchScrollEvent(ScrollEventDirection.VERTICAL, oldPos, verticalScrollPosition, ScrollEvent(event).detail); }; } public function get creationPolicy():String{ return (_creationPolicy); } public function set icon(value:Class):void{ _icon = value; dispatchEvent(new Event("iconChanged")); } private function dispatchScrollEvent(direction:String, oldPosition:Number, newPosition:Number, detail:String):void{ var event:ScrollEvent = new ScrollEvent(ScrollEvent.SCROLL); event.direction = direction; event.position = newPosition; event.delta = (newPosition - oldPosition); event.detail = detail; dispatchEvent(event); } public function get label():String{ return (_label); } public function get verticalScrollPolicy():String{ return (_verticalScrollPolicy); } public function get borderMetrics():EdgeMetrics{ return ((((border) && ((border is IRectangularBorder)))) ? IRectangularBorder(border).borderMetrics : EdgeMetrics.EMPTY); } private function creationCompleteHandler(event:FlexEvent):void{ numChildrenCreated--; if (numChildrenCreated <= 0){ dispatchEvent(new FlexEvent("childrenCreationComplete")); }; } override public function contentToLocal(point:Point):Point{ if (!contentPane){ return (point); }; point = contentToGlobal(point); return (globalToLocal(point)); } override public function removeChild(child:DisplayObject):DisplayObject{ var n:int; var i:int; if ((((child is IDeferredInstantiationUIComponent)) && (IDeferredInstantiationUIComponent(child).descriptor))){ if (createdComponents){ n = createdComponents.length; i = 0; while (i < n) { if (createdComponents[i] === child){ createdComponents.splice(i, 1); }; i++; }; }; }; removingChild(child); if ((((child is UIComponent)) && (UIComponent(child).isDocument))){ BindingManager.setEnabled(child, false); }; if (contentPane){ contentPane.removeChild(child); } else { $removeChild(child); }; childRemoved(child); return (child); } final mx_internal function get $numChildren():int{ return (super.numChildren); } mx_internal function get numRepeaters():int{ return ((childRepeaters) ? childRepeaters.length : 0); } mx_internal function set numChildrenCreated(value:int):void{ _numChildrenCreated = value; } public function get creatingContentPane():Boolean{ return (_creatingContentPane); } public function get clipContent():Boolean{ return (_clipContent); } mx_internal function rawChildren_getChildIndex(child:DisplayObject):int{ return (super.getChildIndex(child)); } override public function regenerateStyleCache(recursive:Boolean):void{ var n:int; var i:int; var child:DisplayObject; super.regenerateStyleCache(recursive); if (contentPane){ n = contentPane.numChildren; i = 0; while (i < n) { child = getChildAt(i); if (((recursive) && ((child is UIComponent)))){ if (UIComponent(child).inheritingStyles != UIComponent.STYLE_UNINITIALIZED){ UIComponent(child).regenerateStyleCache(recursive); }; } else { if ((((child is IUITextField)) && (IUITextField(child).inheritingStyles))){ StyleProtoChain.initTextField(IUITextField(child)); }; }; i++; }; }; } override public function getChildIndex(child:DisplayObject):int{ var index:int; if (contentPane){ return (contentPane.getChildIndex(child)); }; index = (super.getChildIndex(child) - _firstChildIndex); return (index); } mx_internal function rawChildren_contains(child:DisplayObject):Boolean{ return (super.contains(child)); } mx_internal function getScrollableRect():Rectangle{ var child:DisplayObject; var left:Number = 0; var top:Number = 0; var right:Number = 0; var bottom:Number = 0; var n:int = numChildren; var i:int; while (i < n) { child = getChildAt(i); if ((((child is IUIComponent)) && (!(IUIComponent(child).includeInLayout)))){ } else { left = Math.min(left, child.x); top = Math.min(top, child.y); if (!isNaN(child.width)){ right = Math.max(right, (child.x + child.width)); }; if (!isNaN(child.height)){ bottom = Math.max(bottom, (child.y + child.height)); }; }; i++; }; var vm:EdgeMetrics = viewMetrics; var bounds:Rectangle = new Rectangle(); bounds.left = left; bounds.top = top; bounds.right = right; bounds.bottom = bottom; if (usePadding){ bounds.right = (bounds.right + getStyle("paddingRight")); bounds.bottom = (bounds.bottom + getStyle("paddingBottom")); }; return (bounds); } override protected function createChildren():void{ var mainApp:Application; super.createChildren(); createBorder(); createOrDestroyScrollbars((horizontalScrollPolicy == ScrollPolicy.ON), (verticalScrollPolicy == ScrollPolicy.ON), (((horizontalScrollPolicy == ScrollPolicy.ON)) || ((verticalScrollPolicy == ScrollPolicy.ON)))); if (creationPolicy != null){ actualCreationPolicy = creationPolicy; } else { if ((parent is Container)){ if (Container(parent).actualCreationPolicy == ContainerCreationPolicy.QUEUED){ actualCreationPolicy = ContainerCreationPolicy.AUTO; } else { actualCreationPolicy = Container(parent).actualCreationPolicy; }; }; }; if (actualCreationPolicy == ContainerCreationPolicy.NONE){ actualCreationPolicy = ContainerCreationPolicy.AUTO; } else { if (actualCreationPolicy == ContainerCreationPolicy.QUEUED){ mainApp = (parentApplication) ? Application(parentApplication) : Application(Application.application); mainApp.addToCreationQueue(this, creationIndex, null, this); } else { if (recursionFlag){ createComponentsFromDescriptors(); }; }; }; if (autoLayout == false){ forceLayout = true; }; UIComponentGlobals.layoutManager.addEventListener(FlexEvent.UPDATE_COMPLETE, layoutCompleteHandler, false, 0, true); } override public function executeBindings(recurse:Boolean=false):void{ var bindingsHost:Object = (((descriptor) && (descriptor.document))) ? descriptor.document : parentDocument; BindingManager.executeBindings(bindingsHost, id, this); if (recurse){ executeChildBindings(recurse); }; } override public function setChildIndex(child:DisplayObject, newIndex:int):void{ var oldIndex:int; var eventOldIndex:int = oldIndex; var eventNewIndex:int = newIndex; if (contentPane){ contentPane.setChildIndex(child, newIndex); if (((_autoLayout) || (forceLayout))){ invalidateDisplayList(); }; } else { oldIndex = super.getChildIndex(child); newIndex = (newIndex + _firstChildIndex); if (newIndex == oldIndex){ return; }; super.setChildIndex(child, newIndex); invalidateDisplayList(); eventOldIndex = (oldIndex - _firstChildIndex); eventNewIndex = (newIndex - _firstChildIndex); }; var event:IndexChangedEvent = new IndexChangedEvent(IndexChangedEvent.CHILD_INDEX_CHANGE); event.relatedObject = child; event.oldIndex = eventOldIndex; event.newIndex = eventNewIndex; dispatchEvent(event); dispatchEvent(new Event("childrenChanged")); } override public function globalToContent(point:Point):Point{ if (contentPane){ return (contentPane.globalToLocal(point)); }; return (globalToLocal(point)); } mx_internal function rawChildren_removeChild(child:DisplayObject):DisplayObject{ var index:int = rawChildren_getChildIndex(child); return (rawChildren_removeChildAt(index)); } mx_internal function rawChildren_setChildIndex(child:DisplayObject, newIndex:int):void{ var oldIndex:int = super.getChildIndex(child); super.setChildIndex(child, newIndex); if ((((oldIndex < _firstChildIndex)) && ((newIndex >= _firstChildIndex)))){ _firstChildIndex--; } else { if ((((oldIndex >= _firstChildIndex)) && ((newIndex <= _firstChildIndex)))){ _firstChildIndex++; }; }; dispatchEvent(new Event("childrenChanged")); } public function set verticalLineScrollSize(value:Number):void{ scrollPropertiesChanged = true; _verticalLineScrollSize = value; invalidateDisplayList(); dispatchEvent(new Event("verticalLineScrollSizeChanged")); } mx_internal function rawChildren_getChildAt(index:int):DisplayObject{ return (super.getChildAt(index)); } public function get creationIndex():int{ return (_creationIndex); } public function get verticalScrollBar():ScrollBar{ return (_verticalScrollBar); } public function get viewMetricsAndPadding():EdgeMetrics{ if (((((_viewMetricsAndPadding) && (((!(horizontalScrollBar)) || ((horizontalScrollPolicy == ScrollPolicy.ON)))))) && (((!(verticalScrollBar)) || ((verticalScrollPolicy == ScrollPolicy.ON)))))){ return (_viewMetricsAndPadding); }; if (!_viewMetricsAndPadding){ _viewMetricsAndPadding = new EdgeMetrics(); }; var o:EdgeMetrics = _viewMetricsAndPadding; var vm:EdgeMetrics = viewMetrics; o.left = (vm.left + getStyle("paddingLeft")); o.right = (vm.right + getStyle("paddingRight")); o.top = (vm.top + getStyle("paddingTop")); o.bottom = (vm.bottom + getStyle("paddingBottom")); return (o); } override public function addChild(child:DisplayObject):DisplayObject{ return (addChildAt(child, numChildren)); } public function set horizontalPageScrollSize(value:Number):void{ scrollPropertiesChanged = true; _horizontalPageScrollSize = value; invalidateDisplayList(); dispatchEvent(new Event("horizontalPageScrollSizeChanged")); } override mx_internal function childAdded(child:DisplayObject):void{ dispatchEvent(new Event("childrenChanged")); var event:ChildExistenceChangedEvent = new ChildExistenceChangedEvent(ChildExistenceChangedEvent.CHILD_ADD); event.relatedObject = child; dispatchEvent(event); child.dispatchEvent(new FlexEvent(FlexEvent.ADD)); super.childAdded(child); } public function set horizontalScrollPolicy(value:String):void{ if (_horizontalScrollPolicy != value){ _horizontalScrollPolicy = value; invalidateDisplayList(); dispatchEvent(new Event("horizontalScrollPolicyChanged")); }; } private function layoutCompleteHandler(event:FlexEvent):void{ UIComponentGlobals.layoutManager.removeEventListener(FlexEvent.UPDATE_COMPLETE, layoutCompleteHandler); forceLayout = false; var needToScrollChildren:Boolean; if (!isNaN(horizontalScrollPositionPending)){ if (horizontalScrollPositionPending < 0){ horizontalScrollPositionPending = 0; } else { if (horizontalScrollPositionPending > maxHorizontalScrollPosition){ horizontalScrollPositionPending = maxHorizontalScrollPosition; }; }; if (((horizontalScrollBar) && (!((horizontalScrollBar.scrollPosition == horizontalScrollPositionPending))))){ _horizontalScrollPosition = horizontalScrollPositionPending; horizontalScrollBar.scrollPosition = horizontalScrollPositionPending; needToScrollChildren = true; }; horizontalScrollPositionPending = NaN; }; if (!isNaN(verticalScrollPositionPending)){ if (verticalScrollPositionPending < 0){ verticalScrollPositionPending = 0; } else { if (verticalScrollPositionPending > maxVerticalScrollPosition){ verticalScrollPositionPending = maxVerticalScrollPosition; }; }; if (((verticalScrollBar) && (!((verticalScrollBar.scrollPosition == verticalScrollPositionPending))))){ _verticalScrollPosition = verticalScrollPositionPending; verticalScrollBar.scrollPosition = verticalScrollPositionPending; needToScrollChildren = true; }; verticalScrollPositionPending = NaN; }; if (needToScrollChildren){ scrollChildren(); }; } public function createComponentsFromDescriptors(recurse:Boolean=true):void{ var component:IFlexDisplayObject; numChildrenBefore = numChildren; createdComponents = []; var n:int = (childDescriptors) ? childDescriptors.length : 0; var i:int; while (i < n) { component = createComponentFromDescriptor(childDescriptors[i], recurse); createdComponents.push(component); i++; }; if ((((creationPolicy == ContainerCreationPolicy.QUEUED)) || ((creationPolicy == ContainerCreationPolicy.NONE)))){ UIComponentGlobals.layoutManager.usePhasedInstantiation = false; }; numChildrenCreated = (numChildren - numChildrenBefore); processedDescriptors = true; } override mx_internal function fillOverlay(overlay:UIComponent, color:uint, targetArea:RoundedRectangle=null):void{ var vm:EdgeMetrics = viewMetrics; var cornerRadius:Number = 0; if (!targetArea){ targetArea = new RoundedRectangle(vm.left, vm.top, ((unscaledWidth - vm.right) - vm.left), ((unscaledHeight - vm.bottom) - vm.top), cornerRadius); }; if (((((((((isNaN(targetArea.x)) || (isNaN(targetArea.y)))) || (isNaN(targetArea.width)))) || (isNaN(targetArea.height)))) || (isNaN(targetArea.cornerRadius)))){ return; }; var g:Graphics = overlay.graphics; g.clear(); g.beginFill(color); g.drawRoundRect(targetArea.x, targetArea.y, targetArea.width, targetArea.height, (targetArea.cornerRadius * 2), (targetArea.cornerRadius * 2)); g.endFill(); } override public function removeEventListener(type:String, listener:Function, useCapture:Boolean=false):void{ super.removeEventListener(type, listener, useCapture); if ((((((((((((((((type == MouseEvent.CLICK)) || ((type == MouseEvent.DOUBLE_CLICK)))) || ((type == MouseEvent.MOUSE_DOWN)))) || ((type == MouseEvent.MOUSE_MOVE)))) || ((type == MouseEvent.MOUSE_OVER)))) || ((type == MouseEvent.MOUSE_OUT)))) || ((type == MouseEvent.MOUSE_UP)))) || ((type == MouseEvent.MOUSE_WHEEL)))){ if ((((mouseEventReferenceCount > 0)) && ((--mouseEventReferenceCount == 0)))){ setStyle("mouseShield", false); setStyle("mouseShieldChildren", false); }; }; } mx_internal function rawChildren_removeChildAt(index:int):DisplayObject{ var child:DisplayObject = super.getChildAt(index); super.removingChild(child); $removeChildAt(index); super.childRemoved(child); if ((((_firstChildIndex < index)) && ((index < (_firstChildIndex + _numChildren))))){ _numChildren--; } else { if ((((_numChildren == 0)) || ((index < _firstChildIndex)))){ _firstChildIndex--; }; }; invalidateSize(); invalidateDisplayList(); dispatchEvent(new Event("childrenChanged")); return (child); } public function set data(value:Object):void{ _data = value; dispatchEvent(new FlexEvent(FlexEvent.DATA_CHANGE)); invalidateDisplayList(); } override public function removeChildAt(index:int):DisplayObject{ return (removeChild(getChildAt(index))); } private function isBorderNeeded():Boolean{ var c:Class = getStyle("borderSkin"); if (c != getDefinitionByName("mx.skins.halo::HaloBorder")){ return (true); }; //unresolved jump var _slot1 = e; return (true); var v:Object = getStyle("borderStyle"); if (v){ if (((!((v == "none"))) || ((((v == "none")) && (getStyle("mouseShield")))))){ return (true); }; }; v = getStyle("backgroundColor"); if (((!((v === null))) && (!((v === ""))))){ return (true); }; v = getStyle("backgroundImage"); return (((!((v == null))) && (!((v == ""))))); } public function set autoLayout(value:Boolean):void{ var p:IInvalidating; _autoLayout = value; if (value){ invalidateSize(); invalidateDisplayList(); p = (parent as IInvalidating); if (p){ p.invalidateSize(); p.invalidateDisplayList(); }; }; } public function get verticalPageScrollSize():Number{ return (_verticalPageScrollSize); } public function getChildren():Array{ var results:Array = []; var n:int = numChildren; var i:int; while (i < n) { results.push(getChildAt(i)); i++; }; return (results); } private function createScrollbarsIfNeeded(bounds:Rectangle):Boolean{ var newScrollableWidth:Number = bounds.right; var newScrollableHeight:Number = bounds.bottom; var newViewableWidth:Number = unscaledWidth; var newViewableHeight:Number = unscaledHeight; var hasNegativeCoords:Boolean = (((bounds.left < 0)) || ((bounds.top < 0))); var vm:EdgeMetrics = viewMetrics; if (scaleX != 1){ newViewableWidth = (newViewableWidth + (1 / Math.abs(scaleX))); }; if (scaleY != 1){ newViewableHeight = (newViewableHeight + (1 / Math.abs(scaleY))); }; newViewableWidth = Math.floor(newViewableWidth); newViewableHeight = Math.floor(newViewableHeight); newScrollableWidth = Math.floor(newScrollableWidth); newScrollableHeight = Math.floor(newScrollableHeight); if (((horizontalScrollBar) && (!((horizontalScrollPolicy == ScrollPolicy.ON))))){ newViewableHeight = (newViewableHeight - horizontalScrollBar.minHeight); }; if (((verticalScrollBar) && (!((verticalScrollPolicy == ScrollPolicy.ON))))){ newViewableWidth = (newViewableWidth - verticalScrollBar.minWidth); }; newViewableWidth = (newViewableWidth - (vm.left + vm.right)); newViewableHeight = (newViewableHeight - (vm.top + vm.bottom)); var needHorizontal = (horizontalScrollPolicy == ScrollPolicy.ON); var needVertical = (verticalScrollPolicy == ScrollPolicy.ON); var needContentPane:Boolean = ((((((((((needHorizontal) || (needVertical))) || (hasNegativeCoords))) || (!((overlay == null))))) || ((vm.left > 0)))) || ((vm.top > 0))); if (newViewableWidth < newScrollableWidth){ needContentPane = true; if ((((((horizontalScrollPolicy == ScrollPolicy.AUTO)) && ((((unscaledHeight - vm.top) - vm.bottom) >= 18)))) && ((((unscaledWidth - vm.left) - vm.right) >= 32)))){ needHorizontal = true; }; }; if (newViewableHeight < newScrollableHeight){ needContentPane = true; if ((((((verticalScrollPolicy == ScrollPolicy.AUTO)) && ((((unscaledWidth - vm.left) - vm.right) >= 18)))) && ((((unscaledHeight - vm.top) - vm.bottom) >= 32)))){ needVertical = true; }; }; if (((((((((((((((needHorizontal) && (needVertical))) && ((horizontalScrollPolicy == ScrollPolicy.AUTO)))) && ((verticalScrollPolicy == ScrollPolicy.AUTO)))) && (horizontalScrollBar))) && (verticalScrollBar))) && (((newViewableWidth + verticalScrollBar.minWidth) >= newScrollableWidth)))) && (((newViewableHeight + horizontalScrollBar.minHeight) >= newScrollableHeight)))){ needVertical = false; needHorizontal = needVertical; } else { if (((((((((needHorizontal) && (!(needVertical)))) && (verticalScrollBar))) && ((horizontalScrollPolicy == ScrollPolicy.AUTO)))) && (((newViewableWidth + verticalScrollBar.minWidth) >= newScrollableWidth)))){ needHorizontal = false; }; }; var changed:Boolean = createOrDestroyScrollbars(needHorizontal, needVertical, needContentPane); if (((((!((scrollableWidth == newScrollableWidth))) || (!((viewableWidth == newViewableWidth))))) || (changed))){ if (horizontalScrollBar){ horizontalScrollBar.setScrollProperties(newViewableWidth, 0, (newScrollableWidth - newViewableWidth), horizontalPageScrollSize); scrollPositionChanged = true; }; viewableWidth = newViewableWidth; scrollableWidth = newScrollableWidth; }; if (((((!((scrollableHeight == newScrollableHeight))) || (!((viewableHeight == newViewableHeight))))) || (changed))){ if (verticalScrollBar){ verticalScrollBar.setScrollProperties(newViewableHeight, 0, (newScrollableHeight - newViewableHeight), verticalPageScrollSize); scrollPositionChanged = true; }; viewableHeight = newViewableHeight; scrollableHeight = newScrollableHeight; }; return (changed); } override mx_internal function removingChild(child:DisplayObject):void{ super.removingChild(child); child.dispatchEvent(new FlexEvent(FlexEvent.REMOVE)); var event:ChildExistenceChangedEvent = new ChildExistenceChangedEvent(ChildExistenceChangedEvent.CHILD_REMOVE); event.relatedObject = child; dispatchEvent(event); } mx_internal function get numChildrenCreated():int{ return (_numChildrenCreated); } mx_internal function rawChildren_addChildAt(child:DisplayObject, index:int):DisplayObject{ if ((((_firstChildIndex < index)) && ((index < ((_firstChildIndex + _numChildren) + 1))))){ _numChildren++; } else { if (index <= _firstChildIndex){ _firstChildIndex++; }; }; super.addingChild(child); $addChildAt(child, index); super.childAdded(child); dispatchEvent(new Event("childrenChanged")); return (child); } private function hasChildMatchingDescriptor(descriptor:UIComponentDescriptor):Boolean{ var i:int; var child:IUIComponent; var id:String = descriptor.id; if (((!((id == null))) && ((document[id] == null)))){ return (false); }; var n:int = numChildren; i = 0; while (i < n) { child = IUIComponent(getChildAt(i)); if ((((child is IDeferredInstantiationUIComponent)) && ((IDeferredInstantiationUIComponent(child).descriptor == descriptor)))){ return (true); }; i++; }; if (childRepeaters){ n = childRepeaters.length; i = 0; while (i < n) { if (IDeferredInstantiationUIComponent(childRepeaters[i]).descriptor == descriptor){ return (true); }; i++; }; }; return (false); } mx_internal function rawChildren_getChildByName(name:String):DisplayObject{ return (super.getChildByName(name)); } override public function validateDisplayList():void{ var vm:EdgeMetrics; var w:Number; var h:Number; var bgColor:Object; var blockerAlpha:Number; var widthToBlock:Number; var heightToBlock:Number; if (((_autoLayout) || (forceLayout))){ doingLayout = true; super.validateDisplayList(); doingLayout = false; } else { layoutChrome(unscaledWidth, unscaledHeight); }; invalidateDisplayListFlag = true; if (createContentPaneAndScrollbarsIfNeeded()){ if (((_autoLayout) || (forceLayout))){ doingLayout = true; super.validateDisplayList(); doingLayout = false; }; createContentPaneAndScrollbarsIfNeeded(); }; if (clampScrollPositions()){ scrollChildren(); }; if (contentPane){ vm = viewMetrics; if (overlay){ overlay.x = 0; overlay.y = 0; overlay.width = unscaledWidth; overlay.height = unscaledHeight; }; if (((horizontalScrollBar) || (verticalScrollBar))){ if (((verticalScrollBar) && ((verticalScrollPolicy == ScrollPolicy.ON)))){ vm.right = (vm.right - verticalScrollBar.minWidth); }; if (((horizontalScrollBar) && ((horizontalScrollPolicy == ScrollPolicy.ON)))){ vm.bottom = (vm.bottom - horizontalScrollBar.minHeight); }; if (horizontalScrollBar){ w = ((unscaledWidth - vm.left) - vm.right); if (verticalScrollBar){ w = (w - verticalScrollBar.minWidth); }; horizontalScrollBar.setActualSize(w, horizontalScrollBar.minHeight); horizontalScrollBar.move(vm.left, ((unscaledHeight - vm.bottom) - horizontalScrollBar.minHeight)); }; if (verticalScrollBar){ h = ((unscaledHeight - vm.top) - vm.bottom); if (horizontalScrollBar){ h = (h - horizontalScrollBar.minHeight); }; verticalScrollBar.setActualSize(verticalScrollBar.minWidth, h); verticalScrollBar.move(((unscaledWidth - vm.right) - verticalScrollBar.minWidth), vm.top); }; if (whiteBox){ whiteBox.x = verticalScrollBar.x; whiteBox.y = horizontalScrollBar.y; }; }; contentPane.x = vm.left; contentPane.y = vm.top; if (focusPane){ focusPane.x = vm.left; focusPane.y = vm.top; }; scrollChildren(); }; invalidateDisplayListFlag = false; if (blocker){ vm = viewMetrics; bgColor = (enabled) ? null : getStyle("backgroundDisabledColor"); if ((((bgColor === null)) || (isNaN(Number(bgColor))))){ bgColor = getStyle("backgroundColor"); }; if ((((bgColor === null)) || (isNaN(Number(bgColor))))){ bgColor = 0xFFFFFF; }; blockerAlpha = getStyle("disabledOverlayAlpha"); if (isNaN(blockerAlpha)){ blockerAlpha = 0.6; }; blocker.x = vm.left; blocker.y = vm.top; widthToBlock = (unscaledWidth - (vm.left + vm.right)); heightToBlock = (unscaledHeight - (vm.top + vm.bottom)); blocker.graphics.clear(); blocker.graphics.beginFill(uint(bgColor), blockerAlpha); blocker.graphics.drawRect(0, 0, widthToBlock, heightToBlock); blocker.graphics.endFill(); rawChildren.setChildIndex(blocker, (rawChildren.numChildren - 1)); }; } public function set horizontalLineScrollSize(value:Number):void{ scrollPropertiesChanged = true; _horizontalLineScrollSize = value; invalidateDisplayList(); dispatchEvent(new Event("horizontalLineScrollSizeChanged")); } override public function initialize():void{ var props:*; var message:String; if (((((isDocument) && (documentDescriptor))) && (!(processedDescriptors)))){ props = documentDescriptor.properties; if (((props) && (props.childDescriptors))){ if (_childDescriptors){ message = resourceManager.getString("core", "multipleChildSets_ClassAndInstance"); throw (new Error(message)); }; _childDescriptors = props.childDescriptors; }; }; super.initialize(); } mx_internal function set forceClipping(value:Boolean):void{ if (_clipContent){ if (value){ _forceClippingCount++; } else { _forceClippingCount--; }; createContentPane(); scrollChildren(); }; } public function removeAllChildren():void{ while (numChildren > 0) { removeChildAt(0); }; } override public function contentToGlobal(point:Point):Point{ if (contentPane){ return (contentPane.localToGlobal(point)); }; return (localToGlobal(point)); } public function get horizontalPageScrollSize():Number{ return (_horizontalPageScrollSize); } override mx_internal function childRemoved(child:DisplayObject):void{ super.childRemoved(child); invalidateSize(); invalidateDisplayList(); if (!contentPane){ _numChildren--; if (_numChildren == 0){ _firstChildIndex = super.numChildren; }; }; if (((contentPane) && (!(autoLayout)))){ forceLayout = true; UIComponentGlobals.layoutManager.addEventListener(FlexEvent.UPDATE_COMPLETE, layoutCompleteHandler, false, 0, true); }; dispatchEvent(new Event("childrenChanged")); } public function set defaultButton(value:IFlexDisplayObject):void{ _defaultButton = value; ContainerGlobals.focusedContainer = null; } public function get data():Object{ return (_data); } override public function get numChildren():int{ return ((contentPane) ? contentPane.numChildren : _numChildren); } public function get autoLayout():Boolean{ return (_autoLayout); } override public function styleChanged(styleProp:String):void{ var horizontalScrollBarStyleName:String; var verticalScrollBarStyleName:String; var allStyles:Boolean = (((styleProp == null)) || ((styleProp == "styleName"))); if (((allStyles) || (StyleManager.isSizeInvalidatingStyle(styleProp)))){ invalidateDisplayList(); }; if (((allStyles) || ((styleProp == "borderSkin")))){ if (border){ rawChildren.removeChild(DisplayObject(border)); border = null; createBorder(); }; }; if (((((((((((allStyles) || ((styleProp == "borderStyle")))) || ((styleProp == "backgroundColor")))) || ((styleProp == "backgroundImage")))) || ((styleProp == "mouseShield")))) || ((styleProp == "mouseShieldChildren")))){ createBorder(); }; super.styleChanged(styleProp); if (((allStyles) || (StyleManager.isSizeInvalidatingStyle(styleProp)))){ invalidateViewMetricsAndPadding(); }; if (((allStyles) || ((styleProp == "horizontalScrollBarStyleName")))){ if (((horizontalScrollBar) && ((horizontalScrollBar is ISimpleStyleClient)))){ horizontalScrollBarStyleName = getStyle("horizontalScrollBarStyleName"); ISimpleStyleClient(horizontalScrollBar).styleName = horizontalScrollBarStyleName; }; }; if (((allStyles) || ((styleProp == "verticalScrollBarStyleName")))){ if (((verticalScrollBar) && ((verticalScrollBar is ISimpleStyleClient)))){ verticalScrollBarStyleName = getStyle("verticalScrollBarStyleName"); ISimpleStyleClient(verticalScrollBar).styleName = verticalScrollBarStyleName; }; }; } override protected function commitProperties():void{ var styleProp:String; super.commitProperties(); if (changedStyles){ styleProp = ((changedStyles == MULTIPLE_PROPERTIES)) ? null : changedStyles; super.notifyStyleChangeInChildren(styleProp, true); changedStyles = null; }; createOrDestroyBlocker(); } override public function finishPrint(obj:Object, target:IFlexDisplayObject):void{ if (obj){ contentPane.scrollRect = Rectangle(obj); }; super.finishPrint(obj, target); } public function get maxHorizontalScrollPosition():Number{ return ((horizontalScrollBar) ? horizontalScrollBar.maxScrollPosition : Math.max((scrollableWidth - viewableWidth), 0)); } public function set creationPolicy(value:String):void{ _creationPolicy = value; setActualCreationPolicies(value); } public function set label(value:String):void{ _label = value; dispatchEvent(new Event("labelChanged")); } private function clampScrollPositions():Boolean{ var changed:Boolean; if (_horizontalScrollPosition < 0){ _horizontalScrollPosition = 0; changed = true; } else { if (_horizontalScrollPosition > maxHorizontalScrollPosition){ _horizontalScrollPosition = maxHorizontalScrollPosition; changed = true; }; }; if (((horizontalScrollBar) && (!((horizontalScrollBar.scrollPosition == _horizontalScrollPosition))))){ horizontalScrollBar.scrollPosition = _horizontalScrollPosition; }; if (_verticalScrollPosition < 0){ _verticalScrollPosition = 0; changed = true; } else { if (_verticalScrollPosition > maxVerticalScrollPosition){ _verticalScrollPosition = maxVerticalScrollPosition; changed = true; }; }; if (((verticalScrollBar) && (!((verticalScrollBar.scrollPosition == _verticalScrollPosition))))){ verticalScrollBar.scrollPosition = _verticalScrollPosition; }; return (changed); } override public function prepareToPrint(target:IFlexDisplayObject):Object{ var rect:Rectangle = (((contentPane) && (contentPane.scrollRect))) ? contentPane.scrollRect : null; if (rect){ contentPane.scrollRect = null; }; super.prepareToPrint(target); return (rect); } mx_internal function get firstChildIndex():int{ return (_firstChildIndex); } mx_internal function rawChildren_addChild(child:DisplayObject):DisplayObject{ if (_numChildren == 0){ _firstChildIndex++; }; super.addingChild(child); $addChild(child); super.childAdded(child); dispatchEvent(new Event("childrenChanged")); return (child); } override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void{ var backgroundColor:Object; var backgroundAlpha:Number; super.updateDisplayList(unscaledWidth, unscaledHeight); layoutChrome(unscaledWidth, unscaledHeight); if (scrollPositionChanged){ clampScrollPositions(); scrollChildren(); scrollPositionChanged = false; }; if (scrollPropertiesChanged){ if (horizontalScrollBar){ horizontalScrollBar.lineScrollSize = horizontalLineScrollSize; horizontalScrollBar.pageScrollSize = horizontalPageScrollSize; }; if (verticalScrollBar){ verticalScrollBar.lineScrollSize = verticalLineScrollSize; verticalScrollBar.pageScrollSize = verticalPageScrollSize; }; scrollPropertiesChanged = false; }; if (((contentPane) && (contentPane.scrollRect))){ backgroundColor = (enabled) ? null : getStyle("backgroundDisabledColor"); if ((((backgroundColor === null)) || (isNaN(Number(backgroundColor))))){ backgroundColor = getStyle("backgroundColor"); }; backgroundAlpha = getStyle("backgroundAlpha"); if (((((((!(_clipContent)) || (isNaN(Number(backgroundColor))))) || ((backgroundColor === "")))) || (((!(((horizontalScrollBar) || (verticalScrollBar)))) && (!(cacheAsBitmap)))))){ backgroundColor = null; } else { if (((getStyle("backgroundImage")) || (getStyle("background")))){ backgroundColor = null; } else { if (backgroundAlpha != 1){ backgroundColor = null; }; }; }; contentPane.opaqueBackground = backgroundColor; contentPane.cacheAsBitmap = !((backgroundColor == null)); }; } override mx_internal function addingChild(child:DisplayObject):void{ var uiChild:IUIComponent = IUIComponent(child); super.addingChild(child); invalidateSize(); invalidateDisplayList(); if (!contentPane){ if (_numChildren == 0){ _firstChildIndex = super.numChildren; }; _numChildren++; }; if (((contentPane) && (!(autoLayout)))){ forceLayout = true; UIComponentGlobals.layoutManager.addEventListener(FlexEvent.UPDATE_COMPLETE, layoutCompleteHandler, false, 0, true); }; } mx_internal function setActualCreationPolicies(policy:String):void{ var child:IFlexDisplayObject; var childContainer:Container; actualCreationPolicy = policy; var childPolicy:String = policy; if (policy == ContainerCreationPolicy.QUEUED){ childPolicy = ContainerCreationPolicy.AUTO; }; var n:int = numChildren; var i:int; while (i < n) { child = IFlexDisplayObject(getChildAt(i)); if ((child is Container)){ childContainer = Container(child); if (childContainer.creationPolicy == null){ childContainer.setActualCreationPolicies(childPolicy); }; }; i++; }; } } }//package mx.core
Section 72
//ContainerCreationPolicy (mx.core.ContainerCreationPolicy) package mx.core { public final class ContainerCreationPolicy { public static const ALL:String = "all"; public static const QUEUED:String = "queued"; public static const NONE:String = "none"; mx_internal static const VERSION:String = "3.2.0.3958"; public static const AUTO:String = "auto"; public function ContainerCreationPolicy(){ super(); } } }//package mx.core
Section 73
//ContainerGlobals (mx.core.ContainerGlobals) package mx.core { import flash.display.*; import mx.managers.*; public class ContainerGlobals { public static var focusedContainer:InteractiveObject; public function ContainerGlobals(){ super(); } public static function checkFocus(oldObj:InteractiveObject, newObj:InteractiveObject):void{ var fm:IFocusManager; var defButton:IButton; var objParent:InteractiveObject = newObj; var currObj:InteractiveObject = newObj; var lastUIComp:IUIComponent; if (((!((newObj == null))) && ((oldObj == newObj)))){ return; }; while (currObj) { if (currObj.parent){ objParent = currObj.parent; } else { objParent = null; }; if ((currObj is IUIComponent)){ lastUIComp = IUIComponent(currObj); }; currObj = objParent; if (((((currObj) && ((currObj is IContainer)))) && (IContainer(currObj).defaultButton))){ break; }; }; if (((!((ContainerGlobals.focusedContainer == currObj))) || ((((ContainerGlobals.focusedContainer == null)) && ((currObj == null)))))){ if (!currObj){ currObj = InteractiveObject(lastUIComp); }; if (((currObj) && ((currObj is IContainer)))){ fm = IContainer(currObj).focusManager; if (!fm){ return; }; defButton = (IContainer(currObj).defaultButton as IButton); if (defButton){ ContainerGlobals.focusedContainer = InteractiveObject(currObj); fm.defaultButton = (defButton as IButton); } else { ContainerGlobals.focusedContainer = InteractiveObject(currObj); fm.defaultButton = null; }; }; }; } } }//package mx.core
Section 74
//ContainerLayout (mx.core.ContainerLayout) package mx.core { public final class ContainerLayout { public static const HORIZONTAL:String = "horizontal"; public static const VERTICAL:String = "vertical"; public static const ABSOLUTE:String = "absolute"; mx_internal static const VERSION:String = "3.2.0.3958"; public function ContainerLayout(){ super(); } } }//package mx.core
Section 75
//ContainerRawChildrenList (mx.core.ContainerRawChildrenList) package mx.core { import flash.display.*; import flash.geom.*; public class ContainerRawChildrenList implements IChildList { private var owner:Container; mx_internal static const VERSION:String = "3.2.0.3958"; public function ContainerRawChildrenList(owner:Container){ super(); this.owner = owner; } public function addChild(child:DisplayObject):DisplayObject{ return (owner.mx_internal::rawChildren_addChild(child)); } public function getChildIndex(child:DisplayObject):int{ return (owner.mx_internal::rawChildren_getChildIndex(child)); } public function setChildIndex(child:DisplayObject, newIndex:int):void{ var _local3 = owner; _local3.mx_internal::rawChildren_setChildIndex(child, newIndex); } public function getChildByName(name:String):DisplayObject{ return (owner.mx_internal::rawChildren_getChildByName(name)); } public function removeChildAt(index:int):DisplayObject{ return (owner.mx_internal::rawChildren_removeChildAt(index)); } public function get numChildren():int{ return (owner.mx_internal::$numChildren); } public function addChildAt(child:DisplayObject, index:int):DisplayObject{ return (owner.mx_internal::rawChildren_addChildAt(child, index)); } public function getObjectsUnderPoint(point:Point):Array{ return (owner.mx_internal::rawChildren_getObjectsUnderPoint(point)); } public function contains(child:DisplayObject):Boolean{ return (owner.mx_internal::rawChildren_contains(child)); } public function removeChild(child:DisplayObject):DisplayObject{ return (owner.mx_internal::rawChildren_removeChild(child)); } public function getChildAt(index:int):DisplayObject{ return (owner.mx_internal::rawChildren_getChildAt(index)); } } }//package mx.core
Section 76
//DragSource (mx.core.DragSource) package mx.core { public class DragSource { private var formatHandlers:Object; private var dataHolder:Object; private var _formats:Array; mx_internal static const VERSION:String = "3.2.0.3958"; public function DragSource(){ dataHolder = {}; formatHandlers = {}; _formats = []; super(); } public function hasFormat(format:String):Boolean{ var n:int = _formats.length; var i:int; while (i < n) { if (_formats[i] == format){ return (true); }; i++; }; return (false); } public function addData(data:Object, format:String):void{ _formats.push(format); dataHolder[format] = data; } public function dataForFormat(format:String):Object{ var data:Object = dataHolder[format]; if (data){ return (data); }; if (formatHandlers[format]){ return (formatHandlers[format]()); }; return (null); } public function addHandler(handler:Function, format:String):void{ _formats.push(format); formatHandlers[format] = handler; } public function get formats():Array{ return (_formats); } } }//package mx.core
Section 77
//EdgeMetrics (mx.core.EdgeMetrics) package mx.core { public class EdgeMetrics { public var top:Number; public var left:Number; public var bottom:Number; public var right:Number; mx_internal static const VERSION:String = "3.2.0.3958"; public static const EMPTY:EdgeMetrics = new EdgeMetrics(0, 0, 0, 0); ; public function EdgeMetrics(left:Number=0, top:Number=0, right:Number=0, bottom:Number=0){ super(); this.left = left; this.top = top; this.right = right; this.bottom = bottom; } public function clone():EdgeMetrics{ return (new EdgeMetrics(left, top, right, bottom)); } } }//package mx.core
Section 78
//EmbeddedFont (mx.core.EmbeddedFont) package mx.core { public class EmbeddedFont { private var _fontName:String; private var _fontStyle:String; mx_internal static const VERSION:String = "3.2.0.3958"; public function EmbeddedFont(fontName:String, bold:Boolean, italic:Boolean){ super(); _fontName = fontName; _fontStyle = EmbeddedFontRegistry.getFontStyle(bold, italic); } public function get fontStyle():String{ return (_fontStyle); } public function get fontName():String{ return (_fontName); } } }//package mx.core
Section 79
//EmbeddedFontRegistry (mx.core.EmbeddedFontRegistry) package mx.core { import flash.text.*; import flash.utils.*; public class EmbeddedFontRegistry implements IEmbeddedFontRegistry { mx_internal static const VERSION:String = "3.2.0.3958"; private static var fonts:Object = {}; private static var instance:IEmbeddedFontRegistry; public function EmbeddedFontRegistry(){ super(); } public function getAssociatedModuleFactory(font:EmbeddedFont, defaultModuleFactory:IFlexModuleFactory):IFlexModuleFactory{ var found:int; var iter:Object; var fontDictionary:Dictionary = fonts[createFontKey(font)]; if (fontDictionary){ found = fontDictionary[defaultModuleFactory]; if (found){ return (defaultModuleFactory); }; for (iter in fontDictionary) { return ((iter as IFlexModuleFactory)); }; }; return (null); } public function deregisterFont(font:EmbeddedFont, moduleFactory:IFlexModuleFactory):void{ var count:int; var obj:Object; var fontKey:String = createFontKey(font); var fontDictionary:Dictionary = fonts[fontKey]; if (fontDictionary != null){ delete fontDictionary[moduleFactory]; count = 0; for (obj in fontDictionary) { count++; }; if (count == 0){ delete fonts[fontKey]; }; }; } public function getFonts():Array{ var key:String; var fontArray:Array = []; for (key in fonts) { fontArray.push(createEmbeddedFont(key)); }; return (fontArray); } public function registerFont(font:EmbeddedFont, moduleFactory:IFlexModuleFactory):void{ var fontKey:String = createFontKey(font); var fontDictionary:Dictionary = fonts[fontKey]; if (!fontDictionary){ fontDictionary = new Dictionary(true); fonts[fontKey] = fontDictionary; }; fontDictionary[moduleFactory] = 1; } public static function registerFonts(fonts:Object, moduleFactory:IFlexModuleFactory):void{ var f:Object; var fontObj:Object; var fieldIter:String; var bold:Boolean; var italic:Boolean; var fontRegistry:IEmbeddedFontRegistry = IEmbeddedFontRegistry(Singleton.getInstance("mx.core::IEmbeddedFontRegistry")); for (f in fonts) { fontObj = fonts[f]; for (fieldIter in fontObj) { if (fontObj[fieldIter] == false){ } else { if (fieldIter == "regular"){ bold = false; italic = false; } else { if (fieldIter == "boldItalic"){ bold = true; italic = true; } else { if (fieldIter == "bold"){ bold = true; italic = false; } else { if (fieldIter == "italic"){ bold = false; italic = true; }; }; }; }; fontRegistry.registerFont(new EmbeddedFont(String(f), bold, italic), moduleFactory); }; }; }; } public static function getInstance():IEmbeddedFontRegistry{ if (!instance){ instance = new (EmbeddedFontRegistry); }; return (instance); } public static function getFontStyle(bold:Boolean, italic:Boolean):String{ var style:String = FontStyle.REGULAR; if (((bold) && (italic))){ style = FontStyle.BOLD_ITALIC; } else { if (bold){ style = FontStyle.BOLD; } else { if (italic){ style = FontStyle.ITALIC; }; }; }; return (style); } private static function createFontKey(font:EmbeddedFont):String{ return ((font.fontName + font.fontStyle)); } private static function createEmbeddedFont(key:String):EmbeddedFont{ var fontName:String; var fontBold:Boolean; var fontItalic:Boolean; var index:int = endsWith(key, FontStyle.REGULAR); if (index > 0){ fontName = key.substring(0, index); return (new EmbeddedFont(fontName, false, false)); }; index = endsWith(key, FontStyle.BOLD); if (index > 0){ fontName = key.substring(0, index); return (new EmbeddedFont(fontName, true, false)); }; index = endsWith(key, FontStyle.BOLD_ITALIC); if (index > 0){ fontName = key.substring(0, index); return (new EmbeddedFont(fontName, true, true)); }; index = endsWith(key, FontStyle.ITALIC); if (index > 0){ fontName = key.substring(0, index); return (new EmbeddedFont(fontName, false, true)); }; return (new EmbeddedFont("", false, false)); } private static function endsWith(s:String, match:String):int{ var index:int = s.lastIndexOf(match); if ((((index > 0)) && (((index + match.length) == s.length)))){ return (index); }; return (-1); } } }//package mx.core
Section 80
//EventPriority (mx.core.EventPriority) package mx.core { public final class EventPriority { public static const DEFAULT:int = 0; public static const BINDING:int = 100; public static const DEFAULT_HANDLER:int = -50; public static const EFFECT:int = -100; public static const CURSOR_MANAGEMENT:int = 200; mx_internal static const VERSION:String = "3.2.0.3958"; public function EventPriority(){ super(); } } }//package mx.core
Section 81
//FlexBitmap (mx.core.FlexBitmap) package mx.core { import flash.display.*; import mx.utils.*; public class FlexBitmap extends Bitmap { mx_internal static const VERSION:String = "3.2.0.3958"; public function FlexBitmap(bitmapData:BitmapData=null, pixelSnapping:String="auto", smoothing:Boolean=false){ var bitmapData = bitmapData; var pixelSnapping = pixelSnapping; var smoothing = smoothing; super(bitmapData, pixelSnapping, smoothing); name = NameUtil.createUniqueName(this); //unresolved jump var _slot1 = e; } override public function toString():String{ return (NameUtil.displayObjectToString(this)); } } }//package mx.core
Section 82
//FlexLoader (mx.core.FlexLoader) package mx.core { import flash.display.*; import mx.utils.*; public class FlexLoader extends Loader { mx_internal static const VERSION:String = "3.2.0.3958"; public function FlexLoader(){ super(); name = NameUtil.createUniqueName(this); //unresolved jump var _slot1 = e; } override public function toString():String{ return (NameUtil.displayObjectToString(this)); } } }//package mx.core
Section 83
//FlexMovieClip (mx.core.FlexMovieClip) package mx.core { import flash.display.*; import mx.utils.*; public class FlexMovieClip extends MovieClip { mx_internal static const VERSION:String = "3.2.0.3958"; public function FlexMovieClip(){ super(); name = NameUtil.createUniqueName(this); //unresolved jump var _slot1 = e; } override public function toString():String{ return (NameUtil.displayObjectToString(this)); } } }//package mx.core
Section 84
//FlexShape (mx.core.FlexShape) package mx.core { import flash.display.*; import mx.utils.*; public class FlexShape extends Shape { mx_internal static const VERSION:String = "3.2.0.3958"; public function FlexShape(){ super(); name = NameUtil.createUniqueName(this); //unresolved jump var _slot1 = e; } override public function toString():String{ return (NameUtil.displayObjectToString(this)); } } }//package mx.core
Section 85
//FlexSprite (mx.core.FlexSprite) package mx.core { import flash.display.*; import mx.utils.*; public class FlexSprite extends Sprite { mx_internal static const VERSION:String = "3.2.0.3958"; public function FlexSprite(){ super(); name = NameUtil.createUniqueName(this); //unresolved jump var _slot1 = e; } override public function toString():String{ return (NameUtil.displayObjectToString(this)); } } }//package mx.core
Section 86
//FlexTextField (mx.core.FlexTextField) package mx.core { import flash.text.*; import mx.utils.*; public class FlexTextField extends TextField { mx_internal static const VERSION:String = "3.2.0.3958"; public function FlexTextField(){ super(); name = NameUtil.createUniqueName(this); //unresolved jump var _slot1 = e; } override public function toString():String{ return (NameUtil.displayObjectToString(this)); } } }//package mx.core
Section 87
//FlexVersion (mx.core.FlexVersion) package mx.core { import mx.resources.*; public class FlexVersion { public static const VERSION_2_0_1:uint = 33554433; public static const CURRENT_VERSION:uint = 50331648; public static const VERSION_3_0:uint = 50331648; public static const VERSION_2_0:uint = 33554432; public static const VERSION_ALREADY_READ:String = "versionAlreadyRead"; public static const VERSION_ALREADY_SET:String = "versionAlreadySet"; mx_internal static const VERSION:String = "3.2.0.3958"; private static var compatibilityVersionChanged:Boolean = false; private static var _compatibilityErrorFunction:Function; private static var _compatibilityVersion:uint = 50331648; private static var compatibilityVersionRead:Boolean = false; public function FlexVersion(){ super(); } mx_internal static function changeCompatibilityVersionString(value:String):void{ var pieces:Array = value.split("."); var major:uint = parseInt(pieces[0]); var minor:uint = parseInt(pieces[1]); var update:uint = parseInt(pieces[2]); _compatibilityVersion = (((major << 24) + (minor << 16)) + update); } public static function set compatibilityVersion(value:uint):void{ var s:String; if (value == _compatibilityVersion){ return; }; if (compatibilityVersionChanged){ if (compatibilityErrorFunction == null){ s = ResourceManager.getInstance().getString("core", VERSION_ALREADY_SET); throw (new Error(s)); }; compatibilityErrorFunction(value, VERSION_ALREADY_SET); }; if (compatibilityVersionRead){ if (compatibilityErrorFunction == null){ s = ResourceManager.getInstance().getString("core", VERSION_ALREADY_READ); throw (new Error(s)); }; compatibilityErrorFunction(value, VERSION_ALREADY_READ); }; _compatibilityVersion = value; compatibilityVersionChanged = true; } public static function get compatibilityVersion():uint{ compatibilityVersionRead = true; return (_compatibilityVersion); } public static function set compatibilityErrorFunction(value:Function):void{ _compatibilityErrorFunction = value; } public static function set compatibilityVersionString(value:String):void{ var pieces:Array = value.split("."); var major:uint = parseInt(pieces[0]); var minor:uint = parseInt(pieces[1]); var update:uint = parseInt(pieces[2]); compatibilityVersion = (((major << 24) + (minor << 16)) + update); } public static function get compatibilityErrorFunction():Function{ return (_compatibilityErrorFunction); } public static function get compatibilityVersionString():String{ var major:uint = ((compatibilityVersion >> 24) & 0xFF); var minor:uint = ((compatibilityVersion >> 16) & 0xFF); var update:uint = (compatibilityVersion & 0xFFFF); return (((((major.toString() + ".") + minor.toString()) + ".") + update.toString())); } } }//package mx.core
Section 88
//IBorder (mx.core.IBorder) package mx.core { public interface IBorder { function get borderMetrics():EdgeMetrics; } }//package mx.core
Section 89
//IButton (mx.core.IButton) package mx.core { public interface IButton extends IUIComponent { function get emphasized():Boolean; function set emphasized(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\core;IButton.as:Boolean):void; function callLater(_arg1:Function, _arg2:Array=null):void; } }//package mx.core
Section 90
//IChildList (mx.core.IChildList) package mx.core { import flash.display.*; import flash.geom.*; public interface IChildList { function get numChildren():int; function removeChild(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\core;IChildList.as:DisplayObject):DisplayObject; function getChildByName(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\core;IChildList.as:String):DisplayObject; function removeChildAt(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\core;IChildList.as:int):DisplayObject; function getChildIndex(:DisplayObject):int; function addChildAt(_arg1:DisplayObject, _arg2:int):DisplayObject; function getObjectsUnderPoint(child:Point):Array; function setChildIndex(_arg1:DisplayObject, _arg2:int):void; function getChildAt(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\core;IChildList.as:int):DisplayObject; function addChild(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\core;IChildList.as:DisplayObject):DisplayObject; function contains(flash.display:DisplayObject):Boolean; } }//package mx.core
Section 91
//IConstraintClient (mx.core.IConstraintClient) package mx.core { public interface IConstraintClient { function setConstraintValue(_arg1:String, _arg2):void; function getConstraintValue(*:String); } }//package mx.core
Section 92
//IContainer (mx.core.IContainer) package mx.core { import flash.display.*; import flash.geom.*; import flash.media.*; import flash.text.*; import mx.managers.*; public interface IContainer extends IUIComponent { function set hitArea(mx.core:IContainer/mx.core:IContainer:graphics/get:Sprite):void; function swapChildrenAt(_arg1:int, _arg2:int):void; function getChildByName(Graphics:String):DisplayObject; function get doubleClickEnabled():Boolean; function get graphics():Graphics; function get useHandCursor():Boolean; function addChildAt(_arg1:DisplayObject, _arg2:int):DisplayObject; function set mouseChildren(mx.core:IContainer/mx.core:IContainer:graphics/get:Boolean):void; function set creatingContentPane(mx.core:IContainer/mx.core:IContainer:graphics/get:Boolean):void; function get textSnapshot():TextSnapshot; function getChildIndex(value:DisplayObject):int; function set doubleClickEnabled(mx.core:IContainer/mx.core:IContainer:graphics/get:Boolean):void; function getObjectsUnderPoint(lockCenter:Point):Array; function get creatingContentPane():Boolean; function setChildIndex(_arg1:DisplayObject, _arg2:int):void; function get soundTransform():SoundTransform; function set useHandCursor(mx.core:IContainer/mx.core:IContainer:graphics/get:Boolean):void; function get numChildren():int; function contains(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\core;ISpriteInterface.as:DisplayObject):Boolean; function get verticalScrollPosition():Number; function set defaultButton(mx.core:IContainer/mx.core:IContainer:graphics/get:IFlexDisplayObject):void; function swapChildren(_arg1:DisplayObject, _arg2:DisplayObject):void; function set horizontalScrollPosition(mx.core:IContainer/mx.core:IContainer:graphics/get:Number):void; function get focusManager():IFocusManager; function startDrag(_arg1:Boolean=false, _arg2:Rectangle=null):void; function set mouseEnabled(mx.core:IContainer/mx.core:IContainer:graphics/get:Boolean):void; function getChildAt(Graphics:int):DisplayObject; function set soundTransform(mx.core:IContainer/mx.core:IContainer:graphics/get:SoundTransform):void; function get tabChildren():Boolean; function get tabIndex():int; function set focusRect(mx.core:IContainer/mx.core:IContainer:graphics/get:Object):void; function get hitArea():Sprite; function get mouseChildren():Boolean; function removeChildAt(Graphics:int):DisplayObject; function get defaultButton():IFlexDisplayObject; function stopDrag():void; function set tabEnabled(mx.core:IContainer/mx.core:IContainer:graphics/get:Boolean):void; function get horizontalScrollPosition():Number; function get focusRect():Object; function get viewMetrics():EdgeMetrics; function set verticalScrollPosition(mx.core:IContainer/mx.core:IContainer:graphics/get:Number):void; function get dropTarget():DisplayObject; function get mouseEnabled():Boolean; function set tabChildren(mx.core:IContainer/mx.core:IContainer:graphics/get:Boolean):void; function set buttonMode(mx.core:IContainer/mx.core:IContainer:graphics/get:Boolean):void; function get tabEnabled():Boolean; function get buttonMode():Boolean; function removeChild(Graphics:DisplayObject):DisplayObject; function set tabIndex(mx.core:IContainer/mx.core:IContainer:graphics/get:int):void; function addChild(Graphics:DisplayObject):DisplayObject; function areInaccessibleObjectsUnderPoint(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\core;ISpriteInterface.as:Point):Boolean; } }//package mx.core
Section 93
//IDataRenderer (mx.core.IDataRenderer) package mx.core { public interface IDataRenderer { function get data():Object; function set data(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\core;IDataRenderer.as:Object):void; } }//package mx.core
Section 94
//IDeferredInstantiationUIComponent (mx.core.IDeferredInstantiationUIComponent) package mx.core { public interface IDeferredInstantiationUIComponent extends IUIComponent { function set cacheHeuristic(:Boolean):void; function createReferenceOnParentDocument(:IFlexDisplayObject):void; function get cachePolicy():String; function set id(:String):void; function registerEffects(:Array):void; function executeBindings(:Boolean=false):void; function get id():String; function deleteReferenceOnParentDocument(:IFlexDisplayObject):void; function set descriptor(:UIComponentDescriptor):void; function get descriptor():UIComponentDescriptor; } }//package mx.core
Section 95
//IEmbeddedFontRegistry (mx.core.IEmbeddedFontRegistry) package mx.core { public interface IEmbeddedFontRegistry { function getAssociatedModuleFactory(_arg1:EmbeddedFont, _arg2:IFlexModuleFactory):IFlexModuleFactory; function registerFont(_arg1:EmbeddedFont, _arg2:IFlexModuleFactory):void; function deregisterFont(_arg1:EmbeddedFont, _arg2:IFlexModuleFactory):void; function getFonts():Array; } }//package mx.core
Section 96
//IFlexAsset (mx.core.IFlexAsset) package mx.core { public interface IFlexAsset { } }//package mx.core
Section 97
//IFlexDisplayObject (mx.core.IFlexDisplayObject) package mx.core { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.accessibility.*; public interface IFlexDisplayObject extends IBitmapDrawable, IEventDispatcher { function get visible():Boolean; function get rotation():Number; function localToGlobal(void:Point):Point; function get name():String; function set width(flash.display:Number):void; function get measuredHeight():Number; function get blendMode():String; function get scale9Grid():Rectangle; function set name(flash.display:String):void; function set scaleX(flash.display:Number):void; function set scaleY(flash.display:Number):void; function get measuredWidth():Number; function get accessibilityProperties():AccessibilityProperties; function set scrollRect(flash.display:Rectangle):void; function get cacheAsBitmap():Boolean; function globalToLocal(void:Point):Point; function get height():Number; function set blendMode(flash.display:String):void; function get parent():DisplayObjectContainer; function getBounds(String:DisplayObject):Rectangle; function get opaqueBackground():Object; function set scale9Grid(flash.display:Rectangle):void; function setActualSize(_arg1:Number, _arg2:Number):void; function set alpha(flash.display:Number):void; function set accessibilityProperties(flash.display:AccessibilityProperties):void; function get width():Number; function hitTestPoint(_arg1:Number, _arg2:Number, _arg3:Boolean=false):Boolean; function set cacheAsBitmap(flash.display:Boolean):void; function get scaleX():Number; function get scaleY():Number; function get scrollRect():Rectangle; function get mouseX():Number; function get mouseY():Number; function set height(flash.display:Number):void; function set mask(flash.display:DisplayObject):void; function getRect(String:DisplayObject):Rectangle; function get alpha():Number; function set transform(flash.display:Transform):void; function move(_arg1:Number, _arg2:Number):void; function get loaderInfo():LoaderInfo; function get root():DisplayObject; function hitTestObject(mx.core:IFlexDisplayObject/mx.core:IFlexDisplayObject:stage/get:DisplayObject):Boolean; function set opaqueBackground(flash.display:Object):void; function set visible(flash.display:Boolean):void; function get mask():DisplayObject; function set x(flash.display:Number):void; function set y(flash.display:Number):void; function get transform():Transform; function set filters(flash.display:Array):void; function get x():Number; function get y():Number; function get filters():Array; function set rotation(flash.display:Number):void; function get stage():Stage; } }//package mx.core
Section 98
//IFlexModule (mx.core.IFlexModule) package mx.core { public interface IFlexModule { function set moduleFactory(:IFlexModuleFactory):void; function get moduleFactory():IFlexModuleFactory; } }//package mx.core
Section 99
//IFlexModuleFactory (mx.core.IFlexModuleFactory) package mx.core { public interface IFlexModuleFactory { function create(... _args):Object; function info():Object; } }//package mx.core
Section 100
//IFontContextComponent (mx.core.IFontContextComponent) package mx.core { public interface IFontContextComponent { function get fontContext():IFlexModuleFactory; function set fontContext(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\core;IFontContextComponent.as:IFlexModuleFactory):void; } }//package mx.core
Section 101
//IIMESupport (mx.core.IIMESupport) package mx.core { public interface IIMESupport { function set imeMode(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\core;IIMESupport.as:String):void; function get imeMode():String; } }//package mx.core
Section 102
//IInvalidating (mx.core.IInvalidating) package mx.core { public interface IInvalidating { function validateNow():void; function invalidateSize():void; function invalidateDisplayList():void; function invalidateProperties():void; } }//package mx.core
Section 103
//IMXMLObject (mx.core.IMXMLObject) package mx.core { public interface IMXMLObject { function initialized(_arg1:Object, _arg2:String):void; } }//package mx.core
Section 104
//IProgrammaticSkin (mx.core.IProgrammaticSkin) package mx.core { public interface IProgrammaticSkin { function validateNow():void; function validateDisplayList():void; } }//package mx.core
Section 105
//IPropertyChangeNotifier (mx.core.IPropertyChangeNotifier) package mx.core { import flash.events.*; public interface IPropertyChangeNotifier extends IEventDispatcher, IUID { } }//package mx.core
Section 106
//IRawChildrenContainer (mx.core.IRawChildrenContainer) package mx.core { public interface IRawChildrenContainer { function get rawChildren():IChildList; } }//package mx.core
Section 107
//IRectangularBorder (mx.core.IRectangularBorder) package mx.core { import flash.geom.*; public interface IRectangularBorder extends IBorder { function get backgroundImageBounds():Rectangle; function get hasBackgroundImage():Boolean; function set backgroundImageBounds(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\core;IRectangularBorder.as:Rectangle):void; function layoutBackgroundImage():void; } }//package mx.core
Section 108
//IRepeater (mx.core.IRepeater) package mx.core { public interface IRepeater { function get container():IContainer; function set startingIndex(mx.core:IRepeater/mx.core:IRepeater:container/get:int):void; function get startingIndex():int; function set recycleChildren(mx.core:IRepeater/mx.core:IRepeater:container/get:Boolean):void; function get currentItem():Object; function get count():int; function get recycleChildren():Boolean; function executeChildBindings():void; function set dataProvider(mx.core:IRepeater/mx.core:IRepeater:container/get:Object):void; function initializeRepeater(_arg1:IContainer, _arg2:Boolean):void; function get currentIndex():int; function get dataProvider():Object; function set count(mx.core:IRepeater/mx.core:IRepeater:container/get:int):void; } }//package mx.core
Section 109
//IRepeaterClient (mx.core.IRepeaterClient) package mx.core { public interface IRepeaterClient { function get instanceIndices():Array; function set instanceIndices(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\core;IRepeaterClient.as:Array):void; function get isDocument():Boolean; function set repeaters(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\core;IRepeaterClient.as:Array):void; function initializeRepeaterArrays(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\core;IRepeaterClient.as:IRepeaterClient):void; function get repeaters():Array; function set repeaterIndices(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\core;IRepeaterClient.as:Array):void; function get repeaterIndices():Array; } }//package mx.core
Section 110
//IStateClient (mx.core.IStateClient) package mx.core { public interface IStateClient { function get currentState():String; function set currentState(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\core;IStateClient.as:String):void; } }//package mx.core
Section 111
//ISWFBridgeGroup (mx.core.ISWFBridgeGroup) package mx.core { import flash.events.*; public interface ISWFBridgeGroup { function getChildBridgeProvider(mx.core:ISWFBridgeGroup/mx.core:ISWFBridgeGroup:parentBridge/get:IEventDispatcher):ISWFBridgeProvider; function removeChildBridge(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\core;ISWFBridgeGroup.as:IEventDispatcher):void; function get parentBridge():IEventDispatcher; function addChildBridge(_arg1:IEventDispatcher, _arg2:ISWFBridgeProvider):void; function set parentBridge(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\core;ISWFBridgeGroup.as:IEventDispatcher):void; function containsBridge(IEventDispatcher:IEventDispatcher):Boolean; function getChildBridges():Array; } }//package mx.core
Section 112
//ISWFBridgeProvider (mx.core.ISWFBridgeProvider) package mx.core { import flash.events.*; public interface ISWFBridgeProvider { function get childAllowsParent():Boolean; function get swfBridge():IEventDispatcher; function get parentAllowsChild():Boolean; } }//package mx.core
Section 113
//ISWFLoader (mx.core.ISWFLoader) package mx.core { import flash.geom.*; public interface ISWFLoader extends ISWFBridgeProvider { function getVisibleApplicationRect(mx.core:ISWFLoader/mx.core:ISWFLoader:loadForCompatibility/get:Boolean=false):Rectangle; function set loadForCompatibility(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\core;ISWFLoader.as:Boolean):void; function get loadForCompatibility():Boolean; } }//package mx.core
Section 114
//ITextFieldFactory (mx.core.ITextFieldFactory) package mx.core { import flash.text.*; public interface ITextFieldFactory { function createTextField(:IFlexModuleFactory):TextField; } }//package mx.core
Section 115
//IToolTip (mx.core.IToolTip) package mx.core { import flash.geom.*; public interface IToolTip extends IUIComponent { function set text(mx.core:IToolTip/mx.core:IToolTip:screen/get:String):void; function get screen():Rectangle; function get text():String; } }//package mx.core
Section 116
//IUIComponent (mx.core.IUIComponent) package mx.core { import flash.display.*; import mx.managers.*; public interface IUIComponent extends IFlexDisplayObject { function set focusPane(mx.core:IUIComponent/mx.core:IUIComponent:baselinePosition/get:Sprite):void; function get enabled():Boolean; function set enabled(mx.core:IUIComponent/mx.core:IUIComponent:baselinePosition/get:Boolean):void; function set isPopUp(mx.core:IUIComponent/mx.core:IUIComponent:baselinePosition/get:Boolean):void; function get explicitMinHeight():Number; function get percentWidth():Number; function get isPopUp():Boolean; function get owner():DisplayObjectContainer; function get percentHeight():Number; function get baselinePosition():Number; function owns(Number:DisplayObject):Boolean; function initialize():void; function get maxWidth():Number; function get minWidth():Number; function getExplicitOrMeasuredWidth():Number; function get explicitMaxWidth():Number; function get explicitMaxHeight():Number; function set percentHeight(mx.core:IUIComponent/mx.core:IUIComponent:baselinePosition/get:Number):void; function get minHeight():Number; function set percentWidth(mx.core:IUIComponent/mx.core:IUIComponent:baselinePosition/get:Number):void; function get document():Object; function get focusPane():Sprite; function getExplicitOrMeasuredHeight():Number; function set tweeningProperties(mx.core:IUIComponent/mx.core:IUIComponent:baselinePosition/get:Array):void; function set explicitWidth(mx.core:IUIComponent/mx.core:IUIComponent:baselinePosition/get:Number):void; function set measuredMinHeight(mx.core:IUIComponent/mx.core:IUIComponent:baselinePosition/get:Number):void; function get explicitMinWidth():Number; function get tweeningProperties():Array; function get maxHeight():Number; function set owner(mx.core:IUIComponent/mx.core:IUIComponent:baselinePosition/get:DisplayObjectContainer):void; function set includeInLayout(mx.core:IUIComponent/mx.core:IUIComponent:baselinePosition/get:Boolean):void; function setVisible(_arg1:Boolean, _arg2:Boolean=false):void; function parentChanged(mx.core:IUIComponent/mx.core:IUIComponent:baselinePosition/get:DisplayObjectContainer):void; function get explicitWidth():Number; function get measuredMinHeight():Number; function set measuredMinWidth(mx.core:IUIComponent/mx.core:IUIComponent:baselinePosition/get:Number):void; function set explicitHeight(mx.core:IUIComponent/mx.core:IUIComponent:baselinePosition/get:Number):void; function get includeInLayout():Boolean; function get measuredMinWidth():Number; function get explicitHeight():Number; function set systemManager(mx.core:IUIComponent/mx.core:IUIComponent:baselinePosition/get:ISystemManager):void; function set document(mx.core:IUIComponent/mx.core:IUIComponent:baselinePosition/get:Object):void; function get systemManager():ISystemManager; } }//package mx.core
Section 117
//IUID (mx.core.IUID) package mx.core { public interface IUID { function get uid():String; function set uid(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\core;IUID.as:String):void; } }//package mx.core
Section 118
//IUITextField (mx.core.IUITextField) package mx.core { import flash.display.*; import flash.geom.*; import flash.text.*; import mx.managers.*; import mx.styles.*; public interface IUITextField extends IIMESupport, IFlexModule, IInvalidating, ISimpleStyleClient, IToolTipManagerClient, IUIComponent { function replaceText(_arg1:int, _arg2:int, _arg3:String):void; function get doubleClickEnabled():Boolean; function get nestLevel():int; function get caretIndex():int; function set doubleClickEnabled(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\core;ITextFieldInterface.as:Boolean):void; function get maxScrollH():int; function set nestLevel(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\core;ITextFieldInterface.as:int):void; function get numLines():int; function get scrollH():int; function setColor(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\core;ITextFieldInterface.as:uint):void; function get maxScrollV():int; function getImageReference(mx.core:IUITextField/mx.core:IUITextField:antiAliasType/set:String):DisplayObject; function get scrollV():int; function get border():Boolean; function get text():String; function get styleSheet():StyleSheet; function getCharBoundaries(String:int):Rectangle; function get background():Boolean; function set scrollH(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\core;ITextFieldInterface.as:int):void; function getFirstCharInParagraph(value:int):int; function get type():String; function replaceSelectedText(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\core;ITextFieldInterface.as:String):void; function set borderColor(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\core;ITextFieldInterface.as:uint):void; function get alwaysShowSelection():Boolean; function get sharpness():Number; function get tabIndex():int; function get textColor():uint; function set defaultTextFormat(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\core;ITextFieldInterface.as:TextFormat):void; function get condenseWhite():Boolean; function get displayAsPassword():Boolean; function get autoSize():String; function setSelection(_arg1:int, _arg2:int):void; function set scrollV(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\core;ITextFieldInterface.as:int):void; function set useRichTextClipboard(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\core;ITextFieldInterface.as:Boolean):void; function get selectionBeginIndex():int; function get selectable():Boolean; function set border(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\core;ITextFieldInterface.as:Boolean):void; function set multiline(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\core;ITextFieldInterface.as:Boolean):void; function set background(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\core;ITextFieldInterface.as:Boolean):void; function set embedFonts(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\core;ITextFieldInterface.as:Boolean):void; function set text(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\core;ITextFieldInterface.as:String):void; function get selectionEndIndex():int; function set mouseWheelEnabled(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\core;ITextFieldInterface.as:Boolean):void; function appendText(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\core;ITextFieldInterface.as:String):void; function get antiAliasType():String; function set styleSheet(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\core;ITextFieldInterface.as:StyleSheet):void; function set nonInheritingStyles(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\core;ITextFieldInterface.as:Object):void; function set textColor(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\core;ITextFieldInterface.as:uint):void; function get wordWrap():Boolean; function getLineIndexAtPoint(_arg1:Number, _arg2:Number):int; function get htmlText():String; function set tabIndex(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\core;ITextFieldInterface.as:int):void; function get thickness():Number; function getLineIndexOfChar(value:int):int; function get bottomScrollV():int; function set restrict(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\core;ITextFieldInterface.as:String):void; function set alwaysShowSelection(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\core;ITextFieldInterface.as:Boolean):void; function getTextFormat(_arg1:int=-1, _arg2:int=-1):TextFormat; function set sharpness(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\core;ITextFieldInterface.as:Number):void; function set type(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\core;ITextFieldInterface.as:String):void; function setTextFormat(_arg1:TextFormat, _arg2:int=-1, _arg3:int=-1):void; function set gridFitType(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\core;ITextFieldInterface.as:String):void; function getUITextFormat():UITextFormat; function set inheritingStyles(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\core;ITextFieldInterface.as:Object):void; function setFocus():void; function get borderColor():uint; function set condenseWhite(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\core;ITextFieldInterface.as:Boolean):void; function get textWidth():Number; function getLineOffset(value:int):int; function set displayAsPassword(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\core;ITextFieldInterface.as:Boolean):void; function set autoSize(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\core;ITextFieldInterface.as:String):void; function get defaultTextFormat():TextFormat; function get useRichTextClipboard():Boolean; function get nonZeroTextHeight():Number; function set backgroundColor(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\core;ITextFieldInterface.as:uint):void; function get embedFonts():Boolean; function set selectable(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\core;ITextFieldInterface.as:Boolean):void; function get multiline():Boolean; function set maxChars(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\core;ITextFieldInterface.as:int):void; function get textHeight():Number; function get nonInheritingStyles():Object; function getLineText(mx.core:IUITextField/mx.core:IUITextField:alwaysShowSelection/get:int):String; function set focusRect(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\core;ITextFieldInterface.as:Object):void; function get mouseWheelEnabled():Boolean; function get restrict():String; function getParagraphLength(value:int):int; function set mouseEnabled(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\core;ITextFieldInterface.as:Boolean):void; function get gridFitType():String; function get inheritingStyles():Object; function set ignorePadding(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\core;ITextFieldInterface.as:Boolean):void; function set antiAliasType(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\core;ITextFieldInterface.as:String):void; function get backgroundColor():uint; function getCharIndexAtPoint(_arg1:Number, _arg2:Number):int; function set tabEnabled(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\core;ITextFieldInterface.as:Boolean):void; function get maxChars():int; function get focusRect():Object; function get ignorePadding():Boolean; function get mouseEnabled():Boolean; function get length():int; function set wordWrap(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\core;ITextFieldInterface.as:Boolean):void; function get tabEnabled():Boolean; function set thickness(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\core;ITextFieldInterface.as:Number):void; function getLineLength(value:int):int; function truncateToFit(:String=null):Boolean; function set htmlText(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\core;ITextFieldInterface.as:String):void; function getLineMetrics(antiAliasType:int):TextLineMetrics; function getStyle(*:String); } }//package mx.core
Section 119
//LayoutContainer (mx.core.LayoutContainer) package mx.core { import flash.events.*; import mx.containers.*; import mx.containers.utilityClasses.*; public class LayoutContainer extends Container implements IConstraintLayout { private var _constraintColumns:Array; protected var layoutObject:Layout; private var _layout:String;// = "vertical" private var processingCreationQueue:Boolean;// = false protected var boxLayoutClass:Class; private var resizeHandlerAdded:Boolean;// = false private var preloadObj:Object; private var creationQueue:Array; private var _constraintRows:Array; protected var canvasLayoutClass:Class; mx_internal static const VERSION:String = "3.2.0.3958"; mx_internal static var useProgressiveLayout:Boolean = false; public function LayoutContainer(){ layoutObject = new BoxLayout(); canvasLayoutClass = CanvasLayout; boxLayoutClass = BoxLayout; creationQueue = []; _constraintColumns = []; _constraintRows = []; super(); layoutObject.target = this; } public function get constraintColumns():Array{ return (_constraintColumns); } override mx_internal function get usePadding():Boolean{ return (!((layout == ContainerLayout.ABSOLUTE))); } override protected function layoutChrome(unscaledWidth:Number, unscaledHeight:Number):void{ super.layoutChrome(unscaledWidth, unscaledHeight); if (!doingLayout){ createBorder(); }; } public function set constraintColumns(value:Array):void{ var n:int; var i:int; if (value != _constraintColumns){ n = value.length; i = 0; while (i < n) { ConstraintColumn(value[i]).container = this; i++; }; _constraintColumns = value; invalidateSize(); invalidateDisplayList(); }; } public function set layout(value:String):void{ if (_layout != value){ _layout = value; if (layoutObject){ layoutObject.target = null; }; if (_layout == ContainerLayout.ABSOLUTE){ layoutObject = new canvasLayoutClass(); } else { layoutObject = new boxLayoutClass(); if (_layout == ContainerLayout.VERTICAL){ BoxLayout(layoutObject).direction = BoxDirection.VERTICAL; } else { BoxLayout(layoutObject).direction = BoxDirection.HORIZONTAL; }; }; if (layoutObject){ layoutObject.target = this; }; invalidateSize(); invalidateDisplayList(); dispatchEvent(new Event("layoutChanged")); }; } public function get constraintRows():Array{ return (_constraintRows); } override protected function measure():void{ super.measure(); layoutObject.measure(); } override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void{ super.updateDisplayList(unscaledWidth, unscaledHeight); layoutObject.updateDisplayList(unscaledWidth, unscaledHeight); createBorder(); } public function get layout():String{ return (_layout); } public function set constraintRows(value:Array):void{ var n:int; var i:int; if (value != _constraintRows){ n = value.length; i = 0; while (i < n) { ConstraintRow(value[i]).container = this; i++; }; _constraintRows = value; invalidateSize(); invalidateDisplayList(); }; } } }//package mx.core
Section 120
//MovieClipAsset (mx.core.MovieClipAsset) package mx.core { public class MovieClipAsset extends FlexMovieClip implements IFlexAsset, IFlexDisplayObject, IBorder { private var _measuredHeight:Number; private var _measuredWidth:Number; mx_internal static const VERSION:String = "3.2.0.3958"; public function MovieClipAsset(){ super(); _measuredWidth = width; _measuredHeight = height; } public function get measuredWidth():Number{ return (_measuredWidth); } public function get measuredHeight():Number{ return (_measuredHeight); } public function setActualSize(newWidth:Number, newHeight:Number):void{ width = newWidth; height = newHeight; } public function move(x:Number, y:Number):void{ this.x = x; this.y = y; } public function get borderMetrics():EdgeMetrics{ if (scale9Grid == null){ return (EdgeMetrics.EMPTY); }; return (new EdgeMetrics(scale9Grid.left, scale9Grid.top, Math.ceil((measuredWidth - scale9Grid.right)), Math.ceil((measuredHeight - scale9Grid.bottom)))); } } }//package mx.core
Section 121
//MovieClipLoaderAsset (mx.core.MovieClipLoaderAsset) package mx.core { import flash.display.*; import flash.events.*; import flash.utils.*; import flash.system.*; public class MovieClipLoaderAsset extends MovieClipAsset implements IFlexAsset, IFlexDisplayObject { protected var initialHeight:Number;// = 0 private var loader:Loader;// = null private var initialized:Boolean;// = false protected var initialWidth:Number;// = 0 private var requestedHeight:Number; private var requestedWidth:Number; mx_internal static const VERSION:String = "3.2.0.3958"; public function MovieClipLoaderAsset(){ super(); var loaderContext:LoaderContext = new LoaderContext(); loaderContext.applicationDomain = new ApplicationDomain(ApplicationDomain.currentDomain); if (("allowLoadBytesCodeExecution" in loaderContext)){ loaderContext["allowLoadBytesCodeExecution"] = true; }; loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler); loader.loadBytes(movieClipData, loaderContext); addChild(loader); } override public function get width():Number{ if (!initialized){ return (initialWidth); }; return (super.width); } override public function set width(value:Number):void{ if (!initialized){ requestedWidth = value; } else { loader.width = value; }; } override public function get measuredHeight():Number{ return (initialHeight); } private function completeHandler(event:Event):void{ initialized = true; initialWidth = loader.width; initialHeight = loader.height; if (!isNaN(requestedWidth)){ loader.width = requestedWidth; }; if (!isNaN(requestedHeight)){ loader.height = requestedHeight; }; dispatchEvent(event); } override public function set height(value:Number):void{ if (!initialized){ requestedHeight = value; } else { loader.height = value; }; } override public function get measuredWidth():Number{ return (initialWidth); } override public function get height():Number{ if (!initialized){ return (initialHeight); }; return (super.height); } public function get movieClipData():ByteArray{ return (null); } } }//package mx.core
Section 122
//mx_internal (mx.core.mx_internal) package mx.core { public namespace mx_internal = "http://www.adobe.com/2006/flex/mx/internal"; }//package mx.core
Section 123
//ResourceModuleRSLItem (mx.core.ResourceModuleRSLItem) package mx.core { import flash.events.*; import mx.events.*; import mx.resources.*; public class ResourceModuleRSLItem extends RSLItem { mx_internal static const VERSION:String = "3.2.0.3958"; public function ResourceModuleRSLItem(url:String){ super(url); } private function resourceErrorHandler(event:ResourceEvent):void{ var errorEvent:IOErrorEvent = new IOErrorEvent(IOErrorEvent.IO_ERROR); errorEvent.text = event.errorText; super.itemErrorHandler(errorEvent); } override public function load(progressHandler:Function, completeHandler:Function, ioErrorHandler:Function, securityErrorHandler:Function, rslErrorHandler:Function):void{ chainedProgressHandler = progressHandler; chainedCompleteHandler = completeHandler; chainedIOErrorHandler = ioErrorHandler; chainedSecurityErrorHandler = securityErrorHandler; chainedRSLErrorHandler = rslErrorHandler; var resourceManager:IResourceManager = ResourceManager.getInstance(); var eventDispatcher:IEventDispatcher = resourceManager.loadResourceModule(url); eventDispatcher.addEventListener(ResourceEvent.PROGRESS, itemProgressHandler); eventDispatcher.addEventListener(ResourceEvent.COMPLETE, itemCompleteHandler); eventDispatcher.addEventListener(ResourceEvent.ERROR, resourceErrorHandler); } } }//package mx.core
Section 124
//RSLItem (mx.core.RSLItem) package mx.core { import flash.display.*; import flash.events.*; import mx.events.*; import flash.system.*; import flash.net.*; import mx.utils.*; public class RSLItem { protected var chainedSecurityErrorHandler:Function; public var total:uint;// = 0 public var loaded:uint;// = 0 private var completed:Boolean;// = false protected var chainedRSLErrorHandler:Function; protected var chainedIOErrorHandler:Function; protected var chainedCompleteHandler:Function; private var errorText:String; protected var chainedProgressHandler:Function; public var urlRequest:URLRequest; public var rootURL:String; protected var url:String; mx_internal static const VERSION:String = "3.2.0.3958"; public function RSLItem(url:String, rootURL:String=null){ super(); this.url = url; this.rootURL = rootURL; } public function itemProgressHandler(event:ProgressEvent):void{ loaded = event.bytesLoaded; total = event.bytesTotal; if (chainedProgressHandler != null){ chainedProgressHandler(event); }; } public function itemErrorHandler(event:ErrorEvent):void{ errorText = decodeURI(event.text); completed = true; loaded = 0; total = 0; trace(errorText); if ((((event.type == IOErrorEvent.IO_ERROR)) && (!((chainedIOErrorHandler == null))))){ chainedIOErrorHandler(event); } else { if ((((event.type == SecurityErrorEvent.SECURITY_ERROR)) && (!((chainedSecurityErrorHandler == null))))){ chainedSecurityErrorHandler(event); } else { if ((((event.type == RSLEvent.RSL_ERROR)) && (!((chainedRSLErrorHandler == null))))){ chainedRSLErrorHandler(event); }; }; }; } public function load(progressHandler:Function, completeHandler:Function, ioErrorHandler:Function, securityErrorHandler:Function, rslErrorHandler:Function):void{ chainedProgressHandler = progressHandler; chainedCompleteHandler = completeHandler; chainedIOErrorHandler = ioErrorHandler; chainedSecurityErrorHandler = securityErrorHandler; chainedRSLErrorHandler = rslErrorHandler; var loader:Loader = new Loader(); var loaderContext:LoaderContext = new LoaderContext(); urlRequest = new URLRequest(LoaderUtil.createAbsoluteURL(rootURL, url)); loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, itemProgressHandler); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, itemCompleteHandler); loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, itemErrorHandler); loader.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR, itemErrorHandler); loaderContext.applicationDomain = ApplicationDomain.currentDomain; loader.load(urlRequest, loaderContext); } public function itemCompleteHandler(event:Event):void{ completed = true; if (chainedCompleteHandler != null){ chainedCompleteHandler(event); }; } } }//package mx.core
Section 125
//RSLListLoader (mx.core.RSLListLoader) package mx.core { import flash.events.*; public class RSLListLoader { private var chainedSecurityErrorHandler:Function; private var chainedIOErrorHandler:Function; private var rslList:Array; private var chainedRSLErrorHandler:Function; private var chainedCompleteHandler:Function; private var currentIndex:int;// = 0 private var chainedProgressHandler:Function; mx_internal static const VERSION:String = "3.2.0.3958"; public function RSLListLoader(rslList:Array){ rslList = []; super(); this.rslList = rslList; } private function loadNext():void{ if (!isDone()){ currentIndex++; if (currentIndex < rslList.length){ rslList[currentIndex].load(chainedProgressHandler, listCompleteHandler, listIOErrorHandler, listSecurityErrorHandler, chainedRSLErrorHandler); }; }; } public function getIndex():int{ return (currentIndex); } public function load(progressHandler:Function, completeHandler:Function, ioErrorHandler:Function, securityErrorHandler:Function, rslErrorHandler:Function):void{ chainedProgressHandler = progressHandler; chainedCompleteHandler = completeHandler; chainedIOErrorHandler = ioErrorHandler; chainedSecurityErrorHandler = securityErrorHandler; chainedRSLErrorHandler = rslErrorHandler; currentIndex = -1; loadNext(); } private function listCompleteHandler(event:Event):void{ if (chainedCompleteHandler != null){ chainedCompleteHandler(event); }; loadNext(); } public function isDone():Boolean{ return ((currentIndex >= rslList.length)); } private function listSecurityErrorHandler(event:Event):void{ if (chainedSecurityErrorHandler != null){ chainedSecurityErrorHandler(event); }; } public function getItemCount():int{ return (rslList.length); } public function getItem(index:int):RSLItem{ if ((((index < 0)) || ((index >= rslList.length)))){ return (null); }; return (rslList[index]); } private function listIOErrorHandler(event:Event):void{ if (chainedIOErrorHandler != null){ chainedIOErrorHandler(event); }; } } }//package mx.core
Section 126
//ScrollPolicy (mx.core.ScrollPolicy) package mx.core { public final class ScrollPolicy { public static const AUTO:String = "auto"; public static const ON:String = "on"; mx_internal static const VERSION:String = "3.2.0.3958"; public static const OFF:String = "off"; public function ScrollPolicy(){ super(); } } }//package mx.core
Section 127
//Singleton (mx.core.Singleton) package mx.core { public class Singleton { mx_internal static const VERSION:String = "3.2.0.3958"; private static var classMap:Object = {}; public function Singleton(){ super(); } public static function registerClass(interfaceName:String, clazz:Class):void{ var c:Class = classMap[interfaceName]; if (!c){ classMap[interfaceName] = clazz; }; } public static function getClass(interfaceName:String):Class{ return (classMap[interfaceName]); } public static function getInstance(interfaceName:String):Object{ var c:Class = classMap[interfaceName]; if (!c){ throw (new Error((("No class registered for interface '" + interfaceName) + "'."))); }; return (c["getInstance"]()); } } }//package mx.core
Section 128
//SoundAsset (mx.core.SoundAsset) package mx.core { import flash.media.*; public class SoundAsset extends Sound implements IFlexAsset { mx_internal static const VERSION:String = "3.2.0.3958"; public function SoundAsset(){ super(); } } }//package mx.core
Section 129
//SpriteAsset (mx.core.SpriteAsset) package mx.core { public class SpriteAsset extends FlexSprite implements IFlexAsset, IFlexDisplayObject, IBorder { private var _measuredHeight:Number; private var _measuredWidth:Number; mx_internal static const VERSION:String = "3.2.0.3958"; public function SpriteAsset(){ super(); _measuredWidth = width; _measuredHeight = height; } public function get measuredWidth():Number{ return (_measuredWidth); } public function get measuredHeight():Number{ return (_measuredHeight); } public function setActualSize(newWidth:Number, newHeight:Number):void{ width = newWidth; height = newHeight; } public function move(x:Number, y:Number):void{ this.x = x; this.y = y; } public function get borderMetrics():EdgeMetrics{ if (scale9Grid == null){ return (EdgeMetrics.EMPTY); }; return (new EdgeMetrics(scale9Grid.left, scale9Grid.top, Math.ceil((measuredWidth - scale9Grid.right)), Math.ceil((measuredHeight - scale9Grid.bottom)))); } } }//package mx.core
Section 130
//SWFBridgeGroup (mx.core.SWFBridgeGroup) package mx.core { import mx.managers.*; import flash.events.*; import flash.utils.*; public class SWFBridgeGroup implements ISWFBridgeGroup { private var _parentBridge:IEventDispatcher; private var _childBridges:Dictionary; private var _groupOwner:ISystemManager; mx_internal static const VERSION:String = "3.2.0.3958"; public function SWFBridgeGroup(owner:ISystemManager){ super(); _groupOwner = owner; } public function getChildBridgeProvider(bridge:IEventDispatcher):ISWFBridgeProvider{ if (!_childBridges){ return (null); }; return (ISWFBridgeProvider(_childBridges[bridge])); } public function removeChildBridge(bridge:IEventDispatcher):void{ var iter:Object; if (((!(_childBridges)) || (!(bridge)))){ return; }; for (iter in _childBridges) { if (iter == bridge){ delete _childBridges[iter]; }; }; } public function get parentBridge():IEventDispatcher{ return (_parentBridge); } public function containsBridge(bridge:IEventDispatcher):Boolean{ var iter:Object; if (((parentBridge) && ((parentBridge == bridge)))){ return (true); }; for (iter in _childBridges) { if (bridge == iter){ return (true); }; }; return (false); } public function set parentBridge(bridge:IEventDispatcher):void{ _parentBridge = bridge; } public function addChildBridge(bridge:IEventDispatcher, bridgeProvider:ISWFBridgeProvider):void{ if (!_childBridges){ _childBridges = new Dictionary(); }; _childBridges[bridge] = bridgeProvider; } public function getChildBridges():Array{ var iter:Object; var bridges:Array = []; for (iter in _childBridges) { bridges.push(iter); }; return (bridges); } } }//package mx.core
Section 131
//TextFieldFactory (mx.core.TextFieldFactory) package mx.core { import flash.text.*; import flash.utils.*; public class TextFieldFactory implements ITextFieldFactory { private var textFields:Dictionary; mx_internal static const VERSION:String = "3.2.0.3958"; private static var instance:ITextFieldFactory; public function TextFieldFactory(){ textFields = new Dictionary(true); super(); } public function createTextField(moduleFactory:IFlexModuleFactory):TextField{ var iter:Object; var textField:TextField; var textFieldDictionary:Dictionary = textFields[moduleFactory]; if (textFieldDictionary){ for (iter in textFieldDictionary) { textField = TextField(iter); break; }; }; if (!textField){ if (moduleFactory){ textField = TextField(moduleFactory.create("flash.text.TextField")); } else { textField = new TextField(); }; if (!textFieldDictionary){ textFieldDictionary = new Dictionary(true); }; textFieldDictionary[textField] = 1; textFields[moduleFactory] = textFieldDictionary; }; return (textField); } public static function getInstance():ITextFieldFactory{ if (!instance){ instance = new (TextFieldFactory); }; return (instance); } } }//package mx.core
Section 132
//UIComponent (mx.core.UIComponent) package mx.core { import flash.display.*; import flash.geom.*; import flash.text.*; import mx.managers.*; import mx.automation.*; import flash.events.*; import mx.events.*; import mx.resources.*; import mx.styles.*; import mx.controls.*; import mx.states.*; import mx.effects.*; import mx.graphics.*; import mx.binding.*; import flash.utils.*; import flash.system.*; import mx.utils.*; import mx.validators.*; import mx.modules.*; public class UIComponent extends FlexSprite implements IAutomationObject, IChildList, IDeferredInstantiationUIComponent, IFlexDisplayObject, IFlexModule, IInvalidating, ILayoutManagerClient, IPropertyChangeNotifier, IRepeaterClient, ISimpleStyleClient, IStyleClient, IToolTipManagerClient, IUIComponent, IValidatorListener, IStateClient, IConstraintClient { private var cachedEmbeddedFont:EmbeddedFont;// = null private var errorStringChanged:Boolean;// = false mx_internal var overlay:UIComponent; mx_internal var automaticRadioButtonGroups:Object; private var _currentState:String; private var _isPopUp:Boolean; private var _repeaters:Array; private var _systemManager:ISystemManager; private var _measuredWidth:Number;// = 0 private var methodQueue:Array; mx_internal var _width:Number; private var _tweeningProperties:Array; private var _validationSubField:String; private var _endingEffectInstances:Array; mx_internal var saveBorderColor:Boolean;// = true mx_internal var overlayColor:uint; mx_internal var overlayReferenceCount:int;// = 0 private var hasFontContextBeenSaved:Boolean;// = false private var _repeaterIndices:Array; private var oldExplicitWidth:Number; mx_internal var _descriptor:UIComponentDescriptor; private var _initialized:Boolean;// = false private var _focusEnabled:Boolean;// = true private var cacheAsBitmapCount:int;// = 0 private var requestedCurrentState:String; private var listeningForRender:Boolean;// = false mx_internal var invalidateDisplayListFlag:Boolean;// = false private var oldScaleX:Number;// = 1 private var oldScaleY:Number;// = 1 mx_internal var _explicitMaxHeight:Number; mx_internal var invalidatePropertiesFlag:Boolean;// = false private var hasFocusRect:Boolean;// = false mx_internal var invalidateSizeFlag:Boolean;// = false private var _scaleX:Number;// = 1 private var _scaleY:Number;// = 1 private var _styleDeclaration:CSSStyleDeclaration; private var _resourceManager:IResourceManager; mx_internal var _affectedProperties:Object; mx_internal var _documentDescriptor:UIComponentDescriptor; private var _processedDescriptors:Boolean;// = false mx_internal var origBorderColor:Number; private var _focusManager:IFocusManager; private var _cachePolicy:String;// = "auto" private var _measuredHeight:Number;// = 0 private var _id:String; private var _owner:DisplayObjectContainer; public var transitions:Array; mx_internal var _parent:DisplayObjectContainer; private var _measuredMinWidth:Number;// = 0 private var oldMinWidth:Number; private var _explicitWidth:Number; private var _enabled:Boolean;// = false public var states:Array; private var _mouseFocusEnabled:Boolean;// = true private var oldHeight:Number;// = 0 private var _currentStateChanged:Boolean; private var cachedTextFormat:UITextFormat; mx_internal var _height:Number; private var _automationDelegate:IAutomationObject; private var _percentWidth:Number; private var _automationName:String;// = null private var _isEffectStarted:Boolean;// = false private var _styleName:Object; private var lastUnscaledWidth:Number; mx_internal var _document:Object; mx_internal var _errorString:String;// = "" private var oldExplicitHeight:Number; private var _nestLevel:int;// = 0 private var _systemManagerDirty:Boolean;// = false private var _explicitHeight:Number; mx_internal var _toolTip:String; private var _filters:Array; private var _focusPane:Sprite; private var playStateTransition:Boolean;// = true private var _nonInheritingStyles:Object; private var _showInAutomationHierarchy:Boolean;// = true private var _moduleFactory:IFlexModuleFactory; private var preventDrawFocus:Boolean;// = false private var oldX:Number;// = 0 private var oldY:Number;// = 0 private var _instanceIndices:Array; private var _visible:Boolean;// = true private var _inheritingStyles:Object; private var _includeInLayout:Boolean;// = true mx_internal var _effectsStarted:Array; mx_internal var _explicitMinWidth:Number; private var lastUnscaledHeight:Number; mx_internal var _explicitMaxWidth:Number; private var _measuredMinHeight:Number;// = 0 private var _uid:String; private var _currentTransitionEffect:IEffect; private var _updateCompletePendingFlag:Boolean;// = false private var oldMinHeight:Number; private var _flexContextMenu:IFlexContextMenu; mx_internal var _explicitMinHeight:Number; private var _percentHeight:Number; private var oldEmbeddedFontContext:IFlexModuleFactory;// = null private var oldWidth:Number;// = 0 public static const DEFAULT_MEASURED_WIDTH:Number = 160; public static const DEFAULT_MAX_WIDTH:Number = 10000; public static const DEFAULT_MEASURED_MIN_HEIGHT:Number = 22; public static const DEFAULT_MAX_HEIGHT:Number = 10000; public static const DEFAULT_MEASURED_HEIGHT:Number = 22; mx_internal static const VERSION:String = "3.2.0.3958"; public static const DEFAULT_MEASURED_MIN_WIDTH:Number = 40; mx_internal static var dispatchEventHook:Function; private static var fakeMouseY:QName = new QName(mx_internal, "_mouseY"); mx_internal static var createAccessibilityImplementation:Function; mx_internal static var STYLE_UNINITIALIZED:Object = {}; private static var fakeMouseX:QName = new QName(mx_internal, "_mouseX"); private static var _embeddedFontRegistry:IEmbeddedFontRegistry; public function UIComponent(){ methodQueue = []; _resourceManager = ResourceManager.getInstance(); _inheritingStyles = UIComponent.STYLE_UNINITIALIZED; _nonInheritingStyles = UIComponent.STYLE_UNINITIALIZED; states = []; transitions = []; _effectsStarted = []; _affectedProperties = {}; _endingEffectInstances = []; super(); focusRect = false; tabEnabled = (this is IFocusManagerComponent); tabChildren = false; enabled = true; $visible = false; addEventListener(Event.ADDED, addedHandler); addEventListener(Event.REMOVED, removedHandler); if ((this is IFocusManagerComponent)){ addEventListener(FocusEvent.FOCUS_IN, focusInHandler); addEventListener(FocusEvent.FOCUS_OUT, focusOutHandler); addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler); addEventListener(KeyboardEvent.KEY_UP, keyUpHandler); }; resourcesChanged(); resourceManager.addEventListener(Event.CHANGE, resourceManager_changeHandler, false, 0, true); _width = super.width; _height = super.height; } override public function get filters():Array{ return ((_filters) ? _filters : super.filters); } public function get toolTip():String{ return (_toolTip); } private function transition_effectEndHandler(event:EffectEvent):void{ _currentTransitionEffect = null; } public function get nestLevel():int{ return (_nestLevel); } protected function adjustFocusRect(obj:DisplayObject=null):void{ var rectCol:Number; var thickness:Number; var pt:Point; var rotRad:Number; if (!obj){ obj = this; }; if (((isNaN(obj.width)) || (isNaN(obj.height)))){ return; }; var fm:IFocusManager = focusManager; if (!fm){ return; }; var focusObj:IFlexDisplayObject = IFlexDisplayObject(getFocusObject()); if (focusObj){ if (((errorString) && (!((errorString == ""))))){ rectCol = getStyle("errorColor"); } else { rectCol = getStyle("themeColor"); }; thickness = getStyle("focusThickness"); if ((focusObj is IStyleClient)){ IStyleClient(focusObj).setStyle("focusColor", rectCol); }; focusObj.setActualSize((obj.width + (2 * thickness)), (obj.height + (2 * thickness))); if (rotation){ rotRad = ((rotation * Math.PI) / 180); pt = new Point((obj.x - (thickness * (Math.cos(rotRad) - Math.sin(rotRad)))), (obj.y - (thickness * (Math.cos(rotRad) + Math.sin(rotRad))))); DisplayObject(focusObj).rotation = rotation; } else { pt = new Point((obj.x - thickness), (obj.y - thickness)); }; if (obj.parent == this){ pt.x = (pt.x + x); pt.y = (pt.y + y); }; pt = parent.localToGlobal(pt); pt = parent.globalToLocal(pt); focusObj.move(pt.x, pt.y); if ((focusObj is IInvalidating)){ IInvalidating(focusObj).validateNow(); } else { if ((focusObj is IProgrammaticSkin)){ IProgrammaticSkin(focusObj).validateNow(); }; }; }; } mx_internal function setUnscaledWidth(value:Number):void{ var scaledValue:Number = (value * Math.abs(oldScaleX)); if (_explicitWidth == scaledValue){ return; }; if (!isNaN(scaledValue)){ _percentWidth = NaN; }; _explicitWidth = scaledValue; invalidateSize(); var p:IInvalidating = (parent as IInvalidating); if (((p) && (includeInLayout))){ p.invalidateSize(); p.invalidateDisplayList(); }; } private function isOnDisplayList():Boolean{ var p:DisplayObjectContainer; p = (_parent) ? _parent : super.parent; //unresolved jump var _slot1 = e; return (true); return ((p) ? true : false); } public function set nestLevel(value:int):void{ var childList:IChildList; var n:int; var i:int; var ui:ILayoutManagerClient; var textField:IUITextField; if ((((value > 1)) && (!((_nestLevel == value))))){ _nestLevel = value; updateCallbacks(); childList = ((this is IRawChildrenContainer)) ? IRawChildrenContainer(this).rawChildren : IChildList(this); n = childList.numChildren; i = 0; while (i < n) { ui = (childList.getChildAt(i) as ILayoutManagerClient); if (ui){ ui.nestLevel = (value + 1); } else { textField = (childList.getChildAt(i) as IUITextField); if (textField){ textField.nestLevel = (value + 1); }; }; i++; }; }; } public function getExplicitOrMeasuredHeight():Number{ return ((isNaN(explicitHeight)) ? measuredHeight : explicitHeight); } private function callLaterDispatcher(event:Event):void{ var callLaterErrorEvent:DynamicEvent; var event = event; UIComponentGlobals.callLaterDispatcherCount++; if (!UIComponentGlobals.catchCallLaterExceptions){ callLaterDispatcher2(event); } else { callLaterDispatcher2(event); //unresolved jump var _slot1 = e; callLaterErrorEvent = new DynamicEvent("callLaterError"); callLaterErrorEvent.error = _slot1; systemManager.dispatchEvent(callLaterErrorEvent); }; UIComponentGlobals.callLaterDispatcherCount--; } public function getStyle(styleProp:String){ return ((StyleManager.inheritingStyles[styleProp]) ? _inheritingStyles[styleProp] : _nonInheritingStyles[styleProp]); } final mx_internal function get $width():Number{ return (super.width); } public function get className():String{ var name:String = getQualifiedClassName(this); var index:int = name.indexOf("::"); if (index != -1){ name = name.substr((index + 2)); }; return (name); } public function verticalGradientMatrix(x:Number, y:Number, width:Number, height:Number):Matrix{ UIComponentGlobals.tempMatrix.createGradientBox(width, height, (Math.PI / 2), x, y); return (UIComponentGlobals.tempMatrix); } public function setCurrentState(stateName:String, playTransition:Boolean=true):void{ if (((!((stateName == currentState))) && (!(((isBaseState(stateName)) && (isBaseState(currentState))))))){ requestedCurrentState = stateName; playStateTransition = playTransition; if (initialized){ commitCurrentState(); } else { _currentStateChanged = true; addEventListener(FlexEvent.CREATION_COMPLETE, creationCompleteHandler); }; }; } private function getBaseStates(state:State):Array{ var baseStates:Array = []; while (((state) && (state.basedOn))) { baseStates.push(state.basedOn); state = getState(state.basedOn); }; return (baseStates); } public function set minHeight(value:Number):void{ if (explicitMinHeight == value){ return; }; explicitMinHeight = value; } protected function isOurFocus(target:DisplayObject):Boolean{ return ((target == this)); } public function get errorString():String{ return (_errorString); } mx_internal function setUnscaledHeight(value:Number):void{ var scaledValue:Number = (value * Math.abs(oldScaleY)); if (_explicitHeight == scaledValue){ return; }; if (!isNaN(scaledValue)){ _percentHeight = NaN; }; _explicitHeight = scaledValue; invalidateSize(); var p:IInvalidating = (parent as IInvalidating); if (((p) && (includeInLayout))){ p.invalidateSize(); p.invalidateDisplayList(); }; } public function get automationName():String{ if (_automationName){ return (_automationName); }; if (automationDelegate){ return (automationDelegate.automationName); }; return (""); } final mx_internal function set $width(value:Number):void{ super.width = value; } public function getVisibleRect(targetParent:DisplayObject=null):Rectangle{ if (!targetParent){ targetParent = DisplayObject(systemManager); }; var pt:Point = new Point(x, y); var thisParent:DisplayObject = ($parent) ? $parent : parent; pt = thisParent.localToGlobal(pt); var bounds:Rectangle = new Rectangle(pt.x, pt.y, width, height); var current:DisplayObject = this; var currentRect:Rectangle = new Rectangle(); do { if ((current is UIComponent)){ if (UIComponent(current).$parent){ current = UIComponent(current).$parent; } else { current = UIComponent(current).parent; }; } else { current = current.parent; }; if (((current) && (current.scrollRect))){ currentRect = current.scrollRect.clone(); pt = current.localToGlobal(currentRect.topLeft); currentRect.x = pt.x; currentRect.y = pt.y; bounds = bounds.intersection(currentRect); }; } while (((current) && (!((current == targetParent))))); return (bounds); } public function invalidateDisplayList():void{ if (!invalidateDisplayListFlag){ invalidateDisplayListFlag = true; if (((isOnDisplayList()) && (UIComponentGlobals.layoutManager))){ UIComponentGlobals.layoutManager.invalidateDisplayList(this); }; }; } mx_internal function initThemeColor():Boolean{ var tc:Object; var rc:Number; var sc:Number; var classSelector:Object; var typeSelectors:Array; var i:int; var typeSelector:CSSStyleDeclaration; var styleName:Object = _styleName; if (_styleDeclaration){ tc = _styleDeclaration.getStyle("themeColor"); rc = _styleDeclaration.getStyle("rollOverColor"); sc = _styleDeclaration.getStyle("selectionColor"); }; if ((((((tc === null)) || (!(StyleManager.isValidStyleValue(tc))))) && (((styleName) && (!((styleName is ISimpleStyleClient))))))){ classSelector = ((styleName is String)) ? StyleManager.getStyleDeclaration(("." + styleName)) : styleName; if (classSelector){ tc = classSelector.getStyle("themeColor"); rc = classSelector.getStyle("rollOverColor"); sc = classSelector.getStyle("selectionColor"); }; }; if ((((tc === null)) || (!(StyleManager.isValidStyleValue(tc))))){ typeSelectors = getClassStyleDeclarations(); i = 0; while (i < typeSelectors.length) { typeSelector = typeSelectors[i]; if (typeSelector){ tc = typeSelector.getStyle("themeColor"); rc = typeSelector.getStyle("rollOverColor"); sc = typeSelector.getStyle("selectionColor"); }; if (((!((tc === null))) && (StyleManager.isValidStyleValue(tc)))){ break; }; i++; }; }; if (((((((!((tc === null))) && (StyleManager.isValidStyleValue(tc)))) && (isNaN(rc)))) && (isNaN(sc)))){ setThemeColor(tc); return (true); }; return (((((((!((tc === null))) && (StyleManager.isValidStyleValue(tc)))) && (!(isNaN(rc))))) && (!(isNaN(sc))))); } override public function get scaleX():Number{ return (_scaleX); } public function get uid():String{ if (!_uid){ _uid = toString(); }; return (_uid); } override public function get mouseX():Number{ if (((((!(root)) || ((root is Stage)))) || ((root[fakeMouseX] === undefined)))){ return (super.mouseX); }; return (globalToLocal(new Point(root[fakeMouseX], 0)).x); } override public function stopDrag():void{ super.stopDrag(); invalidateProperties(); dispatchEvent(new Event("xChanged")); dispatchEvent(new Event("yChanged")); } public function get focusPane():Sprite{ return (_focusPane); } public function set tweeningProperties(value:Array):void{ _tweeningProperties = value; } public function horizontalGradientMatrix(x:Number, y:Number, width:Number, height:Number):Matrix{ UIComponentGlobals.tempMatrix.createGradientBox(width, height, 0, x, y); return (UIComponentGlobals.tempMatrix); } public function get isDocument():Boolean{ return ((document == this)); } public function set validationSubField(value:String):void{ _validationSubField = value; } override public function get scaleY():Number{ return (_scaleY); } protected function keyDownHandler(event:KeyboardEvent):void{ } protected function createInFontContext(classObj:Class):Object{ hasFontContextBeenSaved = true; var fontName:String = StringUtil.trimArrayElements(getStyle("fontFamily"), ","); var fontWeight:String = getStyle("fontWeight"); var fontStyle:String = getStyle("fontStyle"); var bold = (fontWeight == "bold"); var italic = (fontStyle == "italic"); oldEmbeddedFontContext = getFontContext(fontName, bold, italic); var obj:Object = createInModuleContext((oldEmbeddedFontContext) ? oldEmbeddedFontContext : moduleFactory, getQualifiedClassName(classObj)); if (obj == null){ obj = new (classObj); }; return (obj); } public function get screen():Rectangle{ var sm:ISystemManager = systemManager; return ((sm) ? sm.screen : null); } protected function focusInHandler(event:FocusEvent):void{ var fm:IFocusManager; if (isOurFocus(DisplayObject(event.target))){ fm = focusManager; if (((fm) && (fm.showFocusIndicator))){ drawFocus(true); }; ContainerGlobals.checkFocus(event.relatedObject, this); }; } public function hasFontContextChanged():Boolean{ if (!hasFontContextBeenSaved){ return (false); }; var fontName:String = StringUtil.trimArrayElements(getStyle("fontFamily"), ","); var fontWeight:String = getStyle("fontWeight"); var fontStyle:String = getStyle("fontStyle"); var bold = (fontWeight == "bold"); var italic = (fontStyle == "italic"); var embeddedFont:EmbeddedFont = getEmbeddedFont(fontName, bold, italic); var fontContext:IFlexModuleFactory = embeddedFontRegistry.getAssociatedModuleFactory(embeddedFont, moduleFactory); return (!((fontContext == oldEmbeddedFontContext))); } public function get explicitHeight():Number{ return (_explicitHeight); } override public function get x():Number{ return (super.x); } override public function get y():Number{ return (super.y); } override public function get visible():Boolean{ return (_visible); } mx_internal function addOverlay(color:uint, targetArea:RoundedRectangle=null):void{ if (!overlay){ overlayColor = color; overlay = new UIComponent(); overlay.name = "overlay"; overlay.$visible = true; fillOverlay(overlay, color, targetArea); attachOverlay(); if (!targetArea){ addEventListener(ResizeEvent.RESIZE, overlay_resizeHandler); }; overlay.x = 0; overlay.y = 0; invalidateDisplayList(); overlayReferenceCount = 1; } else { overlayReferenceCount++; }; dispatchEvent(new ChildExistenceChangedEvent(ChildExistenceChangedEvent.OVERLAY_CREATED, true, false, overlay)); } public function get percentWidth():Number{ return (_percentWidth); } public function set explicitMinHeight(value:Number):void{ if (_explicitMinHeight == value){ return; }; _explicitMinHeight = value; invalidateSize(); var p:IInvalidating = (parent as IInvalidating); if (p){ p.invalidateSize(); p.invalidateDisplayList(); }; dispatchEvent(new Event("explicitMinHeightChanged")); } public function set automationName(value:String):void{ _automationName = value; } public function get mouseFocusEnabled():Boolean{ return (_mouseFocusEnabled); } mx_internal function getEmbeddedFont(fontName:String, bold:Boolean, italic:Boolean):EmbeddedFont{ if (cachedEmbeddedFont){ if ((((cachedEmbeddedFont.fontName == fontName)) && ((cachedEmbeddedFont.fontStyle == EmbeddedFontRegistry.getFontStyle(bold, italic))))){ return (cachedEmbeddedFont); }; }; cachedEmbeddedFont = new EmbeddedFont(fontName, bold, italic); return (cachedEmbeddedFont); } public function stylesInitialized():void{ } public function set errorString(value:String):void{ var oldValue:String = _errorString; _errorString = value; ToolTipManager.registerErrorString(this, oldValue, value); errorStringChanged = true; invalidateProperties(); dispatchEvent(new Event("errorStringChanged")); } public function getExplicitOrMeasuredWidth():Number{ return ((isNaN(explicitWidth)) ? measuredWidth : explicitWidth); } final mx_internal function set $height(value:Number):void{ super.height = value; } protected function keyUpHandler(event:KeyboardEvent):void{ } final mx_internal function $removeChild(child:DisplayObject):DisplayObject{ return (super.removeChild(child)); } override public function set scaleX(value:Number):void{ if (_scaleX == value){ return; }; _scaleX = value; invalidateProperties(); invalidateSize(); dispatchEvent(new Event("scaleXChanged")); } override public function set scaleY(value:Number):void{ if (_scaleY == value){ return; }; _scaleY = value; invalidateProperties(); invalidateSize(); dispatchEvent(new Event("scaleYChanged")); } public function set uid(uid:String):void{ this._uid = uid; } public function createAutomationIDPart(child:IAutomationObject):Object{ if (automationDelegate){ return (automationDelegate.createAutomationIDPart(child)); }; return (null); } public function getAutomationChildAt(index:int):IAutomationObject{ if (automationDelegate){ return (automationDelegate.getAutomationChildAt(index)); }; return (null); } mx_internal function get isEffectStarted():Boolean{ return (_isEffectStarted); } override public function get parent():DisplayObjectContainer{ return ((_parent) ? _parent : super.parent); //unresolved jump var _slot1 = e; return (null); } override public function get mouseY():Number{ if (((((!(root)) || ((root is Stage)))) || ((root[fakeMouseY] === undefined)))){ return (super.mouseY); }; return (globalToLocal(new Point(0, root[fakeMouseY])).y); } public function setActualSize(w:Number, h:Number):void{ var changed:Boolean; if (_width != w){ _width = w; dispatchEvent(new Event("widthChanged")); changed = true; }; if (_height != h){ _height = h; dispatchEvent(new Event("heightChanged")); changed = true; }; if (changed){ invalidateDisplayList(); dispatchResizeEvent(); }; } private function focusObj_resizeHandler(event:ResizeEvent):void{ adjustFocusRect(); } mx_internal function adjustSizesForScaleChanges():void{ var scalingFactor:Number; var xScale:Number = scaleX; var yScale:Number = scaleY; if (xScale != oldScaleX){ scalingFactor = Math.abs((xScale / oldScaleX)); if (explicitMinWidth){ explicitMinWidth = (explicitMinWidth * scalingFactor); }; if (!isNaN(explicitWidth)){ explicitWidth = (explicitWidth * scalingFactor); }; if (explicitMaxWidth){ explicitMaxWidth = (explicitMaxWidth * scalingFactor); }; oldScaleX = xScale; }; if (yScale != oldScaleY){ scalingFactor = Math.abs((yScale / oldScaleY)); if (explicitMinHeight){ explicitMinHeight = (explicitMinHeight * scalingFactor); }; if (explicitHeight){ explicitHeight = (explicitHeight * scalingFactor); }; if (explicitMaxHeight){ explicitMaxHeight = (explicitMaxHeight * scalingFactor); }; oldScaleY = yScale; }; } public function set focusPane(value:Sprite):void{ if (value){ addChild(value); value.x = 0; value.y = 0; value.scrollRect = null; _focusPane = value; } else { removeChild(_focusPane); _focusPane.mask = null; _focusPane = null; }; } public function determineTextFormatFromStyles():UITextFormat{ var font:String; var textFormat:UITextFormat = cachedTextFormat; if (!textFormat){ font = StringUtil.trimArrayElements(_inheritingStyles.fontFamily, ","); textFormat = new UITextFormat(getNonNullSystemManager(), font); textFormat.moduleFactory = moduleFactory; textFormat.align = _inheritingStyles.textAlign; textFormat.bold = (_inheritingStyles.fontWeight == "bold"); textFormat.color = (enabled) ? _inheritingStyles.color : _inheritingStyles.disabledColor; textFormat.font = font; textFormat.indent = _inheritingStyles.textIndent; textFormat.italic = (_inheritingStyles.fontStyle == "italic"); textFormat.kerning = _inheritingStyles.kerning; textFormat.leading = _nonInheritingStyles.leading; textFormat.leftMargin = _nonInheritingStyles.paddingLeft; textFormat.letterSpacing = _inheritingStyles.letterSpacing; textFormat.rightMargin = _nonInheritingStyles.paddingRight; textFormat.size = _inheritingStyles.fontSize; textFormat.underline = (_nonInheritingStyles.textDecoration == "underline"); textFormat.antiAliasType = _inheritingStyles.fontAntiAliasType; textFormat.gridFitType = _inheritingStyles.fontGridFitType; textFormat.sharpness = _inheritingStyles.fontSharpness; textFormat.thickness = _inheritingStyles.fontThickness; cachedTextFormat = textFormat; }; return (textFormat); } public function validationResultHandler(event:ValidationResultEvent):void{ var msg:String; var result:ValidationResult; var i:int; if (event.type == ValidationResultEvent.VALID){ if (errorString != ""){ errorString = ""; dispatchEvent(new FlexEvent(FlexEvent.VALID)); }; } else { if (((((!((validationSubField == null))) && (!((validationSubField == ""))))) && (event.results))){ i = 0; while (i < event.results.length) { result = event.results[i]; if (result.subField == validationSubField){ if (result.isError){ msg = result.errorMessage; } else { if (errorString != ""){ errorString = ""; dispatchEvent(new FlexEvent(FlexEvent.VALID)); }; }; break; }; i++; }; } else { if (((event.results) && ((event.results.length > 0)))){ msg = event.results[0].errorMessage; }; }; if (((msg) && (!((errorString == msg))))){ errorString = msg; dispatchEvent(new FlexEvent(FlexEvent.INVALID)); }; }; } public function invalidateProperties():void{ if (!invalidatePropertiesFlag){ invalidatePropertiesFlag = true; if (((parent) && (UIComponentGlobals.layoutManager))){ UIComponentGlobals.layoutManager.invalidateProperties(this); }; }; } public function get inheritingStyles():Object{ return (_inheritingStyles); } private function focusObj_scrollHandler(event:Event):void{ adjustFocusRect(); } final mx_internal function get $x():Number{ return (super.x); } final mx_internal function get $y():Number{ return (super.y); } public function setConstraintValue(constraintName:String, value):void{ setStyle(constraintName, value); } protected function resourcesChanged():void{ } public function registerEffects(effects:Array):void{ var event:String; var n:int = effects.length; var i:int; while (i < n) { event = EffectManager.getEventForEffectTrigger(effects[i]); if (((!((event == null))) && (!((event == ""))))){ addEventListener(event, EffectManager.eventHandler, false, EventPriority.EFFECT); }; i++; }; } public function get explicitMinWidth():Number{ return (_explicitMinWidth); } private function filterChangeHandler(event:Event):void{ super.filters = _filters; } override public function set visible(value:Boolean):void{ setVisible(value); } public function set explicitHeight(value:Number):void{ if (_explicitHeight == value){ return; }; if (!isNaN(value)){ _percentHeight = NaN; }; _explicitHeight = value; invalidateSize(); var p:IInvalidating = (parent as IInvalidating); if (((p) && (includeInLayout))){ p.invalidateSize(); p.invalidateDisplayList(); }; dispatchEvent(new Event("explicitHeightChanged")); } override public function set x(value:Number):void{ if (super.x == value){ return; }; super.x = value; invalidateProperties(); dispatchEvent(new Event("xChanged")); } public function set showInAutomationHierarchy(value:Boolean):void{ _showInAutomationHierarchy = value; } override public function set y(value:Number):void{ if (super.y == value){ return; }; super.y = value; invalidateProperties(); dispatchEvent(new Event("yChanged")); } private function resourceManager_changeHandler(event:Event):void{ resourcesChanged(); } public function set systemManager(value:ISystemManager):void{ _systemManager = value; _systemManagerDirty = false; } mx_internal function getFocusObject():DisplayObject{ var fm:IFocusManager = focusManager; if (((!(fm)) || (!(fm.focusPane)))){ return (null); }; return (((fm.focusPane.numChildren == 0)) ? null : fm.focusPane.getChildAt(0)); } public function set percentWidth(value:Number):void{ if (_percentWidth == value){ return; }; if (!isNaN(value)){ _explicitWidth = NaN; }; _percentWidth = value; var p:IInvalidating = (parent as IInvalidating); if (p){ p.invalidateSize(); p.invalidateDisplayList(); }; } public function get moduleFactory():IFlexModuleFactory{ return (_moduleFactory); } override public function addChild(child:DisplayObject):DisplayObject{ var formerParent:DisplayObjectContainer = child.parent; if (((formerParent) && (!((formerParent is Loader))))){ formerParent.removeChild(child); }; var index:int = (((overlayReferenceCount) && (!((child == overlay))))) ? Math.max(0, (super.numChildren - 1)) : super.numChildren; addingChild(child); $addChildAt(child, index); childAdded(child); return (child); } public function get document():Object{ return (_document); } public function set mouseFocusEnabled(value:Boolean):void{ _mouseFocusEnabled = value; } final mx_internal function $addChild(child:DisplayObject):DisplayObject{ return (super.addChild(child)); } mx_internal function setThemeColor(value:Object):void{ var newValue:Number; if ((newValue is String)){ newValue = parseInt(String(value)); } else { newValue = Number(value); }; if (isNaN(newValue)){ newValue = StyleManager.getColorName(value); }; var newValueS:Number = ColorUtil.adjustBrightness2(newValue, 50); var newValueR:Number = ColorUtil.adjustBrightness2(newValue, 70); setStyle("selectionColor", newValueS); setStyle("rollOverColor", newValueR); } public function get explicitMaxWidth():Number{ return (_explicitMaxWidth); } public function get id():String{ return (_id); } override public function get height():Number{ return (_height); } public function set minWidth(value:Number):void{ if (explicitMinWidth == value){ return; }; explicitMinWidth = value; } public function set currentState(value:String):void{ setCurrentState(value, true); } public function getRepeaterItem(whichRepeater:int=-1):Object{ var repeaterArray:Array = repeaters; if (whichRepeater == -1){ whichRepeater = (repeaterArray.length - 1); }; return (repeaterArray[whichRepeater].getItemAt(repeaterIndices[whichRepeater])); } public function executeBindings(recurse:Boolean=false):void{ var bindingsHost:Object = (((descriptor) && (descriptor.document))) ? descriptor.document : parentDocument; BindingManager.executeBindings(bindingsHost, id, this); } public function replayAutomatableEvent(event:Event):Boolean{ if (automationDelegate){ return (automationDelegate.replayAutomatableEvent(event)); }; return (false); } mx_internal function getFontContext(fontName:String, bold:Boolean, italic:Boolean):IFlexModuleFactory{ return (embeddedFontRegistry.getAssociatedModuleFactory(getEmbeddedFont(fontName, bold, italic), moduleFactory)); } public function get instanceIndex():int{ return ((_instanceIndices) ? _instanceIndices[(_instanceIndices.length - 1)] : -1); } public function set measuredWidth(value:Number):void{ _measuredWidth = value; } public function effectFinished(effectInst:IEffectInstance):void{ _endingEffectInstances.push(effectInst); invalidateProperties(); UIComponentGlobals.layoutManager.addEventListener(FlexEvent.UPDATE_COMPLETE, updateCompleteHandler, false, 0, true); } mx_internal function set isEffectStarted(value:Boolean):void{ _isEffectStarted = value; } mx_internal function fillOverlay(overlay:UIComponent, color:uint, targetArea:RoundedRectangle=null):void{ if (!targetArea){ targetArea = new RoundedRectangle(0, 0, unscaledWidth, unscaledHeight, 0); }; var g:Graphics = overlay.graphics; g.clear(); g.beginFill(color); g.drawRoundRect(targetArea.x, targetArea.y, targetArea.width, targetArea.height, (targetArea.cornerRadius * 2), (targetArea.cornerRadius * 2)); g.endFill(); } public function get instanceIndices():Array{ return ((_instanceIndices) ? _instanceIndices.slice(0) : null); } mx_internal function childAdded(child:DisplayObject):void{ if ((child is UIComponent)){ if (!UIComponent(child).initialized){ UIComponent(child).initialize(); }; } else { if ((child is IUIComponent)){ IUIComponent(child).initialize(); }; }; } public function globalToContent(point:Point):Point{ return (globalToLocal(point)); } mx_internal function removingChild(child:DisplayObject):void{ } mx_internal function getEffectsForProperty(propertyName:String):Array{ return (((_affectedProperties[propertyName])!=undefined) ? _affectedProperties[propertyName] : []); } override public function removeChildAt(index:int):DisplayObject{ var child:DisplayObject = getChildAt(index); removingChild(child); $removeChild(child); childRemoved(child); return (child); } protected function measure():void{ measuredMinWidth = 0; measuredMinHeight = 0; measuredWidth = 0; measuredHeight = 0; } public function set owner(value:DisplayObjectContainer):void{ _owner = value; } mx_internal function getNonNullSystemManager():ISystemManager{ var sm:ISystemManager = systemManager; if (!sm){ sm = ISystemManager(SystemManager.getSWFRoot(this)); }; if (!sm){ return (SystemManagerGlobals.topLevelSystemManagers[0]); }; return (sm); } protected function get unscaledWidth():Number{ return ((width / Math.abs(scaleX))); } public function set processedDescriptors(value:Boolean):void{ _processedDescriptors = value; if (value){ dispatchEvent(new FlexEvent(FlexEvent.INITIALIZE)); }; } private function processEffectFinished(effectInsts:Array):void{ var j:int; var effectInst:IEffectInstance; var removedInst:IEffectInstance; var aProps:Array; var k:int; var propName:String; var l:int; var i:int = (_effectsStarted.length - 1); while (i >= 0) { j = 0; while (j < effectInsts.length) { effectInst = effectInsts[j]; if (effectInst == _effectsStarted[i]){ removedInst = _effectsStarted[i]; _effectsStarted.splice(i, 1); aProps = removedInst.effect.getAffectedProperties(); k = 0; while (k < aProps.length) { propName = aProps[k]; if (_affectedProperties[propName] != undefined){ l = 0; while (l < _affectedProperties[propName].length) { if (_affectedProperties[propName][l] == effectInst){ _affectedProperties[propName].splice(l, 1); break; }; l++; }; if (_affectedProperties[propName].length == 0){ delete _affectedProperties[propName]; }; }; k++; }; break; }; j++; }; i--; }; isEffectStarted = ((_effectsStarted.length > 0)) ? true : false; if (((effectInst) && (effectInst.hideFocusRing))){ preventDrawFocus = false; }; } private function commitCurrentState():void{ var event:StateChangeEvent; var transition:IEffect = (playStateTransition) ? getTransition(_currentState, requestedCurrentState) : null; var commonBaseState:String = findCommonBaseState(_currentState, requestedCurrentState); var oldState:String = (_currentState) ? _currentState : ""; var destination:State = getState(requestedCurrentState); if (_currentTransitionEffect){ _currentTransitionEffect.end(); }; initializeState(requestedCurrentState); if (transition){ transition.captureStartValues(); }; event = new StateChangeEvent(StateChangeEvent.CURRENT_STATE_CHANGING); event.oldState = oldState; event.newState = (requestedCurrentState) ? requestedCurrentState : ""; dispatchEvent(event); if (isBaseState(_currentState)){ dispatchEvent(new FlexEvent(FlexEvent.EXIT_STATE)); }; removeState(_currentState, commonBaseState); _currentState = requestedCurrentState; if (isBaseState(currentState)){ dispatchEvent(new FlexEvent(FlexEvent.ENTER_STATE)); } else { applyState(_currentState, commonBaseState); }; event = new StateChangeEvent(StateChangeEvent.CURRENT_STATE_CHANGE); event.oldState = oldState; event.newState = (_currentState) ? _currentState : ""; dispatchEvent(event); if (transition){ UIComponentGlobals.layoutManager.validateNow(); _currentTransitionEffect = transition; transition.addEventListener(EffectEvent.EFFECT_END, transition_effectEndHandler); transition.play(); }; } public function get includeInLayout():Boolean{ return (_includeInLayout); } private function dispatchResizeEvent():void{ var resizeEvent:ResizeEvent = new ResizeEvent(ResizeEvent.RESIZE); resizeEvent.oldWidth = oldWidth; resizeEvent.oldHeight = oldHeight; dispatchEvent(resizeEvent); oldWidth = width; oldHeight = height; } public function set maxWidth(value:Number):void{ if (explicitMaxWidth == value){ return; }; explicitMaxWidth = value; } public function validateDisplayList():void{ var sm:ISystemManager; var unscaledWidth:Number; var unscaledHeight:Number; if (invalidateDisplayListFlag){ sm = (parent as ISystemManager); if (sm){ if ((((sm is SystemManagerProxy)) || ((((sm == systemManager.topLevelSystemManager)) && (!((sm.document == this))))))){ setActualSize(getExplicitOrMeasuredWidth(), getExplicitOrMeasuredHeight()); }; }; unscaledWidth = ((scaleX == 0)) ? 0 : (width / scaleX); unscaledHeight = ((scaleY == 0)) ? 0 : (height / scaleY); if (Math.abs((unscaledWidth - lastUnscaledWidth)) < 1E-5){ unscaledWidth = lastUnscaledWidth; }; if (Math.abs((unscaledHeight - lastUnscaledHeight)) < 1E-5){ unscaledHeight = lastUnscaledHeight; }; updateDisplayList(unscaledWidth, unscaledHeight); lastUnscaledWidth = unscaledWidth; lastUnscaledHeight = unscaledHeight; invalidateDisplayListFlag = false; }; } public function contentToGlobal(point:Point):Point{ return (localToGlobal(point)); } public function resolveAutomationIDPart(criteria:Object):Array{ if (automationDelegate){ return (automationDelegate.resolveAutomationIDPart(criteria)); }; return ([]); } public function set inheritingStyles(value:Object):void{ _inheritingStyles = value; } public function setFocus():void{ var sm:ISystemManager = systemManager; if (((sm) && (((sm.stage) || (sm.useSWFBridge()))))){ if (UIComponentGlobals.callLaterDispatcherCount == 0){ sm.stage.focus = this; UIComponentGlobals.nextFocusObject = null; } else { UIComponentGlobals.nextFocusObject = this; sm.addEventListener(FlexEvent.ENTER_FRAME, setFocusLater); }; } else { UIComponentGlobals.nextFocusObject = this; callLater(setFocusLater); }; } private function getTransition(oldState:String, newState:String):IEffect{ var t:Transition; var result:IEffect; var priority:int; if (!transitions){ return (null); }; if (!oldState){ oldState = ""; }; if (!newState){ newState = ""; }; var i:int; while (i < transitions.length) { t = transitions[i]; if ((((((t.fromState == "*")) && ((t.toState == "*")))) && ((priority < 1)))){ result = t.effect; priority = 1; } else { if ((((((t.fromState == oldState)) && ((t.toState == "*")))) && ((priority < 2)))){ result = t.effect; priority = 2; } else { if ((((((t.fromState == "*")) && ((t.toState == newState)))) && ((priority < 3)))){ result = t.effect; priority = 3; } else { if ((((((t.fromState == oldState)) && ((t.toState == newState)))) && ((priority < 4)))){ result = t.effect; priority = 4; break; }; }; }; }; i++; }; return (result); } public function set initialized(value:Boolean):void{ _initialized = value; if (value){ setVisible(_visible, true); dispatchEvent(new FlexEvent(FlexEvent.CREATION_COMPLETE)); }; } final mx_internal function set $y(value:Number):void{ super.y = value; } public function owns(child:DisplayObject):Boolean{ var child = child; var childList:IChildList = ((this is IRawChildrenContainer)) ? IRawChildrenContainer(this).rawChildren : IChildList(this); if (childList.contains(child)){ return (true); }; while (((child) && (!((child == this))))) { if ((child is IUIComponent)){ child = IUIComponent(child).owner; } else { child = child.parent; }; }; //unresolved jump var _slot1 = e; return (false); return ((child == this)); } public function setVisible(value:Boolean, noEvent:Boolean=false):void{ _visible = value; if (!initialized){ return; }; if ($visible == value){ return; }; $visible = value; if (!noEvent){ dispatchEvent(new FlexEvent((value) ? FlexEvent.SHOW : FlexEvent.HIDE)); }; } final mx_internal function $addChildAt(child:DisplayObject, index:int):DisplayObject{ return (super.addChildAt(child, index)); } public function deleteReferenceOnParentDocument(parentDocument:IFlexDisplayObject):void{ var indices:Array; var r:Object; var stack:Array; var n:int; var i:int; var j:int; var s:Object; var event:PropertyChangeEvent; if (((id) && (!((id == ""))))){ indices = _instanceIndices; if (!indices){ parentDocument[id] = null; } else { r = parentDocument[id]; if (!r){ return; }; stack = []; stack.push(r); n = indices.length; i = 0; while (i < (n - 1)) { s = r[indices[i]]; if (!s){ return; }; r = s; stack.push(r); i++; }; r.splice(indices[(n - 1)], 1); j = (stack.length - 1); while (j > 0) { if (stack[j].length == 0){ stack[(j - 1)].splice(indices[j], 1); }; j--; }; if ((((stack.length > 0)) && ((stack[0].length == 0)))){ parentDocument[id] = null; } else { event = PropertyChangeEvent.createUpdateEvent(parentDocument, id, parentDocument[id], parentDocument[id]); parentDocument.dispatchEvent(event); }; }; }; } public function get nonInheritingStyles():Object{ return (_nonInheritingStyles); } public function effectStarted(effectInst:IEffectInstance):void{ var propName:String; _effectsStarted.push(effectInst); var aProps:Array = effectInst.effect.getAffectedProperties(); var j:int; while (j < aProps.length) { propName = aProps[j]; if (_affectedProperties[propName] == undefined){ _affectedProperties[propName] = []; }; _affectedProperties[propName].push(effectInst); j++; }; isEffectStarted = true; if (effectInst.hideFocusRing){ preventDrawFocus = true; drawFocus(false); }; } final mx_internal function set $x(value:Number):void{ super.x = value; } private function applyState(stateName:String, lastState:String):void{ var overrides:Array; var i:int; var state:State = getState(stateName); if (stateName == lastState){ return; }; if (state){ if (state.basedOn != lastState){ applyState(state.basedOn, lastState); }; overrides = state.overrides; i = 0; while (i < overrides.length) { overrides[i].apply(this); i++; }; state.dispatchEnterState(); }; } protected function commitProperties():void{ var scalingFactorX:Number; var scalingFactorY:Number; if (_scaleX != oldScaleX){ scalingFactorX = Math.abs((_scaleX / oldScaleX)); if (!isNaN(explicitMinWidth)){ explicitMinWidth = (explicitMinWidth * scalingFactorX); }; if (!isNaN(explicitWidth)){ explicitWidth = (explicitWidth * scalingFactorX); }; if (!isNaN(explicitMaxWidth)){ explicitMaxWidth = (explicitMaxWidth * scalingFactorX); }; _width = (_width * scalingFactorX); super.scaleX = (oldScaleX = _scaleX); }; if (_scaleY != oldScaleY){ scalingFactorY = Math.abs((_scaleY / oldScaleY)); if (!isNaN(explicitMinHeight)){ explicitMinHeight = (explicitMinHeight * scalingFactorY); }; if (!isNaN(explicitHeight)){ explicitHeight = (explicitHeight * scalingFactorY); }; if (!isNaN(explicitMaxHeight)){ explicitMaxHeight = (explicitMaxHeight * scalingFactorY); }; _height = (_height * scalingFactorY); super.scaleY = (oldScaleY = _scaleY); }; if (((!((x == oldX))) || (!((y == oldY))))){ dispatchMoveEvent(); }; if (((!((width == oldWidth))) || (!((height == oldHeight))))){ dispatchResizeEvent(); }; if (errorStringChanged){ errorStringChanged = false; setBorderColorForErrorString(); }; } public function get percentHeight():Number{ return (_percentHeight); } override public function get width():Number{ return (_width); } final mx_internal function get $parent():DisplayObjectContainer{ return (super.parent); } public function set explicitMinWidth(value:Number):void{ if (_explicitMinWidth == value){ return; }; _explicitMinWidth = value; invalidateSize(); var p:IInvalidating = (parent as IInvalidating); if (p){ p.invalidateSize(); p.invalidateDisplayList(); }; dispatchEvent(new Event("explicitMinWidthChanged")); } public function get isPopUp():Boolean{ return (_isPopUp); } private function measureSizes():Boolean{ var scalingFactor:Number; var newValue:Number; var xScale:Number; var yScale:Number; var changed:Boolean; if (!invalidateSizeFlag){ return (changed); }; if (((isNaN(explicitWidth)) || (isNaN(explicitHeight)))){ xScale = Math.abs(scaleX); yScale = Math.abs(scaleY); if (xScale != 1){ _measuredMinWidth = (_measuredMinWidth / xScale); _measuredWidth = (_measuredWidth / xScale); }; if (yScale != 1){ _measuredMinHeight = (_measuredMinHeight / yScale); _measuredHeight = (_measuredHeight / yScale); }; measure(); invalidateSizeFlag = false; if (((!(isNaN(explicitMinWidth))) && ((measuredWidth < explicitMinWidth)))){ measuredWidth = explicitMinWidth; }; if (((!(isNaN(explicitMaxWidth))) && ((measuredWidth > explicitMaxWidth)))){ measuredWidth = explicitMaxWidth; }; if (((!(isNaN(explicitMinHeight))) && ((measuredHeight < explicitMinHeight)))){ measuredHeight = explicitMinHeight; }; if (((!(isNaN(explicitMaxHeight))) && ((measuredHeight > explicitMaxHeight)))){ measuredHeight = explicitMaxHeight; }; if (xScale != 1){ _measuredMinWidth = (_measuredMinWidth * xScale); _measuredWidth = (_measuredWidth * xScale); }; if (yScale != 1){ _measuredMinHeight = (_measuredMinHeight * yScale); _measuredHeight = (_measuredHeight * yScale); }; } else { invalidateSizeFlag = false; _measuredMinWidth = 0; _measuredMinHeight = 0; }; adjustSizesForScaleChanges(); if (isNaN(oldMinWidth)){ oldMinWidth = (isNaN(explicitMinWidth)) ? measuredMinWidth : explicitMinWidth; oldMinHeight = (isNaN(explicitMinHeight)) ? measuredMinHeight : explicitMinHeight; oldExplicitWidth = (isNaN(explicitWidth)) ? measuredWidth : explicitWidth; oldExplicitHeight = (isNaN(explicitHeight)) ? measuredHeight : explicitHeight; changed = true; } else { newValue = (isNaN(explicitMinWidth)) ? measuredMinWidth : explicitMinWidth; if (newValue != oldMinWidth){ oldMinWidth = newValue; changed = true; }; newValue = (isNaN(explicitMinHeight)) ? measuredMinHeight : explicitMinHeight; if (newValue != oldMinHeight){ oldMinHeight = newValue; changed = true; }; newValue = (isNaN(explicitWidth)) ? measuredWidth : explicitWidth; if (newValue != oldExplicitWidth){ oldExplicitWidth = newValue; changed = true; }; newValue = (isNaN(explicitHeight)) ? measuredHeight : explicitHeight; if (newValue != oldExplicitHeight){ oldExplicitHeight = newValue; changed = true; }; }; return (changed); } public function get automationTabularData():Object{ if (automationDelegate){ return (automationDelegate.automationTabularData); }; return (null); } public function validateNow():void{ UIComponentGlobals.layoutManager.validateClient(this); } public function finishPrint(obj:Object, target:IFlexDisplayObject):void{ } public function get repeaters():Array{ return ((_repeaters) ? _repeaters.slice(0) : []); } private function dispatchMoveEvent():void{ var moveEvent:MoveEvent = new MoveEvent(MoveEvent.MOVE); moveEvent.oldX = oldX; moveEvent.oldY = oldY; dispatchEvent(moveEvent); oldX = x; oldY = y; } public function drawFocus(isFocused:Boolean):void{ var focusOwner:DisplayObjectContainer; var focusClass:Class; if (!parent){ return; }; var focusObj:DisplayObject = getFocusObject(); var focusPane:Sprite = (focusManager) ? focusManager.focusPane : null; if (((isFocused) && (!(preventDrawFocus)))){ focusOwner = focusPane.parent; if (focusOwner != parent){ if (focusOwner){ if ((focusOwner is ISystemManager)){ ISystemManager(focusOwner).focusPane = null; } else { IUIComponent(focusOwner).focusPane = null; }; }; if ((parent is ISystemManager)){ ISystemManager(parent).focusPane = focusPane; } else { IUIComponent(parent).focusPane = focusPane; }; }; focusClass = getStyle("focusSkin"); if (((focusObj) && (!((focusObj is focusClass))))){ focusPane.removeChild(focusObj); focusObj = null; }; if (!focusObj){ focusObj = new (focusClass); focusObj.name = "focus"; focusPane.addChild(focusObj); }; if ((focusObj is ILayoutManagerClient)){ ILayoutManagerClient(focusObj).nestLevel = nestLevel; }; if ((focusObj is ISimpleStyleClient)){ ISimpleStyleClient(focusObj).styleName = this; }; addEventListener(MoveEvent.MOVE, focusObj_moveHandler, true); addEventListener(MoveEvent.MOVE, focusObj_moveHandler); addEventListener(ResizeEvent.RESIZE, focusObj_resizeHandler, true); addEventListener(ResizeEvent.RESIZE, focusObj_resizeHandler); addEventListener(Event.REMOVED, focusObj_removedHandler, true); focusObj.visible = true; hasFocusRect = true; adjustFocusRect(); } else { if (hasFocusRect){ hasFocusRect = false; if (focusObj){ focusObj.visible = false; }; removeEventListener(MoveEvent.MOVE, focusObj_moveHandler); removeEventListener(MoveEvent.MOVE, focusObj_moveHandler, true); removeEventListener(ResizeEvent.RESIZE, focusObj_resizeHandler, true); removeEventListener(ResizeEvent.RESIZE, focusObj_resizeHandler); removeEventListener(Event.REMOVED, focusObj_removedHandler, true); }; }; } public function get flexContextMenu():IFlexContextMenu{ return (_flexContextMenu); } private function get indexedID():String{ var s:String = id; var indices:Array = instanceIndices; if (indices){ s = (s + (("[" + indices.join("][")) + "]")); }; return (s); } public function get measuredMinHeight():Number{ return (_measuredMinHeight); } mx_internal function addingChild(child:DisplayObject):void{ if ((((child is IUIComponent)) && (!(IUIComponent(child).document)))){ IUIComponent(child).document = (document) ? document : ApplicationGlobals.application; }; if ((((child is UIComponent)) && ((UIComponent(child).moduleFactory == null)))){ if (moduleFactory != null){ UIComponent(child).moduleFactory = moduleFactory; } else { if ((((document is IFlexModule)) && (!((document.moduleFactory == null))))){ UIComponent(child).moduleFactory = document.moduleFactory; } else { if ((((parent is UIComponent)) && (!((UIComponent(parent).moduleFactory == null))))){ UIComponent(child).moduleFactory = UIComponent(parent).moduleFactory; }; }; }; }; if ((((((child is IFontContextComponent)) && ((!(child) is UIComponent)))) && ((IFontContextComponent(child).fontContext == null)))){ IFontContextComponent(child).fontContext = moduleFactory; }; if ((child is IUIComponent)){ IUIComponent(child).parentChanged(this); }; if ((child is ILayoutManagerClient)){ ILayoutManagerClient(child).nestLevel = (nestLevel + 1); } else { if ((child is IUITextField)){ IUITextField(child).nestLevel = (nestLevel + 1); }; }; if ((child is InteractiveObject)){ if (doubleClickEnabled){ InteractiveObject(child).doubleClickEnabled = true; }; }; if ((child is IStyleClient)){ IStyleClient(child).regenerateStyleCache(true); } else { if ((((child is IUITextField)) && (IUITextField(child).inheritingStyles))){ StyleProtoChain.initTextField(IUITextField(child)); }; }; if ((child is ISimpleStyleClient)){ ISimpleStyleClient(child).styleChanged(null); }; if ((child is IStyleClient)){ IStyleClient(child).notifyStyleChangeInChildren(null, true); }; if ((child is UIComponent)){ UIComponent(child).initThemeColor(); }; if ((child is UIComponent)){ UIComponent(child).stylesInitialized(); }; } public function set repeaterIndices(value:Array):void{ _repeaterIndices = value; } protected function initializationComplete():void{ processedDescriptors = true; } public function set moduleFactory(factory:IFlexModuleFactory):void{ var child:UIComponent; var n:int = numChildren; var i:int; while (i < n) { child = (getChildAt(i) as UIComponent); if (!child){ } else { if ((((child.moduleFactory == null)) || ((child.moduleFactory == _moduleFactory)))){ child.moduleFactory = factory; }; }; i++; }; _moduleFactory = factory; } private function focusObj_removedHandler(event:Event):void{ if (event.target != this){ return; }; var focusObject:DisplayObject = getFocusObject(); if (focusObject){ focusObject.visible = false; }; } mx_internal function updateCallbacks():void{ if (invalidateDisplayListFlag){ UIComponentGlobals.layoutManager.invalidateDisplayList(this); }; if (invalidateSizeFlag){ UIComponentGlobals.layoutManager.invalidateSize(this); }; if (invalidatePropertiesFlag){ UIComponentGlobals.layoutManager.invalidateProperties(this); }; if (((systemManager) && (((_systemManager.stage) || (_systemManager.useSWFBridge()))))){ if ((((methodQueue.length > 0)) && (!(listeningForRender)))){ _systemManager.addEventListener(FlexEvent.RENDER, callLaterDispatcher); _systemManager.addEventListener(FlexEvent.ENTER_FRAME, callLaterDispatcher); listeningForRender = true; }; if (_systemManager.stage){ _systemManager.stage.invalidate(); }; }; } public function set styleDeclaration(value:CSSStyleDeclaration):void{ _styleDeclaration = value; } override public function set doubleClickEnabled(value:Boolean):void{ var childList:IChildList; var child:InteractiveObject; super.doubleClickEnabled = value; if ((this is IRawChildrenContainer)){ childList = IRawChildrenContainer(this).rawChildren; } else { childList = IChildList(this); }; var i:int; while (i < childList.numChildren) { child = (childList.getChildAt(i) as InteractiveObject); if (child){ child.doubleClickEnabled = value; }; i++; }; } public function prepareToPrint(target:IFlexDisplayObject):Object{ return (null); } public function get minHeight():Number{ if (!isNaN(explicitMinHeight)){ return (explicitMinHeight); }; return (measuredMinHeight); } public function notifyStyleChangeInChildren(styleProp:String, recursive:Boolean):void{ var child:ISimpleStyleClient; cachedTextFormat = null; var n:int = numChildren; var i:int; while (i < n) { child = (getChildAt(i) as ISimpleStyleClient); if (child){ child.styleChanged(styleProp); if ((child is IStyleClient)){ IStyleClient(child).notifyStyleChangeInChildren(styleProp, recursive); }; }; i++; }; } public function get contentMouseX():Number{ return (mouseX); } public function get contentMouseY():Number{ return (mouseY); } public function get tweeningProperties():Array{ return (_tweeningProperties); } public function set explicitMaxWidth(value:Number):void{ if (_explicitMaxWidth == value){ return; }; _explicitMaxWidth = value; invalidateSize(); var p:IInvalidating = (parent as IInvalidating); if (p){ p.invalidateSize(); p.invalidateDisplayList(); }; dispatchEvent(new Event("explicitMaxWidthChanged")); } public function set document(value:Object):void{ var child:IUIComponent; var n:int = numChildren; var i:int; while (i < n) { child = (getChildAt(i) as IUIComponent); if (!child){ } else { if ((((child.document == _document)) || ((child.document == ApplicationGlobals.application)))){ child.document = value; }; }; i++; }; _document = value; } public function validateSize(recursive:Boolean=false):void{ var i:int; var child:DisplayObject; var sizeChanging:Boolean; var p:IInvalidating; if (recursive){ i = 0; while (i < numChildren) { child = getChildAt(i); if ((child is ILayoutManagerClient)){ (child as ILayoutManagerClient).validateSize(true); }; i++; }; }; if (invalidateSizeFlag){ sizeChanging = measureSizes(); if (((sizeChanging) && (includeInLayout))){ invalidateDisplayList(); p = (parent as IInvalidating); if (p){ p.invalidateSize(); p.invalidateDisplayList(); }; }; }; } public function get validationSubField():String{ return (_validationSubField); } override public function dispatchEvent(event:Event):Boolean{ if (dispatchEventHook != null){ dispatchEventHook(event, this); }; return (super.dispatchEvent(event)); } public function set id(value:String):void{ _id = value; } private function overlay_resizeHandler(event:Event):void{ fillOverlay(overlay, overlayColor, null); } public function set updateCompletePendingFlag(value:Boolean):void{ _updateCompletePendingFlag = value; } final mx_internal function get $height():Number{ return (super.height); } protected function attachOverlay():void{ addChild(overlay); } public function get explicitMinHeight():Number{ return (_explicitMinHeight); } override public function set height(value:Number):void{ var p:IInvalidating; if (explicitHeight != value){ explicitHeight = value; invalidateSize(); }; if (_height != value){ invalidateProperties(); invalidateDisplayList(); p = (parent as IInvalidating); if (((p) && (includeInLayout))){ p.invalidateSize(); p.invalidateDisplayList(); }; _height = value; dispatchEvent(new Event("heightChanged")); }; } public function get numAutomationChildren():int{ if (automationDelegate){ return (automationDelegate.numAutomationChildren); }; return (0); } public function get parentApplication():Object{ var p:UIComponent; var o:Object = systemManager.document; if (o == this){ p = (o.systemManager.parent as UIComponent); o = (p) ? p.systemManager.document : null; }; return (o); } public function localToContent(point:Point):Point{ return (point); } public function get repeaterIndex():int{ return ((_repeaterIndices) ? _repeaterIndices[(_repeaterIndices.length - 1)] : -1); } private function removeState(stateName:String, lastState:String):void{ var overrides:Array; var i:int; var state:State = getState(stateName); if (stateName == lastState){ return; }; if (state){ state.dispatchExitState(); overrides = state.overrides; i = overrides.length; while (i) { overrides[(i - 1)].remove(this); i--; }; if (state.basedOn != lastState){ removeState(state.basedOn, lastState); }; }; } public function setStyle(styleProp:String, newValue):void{ if (styleProp == "styleName"){ styleName = newValue; return; }; if (EffectManager.getEventForEffectTrigger(styleProp) != ""){ EffectManager.setStyle(styleProp, this); }; var isInheritingStyle:Boolean = StyleManager.isInheritingStyle(styleProp); var isProtoChainInitialized = !((inheritingStyles == UIComponent.STYLE_UNINITIALIZED)); var valueChanged = !((getStyle(styleProp) == newValue)); if (!_styleDeclaration){ _styleDeclaration = new CSSStyleDeclaration(); _styleDeclaration.setStyle(styleProp, newValue); if (isProtoChainInitialized){ regenerateStyleCache(isInheritingStyle); }; } else { _styleDeclaration.setStyle(styleProp, newValue); }; if (((isProtoChainInitialized) && (valueChanged))){ styleChanged(styleProp); notifyStyleChangeInChildren(styleProp, isInheritingStyle); }; } public function get showInAutomationHierarchy():Boolean{ return (_showInAutomationHierarchy); } public function get systemManager():ISystemManager{ var r:DisplayObject; var o:DisplayObjectContainer; var ui:IUIComponent; if (((!(_systemManager)) || (_systemManagerDirty))){ r = root; if ((_systemManager is SystemManagerProxy)){ } else { if (((r) && (!((r is Stage))))){ _systemManager = (r as ISystemManager); } else { if (r){ _systemManager = (Stage(r).getChildAt(0) as ISystemManager); } else { o = parent; while (o) { ui = (o as IUIComponent); if (ui){ _systemManager = ui.systemManager; break; } else { if ((o is ISystemManager)){ _systemManager = (o as ISystemManager); break; }; }; o = o.parent; }; }; }; }; _systemManagerDirty = false; }; return (_systemManager); } private function isBaseState(stateName:String):Boolean{ return (((!(stateName)) || ((stateName == "")))); } public function set enabled(value:Boolean):void{ _enabled = value; cachedTextFormat = null; invalidateDisplayList(); dispatchEvent(new Event("enabledChanged")); } public function set focusEnabled(value:Boolean):void{ _focusEnabled = value; } public function get minWidth():Number{ if (!isNaN(explicitMinWidth)){ return (explicitMinWidth); }; return (measuredMinWidth); } private function setFocusLater(event:Event=null):void{ var sm:ISystemManager = systemManager; if (((sm) && (sm.stage))){ sm.stage.removeEventListener(Event.ENTER_FRAME, setFocusLater); if (UIComponentGlobals.nextFocusObject){ sm.stage.focus = UIComponentGlobals.nextFocusObject; }; UIComponentGlobals.nextFocusObject = null; }; } public function get currentState():String{ return ((_currentStateChanged) ? requestedCurrentState : _currentState); } public function initializeRepeaterArrays(parent:IRepeaterClient):void{ if (((((((parent) && (parent.instanceIndices))) && (((!(parent.isDocument)) || (!((parent == descriptor.document))))))) && (!(_instanceIndices)))){ _instanceIndices = parent.instanceIndices; _repeaters = parent.repeaters; _repeaterIndices = parent.repeaterIndices; }; } public function get baselinePosition():Number{ if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_3_0){ return (NaN); }; if (!validateBaselinePosition()){ return (NaN); }; var lineMetrics:TextLineMetrics = measureText("Wj"); if (height < ((2 + lineMetrics.ascent) + 2)){ return (int((height + ((lineMetrics.ascent - height) / 2)))); }; return ((2 + lineMetrics.ascent)); } public function get measuredWidth():Number{ return (_measuredWidth); } public function set instanceIndices(value:Array):void{ _instanceIndices = value; } public function set cachePolicy(value:String):void{ if (_cachePolicy != value){ _cachePolicy = value; if (value == UIComponentCachePolicy.OFF){ cacheAsBitmap = false; } else { if (value == UIComponentCachePolicy.ON){ cacheAsBitmap = true; } else { cacheAsBitmap = (cacheAsBitmapCount > 0); }; }; }; } public function get automationValue():Array{ if (automationDelegate){ return (automationDelegate.automationValue); }; return ([]); } private function addedHandler(event:Event):void{ var event = event; if (event.eventPhase != EventPhase.AT_TARGET){ return; }; if ((((parent is IContainer)) && (IContainer(parent).creatingContentPane))){ event.stopImmediatePropagation(); return; }; //unresolved jump var _slot1 = error; } public function parentChanged(p:DisplayObjectContainer):void{ if (!p){ _parent = null; _nestLevel = 0; } else { if ((p is IStyleClient)){ _parent = p; } else { if ((p is ISystemManager)){ _parent = p; } else { _parent = p.parent; }; }; }; } public function get owner():DisplayObjectContainer{ return ((_owner) ? _owner : parent); } public function get processedDescriptors():Boolean{ return (_processedDescriptors); } override public function addChildAt(child:DisplayObject, index:int):DisplayObject{ var formerParent:DisplayObjectContainer = child.parent; if (((formerParent) && (!((formerParent is Loader))))){ formerParent.removeChild(child); }; if (((overlayReferenceCount) && (!((child == overlay))))){ index = Math.min(index, Math.max(0, (super.numChildren - 1))); }; addingChild(child); $addChildAt(child, index); childAdded(child); return (child); } public function get maxWidth():Number{ return ((isNaN(explicitMaxWidth)) ? DEFAULT_MAX_WIDTH : explicitMaxWidth); } override public function set alpha(value:Number):void{ super.alpha = value; dispatchEvent(new Event("alphaChanged")); } private function removedHandler(event:Event):void{ var event = event; if (event.eventPhase != EventPhase.AT_TARGET){ return; }; if ((((parent is IContainer)) && (IContainer(parent).creatingContentPane))){ event.stopImmediatePropagation(); return; }; //unresolved jump var _slot1 = error; _systemManagerDirty = true; } public function callLater(method:Function, args:Array=null):void{ methodQueue.push(new MethodQueueElement(method, args)); var sm:ISystemManager = systemManager; if (((sm) && (((sm.stage) || (sm.useSWFBridge()))))){ if (!listeningForRender){ sm.addEventListener(FlexEvent.RENDER, callLaterDispatcher); sm.addEventListener(FlexEvent.ENTER_FRAME, callLaterDispatcher); listeningForRender = true; }; if (sm.stage){ sm.stage.invalidate(); }; }; } public function get initialized():Boolean{ return (_initialized); } private function callLaterDispatcher2(event:Event):void{ var mqe:MethodQueueElement; if (UIComponentGlobals.callLaterSuspendCount > 0){ return; }; var sm:ISystemManager = systemManager; if (((((sm) && (((sm.stage) || (sm.useSWFBridge()))))) && (listeningForRender))){ sm.removeEventListener(FlexEvent.RENDER, callLaterDispatcher); sm.removeEventListener(FlexEvent.ENTER_FRAME, callLaterDispatcher); listeningForRender = false; }; var queue:Array = methodQueue; methodQueue = []; var n:int = queue.length; var i:int; while (i < n) { mqe = MethodQueueElement(queue[i]); mqe.method.apply(null, mqe.args); i++; }; } public function measureHTMLText(htmlText:String):TextLineMetrics{ return (determineTextFormatFromStyles().measureHTMLText(htmlText)); } public function set descriptor(value:UIComponentDescriptor):void{ _descriptor = value; } private function getState(stateName:String):State{ if (((!(states)) || (isBaseState(stateName)))){ return (null); }; var i:int; while (i < states.length) { if (states[i].name == stateName){ return (states[i]); }; i++; }; var message:String = resourceManager.getString("core", "stateUndefined", [stateName]); throw (new ArgumentError(message)); } public function validateProperties():void{ if (invalidatePropertiesFlag){ commitProperties(); invalidatePropertiesFlag = false; }; } mx_internal function get documentDescriptor():UIComponentDescriptor{ return (_documentDescriptor); } public function set includeInLayout(value:Boolean):void{ var p:IInvalidating; if (_includeInLayout != value){ _includeInLayout = value; p = (parent as IInvalidating); if (p){ p.invalidateSize(); p.invalidateDisplayList(); }; dispatchEvent(new Event("includeInLayoutChanged")); }; } public function getClassStyleDeclarations():Array{ var myApplicationDomain:ApplicationDomain; var cache:Array; var myRoot:DisplayObject; var s:CSSStyleDeclaration; var factory:IFlexModuleFactory = ModuleManager.getAssociatedFactory(this); if (factory != null){ myApplicationDomain = ApplicationDomain(factory.info()["currentDomain"]); } else { myRoot = SystemManager.getSWFRoot(this); if (!myRoot){ return ([]); }; myApplicationDomain = myRoot.loaderInfo.applicationDomain; }; var className:String = getQualifiedClassName(this); className = className.replace("::", "."); cache = StyleManager.typeSelectorCache[className]; if (cache){ return (cache); }; var decls:Array = []; var classNames:Array = []; var caches:Array = []; var declcache:Array = []; while (((((!((className == null))) && (!((className == "mx.core.UIComponent"))))) && (!((className == "mx.core.UITextField"))))) { cache = StyleManager.typeSelectorCache[className]; if (cache){ decls = decls.concat(cache); break; }; s = StyleManager.getStyleDeclaration(className); if (s){ decls.unshift(s); classNames.push(className); caches.push(classNames); declcache.push(decls); decls = []; classNames = []; } else { classNames.push(className); }; className = getQualifiedSuperclassName(myApplicationDomain.getDefinition(className)); className = className.replace("::", "."); continue; var _slot1 = e; className = null; }; caches.push(classNames); declcache.push(decls); decls = []; while (caches.length) { classNames = caches.pop(); decls = decls.concat(declcache.pop()); while (classNames.length) { StyleManager.typeSelectorCache[classNames.pop()] = decls; }; }; return (decls); } public function set measuredMinWidth(value:Number):void{ _measuredMinWidth = value; } private function initializeState(stateName:String):void{ var state:State = getState(stateName); while (state) { state.initialize(); state = getState(state.basedOn); }; } mx_internal function initProtoChain():void{ var classSelector:CSSStyleDeclaration; var inheritChain:Object; var typeSelector:CSSStyleDeclaration; if (styleName){ if ((styleName is CSSStyleDeclaration)){ classSelector = CSSStyleDeclaration(styleName); } else { if ((((styleName is IFlexDisplayObject)) || ((styleName is IStyleClient)))){ StyleProtoChain.initProtoChainForUIComponentStyleName(this); return; }; if ((styleName is String)){ classSelector = StyleManager.getStyleDeclaration(("." + styleName)); }; }; }; var nonInheritChain:Object = StyleManager.stylesRoot; if (((nonInheritChain) && (nonInheritChain.effects))){ registerEffects(nonInheritChain.effects); }; var p:IStyleClient = (parent as IStyleClient); if (p){ inheritChain = p.inheritingStyles; if (inheritChain == UIComponent.STYLE_UNINITIALIZED){ inheritChain = nonInheritChain; }; } else { if (isPopUp){ if ((((((FlexVersion.compatibilityVersion >= FlexVersion.VERSION_3_0)) && (_owner))) && ((_owner is IStyleClient)))){ inheritChain = IStyleClient(_owner).inheritingStyles; } else { inheritChain = ApplicationGlobals.application.inheritingStyles; }; } else { inheritChain = StyleManager.stylesRoot; }; }; var typeSelectors:Array = getClassStyleDeclarations(); var n:int = typeSelectors.length; var i:int; while (i < n) { typeSelector = typeSelectors[i]; inheritChain = typeSelector.addStyleToProtoChain(inheritChain, this); nonInheritChain = typeSelector.addStyleToProtoChain(nonInheritChain, this); if (typeSelector.effects){ registerEffects(typeSelector.effects); }; i++; }; if (classSelector){ inheritChain = classSelector.addStyleToProtoChain(inheritChain, this); nonInheritChain = classSelector.addStyleToProtoChain(nonInheritChain, this); if (classSelector.effects){ registerEffects(classSelector.effects); }; }; inheritingStyles = (_styleDeclaration) ? _styleDeclaration.addStyleToProtoChain(inheritChain, this) : inheritChain; nonInheritingStyles = (_styleDeclaration) ? _styleDeclaration.addStyleToProtoChain(nonInheritChain, this) : nonInheritChain; } public function get repeaterIndices():Array{ return ((_repeaterIndices) ? _repeaterIndices.slice() : []); } override public function removeChild(child:DisplayObject):DisplayObject{ removingChild(child); $removeChild(child); childRemoved(child); return (child); } private function focusObj_moveHandler(event:MoveEvent):void{ adjustFocusRect(); } public function get styleDeclaration():CSSStyleDeclaration{ return (_styleDeclaration); } override public function get doubleClickEnabled():Boolean{ return (super.doubleClickEnabled); } public function contentToLocal(point:Point):Point{ return (point); } private function creationCompleteHandler(event:FlexEvent):void{ if (_currentStateChanged){ _currentStateChanged = false; commitCurrentState(); validateNow(); }; removeEventListener(FlexEvent.CREATION_COMPLETE, creationCompleteHandler); } public function set measuredHeight(value:Number):void{ _measuredHeight = value; } protected function createChildren():void{ } public function get activeEffects():Array{ return (_effectsStarted); } override public function setChildIndex(child:DisplayObject, newIndex:int):void{ if (((overlayReferenceCount) && (!((child == overlay))))){ newIndex = Math.min(newIndex, Math.max(0, (super.numChildren - 2))); }; super.setChildIndex(child, newIndex); } public function regenerateStyleCache(recursive:Boolean):void{ var child:DisplayObject; initProtoChain(); var childList:IChildList = ((this is IRawChildrenContainer)) ? IRawChildrenContainer(this).rawChildren : IChildList(this); var n:int = childList.numChildren; var i:int; while (i < n) { child = childList.getChildAt(i); if ((child is IStyleClient)){ if (IStyleClient(child).inheritingStyles != UIComponent.STYLE_UNINITIALIZED){ IStyleClient(child).regenerateStyleCache(recursive); }; } else { if ((child is IUITextField)){ if (IUITextField(child).inheritingStyles){ StyleProtoChain.initTextField(IUITextField(child)); }; }; }; i++; }; } public function get updateCompletePendingFlag():Boolean{ return (_updateCompletePendingFlag); } protected function focusOutHandler(event:FocusEvent):void{ if (isOurFocus(DisplayObject(event.target))){ drawFocus(false); }; } public function getFocus():InteractiveObject{ var sm:ISystemManager = systemManager; if (!sm){ return (null); }; if (UIComponentGlobals.nextFocusObject){ return (UIComponentGlobals.nextFocusObject); }; return (sm.stage.focus); } public function endEffectsStarted():void{ var len:int = _effectsStarted.length; var i:int; while (i < len) { _effectsStarted[i].end(); i++; }; } protected function get unscaledHeight():Number{ return ((height / Math.abs(scaleY))); } public function get enabled():Boolean{ return (_enabled); } public function get focusEnabled():Boolean{ return (_focusEnabled); } override public function set cacheAsBitmap(value:Boolean):void{ super.cacheAsBitmap = value; cacheAsBitmapCount = (value) ? 1 : 0; } mx_internal function removeOverlay():void{ if ((((((overlayReferenceCount > 0)) && ((--overlayReferenceCount == 0)))) && (overlay))){ removeEventListener("resize", overlay_resizeHandler); if (super.getChildByName("overlay")){ $removeChild(overlay); }; overlay = null; }; } public function set cacheHeuristic(value:Boolean):void{ if (_cachePolicy == UIComponentCachePolicy.AUTO){ if (value){ cacheAsBitmapCount++; } else { if (cacheAsBitmapCount != 0){ cacheAsBitmapCount--; }; }; super.cacheAsBitmap = !((cacheAsBitmapCount == 0)); }; } public function get cachePolicy():String{ return (_cachePolicy); } public function set maxHeight(value:Number):void{ if (explicitMaxHeight == value){ return; }; explicitMaxHeight = value; } public function getConstraintValue(constraintName:String){ return (getStyle(constraintName)); } public function set focusManager(value:IFocusManager):void{ _focusManager = value; } public function clearStyle(styleProp:String):void{ setStyle(styleProp, undefined); } public function get descriptor():UIComponentDescriptor{ return (_descriptor); } public function set nonInheritingStyles(value:Object):void{ _nonInheritingStyles = value; } public function get cursorManager():ICursorManager{ var cm:ICursorManager; var o:DisplayObject = parent; while (o) { if ((((o is IUIComponent)) && (("cursorManager" in o)))){ cm = o["cursorManager"]; return (cm); }; o = o.parent; }; return (CursorManager.getInstance()); } public function set automationDelegate(value:Object):void{ _automationDelegate = (value as IAutomationObject); } public function get measuredMinWidth():Number{ return (_measuredMinWidth); } public function createReferenceOnParentDocument(parentDocument:IFlexDisplayObject):void{ var indices:Array; var r:Object; var n:int; var i:int; var event:PropertyChangeEvent; var s:Object; if (((id) && (!((id == ""))))){ indices = _instanceIndices; if (!indices){ parentDocument[id] = this; } else { r = parentDocument[id]; if (!(r is Array)){ r = (parentDocument[id] = []); }; n = indices.length; i = 0; while (i < (n - 1)) { s = r[indices[i]]; if (!(s is Array)){ s = (r[indices[i]] = []); }; r = s; i++; }; r[indices[(n - 1)]] = this; event = PropertyChangeEvent.createUpdateEvent(parentDocument, id, parentDocument[id], parentDocument[id]); parentDocument.dispatchEvent(event); }; }; } public function get repeater():IRepeater{ return ((_repeaters) ? _repeaters[(_repeaters.length - 1)] : null); } public function set isPopUp(value:Boolean):void{ _isPopUp = value; } public function get measuredHeight():Number{ return (_measuredHeight); } public function initialize():void{ if (initialized){ return; }; dispatchEvent(new FlexEvent(FlexEvent.PREINITIALIZE)); createChildren(); childrenCreated(); initializeAccessibility(); initializationComplete(); } override public function set width(value:Number):void{ var p:IInvalidating; if (explicitWidth != value){ explicitWidth = value; invalidateSize(); }; if (_width != value){ invalidateProperties(); invalidateDisplayList(); p = (parent as IInvalidating); if (((p) && (includeInLayout))){ p.invalidateSize(); p.invalidateDisplayList(); }; _width = value; dispatchEvent(new Event("widthChanged")); }; } public function set percentHeight(value:Number):void{ if (_percentHeight == value){ return; }; if (!isNaN(value)){ _explicitHeight = NaN; }; _percentHeight = value; var p:IInvalidating = (parent as IInvalidating); if (p){ p.invalidateSize(); p.invalidateDisplayList(); }; } final mx_internal function set $visible(value:Boolean):void{ super.visible = value; } private function findCommonBaseState(state1:String, state2:String):String{ var firstState:State = getState(state1); var secondState:State = getState(state2); if (((!(firstState)) || (!(secondState)))){ return (""); }; if (((isBaseState(firstState.basedOn)) && (isBaseState(secondState.basedOn)))){ return (""); }; var firstBaseStates:Array = getBaseStates(firstState); var secondBaseStates:Array = getBaseStates(secondState); var commonBase:String = ""; while (firstBaseStates[(firstBaseStates.length - 1)] == secondBaseStates[(secondBaseStates.length - 1)]) { commonBase = firstBaseStates.pop(); secondBaseStates.pop(); if (((!(firstBaseStates.length)) || (!(secondBaseStates.length)))){ break; }; }; if (((firstBaseStates.length) && ((firstBaseStates[(firstBaseStates.length - 1)] == secondState.name)))){ commonBase = secondState.name; } else { if (((secondBaseStates.length) && ((secondBaseStates[(secondBaseStates.length - 1)] == firstState.name)))){ commonBase = firstState.name; }; }; return (commonBase); } mx_internal function childRemoved(child:DisplayObject):void{ if ((child is IUIComponent)){ if (IUIComponent(child).document != child){ IUIComponent(child).document = null; }; IUIComponent(child).parentChanged(null); }; } final mx_internal function $removeChildAt(index:int):DisplayObject{ return (super.removeChildAt(index)); } public function get maxHeight():Number{ return ((isNaN(explicitMaxHeight)) ? DEFAULT_MAX_HEIGHT : explicitMaxHeight); } protected function initializeAccessibility():void{ if (UIComponent.createAccessibilityImplementation != null){ UIComponent.createAccessibilityImplementation(this); }; } public function set explicitMaxHeight(value:Number):void{ if (_explicitMaxHeight == value){ return; }; _explicitMaxHeight = value; invalidateSize(); var p:IInvalidating = (parent as IInvalidating); if (p){ p.invalidateSize(); p.invalidateDisplayList(); }; dispatchEvent(new Event("explicitMaxHeightChanged")); } public function get focusManager():IFocusManager{ if (_focusManager){ return (_focusManager); }; var o:DisplayObject = parent; while (o) { if ((o is IFocusManagerContainer)){ return (IFocusManagerContainer(o).focusManager); }; o = o.parent; }; return (null); } public function set styleName(value:Object):void{ if (_styleName === value){ return; }; _styleName = value; if (inheritingStyles == UIComponent.STYLE_UNINITIALIZED){ return; }; regenerateStyleCache(true); initThemeColor(); styleChanged("styleName"); notifyStyleChangeInChildren("styleName", true); } public function get automationDelegate():Object{ return (_automationDelegate); } protected function get resourceManager():IResourceManager{ return (_resourceManager); } mx_internal function validateBaselinePosition():Boolean{ var w:Number; var h:Number; if (!parent){ return (false); }; if ((((width == 0)) && ((height == 0)))){ validateNow(); w = getExplicitOrMeasuredWidth(); h = getExplicitOrMeasuredHeight(); setActualSize(w, h); }; validateNow(); return (true); } mx_internal function cancelAllCallLaters():void{ var sm:ISystemManager = systemManager; if (((sm) && (((sm.stage) || (sm.useSWFBridge()))))){ if (listeningForRender){ sm.removeEventListener(FlexEvent.RENDER, callLaterDispatcher); sm.removeEventListener(FlexEvent.ENTER_FRAME, callLaterDispatcher); listeningForRender = false; }; }; methodQueue.splice(0); } private function updateCompleteHandler(event:FlexEvent):void{ UIComponentGlobals.layoutManager.removeEventListener(FlexEvent.UPDATE_COMPLETE, updateCompleteHandler); processEffectFinished(_endingEffectInstances); _endingEffectInstances = []; } public function styleChanged(styleProp:String):void{ if ((((this is IFontContextComponent)) && (hasFontContextChanged()))){ invalidateProperties(); }; if (((((!(styleProp)) || ((styleProp == "styleName")))) || (StyleManager.isSizeInvalidatingStyle(styleProp)))){ invalidateSize(); }; if (((((!(styleProp)) || ((styleProp == "styleName")))) || ((styleProp == "themeColor")))){ initThemeColor(); }; invalidateDisplayList(); if ((parent is IInvalidating)){ if (StyleManager.isParentSizeInvalidatingStyle(styleProp)){ IInvalidating(parent).invalidateSize(); }; if (StyleManager.isParentDisplayListInvalidatingStyle(styleProp)){ IInvalidating(parent).invalidateDisplayList(); }; }; } final mx_internal function get $visible():Boolean{ return (super.visible); } public function drawRoundRect(x:Number, y:Number, w:Number, h:Number, r:Object=null, c:Object=null, alpha:Object=null, rot:Object=null, gradient:String=null, ratios:Array=null, hole:Object=null):void{ var ellipseSize:Number; var alphas:Array; var matrix:Matrix; var holeR:Object; var g:Graphics = graphics; if (((!(w)) || (!(h)))){ return; }; if (c !== null){ if ((c is Array)){ if ((alpha is Array)){ alphas = (alpha as Array); } else { alphas = [alpha, alpha]; }; if (!ratios){ ratios = [0, 0xFF]; }; matrix = null; if (rot){ if ((rot is Matrix)){ matrix = Matrix(rot); } else { matrix = new Matrix(); if ((rot is Number)){ matrix.createGradientBox(w, h, ((Number(rot) * Math.PI) / 180), x, y); } else { matrix.createGradientBox(rot.w, rot.h, rot.r, rot.x, rot.y); }; }; }; if (gradient == GradientType.RADIAL){ g.beginGradientFill(GradientType.RADIAL, (c as Array), alphas, ratios, matrix); } else { g.beginGradientFill(GradientType.LINEAR, (c as Array), alphas, ratios, matrix); }; } else { g.beginFill(Number(c), Number(alpha)); }; }; if (!r){ g.drawRect(x, y, w, h); } else { if ((r is Number)){ ellipseSize = (Number(r) * 2); g.drawRoundRect(x, y, w, h, ellipseSize, ellipseSize); } else { GraphicsUtil.drawRoundRectComplex(g, x, y, w, h, r.tl, r.tr, r.bl, r.br); }; }; if (hole){ holeR = hole.r; if ((holeR is Number)){ ellipseSize = (Number(holeR) * 2); g.drawRoundRect(hole.x, hole.y, hole.w, hole.h, ellipseSize, ellipseSize); } else { GraphicsUtil.drawRoundRectComplex(g, hole.x, hole.y, hole.w, hole.h, holeR.tl, holeR.tr, holeR.bl, holeR.br); }; }; if (c !== null){ g.endFill(); }; } public function move(x:Number, y:Number):void{ var changed:Boolean; if (x != super.x){ super.x = x; dispatchEvent(new Event("xChanged")); changed = true; }; if (y != super.y){ super.y = y; dispatchEvent(new Event("yChanged")); changed = true; }; if (changed){ dispatchMoveEvent(); }; } public function set toolTip(value:String):void{ var oldValue:String = _toolTip; _toolTip = value; ToolTipManager.registerToolTip(this, oldValue, value); dispatchEvent(new Event("toolTipChanged")); } public function set repeaters(value:Array):void{ _repeaters = value; } public function get explicitMaxHeight():Number{ return (_explicitMaxHeight); } public function measureText(text:String):TextLineMetrics{ return (determineTextFormatFromStyles().measureText(text)); } public function get styleName():Object{ return (_styleName); } protected function createInModuleContext(moduleFactory:IFlexModuleFactory, className:String):Object{ var newObject:Object; if (moduleFactory){ newObject = moduleFactory.create(className); }; return (newObject); } public function get parentDocument():Object{ var p:IUIComponent; var sm:ISystemManager; if (document == this){ p = (parent as IUIComponent); if (p){ return (p.document); }; sm = (parent as ISystemManager); if (sm){ return (sm.document); }; return (null); //unresolved jump }; return (document); } protected function childrenCreated():void{ invalidateProperties(); invalidateSize(); invalidateDisplayList(); } public function set flexContextMenu(value:IFlexContextMenu):void{ if (_flexContextMenu){ _flexContextMenu.unsetContextMenu(this); }; _flexContextMenu = value; if (value != null){ _flexContextMenu.setContextMenu(this); }; } public function set explicitWidth(value:Number):void{ if (_explicitWidth == value){ return; }; if (!isNaN(value)){ _percentWidth = NaN; }; _explicitWidth = value; invalidateSize(); var p:IInvalidating = (parent as IInvalidating); if (((p) && (includeInLayout))){ p.invalidateSize(); p.invalidateDisplayList(); }; dispatchEvent(new Event("explicitWidthChanged")); } private function setBorderColorForErrorString():void{ if (((!(_errorString)) || ((_errorString.length == 0)))){ if (!isNaN(origBorderColor)){ setStyle("borderColor", origBorderColor); saveBorderColor = true; }; } else { if (saveBorderColor){ saveBorderColor = false; origBorderColor = getStyle("borderColor"); }; setStyle("borderColor", getStyle("errorColor")); }; styleChanged("themeColor"); var focusManager:IFocusManager = focusManager; var focusObj:DisplayObject = (focusManager) ? DisplayObject(focusManager.getFocus()) : null; if (((((focusManager) && (focusManager.showFocusIndicator))) && ((focusObj == this)))){ drawFocus(true); }; } public function get explicitWidth():Number{ return (_explicitWidth); } public function invalidateSize():void{ if (!invalidateSizeFlag){ invalidateSizeFlag = true; if (((parent) && (UIComponentGlobals.layoutManager))){ UIComponentGlobals.layoutManager.invalidateSize(this); }; }; } public function set measuredMinHeight(value:Number):void{ _measuredMinHeight = value; } protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void{ } override public function set filters(value:Array):void{ var n:int; var i:int; var e:IEventDispatcher; if (_filters){ n = _filters.length; i = 0; while (i < n) { e = (_filters[i] as IEventDispatcher); if (e){ e.removeEventListener("change", filterChangeHandler); }; i++; }; }; _filters = value; if (_filters){ n = _filters.length; i = 0; while (i < n) { e = (_filters[i] as IEventDispatcher); if (e){ e.addEventListener("change", filterChangeHandler); }; i++; }; }; super.filters = _filters; } private static function get embeddedFontRegistry():IEmbeddedFontRegistry{ if (!_embeddedFontRegistry){ _embeddedFontRegistry = IEmbeddedFontRegistry(Singleton.getInstance("mx.core::IEmbeddedFontRegistry")); }; return (_embeddedFontRegistry); } public static function resumeBackgroundProcessing():void{ var sm:ISystemManager; if (UIComponentGlobals.callLaterSuspendCount > 0){ UIComponentGlobals.callLaterSuspendCount--; if (UIComponentGlobals.callLaterSuspendCount == 0){ sm = SystemManagerGlobals.topLevelSystemManagers[0]; if (((sm) && (sm.stage))){ sm.stage.invalidate(); }; }; }; } public static function suspendBackgroundProcessing():void{ UIComponentGlobals.callLaterSuspendCount++; } } }//package mx.core class MethodQueueElement { public var method:Function; public var args:Array; private function MethodQueueElement(method:Function, args:Array=null){ super(); this.method = method; this.args = args; } }
Section 133
//UIComponentCachePolicy (mx.core.UIComponentCachePolicy) package mx.core { public final class UIComponentCachePolicy { public static const AUTO:String = "auto"; public static const ON:String = "on"; mx_internal static const VERSION:String = "3.2.0.3958"; public static const OFF:String = "off"; public function UIComponentCachePolicy(){ super(); } } }//package mx.core
Section 134
//UIComponentDescriptor (mx.core.UIComponentDescriptor) package mx.core { public class UIComponentDescriptor extends ComponentDescriptor { mx_internal var instanceIndices:Array; public var stylesFactory:Function; public var effects:Array; mx_internal var repeaters:Array; mx_internal var repeaterIndices:Array; mx_internal static const VERSION:String = "3.2.0.3958"; public function UIComponentDescriptor(descriptorProperties:Object){ super(descriptorProperties); } override public function toString():String{ return (("UIComponentDescriptor_" + id)); } } }//package mx.core
Section 135
//UIComponentGlobals (mx.core.UIComponentGlobals) package mx.core { import flash.display.*; import flash.geom.*; import mx.managers.*; public class UIComponentGlobals { mx_internal static var callLaterSuspendCount:int = 0; mx_internal static var layoutManager:ILayoutManager; mx_internal static var nextFocusObject:InteractiveObject; mx_internal static var designTime:Boolean = false; mx_internal static var tempMatrix:Matrix = new Matrix(); mx_internal static var callLaterDispatcherCount:int = 0; private static var _catchCallLaterExceptions:Boolean = false; public function UIComponentGlobals(){ super(); } public static function set catchCallLaterExceptions(value:Boolean):void{ _catchCallLaterExceptions = value; } public static function get designMode():Boolean{ return (designTime); } public static function set designMode(value:Boolean):void{ designTime = value; } public static function get catchCallLaterExceptions():Boolean{ return (_catchCallLaterExceptions); } } }//package mx.core
Section 136
//UITextField (mx.core.UITextField) package mx.core { import flash.display.*; import flash.text.*; import mx.managers.*; import mx.automation.*; import flash.events.*; import mx.resources.*; import mx.styles.*; import flash.utils.*; import mx.utils.*; public class UITextField extends FlexTextField implements IAutomationObject, IIMESupport, IFlexModule, IInvalidating, ISimpleStyleClient, IToolTipManagerClient, IUITextField { private var _enabled:Boolean;// = true private var untruncatedText:String; private var cachedEmbeddedFont:EmbeddedFont;// = null private var cachedTextFormat:TextFormat; private var _automationDelegate:IAutomationObject; private var _automationName:String; private var _styleName:Object; private var _document:Object; mx_internal var _toolTip:String; private var _nestLevel:int;// = 0 private var _explicitHeight:Number; private var _moduleFactory:IFlexModuleFactory; private var _initialized:Boolean;// = false private var _nonInheritingStyles:Object; private var _inheritingStyles:Object; private var _includeInLayout:Boolean;// = true private var invalidateDisplayListFlag:Boolean;// = true mx_internal var explicitColor:uint;// = 4294967295 private var _processedDescriptors:Boolean;// = true private var _updateCompletePendingFlag:Boolean;// = false private var explicitHTMLText:String;// = null mx_internal var _parent:DisplayObjectContainer; private var _imeMode:String;// = null private var resourceManager:IResourceManager; mx_internal var styleChangedFlag:Boolean;// = true private var _ignorePadding:Boolean;// = true private var _owner:DisplayObjectContainer; private var _explicitWidth:Number; mx_internal static const TEXT_WIDTH_PADDING:int = 5; mx_internal static const TEXT_HEIGHT_PADDING:int = 4; mx_internal static const VERSION:String = "3.2.0.3958"; private static var truncationIndicatorResource:String; private static var _embeddedFontRegistry:IEmbeddedFontRegistry; mx_internal static var debuggingBorders:Boolean = false; public function UITextField(){ resourceManager = ResourceManager.getInstance(); _inheritingStyles = UIComponent.STYLE_UNINITIALIZED; _nonInheritingStyles = UIComponent.STYLE_UNINITIALIZED; super(); super.text = ""; focusRect = false; selectable = false; tabEnabled = false; if (debuggingBorders){ border = true; }; if (!truncationIndicatorResource){ truncationIndicatorResource = resourceManager.getString("core", "truncationIndicator"); }; addEventListener(Event.CHANGE, changeHandler); addEventListener("textFieldStyleChange", textFieldStyleChangeHandler); resourceManager.addEventListener(Event.CHANGE, resourceManager_changeHandler, false, 0, true); } public function set imeMode(value:String):void{ _imeMode = value; } public function get nestLevel():int{ return (_nestLevel); } private function textFieldStyleChangeHandler(event:Event):void{ if (explicitHTMLText != null){ super.htmlText = explicitHTMLText; }; } public function truncateToFit(truncationIndicator:String=null):Boolean{ var s:String; if (!truncationIndicator){ truncationIndicator = truncationIndicatorResource; }; validateNow(); var originalText:String = super.text; untruncatedText = originalText; var w:Number = width; if (((!((originalText == ""))) && (((textWidth + TEXT_WIDTH_PADDING) > (w + 1E-14))))){ var _local5 = originalText; super.text = _local5; s = _local5; originalText.slice(0, Math.floor(((w / (textWidth + TEXT_WIDTH_PADDING)) * originalText.length))); while ((((s.length > 1)) && (((textWidth + TEXT_WIDTH_PADDING) > w)))) { s = s.slice(0, -1); super.text = (s + truncationIndicator); }; return (true); }; return (false); } public function set nestLevel(value:int):void{ if ((((value > 1)) && (!((_nestLevel == value))))){ _nestLevel = value; StyleProtoChain.initTextField(this); styleChangedFlag = true; validateNow(); }; } public function get minHeight():Number{ return (0); } public function getExplicitOrMeasuredHeight():Number{ return ((isNaN(explicitHeight)) ? measuredHeight : explicitHeight); } public function getStyle(styleProp:String){ if (StyleManager.inheritingStyles[styleProp]){ return ((inheritingStyles) ? inheritingStyles[styleProp] : IStyleClient(parent).getStyle(styleProp)); //unresolved jump }; return ((nonInheritingStyles) ? nonInheritingStyles[styleProp] : IStyleClient(parent).getStyle(styleProp)); } public function get className():String{ var name:String = getQualifiedClassName(this); var index:int = name.indexOf("::"); if (index != -1){ name = name.substr((index + 2)); }; return (name); } public function setColor(color:uint):void{ explicitColor = color; styleChangedFlag = true; invalidateDisplayListFlag = true; validateNow(); } override public function replaceText(beginIndex:int, endIndex:int, newText:String):void{ super.replaceText(beginIndex, endIndex, newText); dispatchEvent(new Event("textReplace")); } private function creatingSystemManager():ISystemManager{ return ((((!((moduleFactory == null))) && ((moduleFactory is ISystemManager)))) ? ISystemManager(moduleFactory) : systemManager); } public function set document(value:Object):void{ _document = value; } public function get automationName():String{ if (_automationName){ return (_automationName); }; if (automationDelegate){ return (automationDelegate.automationName); }; return (""); } public function get explicitMinHeight():Number{ return (NaN); } public function get focusPane():Sprite{ return (null); } public function getTextStyles():TextFormat{ var textFormat:TextFormat = new TextFormat(); textFormat.align = getStyle("textAlign"); textFormat.bold = (getStyle("fontWeight") == "bold"); if (enabled){ if (explicitColor == StyleManager.NOT_A_COLOR){ textFormat.color = getStyle("color"); } else { textFormat.color = explicitColor; }; } else { textFormat.color = getStyle("disabledColor"); }; textFormat.font = StringUtil.trimArrayElements(getStyle("fontFamily"), ","); textFormat.indent = getStyle("textIndent"); textFormat.italic = (getStyle("fontStyle") == "italic"); textFormat.kerning = getStyle("kerning"); textFormat.leading = getStyle("leading"); textFormat.leftMargin = (ignorePadding) ? 0 : getStyle("paddingLeft"); textFormat.letterSpacing = getStyle("letterSpacing"); textFormat.rightMargin = (ignorePadding) ? 0 : getStyle("paddingRight"); textFormat.size = getStyle("fontSize"); textFormat.underline = (getStyle("textDecoration") == "underline"); cachedTextFormat = textFormat; return (textFormat); } override public function set text(value:String):void{ if (!value){ value = ""; }; if (((!(isHTML)) && ((super.text == value)))){ return; }; super.text = value; explicitHTMLText = null; if (invalidateDisplayListFlag){ validateNow(); }; } public function getExplicitOrMeasuredWidth():Number{ return ((isNaN(explicitWidth)) ? measuredWidth : explicitWidth); } public function get showInAutomationHierarchy():Boolean{ return (true); } public function set automationName(value:String):void{ _automationName = value; } public function get systemManager():ISystemManager{ var ui:IUIComponent; var o:DisplayObject = parent; while (o) { ui = (o as IUIComponent); if (ui){ return (ui.systemManager); }; o = o.parent; }; return (null); } public function setStyle(styleProp:String, value):void{ } public function get percentWidth():Number{ return (NaN); } public function get explicitHeight():Number{ return (_explicitHeight); } public function get baselinePosition():Number{ var tlm:TextLineMetrics; if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_3_0){ tlm = getLineMetrics(0); return (((height - 4) - tlm.descent)); }; if (!parent){ return (NaN); }; var isEmpty = (text == ""); if (isEmpty){ super.text = "Wj"; }; tlm = getLineMetrics(0); if (isEmpty){ super.text = ""; }; return ((2 + tlm.ascent)); } public function set enabled(value:Boolean):void{ mouseEnabled = value; _enabled = value; styleChanged("color"); } public function get minWidth():Number{ return (0); } public function get automationValue():Array{ if (automationDelegate){ return (automationDelegate.automationValue); }; return ([""]); } public function get tweeningProperties():Array{ return (null); } public function get measuredWidth():Number{ validateNow(); if (!stage){ return ((textWidth + TEXT_WIDTH_PADDING)); }; return (((textWidth * transform.concatenatedMatrix.d) + TEXT_WIDTH_PADDING)); } public function set tweeningProperties(value:Array):void{ } public function createAutomationIDPart(child:IAutomationObject):Object{ return (null); } override public function get parent():DisplayObjectContainer{ return ((_parent) ? _parent : super.parent); } public function set updateCompletePendingFlag(value:Boolean):void{ _updateCompletePendingFlag = value; } public function setActualSize(w:Number, h:Number):void{ if (width != w){ width = w; }; if (height != h){ height = h; }; } public function get numAutomationChildren():int{ return (0); } public function set focusPane(value:Sprite):void{ } public function getAutomationChildAt(index:int):IAutomationObject{ return (null); } public function get inheritingStyles():Object{ return (_inheritingStyles); } public function get owner():DisplayObjectContainer{ return ((_owner) ? _owner : parent); } public function parentChanged(p:DisplayObjectContainer):void{ if (!p){ _parent = null; _nestLevel = 0; } else { if ((p is IStyleClient)){ _parent = p; } else { if ((p is SystemManager)){ _parent = p; } else { _parent = p.parent; }; }; }; } public function get processedDescriptors():Boolean{ return (_processedDescriptors); } public function get maxWidth():Number{ return (UIComponent.DEFAULT_MAX_WIDTH); } private function getEmbeddedFont(fontName:String, bold:Boolean, italic:Boolean):EmbeddedFont{ if (cachedEmbeddedFont){ if ((((cachedEmbeddedFont.fontName == fontName)) && ((cachedEmbeddedFont.fontStyle == EmbeddedFontRegistry.getFontStyle(bold, italic))))){ return (cachedEmbeddedFont); }; }; cachedEmbeddedFont = new EmbeddedFont(fontName, bold, italic); return (cachedEmbeddedFont); } public function get initialized():Boolean{ return (_initialized); } public function invalidateDisplayList():void{ invalidateDisplayListFlag = true; } public function invalidateProperties():void{ } override public function insertXMLText(beginIndex:int, endIndex:int, richText:String, pasting:Boolean=false):void{ super.insertXMLText(beginIndex, endIndex, richText, pasting); dispatchEvent(new Event("textInsert")); } public function set includeInLayout(value:Boolean):void{ var p:IInvalidating; if (_includeInLayout != value){ _includeInLayout = value; p = (parent as IInvalidating); if (p){ p.invalidateSize(); p.invalidateDisplayList(); }; }; } override public function set htmlText(value:String):void{ if (!value){ value = ""; }; if (((isHTML) && ((super.htmlText == value)))){ return; }; if (((cachedTextFormat) && ((styleSheet == null)))){ defaultTextFormat = cachedTextFormat; }; super.htmlText = value; explicitHTMLText = value; if (invalidateDisplayListFlag){ validateNow(); }; } public function set showInAutomationHierarchy(value:Boolean):void{ } private function resourceManager_changeHandler(event:Event):void{ truncationIndicatorResource = resourceManager.getString("core", "truncationIndicator"); if (untruncatedText != null){ super.text = untruncatedText; truncateToFit(); }; } public function set measuredMinWidth(value:Number):void{ } public function set explicitHeight(value:Number):void{ _explicitHeight = value; } public function get explicitMinWidth():Number{ return (NaN); } public function set percentWidth(value:Number):void{ } public function get imeMode():String{ return (_imeMode); } public function get moduleFactory():IFlexModuleFactory{ return (_moduleFactory); } public function set systemManager(value:ISystemManager):void{ } public function get explicitMaxWidth():Number{ return (NaN); } public function get document():Object{ return (_document); } public function get updateCompletePendingFlag():Boolean{ return (_updateCompletePendingFlag); } public function replayAutomatableEvent(event:Event):Boolean{ if (automationDelegate){ return (automationDelegate.replayAutomatableEvent(event)); }; return (false); } public function get enabled():Boolean{ return (_enabled); } public function set owner(value:DisplayObjectContainer):void{ _owner = value; } public function get automationTabularData():Object{ return (null); } public function set nonInheritingStyles(value:Object):void{ _nonInheritingStyles = value; } public function get includeInLayout():Boolean{ return (_includeInLayout); } public function get measuredMinWidth():Number{ return (0); } public function set isPopUp(value:Boolean):void{ } public function set automationDelegate(value:Object):void{ _automationDelegate = (value as IAutomationObject); } public function get measuredHeight():Number{ validateNow(); if (!stage){ return ((textHeight + TEXT_HEIGHT_PADDING)); }; return (((textHeight * transform.concatenatedMatrix.a) + TEXT_HEIGHT_PADDING)); } public function set processedDescriptors(value:Boolean):void{ _processedDescriptors = value; } public function setFocus():void{ systemManager.stage.focus = this; } public function initialize():void{ } public function set percentHeight(value:Number):void{ } public function resolveAutomationIDPart(criteria:Object):Array{ return ([]); } public function set inheritingStyles(value:Object):void{ _inheritingStyles = value; } public function getUITextFormat():UITextFormat{ validateNow(); var textFormat:UITextFormat = new UITextFormat(creatingSystemManager()); textFormat.moduleFactory = moduleFactory; textFormat.copyFrom(getTextFormat()); textFormat.antiAliasType = antiAliasType; textFormat.gridFitType = gridFitType; textFormat.sharpness = sharpness; textFormat.thickness = thickness; return (textFormat); } private function changeHandler(event:Event):void{ explicitHTMLText = null; } public function set initialized(value:Boolean):void{ _initialized = value; } public function get nonZeroTextHeight():Number{ var result:Number; if (super.text == ""){ super.text = "Wj"; result = textHeight; super.text = ""; return (result); }; return (textHeight); } public function owns(child:DisplayObject):Boolean{ return ((child == this)); } override public function setTextFormat(format:TextFormat, beginIndex:int=-1, endIndex:int=-1):void{ if (styleSheet){ return; }; super.setTextFormat(format, beginIndex, endIndex); dispatchEvent(new Event("textFormatChange")); } public function get nonInheritingStyles():Object{ return (_nonInheritingStyles); } public function setVisible(visible:Boolean, noEvent:Boolean=false):void{ this.visible = visible; } public function get maxHeight():Number{ return (UIComponent.DEFAULT_MAX_HEIGHT); } public function get automationDelegate():Object{ return (_automationDelegate); } public function get isPopUp():Boolean{ return (false); } public function set ignorePadding(value:Boolean):void{ _ignorePadding = value; styleChanged(null); } public function set styleName(value:Object):void{ if (_styleName === value){ return; }; _styleName = value; if (parent){ StyleProtoChain.initTextField(this); styleChanged("styleName"); }; } public function styleChanged(styleProp:String):void{ styleChangedFlag = true; if (!invalidateDisplayListFlag){ invalidateDisplayListFlag = true; if (("callLater" in parent)){ Object(parent).callLater(validateNow); }; }; } public function get percentHeight():Number{ return (NaN); } private function get isHTML():Boolean{ return (!((explicitHTMLText == null))); } public function get explicitMaxHeight():Number{ return (NaN); } public function get styleName():Object{ return (_styleName); } public function set explicitWidth(value:Number):void{ _explicitWidth = value; } public function validateNow():void{ var textFormat:TextFormat; var embeddedFont:EmbeddedFont; var fontModuleFactory:IFlexModuleFactory; var sm:ISystemManager; if (!parent){ return; }; if (((!(isNaN(explicitWidth))) && (!((super.width == explicitWidth))))){ super.width = ((explicitWidth)>4) ? explicitWidth : 4; }; if (((!(isNaN(explicitHeight))) && (!((super.height == explicitHeight))))){ super.height = explicitHeight; }; if (styleChangedFlag){ textFormat = getTextStyles(); if (textFormat.font){ embeddedFont = getEmbeddedFont(textFormat.font, textFormat.bold, textFormat.italic); fontModuleFactory = embeddedFontRegistry.getAssociatedModuleFactory(embeddedFont, moduleFactory); if (fontModuleFactory != null){ embedFonts = true; } else { sm = creatingSystemManager(); embedFonts = ((!((sm == null))) && (sm.isFontFaceEmbedded(textFormat))); }; } else { embedFonts = getStyle("embedFonts"); }; if (getStyle("fontAntiAliasType") != undefined){ antiAliasType = getStyle("fontAntiAliasType"); gridFitType = getStyle("fontGridFitType"); sharpness = getStyle("fontSharpness"); thickness = getStyle("fontThickness"); }; if (!styleSheet){ super.setTextFormat(textFormat); defaultTextFormat = textFormat; }; dispatchEvent(new Event("textFieldStyleChange")); }; styleChangedFlag = false; invalidateDisplayListFlag = false; } public function set toolTip(value:String):void{ var oldValue:String = _toolTip; _toolTip = value; ToolTipManager.registerToolTip(this, oldValue, value); } public function move(x:Number, y:Number):void{ if (this.x != x){ this.x = x; }; if (this.y != y){ this.y = y; }; } public function get toolTip():String{ return (_toolTip); } public function get ignorePadding():Boolean{ return (_ignorePadding); } public function get explicitWidth():Number{ return (_explicitWidth); } public function invalidateSize():void{ invalidateDisplayListFlag = true; } public function set measuredMinHeight(value:Number):void{ } public function get measuredMinHeight():Number{ return (0); } public function set moduleFactory(factory:IFlexModuleFactory):void{ _moduleFactory = factory; } private static function get embeddedFontRegistry():IEmbeddedFontRegistry{ if (!_embeddedFontRegistry){ _embeddedFontRegistry = IEmbeddedFontRegistry(Singleton.getInstance("mx.core::IEmbeddedFontRegistry")); }; return (_embeddedFontRegistry); } } }//package mx.core
Section 137
//UITextFormat (mx.core.UITextFormat) package mx.core { import flash.text.*; import mx.managers.*; public class UITextFormat extends TextFormat { private var systemManager:ISystemManager; public var sharpness:Number; public var gridFitType:String; public var antiAliasType:String; public var thickness:Number; private var cachedEmbeddedFont:EmbeddedFont;// = null private var _moduleFactory:IFlexModuleFactory; mx_internal static const VERSION:String = "3.2.0.3958"; private static var _embeddedFontRegistry:IEmbeddedFontRegistry; private static var _textFieldFactory:ITextFieldFactory; public function UITextFormat(systemManager:ISystemManager, font:String=null, size:Object=null, color:Object=null, bold:Object=null, italic:Object=null, underline:Object=null, url:String=null, target:String=null, align:String=null, leftMargin:Object=null, rightMargin:Object=null, indent:Object=null, leading:Object=null){ this.systemManager = systemManager; super(font, size, color, bold, italic, underline, url, target, align, leftMargin, rightMargin, indent, leading); } public function set moduleFactory(value:IFlexModuleFactory):void{ _moduleFactory = value; } mx_internal function copyFrom(source:TextFormat):void{ font = source.font; size = source.size; color = source.color; bold = source.bold; italic = source.italic; underline = source.underline; url = source.url; target = source.target; align = source.align; leftMargin = source.leftMargin; rightMargin = source.rightMargin; indent = source.indent; leading = source.leading; letterSpacing = source.letterSpacing; blockIndent = source.blockIndent; bullet = source.bullet; display = source.display; indent = source.indent; kerning = source.kerning; tabStops = source.tabStops; } private function getEmbeddedFont(fontName:String, bold:Boolean, italic:Boolean):EmbeddedFont{ if (cachedEmbeddedFont){ if ((((cachedEmbeddedFont.fontName == fontName)) && ((cachedEmbeddedFont.fontStyle == EmbeddedFontRegistry.getFontStyle(bold, italic))))){ return (cachedEmbeddedFont); }; }; cachedEmbeddedFont = new EmbeddedFont(fontName, bold, italic); return (cachedEmbeddedFont); } public function measureText(text:String, roundUp:Boolean=true):TextLineMetrics{ return (measure(text, false, roundUp)); } private function measure(s:String, html:Boolean, roundUp:Boolean):TextLineMetrics{ if (!s){ s = ""; }; var embeddedFont:Boolean; var fontModuleFactory:IFlexModuleFactory = embeddedFontRegistry.getAssociatedModuleFactory(getEmbeddedFont(font, bold, italic), moduleFactory); embeddedFont = !((fontModuleFactory == null)); if (fontModuleFactory == null){ fontModuleFactory = systemManager; }; var measurementTextField:TextField; measurementTextField = TextField(textFieldFactory.createTextField(fontModuleFactory)); if (html){ measurementTextField.htmlText = ""; } else { measurementTextField.text = ""; }; measurementTextField.defaultTextFormat = this; if (font){ measurementTextField.embedFonts = ((embeddedFont) || (((!((systemManager == null))) && (systemManager.isFontFaceEmbedded(this))))); } else { measurementTextField.embedFonts = false; }; measurementTextField.antiAliasType = antiAliasType; measurementTextField.gridFitType = gridFitType; measurementTextField.sharpness = sharpness; measurementTextField.thickness = thickness; if (html){ measurementTextField.htmlText = s; } else { measurementTextField.text = s; }; var lineMetrics:TextLineMetrics = measurementTextField.getLineMetrics(0); if (indent != null){ lineMetrics.width = (lineMetrics.width + indent); }; if (roundUp){ lineMetrics.width = Math.ceil(lineMetrics.width); lineMetrics.height = Math.ceil(lineMetrics.height); }; return (lineMetrics); } public function measureHTMLText(htmlText:String, roundUp:Boolean=true):TextLineMetrics{ return (measure(htmlText, true, roundUp)); } public function get moduleFactory():IFlexModuleFactory{ return (_moduleFactory); } private static function get embeddedFontRegistry():IEmbeddedFontRegistry{ if (!_embeddedFontRegistry){ _embeddedFontRegistry = IEmbeddedFontRegistry(Singleton.getInstance("mx.core::IEmbeddedFontRegistry")); }; return (_embeddedFontRegistry); } private static function get textFieldFactory():ITextFieldFactory{ if (!_textFieldFactory){ _textFieldFactory = ITextFieldFactory(Singleton.getInstance("mx.core::ITextFieldFactory")); }; return (_textFieldFactory); } } }//package mx.core
Section 138
//AddRemoveEffectTargetFilter (mx.effects.effectClasses.AddRemoveEffectTargetFilter) package mx.effects.effectClasses { import mx.effects.*; public class AddRemoveEffectTargetFilter extends EffectTargetFilter { public var add:Boolean;// = true mx_internal static const VERSION:String = "3.2.0.3958"; public function AddRemoveEffectTargetFilter(){ super(); filterProperties = ["parent"]; } override protected function defaultFilterFunction(propChanges:Array, instanceTarget:Object):Boolean{ var props:PropertyChanges; var n:int = propChanges.length; var i:int; while (i < n) { props = propChanges[i]; if (props.target == instanceTarget){ if (add){ return ((((props.start["parent"] == null)) && (!((props.end["parent"] == null))))); }; return (((!((props.start["parent"] == null))) && ((props.end["parent"] == null)))); }; i++; }; return (false); } } }//package mx.effects.effectClasses
Section 139
//HideShowEffectTargetFilter (mx.effects.effectClasses.HideShowEffectTargetFilter) package mx.effects.effectClasses { import mx.effects.*; public class HideShowEffectTargetFilter extends EffectTargetFilter { public var show:Boolean;// = true mx_internal static const VERSION:String = "3.2.0.3958"; public function HideShowEffectTargetFilter(){ super(); filterProperties = ["visible"]; } override protected function defaultFilterFunction(propChanges:Array, instanceTarget:Object):Boolean{ var props:PropertyChanges; var n:int = propChanges.length; var i:int; while (i < n) { props = propChanges[i]; if (props.target == instanceTarget){ return ((props.end["visible"] == show)); }; i++; }; return (false); } } }//package mx.effects.effectClasses
Section 140
//MoveInstance (mx.effects.effectClasses.MoveInstance) package mx.effects.effectClasses { import mx.core.*; import flash.events.*; import mx.events.*; import mx.styles.*; import mx.effects.*; public class MoveInstance extends TweenEffectInstance { public var xFrom:Number; public var yFrom:Number; private var left; private var forceClipping:Boolean;// = false public var xTo:Number; private var top; private var horizontalCenter; public var yTo:Number; private var oldWidth:Number; private var right; private var bottom; private var oldHeight:Number; public var xBy:Number; public var yBy:Number; private var checkClipping:Boolean;// = true private var verticalCenter; mx_internal static const VERSION:String = "3.2.0.3958"; public function MoveInstance(target:Object){ super(target); } override public function initEffect(event:Event):void{ super.initEffect(event); if ((((event is MoveEvent)) && ((event.type == MoveEvent.MOVE)))){ if (((((((((((isNaN(xFrom)) && (isNaN(xTo)))) && (isNaN(xBy)))) && (isNaN(yFrom)))) && (isNaN(yTo)))) && (isNaN(yBy)))){ xFrom = MoveEvent(event).oldX; xTo = target.x; yFrom = MoveEvent(event).oldY; yTo = target.y; }; }; } override public function play():void{ var vm:EdgeMetrics; var l:Number; var r:Number; var t:Number; var b:Number; var w:Number; var h:Number; super.play(); var _local9 = EffectManager; _local9.mx_internal::startBitmapEffect(IUIComponent(target)); if (isNaN(xFrom)){ xFrom = (((!(isNaN(xTo))) && (!(isNaN(xBy))))) ? (xTo - xBy) : target.x; }; if (isNaN(xTo)){ if (((((isNaN(xBy)) && (propertyChanges))) && (!((propertyChanges.end["x"] === undefined))))){ xTo = propertyChanges.end["x"]; } else { xTo = (isNaN(xBy)) ? target.x : (xFrom + xBy); }; }; if (isNaN(yFrom)){ yFrom = (((!(isNaN(yTo))) && (!(isNaN(yBy))))) ? (yTo - yBy) : target.y; }; if (isNaN(yTo)){ if (((((isNaN(yBy)) && (propertyChanges))) && (!((propertyChanges.end["y"] === undefined))))){ yTo = propertyChanges.end["y"]; } else { yTo = (isNaN(yBy)) ? target.y : (yFrom + yBy); }; }; tween = createTween(this, [xFrom, yFrom], [xTo, yTo], duration); var p:Container = (target.parent as Container); if (p){ vm = p.viewMetrics; l = vm.left; r = (p.width - vm.right); t = vm.top; b = (p.height - vm.bottom); if ((((((((((((((((xFrom < l)) || ((xTo < l)))) || (((xFrom + target.width) > r)))) || (((xTo + target.width) > r)))) || ((yFrom < t)))) || ((yTo < t)))) || (((yFrom + target.height) > b)))) || (((yTo + target.height) > b)))){ forceClipping = true; p.mx_internal::forceClipping = true; }; }; mx_internal::applyTweenStartValues(); if ((target is IStyleClient)){ left = target.getStyle("left"); if (left != undefined){ target.setStyle("left", undefined); }; right = target.getStyle("right"); if (right != undefined){ target.setStyle("right", undefined); }; top = target.getStyle("top"); if (top != undefined){ target.setStyle("top", undefined); }; bottom = target.getStyle("bottom"); if (bottom != undefined){ target.setStyle("bottom", undefined); }; horizontalCenter = target.getStyle("horizontalCenter"); if (horizontalCenter != undefined){ target.setStyle("horizontalCenter", undefined); }; verticalCenter = target.getStyle("verticalCenter"); if (verticalCenter != undefined){ target.setStyle("verticalCenter", undefined); }; if (((!((left == undefined))) && (!((right == undefined))))){ w = target.width; oldWidth = target.explicitWidth; target.width = w; }; if (((!((top == undefined))) && (!((bottom == undefined))))){ h = target.height; oldHeight = target.explicitHeight; target.height = h; }; }; } override public function onTweenUpdate(value:Object):void{ var p:Container; var vm:EdgeMetrics; var l:Number; var r:Number; var t:Number; var b:Number; EffectManager.suspendEventHandling(); if (((!(forceClipping)) && (checkClipping))){ p = (target.parent as Container); if (p){ vm = p.viewMetrics; l = vm.left; r = (p.width - vm.right); t = vm.top; b = (p.height - vm.bottom); if ((((((((value[0] < l)) || (((value[0] + target.width) > r)))) || ((value[1] < t)))) || (((value[1] + target.height) > b)))){ forceClipping = true; p.mx_internal::forceClipping = true; }; }; }; target.move(value[0], value[1]); EffectManager.resumeEventHandling(); } override public function onTweenEnd(value:Object):void{ var p:Container; var _local3 = EffectManager; _local3.mx_internal::endBitmapEffect(IUIComponent(target)); if (left != undefined){ target.setStyle("left", left); }; if (right != undefined){ target.setStyle("right", right); }; if (top != undefined){ target.setStyle("top", top); }; if (bottom != undefined){ target.setStyle("bottom", bottom); }; if (horizontalCenter != undefined){ target.setStyle("horizontalCenter", horizontalCenter); }; if (verticalCenter != undefined){ target.setStyle("verticalCenter", verticalCenter); }; if (((!((left == undefined))) && (!((right == undefined))))){ target.explicitWidth = oldWidth; }; if (((!((top == undefined))) && (!((bottom == undefined))))){ target.explicitHeight = oldHeight; }; if (forceClipping){ p = (target.parent as Container); if (p){ forceClipping = false; p.mx_internal::forceClipping = false; }; }; checkClipping = false; super.onTweenEnd(value); } } }//package mx.effects.effectClasses
Section 141
//PropertyChanges (mx.effects.effectClasses.PropertyChanges) package mx.effects.effectClasses { public class PropertyChanges { public var target:Object; public var start:Object; public var end:Object; mx_internal static const VERSION:String = "3.2.0.3958"; public function PropertyChanges(target:Object){ end = {}; start = {}; super(); this.target = target; } } }//package mx.effects.effectClasses
Section 142
//TweenEffectInstance (mx.effects.effectClasses.TweenEffectInstance) package mx.effects.effectClasses { import mx.core.*; import mx.events.*; import mx.effects.*; public class TweenEffectInstance extends EffectInstance { private var _seekTime:Number;// = 0 public var easingFunction:Function; public var tween:Tween; mx_internal var needToLayout:Boolean;// = false mx_internal static const VERSION:String = "3.2.0.3958"; public function TweenEffectInstance(target:Object){ super(target); } override public function stop():void{ super.stop(); if (tween){ tween.stop(); }; } mx_internal function applyTweenStartValues():void{ if (duration > 0){ onTweenUpdate(tween.getCurrentValue(0)); }; } override public function get playheadTime():Number{ if (tween){ return ((tween.playheadTime + super.playheadTime)); }; return (0); } protected function createTween(listener:Object, startValue:Object, endValue:Object, duration:Number=-1, minFps:Number=-1):Tween{ var newTween:Tween = new Tween(listener, startValue, endValue, duration, minFps); newTween.addEventListener(TweenEvent.TWEEN_START, tweenEventHandler); newTween.addEventListener(TweenEvent.TWEEN_UPDATE, tweenEventHandler); newTween.addEventListener(TweenEvent.TWEEN_END, tweenEventHandler); if (easingFunction != null){ newTween.easingFunction = easingFunction; }; if (_seekTime > 0){ newTween.seek(_seekTime); }; newTween.playReversed = playReversed; return (newTween); } private function tweenEventHandler(event:TweenEvent):void{ dispatchEvent(event); } override public function end():void{ stopRepeat = true; if (delayTimer){ delayTimer.reset(); }; if (tween){ tween.endTween(); tween = null; }; } override public function reverse():void{ super.reverse(); if (tween){ tween.reverse(); }; super.playReversed = !(playReversed); } override mx_internal function set playReversed(value:Boolean):void{ super.playReversed = value; if (tween){ tween.playReversed = value; }; } override public function resume():void{ super.resume(); if (tween){ tween.resume(); }; } public function onTweenEnd(value:Object):void{ onTweenUpdate(value); tween = null; if (needToLayout){ UIComponentGlobals.layoutManager.validateNow(); }; finishRepeat(); } public function onTweenUpdate(value:Object):void{ } override public function pause():void{ super.pause(); if (tween){ tween.pause(); }; } public function seek(playheadTime:Number):void{ if (tween){ tween.seek(playheadTime); } else { _seekTime = playheadTime; }; } } }//package mx.effects.effectClasses
Section 143
//ZoomInstance (mx.effects.effectClasses.ZoomInstance) package mx.effects.effectClasses { import flash.events.*; import mx.events.*; import mx.effects.*; public class ZoomInstance extends TweenEffectInstance { private var newY:Number; public var originY:Number; private var origX:Number; private var origY:Number; public var originX:Number; private var origPercentHeight:Number; public var zoomWidthFrom:Number; public var zoomWidthTo:Number; private var newX:Number; public var captureRollEvents:Boolean; private var origPercentWidth:Number; public var zoomHeightFrom:Number; private var origScaleX:Number; public var zoomHeightTo:Number; private var origScaleY:Number; private var scaledOriginX:Number; private var scaledOriginY:Number; private var show:Boolean;// = true private var _mouseHasMoved:Boolean;// = false mx_internal static const VERSION:String = "3.2.0.3958"; public function ZoomInstance(target:Object){ super(target); } override public function finishEffect():void{ if (captureRollEvents){ target.removeEventListener(MouseEvent.ROLL_OVER, mouseEventHandler, false); target.removeEventListener(MouseEvent.ROLL_OUT, mouseEventHandler, false); target.removeEventListener(MouseEvent.MOUSE_MOVE, mouseEventHandler, false); }; super.finishEffect(); } private function getScaleFromWidth(value:Number):Number{ return ((value / (target.width / Math.abs(target.scaleX)))); } override public function initEffect(event:Event):void{ super.initEffect(event); if ((((event.type == FlexEvent.HIDE)) || ((event.type == Event.REMOVED)))){ show = false; }; } private function getScaleFromHeight(value:Number):Number{ return ((value / (target.height / Math.abs(target.scaleY)))); } private function applyPropertyChanges():void{ var useSize:Boolean; var useScale:Boolean; var values:PropertyChanges = propertyChanges; if (values){ useSize = false; useScale = false; if (values.end["scaleX"] !== undefined){ zoomWidthFrom = (isNaN(zoomWidthFrom)) ? target.scaleX : zoomWidthFrom; zoomWidthTo = (isNaN(zoomWidthTo)) ? values.end["scaleX"] : zoomWidthTo; useScale = true; }; if (values.end["scaleY"] !== undefined){ zoomHeightFrom = (isNaN(zoomHeightFrom)) ? target.scaleY : zoomHeightFrom; zoomHeightTo = (isNaN(zoomHeightTo)) ? values.end["scaleY"] : zoomHeightTo; useScale = true; }; if (useScale){ return; }; if (values.end["width"] !== undefined){ zoomWidthFrom = (isNaN(zoomWidthFrom)) ? getScaleFromWidth(target.width) : zoomWidthFrom; zoomWidthTo = (isNaN(zoomWidthTo)) ? getScaleFromWidth(values.end["width"]) : zoomWidthTo; useSize = true; }; if (values.end["height"] !== undefined){ zoomHeightFrom = (isNaN(zoomHeightFrom)) ? getScaleFromHeight(target.height) : zoomHeightFrom; zoomHeightTo = (isNaN(zoomHeightTo)) ? getScaleFromHeight(values.end["height"]) : zoomHeightTo; useSize = true; }; if (useSize){ return; }; if (values.end["visible"] !== undefined){ show = values.end["visible"]; }; }; } private function mouseEventHandler(event:MouseEvent):void{ if (event.type == MouseEvent.MOUSE_MOVE){ _mouseHasMoved = true; } else { if ((((event.type == MouseEvent.ROLL_OUT)) || ((event.type == MouseEvent.ROLL_OVER)))){ if (!_mouseHasMoved){ event.stopImmediatePropagation(); }; _mouseHasMoved = false; }; }; } override public function play():void{ super.play(); applyPropertyChanges(); if (((((((isNaN(zoomWidthFrom)) && (isNaN(zoomWidthTo)))) && (isNaN(zoomHeightFrom)))) && (isNaN(zoomHeightTo)))){ if (show){ zoomWidthFrom = (zoomHeightFrom = 0); zoomWidthTo = target.scaleX; zoomHeightTo = target.scaleY; } else { zoomWidthFrom = target.scaleX; zoomHeightFrom = target.scaleY; zoomWidthTo = (zoomHeightTo = 0); }; } else { if (((isNaN(zoomWidthFrom)) && (isNaN(zoomWidthTo)))){ zoomWidthFrom = (zoomWidthTo = target.scaleX); } else { if (((isNaN(zoomHeightFrom)) && (isNaN(zoomHeightTo)))){ zoomHeightFrom = (zoomHeightTo = target.scaleY); }; }; if (isNaN(zoomWidthFrom)){ zoomWidthFrom = target.scaleX; } else { if (isNaN(zoomWidthTo)){ zoomWidthTo = ((zoomWidthFrom)==1) ? 0 : 1; }; }; if (isNaN(zoomHeightFrom)){ zoomHeightFrom = target.scaleY; } else { if (isNaN(zoomHeightTo)){ zoomHeightTo = ((zoomHeightFrom)==1) ? 0 : 1; }; }; }; if (zoomWidthFrom < 0.01){ zoomWidthFrom = 0.01; }; if (zoomWidthTo < 0.01){ zoomWidthTo = 0.01; }; if (zoomHeightFrom < 0.01){ zoomHeightFrom = 0.01; }; if (zoomHeightTo < 0.01){ zoomHeightTo = 0.01; }; origScaleX = target.scaleX; origScaleY = target.scaleY; newX = (origX = target.x); newY = (origY = target.y); if (isNaN(originX)){ scaledOriginX = (target.width / 2); } else { scaledOriginX = (originX * origScaleX); }; if (isNaN(originY)){ scaledOriginY = (target.height / 2); } else { scaledOriginY = (originY * origScaleY); }; scaledOriginX = Number(scaledOriginX.toFixed(1)); scaledOriginY = Number(scaledOriginY.toFixed(1)); origPercentWidth = target.percentWidth; if (!isNaN(origPercentWidth)){ target.width = target.width; }; origPercentHeight = target.percentHeight; if (!isNaN(origPercentHeight)){ target.height = target.height; }; tween = createTween(this, [zoomWidthFrom, zoomHeightFrom], [zoomWidthTo, zoomHeightTo], duration); if (captureRollEvents){ target.addEventListener(MouseEvent.ROLL_OVER, mouseEventHandler, false); target.addEventListener(MouseEvent.ROLL_OUT, mouseEventHandler, false); target.addEventListener(MouseEvent.MOUSE_MOVE, mouseEventHandler, false); }; } override public function onTweenEnd(value:Object):void{ var curWidth:Number; var curHeight:Number; if (!isNaN(origPercentWidth)){ curWidth = target.width; target.percentWidth = origPercentWidth; if (((target.parent) && ((target.parent.autoLayout == false)))){ target._width = curWidth; }; }; if (!isNaN(origPercentHeight)){ curHeight = target.height; target.percentHeight = origPercentHeight; if (((target.parent) && ((target.parent.autoLayout == false)))){ target._height = curHeight; }; }; super.onTweenEnd(value); if (hideOnEffectEnd){ EffectManager.suspendEventHandling(); target.scaleX = origScaleX; target.scaleY = origScaleY; target.move(origX, origY); EffectManager.resumeEventHandling(); }; } override public function onTweenUpdate(value:Object):void{ EffectManager.suspendEventHandling(); if (Math.abs((newX - target.x)) > 0.1){ origX = (origX + (Number(target.x.toFixed(1)) - newX)); }; if (Math.abs((newY - target.y)) > 0.1){ origY = (origY + (Number(target.y.toFixed(1)) - newY)); }; target.scaleX = value[0]; target.scaleY = value[1]; var ratioX:Number = (value[0] / origScaleX); var ratioY:Number = (value[1] / origScaleY); var newOriginX:Number = (scaledOriginX * ratioX); var newOriginY:Number = (scaledOriginY * ratioY); newX = ((scaledOriginX - newOriginX) + origX); newY = ((scaledOriginY - newOriginY) + origY); newX = Number(newX.toFixed(1)); newY = Number(newY.toFixed(1)); target.move(newX, newY); if (tween){ tween.needToLayout = true; } else { needToLayout = true; }; EffectManager.resumeEventHandling(); } } }//package mx.effects.effectClasses
Section 144
//Effect (mx.effects.Effect) package mx.effects { import mx.core.*; import mx.managers.*; import flash.events.*; import mx.events.*; import mx.effects.effectClasses.*; import flash.utils.*; public class Effect extends EventDispatcher implements IEffect { private var _perElementOffset:Number;// = 0 private var _hideFocusRing:Boolean;// = false private var _customFilter:EffectTargetFilter; public var repeatCount:int;// = 1 public var suspendBackgroundProcessing:Boolean;// = false public var startDelay:int;// = 0 private var _relevantProperties:Array; private var _callValidateNow:Boolean;// = false mx_internal var applyActualDimensions:Boolean;// = true private var _filter:String; private var _triggerEvent:Event; private var _effectTargetHost:IEffectTargetHost; mx_internal var durationExplicitlySet:Boolean;// = false public var repeatDelay:int;// = 0 private var _targets:Array; mx_internal var propertyChangesArray:Array; mx_internal var filterObject:EffectTargetFilter; protected var endValuesCaptured:Boolean;// = false public var instanceClass:Class; private var _duration:Number;// = 500 private var isPaused:Boolean;// = false private var _relevantStyles:Array; private var _instances:Array; mx_internal static const VERSION:String = "3.2.0.3958"; public function Effect(target:Object=null){ _instances = []; instanceClass = IEffectInstance; _relevantStyles = []; _targets = []; super(); this.target = target; } public function get targets():Array{ return (_targets); } public function set targets(value:Array):void{ var n:int = value.length; var i:int = (n - 1); while (i > 0) { if (value[i] == null){ value.splice(i, 1); }; i--; }; _targets = value; } public function set hideFocusRing(value:Boolean):void{ _hideFocusRing = value; } public function get hideFocusRing():Boolean{ return (_hideFocusRing); } public function stop():void{ var instance:IEffectInstance; var n:int = _instances.length; var i:int = n; while (i >= 0) { instance = IEffectInstance(_instances[i]); if (instance){ instance.stop(); }; i--; }; } public function captureStartValues():void{ var n:int; var i:int; if (targets.length > 0){ propertyChangesArray = []; _callValidateNow = true; n = targets.length; i = 0; while (i < n) { propertyChangesArray.push(new PropertyChanges(targets[i])); i++; }; propertyChangesArray = captureValues(propertyChangesArray, true); }; endValuesCaptured = false; } mx_internal function captureValues(propChanges:Array, setStartValues:Boolean):Array{ var valueMap:Object; var target:Object; var n:int; var i:int; var m:int; var j:int; var effectProps:Array = (filterObject) ? mergeArrays(relevantProperties, filterObject.filterProperties) : relevantProperties; if (((effectProps) && ((effectProps.length > 0)))){ n = propChanges.length; i = 0; while (i < n) { target = propChanges[i].target; valueMap = (setStartValues) ? propChanges[i].start : propChanges[i].end; m = effectProps.length; j = 0; while (j < m) { valueMap[effectProps[j]] = getValueFromTarget(target, effectProps[j]); j++; }; i++; }; }; var styles:Array = (filterObject) ? mergeArrays(relevantStyles, filterObject.filterStyles) : relevantStyles; if (((styles) && ((styles.length > 0)))){ n = propChanges.length; i = 0; while (i < n) { target = propChanges[i].target; valueMap = (setStartValues) ? propChanges[i].start : propChanges[i].end; m = styles.length; j = 0; while (j < m) { valueMap[styles[j]] = target.getStyle(styles[j]); j++; }; i++; }; }; return (propChanges); } protected function getValueFromTarget(target:Object, property:String){ if ((property in target)){ return (target[property]); }; return (undefined); } public function set target(value:Object):void{ _targets.splice(0); if (value){ _targets[0] = value; }; } public function get className():String{ var name:String = getQualifiedClassName(this); var index:int = name.indexOf("::"); if (index != -1){ name = name.substr((index + 2)); }; return (name); } public function set perElementOffset(value:Number):void{ _perElementOffset = value; } public function resume():void{ var n:int; var i:int; if (((isPlaying) && (isPaused))){ isPaused = false; n = _instances.length; i = 0; while (i < n) { IEffectInstance(_instances[i]).resume(); i++; }; }; } public function set duration(value:Number):void{ durationExplicitlySet = true; _duration = value; } public function play(targets:Array=null, playReversedFromEnd:Boolean=false):Array{ var newInstance:IEffectInstance; if ((((targets == null)) && (!((propertyChangesArray == null))))){ if (_callValidateNow){ LayoutManager.getInstance().validateNow(); }; if (!endValuesCaptured){ propertyChangesArray = captureValues(propertyChangesArray, false); }; propertyChangesArray = stripUnchangedValues(propertyChangesArray); applyStartValues(propertyChangesArray, this.targets); }; var newInstances:Array = createInstances(targets); var n:int = newInstances.length; var i:int; while (i < n) { newInstance = IEffectInstance(newInstances[i]); Object(newInstance).playReversed = playReversedFromEnd; newInstance.startEffect(); i++; }; return (newInstances); } public function captureEndValues():void{ propertyChangesArray = captureValues(propertyChangesArray, false); endValuesCaptured = true; } protected function filterInstance(propChanges:Array, target:Object):Boolean{ if (filterObject){ return (filterObject.filterInstance(propChanges, effectTargetHost, target)); }; return (true); } public function get customFilter():EffectTargetFilter{ return (_customFilter); } public function get effectTargetHost():IEffectTargetHost{ return (_effectTargetHost); } public function set relevantProperties(value:Array):void{ _relevantProperties = value; } public function captureMoreStartValues(targets:Array):void{ var additionalPropertyChangesArray:Array; var i:int; if (targets.length > 0){ additionalPropertyChangesArray = []; i = 0; while (i < targets.length) { additionalPropertyChangesArray.push(new PropertyChanges(targets[i])); i++; }; additionalPropertyChangesArray = captureValues(additionalPropertyChangesArray, true); propertyChangesArray = propertyChangesArray.concat(additionalPropertyChangesArray); }; } public function deleteInstance(instance:IEffectInstance):void{ EventDispatcher(instance).removeEventListener(EffectEvent.EFFECT_START, effectStartHandler); EventDispatcher(instance).removeEventListener(EffectEvent.EFFECT_END, effectEndHandler); var n:int = _instances.length; var i:int; while (i < n) { if (_instances[i] === instance){ _instances.splice(i, 1); }; i++; }; } public function get filter():String{ return (_filter); } public function set triggerEvent(value:Event):void{ _triggerEvent = value; } public function get target():Object{ if (_targets.length > 0){ return (_targets[0]); }; return (null); } public function get duration():Number{ return (_duration); } public function set customFilter(value:EffectTargetFilter):void{ _customFilter = value; filterObject = value; } public function get perElementOffset():Number{ return (_perElementOffset); } public function set effectTargetHost(value:IEffectTargetHost):void{ _effectTargetHost = value; } public function get isPlaying():Boolean{ return (((_instances) && ((_instances.length > 0)))); } protected function effectEndHandler(event:EffectEvent):void{ var instance:IEffectInstance = IEffectInstance(event.effectInstance); deleteInstance(instance); dispatchEvent(event); } public function get relevantProperties():Array{ if (_relevantProperties){ return (_relevantProperties); }; return (getAffectedProperties()); } public function createInstance(target:Object=null):IEffectInstance{ var n:int; var i:int; if (!target){ target = this.target; }; var newInstance:IEffectInstance; var props:PropertyChanges; var create:Boolean; var setPropsArray:Boolean; if (propertyChangesArray){ setPropsArray = true; create = filterInstance(propertyChangesArray, target); }; if (create){ newInstance = IEffectInstance(new instanceClass(target)); initInstance(newInstance); if (setPropsArray){ n = propertyChangesArray.length; i = 0; while (i < n) { if (propertyChangesArray[i].target == target){ newInstance.propertyChanges = propertyChangesArray[i]; }; i++; }; }; EventDispatcher(newInstance).addEventListener(EffectEvent.EFFECT_START, effectStartHandler); EventDispatcher(newInstance).addEventListener(EffectEvent.EFFECT_END, effectEndHandler); _instances.push(newInstance); if (triggerEvent){ newInstance.initEffect(triggerEvent); }; }; return (newInstance); } protected function effectStartHandler(event:EffectEvent):void{ dispatchEvent(event); } public function getAffectedProperties():Array{ return ([]); } public function set relevantStyles(value:Array):void{ _relevantStyles = value; } public function get triggerEvent():Event{ return (_triggerEvent); } protected function applyValueToTarget(target:Object, property:String, value, props:Object):void{ var target = target; var property = property; var value = value; var props = props; if ((property in target)){ if (((((applyActualDimensions) && ((target is IFlexDisplayObject)))) && ((property == "height")))){ target.setActualSize(target.width, value); } else { if (((((applyActualDimensions) && ((target is IFlexDisplayObject)))) && ((property == "width")))){ target.setActualSize(value, target.height); } else { target[property] = value; }; }; //unresolved jump var _slot1 = e; }; } protected function initInstance(instance:IEffectInstance):void{ instance.duration = duration; Object(instance).durationExplicitlySet = durationExplicitlySet; instance.effect = this; instance.effectTargetHost = effectTargetHost; instance.hideFocusRing = hideFocusRing; instance.repeatCount = repeatCount; instance.repeatDelay = repeatDelay; instance.startDelay = startDelay; instance.suspendBackgroundProcessing = suspendBackgroundProcessing; } mx_internal function applyStartValues(propChanges:Array, targets:Array):void{ var m:int; var j:int; var target:Object; var apply:Boolean; var effectProps:Array = relevantProperties; var n:int = propChanges.length; var i:int; while (i < n) { target = propChanges[i].target; apply = false; m = targets.length; j = 0; while (j < m) { if (targets[j] == target){ apply = filterInstance(propChanges, target); break; }; j++; }; if (apply){ m = effectProps.length; j = 0; while (j < m) { if ((((effectProps[j] in propChanges[i].start)) && ((effectProps[j] in target)))){ applyValueToTarget(target, effectProps[j], propChanges[i].start[effectProps[j]], propChanges[i].start); }; j++; }; m = relevantStyles.length; j = 0; while (j < m) { if ((relevantStyles[j] in propChanges[i].start)){ target.setStyle(relevantStyles[j], propChanges[i].start[relevantStyles[j]]); }; j++; }; }; i++; }; } public function end(effectInstance:IEffectInstance=null):void{ var n:int; var i:int; var instance:IEffectInstance; if (effectInstance){ effectInstance.end(); } else { n = _instances.length; i = n; while (i >= 0) { instance = IEffectInstance(_instances[i]); if (instance){ instance.end(); }; i--; }; }; } public function get relevantStyles():Array{ return (_relevantStyles); } public function createInstances(targets:Array=null):Array{ var newInstance:IEffectInstance; if (!targets){ targets = this.targets; }; var newInstances:Array = []; var n:int = targets.length; var offsetDelay:Number = 0; var i:int; while (i < n) { newInstance = createInstance(targets[i]); if (newInstance){ newInstance.startDelay = (newInstance.startDelay + offsetDelay); offsetDelay = (offsetDelay + perElementOffset); newInstances.push(newInstance); }; i++; }; triggerEvent = null; return (newInstances); } public function pause():void{ var n:int; var i:int; if (((isPlaying) && (!(isPaused)))){ isPaused = true; n = _instances.length; i = 0; while (i < n) { IEffectInstance(_instances[i]).pause(); i++; }; }; } public function set filter(value:String):void{ if (!customFilter){ _filter = value; switch (value){ case "add": case "remove": filterObject = new AddRemoveEffectTargetFilter(); AddRemoveEffectTargetFilter(filterObject).add = (value == "add"); break; case "hide": case "show": filterObject = new HideShowEffectTargetFilter(); HideShowEffectTargetFilter(filterObject).show = (value == "show"); break; case "move": filterObject = new EffectTargetFilter(); filterObject.filterProperties = ["x", "y"]; break; case "resize": filterObject = new EffectTargetFilter(); filterObject.filterProperties = ["width", "height"]; break; case "addItem": filterObject = new EffectTargetFilter(); filterObject.requiredSemantics = {added:true}; break; case "removeItem": filterObject = new EffectTargetFilter(); filterObject.requiredSemantics = {removed:true}; break; case "replacedItem": filterObject = new EffectTargetFilter(); filterObject.requiredSemantics = {replaced:true}; break; case "replacementItem": filterObject = new EffectTargetFilter(); filterObject.requiredSemantics = {replacement:true}; break; default: filterObject = null; break; }; }; } public function reverse():void{ var n:int; var i:int; if (isPlaying){ n = _instances.length; i = 0; while (i < n) { IEffectInstance(_instances[i]).reverse(); i++; }; }; } private static function mergeArrays(a1:Array, a2:Array):Array{ var i2:int; var addIt:Boolean; var i1:int; if (a2){ i2 = 0; while (i2 < a2.length) { addIt = true; i1 = 0; while (i1 < a1.length) { if (a1[i1] == a2[i2]){ addIt = false; break; }; i1++; }; if (addIt){ a1.push(a2[i2]); }; i2++; }; }; return (a1); } private static function stripUnchangedValues(propChanges:Array):Array{ var prop:Object; var i:int; while (i < propChanges.length) { for (prop in propChanges[i].start) { if ((((propChanges[i].start[prop] == propChanges[i].end[prop])) || ((((((((typeof(propChanges[i].start[prop]) == "number")) && ((typeof(propChanges[i].end[prop]) == "number")))) && (isNaN(propChanges[i].start[prop])))) && (isNaN(propChanges[i].end[prop])))))){ delete propChanges[i].start[prop]; delete propChanges[i].end[prop]; }; }; i++; }; return (propChanges); } } }//package mx.effects
Section 145
//EffectInstance (mx.effects.EffectInstance) package mx.effects { import mx.core.*; import flash.events.*; import mx.events.*; import mx.effects.effectClasses.*; import flash.utils.*; public class EffectInstance extends EventDispatcher implements IEffectInstance { private var _hideFocusRing:Boolean; private var delayStartTime:Number;// = 0 mx_internal var stopRepeat:Boolean;// = false private var playCount:int;// = 0 private var _repeatCount:int;// = 0 private var _suspendBackgroundProcessing:Boolean;// = false mx_internal var delayTimer:Timer; private var _triggerEvent:Event; private var _effectTargetHost:IEffectTargetHost; mx_internal var parentCompositeEffectInstance:EffectInstance; mx_internal var durationExplicitlySet:Boolean;// = false private var _effect:IEffect; private var _target:Object; mx_internal var hideOnEffectEnd:Boolean;// = false private var _startDelay:int;// = 0 private var delayElapsedTime:Number;// = 0 private var _repeatDelay:int;// = 0 private var _propertyChanges:PropertyChanges; private var _duration:Number;// = 500 private var _playReversed:Boolean; mx_internal static const VERSION:String = "3.2.0.3958"; public function EffectInstance(target:Object){ super(); this.target = target; } public function get playheadTime():Number{ return ((((Math.max((playCount - 1), 0) * duration) + (Math.max((playCount - 2), 0) * repeatDelay)) + (playReversed) ? 0 : startDelay)); } public function get hideFocusRing():Boolean{ return (_hideFocusRing); } public function stop():void{ if (delayTimer){ delayTimer.reset(); }; stopRepeat = true; finishEffect(); } public function finishEffect():void{ playCount = 0; dispatchEvent(new EffectEvent(EffectEvent.EFFECT_END, false, false, this)); if (target){ target.dispatchEvent(new EffectEvent(EffectEvent.EFFECT_END, false, false, this)); }; if ((target is UIComponent)){ UIComponent(target).effectFinished(this); }; EffectManager.effectFinished(this); } public function set hideFocusRing(value:Boolean):void{ _hideFocusRing = value; } public function finishRepeat():void{ if (((((!(stopRepeat)) && (!((playCount == 0))))) && ((((playCount < repeatCount)) || ((repeatCount == 0)))))){ if (repeatDelay > 0){ delayTimer = new Timer(repeatDelay, 1); delayStartTime = getTimer(); delayTimer.addEventListener(TimerEvent.TIMER, delayTimerHandler); delayTimer.start(); } else { play(); }; } else { finishEffect(); }; } mx_internal function get playReversed():Boolean{ return (_playReversed); } public function set effect(value:IEffect):void{ _effect = value; } public function get className():String{ var name:String = getQualifiedClassName(this); var index:int = name.indexOf("::"); if (index != -1){ name = name.substr((index + 2)); }; return (name); } public function set duration(value:Number):void{ durationExplicitlySet = true; _duration = value; } mx_internal function set playReversed(value:Boolean):void{ _playReversed = value; } public function resume():void{ if (((((delayTimer) && (!(delayTimer.running)))) && (!(isNaN(delayElapsedTime))))){ delayTimer.delay = (playReversed) ? delayElapsedTime : (delayTimer.delay - delayElapsedTime); delayTimer.start(); }; } public function get propertyChanges():PropertyChanges{ return (_propertyChanges); } public function set target(value:Object):void{ _target = value; } public function get repeatCount():int{ return (_repeatCount); } mx_internal function playWithNoDuration():void{ duration = 0; repeatCount = 1; repeatDelay = 0; startDelay = 0; startEffect(); } public function get startDelay():int{ return (_startDelay); } mx_internal function get actualDuration():Number{ var value:Number = NaN; if (repeatCount > 0){ value = (((duration * repeatCount) + ((repeatDelay * repeatCount) - 1)) + startDelay); }; return (value); } public function play():void{ playCount++; dispatchEvent(new EffectEvent(EffectEvent.EFFECT_START, false, false, this)); if (target){ target.dispatchEvent(new EffectEvent(EffectEvent.EFFECT_START, false, false, this)); }; } public function get suspendBackgroundProcessing():Boolean{ return (_suspendBackgroundProcessing); } public function get effectTargetHost():IEffectTargetHost{ return (_effectTargetHost); } public function set repeatDelay(value:int):void{ _repeatDelay = value; } public function set propertyChanges(value:PropertyChanges):void{ _propertyChanges = value; } mx_internal function eventHandler(event:Event):void{ if ((((event.type == FlexEvent.SHOW)) && ((hideOnEffectEnd == true)))){ hideOnEffectEnd = false; event.target.removeEventListener(FlexEvent.SHOW, eventHandler); }; } public function set repeatCount(value:int):void{ _repeatCount = value; } private function delayTimerHandler(event:TimerEvent):void{ delayTimer.reset(); delayStartTime = NaN; delayElapsedTime = NaN; play(); } public function set suspendBackgroundProcessing(value:Boolean):void{ _suspendBackgroundProcessing = value; } public function set triggerEvent(value:Event):void{ _triggerEvent = value; } public function set startDelay(value:int):void{ _startDelay = value; } public function get effect():IEffect{ return (_effect); } public function set effectTargetHost(value:IEffectTargetHost):void{ _effectTargetHost = value; } public function get target():Object{ return (_target); } public function startEffect():void{ EffectManager.effectStarted(this); if ((target is UIComponent)){ UIComponent(target).effectStarted(this); }; if ((((startDelay > 0)) && (!(playReversed)))){ delayTimer = new Timer(startDelay, 1); delayStartTime = getTimer(); delayTimer.addEventListener(TimerEvent.TIMER, delayTimerHandler); delayTimer.start(); } else { play(); }; } public function get repeatDelay():int{ return (_repeatDelay); } public function get duration():Number{ if (((!(durationExplicitlySet)) && (parentCompositeEffectInstance))){ return (parentCompositeEffectInstance.duration); }; return (_duration); } public function initEffect(event:Event):void{ triggerEvent = event; switch (event.type){ case "resizeStart": case "resizeEnd": if (!durationExplicitlySet){ duration = 250; }; break; case FlexEvent.HIDE: target.setVisible(true, true); hideOnEffectEnd = true; target.addEventListener(FlexEvent.SHOW, eventHandler); break; }; } public function get triggerEvent():Event{ return (_triggerEvent); } public function end():void{ if (delayTimer){ delayTimer.reset(); }; stopRepeat = true; finishEffect(); } public function reverse():void{ if (repeatCount > 0){ playCount = ((repeatCount - playCount) + 1); }; } public function pause():void{ if (((((delayTimer) && (delayTimer.running))) && (!(isNaN(delayStartTime))))){ delayTimer.stop(); delayElapsedTime = (getTimer() - delayStartTime); }; } } }//package mx.effects
Section 146
//EffectManager (mx.effects.EffectManager) package mx.effects { import flash.display.*; import mx.core.*; import flash.events.*; import mx.events.*; import mx.resources.*; import flash.utils.*; public class EffectManager extends EventDispatcher { mx_internal static const VERSION:String = "3.2.0.3958"; private static var _resourceManager:IResourceManager; private static var effects:Dictionary = new Dictionary(true); mx_internal static var effectsPlaying:Array = []; private static var targetsInfo:Array = []; private static var effectTriggersForEvent:Object = {}; mx_internal static var lastEffectCreated:Effect; private static var eventHandlingSuspendCount:Number = 0; private static var eventsForEffectTriggers:Object = {}; public function EffectManager(){ super(); } public static function suspendEventHandling():void{ eventHandlingSuspendCount++; } mx_internal static function registerEffectTrigger(name:String, event:String):void{ var strLen:Number; if (name != ""){ if (event == ""){ strLen = name.length; if ((((strLen > 6)) && ((name.substring((strLen - 6)) == "Effect")))){ event = name.substring(0, (strLen - 6)); }; }; if (event != ""){ effectTriggersForEvent[event] = name; eventsForEffectTriggers[name] = event; }; }; } private static function removedEffectHandler(target:DisplayObject, parent:DisplayObjectContainer, index:int, eventObj:Event):void{ suspendEventHandling(); parent.addChildAt(target, index); resumeEventHandling(); createAndPlayEffect(eventObj, target); } private static function createAndPlayEffect(eventObj:Event, target:Object):void{ var n:int; var i:int; var m:int; var j:int; var message:String; var type:String; var tweeningProperties:Array; var effectProperties:Array; var affectedProps:Array; var runningInstances:Array; var otherInst:EffectInstance; var effectInst:Effect = createEffectForType(target, eventObj.type); if (!effectInst){ return; }; if ((((effectInst is Zoom)) && ((eventObj.type == MoveEvent.MOVE)))){ message = resourceManager.getString("effects", "incorrectTrigger"); throw (new Error(message)); }; if (target.initialized == false){ type = eventObj.type; if ((((((((((type == MoveEvent.MOVE)) || ((type == ResizeEvent.RESIZE)))) || ((type == FlexEvent.SHOW)))) || ((type == FlexEvent.HIDE)))) || ((type == Event.CHANGE)))){ effectInst = null; return; }; }; if ((effectInst.target is IUIComponent)){ tweeningProperties = IUIComponent(effectInst.target).tweeningProperties; if (((tweeningProperties) && ((tweeningProperties.length > 0)))){ effectProperties = effectInst.getAffectedProperties(); n = tweeningProperties.length; m = effectProperties.length; i = 0; while (i < n) { j = 0; while (j < m) { if (tweeningProperties[i] == effectProperties[j]){ effectInst = null; return; }; j++; }; i++; }; }; }; if ((((effectInst.target is UIComponent)) && (UIComponent(effectInst.target).isEffectStarted))){ affectedProps = effectInst.getAffectedProperties(); i = 0; while (i < affectedProps.length) { runningInstances = effectInst.target.getEffectsForProperty(affectedProps[i]); if (runningInstances.length > 0){ if (eventObj.type == ResizeEvent.RESIZE){ return; }; j = 0; while (j < runningInstances.length) { otherInst = runningInstances[j]; if ((((eventObj.type == FlexEvent.SHOW)) && (otherInst.hideOnEffectEnd))){ otherInst.target.removeEventListener(FlexEvent.SHOW, otherInst.eventHandler); otherInst.hideOnEffectEnd = false; }; otherInst.end(); j++; }; }; i++; }; }; effectInst.triggerEvent = eventObj; effectInst.addEventListener(EffectEvent.EFFECT_END, EffectManager.effectEndHandler); lastEffectCreated = effectInst; var instances:Array = effectInst.play(); n = instances.length; i = 0; while (i < n) { effectsPlaying.push(new EffectNode(effectInst, instances[i])); i++; }; if (effectInst.suspendBackgroundProcessing){ UIComponent.suspendBackgroundProcessing(); }; } public static function endEffectsForTarget(target:IUIComponent):void{ var otherInst:EffectInstance; var n:int = effectsPlaying.length; var i:int = (n - 1); while (i >= 0) { otherInst = effectsPlaying[i].instance; if (otherInst.target == target){ otherInst.end(); }; i--; }; } private static function cacheOrUncacheTargetAsBitmap(target:IUIComponent, effectStart:Boolean=true, bitmapEffect:Boolean=true):void{ var n:int; var i:int; var info:Object; n = targetsInfo.length; i = 0; while (i < n) { if (targetsInfo[i].target == target){ info = targetsInfo[i]; break; }; i++; }; if (!info){ info = {target:target, bitmapEffectsCount:0, vectorEffectsCount:0}; targetsInfo.push(info); }; if (effectStart){ if (bitmapEffect){ info.bitmapEffectsCount++; if ((((info.vectorEffectsCount == 0)) && ((target is IDeferredInstantiationUIComponent)))){ IDeferredInstantiationUIComponent(target).cacheHeuristic = true; }; } else { if ((((((info.vectorEffectsCount++ == 0)) && ((target is IDeferredInstantiationUIComponent)))) && ((IDeferredInstantiationUIComponent(target).cachePolicy == UIComponentCachePolicy.AUTO)))){ target.cacheAsBitmap = false; }; }; } else { if (bitmapEffect){ if (info.bitmapEffectsCount != 0){ info.bitmapEffectsCount--; }; if ((target is IDeferredInstantiationUIComponent)){ IDeferredInstantiationUIComponent(target).cacheHeuristic = false; }; } else { if (info.vectorEffectsCount != 0){ if ((((--info.vectorEffectsCount == 0)) && (!((info.bitmapEffectsCount == 0))))){ n = info.bitmapEffectsCount; i = 0; while (i < n) { if ((target is IDeferredInstantiationUIComponent)){ IDeferredInstantiationUIComponent(target).cacheHeuristic = true; }; i++; }; }; }; }; if ((((info.bitmapEffectsCount == 0)) && ((info.vectorEffectsCount == 0)))){ n = targetsInfo.length; i = 0; while (i < n) { if (targetsInfo[i].target == target){ targetsInfo.splice(i, 1); break; }; i++; }; }; }; } mx_internal static function eventHandler(eventObj:Event):void{ var focusEventObj:FocusEvent; var targ:DisplayObject; var i:int; var parent:DisplayObjectContainer; var index:int; if (!(eventObj.currentTarget is IFlexDisplayObject)){ return; }; if (eventHandlingSuspendCount > 0){ return; }; if ((((eventObj is FocusEvent)) && ((((eventObj.type == FocusEvent.FOCUS_OUT)) || ((eventObj.type == FocusEvent.FOCUS_IN)))))){ focusEventObj = FocusEvent(eventObj); if (((focusEventObj.relatedObject) && (((focusEventObj.currentTarget.contains(focusEventObj.relatedObject)) || ((focusEventObj.currentTarget == focusEventObj.relatedObject)))))){ return; }; }; if ((((((eventObj.type == Event.ADDED)) || ((eventObj.type == Event.REMOVED)))) && (!((eventObj.target == eventObj.currentTarget))))){ return; }; if (eventObj.type == Event.REMOVED){ if ((eventObj.target is UIComponent)){ if (UIComponent(eventObj.target).initialized == false){ return; }; if (UIComponent(eventObj.target).isEffectStarted){ i = 0; while (i < UIComponent(eventObj.target)._effectsStarted.length) { if (UIComponent(eventObj.target)._effectsStarted[i].triggerEvent.type == Event.REMOVED){ return; }; i++; }; }; }; targ = (eventObj.target as DisplayObject); if (targ != null){ parent = (targ.parent as DisplayObjectContainer); if (parent != null){ index = parent.getChildIndex(targ); if (index >= 0){ if ((targ is UIComponent)){ UIComponent(targ).callLater(removedEffectHandler, [targ, parent, index, eventObj]); }; }; }; }; } else { createAndPlayEffect(eventObj, eventObj.currentTarget); }; } mx_internal static function endBitmapEffect(target:IUIComponent):void{ cacheOrUncacheTargetAsBitmap(target, false, true); } private static function animateSameProperty(a:Effect, b:Effect, c:EffectInstance):Boolean{ var aProps:Array; var bProps:Array; var n:int; var m:int; var i:int; var j:int; if (a.target == c.target){ aProps = a.getAffectedProperties(); bProps = b.getAffectedProperties(); n = aProps.length; m = bProps.length; i = 0; while (i < n) { j = 0; while (j < m) { if (aProps[i] == bProps[j]){ return (true); }; j++; }; i++; }; }; return (false); } mx_internal static function effectFinished(effect:EffectInstance):void{ delete effects[effect]; } mx_internal static function effectsInEffect():Boolean{ var i:*; for (i in effects) { return (true); }; return (false); } mx_internal static function effectEndHandler(event:EffectEvent):void{ var targ:DisplayObject; var parent:DisplayObjectContainer; var effectInst:IEffectInstance = event.effectInstance; var n:int = effectsPlaying.length; var i:int = (n - 1); while (i >= 0) { if (effectsPlaying[i].instance == effectInst){ effectsPlaying.splice(i, 1); break; }; i--; }; if (Object(effectInst).hideOnEffectEnd == true){ effectInst.target.removeEventListener(FlexEvent.SHOW, Object(effectInst).eventHandler); effectInst.target.setVisible(false, true); }; if (((effectInst.triggerEvent) && ((effectInst.triggerEvent.type == Event.REMOVED)))){ targ = (effectInst.target as DisplayObject); if (targ != null){ parent = (targ.parent as DisplayObjectContainer); if (parent != null){ suspendEventHandling(); parent.removeChild(targ); resumeEventHandling(); }; }; }; if (effectInst.suspendBackgroundProcessing){ UIComponent.resumeBackgroundProcessing(); }; } mx_internal static function startBitmapEffect(target:IUIComponent):void{ cacheOrUncacheTargetAsBitmap(target, true, true); } mx_internal static function setStyle(styleProp:String, target):void{ var eventName:String = eventsForEffectTriggers[styleProp]; if (((!((eventName == null))) && (!((eventName == ""))))){ target.addEventListener(eventName, EffectManager.eventHandler, false, EventPriority.EFFECT); }; } mx_internal static function getEventForEffectTrigger(effectTrigger:String):String{ var effectTrigger = effectTrigger; if (eventsForEffectTriggers){ return (eventsForEffectTriggers[effectTrigger]); //unresolved jump var _slot1 = e; return (""); }; return (""); } mx_internal static function createEffectForType(target:Object, type:String):Effect{ var cls:Class; var effectObj:Effect; var doc:Object; var target = target; var type = type; var trigger:String = effectTriggersForEvent[type]; if (trigger == ""){ trigger = (type + "Effect"); }; var value:Object = target.getStyle(trigger); if (!value){ return (null); }; if ((value is Class)){ cls = Class(value); return (new cls(target)); }; if ((value is String)){ doc = target.parentDocument; if (!doc){ doc = ApplicationGlobals.application; }; effectObj = doc[value]; } else { if ((value is Effect)){ effectObj = Effect(value); }; }; if (effectObj){ effectObj.target = target; return (effectObj); }; //unresolved jump var _slot1 = e; var effectClass:Class = Class(target.systemManager.getDefinitionByName(("mx.effects." + value))); if (effectClass){ return (new effectClass(target)); }; return (null); } mx_internal static function effectStarted(effect:EffectInstance):void{ effects[effect] = 1; } public static function resumeEventHandling():void{ eventHandlingSuspendCount--; } mx_internal static function startVectorEffect(target:IUIComponent):void{ cacheOrUncacheTargetAsBitmap(target, true, false); } mx_internal static function endVectorEffect(target:IUIComponent):void{ cacheOrUncacheTargetAsBitmap(target, false, false); } private static function get resourceManager():IResourceManager{ if (!_resourceManager){ _resourceManager = ResourceManager.getInstance(); }; return (_resourceManager); } } }//package mx.effects class EffectNode { public var factory:Effect; public var instance:EffectInstance; private function EffectNode(factory:Effect, instance:EffectInstance){ super(); this.factory = factory; this.instance = instance; } }
Section 147
//EffectTargetFilter (mx.effects.EffectTargetFilter) package mx.effects { import mx.effects.effectClasses.*; public class EffectTargetFilter { public var filterFunction:Function; public var filterStyles:Array; public var filterProperties:Array; public var requiredSemantics:Object;// = null mx_internal static const VERSION:String = "3.2.0.3958"; public function EffectTargetFilter(){ filterFunction = defaultFilterFunctionEx; filterProperties = []; filterStyles = []; super(); } protected function defaultFilterFunctionEx(propChanges:Array, semanticsProvider:IEffectTargetHost, target:Object):Boolean{ var prop:String; if (requiredSemantics){ for (prop in requiredSemantics) { if (!semanticsProvider){ return (false); }; if (semanticsProvider.getRendererSemanticValue(target, prop) != requiredSemantics[prop]){ return (false); }; }; return (true); }; return (defaultFilterFunction(propChanges, target)); } protected function defaultFilterFunction(propChanges:Array, instanceTarget:Object):Boolean{ var props:PropertyChanges; var triggers:Array; var m:int; var j:int; var n:int = propChanges.length; var i:int; while (i < n) { props = propChanges[i]; if (props.target == instanceTarget){ triggers = filterProperties.concat(filterStyles); m = triggers.length; j = 0; while (j < m) { if (((!((props.start[triggers[j]] === undefined))) && (!((props.end[triggers[j]] == props.start[triggers[j]]))))){ return (true); }; j++; }; }; i++; }; return (false); } public function filterInstance(propChanges:Array, semanticsProvider:IEffectTargetHost, target:Object):Boolean{ if (filterFunction.length == 2){ return (filterFunction(propChanges, target)); }; return (filterFunction(propChanges, semanticsProvider, target)); } } }//package mx.effects
Section 148
//IAbstractEffect (mx.effects.IAbstractEffect) package mx.effects { import flash.events.*; public interface IAbstractEffect extends IEventDispatcher { } }//package mx.effects
Section 149
//IEffect (mx.effects.IEffect) package mx.effects { import flash.events.*; public interface IEffect extends IAbstractEffect { function captureMoreStartValues(mx.effects:IEffect/mx.effects:IEffect:className/get:Array):void; function get triggerEvent():Event; function set targets(mx.effects:IEffect/mx.effects:IEffect:className/get:Array):void; function captureStartValues():void; function get hideFocusRing():Boolean; function get customFilter():EffectTargetFilter; function get effectTargetHost():IEffectTargetHost; function set triggerEvent(mx.effects:IEffect/mx.effects:IEffect:className/get:Event):void; function set hideFocusRing(mx.effects:IEffect/mx.effects:IEffect:className/get:Boolean):void; function captureEndValues():void; function get target():Object; function set customFilter(mx.effects:IEffect/mx.effects:IEffect:className/get:EffectTargetFilter):void; function get duration():Number; function get perElementOffset():Number; function get targets():Array; function set effectTargetHost(mx.effects:IEffect/mx.effects:IEffect:className/get:IEffectTargetHost):void; function get relevantStyles():Array; function set relevantProperties(mx.effects:IEffect/mx.effects:IEffect:className/get:Array):void; function set target(mx.effects:IEffect/mx.effects:IEffect:className/get:Object):void; function get className():String; function get isPlaying():Boolean; function deleteInstance(mx.effects:IEffect/mx.effects:IEffect:className/get:IEffectInstance):void; function set duration(mx.effects:IEffect/mx.effects:IEffect:className/get:Number):void; function createInstances(EffectTargetFilter:Array=null):Array; function end(mx.effects:IEffect/mx.effects:IEffect:className/get:IEffectInstance=null):void; function set perElementOffset(mx.effects:IEffect/mx.effects:IEffect:className/get:Number):void; function resume():void; function stop():void; function set filter(mx.effects:IEffect/mx.effects:IEffect:className/get:String):void; function createInstance(void:Object=null):IEffectInstance; function play(_arg1:Array=null, _arg2:Boolean=false):Array; function pause():void; function get relevantProperties():Array; function get filter():String; function reverse():void; function getAffectedProperties():Array; function set relevantStyles(mx.effects:IEffect/mx.effects:IEffect:className/get:Array):void; } }//package mx.effects
Section 150
//IEffectInstance (mx.effects.IEffectInstance) package mx.effects { import flash.events.*; import mx.effects.effectClasses.*; public interface IEffectInstance { function get playheadTime():Number; function get triggerEvent():Event; function set triggerEvent(mx.effects:IEffectInstance/mx.effects:IEffectInstance:className/get:Event):void; function get hideFocusRing():Boolean; function initEffect(mx.effects:IEffectInstance/mx.effects:IEffectInstance:className/get:Event):void; function set startDelay(mx.effects:IEffectInstance/mx.effects:IEffectInstance:className/get:int):void; function get effectTargetHost():IEffectTargetHost; function finishEffect():void; function set hideFocusRing(mx.effects:IEffectInstance/mx.effects:IEffectInstance:className/get:Boolean):void; function finishRepeat():void; function set repeatDelay(mx.effects:IEffectInstance/mx.effects:IEffectInstance:className/get:int):void; function get effect():IEffect; function startEffect():void; function get duration():Number; function get target():Object; function get startDelay():int; function stop():void; function set effectTargetHost(mx.effects:IEffectInstance/mx.effects:IEffectInstance:className/get:IEffectTargetHost):void; function set propertyChanges(mx.effects:IEffectInstance/mx.effects:IEffectInstance:className/get:PropertyChanges):void; function set effect(mx.effects:IEffectInstance/mx.effects:IEffectInstance:className/get:IEffect):void; function get className():String; function set duration(mx.effects:IEffectInstance/mx.effects:IEffectInstance:className/get:Number):void; function set target(mx.effects:IEffectInstance/mx.effects:IEffectInstance:className/get:Object):void; function end():void; function resume():void; function get propertyChanges():PropertyChanges; function set repeatCount(mx.effects:IEffectInstance/mx.effects:IEffectInstance:className/get:int):void; function reverse():void; function get repeatCount():int; function pause():void; function get repeatDelay():int; function set suspendBackgroundProcessing(mx.effects:IEffectInstance/mx.effects:IEffectInstance:className/get:Boolean):void; function play():void; function get suspendBackgroundProcessing():Boolean; } }//package mx.effects
Section 151
//IEffectTargetHost (mx.effects.IEffectTargetHost) package mx.effects { public interface IEffectTargetHost { function unconstrainRenderer(:Object):void; function removeDataEffectItem(:Object):void; function getRendererSemanticValue(_arg1:Object, _arg2:String):Object; function addDataEffectItem(:Object):void; } }//package mx.effects
Section 152
//Move (mx.effects.Move) package mx.effects { import mx.effects.effectClasses.*; public class Move extends TweenEffect { public var xFrom:Number; public var yFrom:Number; public var xBy:Number; public var yBy:Number; public var yTo:Number; public var xTo:Number; mx_internal static const VERSION:String = "3.2.0.3958"; private static var AFFECTED_PROPERTIES:Array = ["x", "y"]; public function Move(target:Object=null){ super(target); instanceClass = MoveInstance; } override protected function initInstance(instance:IEffectInstance):void{ var moveInstance:MoveInstance; super.initInstance(instance); moveInstance = MoveInstance(instance); moveInstance.xFrom = xFrom; moveInstance.xTo = xTo; moveInstance.xBy = xBy; moveInstance.yFrom = yFrom; moveInstance.yTo = yTo; moveInstance.yBy = yBy; } override public function getAffectedProperties():Array{ return (AFFECTED_PROPERTIES); } } }//package mx.effects
Section 153
//Tween (mx.effects.Tween) package mx.effects { import mx.core.*; import flash.events.*; import mx.events.*; import flash.utils.*; public class Tween extends EventDispatcher { private var started:Boolean;// = false private var previousUpdateTime:Number; public var duration:Number;// = 3000 private var id:int; private var arrayMode:Boolean; private var _isPlaying:Boolean;// = true private var startValue:Object; public var listener:Object; private var userEquation:Function; mx_internal var needToLayout:Boolean;// = false private var updateFunction:Function; private var _doSeek:Boolean;// = false mx_internal var startTime:Number; private var endFunction:Function; private var endValue:Object; private var _doReverse:Boolean;// = false private var _playheadTime:Number;// = 0 private var _invertValues:Boolean;// = false private var maxDelay:Number;// = 87.5 mx_internal static const VERSION:String = "3.2.0.3958"; private static var timer:Timer = null; private static var interval:Number = 10; mx_internal static var activeTweens:Array = []; mx_internal static var intervalTime:Number = NAN; public function Tween(listener:Object, startValue:Object, endValue:Object, duration:Number=-1, minFps:Number=-1, updateFunction:Function=null, endFunction:Function=null){ userEquation = defaultEasingFunction; super(); if (!listener){ return; }; if ((startValue is Array)){ arrayMode = true; }; this.listener = listener; this.startValue = startValue; this.endValue = endValue; if (((!(isNaN(duration))) && (!((duration == -1))))){ this.duration = duration; }; if (((!(isNaN(minFps))) && (!((minFps == -1))))){ maxDelay = (1000 / minFps); }; this.updateFunction = updateFunction; this.endFunction = endFunction; if (duration == 0){ id = -1; endTween(); } else { Tween.addTween(this); }; } mx_internal function get playheadTime():Number{ return (_playheadTime); } public function stop():void{ if (id >= 0){ Tween.removeTweenAt(id); }; } mx_internal function get playReversed():Boolean{ return (_invertValues); } mx_internal function set playReversed(value:Boolean):void{ _invertValues = value; } public function resume():void{ _isPlaying = true; startTime = (intervalTime - _playheadTime); if (_doReverse){ reverse(); _doReverse = false; }; } public function setTweenHandlers(updateFunction:Function, endFunction:Function):void{ this.updateFunction = updateFunction; this.endFunction = endFunction; } private function defaultEasingFunction(t:Number, b:Number, c:Number, d:Number):Number{ return ((((c / 2) * (Math.sin((Math.PI * ((t / d) - 0.5))) + 1)) + b)); } public function set easingFunction(value:Function):void{ userEquation = value; } public function endTween():void{ var event:TweenEvent = new TweenEvent(TweenEvent.TWEEN_END); var value:Object = getCurrentValue(duration); event.value = value; dispatchEvent(event); if (endFunction != null){ endFunction(value); } else { listener.onTweenEnd(value); }; if (id >= 0){ Tween.removeTweenAt(id); }; } public function reverse():void{ if (_isPlaying){ _doReverse = false; seek((duration - _playheadTime)); _invertValues = !(_invertValues); } else { _doReverse = !(_doReverse); }; } mx_internal function getCurrentValue(currentTime:Number):Object{ var returnArray:Array; var n:int; var i:int; if (duration == 0){ return (endValue); }; if (_invertValues){ currentTime = (duration - currentTime); }; if (arrayMode){ returnArray = []; n = startValue.length; i = 0; while (i < n) { returnArray[i] = userEquation(currentTime, startValue[i], (endValue[i] - startValue[i]), duration); i++; }; return (returnArray); //unresolved jump }; return (userEquation(currentTime, startValue, (Number(endValue) - Number(startValue)), duration)); } mx_internal function doInterval():Boolean{ var currentTime:Number; var currentValue:Object; var event:TweenEvent; var startEvent:TweenEvent; var tweenEnded:Boolean; previousUpdateTime = intervalTime; if (((_isPlaying) || (_doSeek))){ currentTime = (intervalTime - startTime); _playheadTime = currentTime; currentValue = getCurrentValue(currentTime); if ((((currentTime >= duration)) && (!(_doSeek)))){ endTween(); tweenEnded = true; } else { if (!started){ startEvent = new TweenEvent(TweenEvent.TWEEN_START); dispatchEvent(startEvent); started = true; }; event = new TweenEvent(TweenEvent.TWEEN_UPDATE); event.value = currentValue; dispatchEvent(event); if (updateFunction != null){ updateFunction(currentValue); } else { listener.onTweenUpdate(currentValue); }; }; _doSeek = false; }; return (tweenEnded); } public function pause():void{ _isPlaying = false; } public function seek(playheadTime:Number):void{ var clockTime:Number = intervalTime; previousUpdateTime = clockTime; startTime = (clockTime - playheadTime); _doSeek = true; } mx_internal static function removeTween(tween:Tween):void{ removeTweenAt(tween.id); } private static function addTween(tween:Tween):void{ tween.id = activeTweens.length; activeTweens.push(tween); if (!timer){ timer = new Timer(interval); timer.addEventListener(TimerEvent.TIMER, timerHandler); timer.start(); } else { timer.start(); }; if (isNaN(intervalTime)){ intervalTime = getTimer(); }; tween.startTime = (tween.previousUpdateTime = intervalTime); } private static function timerHandler(event:TimerEvent):void{ var tween:Tween; var needToLayout:Boolean; var oldTime:Number = intervalTime; intervalTime = getTimer(); var n:int = activeTweens.length; var i:int = n; while (i >= 0) { tween = Tween(activeTweens[i]); if (tween){ tween.needToLayout = false; tween.doInterval(); if (tween.needToLayout){ needToLayout = true; }; }; i--; }; if (needToLayout){ UIComponentGlobals.layoutManager.validateNow(); }; event.updateAfterEvent(); } private static function removeTweenAt(index:int):void{ var curTween:Tween; if ((((index >= activeTweens.length)) || ((index < 0)))){ return; }; activeTweens.splice(index, 1); var n:int = activeTweens.length; var i:int = index; while (i < n) { curTween = Tween(activeTweens[i]); curTween.id--; i++; }; if (n == 0){ intervalTime = NaN; timer.reset(); }; } } }//package mx.effects
Section 154
//TweenEffect (mx.effects.TweenEffect) package mx.effects { import flash.events.*; import mx.events.*; import mx.effects.effectClasses.*; public class TweenEffect extends Effect { public var easingFunction:Function;// = null mx_internal static const VERSION:String = "3.2.0.3958"; public function TweenEffect(target:Object=null){ super(target); instanceClass = TweenEffectInstance; } protected function tweenEventHandler(event:TweenEvent):void{ dispatchEvent(event); } override protected function initInstance(instance:IEffectInstance):void{ super.initInstance(instance); TweenEffectInstance(instance).easingFunction = easingFunction; EventDispatcher(instance).addEventListener(TweenEvent.TWEEN_START, tweenEventHandler); EventDispatcher(instance).addEventListener(TweenEvent.TWEEN_UPDATE, tweenEventHandler); EventDispatcher(instance).addEventListener(TweenEvent.TWEEN_END, tweenEventHandler); } } }//package mx.effects
Section 155
//Zoom (mx.effects.Zoom) package mx.effects { import mx.effects.effectClasses.*; public class Zoom extends TweenEffect { public var zoomHeightFrom:Number; public var zoomWidthTo:Number; public var originX:Number; public var zoomHeightTo:Number; public var originY:Number; public var captureRollEvents:Boolean; public var zoomWidthFrom:Number; mx_internal static const VERSION:String = "3.2.0.3958"; private static var AFFECTED_PROPERTIES:Array = ["scaleX", "scaleY", "x", "y", "width", "height"]; public function Zoom(target:Object=null){ super(target); instanceClass = ZoomInstance; applyActualDimensions = false; relevantProperties = ["scaleX", "scaleY", "width", "height", "visible"]; } override protected function initInstance(instance:IEffectInstance):void{ var zoomInstance:ZoomInstance; super.initInstance(instance); zoomInstance = ZoomInstance(instance); zoomInstance.zoomWidthFrom = zoomWidthFrom; zoomInstance.zoomWidthTo = zoomWidthTo; zoomInstance.zoomHeightFrom = zoomHeightFrom; zoomInstance.zoomHeightTo = zoomHeightTo; zoomInstance.originX = originX; zoomInstance.originY = originY; zoomInstance.captureRollEvents = captureRollEvents; } override public function getAffectedProperties():Array{ return (AFFECTED_PROPERTIES); } } }//package mx.effects
Section 156
//ChildExistenceChangedEvent (mx.events.ChildExistenceChangedEvent) package mx.events { import flash.display.*; import flash.events.*; public class ChildExistenceChangedEvent extends Event { public var relatedObject:DisplayObject; public static const CHILD_REMOVE:String = "childRemove"; mx_internal static const VERSION:String = "3.2.0.3958"; public static const OVERLAY_CREATED:String = "overlayCreated"; public static const CHILD_ADD:String = "childAdd"; public function ChildExistenceChangedEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false, relatedObject:DisplayObject=null){ super(type, bubbles, cancelable); this.relatedObject = relatedObject; } override public function clone():Event{ return (new ChildExistenceChangedEvent(type, bubbles, cancelable, relatedObject)); } } }//package mx.events
Section 157
//CollectionEvent (mx.events.CollectionEvent) package mx.events { import flash.events.*; public class CollectionEvent extends Event { public var kind:String; public var location:int; public var items:Array; public var oldLocation:int; mx_internal static const VERSION:String = "3.2.0.3958"; public static const COLLECTION_CHANGE:String = "collectionChange"; public function CollectionEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false, kind:String=null, location:int=-1, oldLocation:int=-1, items:Array=null){ super(type, bubbles, cancelable); this.kind = kind; this.location = location; this.oldLocation = oldLocation; this.items = (items) ? items : []; } override public function toString():String{ return (formatToString("CollectionEvent", "kind", "location", "oldLocation", "type", "bubbles", "cancelable", "eventPhase")); } override public function clone():Event{ return (new CollectionEvent(type, bubbles, cancelable, kind, location, oldLocation, items)); } } }//package mx.events
Section 158
//CollectionEventKind (mx.events.CollectionEventKind) package mx.events { public final class CollectionEventKind { public static const ADD:String = "add"; public static const REMOVE:String = "remove"; public static const UPDATE:String = "update"; public static const MOVE:String = "move"; mx_internal static const EXPAND:String = "expand"; public static const REPLACE:String = "replace"; mx_internal static const VERSION:String = "3.2.0.3958"; public static const REFRESH:String = "refresh"; public static const RESET:String = "reset"; public function CollectionEventKind(){ super(); } } }//package mx.events
Section 159
//DragEvent (mx.events.DragEvent) package mx.events { import mx.core.*; import flash.events.*; public class DragEvent extends MouseEvent { public var draggedItem:Object; public var action:String; public var dragInitiator:IUIComponent; public var dragSource:DragSource; public static const DRAG_DROP:String = "dragDrop"; public static const DRAG_COMPLETE:String = "dragComplete"; public static const DRAG_EXIT:String = "dragExit"; public static const DRAG_ENTER:String = "dragEnter"; public static const DRAG_START:String = "dragStart"; mx_internal static const VERSION:String = "3.2.0.3958"; public static const DRAG_OVER:String = "dragOver"; public function DragEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=true, dragInitiator:IUIComponent=null, dragSource:DragSource=null, action:String=null, ctrlKey:Boolean=false, altKey:Boolean=false, shiftKey:Boolean=false){ super(type, bubbles, cancelable); this.dragInitiator = dragInitiator; this.dragSource = dragSource; this.action = action; this.ctrlKey = ctrlKey; this.altKey = altKey; this.shiftKey = shiftKey; } override public function clone():Event{ var cloneEvent:DragEvent = new DragEvent(type, bubbles, cancelable, dragInitiator, dragSource, action, ctrlKey, altKey, shiftKey); cloneEvent.relatedObject = this.relatedObject; cloneEvent.localX = this.localX; cloneEvent.localY = this.localY; return (cloneEvent); } } }//package mx.events
Section 160
//DynamicEvent (mx.events.DynamicEvent) package mx.events { import flash.events.*; public dynamic class DynamicEvent extends Event { mx_internal static const VERSION:String = "3.2.0.3958"; public function DynamicEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false){ super(type, bubbles, cancelable); } override public function clone():Event{ var p:String; var event:DynamicEvent = new DynamicEvent(type, bubbles, cancelable); for (p in this) { event[p] = this[p]; }; return (event); } } }//package mx.events
Section 161
//EffectEvent (mx.events.EffectEvent) package mx.events { import flash.events.*; import mx.effects.*; public class EffectEvent extends Event { public var effectInstance:IEffectInstance; public static const EFFECT_START:String = "effectStart"; mx_internal static const VERSION:String = "3.2.0.3958"; public static const EFFECT_END:String = "effectEnd"; public function EffectEvent(eventType:String, bubbles:Boolean=false, cancelable:Boolean=false, effectInstance:IEffectInstance=null){ super(eventType, bubbles, cancelable); this.effectInstance = effectInstance; } override public function clone():Event{ return (new EffectEvent(type, bubbles, cancelable, effectInstance)); } } }//package mx.events
Section 162
//EventListenerRequest (mx.events.EventListenerRequest) package mx.events { import mx.core.*; import flash.events.*; public class EventListenerRequest extends SWFBridgeRequest { private var _priority:int; private var _useWeakReference:Boolean; private var _eventType:String; private var _useCapture:Boolean; public static const REMOVE_EVENT_LISTENER_REQUEST:String = "removeEventListenerRequest"; public static const ADD_EVENT_LISTENER_REQUEST:String = "addEventListenerRequest"; mx_internal static const VERSION:String = "3.2.0.3958"; public function EventListenerRequest(type:String, bubbles:Boolean=false, cancelable:Boolean=true, eventType:String=null, useCapture:Boolean=false, priority:int=0, useWeakReference:Boolean=false){ super(type, false, false); _eventType = eventType; _useCapture = useCapture; _priority = priority; _useWeakReference = useWeakReference; } public function get priority():int{ return (_priority); } public function get useWeakReference():Boolean{ return (_useWeakReference); } public function get eventType():String{ return (_eventType); } override public function clone():Event{ return (new EventListenerRequest(type, bubbles, cancelable, eventType, useCapture, priority, useWeakReference)); } public function get useCapture():Boolean{ return (_useCapture); } public static function marshal(event:Event):EventListenerRequest{ var eventObj:Object = event; return (new EventListenerRequest(eventObj.type, eventObj.bubbles, eventObj.cancelable, eventObj.eventType, eventObj.useCapture, eventObj.priority, eventObj.useWeakReference)); } } }//package mx.events
Section 163
//FlexEvent (mx.events.FlexEvent) package mx.events { import mx.core.*; import flash.events.*; public class FlexEvent extends Event { public static const ADD:String = "add"; public static const TRANSFORM_CHANGE:String = "transformChange"; public static const ENTER_FRAME:String = "flexEventEnterFrame"; public static const INIT_COMPLETE:String = "initComplete"; public static const REMOVE:String = "remove"; public static const BUTTON_DOWN:String = "buttonDown"; public static const EXIT_STATE:String = "exitState"; public static const CREATION_COMPLETE:String = "creationComplete"; public static const REPEAT:String = "repeat"; public static const LOADING:String = "loading"; public static const RENDER:String = "flexEventRender"; public static const REPEAT_START:String = "repeatStart"; public static const INITIALIZE:String = "initialize"; public static const ENTER_STATE:String = "enterState"; public static const URL_CHANGED:String = "urlChanged"; public static const REPEAT_END:String = "repeatEnd"; mx_internal static const VERSION:String = "3.2.0.3958"; public static const HIDE:String = "hide"; public static const ENTER:String = "enter"; public static const PRELOADER_DONE:String = "preloaderDone"; public static const CURSOR_UPDATE:String = "cursorUpdate"; public static const PREINITIALIZE:String = "preinitialize"; public static const INVALID:String = "invalid"; public static const IDLE:String = "idle"; public static const VALID:String = "valid"; public static const DATA_CHANGE:String = "dataChange"; public static const APPLICATION_COMPLETE:String = "applicationComplete"; public static const VALUE_COMMIT:String = "valueCommit"; public static const UPDATE_COMPLETE:String = "updateComplete"; public static const INIT_PROGRESS:String = "initProgress"; public static const SHOW:String = "show"; public function FlexEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false){ super(type, bubbles, cancelable); } override public function clone():Event{ return (new FlexEvent(type, bubbles, cancelable)); } } }//package mx.events
Section 164
//FlexMouseEvent (mx.events.FlexMouseEvent) package mx.events { import flash.display.*; import flash.events.*; public class FlexMouseEvent extends MouseEvent { public static const MOUSE_DOWN_OUTSIDE:String = "mouseDownOutside"; public static const MOUSE_WHEEL_OUTSIDE:String = "mouseWheelOutside"; mx_internal static const VERSION:String = "3.2.0.3958"; public function FlexMouseEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false, localX:Number=0, localY:Number=0, relatedObject:InteractiveObject=null, ctrlKey:Boolean=false, altKey:Boolean=false, shiftKey:Boolean=false, buttonDown:Boolean=false, delta:int=0){ super(type, bubbles, cancelable, localX, localY, relatedObject, ctrlKey, altKey, shiftKey, buttonDown, delta); } override public function clone():Event{ return (new FlexMouseEvent(type, bubbles, cancelable, localX, localY, relatedObject, ctrlKey, altKey, shiftKey, buttonDown, delta)); } } }//package mx.events
Section 165
//FocusRequestDirection (mx.events.FocusRequestDirection) package mx.events { public final class FocusRequestDirection { public static const BACKWARD:String = "backward"; public static const FORWARD:String = "forward"; mx_internal static const VERSION:String = "3.2.0.3958"; public static const BOTTOM:String = "bottom"; public static const TOP:String = "top"; public function FocusRequestDirection(){ super(); } } }//package mx.events
Section 166
//IndexChangedEvent (mx.events.IndexChangedEvent) package mx.events { import flash.display.*; import flash.events.*; public class IndexChangedEvent extends Event { public var newIndex:Number; public var triggerEvent:Event; public var relatedObject:DisplayObject; public var oldIndex:Number; public static const HEADER_SHIFT:String = "headerShift"; public static const CHANGE:String = "change"; mx_internal static const VERSION:String = "3.2.0.3958"; public static const CHILD_INDEX_CHANGE:String = "childIndexChange"; public function IndexChangedEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false, relatedObject:DisplayObject=null, oldIndex:Number=-1, newIndex:Number=-1, triggerEvent:Event=null){ super(type, bubbles, cancelable); this.relatedObject = relatedObject; this.oldIndex = oldIndex; this.newIndex = newIndex; this.triggerEvent = triggerEvent; } override public function clone():Event{ return (new IndexChangedEvent(type, bubbles, cancelable, relatedObject, oldIndex, newIndex, triggerEvent)); } } }//package mx.events
Section 167
//InterManagerRequest (mx.events.InterManagerRequest) package mx.events { import mx.core.*; import flash.events.*; public class InterManagerRequest extends Event { public var value:Object; public var name:String; public static const TOOLTIP_MANAGER_REQUEST:String = "tooltipManagerRequest"; public static const SYSTEM_MANAGER_REQUEST:String = "systemManagerRequest"; public static const INIT_MANAGER_REQUEST:String = "initManagerRequest"; public static const DRAG_MANAGER_REQUEST:String = "dragManagerRequest"; public static const CURSOR_MANAGER_REQUEST:String = "cursorManagerRequest"; mx_internal static const VERSION:String = "3.2.0.3958"; public function InterManagerRequest(type:String, bubbles:Boolean=false, cancelable:Boolean=false, name:String=null, value:Object=null){ super(type, bubbles, cancelable); this.name = name; this.value = value; } override public function clone():Event{ var cloneEvent:InterManagerRequest = new InterManagerRequest(type, bubbles, cancelable, name, value); return (cloneEvent); } } }//package mx.events
Section 168
//InvalidateRequestData (mx.events.InvalidateRequestData) package mx.events { import mx.core.*; public final class InvalidateRequestData { public static const SIZE:uint = 4; public static const PROPERTIES:uint = 2; mx_internal static const VERSION:String = "3.2.0.3958"; public static const DISPLAY_LIST:uint = 1; public function InvalidateRequestData(){ super(); } } }//package mx.events
Section 169
//ModuleEvent (mx.events.ModuleEvent) package mx.events { import mx.core.*; import flash.events.*; import mx.modules.*; public class ModuleEvent extends ProgressEvent { public var errorText:String; private var _module:IModuleInfo; public static const READY:String = "ready"; public static const ERROR:String = "error"; public static const PROGRESS:String = "progress"; mx_internal static const VERSION:String = "3.2.0.3958"; public static const SETUP:String = "setup"; public static const UNLOAD:String = "unload"; public function ModuleEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false, bytesLoaded:uint=0, bytesTotal:uint=0, errorText:String=null, module:IModuleInfo=null){ super(type, bubbles, cancelable, bytesLoaded, bytesTotal); this.errorText = errorText; this._module = module; } public function get module():IModuleInfo{ if (_module){ return (_module); }; return ((target as IModuleInfo)); } override public function clone():Event{ return (new ModuleEvent(type, bubbles, cancelable, bytesLoaded, bytesTotal, errorText, module)); } } }//package mx.events
Section 170
//MoveEvent (mx.events.MoveEvent) package mx.events { import flash.events.*; public class MoveEvent extends Event { public var oldX:Number; public var oldY:Number; mx_internal static const VERSION:String = "3.2.0.3958"; public static const MOVE:String = "move"; public function MoveEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false, oldX:Number=NaN, oldY:Number=NaN){ super(type, bubbles, cancelable); this.oldX = oldX; this.oldY = oldY; } override public function clone():Event{ return (new MoveEvent(type, bubbles, cancelable, oldX, oldY)); } } }//package mx.events
Section 171
//PropertyChangeEvent (mx.events.PropertyChangeEvent) package mx.events { import flash.events.*; public class PropertyChangeEvent extends Event { public var newValue:Object; public var kind:String; public var property:Object; public var oldValue:Object; public var source:Object; mx_internal static const VERSION:String = "3.2.0.3958"; public static const PROPERTY_CHANGE:String = "propertyChange"; public function PropertyChangeEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false, kind:String=null, property:Object=null, oldValue:Object=null, newValue:Object=null, source:Object=null){ super(type, bubbles, cancelable); this.kind = kind; this.property = property; this.oldValue = oldValue; this.newValue = newValue; this.source = source; } override public function clone():Event{ return (new PropertyChangeEvent(type, bubbles, cancelable, kind, property, oldValue, newValue, source)); } public static function createUpdateEvent(source:Object, property:Object, oldValue:Object, newValue:Object):PropertyChangeEvent{ var event:PropertyChangeEvent = new PropertyChangeEvent(PROPERTY_CHANGE); event.kind = PropertyChangeEventKind.UPDATE; event.oldValue = oldValue; event.newValue = newValue; event.source = source; event.property = property; return (event); } } }//package mx.events
Section 172
//PropertyChangeEventKind (mx.events.PropertyChangeEventKind) package mx.events { public final class PropertyChangeEventKind { mx_internal static const VERSION:String = "3.2.0.3958"; public static const UPDATE:String = "update"; public static const DELETE:String = "delete"; public function PropertyChangeEventKind(){ super(); } } }//package mx.events
Section 173
//ResizeEvent (mx.events.ResizeEvent) package mx.events { import flash.events.*; public class ResizeEvent extends Event { public var oldHeight:Number; public var oldWidth:Number; mx_internal static const VERSION:String = "3.2.0.3958"; public static const RESIZE:String = "resize"; public function ResizeEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false, oldWidth:Number=NaN, oldHeight:Number=NaN){ super(type, bubbles, cancelable); this.oldWidth = oldWidth; this.oldHeight = oldHeight; } override public function clone():Event{ return (new ResizeEvent(type, bubbles, cancelable, oldWidth, oldHeight)); } } }//package mx.events
Section 174
//ResourceEvent (mx.events.ResourceEvent) package mx.events { import mx.core.*; import flash.events.*; public class ResourceEvent extends ProgressEvent { public var errorText:String; mx_internal static const VERSION:String = "3.2.0.3958"; public static const COMPLETE:String = "complete"; public static const PROGRESS:String = "progress"; public static const ERROR:String = "error"; public function ResourceEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false, bytesLoaded:uint=0, bytesTotal:uint=0, errorText:String=null){ super(type, bubbles, cancelable, bytesLoaded, bytesTotal); this.errorText = errorText; } override public function clone():Event{ return (new ResourceEvent(type, bubbles, cancelable, bytesLoaded, bytesTotal, errorText)); } } }//package mx.events
Section 175
//RSLEvent (mx.events.RSLEvent) package mx.events { import mx.core.*; import flash.events.*; import flash.net.*; public class RSLEvent extends ProgressEvent { public var errorText:String; public var rslIndex:int; public var rslTotal:int; public var url:URLRequest; public static const RSL_PROGRESS:String = "rslProgress"; public static const RSL_ERROR:String = "rslError"; mx_internal static const VERSION:String = "3.2.0.3958"; public static const RSL_COMPLETE:String = "rslComplete"; public function RSLEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false, bytesLoaded:int=-1, bytesTotal:int=-1, rslIndex:int=-1, rslTotal:int=-1, url:URLRequest=null, errorText:String=null){ super(type, bubbles, cancelable, bytesLoaded, bytesTotal); this.rslIndex = rslIndex; this.rslTotal = rslTotal; this.url = url; this.errorText = errorText; } override public function clone():Event{ return (new RSLEvent(type, bubbles, cancelable, bytesLoaded, bytesTotal, rslIndex, rslTotal, url, errorText)); } } }//package mx.events
Section 176
//SandboxMouseEvent (mx.events.SandboxMouseEvent) package mx.events { import mx.core.*; import flash.events.*; public class SandboxMouseEvent extends Event { public var buttonDown:Boolean; public var altKey:Boolean; public var ctrlKey:Boolean; public var shiftKey:Boolean; public static const CLICK_SOMEWHERE:String = "clickSomewhere"; public static const MOUSE_UP_SOMEWHERE:String = "mouseUpSomewhere"; public static const DOUBLE_CLICK_SOMEWHERE:String = "coubleClickSomewhere"; public static const MOUSE_WHEEL_SOMEWHERE:String = "mouseWheelSomewhere"; public static const MOUSE_DOWN_SOMEWHERE:String = "mouseDownSomewhere"; mx_internal static const VERSION:String = "3.2.0.3958"; public static const MOUSE_MOVE_SOMEWHERE:String = "mouseMoveSomewhere"; public function SandboxMouseEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false, ctrlKey:Boolean=false, altKey:Boolean=false, shiftKey:Boolean=false, buttonDown:Boolean=false){ super(type, bubbles, cancelable); this.ctrlKey = ctrlKey; this.altKey = altKey; this.shiftKey = shiftKey; this.buttonDown = buttonDown; } override public function clone():Event{ return (new SandboxMouseEvent(type, bubbles, cancelable, ctrlKey, altKey, shiftKey, buttonDown)); } public static function marshal(event:Event):SandboxMouseEvent{ var eventObj:Object = event; return (new SandboxMouseEvent(eventObj.type, eventObj.bubbles, eventObj.cancelable, eventObj.ctrlKey, eventObj.altKey, eventObj.shiftKey, eventObj.buttonDown)); } } }//package mx.events
Section 177
//ScrollEvent (mx.events.ScrollEvent) package mx.events { import flash.events.*; public class ScrollEvent extends Event { public var detail:String; public var delta:Number; public var position:Number; public var direction:String; mx_internal static const VERSION:String = "3.2.0.3958"; public static const SCROLL:String = "scroll"; public function ScrollEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false, detail:String=null, position:Number=NaN, direction:String=null, delta:Number=NaN){ super(type, bubbles, cancelable); this.detail = detail; this.position = position; this.direction = direction; this.delta = delta; } override public function clone():Event{ return (new ScrollEvent(type, bubbles, cancelable, detail, position, direction, delta)); } } }//package mx.events
Section 178
//ScrollEventDetail (mx.events.ScrollEventDetail) package mx.events { public final class ScrollEventDetail { public static const LINE_UP:String = "lineUp"; public static const AT_RIGHT:String = "atRight"; public static const PAGE_UP:String = "pageUp"; public static const LINE_DOWN:String = "lineDown"; public static const PAGE_DOWN:String = "pageDown"; public static const AT_LEFT:String = "atLeft"; public static const PAGE_RIGHT:String = "pageRight"; public static const THUMB_POSITION:String = "thumbPosition"; public static const AT_TOP:String = "atTop"; public static const LINE_LEFT:String = "lineLeft"; public static const AT_BOTTOM:String = "atBottom"; public static const LINE_RIGHT:String = "lineRight"; public static const THUMB_TRACK:String = "thumbTrack"; public static const PAGE_LEFT:String = "pageLeft"; mx_internal static const VERSION:String = "3.2.0.3958"; public function ScrollEventDetail(){ super(); } } }//package mx.events
Section 179
//ScrollEventDirection (mx.events.ScrollEventDirection) package mx.events { public final class ScrollEventDirection { public static const HORIZONTAL:String = "horizontal"; public static const VERTICAL:String = "vertical"; mx_internal static const VERSION:String = "3.2.0.3958"; public function ScrollEventDirection(){ super(); } } }//package mx.events
Section 180
//StateChangeEvent (mx.events.StateChangeEvent) package mx.events { import flash.events.*; public class StateChangeEvent extends Event { public var newState:String; public var oldState:String; public static const CURRENT_STATE_CHANGING:String = "currentStateChanging"; public static const CURRENT_STATE_CHANGE:String = "currentStateChange"; mx_internal static const VERSION:String = "3.2.0.3958"; public function StateChangeEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false, oldState:String=null, newState:String=null){ super(type, bubbles, cancelable); this.oldState = oldState; this.newState = newState; } override public function clone():Event{ return (new StateChangeEvent(type, bubbles, cancelable, oldState, newState)); } } }//package mx.events
Section 181
//StyleEvent (mx.events.StyleEvent) package mx.events { import mx.core.*; import flash.events.*; public class StyleEvent extends ProgressEvent { public var errorText:String; mx_internal static const VERSION:String = "3.2.0.3958"; public static const COMPLETE:String = "complete"; public static const PROGRESS:String = "progress"; public static const ERROR:String = "error"; public function StyleEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false, bytesLoaded:uint=0, bytesTotal:uint=0, errorText:String=null){ super(type, bubbles, cancelable, bytesLoaded, bytesTotal); this.errorText = errorText; } override public function clone():Event{ return (new StyleEvent(type, bubbles, cancelable, bytesLoaded, bytesTotal, errorText)); } } }//package mx.events
Section 182
//SWFBridgeEvent (mx.events.SWFBridgeEvent) package mx.events { import mx.core.*; import flash.events.*; public class SWFBridgeEvent extends Event { public var data:Object; public static const BRIDGE_FOCUS_MANAGER_ACTIVATE:String = "bridgeFocusManagerActivate"; public static const BRIDGE_WINDOW_ACTIVATE:String = "bridgeWindowActivate"; public static const BRIDGE_WINDOW_DEACTIVATE:String = "brdigeWindowDeactivate"; mx_internal static const VERSION:String = "3.2.0.3958"; public static const BRIDGE_NEW_APPLICATION:String = "bridgeNewApplication"; public static const BRIDGE_APPLICATION_UNLOADING:String = "bridgeApplicationUnloading"; public static const BRIDGE_APPLICATION_ACTIVATE:String = "bridgeApplicationActivate"; public function SWFBridgeEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false, data:Object=null){ super(type, bubbles, cancelable); this.data = data; } override public function clone():Event{ return (new SWFBridgeEvent(type, bubbles, cancelable, data)); } public static function marshal(event:Event):SWFBridgeEvent{ var eventObj:Object = event; return (new SWFBridgeEvent(eventObj.type, eventObj.bubbles, eventObj.cancelable, eventObj.data)); } } }//package mx.events
Section 183
//SWFBridgeRequest (mx.events.SWFBridgeRequest) package mx.events { import mx.core.*; import flash.events.*; public class SWFBridgeRequest extends Event { public var requestor:IEventDispatcher; public var data:Object; public static const SHOW_MOUSE_CURSOR_REQUEST:String = "showMouseCursorRequest"; public static const DEACTIVATE_POP_UP_REQUEST:String = "deactivatePopUpRequest"; public static const SET_ACTUAL_SIZE_REQUEST:String = "setActualSizeRequest"; public static const MOVE_FOCUS_REQUEST:String = "moveFocusRequest"; public static const GET_VISIBLE_RECT_REQUEST:String = "getVisibleRectRequest"; public static const ADD_POP_UP_PLACE_HOLDER_REQUEST:String = "addPopUpPlaceHolderRequest"; public static const REMOVE_POP_UP_PLACE_HOLDER_REQUEST:String = "removePopUpPlaceHolderRequest"; public static const RESET_MOUSE_CURSOR_REQUEST:String = "resetMouseCursorRequest"; public static const ADD_POP_UP_REQUEST:String = "addPopUpRequest"; public static const GET_SIZE_REQUEST:String = "getSizeRequest"; public static const SHOW_MODAL_WINDOW_REQUEST:String = "showModalWindowRequest"; public static const ACTIVATE_FOCUS_REQUEST:String = "activateFocusRequest"; public static const DEACTIVATE_FOCUS_REQUEST:String = "deactivateFocusRequest"; public static const HIDE_MOUSE_CURSOR_REQUEST:String = "hideMouseCursorRequest"; public static const ACTIVATE_POP_UP_REQUEST:String = "activatePopUpRequest"; public static const IS_BRIDGE_CHILD_REQUEST:String = "isBridgeChildRequest"; public static const CAN_ACTIVATE_POP_UP_REQUEST:String = "canActivateRequestPopUpRequest"; public static const HIDE_MODAL_WINDOW_REQUEST:String = "hideModalWindowRequest"; public static const INVALIDATE_REQUEST:String = "invalidateRequest"; public static const SET_SHOW_FOCUS_INDICATOR_REQUEST:String = "setShowFocusIndicatorRequest"; public static const CREATE_MODAL_WINDOW_REQUEST:String = "createModalWindowRequest"; mx_internal static const VERSION:String = "3.2.0.3958"; public static const REMOVE_POP_UP_REQUEST:String = "removePopUpRequest"; public function SWFBridgeRequest(type:String, bubbles:Boolean=false, cancelable:Boolean=false, requestor:IEventDispatcher=null, data:Object=null){ super(type, bubbles, cancelable); this.requestor = requestor; this.data = data; } override public function clone():Event{ return (new SWFBridgeRequest(type, bubbles, cancelable, requestor, data)); } public static function marshal(event:Event):SWFBridgeRequest{ var eventObj:Object = event; return (new SWFBridgeRequest(eventObj.type, eventObj.bubbles, eventObj.cancelable, eventObj.requestor, eventObj.data)); } } }//package mx.events
Section 184
//ToolTipEvent (mx.events.ToolTipEvent) package mx.events { import mx.core.*; import flash.events.*; public class ToolTipEvent extends Event { public var toolTip:IToolTip; public static const TOOL_TIP_SHOWN:String = "toolTipShown"; public static const TOOL_TIP_CREATE:String = "toolTipCreate"; public static const TOOL_TIP_SHOW:String = "toolTipShow"; public static const TOOL_TIP_HIDE:String = "toolTipHide"; public static const TOOL_TIP_END:String = "toolTipEnd"; mx_internal static const VERSION:String = "3.2.0.3958"; public static const TOOL_TIP_START:String = "toolTipStart"; public function ToolTipEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false, toolTip:IToolTip=null){ super(type, bubbles, cancelable); this.toolTip = toolTip; } override public function clone():Event{ return (new ToolTipEvent(type, bubbles, cancelable, toolTip)); } } }//package mx.events
Section 185
//TweenEvent (mx.events.TweenEvent) package mx.events { import flash.events.*; public class TweenEvent extends Event { public var value:Object; public static const TWEEN_END:String = "tweenEnd"; mx_internal static const VERSION:String = "3.2.0.3958"; public static const TWEEN_UPDATE:String = "tweenUpdate"; public static const TWEEN_START:String = "tweenStart"; public function TweenEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false, value:Object=null){ super(type, bubbles, cancelable); this.value = value; } override public function clone():Event{ return (new TweenEvent(type, bubbles, cancelable, value)); } } }//package mx.events
Section 186
//ValidationResultEvent (mx.events.ValidationResultEvent) package mx.events { import flash.events.*; public class ValidationResultEvent extends Event { public var results:Array; public var field:String; public static const INVALID:String = "invalid"; mx_internal static const VERSION:String = "3.2.0.3958"; public static const VALID:String = "valid"; public function ValidationResultEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false, field:String=null, results:Array=null){ super(type, bubbles, cancelable); this.field = field; this.results = results; } public function get message():String{ var msg:String = ""; var n:int = results.length; var i:int; while (i < n) { if (results[i].isError){ msg = (msg + ((msg == "")) ? "" : "\n"); msg = (msg + results[i].errorMessage); }; i++; }; return (msg); } override public function clone():Event{ return (new ValidationResultEvent(type, bubbles, cancelable, field, results)); } } }//package mx.events
Section 187
//RectangularDropShadow (mx.graphics.RectangularDropShadow) package mx.graphics { import flash.display.*; import flash.geom.*; import mx.core.*; import mx.utils.*; import flash.filters.*; public class RectangularDropShadow { private var leftShadow:BitmapData; private var _tlRadius:Number;// = 0 private var _trRadius:Number;// = 0 private var _angle:Number;// = 45 private var topShadow:BitmapData; private var _distance:Number;// = 4 private var rightShadow:BitmapData; private var _alpha:Number;// = 0.4 private var shadow:BitmapData; private var _brRadius:Number;// = 0 private var _blRadius:Number;// = 0 private var _color:int;// = 0 private var bottomShadow:BitmapData; private var changed:Boolean;// = true mx_internal static const VERSION:String = "3.2.0.3958"; public function RectangularDropShadow(){ super(); } public function get blRadius():Number{ return (_blRadius); } public function set brRadius(value:Number):void{ if (_brRadius != value){ _brRadius = value; changed = true; }; } public function set color(value:int):void{ if (_color != value){ _color = value; changed = true; }; } public function drawShadow(g:Graphics, x:Number, y:Number, width:Number, height:Number):void{ var tlWidth:Number; var tlHeight:Number; var trWidth:Number; var trHeight:Number; var blWidth:Number; var blHeight:Number; var brWidth:Number; var brHeight:Number; if (changed){ createShadowBitmaps(); changed = false; }; width = Math.ceil(width); height = Math.ceil(height); var leftThickness:int = (leftShadow) ? leftShadow.width : 0; var rightThickness:int = (rightShadow) ? rightShadow.width : 0; var topThickness:int = (topShadow) ? topShadow.height : 0; var bottomThickness:int = (bottomShadow) ? bottomShadow.height : 0; var widthThickness:int = (leftThickness + rightThickness); var heightThickness:int = (topThickness + bottomThickness); var maxCornerHeight:Number = ((height + heightThickness) / 2); var maxCornerWidth:Number = ((width + widthThickness) / 2); var matrix:Matrix = new Matrix(); if (((leftShadow) || (topShadow))){ tlWidth = Math.min((tlRadius + widthThickness), maxCornerWidth); tlHeight = Math.min((tlRadius + heightThickness), maxCornerHeight); matrix.tx = (x - leftThickness); matrix.ty = (y - topThickness); g.beginBitmapFill(shadow, matrix); g.drawRect((x - leftThickness), (y - topThickness), tlWidth, tlHeight); g.endFill(); }; if (((rightShadow) || (topShadow))){ trWidth = Math.min((trRadius + widthThickness), maxCornerWidth); trHeight = Math.min((trRadius + heightThickness), maxCornerHeight); matrix.tx = (((x + width) + rightThickness) - shadow.width); matrix.ty = (y - topThickness); g.beginBitmapFill(shadow, matrix); g.drawRect((((x + width) + rightThickness) - trWidth), (y - topThickness), trWidth, trHeight); g.endFill(); }; if (((leftShadow) || (bottomShadow))){ blWidth = Math.min((blRadius + widthThickness), maxCornerWidth); blHeight = Math.min((blRadius + heightThickness), maxCornerHeight); matrix.tx = (x - leftThickness); matrix.ty = (((y + height) + bottomThickness) - shadow.height); g.beginBitmapFill(shadow, matrix); g.drawRect((x - leftThickness), (((y + height) + bottomThickness) - blHeight), blWidth, blHeight); g.endFill(); }; if (((rightShadow) || (bottomShadow))){ brWidth = Math.min((brRadius + widthThickness), maxCornerWidth); brHeight = Math.min((brRadius + heightThickness), maxCornerHeight); matrix.tx = (((x + width) + rightThickness) - shadow.width); matrix.ty = (((y + height) + bottomThickness) - shadow.height); g.beginBitmapFill(shadow, matrix); g.drawRect((((x + width) + rightThickness) - brWidth), (((y + height) + bottomThickness) - brHeight), brWidth, brHeight); g.endFill(); }; if (leftShadow){ matrix.tx = (x - leftThickness); matrix.ty = 0; g.beginBitmapFill(leftShadow, matrix); g.drawRect((x - leftThickness), ((y - topThickness) + tlHeight), leftThickness, ((((height + topThickness) + bottomThickness) - tlHeight) - blHeight)); g.endFill(); }; if (rightShadow){ matrix.tx = (x + width); matrix.ty = 0; g.beginBitmapFill(rightShadow, matrix); g.drawRect((x + width), ((y - topThickness) + trHeight), rightThickness, ((((height + topThickness) + bottomThickness) - trHeight) - brHeight)); g.endFill(); }; if (topShadow){ matrix.tx = 0; matrix.ty = (y - topThickness); g.beginBitmapFill(topShadow, matrix); g.drawRect(((x - leftThickness) + tlWidth), (y - topThickness), ((((width + leftThickness) + rightThickness) - tlWidth) - trWidth), topThickness); g.endFill(); }; if (bottomShadow){ matrix.tx = 0; matrix.ty = (y + height); g.beginBitmapFill(bottomShadow, matrix); g.drawRect(((x - leftThickness) + blWidth), (y + height), ((((width + leftThickness) + rightThickness) - blWidth) - brWidth), bottomThickness); g.endFill(); }; } public function get brRadius():Number{ return (_brRadius); } public function get angle():Number{ return (_angle); } private function createShadowBitmaps():void{ var roundRectWidth:Number = ((Math.max(tlRadius, blRadius) + (2 * distance)) + Math.max(trRadius, brRadius)); var roundRectHeight:Number = ((Math.max(tlRadius, trRadius) + (2 * distance)) + Math.max(blRadius, brRadius)); if ((((roundRectWidth < 0)) || ((roundRectHeight < 0)))){ return; }; var roundRect:Shape = new FlexShape(); var g:Graphics = roundRect.graphics; g.beginFill(0xFFFFFF); GraphicsUtil.drawRoundRectComplex(g, 0, 0, roundRectWidth, roundRectHeight, tlRadius, trRadius, blRadius, brRadius); g.endFill(); var roundRectBitmap:BitmapData = new BitmapData(roundRectWidth, roundRectHeight, true, 0); roundRectBitmap.draw(roundRect, new Matrix()); var filter:DropShadowFilter = new DropShadowFilter(distance, angle, color, alpha); filter.knockout = true; var inputRect:Rectangle = new Rectangle(0, 0, roundRectWidth, roundRectHeight); var outputRect:Rectangle = roundRectBitmap.generateFilterRect(inputRect, filter); var leftThickness:Number = (inputRect.left - outputRect.left); var rightThickness:Number = (outputRect.right - inputRect.right); var topThickness:Number = (inputRect.top - outputRect.top); var bottomThickness:Number = (outputRect.bottom - inputRect.bottom); shadow = new BitmapData(outputRect.width, outputRect.height); shadow.applyFilter(roundRectBitmap, inputRect, new Point(leftThickness, topThickness), filter); var origin:Point = new Point(0, 0); var rect:Rectangle = new Rectangle(); if (leftThickness > 0){ rect.x = 0; rect.y = ((tlRadius + topThickness) + bottomThickness); rect.width = leftThickness; rect.height = 1; leftShadow = new BitmapData(leftThickness, 1); leftShadow.copyPixels(shadow, rect, origin); } else { leftShadow = null; }; if (rightThickness > 0){ rect.x = (shadow.width - rightThickness); rect.y = ((trRadius + topThickness) + bottomThickness); rect.width = rightThickness; rect.height = 1; rightShadow = new BitmapData(rightThickness, 1); rightShadow.copyPixels(shadow, rect, origin); } else { rightShadow = null; }; if (topThickness > 0){ rect.x = ((tlRadius + leftThickness) + rightThickness); rect.y = 0; rect.width = 1; rect.height = topThickness; topShadow = new BitmapData(1, topThickness); topShadow.copyPixels(shadow, rect, origin); } else { topShadow = null; }; if (bottomThickness > 0){ rect.x = ((blRadius + leftThickness) + rightThickness); rect.y = (shadow.height - bottomThickness); rect.width = 1; rect.height = bottomThickness; bottomShadow = new BitmapData(1, bottomThickness); bottomShadow.copyPixels(shadow, rect, origin); } else { bottomShadow = null; }; } public function get alpha():Number{ return (_alpha); } public function get color():int{ return (_color); } public function set angle(value:Number):void{ if (_angle != value){ _angle = value; changed = true; }; } public function set trRadius(value:Number):void{ if (_trRadius != value){ _trRadius = value; changed = true; }; } public function set tlRadius(value:Number):void{ if (_tlRadius != value){ _tlRadius = value; changed = true; }; } public function get trRadius():Number{ return (_trRadius); } public function set distance(value:Number):void{ if (_distance != value){ _distance = value; changed = true; }; } public function get distance():Number{ return (_distance); } public function get tlRadius():Number{ return (_tlRadius); } public function set alpha(value:Number):void{ if (_alpha != value){ _alpha = value; changed = true; }; } public function set blRadius(value:Number):void{ if (_blRadius != value){ _blRadius = value; changed = true; }; } } }//package mx.graphics
Section 188
//RoundedRectangle (mx.graphics.RoundedRectangle) package mx.graphics { import flash.geom.*; import mx.core.*; public class RoundedRectangle extends Rectangle { public var cornerRadius:Number;// = 0 mx_internal static const VERSION:String = "3.2.0.3958"; public function RoundedRectangle(x:Number=0, y:Number=0, width:Number=0, height:Number=0, cornerRadius:Number=0){ super(x, y, width, height); this.cornerRadius = cornerRadius; } } }//package mx.graphics
Section 189
//PriorityQueue (mx.managers.layoutClasses.PriorityQueue) package mx.managers.layoutClasses { import flash.display.*; import mx.core.*; import mx.managers.*; public class PriorityQueue { private var maxPriority:int;// = -1 private var arrayOfArrays:Array; private var minPriority:int;// = 0 mx_internal static const VERSION:String = "3.2.0.3958"; public function PriorityQueue(){ arrayOfArrays = []; super(); } public function addObject(obj:Object, priority:int):void{ if (!arrayOfArrays[priority]){ arrayOfArrays[priority] = []; }; arrayOfArrays[priority].push(obj); if (maxPriority < minPriority){ minPriority = (maxPriority = priority); } else { if (priority < minPriority){ minPriority = priority; }; if (priority > maxPriority){ maxPriority = priority; }; }; } public function removeSmallest():Object{ var obj:Object; if (minPriority <= maxPriority){ while (((!(arrayOfArrays[minPriority])) || ((arrayOfArrays[minPriority].length == 0)))) { minPriority++; if (minPriority > maxPriority){ return (null); }; }; obj = arrayOfArrays[minPriority].shift(); while (((!(arrayOfArrays[minPriority])) || ((arrayOfArrays[minPriority].length == 0)))) { minPriority++; if (minPriority > maxPriority){ break; }; }; }; return (obj); } public function removeLargestChild(client:ILayoutManagerClient):Object{ var i:int; var obj:Object; var max:int = maxPriority; var min:int = client.nestLevel; while (min <= max) { if (((arrayOfArrays[max]) && ((arrayOfArrays[max].length > 0)))){ i = 0; while (i < arrayOfArrays[max].length) { if (contains(DisplayObject(client), arrayOfArrays[max][i])){ obj = arrayOfArrays[max][i]; arrayOfArrays[max].splice(i, 1); return (obj); }; i++; }; max--; } else { if (max == maxPriority){ maxPriority--; }; max--; if (max < min){ break; }; }; }; return (obj); } public function isEmpty():Boolean{ return ((minPriority > maxPriority)); } public function removeLargest():Object{ var obj:Object; if (minPriority <= maxPriority){ while (((!(arrayOfArrays[maxPriority])) || ((arrayOfArrays[maxPriority].length == 0)))) { maxPriority--; if (maxPriority < minPriority){ return (null); }; }; obj = arrayOfArrays[maxPriority].shift(); while (((!(arrayOfArrays[maxPriority])) || ((arrayOfArrays[maxPriority].length == 0)))) { maxPriority--; if (maxPriority < minPriority){ break; }; }; }; return (obj); } public function removeSmallestChild(client:ILayoutManagerClient):Object{ var i:int; var obj:Object; var min:int = client.nestLevel; while (min <= maxPriority) { if (((arrayOfArrays[min]) && ((arrayOfArrays[min].length > 0)))){ i = 0; while (i < arrayOfArrays[min].length) { if (contains(DisplayObject(client), arrayOfArrays[min][i])){ obj = arrayOfArrays[min][i]; arrayOfArrays[min].splice(i, 1); return (obj); }; i++; }; min++; } else { if (min == minPriority){ minPriority++; }; min++; if (min > maxPriority){ break; }; }; }; return (obj); } public function removeAll():void{ arrayOfArrays.splice(0); minPriority = 0; maxPriority = -1; } private function contains(parent:DisplayObject, child:DisplayObject):Boolean{ var rawChildren:IChildList; if ((parent is IRawChildrenContainer)){ rawChildren = IRawChildrenContainer(parent).rawChildren; return (rawChildren.contains(child)); }; if ((parent is DisplayObjectContainer)){ return (DisplayObjectContainer(parent).contains(child)); }; return ((parent == child)); } } }//package mx.managers.layoutClasses
Section 190
//EventProxy (mx.managers.systemClasses.EventProxy) package mx.managers.systemClasses { import mx.managers.*; import flash.events.*; import mx.events.*; import mx.utils.*; public class EventProxy extends EventDispatcher { private var systemManager:ISystemManager; public function EventProxy(systemManager:ISystemManager){ super(); this.systemManager = systemManager; } public function marshalListener(event:Event):void{ var me:MouseEvent; var mme:SandboxMouseEvent; if ((event is MouseEvent)){ me = (event as MouseEvent); mme = new SandboxMouseEvent(EventUtil.mouseEventMap[event.type], false, false, me.ctrlKey, me.altKey, me.shiftKey, me.buttonDown); systemManager.dispatchEventFromSWFBridges(mme, null, true, true); }; } } }//package mx.managers.systemClasses
Section 191
//PlaceholderData (mx.managers.systemClasses.PlaceholderData) package mx.managers.systemClasses { import flash.events.*; public class PlaceholderData { public var bridge:IEventDispatcher; public var data:Object; public var id:String; public function PlaceholderData(id:String, bridge:IEventDispatcher, data:Object){ super(); this.id = id; this.bridge = bridge; this.data = data; } } }//package mx.managers.systemClasses
Section 192
//RemotePopUp (mx.managers.systemClasses.RemotePopUp) package mx.managers.systemClasses { public class RemotePopUp { public var window:Object; public var bridge:Object; public function RemotePopUp(window:Object, bridge:Object){ super(); this.window = window; this.bridge = bridge; } } }//package mx.managers.systemClasses
Section 193
//StageEventProxy (mx.managers.systemClasses.StageEventProxy) package mx.managers.systemClasses { import flash.display.*; import flash.events.*; public class StageEventProxy { private var listener:Function; public function StageEventProxy(listener:Function){ super(); this.listener = listener; } public function stageListener(event:Event):void{ if ((event.target is Stage)){ listener(event); }; } } }//package mx.managers.systemClasses
Section 194
//CursorManager (mx.managers.CursorManager) package mx.managers { import mx.core.*; public class CursorManager { mx_internal static const VERSION:String = "3.2.0.3958"; public static const NO_CURSOR:int = 0; private static var _impl:ICursorManager; private static var implClassDependency:CursorManagerImpl; public function CursorManager(){ super(); } public static function set currentCursorYOffset(value:Number):void{ impl.currentCursorYOffset = value; } mx_internal static function registerToUseBusyCursor(source:Object):void{ impl.registerToUseBusyCursor(source); } public static function get currentCursorID():int{ return (impl.currentCursorID); } public static function getInstance():ICursorManager{ return (impl); } public static function removeBusyCursor():void{ impl.removeBusyCursor(); } public static function setCursor(cursorClass:Class, priority:int=2, xOffset:Number=0, yOffset:Number=0):int{ return (impl.setCursor(cursorClass, priority, xOffset, yOffset)); } public static function set currentCursorID(value:int):void{ impl.currentCursorID = value; } mx_internal static function unRegisterToUseBusyCursor(source:Object):void{ impl.unRegisterToUseBusyCursor(source); } private static function get impl():ICursorManager{ if (!_impl){ _impl = ICursorManager(Singleton.getInstance("mx.managers::ICursorManager")); }; return (_impl); } public static function removeAllCursors():void{ impl.removeAllCursors(); } public static function setBusyCursor():void{ impl.setBusyCursor(); } public static function showCursor():void{ impl.showCursor(); } public static function hideCursor():void{ impl.hideCursor(); } public static function removeCursor(cursorID:int):void{ impl.removeCursor(cursorID); } public static function get currentCursorXOffset():Number{ return (impl.currentCursorXOffset); } public static function get currentCursorYOffset():Number{ return (impl.currentCursorYOffset); } public static function set currentCursorXOffset(value:Number):void{ impl.currentCursorXOffset = value; } } }//package mx.managers
Section 195
//CursorManagerImpl (mx.managers.CursorManagerImpl) package mx.managers { import flash.display.*; import flash.geom.*; import flash.text.*; import mx.core.*; import flash.events.*; import mx.events.*; import mx.styles.*; import flash.ui.*; public class CursorManagerImpl implements ICursorManager { private var showSystemCursor:Boolean;// = false private var nextCursorID:int;// = 1 private var systemManager:ISystemManager;// = null private var cursorList:Array; private var _currentCursorYOffset:Number;// = 0 private var cursorHolder:Sprite; private var currentCursor:DisplayObject; private var sandboxRoot:IEventDispatcher;// = null private var showCustomCursor:Boolean;// = false private var listenForContextMenu:Boolean;// = false private var _currentCursorID:int;// = 0 private var initialized:Boolean;// = false private var overTextField:Boolean;// = false private var _currentCursorXOffset:Number;// = 0 private var busyCursorList:Array; private var overLink:Boolean;// = false private var sourceArray:Array; mx_internal static const VERSION:String = "3.2.0.3958"; private static var instance:ICursorManager; public function CursorManagerImpl(systemManager:ISystemManager=null){ cursorList = []; busyCursorList = []; sourceArray = []; super(); if (((instance) && (!(systemManager)))){ throw (new Error("Instance already exists.")); }; if (systemManager){ this.systemManager = (systemManager as ISystemManager); } else { this.systemManager = (SystemManagerGlobals.topLevelSystemManagers[0] as ISystemManager); }; sandboxRoot = this.systemManager.getSandboxRoot(); sandboxRoot.addEventListener(InterManagerRequest.CURSOR_MANAGER_REQUEST, marshalCursorManagerHandler, false, 0, true); var me:InterManagerRequest = new InterManagerRequest(InterManagerRequest.CURSOR_MANAGER_REQUEST); me.name = "update"; sandboxRoot.dispatchEvent(me); } public function set currentCursorYOffset(value:Number):void{ var me:InterManagerRequest; _currentCursorYOffset = value; if (!cursorHolder){ me = new InterManagerRequest(InterManagerRequest.CURSOR_MANAGER_REQUEST); me.name = "currentCursorYOffset"; me.value = currentCursorYOffset; sandboxRoot.dispatchEvent(me); }; } public function get currentCursorXOffset():Number{ return (_currentCursorXOffset); } public function removeCursor(cursorID:int):void{ var i:Object; var me:InterManagerRequest; var item:CursorQueueItem; if (((initialized) && (!(cursorHolder)))){ me = new InterManagerRequest(InterManagerRequest.CURSOR_MANAGER_REQUEST); me.name = "removeCursor"; me.value = cursorID; sandboxRoot.dispatchEvent(me); return; }; for (i in cursorList) { item = cursorList[i]; if (item.cursorID == cursorID){ cursorList.splice(i, 1); showCurrentCursor(); break; }; }; } public function get currentCursorID():int{ return (_currentCursorID); } private function marshalMouseMoveHandler(event:Event):void{ var cursorRequest:SWFBridgeRequest; var bridge:IEventDispatcher; if (cursorHolder.visible){ cursorHolder.visible = false; cursorRequest = new SWFBridgeRequest(SWFBridgeRequest.SHOW_MOUSE_CURSOR_REQUEST); if (systemManager.useSWFBridge()){ bridge = systemManager.swfBridgeGroup.parentBridge; } else { bridge = systemManager; }; cursorRequest.requestor = bridge; bridge.dispatchEvent(cursorRequest); if (cursorRequest.data){ Mouse.show(); }; }; } public function set currentCursorID(value:int):void{ var me:InterManagerRequest; _currentCursorID = value; if (!cursorHolder){ me = new InterManagerRequest(InterManagerRequest.CURSOR_MANAGER_REQUEST); me.name = "currentCursorID"; me.value = currentCursorID; sandboxRoot.dispatchEvent(me); }; } public function removeAllCursors():void{ var me:InterManagerRequest; if (((initialized) && (!(cursorHolder)))){ me = new InterManagerRequest(InterManagerRequest.CURSOR_MANAGER_REQUEST); me.name = "removeAllCursors"; sandboxRoot.dispatchEvent(me); return; }; cursorList.splice(0); showCurrentCursor(); } private function priorityCompare(a:CursorQueueItem, b:CursorQueueItem):int{ if (a.priority < b.priority){ return (-1); }; if (a.priority == b.priority){ return (0); }; return (1); } public function setBusyCursor():void{ var me:InterManagerRequest; if (((initialized) && (!(cursorHolder)))){ me = new InterManagerRequest(InterManagerRequest.CURSOR_MANAGER_REQUEST); me.name = "setBusyCursor"; sandboxRoot.dispatchEvent(me); return; }; var cursorManagerStyleDeclaration:CSSStyleDeclaration = StyleManager.getStyleDeclaration("CursorManager"); var busyCursorClass:Class = cursorManagerStyleDeclaration.getStyle("busyCursor"); busyCursorList.push(setCursor(busyCursorClass, CursorManagerPriority.LOW)); } public function showCursor():void{ var me:InterManagerRequest; if (cursorHolder){ cursorHolder.visible = true; } else { me = new InterManagerRequest(InterManagerRequest.CURSOR_MANAGER_REQUEST); me.name = "showCursor"; sandboxRoot.dispatchEvent(me); }; } private function findSource(target:Object):int{ var n:int = sourceArray.length; var i:int; while (i < n) { if (sourceArray[i] === target){ return (i); }; i++; }; return (-1); } private function showCurrentCursor():void{ var app:InteractiveObject; var sm:InteractiveObject; var item:CursorQueueItem; var me:InterManagerRequest; var pt:Point; if (cursorList.length > 0){ if (!initialized){ cursorHolder = new FlexSprite(); cursorHolder.name = "cursorHolder"; cursorHolder.mouseEnabled = false; cursorHolder.mouseChildren = false; systemManager.addChildToSandboxRoot("cursorChildren", cursorHolder); initialized = true; me = new InterManagerRequest(InterManagerRequest.CURSOR_MANAGER_REQUEST); me.name = "initialized"; sandboxRoot.dispatchEvent(me); }; item = cursorList[0]; if (currentCursorID == CursorManager.NO_CURSOR){ Mouse.hide(); }; if (item.cursorID != currentCursorID){ if (cursorHolder.numChildren > 0){ cursorHolder.removeChildAt(0); }; currentCursor = new item.cursorClass(); if (currentCursor){ if ((currentCursor is InteractiveObject)){ InteractiveObject(currentCursor).mouseEnabled = false; }; if ((currentCursor is DisplayObjectContainer)){ DisplayObjectContainer(currentCursor).mouseChildren = false; }; cursorHolder.addChild(currentCursor); if (!listenForContextMenu){ app = (systemManager.document as InteractiveObject); if (((app) && (app.contextMenu))){ app.contextMenu.addEventListener(ContextMenuEvent.MENU_SELECT, contextMenu_menuSelectHandler); listenForContextMenu = true; }; sm = (systemManager as InteractiveObject); if (((sm) && (sm.contextMenu))){ sm.contextMenu.addEventListener(ContextMenuEvent.MENU_SELECT, contextMenu_menuSelectHandler); listenForContextMenu = true; }; }; if ((systemManager is SystemManager)){ pt = new Point((SystemManager(systemManager).mouseX + item.x), (SystemManager(systemManager).mouseY + item.y)); pt = SystemManager(systemManager).localToGlobal(pt); pt = cursorHolder.parent.globalToLocal(pt); cursorHolder.x = pt.x; cursorHolder.y = pt.y; } else { if ((systemManager is DisplayObject)){ pt = new Point((DisplayObject(systemManager).mouseX + item.x), (DisplayObject(systemManager).mouseY + item.y)); pt = DisplayObject(systemManager).localToGlobal(pt); pt = cursorHolder.parent.globalToLocal(pt); cursorHolder.x = (DisplayObject(systemManager).mouseX + item.x); cursorHolder.y = (DisplayObject(systemManager).mouseY + item.y); } else { cursorHolder.x = item.x; cursorHolder.y = item.y; }; }; if (systemManager.useSWFBridge()){ sandboxRoot.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler, true, EventPriority.CURSOR_MANAGEMENT); } else { systemManager.stage.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler, true, EventPriority.CURSOR_MANAGEMENT); }; sandboxRoot.addEventListener(SandboxMouseEvent.MOUSE_MOVE_SOMEWHERE, marshalMouseMoveHandler, false, EventPriority.CURSOR_MANAGEMENT); }; currentCursorID = item.cursorID; currentCursorXOffset = item.x; currentCursorYOffset = item.y; }; } else { if (currentCursorID != CursorManager.NO_CURSOR){ currentCursorID = CursorManager.NO_CURSOR; currentCursorXOffset = 0; currentCursorYOffset = 0; if (systemManager.useSWFBridge()){ sandboxRoot.removeEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler, true); } else { systemManager.stage.removeEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler, true); }; sandboxRoot.removeEventListener(SandboxMouseEvent.MOUSE_MOVE_SOMEWHERE, marshalMouseMoveHandler, false); cursorHolder.removeChild(currentCursor); if (listenForContextMenu){ app = (systemManager.document as InteractiveObject); if (((app) && (app.contextMenu))){ app.contextMenu.removeEventListener(ContextMenuEvent.MENU_SELECT, contextMenu_menuSelectHandler); }; sm = (systemManager as InteractiveObject); if (((sm) && (sm.contextMenu))){ sm.contextMenu.removeEventListener(ContextMenuEvent.MENU_SELECT, contextMenu_menuSelectHandler); }; listenForContextMenu = false; }; }; Mouse.show(); }; } public function get currentCursorYOffset():Number{ return (_currentCursorYOffset); } private function contextMenu_menuSelectHandler(event:ContextMenuEvent):void{ showCustomCursor = true; sandboxRoot.addEventListener(MouseEvent.MOUSE_OVER, mouseOverHandler); } public function hideCursor():void{ var me:InterManagerRequest; if (cursorHolder){ cursorHolder.visible = false; } else { me = new InterManagerRequest(InterManagerRequest.CURSOR_MANAGER_REQUEST); me.name = "hideCursor"; sandboxRoot.dispatchEvent(me); }; } private function marshalCursorManagerHandler(event:Event):void{ var me:InterManagerRequest; if ((event is InterManagerRequest)){ return; }; var marshalEvent:Object = event; switch (marshalEvent.name){ case "initialized": initialized = marshalEvent.value; break; case "currentCursorID": _currentCursorID = marshalEvent.value; break; case "currentCursorXOffset": _currentCursorXOffset = marshalEvent.value; break; case "currentCursorYOffset": _currentCursorYOffset = marshalEvent.value; break; case "showCursor": if (cursorHolder){ cursorHolder.visible = true; }; break; case "hideCursor": if (cursorHolder){ cursorHolder.visible = false; }; break; case "setCursor": if (cursorHolder){ marshalEvent.value = setCursor.apply(this, marshalEvent.value); }; break; case "removeCursor": if (cursorHolder){ removeCursor.apply(this, [marshalEvent.value]); }; break; case "removeAllCursors": if (cursorHolder){ removeAllCursors(); }; break; case "setBusyCursor": if (cursorHolder){ setBusyCursor(); }; break; case "removeBusyCursor": if (cursorHolder){ removeBusyCursor(); }; break; case "registerToUseBusyCursor": if (cursorHolder){ registerToUseBusyCursor.apply(this, marshalEvent.value); }; break; case "unRegisterToUseBusyCursor": if (cursorHolder){ unRegisterToUseBusyCursor.apply(this, marshalEvent.value); }; break; case "update": if (cursorHolder){ me = new InterManagerRequest(InterManagerRequest.CURSOR_MANAGER_REQUEST); me.name = "initialized"; me.value = true; sandboxRoot.dispatchEvent(me); me = new InterManagerRequest(InterManagerRequest.CURSOR_MANAGER_REQUEST); me.name = "currentCursorID"; me.value = currentCursorID; sandboxRoot.dispatchEvent(me); me = new InterManagerRequest(InterManagerRequest.CURSOR_MANAGER_REQUEST); me.name = "currentCursorXOffset"; me.value = currentCursorXOffset; sandboxRoot.dispatchEvent(me); me = new InterManagerRequest(InterManagerRequest.CURSOR_MANAGER_REQUEST); me.name = "currentCursorYOffset"; me.value = currentCursorYOffset; sandboxRoot.dispatchEvent(me); }; }; } public function registerToUseBusyCursor(source:Object):void{ var me:InterManagerRequest; if (((initialized) && (!(cursorHolder)))){ me = new InterManagerRequest(InterManagerRequest.CURSOR_MANAGER_REQUEST); me.name = "registerToUseBusyCursor"; me.value = source; sandboxRoot.dispatchEvent(me); return; }; if (((source) && ((source is EventDispatcher)))){ source.addEventListener(ProgressEvent.PROGRESS, progressHandler); source.addEventListener(Event.COMPLETE, completeHandler); source.addEventListener(IOErrorEvent.IO_ERROR, completeHandler); }; } private function completeHandler(event:Event):void{ var sourceIndex:int = findSource(event.target); if (sourceIndex != -1){ sourceArray.splice(sourceIndex, 1); removeBusyCursor(); }; } public function removeBusyCursor():void{ var me:InterManagerRequest; if (((initialized) && (!(cursorHolder)))){ me = new InterManagerRequest(InterManagerRequest.CURSOR_MANAGER_REQUEST); me.name = "removeBusyCursor"; sandboxRoot.dispatchEvent(me); return; }; if (busyCursorList.length > 0){ removeCursor(int(busyCursorList.pop())); }; } public function setCursor(cursorClass:Class, priority:int=2, xOffset:Number=0, yOffset:Number=0):int{ var me:InterManagerRequest; if (((initialized) && (!(cursorHolder)))){ me = new InterManagerRequest(InterManagerRequest.CURSOR_MANAGER_REQUEST); me.name = "setCursor"; me.value = [cursorClass, priority, xOffset, yOffset]; sandboxRoot.dispatchEvent(me); return ((me.value as int)); }; var cursorID:int = nextCursorID++; var item:CursorQueueItem = new CursorQueueItem(); item.cursorID = cursorID; item.cursorClass = cursorClass; item.priority = priority; item.x = xOffset; item.y = yOffset; if (systemManager){ item.systemManager = systemManager; } else { item.systemManager = ApplicationGlobals.application.systemManager; }; cursorList.push(item); cursorList.sort(priorityCompare); showCurrentCursor(); return (cursorID); } private function progressHandler(event:ProgressEvent):void{ var sourceIndex:int = findSource(event.target); if (sourceIndex == -1){ sourceArray.push(event.target); setBusyCursor(); }; } private function mouseMoveHandler(event:MouseEvent):void{ var cursorRequest:SWFBridgeRequest; var bridge:IEventDispatcher; var pt:Point = new Point(event.stageX, event.stageY); pt = cursorHolder.parent.globalToLocal(pt); pt.x = (pt.x + currentCursorXOffset); pt.y = (pt.y + currentCursorYOffset); cursorHolder.x = pt.x; cursorHolder.y = pt.y; var target:Object = event.target; if (((((!(overTextField)) && ((target is TextField)))) && ((target.type == TextFieldType.INPUT)))){ overTextField = true; showSystemCursor = true; } else { if (((overTextField) && (!((((target is TextField)) && ((target.type == TextFieldType.INPUT))))))){ overTextField = false; showCustomCursor = true; } else { showCustomCursor = true; }; }; if (showSystemCursor){ showSystemCursor = false; cursorHolder.visible = false; Mouse.show(); }; if (showCustomCursor){ showCustomCursor = false; cursorHolder.visible = true; Mouse.hide(); cursorRequest = new SWFBridgeRequest(SWFBridgeRequest.HIDE_MOUSE_CURSOR_REQUEST); if (systemManager.useSWFBridge()){ bridge = systemManager.swfBridgeGroup.parentBridge; } else { bridge = systemManager; }; cursorRequest.requestor = bridge; bridge.dispatchEvent(cursorRequest); }; } public function unRegisterToUseBusyCursor(source:Object):void{ var me:InterManagerRequest; if (((initialized) && (!(cursorHolder)))){ me = new InterManagerRequest(InterManagerRequest.CURSOR_MANAGER_REQUEST); me.name = "unRegisterToUseBusyCursor"; me.value = source; sandboxRoot.dispatchEvent(me); return; }; if (((source) && ((source is EventDispatcher)))){ source.removeEventListener(ProgressEvent.PROGRESS, progressHandler); source.removeEventListener(Event.COMPLETE, completeHandler); source.removeEventListener(IOErrorEvent.IO_ERROR, completeHandler); }; } private function mouseOverHandler(event:MouseEvent):void{ sandboxRoot.removeEventListener(MouseEvent.MOUSE_OVER, mouseOverHandler); mouseMoveHandler(event); } public function set currentCursorXOffset(value:Number):void{ var me:InterManagerRequest; _currentCursorXOffset = value; if (!cursorHolder){ me = new InterManagerRequest(InterManagerRequest.CURSOR_MANAGER_REQUEST); me.name = "currentCursorXOffset"; me.value = currentCursorXOffset; sandboxRoot.dispatchEvent(me); }; } public static function getInstance():ICursorManager{ if (!instance){ instance = new (CursorManagerImpl); }; return (instance); } } }//package mx.managers class CursorQueueItem { public var priority:int;// = 2 public var cursorClass:Class;// = null public var cursorID:int;// = 0 public var x:Number; public var y:Number; public var systemManager:ISystemManager; mx_internal static const VERSION:String = "3.2.0.3958"; private function CursorQueueItem(){ super(); } }
Section 196
//CursorManagerPriority (mx.managers.CursorManagerPriority) package mx.managers { public final class CursorManagerPriority { public static const HIGH:int = 1; public static const MEDIUM:int = 2; mx_internal static const VERSION:String = "3.2.0.3958"; public static const LOW:int = 3; public function CursorManagerPriority(){ super(); } } }//package mx.managers
Section 197
//FocusManager (mx.managers.FocusManager) package mx.managers { import flash.display.*; import flash.text.*; import mx.core.*; import flash.events.*; import mx.events.*; import flash.system.*; import flash.ui.*; public class FocusManager implements IFocusManager { private var lastActiveFocusManager:FocusManager; private var _showFocusIndicator:Boolean;// = false private var focusableCandidates:Array; private var LARGE_TAB_INDEX:int;// = 99999 private var browserFocusComponent:InteractiveObject; private var calculateCandidates:Boolean;// = true private var _lastFocus:IFocusManagerComponent; private var lastAction:String; private var focusSetLocally:Boolean; private var focusableObjects:Array; private var swfBridgeGroup:SWFBridgeGroup; private var defButton:IButton; private var _form:IFocusManagerContainer; private var popup:Boolean; private var focusChanged:Boolean; private var _defaultButtonEnabled:Boolean;// = true private var activated:Boolean;// = false private var _defaultButton:IButton; private var fauxFocus:DisplayObject; private var _focusPane:Sprite; private var skipBridge:IEventDispatcher; public var browserMode:Boolean; mx_internal static const VERSION:String = "3.2.0.3958"; private static const FROM_INDEX_UNSPECIFIED:int = -2; public function FocusManager(container:IFocusManagerContainer, popup:Boolean=false){ var sm:ISystemManager; var bridge:IEventDispatcher; var container = container; var popup = popup; super(); this.popup = popup; browserMode = (((Capabilities.playerType == "ActiveX")) && (!(popup))); container.focusManager = this; _form = container; focusableObjects = []; focusPane = new FlexSprite(); focusPane.name = "focusPane"; addFocusables(DisplayObject(container)); container.addEventListener(Event.ADDED, addedHandler); container.addEventListener(Event.REMOVED, removedHandler); container.addEventListener(FlexEvent.SHOW, showHandler); container.addEventListener(FlexEvent.HIDE, hideHandler); if ((container.systemManager is SystemManager)){ if (container != SystemManager(container.systemManager).application){ container.addEventListener(FlexEvent.CREATION_COMPLETE, creationCompleteHandler); }; }; container.systemManager.addFocusManager(container); sm = form.systemManager; swfBridgeGroup = new SWFBridgeGroup(sm); if (!popup){ swfBridgeGroup.parentBridge = sm.swfBridgeGroup.parentBridge; }; if (sm.useSWFBridge()){ sm.addEventListener(SWFBridgeEvent.BRIDGE_APPLICATION_UNLOADING, removeFromParentBridge); bridge = swfBridgeGroup.parentBridge; if (bridge){ bridge.addEventListener(SWFBridgeRequest.MOVE_FOCUS_REQUEST, focusRequestMoveHandler); bridge.addEventListener(SWFBridgeRequest.SET_SHOW_FOCUS_INDICATOR_REQUEST, setShowFocusIndicatorRequestHandler); }; if (((bridge) && (!((form.systemManager is SystemManagerProxy))))){ bridge.addEventListener(SWFBridgeRequest.ACTIVATE_FOCUS_REQUEST, focusRequestActivateHandler); bridge.addEventListener(SWFBridgeRequest.DEACTIVATE_FOCUS_REQUEST, focusRequestDeactivateHandler); bridge.addEventListener(SWFBridgeEvent.BRIDGE_FOCUS_MANAGER_ACTIVATE, bridgeEventActivateHandler); }; container.addEventListener(Event.ADDED_TO_STAGE, addedToStageHandler); }; //unresolved jump var _slot1 = e; } private function dispatchSetShowFocusIndicatorRequest(value:Boolean, skip:IEventDispatcher):void{ var request:SWFBridgeRequest = new SWFBridgeRequest(SWFBridgeRequest.SET_SHOW_FOCUS_INDICATOR_REQUEST, false, false, null, value); dispatchEventFromSWFBridges(request, skip); } private function creationCompleteHandler(event:FlexEvent):void{ if (((DisplayObject(form).visible) && (!(activated)))){ form.systemManager.activate(form); }; } private function addFocusables(o:DisplayObject, skipTopLevel:Boolean=false):void{ var addToFocusables:Boolean; var focusable:IFocusManagerComponent; var doc:DisplayObjectContainer; var rawChildren:IChildList; var i:int; var o = o; var skipTopLevel = skipTopLevel; if ((((o is IFocusManagerComponent)) && (!(skipTopLevel)))){ addToFocusables = false; if ((o is IFocusManagerComponent)){ focusable = IFocusManagerComponent(o); if (focusable.focusEnabled){ if (((focusable.tabEnabled) && (isTabVisible(o)))){ addToFocusables = true; }; }; }; if (addToFocusables){ if (focusableObjects.indexOf(o) == -1){ focusableObjects.push(o); calculateCandidates = true; }; o.addEventListener("tabEnabledChange", tabEnabledChangeHandler); o.addEventListener("tabIndexChange", tabIndexChangeHandler); }; }; if ((o is DisplayObjectContainer)){ doc = DisplayObjectContainer(o); o.addEventListener("tabChildrenChange", tabChildrenChangeHandler); if (doc.tabChildren){ if ((o is IRawChildrenContainer)){ rawChildren = IRawChildrenContainer(o).rawChildren; i = 0; for (;i < rawChildren.numChildren;(i = (i + 1))) { addFocusables(rawChildren.getChildAt(i)); continue; var _slot1 = error; }; } else { i = 0; for (;i < doc.numChildren;(i = (i + 1))) { addFocusables(doc.getChildAt(i)); continue; var _slot1 = error; }; }; }; }; } private function tabEnabledChangeHandler(event:Event):void{ calculateCandidates = true; var o:InteractiveObject = InteractiveObject(event.target); var n:int = focusableObjects.length; var i:int; while (i < n) { if (focusableObjects[i] == o){ break; }; i++; }; if (o.tabEnabled){ if ((((i == n)) && (isTabVisible(o)))){ if (focusableObjects.indexOf(o) == -1){ focusableObjects.push(o); }; }; } else { if (i < n){ focusableObjects.splice(i, 1); }; }; } private function mouseFocusChangeHandler(event:FocusEvent):void{ var tf:TextField; if ((((((event.relatedObject == null)) && (("isRelatedObjectInaccessible" in event)))) && ((event["isRelatedObjectInaccessible"] == true)))){ return; }; if ((event.relatedObject is TextField)){ tf = (event.relatedObject as TextField); if ((((tf.type == "input")) || (tf.selectable))){ return; }; }; event.preventDefault(); } public function addSWFBridge(bridge:IEventDispatcher, owner:DisplayObject):void{ if (!owner){ return; }; var sm:ISystemManager = _form.systemManager; if (focusableObjects.indexOf(owner) == -1){ focusableObjects.push(owner); calculateCandidates = true; }; swfBridgeGroup.addChildBridge(bridge, ISWFBridgeProvider(owner)); bridge.addEventListener(SWFBridgeRequest.MOVE_FOCUS_REQUEST, focusRequestMoveHandler); bridge.addEventListener(SWFBridgeRequest.SET_SHOW_FOCUS_INDICATOR_REQUEST, setShowFocusIndicatorRequestHandler); bridge.addEventListener(SWFBridgeEvent.BRIDGE_FOCUS_MANAGER_ACTIVATE, bridgeEventActivateHandler); } private function getChildIndex(parent:DisplayObjectContainer, child:DisplayObject):int{ var parent = parent; var child = child; return (parent.getChildIndex(child)); //unresolved jump var _slot1 = e; if ((parent is IRawChildrenContainer)){ return (IRawChildrenContainer(parent).rawChildren.getChildIndex(child)); }; throw (_slot1); throw (new Error("FocusManager.getChildIndex failed")); } private function bridgeEventActivateHandler(event:Event):void{ if ((event is SWFBridgeEvent)){ return; }; lastActiveFocusManager = null; _lastFocus = null; dispatchActivatedFocusManagerEvent(IEventDispatcher(event.target)); } private function focusOutHandler(event:FocusEvent):void{ var target:InteractiveObject = InteractiveObject(event.target); } private function isValidFocusCandidate(o:DisplayObject, g:String):Boolean{ var tg:IFocusManagerGroup; if (!isEnabledAndVisible(o)){ return (false); }; if ((o is IFocusManagerGroup)){ tg = IFocusManagerGroup(o); if (g == tg.groupName){ return (false); }; }; return (true); } private function removeFocusables(o:DisplayObject, dontRemoveTabChildrenHandler:Boolean):void{ var i:int; if ((o is DisplayObjectContainer)){ if (!dontRemoveTabChildrenHandler){ o.removeEventListener("tabChildrenChange", tabChildrenChangeHandler); }; i = 0; while (i < focusableObjects.length) { if (isParent(DisplayObjectContainer(o), focusableObjects[i])){ if (focusableObjects[i] == _lastFocus){ _lastFocus.drawFocus(false); _lastFocus = null; }; focusableObjects[i].removeEventListener("tabEnabledChange", tabEnabledChangeHandler); focusableObjects[i].removeEventListener("tabIndexChange", tabIndexChangeHandler); focusableObjects.splice(i, 1); i--; calculateCandidates = true; }; i++; }; }; } private function addedHandler(event:Event):void{ var target:DisplayObject = DisplayObject(event.target); if (target.stage){ addFocusables(DisplayObject(event.target)); }; } private function tabChildrenChangeHandler(event:Event):void{ if (event.target != event.currentTarget){ return; }; calculateCandidates = true; var o:DisplayObjectContainer = DisplayObjectContainer(event.target); if (o.tabChildren){ addFocusables(o, true); } else { removeFocusables(o, true); }; } private function sortByDepth(aa:DisplayObject, bb:DisplayObject):Number{ var index:int; var tmp:String; var tmp2:String; var val1:String = ""; var val2:String = ""; var zeros:String = "0000"; var a:DisplayObject = DisplayObject(aa); var b:DisplayObject = DisplayObject(bb); while (((!((a == DisplayObject(form)))) && (a.parent))) { index = getChildIndex(a.parent, a); tmp = index.toString(16); if (tmp.length < 4){ tmp2 = (zeros.substring(0, (4 - tmp.length)) + tmp); }; val1 = (tmp2 + val1); a = a.parent; }; while (((!((b == DisplayObject(form)))) && (b.parent))) { index = getChildIndex(b.parent, b); tmp = index.toString(16); if (tmp.length < 4){ tmp2 = (zeros.substring(0, (4 - tmp.length)) + tmp); }; val2 = (tmp2 + val2); b = b.parent; }; return (((val1 > val2)) ? 1 : ((val1 < val2)) ? -1 : 0); } mx_internal function sendDefaultButtonEvent():void{ defButton.dispatchEvent(new MouseEvent("click")); } public function getFocus():IFocusManagerComponent{ var o:InteractiveObject = form.systemManager.stage.focus; return (findFocusManagerComponent(o)); } private function deactivateHandler(event:Event):void{ } private function setFocusToBottom():void{ setFocusToNextIndex(focusableObjects.length, true); } private function tabIndexChangeHandler(event:Event):void{ calculateCandidates = true; } private function sortFocusableObjects():void{ var c:InteractiveObject; focusableCandidates = []; var n:int = focusableObjects.length; var i:int; while (i < n) { c = focusableObjects[i]; if (((((c.tabIndex) && (!(isNaN(Number(c.tabIndex)))))) && ((c.tabIndex > 0)))){ sortFocusableObjectsTabIndex(); return; }; focusableCandidates.push(c); i++; }; focusableCandidates.sort(sortByDepth); } private function keyFocusChangeHandler(event:FocusEvent):void{ var sm:ISystemManager = form.systemManager; if (sm.isDisplayObjectInABridgedApplication(DisplayObject(event.target))){ return; }; showFocusIndicator = true; focusChanged = false; if ((((event.keyCode == Keyboard.TAB)) && (!(event.isDefaultPrevented())))){ if (browserFocusComponent){ if (browserFocusComponent.tabIndex == LARGE_TAB_INDEX){ browserFocusComponent.tabIndex = -1; }; browserFocusComponent = null; if (SystemManager(form.systemManager).useSWFBridge()){ moveFocusToParent(event.shiftKey); if (focusChanged){ event.preventDefault(); }; }; return; }; setFocusToNextObject(event); if (focusChanged){ event.preventDefault(); }; }; } private function getNextFocusManagerComponent2(backward:Boolean=false, fromObject:DisplayObject=null, fromIndex:int=-2):FocusInfo{ var o:DisplayObject; var g:String; var tg:IFocusManagerGroup; if (focusableObjects.length == 0){ return (null); }; if (calculateCandidates){ sortFocusableObjects(); calculateCandidates = false; }; var i:int = fromIndex; if (fromIndex == FROM_INDEX_UNSPECIFIED){ o = fromObject; if (!o){ o = form.systemManager.stage.focus; }; o = DisplayObject(findFocusManagerComponent2(InteractiveObject(o))); g = ""; if ((o is IFocusManagerGroup)){ tg = IFocusManagerGroup(o); g = tg.groupName; }; i = getIndexOfFocusedObject(o); }; var bSearchAll:Boolean; var start:int = i; if (i == -1){ if (backward){ i = focusableCandidates.length; }; bSearchAll = true; }; var j:int = getIndexOfNextObject(i, backward, bSearchAll, g); var wrapped:Boolean; if (backward){ if (j >= i){ wrapped = true; }; } else { if (j <= i){ wrapped = true; }; }; var focusInfo:FocusInfo = new FocusInfo(); focusInfo.displayObject = findFocusManagerComponent2(focusableCandidates[j]); focusInfo.wrapped = wrapped; return (focusInfo); } private function getIndexOfFocusedObject(o:DisplayObject):int{ var iui:IUIComponent; if (!o){ return (-1); }; var n:int = focusableCandidates.length; var i:int; i = 0; while (i < n) { if (focusableCandidates[i] == o){ return (i); }; i++; }; i = 0; while (i < n) { iui = (focusableCandidates[i] as IUIComponent); if (((iui) && (iui.owns(o)))){ return (i); }; i++; }; return (-1); } private function focusRequestActivateHandler(event:Event):void{ skipBridge = IEventDispatcher(event.target); activate(); skipBridge = null; } private function removeFromParentBridge(event:Event):void{ var bridge:IEventDispatcher; var sm:ISystemManager = form.systemManager; if (sm.useSWFBridge()){ sm.removeEventListener(SWFBridgeEvent.BRIDGE_APPLICATION_UNLOADING, removeFromParentBridge); bridge = swfBridgeGroup.parentBridge; if (bridge){ bridge.removeEventListener(SWFBridgeRequest.MOVE_FOCUS_REQUEST, focusRequestMoveHandler); bridge.removeEventListener(SWFBridgeRequest.SET_SHOW_FOCUS_INDICATOR_REQUEST, setShowFocusIndicatorRequestHandler); }; if (((bridge) && (!((form.systemManager is SystemManagerProxy))))){ bridge.removeEventListener(SWFBridgeRequest.ACTIVATE_FOCUS_REQUEST, focusRequestActivateHandler); bridge.removeEventListener(SWFBridgeRequest.DEACTIVATE_FOCUS_REQUEST, focusRequestDeactivateHandler); bridge.removeEventListener(SWFBridgeEvent.BRIDGE_FOCUS_MANAGER_ACTIVATE, bridgeEventActivateHandler); }; }; } private function getParentBridge():IEventDispatcher{ if (swfBridgeGroup){ return (swfBridgeGroup.parentBridge); }; return (null); } private function setFocusToComponent(o:Object, shiftKey:Boolean):void{ var request:SWFBridgeRequest; var sandboxBridge:IEventDispatcher; focusChanged = false; if (o){ if ((((o is ISWFLoader)) && (ISWFLoader(o).swfBridge))){ request = new SWFBridgeRequest(SWFBridgeRequest.MOVE_FOCUS_REQUEST, false, true, null, (shiftKey) ? FocusRequestDirection.BOTTOM : FocusRequestDirection.TOP); sandboxBridge = ISWFLoader(o).swfBridge; if (sandboxBridge){ sandboxBridge.dispatchEvent(request); focusChanged = request.data; }; } else { if ((o is IFocusManagerComplexComponent)){ IFocusManagerComplexComponent(o).assignFocus((shiftKey) ? "bottom" : "top"); focusChanged = true; } else { if ((o is IFocusManagerComponent)){ setFocus(IFocusManagerComponent(o)); focusChanged = true; }; }; }; }; } private function focusRequestMoveHandler(event:Event):void{ var startingPosition:DisplayObject; if ((event is SWFBridgeRequest)){ return; }; focusSetLocally = false; var request:SWFBridgeRequest = SWFBridgeRequest.marshal(event); if ((((request.data == FocusRequestDirection.TOP)) || ((request.data == FocusRequestDirection.BOTTOM)))){ if (focusableObjects.length == 0){ moveFocusToParent(((request.data == FocusRequestDirection.TOP)) ? false : true); event["data"] = focusChanged; return; }; if (request.data == FocusRequestDirection.TOP){ setFocusToTop(); } else { setFocusToBottom(); }; event["data"] = focusChanged; } else { startingPosition = DisplayObject(_form.systemManager.swfBridgeGroup.getChildBridgeProvider(IEventDispatcher(event.target))); moveFocus((request.data as String), startingPosition); event["data"] = focusChanged; }; if (focusSetLocally){ dispatchActivatedFocusManagerEvent(null); lastActiveFocusManager = this; }; } public function get nextTabIndex():int{ return ((getMaxTabIndex() + 1)); } private function dispatchActivatedFocusManagerEvent(skip:IEventDispatcher=null):void{ if (lastActiveFocusManager == this){ return; }; var event:SWFBridgeEvent = new SWFBridgeEvent(SWFBridgeEvent.BRIDGE_FOCUS_MANAGER_ACTIVATE); dispatchEventFromSWFBridges(event, skip); } private function focusRequestDeactivateHandler(event:Event):void{ skipBridge = IEventDispatcher(event.target); deactivate(); skipBridge = null; } public function get focusPane():Sprite{ return (_focusPane); } private function keyDownHandler(event:KeyboardEvent):void{ var o:DisplayObject; var g:String; var i:int; var j:int; var tg:IFocusManagerGroup; var sm:ISystemManager = form.systemManager; if (sm.isDisplayObjectInABridgedApplication(DisplayObject(event.target))){ return; }; if ((sm is SystemManager)){ SystemManager(sm).idleCounter = 0; }; if (event.keyCode == Keyboard.TAB){ lastAction = "KEY"; if (calculateCandidates){ sortFocusableObjects(); calculateCandidates = false; }; }; if (browserMode){ if ((((event.keyCode == Keyboard.TAB)) && ((focusableCandidates.length > 0)))){ o = fauxFocus; if (!o){ o = form.systemManager.stage.focus; }; o = DisplayObject(findFocusManagerComponent2(InteractiveObject(o))); g = ""; if ((o is IFocusManagerGroup)){ tg = IFocusManagerGroup(o); g = tg.groupName; }; i = getIndexOfFocusedObject(o); j = getIndexOfNextObject(i, event.shiftKey, false, g); if (event.shiftKey){ if (j >= i){ browserFocusComponent = getBrowserFocusComponent(event.shiftKey); if (browserFocusComponent.tabIndex == -1){ browserFocusComponent.tabIndex = 0; }; }; } else { if (j <= i){ browserFocusComponent = getBrowserFocusComponent(event.shiftKey); if (browserFocusComponent.tabIndex == -1){ browserFocusComponent.tabIndex = LARGE_TAB_INDEX; }; }; }; }; }; if (((((((defaultButtonEnabled) && ((event.keyCode == Keyboard.ENTER)))) && (defaultButton))) && (defButton.enabled))){ defButton.callLater(sendDefaultButtonEvent); }; } private function mouseDownHandler(event:MouseEvent):void{ if (event.isDefaultPrevented()){ return; }; var sm:ISystemManager = form.systemManager; var o:DisplayObject = getTopLevelFocusTarget(InteractiveObject(event.target)); if (!o){ return; }; showFocusIndicator = false; if (((((!((o == _lastFocus))) || ((lastAction == "ACTIVATE")))) && (!((o is TextField))))){ setFocus(IFocusManagerComponent(o)); } else { if (_lastFocus){ if (((((!(_lastFocus)) && ((o is IEventDispatcher)))) && (SystemManager(form.systemManager).useSWFBridge()))){ IEventDispatcher(o).dispatchEvent(new FocusEvent(FocusEvent.FOCUS_IN)); }; }; }; lastAction = "MOUSEDOWN"; dispatchActivatedFocusManagerEvent(null); lastActiveFocusManager = this; } private function focusInHandler(event:FocusEvent):void{ var x:IButton; var target:InteractiveObject = InteractiveObject(event.target); var sm:ISystemManager = form.systemManager; if (sm.isDisplayObjectInABridgedApplication(DisplayObject(event.target))){ return; }; if (isParent(DisplayObjectContainer(form), target)){ _lastFocus = findFocusManagerComponent(InteractiveObject(target)); if ((_lastFocus is IButton)){ x = (_lastFocus as IButton); if (defButton){ defButton.emphasized = false; defButton = x; x.emphasized = true; }; } else { if (((defButton) && (!((defButton == _defaultButton))))){ defButton.emphasized = false; defButton = _defaultButton; _defaultButton.emphasized = true; }; }; }; } public function toString():String{ return ((Object(form).toString() + ".focusManager")); } public function deactivate():void{ var sm:ISystemManager = form.systemManager; if (sm){ if (sm.isTopLevelRoot()){ sm.stage.removeEventListener(FocusEvent.MOUSE_FOCUS_CHANGE, mouseFocusChangeHandler); sm.stage.removeEventListener(FocusEvent.KEY_FOCUS_CHANGE, keyFocusChangeHandler); sm.stage.removeEventListener(Event.ACTIVATE, activateHandler); sm.stage.removeEventListener(Event.DEACTIVATE, deactivateHandler); } else { sm.removeEventListener(FocusEvent.MOUSE_FOCUS_CHANGE, mouseFocusChangeHandler); sm.removeEventListener(FocusEvent.KEY_FOCUS_CHANGE, keyFocusChangeHandler); sm.removeEventListener(Event.ACTIVATE, activateHandler); sm.removeEventListener(Event.DEACTIVATE, deactivateHandler); }; }; form.removeEventListener(FocusEvent.FOCUS_IN, focusInHandler, true); form.removeEventListener(FocusEvent.FOCUS_OUT, focusOutHandler, true); form.removeEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler); form.removeEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler, true); activated = false; dispatchEventFromSWFBridges(new SWFBridgeRequest(SWFBridgeRequest.DEACTIVATE_FOCUS_REQUEST), skipBridge); } private function findFocusManagerComponent2(o:InteractiveObject):DisplayObject{ var o = o; while (o) { if ((((((o is IFocusManagerComponent)) && (IFocusManagerComponent(o).focusEnabled))) || ((o is ISWFLoader)))){ return (o); }; o = o.parent; }; //unresolved jump var _slot1 = error; return (null); } private function getIndexOfNextObject(i:int, shiftKey:Boolean, bSearchAll:Boolean, groupName:String):int{ var o:DisplayObject; var tg1:IFocusManagerGroup; var j:int; var obj:DisplayObject; var tg2:IFocusManagerGroup; var n:int = focusableCandidates.length; var start:int = i; while (true) { if (shiftKey){ i--; } else { i++; }; if (bSearchAll){ if (((shiftKey) && ((i < 0)))){ break; }; if (((!(shiftKey)) && ((i == n)))){ break; }; } else { i = ((i + n) % n); if (start == i){ break; }; }; if (isValidFocusCandidate(focusableCandidates[i], groupName)){ o = DisplayObject(findFocusManagerComponent2(focusableCandidates[i])); if ((o is IFocusManagerGroup)){ tg1 = IFocusManagerGroup(o); j = 0; while (j < focusableCandidates.length) { obj = focusableCandidates[j]; if ((obj is IFocusManagerGroup)){ tg2 = IFocusManagerGroup(obj); if ((((tg2.groupName == tg1.groupName)) && (tg2.selected))){ if (((!((InteractiveObject(obj).tabIndex == InteractiveObject(o).tabIndex))) && (!(tg1.selected)))){ return (getIndexOfNextObject(i, shiftKey, bSearchAll, groupName)); }; i = j; break; }; }; j++; }; }; return (i); }; }; return (i); } public function moveFocus(direction:String, fromDisplayObject:DisplayObject=null):void{ if (direction == FocusRequestDirection.TOP){ setFocusToTop(); return; }; if (direction == FocusRequestDirection.BOTTOM){ setFocusToBottom(); return; }; var keyboardEvent:KeyboardEvent = new KeyboardEvent(KeyboardEvent.KEY_DOWN); keyboardEvent.keyCode = Keyboard.TAB; keyboardEvent.shiftKey = ((direction)==FocusRequestDirection.FORWARD) ? false : true; fauxFocus = fromDisplayObject; keyDownHandler(keyboardEvent); var focusEvent:FocusEvent = new FocusEvent(FocusEvent.KEY_FOCUS_CHANGE); focusEvent.keyCode = Keyboard.TAB; focusEvent.shiftKey = ((direction)==FocusRequestDirection.FORWARD) ? false : true; keyFocusChangeHandler(focusEvent); fauxFocus = null; } private function getMaxTabIndex():int{ var t:Number; var z:Number = 0; var n:int = focusableObjects.length; var i:int; while (i < n) { t = focusableObjects[i].tabIndex; if (!isNaN(t)){ z = Math.max(z, t); }; i++; }; return (z); } private function isParent(p:DisplayObjectContainer, o:DisplayObject):Boolean{ if ((p is IRawChildrenContainer)){ return (IRawChildrenContainer(p).rawChildren.contains(o)); }; return (p.contains(o)); } private function showHandler(event:Event):void{ form.systemManager.activate(form); } mx_internal function set form(value:IFocusManagerContainer):void{ _form = value; } public function setFocus(o:IFocusManagerComponent):void{ o.setFocus(); focusSetLocally = true; } public function findFocusManagerComponent(o:InteractiveObject):IFocusManagerComponent{ return ((findFocusManagerComponent2(o) as IFocusManagerComponent)); } public function removeSWFBridge(bridge:IEventDispatcher):void{ var index:int; var sm:ISystemManager = _form.systemManager; var displayObject:DisplayObject = DisplayObject(swfBridgeGroup.getChildBridgeProvider(bridge)); if (displayObject){ index = focusableObjects.indexOf(displayObject); if (index != -1){ focusableObjects.splice(index, 1); calculateCandidates = true; }; } else { throw (new Error()); }; bridge.removeEventListener(SWFBridgeRequest.MOVE_FOCUS_REQUEST, focusRequestMoveHandler); bridge.removeEventListener(SWFBridgeRequest.SET_SHOW_FOCUS_INDICATOR_REQUEST, setShowFocusIndicatorRequestHandler); bridge.removeEventListener(SWFBridgeEvent.BRIDGE_FOCUS_MANAGER_ACTIVATE, bridgeEventActivateHandler); swfBridgeGroup.removeChildBridge(bridge); } private function sortFocusableObjectsTabIndex():void{ var c:IFocusManagerComponent; focusableCandidates = []; var n:int = focusableObjects.length; var i:int; while (i < n) { c = (focusableObjects[i] as IFocusManagerComponent); if (((((((c) && (c.tabIndex))) && (!(isNaN(Number(c.tabIndex)))))) || ((focusableObjects[i] is ISWFLoader)))){ focusableCandidates.push(focusableObjects[i]); }; i++; }; focusableCandidates.sort(sortByTabIndex); } public function set defaultButton(value:IButton):void{ var button:IButton = (value) ? IButton(value) : null; if (button != _defaultButton){ if (_defaultButton){ _defaultButton.emphasized = false; }; if (defButton){ defButton.emphasized = false; }; _defaultButton = button; defButton = button; if (button){ button.emphasized = true; }; }; } private function setFocusToNextObject(event:FocusEvent):void{ focusChanged = false; if (focusableObjects.length == 0){ return; }; var focusInfo:FocusInfo = getNextFocusManagerComponent2(event.shiftKey, fauxFocus); if (((!(popup)) && (focusInfo.wrapped))){ if (getParentBridge()){ moveFocusToParent(event.shiftKey); return; }; }; setFocusToComponent(focusInfo.displayObject, event.shiftKey); } private function getTopLevelFocusTarget(o:InteractiveObject):InteractiveObject{ while (o != InteractiveObject(form)) { if ((((((((o is IFocusManagerComponent)) && (IFocusManagerComponent(o).focusEnabled))) && (IFocusManagerComponent(o).mouseFocusEnabled))) && (((o is IUIComponent)) ? IUIComponent(o).enabled : true))){ return (o); }; if ((o.parent is ISWFLoader)){ if (ISWFLoader(o.parent).swfBridge){ return (null); }; }; o = o.parent; if (o == null){ break; }; }; return (null); } private function addedToStageHandler(event:Event):void{ _form.removeEventListener(Event.ADDED_TO_STAGE, addedToStageHandler); if (focusableObjects.length == 0){ addFocusables(DisplayObject(_form)); calculateCandidates = true; }; } private function hideHandler(event:Event):void{ form.systemManager.deactivate(form); } private function isEnabledAndVisible(o:DisplayObject):Boolean{ var formParent:DisplayObjectContainer = DisplayObject(form).parent; while (o != formParent) { if ((o is IUIComponent)){ if (!IUIComponent(o).enabled){ return (false); }; }; if (!o.visible){ return (false); }; o = o.parent; }; return (true); } public function hideFocus():void{ if (showFocusIndicator){ showFocusIndicator = false; if (_lastFocus){ _lastFocus.drawFocus(false); }; }; } private function getBrowserFocusComponent(shiftKey:Boolean):InteractiveObject{ var index:int; var focusComponent:InteractiveObject = form.systemManager.stage.focus; if (!focusComponent){ index = (shiftKey) ? 0 : (focusableCandidates.length - 1); focusComponent = focusableCandidates[index]; }; return (focusComponent); } public function get showFocusIndicator():Boolean{ return (_showFocusIndicator); } private function moveFocusToParent(shiftKey:Boolean):Boolean{ var request:SWFBridgeRequest = new SWFBridgeRequest(SWFBridgeRequest.MOVE_FOCUS_REQUEST, false, true, null, (shiftKey) ? FocusRequestDirection.BACKWARD : FocusRequestDirection.FORWARD); var sandboxBridge:IEventDispatcher = _form.systemManager.swfBridgeGroup.parentBridge; sandboxBridge.dispatchEvent(request); focusChanged = request.data; return (focusChanged); } public function set focusPane(value:Sprite):void{ _focusPane = value; } mx_internal function get form():IFocusManagerContainer{ return (_form); } private function removedHandler(event:Event):void{ var i:int; var o:DisplayObject = DisplayObject(event.target); if ((o is IFocusManagerComponent)){ i = 0; while (i < focusableObjects.length) { if (o == focusableObjects[i]){ if (o == _lastFocus){ _lastFocus.drawFocus(false); _lastFocus = null; }; o.removeEventListener("tabEnabledChange", tabEnabledChangeHandler); o.removeEventListener("tabIndexChange", tabIndexChangeHandler); focusableObjects.splice(i, 1); calculateCandidates = true; break; }; i++; }; }; removeFocusables(o, false); } private function dispatchEventFromSWFBridges(event:Event, skip:IEventDispatcher=null):void{ var clone:Event; var parentBridge:IEventDispatcher; var sm:ISystemManager = form.systemManager; if (!popup){ parentBridge = swfBridgeGroup.parentBridge; if (((parentBridge) && (!((parentBridge == skip))))){ clone = event.clone(); if ((clone is SWFBridgeRequest)){ SWFBridgeRequest(clone).requestor = parentBridge; }; parentBridge.dispatchEvent(clone); }; }; var children:Array = swfBridgeGroup.getChildBridges(); var i:int; while (i < children.length) { if (children[i] != skip){ clone = event.clone(); if ((clone is SWFBridgeRequest)){ SWFBridgeRequest(clone).requestor = IEventDispatcher(children[i]); }; IEventDispatcher(children[i]).dispatchEvent(clone); }; i++; }; } public function get defaultButton():IButton{ return (_defaultButton); } private function activateHandler(event:Event):void{ if (((_lastFocus) && (!(browserMode)))){ _lastFocus.setFocus(); }; lastAction = "ACTIVATE"; } public function showFocus():void{ if (!showFocusIndicator){ showFocusIndicator = true; if (_lastFocus){ _lastFocus.drawFocus(true); }; }; } public function getNextFocusManagerComponent(backward:Boolean=false):IFocusManagerComponent{ return ((getNextFocusManagerComponent2(false, fauxFocus) as IFocusManagerComponent)); } private function setShowFocusIndicatorRequestHandler(event:Event):void{ if ((event is SWFBridgeRequest)){ return; }; var request:SWFBridgeRequest = SWFBridgeRequest.marshal(event); _showFocusIndicator = request.data; dispatchSetShowFocusIndicatorRequest(_showFocusIndicator, IEventDispatcher(event.target)); } private function setFocusToTop():void{ setFocusToNextIndex(-1, false); } private function isTabVisible(o:DisplayObject):Boolean{ var s:DisplayObject = DisplayObject(form.systemManager); if (!s){ return (false); }; var p:DisplayObjectContainer = o.parent; while (((p) && (!((p == s))))) { if (!p.tabChildren){ return (false); }; p = p.parent; }; return (true); } mx_internal function get lastFocus():IFocusManagerComponent{ return (_lastFocus); } public function set defaultButtonEnabled(value:Boolean):void{ _defaultButtonEnabled = value; } public function get defaultButtonEnabled():Boolean{ return (_defaultButtonEnabled); } public function set showFocusIndicator(value:Boolean):void{ var changed = !((_showFocusIndicator == value)); _showFocusIndicator = value; if (((((changed) && (!(popup)))) && (form.systemManager.swfBridgeGroup))){ dispatchSetShowFocusIndicatorRequest(value, null); }; } private function sortByTabIndex(a:InteractiveObject, b:InteractiveObject):int{ var aa:int = a.tabIndex; var bb:int = b.tabIndex; if (aa == -1){ aa = int.MAX_VALUE; }; if (bb == -1){ bb = int.MAX_VALUE; }; return (((aa > bb)) ? 1 : ((aa < bb)) ? -1 : sortByDepth(DisplayObject(a), DisplayObject(b))); } public function activate():void{ if (activated){ return; }; var sm:ISystemManager = form.systemManager; if (sm){ if (sm.isTopLevelRoot()){ sm.stage.addEventListener(FocusEvent.MOUSE_FOCUS_CHANGE, mouseFocusChangeHandler, false, 0, true); sm.stage.addEventListener(FocusEvent.KEY_FOCUS_CHANGE, keyFocusChangeHandler, false, 0, true); sm.stage.addEventListener(Event.ACTIVATE, activateHandler, false, 0, true); sm.stage.addEventListener(Event.DEACTIVATE, deactivateHandler, false, 0, true); } else { sm.addEventListener(FocusEvent.MOUSE_FOCUS_CHANGE, mouseFocusChangeHandler, false, 0, true); sm.addEventListener(FocusEvent.KEY_FOCUS_CHANGE, keyFocusChangeHandler, false, 0, true); sm.addEventListener(Event.ACTIVATE, activateHandler, false, 0, true); sm.addEventListener(Event.DEACTIVATE, deactivateHandler, false, 0, true); }; }; form.addEventListener(FocusEvent.FOCUS_IN, focusInHandler, true); form.addEventListener(FocusEvent.FOCUS_OUT, focusOutHandler, true); form.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler); form.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler, true); activated = true; if (_lastFocus){ setFocus(_lastFocus); }; dispatchEventFromSWFBridges(new SWFBridgeRequest(SWFBridgeRequest.ACTIVATE_FOCUS_REQUEST), skipBridge); } private function setFocusToNextIndex(index:int, shiftKey:Boolean):void{ if (focusableObjects.length == 0){ return; }; if (calculateCandidates){ sortFocusableObjects(); calculateCandidates = false; }; var focusInfo:FocusInfo = getNextFocusManagerComponent2(shiftKey, null, index); if (((!(popup)) && (focusInfo.wrapped))){ if (getParentBridge()){ moveFocusToParent(shiftKey); return; }; }; setFocusToComponent(focusInfo.displayObject, shiftKey); } } }//package mx.managers import flash.display.*; class FocusInfo { public var displayObject:DisplayObject; public var wrapped:Boolean; private function FocusInfo(){ super(); } }
Section 198
//ICursorManager (mx.managers.ICursorManager) package mx.managers { public interface ICursorManager { function removeAllCursors():void; function set currentCursorYOffset(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\managers;ICursorManager.as:Number):void; function removeBusyCursor():void; function unRegisterToUseBusyCursor(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\managers;ICursorManager.as:Object):void; function hideCursor():void; function get currentCursorID():int; function registerToUseBusyCursor(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\managers;ICursorManager.as:Object):void; function setBusyCursor():void; function showCursor():void; function set currentCursorID(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\managers;ICursorManager.as:int):void; function setCursor(_arg1:Class, _arg2:int=2, _arg3:Number=0, _arg4:Number=0):int; function removeCursor(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\managers;ICursorManager.as:int):void; function get currentCursorXOffset():Number; function get currentCursorYOffset():Number; function set currentCursorXOffset(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\managers;ICursorManager.as:Number):void; } }//package mx.managers
Section 199
//IFocusManager (mx.managers.IFocusManager) package mx.managers { import flash.display.*; import mx.core.*; import flash.events.*; public interface IFocusManager { function get focusPane():Sprite; function getFocus():IFocusManagerComponent; function deactivate():void; function set defaultButton(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\managers;IFocusManager.as:IButton):void; function set focusPane(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\managers;IFocusManager.as:Sprite):void; function set showFocusIndicator(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\managers;IFocusManager.as:Boolean):void; function moveFocus(_arg1:String, _arg2:DisplayObject=null):void; function addSWFBridge(_arg1:IEventDispatcher, _arg2:DisplayObject):void; function removeSWFBridge(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\managers;IFocusManager.as:IEventDispatcher):void; function get defaultButtonEnabled():Boolean; function findFocusManagerComponent(value:InteractiveObject):IFocusManagerComponent; function get nextTabIndex():int; function get defaultButton():IButton; function get showFocusIndicator():Boolean; function setFocus(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\managers;IFocusManager.as:IFocusManagerComponent):void; function activate():void; function showFocus():void; function set defaultButtonEnabled(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\managers;IFocusManager.as:Boolean):void; function hideFocus():void; function getNextFocusManagerComponent(value:Boolean=false):IFocusManagerComponent; } }//package mx.managers
Section 200
//IFocusManagerComplexComponent (mx.managers.IFocusManagerComplexComponent) package mx.managers { public interface IFocusManagerComplexComponent extends IFocusManagerComponent { function assignFocus(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\managers;IFocusManagerComplexComponent.as:String):void; function get hasFocusableContent():Boolean; } }//package mx.managers
Section 201
//IFocusManagerComponent (mx.managers.IFocusManagerComponent) package mx.managers { public interface IFocusManagerComponent { function set focusEnabled(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\managers;IFocusManagerComponent.as:Boolean):void; function drawFocus(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\managers;IFocusManagerComponent.as:Boolean):void; function setFocus():void; function get focusEnabled():Boolean; function get tabEnabled():Boolean; function get tabIndex():int; function get mouseFocusEnabled():Boolean; } }//package mx.managers
Section 202
//IFocusManagerContainer (mx.managers.IFocusManagerContainer) package mx.managers { import flash.display.*; import flash.events.*; public interface IFocusManagerContainer extends IEventDispatcher { function set focusManager(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\managers;IFocusManagerContainer.as:IFocusManager):void; function get focusManager():IFocusManager; function get systemManager():ISystemManager; function contains(mx.managers:DisplayObject):Boolean; } }//package mx.managers
Section 203
//IFocusManagerGroup (mx.managers.IFocusManagerGroup) package mx.managers { public interface IFocusManagerGroup { function get groupName():String; function get selected():Boolean; function set groupName(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\managers;IFocusManagerGroup.as:String):void; function set selected(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\managers;IFocusManagerGroup.as:Boolean):void; } }//package mx.managers
Section 204
//ILayoutManager (mx.managers.ILayoutManager) package mx.managers { import flash.events.*; public interface ILayoutManager extends IEventDispatcher { function validateNow():void; function validateClient(_arg1:ILayoutManagerClient, _arg2:Boolean=false):void; function isInvalid():Boolean; function invalidateDisplayList(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\managers;ILayoutManager.as:ILayoutManagerClient):void; function set usePhasedInstantiation(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\managers;ILayoutManager.as:Boolean):void; function invalidateSize(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\managers;ILayoutManager.as:ILayoutManagerClient):void; function get usePhasedInstantiation():Boolean; function invalidateProperties(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\managers;ILayoutManager.as:ILayoutManagerClient):void; } }//package mx.managers
Section 205
//ILayoutManagerClient (mx.managers.ILayoutManagerClient) package mx.managers { import flash.events.*; public interface ILayoutManagerClient extends IEventDispatcher { function get updateCompletePendingFlag():Boolean; function set updateCompletePendingFlag(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\managers;ILayoutManagerClient.as:Boolean):void; function set initialized(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\managers;ILayoutManagerClient.as:Boolean):void; function validateProperties():void; function validateDisplayList():void; function get nestLevel():int; function get initialized():Boolean; function get processedDescriptors():Boolean; function validateSize(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\managers;ILayoutManagerClient.as:Boolean=false):void; function set nestLevel(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\managers;ILayoutManagerClient.as:int):void; function set processedDescriptors(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\managers;ILayoutManagerClient.as:Boolean):void; } }//package mx.managers
Section 206
//ISystemManager (mx.managers.ISystemManager) package mx.managers { import flash.display.*; import flash.geom.*; import mx.core.*; import flash.text.*; import flash.events.*; public interface ISystemManager extends IEventDispatcher, IChildList, IFlexModuleFactory { function set focusPane(mx.managers:ISystemManager/mx.managers:ISystemManager:cursorChildren/get:Sprite):void; function get toolTipChildren():IChildList; function useSWFBridge():Boolean; function isFontFaceEmbedded(flash.display:TextFormat):Boolean; function deployMouseShields(mx.managers:ISystemManager/mx.managers:ISystemManager:cursorChildren/get:Boolean):void; function get rawChildren():IChildList; function get topLevelSystemManager():ISystemManager; function dispatchEventFromSWFBridges(_arg1:Event, _arg2:IEventDispatcher=null, _arg3:Boolean=false, _arg4:Boolean=false):void; function getSandboxRoot():DisplayObject; function get swfBridgeGroup():ISWFBridgeGroup; function removeFocusManager(mx.managers:ISystemManager/mx.managers:ISystemManager:cursorChildren/get:IFocusManagerContainer):void; function addChildToSandboxRoot(_arg1:String, _arg2:DisplayObject):void; function get document():Object; function get focusPane():Sprite; function get loaderInfo():LoaderInfo; function addChildBridge(_arg1:IEventDispatcher, _arg2:DisplayObject):void; function getTopLevelRoot():DisplayObject; function removeChildBridge(mx.managers:ISystemManager/mx.managers:ISystemManager:cursorChildren/get:IEventDispatcher):void; function isDisplayObjectInABridgedApplication(flash.display:DisplayObject):Boolean; function get popUpChildren():IChildList; function get screen():Rectangle; function removeChildFromSandboxRoot(_arg1:String, _arg2:DisplayObject):void; function getDefinitionByName(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\managers;ISystemManager.as:String):Object; function activate(mx.managers:ISystemManager/mx.managers:ISystemManager:cursorChildren/get:IFocusManagerContainer):void; function deactivate(mx.managers:ISystemManager/mx.managers:ISystemManager:cursorChildren/get:IFocusManagerContainer):void; function get cursorChildren():IChildList; function set document(mx.managers:ISystemManager/mx.managers:ISystemManager:cursorChildren/get:Object):void; function get embeddedFontList():Object; function set numModalWindows(mx.managers:ISystemManager/mx.managers:ISystemManager:cursorChildren/get:int):void; function isTopLevel():Boolean; function isTopLevelRoot():Boolean; function get numModalWindows():int; function addFocusManager(mx.managers:ISystemManager/mx.managers:ISystemManager:cursorChildren/get:IFocusManagerContainer):void; function get stage():Stage; function getVisibleApplicationRect(value:Rectangle=null):Rectangle; } }//package mx.managers
Section 207
//IToolTipManager2 (mx.managers.IToolTipManager2) package mx.managers { import flash.display.*; import mx.core.*; import mx.effects.*; public interface IToolTipManager2 { function registerToolTip(_arg1:DisplayObject, _arg2:String, _arg3:String):void; function get enabled():Boolean; function set enabled(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\managers;IToolTipManager2.as:Boolean):void; function get scrubDelay():Number; function set hideEffect(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\managers;IToolTipManager2.as:IAbstractEffect):void; function createToolTip(_arg1:String, _arg2:Number, _arg3:Number, _arg4:String=null, _arg5:IUIComponent=null):IToolTip; function set scrubDelay(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\managers;IToolTipManager2.as:Number):void; function set hideDelay(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\managers;IToolTipManager2.as:Number):void; function get currentTarget():DisplayObject; function set showDelay(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\managers;IToolTipManager2.as:Number):void; function get showDelay():Number; function get showEffect():IAbstractEffect; function get hideDelay():Number; function get currentToolTip():IToolTip; function get hideEffect():IAbstractEffect; function set currentToolTip(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\managers;IToolTipManager2.as:IToolTip):void; function get toolTipClass():Class; function registerErrorString(_arg1:DisplayObject, _arg2:String, _arg3:String):void; function destroyToolTip(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\managers;IToolTipManager2.as:IToolTip):void; function set toolTipClass(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\managers;IToolTipManager2.as:Class):void; function sizeTip(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\managers;IToolTipManager2.as:IToolTip):void; function set currentTarget(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\managers;IToolTipManager2.as:DisplayObject):void; function set showEffect(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\managers;IToolTipManager2.as:IAbstractEffect):void; } }//package mx.managers
Section 208
//IToolTipManagerClient (mx.managers.IToolTipManagerClient) package mx.managers { import mx.core.*; public interface IToolTipManagerClient extends IFlexDisplayObject { function get toolTip():String; function set toolTip(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\managers;IToolTipManagerClient.as:String):void; } }//package mx.managers
Section 209
//LayoutManager (mx.managers.LayoutManager) package mx.managers { import flash.display.*; import mx.core.*; import flash.events.*; import mx.events.*; import mx.managers.layoutClasses.*; public class LayoutManager extends EventDispatcher implements ILayoutManager { private var invalidateClientPropertiesFlag:Boolean;// = false private var invalidateDisplayListQueue:PriorityQueue; private var updateCompleteQueue:PriorityQueue; private var invalidateDisplayListFlag:Boolean;// = false private var invalidateClientSizeFlag:Boolean;// = false private var invalidateSizeQueue:PriorityQueue; private var originalFrameRate:Number; private var invalidatePropertiesFlag:Boolean;// = false private var invalidatePropertiesQueue:PriorityQueue; private var invalidateSizeFlag:Boolean;// = false private var callLaterPending:Boolean;// = false private var _usePhasedInstantiation:Boolean;// = false private var callLaterObject:UIComponent; private var targetLevel:int;// = 2147483647 mx_internal static const VERSION:String = "3.2.0.3958"; private static var instance:LayoutManager; public function LayoutManager(){ updateCompleteQueue = new PriorityQueue(); invalidatePropertiesQueue = new PriorityQueue(); invalidateSizeQueue = new PriorityQueue(); invalidateDisplayListQueue = new PriorityQueue(); super(); } public function set usePhasedInstantiation(value:Boolean):void{ var sm:ISystemManager; var stage:Stage; var value = value; if (_usePhasedInstantiation != value){ _usePhasedInstantiation = value; sm = SystemManagerGlobals.topLevelSystemManagers[0]; stage = SystemManagerGlobals.topLevelSystemManagers[0].stage; if (stage){ if (value){ originalFrameRate = stage.frameRate; stage.frameRate = 1000; } else { stage.frameRate = originalFrameRate; }; }; //unresolved jump var _slot1 = e; }; } private function waitAFrame():void{ callLaterObject.callLater(doPhasedInstantiation); } public function validateClient(target:ILayoutManagerClient, skipDisplayList:Boolean=false):void{ var obj:ILayoutManagerClient; var i:int; var done:Boolean; var oldTargetLevel:int = targetLevel; if (targetLevel == int.MAX_VALUE){ targetLevel = target.nestLevel; }; while (!(done)) { done = true; obj = ILayoutManagerClient(invalidatePropertiesQueue.removeSmallestChild(target)); while (obj) { obj.validateProperties(); if (!obj.updateCompletePendingFlag){ updateCompleteQueue.addObject(obj, obj.nestLevel); obj.updateCompletePendingFlag = true; }; obj = ILayoutManagerClient(invalidatePropertiesQueue.removeSmallestChild(target)); }; if (invalidatePropertiesQueue.isEmpty()){ invalidatePropertiesFlag = false; invalidateClientPropertiesFlag = false; }; obj = ILayoutManagerClient(invalidateSizeQueue.removeLargestChild(target)); while (obj) { obj.validateSize(); if (!obj.updateCompletePendingFlag){ updateCompleteQueue.addObject(obj, obj.nestLevel); obj.updateCompletePendingFlag = true; }; if (invalidateClientPropertiesFlag){ obj = ILayoutManagerClient(invalidatePropertiesQueue.removeSmallestChild(target)); if (obj){ invalidatePropertiesQueue.addObject(obj, obj.nestLevel); done = false; break; }; }; obj = ILayoutManagerClient(invalidateSizeQueue.removeLargestChild(target)); }; if (invalidateSizeQueue.isEmpty()){ invalidateSizeFlag = false; invalidateClientSizeFlag = false; }; if (!skipDisplayList){ obj = ILayoutManagerClient(invalidateDisplayListQueue.removeSmallestChild(target)); while (obj) { obj.validateDisplayList(); if (!obj.updateCompletePendingFlag){ updateCompleteQueue.addObject(obj, obj.nestLevel); obj.updateCompletePendingFlag = true; }; if (invalidateClientPropertiesFlag){ obj = ILayoutManagerClient(invalidatePropertiesQueue.removeSmallestChild(target)); if (obj){ invalidatePropertiesQueue.addObject(obj, obj.nestLevel); done = false; break; }; }; if (invalidateClientSizeFlag){ obj = ILayoutManagerClient(invalidateSizeQueue.removeLargestChild(target)); if (obj){ invalidateSizeQueue.addObject(obj, obj.nestLevel); done = false; break; }; }; obj = ILayoutManagerClient(invalidateDisplayListQueue.removeSmallestChild(target)); }; if (invalidateDisplayListQueue.isEmpty()){ invalidateDisplayListFlag = false; }; }; }; if (oldTargetLevel == int.MAX_VALUE){ targetLevel = int.MAX_VALUE; if (!skipDisplayList){ obj = ILayoutManagerClient(updateCompleteQueue.removeLargestChild(target)); while (obj) { if (!obj.initialized){ obj.initialized = true; }; obj.dispatchEvent(new FlexEvent(FlexEvent.UPDATE_COMPLETE)); obj.updateCompletePendingFlag = false; obj = ILayoutManagerClient(updateCompleteQueue.removeLargestChild(target)); }; }; }; } private function validateProperties():void{ var obj:ILayoutManagerClient = ILayoutManagerClient(invalidatePropertiesQueue.removeSmallest()); while (obj) { obj.validateProperties(); if (!obj.updateCompletePendingFlag){ updateCompleteQueue.addObject(obj, obj.nestLevel); obj.updateCompletePendingFlag = true; }; obj = ILayoutManagerClient(invalidatePropertiesQueue.removeSmallest()); }; if (invalidatePropertiesQueue.isEmpty()){ invalidatePropertiesFlag = false; }; } public function invalidateProperties(obj:ILayoutManagerClient):void{ if (((!(invalidatePropertiesFlag)) && (ApplicationGlobals.application.systemManager))){ invalidatePropertiesFlag = true; if (!callLaterPending){ if (!callLaterObject){ callLaterObject = new UIComponent(); callLaterObject.systemManager = ApplicationGlobals.application.systemManager; callLaterObject.callLater(waitAFrame); } else { callLaterObject.callLater(doPhasedInstantiation); }; callLaterPending = true; }; }; if (targetLevel <= obj.nestLevel){ invalidateClientPropertiesFlag = true; }; invalidatePropertiesQueue.addObject(obj, obj.nestLevel); } public function invalidateDisplayList(obj:ILayoutManagerClient):void{ if (((!(invalidateDisplayListFlag)) && (ApplicationGlobals.application.systemManager))){ invalidateDisplayListFlag = true; if (!callLaterPending){ if (!callLaterObject){ callLaterObject = new UIComponent(); callLaterObject.systemManager = ApplicationGlobals.application.systemManager; callLaterObject.callLater(waitAFrame); } else { callLaterObject.callLater(doPhasedInstantiation); }; callLaterPending = true; }; } else { if (((!(invalidateDisplayListFlag)) && (!(ApplicationGlobals.application.systemManager)))){ }; }; invalidateDisplayListQueue.addObject(obj, obj.nestLevel); } private function validateDisplayList():void{ var obj:ILayoutManagerClient = ILayoutManagerClient(invalidateDisplayListQueue.removeSmallest()); while (obj) { obj.validateDisplayList(); if (!obj.updateCompletePendingFlag){ updateCompleteQueue.addObject(obj, obj.nestLevel); obj.updateCompletePendingFlag = true; }; obj = ILayoutManagerClient(invalidateDisplayListQueue.removeSmallest()); }; if (invalidateDisplayListQueue.isEmpty()){ invalidateDisplayListFlag = false; }; } public function validateNow():void{ var infiniteLoopGuard:int; if (!usePhasedInstantiation){ infiniteLoopGuard = 0; while (((callLaterPending) && ((infiniteLoopGuard < 100)))) { doPhasedInstantiation(); }; }; } private function validateSize():void{ var obj:ILayoutManagerClient = ILayoutManagerClient(invalidateSizeQueue.removeLargest()); while (obj) { obj.validateSize(); if (!obj.updateCompletePendingFlag){ updateCompleteQueue.addObject(obj, obj.nestLevel); obj.updateCompletePendingFlag = true; }; obj = ILayoutManagerClient(invalidateSizeQueue.removeLargest()); }; if (invalidateSizeQueue.isEmpty()){ invalidateSizeFlag = false; }; } private function doPhasedInstantiation():void{ var obj:ILayoutManagerClient; if (usePhasedInstantiation){ if (invalidatePropertiesFlag){ validateProperties(); ApplicationGlobals.application.dispatchEvent(new Event("validatePropertiesComplete")); } else { if (invalidateSizeFlag){ validateSize(); ApplicationGlobals.application.dispatchEvent(new Event("validateSizeComplete")); } else { if (invalidateDisplayListFlag){ validateDisplayList(); ApplicationGlobals.application.dispatchEvent(new Event("validateDisplayListComplete")); }; }; }; } else { if (invalidatePropertiesFlag){ validateProperties(); }; if (invalidateSizeFlag){ validateSize(); }; if (invalidateDisplayListFlag){ validateDisplayList(); }; }; if (((((invalidatePropertiesFlag) || (invalidateSizeFlag))) || (invalidateDisplayListFlag))){ callLaterObject.callLater(doPhasedInstantiation); } else { usePhasedInstantiation = false; callLaterPending = false; obj = ILayoutManagerClient(updateCompleteQueue.removeLargest()); while (obj) { if (((!(obj.initialized)) && (obj.processedDescriptors))){ obj.initialized = true; }; obj.dispatchEvent(new FlexEvent(FlexEvent.UPDATE_COMPLETE)); obj.updateCompletePendingFlag = false; obj = ILayoutManagerClient(updateCompleteQueue.removeLargest()); }; dispatchEvent(new FlexEvent(FlexEvent.UPDATE_COMPLETE)); }; } public function isInvalid():Boolean{ return (((((invalidatePropertiesFlag) || (invalidateSizeFlag))) || (invalidateDisplayListFlag))); } public function get usePhasedInstantiation():Boolean{ return (_usePhasedInstantiation); } public function invalidateSize(obj:ILayoutManagerClient):void{ if (((!(invalidateSizeFlag)) && (ApplicationGlobals.application.systemManager))){ invalidateSizeFlag = true; if (!callLaterPending){ if (!callLaterObject){ callLaterObject = new UIComponent(); callLaterObject.systemManager = ApplicationGlobals.application.systemManager; callLaterObject.callLater(waitAFrame); } else { callLaterObject.callLater(doPhasedInstantiation); }; callLaterPending = true; }; }; if (targetLevel <= obj.nestLevel){ invalidateClientSizeFlag = true; }; invalidateSizeQueue.addObject(obj, obj.nestLevel); } public static function getInstance():LayoutManager{ if (!instance){ instance = new (LayoutManager); }; return (instance); } } }//package mx.managers
Section 210
//PopUpManagerChildList (mx.managers.PopUpManagerChildList) package mx.managers { import mx.core.*; public final class PopUpManagerChildList { public static const PARENT:String = "parent"; public static const APPLICATION:String = "application"; mx_internal static const VERSION:String = "3.2.0.3958"; public static const POPUP:String = "popup"; public function PopUpManagerChildList(){ super(); } } }//package mx.managers
Section 211
//SystemChildrenList (mx.managers.SystemChildrenList) package mx.managers { import flash.display.*; import flash.geom.*; import mx.core.*; public class SystemChildrenList implements IChildList { private var lowerBoundReference:QName; private var upperBoundReference:QName; private var owner:SystemManager; mx_internal static const VERSION:String = "3.2.0.3958"; public function SystemChildrenList(owner:SystemManager, lowerBoundReference:QName, upperBoundReference:QName){ super(); this.owner = owner; this.lowerBoundReference = lowerBoundReference; this.upperBoundReference = upperBoundReference; } public function getChildAt(index:int):DisplayObject{ var _local3 = owner; var retval:DisplayObject = _local3.mx_internal::rawChildren_getChildAt((owner[lowerBoundReference] + index)); return (retval); } public function getChildByName(name:String):DisplayObject{ return (owner.mx_internal::rawChildren_getChildByName(name)); } public function removeChildAt(index:int):DisplayObject{ var _local3 = owner; var child:DisplayObject = _local3.mx_internal::rawChildren_removeChildAt((index + owner[lowerBoundReference])); _local3 = owner; var _local4 = upperBoundReference; var _local5 = (_local3[_local4] - 1); _local3[_local4] = _local5; return (child); } public function getChildIndex(child:DisplayObject):int{ var retval:int = owner.mx_internal::rawChildren_getChildIndex(child); retval = (retval - owner[lowerBoundReference]); return (retval); } public function addChildAt(child:DisplayObject, index:int):DisplayObject{ var _local3 = owner; _local3.mx_internal::rawChildren_addChildAt(child, (owner[lowerBoundReference] + index)); _local3 = owner; var _local4 = upperBoundReference; var _local5 = (_local3[_local4] + 1); _local3[_local4] = _local5; return (child); } public function getObjectsUnderPoint(point:Point):Array{ return (owner.mx_internal::rawChildren_getObjectsUnderPoint(point)); } public function setChildIndex(child:DisplayObject, newIndex:int):void{ var _local3 = owner; _local3.mx_internal::rawChildren_setChildIndex(child, (owner[lowerBoundReference] + newIndex)); } public function get numChildren():int{ return ((owner[upperBoundReference] - owner[lowerBoundReference])); } public function contains(child:DisplayObject):Boolean{ var childIndex:int; if (((!((child == owner))) && (owner.mx_internal::rawChildren_contains(child)))){ while (child.parent != owner) { child = child.parent; }; childIndex = owner.mx_internal::rawChildren_getChildIndex(child); if ((((childIndex >= owner[lowerBoundReference])) && ((childIndex < owner[upperBoundReference])))){ return (true); }; }; return (false); } public function removeChild(child:DisplayObject):DisplayObject{ var index:int = owner.mx_internal::rawChildren_getChildIndex(child); if ((((owner[lowerBoundReference] <= index)) && ((index < owner[upperBoundReference])))){ var _local3 = owner; _local3.mx_internal::rawChildren_removeChild(child); _local3 = owner; var _local4 = upperBoundReference; var _local5 = (_local3[_local4] - 1); _local3[_local4] = _local5; }; return (child); } public function addChild(child:DisplayObject):DisplayObject{ var _local2 = owner; _local2.mx_internal::rawChildren_addChildAt(child, owner[upperBoundReference]); _local2 = owner; var _local3 = upperBoundReference; var _local4 = (_local2[_local3] + 1); _local2[_local3] = _local4; return (child); } } }//package mx.managers
Section 212
//SystemManager (mx.managers.SystemManager) package mx.managers { import flash.display.*; import flash.geom.*; import mx.core.*; import flash.text.*; import flash.events.*; import mx.managers.systemClasses.*; import mx.events.*; import mx.styles.*; import mx.resources.*; import flash.system.*; import mx.preloaders.*; import flash.utils.*; import mx.messaging.config.*; import mx.utils.*; public class SystemManager extends MovieClip implements IChildList, IFlexDisplayObject, IFlexModuleFactory, ISystemManager, ISWFBridgeProvider { private var _stage:Stage; mx_internal var nestLevel:int;// = 0 private var currentSandboxEvent:Event; private var forms:Array; private var mouseCatcher:Sprite; private var _height:Number; private var dispatchingToSystemManagers:Boolean;// = false private var preloader:Preloader; private var lastFrame:int; private var _document:Object; private var strongReferenceProxies:Dictionary; private var _rawChildren:SystemRawChildrenList; private var _topLevelSystemManager:ISystemManager; private var _toolTipIndex:int;// = 0 private var _explicitHeight:Number; private var idToPlaceholder:Object; private var _swfBridgeGroup:ISWFBridgeGroup; private var _toolTipChildren:SystemChildrenList; private var form:Object; private var _width:Number; private var initialized:Boolean;// = false private var _focusPane:Sprite; private var _fontList:Object;// = null private var isStageRoot:Boolean;// = true private var _popUpChildren:SystemChildrenList; private var rslSizes:Array;// = null private var _topMostIndex:int;// = 0 private var nextFrameTimer:Timer;// = null mx_internal var topLevel:Boolean;// = true private var weakReferenceProxies:Dictionary; private var _cursorIndex:int;// = 0 private var isBootstrapRoot:Boolean;// = false mx_internal var _mouseY; private var _numModalWindows:int;// = 0 mx_internal var _mouseX; private var _screen:Rectangle; mx_internal var idleCounter:int;// = 0 private var _cursorChildren:SystemChildrenList; private var initCallbackFunctions:Array; private var bridgeToFocusManager:Dictionary; private var _noTopMostIndex:int;// = 0 private var _applicationIndex:int;// = 1 private var isDispatchingResizeEvent:Boolean; private var idleTimer:Timer; private var doneExecutingInitCallbacks:Boolean;// = false private var _explicitWidth:Number; private var eventProxy:EventProxy; mx_internal var topLevelWindow:IUIComponent; private static const IDLE_THRESHOLD:Number = 1000; private static const IDLE_INTERVAL:Number = 100; mx_internal static const VERSION:String = "3.2.0.3958"; mx_internal static var lastSystemManager:SystemManager; mx_internal static var allSystemManagers:Dictionary = new Dictionary(true); public function SystemManager(){ initCallbackFunctions = []; forms = []; weakReferenceProxies = new Dictionary(true); strongReferenceProxies = new Dictionary(false); super(); if (stage){ stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = StageAlign.TOP_LEFT; }; if ((((SystemManagerGlobals.topLevelSystemManagers.length > 0)) && (!(stage)))){ topLevel = false; }; if (!stage){ isStageRoot = false; }; if (topLevel){ SystemManagerGlobals.topLevelSystemManagers.push(this); }; lastSystemManager = this; var compiledLocales:Array = info()["compiledLocales"]; ResourceBundle.locale = (((!((compiledLocales == null))) && ((compiledLocales.length > 0)))) ? compiledLocales[0] : "en_US"; executeCallbacks(); stop(); if (((topLevel) && (!((currentFrame == 1))))){ throw (new Error((("The SystemManager constructor was called when the currentFrame was at " + currentFrame) + " Please add this SWF to bug 129782."))); }; if (((root) && (root.loaderInfo))){ root.loaderInfo.addEventListener(Event.INIT, initHandler); }; } private function removeEventListenerFromSandboxes(type:String, listener:Function, useCapture:Boolean=false, skip:IEventDispatcher=null):void{ var i:int; if (!swfBridgeGroup){ return; }; var request:EventListenerRequest = new EventListenerRequest(EventListenerRequest.REMOVE_EVENT_LISTENER_REQUEST, false, false, type, useCapture); var parentBridge:IEventDispatcher = swfBridgeGroup.parentBridge; if (((parentBridge) && (!((parentBridge == skip))))){ parentBridge.removeEventListener(type, listener, useCapture); }; var children:Array = swfBridgeGroup.getChildBridges(); while (i < children.length) { if (children[i] != skip){ IEventDispatcher(children[i]).removeEventListener(type, listener, useCapture); }; i++; }; dispatchEventFromSWFBridges(request, skip); } mx_internal function addingChild(child:DisplayObject):void{ var obj:DisplayObjectContainer; var newNestLevel = 1; if (((!(topLevel)) && (parent))){ obj = parent.parent; while (obj) { if ((obj is ILayoutManagerClient)){ newNestLevel = (ILayoutManagerClient(obj).nestLevel + 1); break; }; obj = obj.parent; }; }; nestLevel = newNestLevel; if ((child is IUIComponent)){ IUIComponent(child).systemManager = this; }; var uiComponentClassName:Class = Class(getDefinitionByName("mx.core.UIComponent")); if ((((child is IUIComponent)) && (!(IUIComponent(child).document)))){ IUIComponent(child).document = document; }; if ((child is ILayoutManagerClient)){ ILayoutManagerClient(child).nestLevel = (nestLevel + 1); }; if ((child is InteractiveObject)){ if (doubleClickEnabled){ InteractiveObject(child).doubleClickEnabled = true; }; }; if ((child is IUIComponent)){ IUIComponent(child).parentChanged(this); }; if ((child is IStyleClient)){ IStyleClient(child).regenerateStyleCache(true); }; if ((child is ISimpleStyleClient)){ ISimpleStyleClient(child).styleChanged(null); }; if ((child is IStyleClient)){ IStyleClient(child).notifyStyleChangeInChildren(null, true); }; if (((uiComponentClassName) && ((child is uiComponentClassName)))){ uiComponentClassName(child).initThemeColor(); }; if (((uiComponentClassName) && ((child is uiComponentClassName)))){ uiComponentClassName(child).stylesInitialized(); }; } private function dispatchEventToOtherSystemManagers(event:Event):void{ dispatchingToSystemManagers = true; var arr:Array = SystemManagerGlobals.topLevelSystemManagers; var n:int = arr.length; var i:int; while (i < n) { if (arr[i] != this){ arr[i].dispatchEvent(event); }; i++; }; dispatchingToSystemManagers = false; } private function idleTimer_timerHandler(event:TimerEvent):void{ idleCounter++; if ((idleCounter * IDLE_INTERVAL) > IDLE_THRESHOLD){ dispatchEvent(new FlexEvent(FlexEvent.IDLE)); }; } private function initManagerHandler(event:Event):void{ var event = event; if (!dispatchingToSystemManagers){ dispatchEventToOtherSystemManagers(event); }; if ((event is InterManagerRequest)){ return; }; var name:String = event["name"]; Singleton.getInstance(name); //unresolved jump var _slot1 = e; } private function getSizeRequestHandler(event:Event):void{ var eObj:Object = Object(event); eObj.data = {width:measuredWidth, height:measuredHeight}; } private function beforeUnloadHandler(event:Event):void{ var sandboxRoot:DisplayObject; if (((topLevel) && (stage))){ sandboxRoot = getSandboxRoot(); if (sandboxRoot != this){ sandboxRoot.removeEventListener(Event.RESIZE, Stage_resizeHandler); }; }; removeParentBridgeListeners(); dispatchEvent(event); } public function getExplicitOrMeasuredHeight():Number{ return ((isNaN(explicitHeight)) ? measuredHeight : explicitHeight); } private function getVisibleRectRequestHandler(event:Event):void{ var localRect:Rectangle; var pt:Point; var bridge:IEventDispatcher; if ((event is SWFBridgeRequest)){ return; }; var request:SWFBridgeRequest = SWFBridgeRequest.marshal(event); var rect:Rectangle = Rectangle(request.data); var owner:DisplayObject = DisplayObject(swfBridgeGroup.getChildBridgeProvider(request.requestor)); var forwardRequest:Boolean; if (!DisplayObjectContainer(document).contains(owner)){ forwardRequest = false; }; if ((owner is ISWFLoader)){ localRect = ISWFLoader(owner).getVisibleApplicationRect(); } else { localRect = owner.getBounds(this); pt = localToGlobal(localRect.topLeft); localRect.x = pt.x; localRect.y = pt.y; }; rect = rect.intersection(localRect); request.data = rect; if (((forwardRequest) && (useSWFBridge()))){ bridge = swfBridgeGroup.parentBridge; request.requestor = bridge; bridge.dispatchEvent(request); }; Object(event).data = request.data; } mx_internal function notifyStyleChangeInChildren(styleProp:String, recursive:Boolean):void{ var child:IStyleClient; var foundTopLevelWindow:Boolean; var n:int = rawChildren.numChildren; var i:int; while (i < n) { child = (rawChildren.getChildAt(i) as IStyleClient); if (child){ child.styleChanged(styleProp); child.notifyStyleChangeInChildren(styleProp, recursive); }; if (isTopLevelWindow(DisplayObject(child))){ foundTopLevelWindow = true; }; n = rawChildren.numChildren; i++; }; if (((!(foundTopLevelWindow)) && ((topLevelWindow is IStyleClient)))){ IStyleClient(topLevelWindow).styleChanged(styleProp); IStyleClient(topLevelWindow).notifyStyleChangeInChildren(styleProp, recursive); }; } mx_internal function rawChildren_getObjectsUnderPoint(pt:Point):Array{ return (super.getObjectsUnderPoint(pt)); } private function initHandler(event:Event):void{ var bridgeEvent:SWFBridgeEvent; var event = event; if (!isStageRoot){ if (root.loaderInfo.parentAllowsChild){ if (!parent.dispatchEvent(new Event("mx.managers.SystemManager.isBootstrapRoot", false, true))){ isBootstrapRoot = true; }; //unresolved jump var _slot1 = e; }; }; allSystemManagers[this] = this.loaderInfo.url; root.loaderInfo.removeEventListener(Event.INIT, initHandler); if (useSWFBridge()){ swfBridgeGroup = new SWFBridgeGroup(this); swfBridgeGroup.parentBridge = loaderInfo.sharedEvents; addParentBridgeListeners(); bridgeEvent = new SWFBridgeEvent(SWFBridgeEvent.BRIDGE_NEW_APPLICATION); bridgeEvent.data = swfBridgeGroup.parentBridge; swfBridgeGroup.parentBridge.dispatchEvent(bridgeEvent); addEventListener(SWFBridgeRequest.ADD_POP_UP_PLACE_HOLDER_REQUEST, addPlaceholderPopupRequestHandler); root.loaderInfo.addEventListener(Event.UNLOAD, unloadHandler, false, 0, true); }; getSandboxRoot().addEventListener(InterManagerRequest.INIT_MANAGER_REQUEST, initManagerHandler, false, 0, true); if (getSandboxRoot() == this){ addEventListener(InterManagerRequest.SYSTEM_MANAGER_REQUEST, systemManagerHandler); addEventListener(InterManagerRequest.DRAG_MANAGER_REQUEST, multiWindowRedispatcher); addEventListener("dispatchDragEvent", multiWindowRedispatcher); addEventListener(SWFBridgeRequest.ADD_POP_UP_REQUEST, addPopupRequestHandler); addEventListener(SWFBridgeRequest.REMOVE_POP_UP_REQUEST, removePopupRequestHandler); addEventListener(SWFBridgeRequest.ADD_POP_UP_PLACE_HOLDER_REQUEST, addPlaceholderPopupRequestHandler); addEventListener(SWFBridgeRequest.REMOVE_POP_UP_PLACE_HOLDER_REQUEST, removePlaceholderPopupRequestHandler); addEventListener(SWFBridgeEvent.BRIDGE_WINDOW_ACTIVATE, activateFormSandboxEventHandler); addEventListener(SWFBridgeEvent.BRIDGE_WINDOW_DEACTIVATE, deactivateFormSandboxEventHandler); addEventListener(SWFBridgeRequest.HIDE_MOUSE_CURSOR_REQUEST, hideMouseCursorRequestHandler); addEventListener(SWFBridgeRequest.SHOW_MOUSE_CURSOR_REQUEST, showMouseCursorRequestHandler); addEventListener(SWFBridgeRequest.RESET_MOUSE_CURSOR_REQUEST, resetMouseCursorRequestHandler); }; var docFrame:int = ((totalFrames)==1) ? 0 : 1; addEventListener(Event.ENTER_FRAME, docFrameListener); initialize(); } mx_internal function findFocusManagerContainer(smp:SystemManagerProxy):IFocusManagerContainer{ var child:DisplayObject; var children:IChildList = smp.rawChildren; var numChildren:int = children.numChildren; var i:int; while (i < numChildren) { child = children.getChildAt(i); if ((child is IFocusManagerContainer)){ return (IFocusManagerContainer(child)); }; i++; }; return (null); } private function addPlaceholderPopupRequestHandler(event:Event):void{ var remoteForm:RemotePopUp; var popUpRequest:SWFBridgeRequest = SWFBridgeRequest.marshal(event); if (((!((event.target == this))) && ((event is SWFBridgeRequest)))){ return; }; if (!forwardPlaceholderRequest(popUpRequest, true)){ remoteForm = new RemotePopUp(popUpRequest.data.placeHolderId, popUpRequest.requestor); forms.push(remoteForm); }; } override public function contains(child:DisplayObject):Boolean{ var childIndex:int; var i:int; var myChild:DisplayObject; if (super.contains(child)){ if (child.parent == this){ childIndex = super.getChildIndex(child); if (childIndex < noTopMostIndex){ return (true); }; } else { i = 0; while (i < noTopMostIndex) { myChild = super.getChildAt(i); if ((myChild is IRawChildrenContainer)){ if (IRawChildrenContainer(myChild).rawChildren.contains(child)){ return (true); }; }; if ((myChild is DisplayObjectContainer)){ if (DisplayObjectContainer(myChild).contains(child)){ return (true); }; }; i++; }; }; }; return (false); } private function modalWindowRequestHandler(event:Event):void{ if ((event is SWFBridgeRequest)){ return; }; var request:SWFBridgeRequest = SWFBridgeRequest.marshal(event); if (!preProcessModalWindowRequest(request, getSandboxRoot())){ return; }; Singleton.getInstance("mx.managers::IPopUpManager"); dispatchEvent(request); } private function activateApplicationSandboxEventHandler(event:Event):void{ if (!isTopLevelRoot()){ swfBridgeGroup.parentBridge.dispatchEvent(event); return; }; activateForm(document); } public function getDefinitionByName(name:String):Object{ var definition:Object; var domain:ApplicationDomain = (((!(topLevel)) && ((parent is Loader)))) ? Loader(parent).contentLoaderInfo.applicationDomain : (info()["currentDomain"] as ApplicationDomain); if (domain.hasDefinition(name)){ definition = domain.getDefinition(name); }; return (definition); } public function removeChildFromSandboxRoot(layer:String, child:DisplayObject):void{ var me:InterManagerRequest; if (getSandboxRoot() == this){ this[layer].removeChild(child); } else { removingChild(child); me = new InterManagerRequest(InterManagerRequest.SYSTEM_MANAGER_REQUEST); me.name = (layer + ".removeChild"); me.value = child; getSandboxRoot().dispatchEvent(me); childRemoved(child); }; } private function removeEventListenerFromOtherSystemManagers(type:String, listener:Function, useCapture:Boolean=false):void{ var arr:Array = SystemManagerGlobals.topLevelSystemManagers; if (arr.length < 2){ return; }; SystemManagerGlobals.changingListenersInOtherSystemManagers = true; var n:int = arr.length; var i:int; while (i < n) { if (arr[i] != this){ arr[i].removeEventListener(type, listener, useCapture); }; i++; }; SystemManagerGlobals.changingListenersInOtherSystemManagers = false; } private function addEventListenerToOtherSystemManagers(type:String, listener:Function, useCapture:Boolean=false, priority:int=0, useWeakReference:Boolean=false):void{ var arr:Array = SystemManagerGlobals.topLevelSystemManagers; if (arr.length < 2){ return; }; SystemManagerGlobals.changingListenersInOtherSystemManagers = true; var n:int = arr.length; var i:int; while (i < n) { if (arr[i] != this){ arr[i].addEventListener(type, listener, useCapture, priority, useWeakReference); }; i++; }; SystemManagerGlobals.changingListenersInOtherSystemManagers = false; } public function get embeddedFontList():Object{ var o:Object; var p:String; var fl:Object; if (_fontList == null){ _fontList = {}; o = info()["fonts"]; for (p in o) { _fontList[p] = o[p]; }; if (((!(topLevel)) && (_topLevelSystemManager))){ fl = _topLevelSystemManager.embeddedFontList; for (p in fl) { _fontList[p] = fl[p]; }; }; }; return (_fontList); } mx_internal function set cursorIndex(value:int):void{ var delta:int = (value - _cursorIndex); _cursorIndex = value; } mx_internal function addChildBridgeListeners(bridge:IEventDispatcher):void{ if (((!(topLevel)) && (topLevelSystemManager))){ SystemManager(topLevelSystemManager).addChildBridgeListeners(bridge); return; }; bridge.addEventListener(SWFBridgeRequest.ADD_POP_UP_REQUEST, addPopupRequestHandler); bridge.addEventListener(SWFBridgeRequest.REMOVE_POP_UP_REQUEST, removePopupRequestHandler); bridge.addEventListener(SWFBridgeRequest.ADD_POP_UP_PLACE_HOLDER_REQUEST, addPlaceholderPopupRequestHandler); bridge.addEventListener(SWFBridgeRequest.REMOVE_POP_UP_PLACE_HOLDER_REQUEST, removePlaceholderPopupRequestHandler); bridge.addEventListener(SWFBridgeEvent.BRIDGE_WINDOW_ACTIVATE, activateFormSandboxEventHandler); bridge.addEventListener(SWFBridgeEvent.BRIDGE_WINDOW_DEACTIVATE, deactivateFormSandboxEventHandler); bridge.addEventListener(SWFBridgeEvent.BRIDGE_APPLICATION_ACTIVATE, activateApplicationSandboxEventHandler); bridge.addEventListener(EventListenerRequest.ADD_EVENT_LISTENER_REQUEST, eventListenerRequestHandler, false, 0, true); bridge.addEventListener(EventListenerRequest.REMOVE_EVENT_LISTENER_REQUEST, eventListenerRequestHandler, false, 0, true); bridge.addEventListener(SWFBridgeRequest.CREATE_MODAL_WINDOW_REQUEST, modalWindowRequestHandler); bridge.addEventListener(SWFBridgeRequest.SHOW_MODAL_WINDOW_REQUEST, modalWindowRequestHandler); bridge.addEventListener(SWFBridgeRequest.HIDE_MODAL_WINDOW_REQUEST, modalWindowRequestHandler); bridge.addEventListener(SWFBridgeRequest.GET_VISIBLE_RECT_REQUEST, getVisibleRectRequestHandler); bridge.addEventListener(SWFBridgeRequest.HIDE_MOUSE_CURSOR_REQUEST, hideMouseCursorRequestHandler); bridge.addEventListener(SWFBridgeRequest.SHOW_MOUSE_CURSOR_REQUEST, showMouseCursorRequestHandler); bridge.addEventListener(SWFBridgeRequest.RESET_MOUSE_CURSOR_REQUEST, resetMouseCursorRequestHandler); } public function set document(value:Object):void{ _document = value; } override public function getChildAt(index:int):DisplayObject{ return (super.getChildAt((applicationIndex + index))); } public function get rawChildren():IChildList{ if (!_rawChildren){ _rawChildren = new SystemRawChildrenList(this); }; return (_rawChildren); } private function findLastActiveForm(f:Object):Object{ var n:int = forms.length; var i:int = (forms.length - 1); while (i >= 0) { if (((!((forms[i] == f))) && (canActivatePopUp(forms[i])))){ return (forms[i]); }; i--; }; return (null); } private function multiWindowRedispatcher(event:Event):void{ if (!dispatchingToSystemManagers){ dispatchEventToOtherSystemManagers(event); }; } public function deployMouseShields(deploy:Boolean):void{ var me:InterManagerRequest = new InterManagerRequest(InterManagerRequest.DRAG_MANAGER_REQUEST, false, false, "mouseShield", deploy); getSandboxRoot().dispatchEvent(me); } override public function addEventListener(type:String, listener:Function, useCapture:Boolean=false, priority:int=0, useWeakReference:Boolean=false):void{ var newListener:StageEventProxy; var actualType:String; var type = type; var listener = listener; var useCapture = useCapture; var priority = priority; var useWeakReference = useWeakReference; if ((((type == FlexEvent.RENDER)) || ((type == FlexEvent.ENTER_FRAME)))){ if (type == FlexEvent.RENDER){ type = Event.RENDER; } else { type = Event.ENTER_FRAME; }; if (stage){ stage.addEventListener(type, listener, useCapture, priority, useWeakReference); } else { super.addEventListener(type, listener, useCapture, priority, useWeakReference); }; //unresolved jump var _slot1 = error; super.addEventListener(type, listener, useCapture, priority, useWeakReference); if (((stage) && ((type == Event.RENDER)))){ stage.invalidate(); }; return; }; if ((((((((((type == MouseEvent.MOUSE_MOVE)) || ((type == MouseEvent.MOUSE_UP)))) || ((type == MouseEvent.MOUSE_DOWN)))) || ((type == Event.ACTIVATE)))) || ((type == Event.DEACTIVATE)))){ if (stage){ newListener = new StageEventProxy(listener); stage.addEventListener(type, newListener.stageListener, false, priority, useWeakReference); if (useWeakReference){ weakReferenceProxies[listener] = newListener; } else { strongReferenceProxies[listener] = newListener; }; }; //unresolved jump var _slot1 = error; }; if (((hasSWFBridges()) || ((SystemManagerGlobals.topLevelSystemManagers.length > 1)))){ if (!eventProxy){ eventProxy = new EventProxy(this); }; actualType = EventUtil.sandboxMouseEventMap[type]; if (actualType){ if (isTopLevelRoot()){ stage.addEventListener(MouseEvent.MOUSE_MOVE, resetMouseCursorTracking, true, (EventPriority.CURSOR_MANAGEMENT + 1), true); addEventListenerToSandboxes(SandboxMouseEvent.MOUSE_MOVE_SOMEWHERE, resetMouseCursorTracking, true, (EventPriority.CURSOR_MANAGEMENT + 1), true); } else { super.addEventListener(MouseEvent.MOUSE_MOVE, resetMouseCursorTracking, true, (EventPriority.CURSOR_MANAGEMENT + 1), true); }; addEventListenerToSandboxes(type, sandboxMouseListener, useCapture, priority, useWeakReference); if (!SystemManagerGlobals.changingListenersInOtherSystemManagers){ addEventListenerToOtherSystemManagers(type, otherSystemManagerMouseListener, useCapture, priority, useWeakReference); }; if (getSandboxRoot() == this){ super.addEventListener(actualType, eventProxy.marshalListener, useCapture, priority, useWeakReference); }; super.addEventListener(type, listener, false, priority, useWeakReference); return; }; }; if ((((type == FlexEvent.IDLE)) && (!(idleTimer)))){ idleTimer = new Timer(IDLE_INTERVAL); idleTimer.addEventListener(TimerEvent.TIMER, idleTimer_timerHandler); idleTimer.start(); addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler, true); addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler, true); }; super.addEventListener(type, listener, useCapture, priority, useWeakReference); } private function activateForm(f:Object):void{ var z:IFocusManagerContainer; if (form){ if (((!((form == f))) && ((forms.length > 1)))){ if (isRemotePopUp(form)){ if (!areRemotePopUpsEqual(form, f)){ deactivateRemotePopUp(form); }; } else { z = IFocusManagerContainer(form); z.focusManager.deactivate(); }; }; }; form = f; if (isRemotePopUp(f)){ activateRemotePopUp(f); } else { if (f.focusManager){ f.focusManager.activate(); }; }; updateLastActiveForm(); } public function removeFocusManager(f:IFocusManagerContainer):void{ var n:int = forms.length; var i:int; while (i < n) { if (forms[i] == f){ if (form == f){ deactivate(f); }; dispatchDeactivatedWindowEvent(DisplayObject(f)); forms.splice(i, 1); return; }; i++; }; } private function mouseMoveHandler(event:MouseEvent):void{ idleCounter = 0; } private function getSandboxScreen():Rectangle{ var sandboxScreen:Rectangle; var sm:DisplayObject; var me:InterManagerRequest; var sandboxRoot:DisplayObject = getSandboxRoot(); if (sandboxRoot == this){ sandboxScreen = new Rectangle(0, 0, width, height); } else { if (sandboxRoot == topLevelSystemManager){ sm = DisplayObject(topLevelSystemManager); sandboxScreen = new Rectangle(0, 0, sm.width, sm.height); } else { me = new InterManagerRequest(InterManagerRequest.SYSTEM_MANAGER_REQUEST, false, false, "screen"); sandboxRoot.dispatchEvent(me); sandboxScreen = Rectangle(me.value); }; }; return (sandboxScreen); } public function get focusPane():Sprite{ return (_focusPane); } override public function get mouseX():Number{ if (_mouseX === undefined){ return (super.mouseX); }; return (_mouseX); } private function mouseDownHandler(event:MouseEvent):void{ var n:int; var p:DisplayObject; var isApplication:Boolean; var i:int; var form_i:Object; var j:int; var index:int; var newIndex:int; var childList:IChildList; var f:DisplayObject; var isRemotePopUp:Boolean; var fChildIndex:int; idleCounter = 0; var bridge:IEventDispatcher = getSWFBridgeOfDisplayObject((event.target as DisplayObject)); if (((bridge) && ((bridgeToFocusManager[bridge] == document.focusManager)))){ if (isTopLevelRoot()){ activateForm(document); } else { dispatchActivatedApplicationEvent(); }; return; }; if (numModalWindows == 0){ if (((!(isTopLevelRoot())) || ((forms.length > 1)))){ n = forms.length; p = DisplayObject(event.target); isApplication = document.rawChildren.contains(p); while (p) { i = 0; while (i < n) { form_i = (isRemotePopUp(forms[i])) ? forms[i].window : forms[i]; if (form_i == p){ j = 0; if (((((!((p == form))) && ((p is IFocusManagerContainer)))) || (((!(isTopLevelRoot())) && ((p == form)))))){ if (isTopLevelRoot()){ activate(IFocusManagerContainer(p)); }; if (p == document){ dispatchActivatedApplicationEvent(); } else { if ((p is DisplayObject)){ dispatchActivatedWindowEvent(DisplayObject(p)); }; }; }; if (popUpChildren.contains(p)){ childList = popUpChildren; } else { childList = this; }; index = childList.getChildIndex(p); newIndex = index; n = forms.length; j = 0; for (;j < n;j++) { isRemotePopUp = isRemotePopUp(forms[j]); if (isRemotePopUp){ if ((forms[j].window is String)){ continue; }; f = forms[j].window; } else { f = forms[j]; }; if (isRemotePopUp){ fChildIndex = getChildListIndex(childList, f); if (fChildIndex > index){ newIndex = Math.max(fChildIndex, newIndex); }; } else { if (childList.contains(f)){ if (childList.getChildIndex(f) > index){ newIndex = Math.max(childList.getChildIndex(f), newIndex); }; }; }; }; if ((((newIndex > index)) && (!(isApplication)))){ childList.setChildIndex(p, newIndex); }; return; }; i++; }; p = p.parent; }; } else { dispatchActivatedApplicationEvent(); }; }; } private function removePopupRequestHandler(event:Event):void{ var request:SWFBridgeRequest; var popUpRequest:SWFBridgeRequest = SWFBridgeRequest.marshal(event); if (((swfBridgeGroup.parentBridge) && (SecurityUtil.hasMutualTrustBetweenParentAndChild(this)))){ popUpRequest.requestor = swfBridgeGroup.parentBridge; getSandboxRoot().dispatchEvent(popUpRequest); return; }; if (popUpChildren.contains(popUpRequest.data.window)){ popUpChildren.removeChild(popUpRequest.data.window); } else { removeChild(DisplayObject(popUpRequest.data.window)); }; if (popUpRequest.data.modal){ numModalWindows--; }; removeRemotePopUp(new RemotePopUp(popUpRequest.data.window, popUpRequest.requestor)); if (((!(isTopLevelRoot())) && (swfBridgeGroup))){ request = new SWFBridgeRequest(SWFBridgeRequest.REMOVE_POP_UP_PLACE_HOLDER_REQUEST, false, false, popUpRequest.requestor, {placeHolderId:NameUtil.displayObjectToString(popUpRequest.data.window)}); dispatchEvent(request); }; } public function addChildBridge(bridge:IEventDispatcher, owner:DisplayObject):void{ var fm:IFocusManager; var o:DisplayObject = owner; while (o) { if ((o is IFocusManagerContainer)){ fm = IFocusManagerContainer(o).focusManager; break; }; o = o.parent; }; if (!fm){ return; }; if (!swfBridgeGroup){ swfBridgeGroup = new SWFBridgeGroup(this); }; swfBridgeGroup.addChildBridge(bridge, ISWFBridgeProvider(owner)); fm.addSWFBridge(bridge, owner); if (!bridgeToFocusManager){ bridgeToFocusManager = new Dictionary(); }; bridgeToFocusManager[bridge] = fm; addChildBridgeListeners(bridge); } public function get screen():Rectangle{ if (!_screen){ Stage_resizeHandler(); }; if (!isStageRoot){ Stage_resizeHandler(); }; return (_screen); } private function resetMouseCursorRequestHandler(event:Event):void{ var bridge:IEventDispatcher; if (((!(isTopLevelRoot())) && ((event is SWFBridgeRequest)))){ return; }; var request:SWFBridgeRequest = SWFBridgeRequest.marshal(event); if (!isTopLevelRoot()){ bridge = swfBridgeGroup.parentBridge; request.requestor = bridge; bridge.dispatchEvent(request); } else { if (eventProxy){ SystemManagerGlobals.showMouseCursor = true; }; }; } mx_internal function set topMostIndex(value:int):void{ var delta:int = (value - _topMostIndex); _topMostIndex = value; toolTipIndex = (toolTipIndex + delta); } mx_internal function docFrameHandler(event:Event=null):void{ var textFieldFactory:TextFieldFactory; var n:int; var i:int; var c:Class; Singleton.registerClass("mx.managers::IBrowserManager", Class(getDefinitionByName("mx.managers::BrowserManagerImpl"))); Singleton.registerClass("mx.managers::ICursorManager", Class(getDefinitionByName("mx.managers::CursorManagerImpl"))); Singleton.registerClass("mx.managers::IHistoryManager", Class(getDefinitionByName("mx.managers::HistoryManagerImpl"))); Singleton.registerClass("mx.managers::ILayoutManager", Class(getDefinitionByName("mx.managers::LayoutManager"))); Singleton.registerClass("mx.managers::IPopUpManager", Class(getDefinitionByName("mx.managers::PopUpManagerImpl"))); Singleton.registerClass("mx.managers::IToolTipManager2", Class(getDefinitionByName("mx.managers::ToolTipManagerImpl"))); if (Capabilities.playerType == "Desktop"){ Singleton.registerClass("mx.managers::IDragManager", Class(getDefinitionByName("mx.managers::NativeDragManagerImpl"))); if (Singleton.getClass("mx.managers::IDragManager") == null){ Singleton.registerClass("mx.managers::IDragManager", Class(getDefinitionByName("mx.managers::DragManagerImpl"))); }; } else { Singleton.registerClass("mx.managers::IDragManager", Class(getDefinitionByName("mx.managers::DragManagerImpl"))); }; Singleton.registerClass("mx.core::ITextFieldFactory", Class(getDefinitionByName("mx.core::TextFieldFactory"))); executeCallbacks(); doneExecutingInitCallbacks = true; var mixinList:Array = info()["mixins"]; if (((mixinList) && ((mixinList.length > 0)))){ n = mixinList.length; i = 0; while (i < n) { c = Class(getDefinitionByName(mixinList[i])); var _local7 = c; _local7["init"](this); i++; }; }; installCompiledResourceBundles(); initializeTopLevelWindow(null); deferredNextFrame(); } public function get explicitHeight():Number{ return (_explicitHeight); } public function get preloaderBackgroundSize():String{ return (info()["backgroundSize"]); } public function isTopLevel():Boolean{ return (topLevel); } override public function get mouseY():Number{ if (_mouseY === undefined){ return (super.mouseY); }; return (_mouseY); } public function getExplicitOrMeasuredWidth():Number{ return ((isNaN(explicitWidth)) ? measuredWidth : explicitWidth); } public function deactivate(f:IFocusManagerContainer):void{ deactivateForm(Object(f)); } private function preProcessModalWindowRequest(request:SWFBridgeRequest, sbRoot:DisplayObject):Boolean{ var bridge:IEventDispatcher; var exclude:ISWFLoader; var excludeRect:Rectangle; if (request.data.skip){ request.data.skip = false; if (useSWFBridge()){ bridge = swfBridgeGroup.parentBridge; request.requestor = bridge; bridge.dispatchEvent(request); }; return (false); }; if (this != sbRoot){ if ((((request.type == SWFBridgeRequest.CREATE_MODAL_WINDOW_REQUEST)) || ((request.type == SWFBridgeRequest.SHOW_MODAL_WINDOW_REQUEST)))){ exclude = (swfBridgeGroup.getChildBridgeProvider(request.requestor) as ISWFLoader); if (exclude){ excludeRect = ISWFLoader(exclude).getVisibleApplicationRect(); request.data.excludeRect = excludeRect; if (!DisplayObjectContainer(document).contains(DisplayObject(exclude))){ request.data.useExclude = false; }; }; }; bridge = swfBridgeGroup.parentBridge; request.requestor = bridge; if (request.type == SWFBridgeRequest.HIDE_MODAL_WINDOW_REQUEST){ sbRoot.dispatchEvent(request); } else { bridge.dispatchEvent(request); }; return (false); }; request.data.skip = false; return (true); } private function resetMouseCursorTracking(event:Event):void{ var cursorRequest:SWFBridgeRequest; var bridge:IEventDispatcher; if (isTopLevelRoot()){ SystemManagerGlobals.showMouseCursor = true; } else { if (swfBridgeGroup.parentBridge){ cursorRequest = new SWFBridgeRequest(SWFBridgeRequest.RESET_MOUSE_CURSOR_REQUEST); bridge = swfBridgeGroup.parentBridge; cursorRequest.requestor = bridge; bridge.dispatchEvent(cursorRequest); }; }; } mx_internal function addParentBridgeListeners():void{ if (((!(topLevel)) && (topLevelSystemManager))){ SystemManager(topLevelSystemManager).addParentBridgeListeners(); return; }; var bridge:IEventDispatcher = swfBridgeGroup.parentBridge; bridge.addEventListener(SWFBridgeRequest.SET_ACTUAL_SIZE_REQUEST, setActualSizeRequestHandler); bridge.addEventListener(SWFBridgeRequest.GET_SIZE_REQUEST, getSizeRequestHandler); bridge.addEventListener(SWFBridgeRequest.ACTIVATE_POP_UP_REQUEST, activateRequestHandler); bridge.addEventListener(SWFBridgeRequest.DEACTIVATE_POP_UP_REQUEST, deactivateRequestHandler); bridge.addEventListener(SWFBridgeRequest.IS_BRIDGE_CHILD_REQUEST, isBridgeChildHandler); bridge.addEventListener(EventListenerRequest.ADD_EVENT_LISTENER_REQUEST, eventListenerRequestHandler); bridge.addEventListener(EventListenerRequest.REMOVE_EVENT_LISTENER_REQUEST, eventListenerRequestHandler); bridge.addEventListener(SWFBridgeRequest.CAN_ACTIVATE_POP_UP_REQUEST, canActivateHandler); bridge.addEventListener(SWFBridgeEvent.BRIDGE_APPLICATION_UNLOADING, beforeUnloadHandler); } public function get swfBridgeGroup():ISWFBridgeGroup{ if (topLevel){ return (_swfBridgeGroup); }; if (topLevelSystemManager){ return (topLevelSystemManager.swfBridgeGroup); }; return (null); } override public function getChildByName(name:String):DisplayObject{ return (super.getChildByName(name)); } public function get measuredWidth():Number{ return ((topLevelWindow) ? topLevelWindow.getExplicitOrMeasuredWidth() : loaderInfo.width); } public function removeChildBridge(bridge:IEventDispatcher):void{ var fm:IFocusManager = IFocusManager(bridgeToFocusManager[bridge]); fm.removeSWFBridge(bridge); swfBridgeGroup.removeChildBridge(bridge); delete bridgeToFocusManager[bridge]; removeChildBridgeListeners(bridge); } mx_internal function removeChildBridgeListeners(bridge:IEventDispatcher):void{ if (((!(topLevel)) && (topLevelSystemManager))){ SystemManager(topLevelSystemManager).removeChildBridgeListeners(bridge); return; }; bridge.removeEventListener(SWFBridgeRequest.ADD_POP_UP_REQUEST, addPopupRequestHandler); bridge.removeEventListener(SWFBridgeRequest.REMOVE_POP_UP_REQUEST, removePopupRequestHandler); bridge.removeEventListener(SWFBridgeRequest.ADD_POP_UP_PLACE_HOLDER_REQUEST, addPlaceholderPopupRequestHandler); bridge.removeEventListener(SWFBridgeRequest.REMOVE_POP_UP_PLACE_HOLDER_REQUEST, removePlaceholderPopupRequestHandler); bridge.removeEventListener(SWFBridgeEvent.BRIDGE_WINDOW_ACTIVATE, activateFormSandboxEventHandler); bridge.removeEventListener(SWFBridgeEvent.BRIDGE_WINDOW_DEACTIVATE, deactivateFormSandboxEventHandler); bridge.removeEventListener(SWFBridgeEvent.BRIDGE_APPLICATION_ACTIVATE, activateApplicationSandboxEventHandler); bridge.removeEventListener(EventListenerRequest.ADD_EVENT_LISTENER_REQUEST, eventListenerRequestHandler); bridge.removeEventListener(EventListenerRequest.REMOVE_EVENT_LISTENER_REQUEST, eventListenerRequestHandler); bridge.removeEventListener(SWFBridgeRequest.CREATE_MODAL_WINDOW_REQUEST, modalWindowRequestHandler); bridge.removeEventListener(SWFBridgeRequest.SHOW_MODAL_WINDOW_REQUEST, modalWindowRequestHandler); bridge.removeEventListener(SWFBridgeRequest.HIDE_MODAL_WINDOW_REQUEST, modalWindowRequestHandler); bridge.removeEventListener(SWFBridgeRequest.GET_VISIBLE_RECT_REQUEST, getVisibleRectRequestHandler); bridge.removeEventListener(SWFBridgeRequest.HIDE_MOUSE_CURSOR_REQUEST, hideMouseCursorRequestHandler); bridge.removeEventListener(SWFBridgeRequest.SHOW_MOUSE_CURSOR_REQUEST, showMouseCursorRequestHandler); bridge.removeEventListener(SWFBridgeRequest.RESET_MOUSE_CURSOR_REQUEST, resetMouseCursorRequestHandler); } override public function addChildAt(child:DisplayObject, index:int):DisplayObject{ noTopMostIndex++; return (rawChildren_addChildAt(child, (applicationIndex + index))); } private function Stage_resizeHandler(event:Event=null):void{ var m:Number; var n:Number; var sandboxScreen:Rectangle; var event = event; if (isDispatchingResizeEvent){ return; }; var w:Number = 0; var h:Number = 0; m = loaderInfo.width; n = loaderInfo.height; //unresolved jump var _slot1 = error; return; var align:String = StageAlign.TOP_LEFT; if (stage){ w = stage.stageWidth; h = stage.stageHeight; align = stage.align; }; //unresolved jump var _slot1 = error; sandboxScreen = getSandboxScreen(); w = sandboxScreen.width; h = sandboxScreen.height; var x:Number = ((m - w) / 2); var y:Number = ((n - h) / 2); if (align == StageAlign.TOP){ y = 0; } else { if (align == StageAlign.BOTTOM){ y = (n - h); } else { if (align == StageAlign.LEFT){ x = 0; } else { if (align == StageAlign.RIGHT){ x = (m - w); } else { if ((((align == StageAlign.TOP_LEFT)) || ((align == "LT")))){ y = 0; x = 0; } else { if (align == StageAlign.TOP_RIGHT){ y = 0; x = (m - w); } else { if (align == StageAlign.BOTTOM_LEFT){ y = (n - h); x = 0; } else { if (align == StageAlign.BOTTOM_RIGHT){ y = (n - h); x = (m - w); }; }; }; }; }; }; }; }; if (!_screen){ _screen = new Rectangle(); }; _screen.x = x; _screen.y = y; _screen.width = w; _screen.height = h; if (isStageRoot){ _width = stage.stageWidth; _height = stage.stageHeight; }; if (event){ resizeMouseCatcher(); isDispatchingResizeEvent = true; dispatchEvent(event); isDispatchingResizeEvent = false; }; } public function get swfBridge():IEventDispatcher{ if (swfBridgeGroup){ return (swfBridgeGroup.parentBridge); }; return (null); } private function findRemotePopUp(window:Object, bridge:IEventDispatcher):RemotePopUp{ var popUp:RemotePopUp; var n:int = forms.length; var i:int; while (i < n) { if (isRemotePopUp(forms[i])){ popUp = RemotePopUp(forms[i]); if ((((popUp.window == window)) && ((popUp.bridge == bridge)))){ return (popUp); }; }; i++; }; return (null); } public function info():Object{ return ({}); } mx_internal function get toolTipIndex():int{ return (_toolTipIndex); } public function setActualSize(newWidth:Number, newHeight:Number):void{ if (isStageRoot){ return; }; _width = newWidth; _height = newHeight; if (mouseCatcher){ mouseCatcher.width = newWidth; mouseCatcher.height = newHeight; }; dispatchEvent(new Event(Event.RESIZE)); } private function removePlaceholderPopupRequestHandler(event:Event):void{ var n:int; var i:int; var popUpRequest:SWFBridgeRequest = SWFBridgeRequest.marshal(event); if (!forwardPlaceholderRequest(popUpRequest, false)){ n = forms.length; i = 0; while (i < n) { if (isRemotePopUp(forms[i])){ if ((((forms[i].window == popUpRequest.data.placeHolderId)) && ((forms[i].bridge == popUpRequest.requestor)))){ forms.splice(i, 1); break; }; }; i++; }; }; } public function set focusPane(value:Sprite):void{ if (value){ addChild(value); value.x = 0; value.y = 0; value.scrollRect = null; _focusPane = value; } else { removeChild(_focusPane); _focusPane = null; }; } mx_internal function removeParentBridgeListeners():void{ if (((!(topLevel)) && (topLevelSystemManager))){ SystemManager(topLevelSystemManager).removeParentBridgeListeners(); return; }; var bridge:IEventDispatcher = swfBridgeGroup.parentBridge; bridge.removeEventListener(SWFBridgeRequest.SET_ACTUAL_SIZE_REQUEST, setActualSizeRequestHandler); bridge.removeEventListener(SWFBridgeRequest.GET_SIZE_REQUEST, getSizeRequestHandler); bridge.removeEventListener(SWFBridgeRequest.ACTIVATE_POP_UP_REQUEST, activateRequestHandler); bridge.removeEventListener(SWFBridgeRequest.DEACTIVATE_POP_UP_REQUEST, deactivateRequestHandler); bridge.removeEventListener(SWFBridgeRequest.IS_BRIDGE_CHILD_REQUEST, isBridgeChildHandler); bridge.removeEventListener(EventListenerRequest.ADD_EVENT_LISTENER_REQUEST, eventListenerRequestHandler); bridge.removeEventListener(EventListenerRequest.REMOVE_EVENT_LISTENER_REQUEST, eventListenerRequestHandler); bridge.removeEventListener(SWFBridgeRequest.CAN_ACTIVATE_POP_UP_REQUEST, canActivateHandler); bridge.removeEventListener(SWFBridgeEvent.BRIDGE_APPLICATION_UNLOADING, beforeUnloadHandler); } override public function get parent():DisplayObjectContainer{ return (super.parent); //unresolved jump var _slot1 = e; return (null); } private function eventListenerRequestHandler(event:Event):void{ var actualType:String; if ((event is EventListenerRequest)){ return; }; var request:EventListenerRequest = EventListenerRequest.marshal(event); if (event.type == EventListenerRequest.ADD_EVENT_LISTENER_REQUEST){ if (!eventProxy){ eventProxy = new EventProxy(this); }; actualType = EventUtil.sandboxMouseEventMap[request.eventType]; if (actualType){ if (isTopLevelRoot()){ stage.addEventListener(MouseEvent.MOUSE_MOVE, resetMouseCursorTracking, true, (EventPriority.CURSOR_MANAGEMENT + 1), true); } else { super.addEventListener(MouseEvent.MOUSE_MOVE, resetMouseCursorTracking, true, (EventPriority.CURSOR_MANAGEMENT + 1), true); }; addEventListenerToSandboxes(request.eventType, sandboxMouseListener, true, request.priority, request.useWeakReference, (event.target as IEventDispatcher)); addEventListenerToOtherSystemManagers(request.eventType, otherSystemManagerMouseListener, true, request.priority, request.useWeakReference); if (getSandboxRoot() == this){ if (((isTopLevelRoot()) && ((((actualType == MouseEvent.MOUSE_UP)) || ((actualType == MouseEvent.MOUSE_MOVE)))))){ stage.addEventListener(actualType, eventProxy.marshalListener, false, request.priority, request.useWeakReference); }; super.addEventListener(actualType, eventProxy.marshalListener, true, request.priority, request.useWeakReference); }; }; } else { if (event.type == EventListenerRequest.REMOVE_EVENT_LISTENER_REQUEST){ actualType = EventUtil.sandboxMouseEventMap[request.eventType]; if (actualType){ removeEventListenerFromOtherSystemManagers(request.eventType, otherSystemManagerMouseListener, true); removeEventListenerFromSandboxes(request.eventType, sandboxMouseListener, true, (event.target as IEventDispatcher)); if (getSandboxRoot() == this){ if (((isTopLevelRoot()) && ((((actualType == MouseEvent.MOUSE_UP)) || ((actualType == MouseEvent.MOUSE_MOVE)))))){ stage.removeEventListener(actualType, eventProxy.marshalListener); }; super.removeEventListener(actualType, eventProxy.marshalListener, true); }; }; }; }; } mx_internal function set applicationIndex(value:int):void{ _applicationIndex = value; } private function showMouseCursorRequestHandler(event:Event):void{ var bridge:IEventDispatcher; if (((!(isTopLevelRoot())) && ((event is SWFBridgeRequest)))){ return; }; var request:SWFBridgeRequest = SWFBridgeRequest.marshal(event); if (!isTopLevelRoot()){ bridge = swfBridgeGroup.parentBridge; request.requestor = bridge; bridge.dispatchEvent(request); Object(event).data = request.data; } else { if (eventProxy){ Object(event).data = SystemManagerGlobals.showMouseCursor; }; }; } public function get childAllowsParent():Boolean{ return (loaderInfo.childAllowsParent); //unresolved jump var _slot1 = error; return (false); } public function dispatchEventFromSWFBridges(event:Event, skip:IEventDispatcher=null, trackClones:Boolean=false, toOtherSystemManagers:Boolean=false):void{ var clone:Event; if (toOtherSystemManagers){ dispatchEventToOtherSystemManagers(event); }; if (!swfBridgeGroup){ return; }; clone = event.clone(); if (trackClones){ currentSandboxEvent = clone; }; var parentBridge:IEventDispatcher = swfBridgeGroup.parentBridge; if (((parentBridge) && (!((parentBridge == skip))))){ if ((clone is SWFBridgeRequest)){ SWFBridgeRequest(clone).requestor = parentBridge; }; parentBridge.dispatchEvent(clone); }; var children:Array = swfBridgeGroup.getChildBridges(); var i:int; while (i < children.length) { if (children[i] != skip){ clone = event.clone(); if (trackClones){ currentSandboxEvent = clone; }; if ((clone is SWFBridgeRequest)){ SWFBridgeRequest(clone).requestor = IEventDispatcher(children[i]); }; IEventDispatcher(children[i]).dispatchEvent(clone); }; i++; }; currentSandboxEvent = null; } private function setActualSizeRequestHandler(event:Event):void{ var eObj:Object = Object(event); setActualSize(eObj.data.width, eObj.data.height); } private function executeCallbacks():void{ var initFunction:Function; if (((!(parent)) && (parentAllowsChild))){ return; }; while (initCallbackFunctions.length > 0) { initFunction = initCallbackFunctions.shift(); initFunction(this); }; } private function addPlaceholderId(id:String, previousId:String, bridge:IEventDispatcher, placeholder:Object):void{ if (!bridge){ throw (new Error()); }; if (!idToPlaceholder){ idToPlaceholder = []; }; idToPlaceholder[id] = new PlaceholderData(previousId, bridge, placeholder); } private function canActivateHandler(event:Event):void{ var request:SWFBridgeRequest; var placeholder:PlaceholderData; var popUp:RemotePopUp; var smp:SystemManagerProxy; var f:IFocusManagerContainer; var bridge:IEventDispatcher; var eObj:Object = Object(event); var child:Object = eObj.data; var nextId:String; if ((eObj.data is String)){ placeholder = idToPlaceholder[eObj.data]; child = placeholder.data; nextId = placeholder.id; if (nextId == null){ popUp = findRemotePopUp(child, placeholder.bridge); if (popUp){ request = new SWFBridgeRequest(SWFBridgeRequest.CAN_ACTIVATE_POP_UP_REQUEST, false, false, IEventDispatcher(popUp.bridge), popUp.window); if (popUp.bridge){ popUp.bridge.dispatchEvent(request); eObj.data = request.data; }; return; }; }; }; if ((child is SystemManagerProxy)){ smp = SystemManagerProxy(child); f = findFocusManagerContainer(smp); eObj.data = ((((smp) && (f))) && (canActivateLocalComponent(f))); } else { if ((child is IFocusManagerContainer)){ eObj.data = canActivateLocalComponent(child); } else { if ((child is IEventDispatcher)){ bridge = IEventDispatcher(child); request = new SWFBridgeRequest(SWFBridgeRequest.CAN_ACTIVATE_POP_UP_REQUEST, false, false, bridge, nextId); if (bridge){ bridge.dispatchEvent(request); eObj.data = request.data; }; } else { throw (new Error()); }; }; }; } private function docFrameListener(event:Event):void{ if (currentFrame == 2){ removeEventListener(Event.ENTER_FRAME, docFrameListener); if (totalFrames > 2){ addEventListener(Event.ENTER_FRAME, extraFrameListener); }; docFrameHandler(); }; } public function get popUpChildren():IChildList{ if (!topLevel){ return (_topLevelSystemManager.popUpChildren); }; if (!_popUpChildren){ _popUpChildren = new SystemChildrenList(this, new QName(mx_internal, "noTopMostIndex"), new QName(mx_internal, "topMostIndex")); }; return (_popUpChildren); } private function addEventListenerToSandboxes(type:String, listener:Function, useCapture:Boolean=false, priority:int=0, useWeakReference:Boolean=false, skip:IEventDispatcher=null):void{ var i:int; var childBridge:IEventDispatcher; if (!swfBridgeGroup){ return; }; var request:EventListenerRequest = new EventListenerRequest(EventListenerRequest.ADD_EVENT_LISTENER_REQUEST, false, false, type, useCapture, priority, useWeakReference); var parentBridge:IEventDispatcher = swfBridgeGroup.parentBridge; if (((parentBridge) && (!((parentBridge == skip))))){ parentBridge.addEventListener(type, listener, false, priority, useWeakReference); }; var children:Array = swfBridgeGroup.getChildBridges(); while (i < children.length) { childBridge = IEventDispatcher(children[i]); if (childBridge != skip){ childBridge.addEventListener(type, listener, false, priority, useWeakReference); }; i++; }; dispatchEventFromSWFBridges(request, skip); } private function forwardFormEvent(event:SWFBridgeEvent):Boolean{ var sbRoot:DisplayObject; if (isTopLevelRoot()){ return (false); }; var bridge:IEventDispatcher = swfBridgeGroup.parentBridge; if (bridge){ sbRoot = getSandboxRoot(); event.data.notifier = bridge; if (sbRoot == this){ if (!(event.data.window is String)){ event.data.window = NameUtil.displayObjectToString(DisplayObject(event.data.window)); } else { event.data.window = ((NameUtil.displayObjectToString(DisplayObject(this)) + ".") + event.data.window); }; bridge.dispatchEvent(event); } else { if ((event.data.window is String)){ event.data.window = ((NameUtil.displayObjectToString(DisplayObject(this)) + ".") + event.data.window); }; sbRoot.dispatchEvent(event); }; }; return (true); } public function set explicitHeight(value:Number):void{ _explicitHeight = value; } override public function removeChild(child:DisplayObject):DisplayObject{ noTopMostIndex--; return (rawChildren_removeChild(child)); } mx_internal function rawChildren_removeChild(child:DisplayObject):DisplayObject{ removingChild(child); super.removeChild(child); childRemoved(child); return (child); } final mx_internal function get $numChildren():int{ return (super.numChildren); } public function get toolTipChildren():IChildList{ if (!topLevel){ return (_topLevelSystemManager.toolTipChildren); }; if (!_toolTipChildren){ _toolTipChildren = new SystemChildrenList(this, new QName(mx_internal, "topMostIndex"), new QName(mx_internal, "toolTipIndex")); }; return (_toolTipChildren); } public function create(... _args):Object{ var url:String; var dot:int; var slash:int; var mainClassName:String = info()["mainClassName"]; if (mainClassName == null){ url = loaderInfo.loaderURL; dot = url.lastIndexOf("."); slash = url.lastIndexOf("/"); mainClassName = url.substring((slash + 1), dot); }; var mainClass:Class = Class(getDefinitionByName(mainClassName)); return ((mainClass) ? new (mainClass) : null); } override public function get stage():Stage{ var root:DisplayObject; if (_stage){ return (_stage); }; var s:Stage = super.stage; if (s){ _stage = s; return (s); }; if (((!(topLevel)) && (_topLevelSystemManager))){ _stage = _topLevelSystemManager.stage; return (_stage); }; if (((!(isStageRoot)) && (topLevel))){ root = getTopLevelRoot(); if (root){ _stage = root.stage; return (_stage); }; }; return (null); } override public function addChild(child:DisplayObject):DisplayObject{ noTopMostIndex++; return (rawChildren_addChildAt(child, (noTopMostIndex - 1))); } private function removeRemotePopUp(form:RemotePopUp):void{ var n:int = forms.length; var i:int; while (i < n) { if (isRemotePopUp(forms[i])){ if ((((forms[i].window == form.window)) && ((forms[i].bridge == form.bridge)))){ if (forms[i] == form){ deactivateForm(form); }; forms.splice(i, 1); break; }; }; i++; }; } private function deactivateRemotePopUp(form:Object):void{ var request:SWFBridgeRequest = new SWFBridgeRequest(SWFBridgeRequest.DEACTIVATE_POP_UP_REQUEST, false, false, form.bridge, form.window); var bridge:Object = form.bridge; if (bridge){ bridge.dispatchEvent(request); }; } override public function getChildIndex(child:DisplayObject):int{ return ((super.getChildIndex(child) - applicationIndex)); } mx_internal function rawChildren_getChildIndex(child:DisplayObject):int{ return (super.getChildIndex(child)); } public function activate(f:IFocusManagerContainer):void{ activateForm(f); } public function getSandboxRoot():DisplayObject{ var parent:DisplayObject; var lastParent:DisplayObject; var loader:Loader; var loaderInfo:LoaderInfo; var sm:ISystemManager = this; if (sm.topLevelSystemManager){ sm = sm.topLevelSystemManager; }; parent = DisplayObject(sm).parent; if ((parent is Stage)){ return (DisplayObject(sm)); }; if (((parent) && (!(parent.dispatchEvent(new Event("mx.managers.SystemManager.isBootstrapRoot", false, true)))))){ return (this); }; lastParent = parent; while (parent) { if ((parent is Stage)){ return (lastParent); }; if (!parent.dispatchEvent(new Event("mx.managers.SystemManager.isBootstrapRoot", false, true))){ return (lastParent); }; if ((parent is Loader)){ loader = Loader(parent); loaderInfo = loader.contentLoaderInfo; if (!loaderInfo.childAllowsParent){ return (loaderInfo.content); }; }; lastParent = parent; parent = parent.parent; }; //unresolved jump var _slot1 = error; return (((lastParent)!=null) ? lastParent : DisplayObject(sm)); } private function deferredNextFrame():void{ if ((currentFrame + 1) > totalFrames){ return; }; if ((currentFrame + 1) <= framesLoaded){ nextFrame(); } else { nextFrameTimer = new Timer(100); nextFrameTimer.addEventListener(TimerEvent.TIMER, nextFrameTimerHandler); nextFrameTimer.start(); }; } mx_internal function get cursorIndex():int{ return (_cursorIndex); } mx_internal function rawChildren_contains(child:DisplayObject):Boolean{ return (super.contains(child)); } override public function setChildIndex(child:DisplayObject, newIndex:int):void{ super.setChildIndex(child, (applicationIndex + newIndex)); } public function get document():Object{ return (_document); } private function resizeMouseCatcher():void{ var g:Graphics; var s:Rectangle; if (mouseCatcher){ g = mouseCatcher.graphics; s = screen; g.clear(); g.beginFill(0, 0); g.drawRect(0, 0, s.width, s.height); g.endFill(); //unresolved jump var _slot1 = e; }; } private function extraFrameListener(event:Event):void{ if (lastFrame == currentFrame){ return; }; lastFrame = currentFrame; if ((currentFrame + 1) > totalFrames){ removeEventListener(Event.ENTER_FRAME, extraFrameListener); }; extraFrameHandler(); } private function addPopupRequestHandler(event:Event):void{ var topMost:Boolean; var children:IChildList; var bridgeProvider:ISWFBridgeProvider; var request:SWFBridgeRequest; if (((!((event.target == this))) && ((event is SWFBridgeRequest)))){ return; }; var popUpRequest:SWFBridgeRequest = SWFBridgeRequest.marshal(event); if (event.target != this){ bridgeProvider = swfBridgeGroup.getChildBridgeProvider(IEventDispatcher(event.target)); if (!SecurityUtil.hasMutualTrustBetweenParentAndChild(bridgeProvider)){ return; }; }; if (((swfBridgeGroup.parentBridge) && (SecurityUtil.hasMutualTrustBetweenParentAndChild(this)))){ popUpRequest.requestor = swfBridgeGroup.parentBridge; getSandboxRoot().dispatchEvent(popUpRequest); return; }; if (((!(popUpRequest.data.childList)) || ((popUpRequest.data.childList == PopUpManagerChildList.PARENT)))){ topMost = ((popUpRequest.data.parent) && (popUpChildren.contains(popUpRequest.data.parent))); } else { topMost = (popUpRequest.data.childList == PopUpManagerChildList.POPUP); }; children = (topMost) ? popUpChildren : this; children.addChild(DisplayObject(popUpRequest.data.window)); if (popUpRequest.data.modal){ numModalWindows++; }; var remoteForm:RemotePopUp = new RemotePopUp(popUpRequest.data.window, popUpRequest.requestor); forms.push(remoteForm); if (((!(isTopLevelRoot())) && (swfBridgeGroup))){ request = new SWFBridgeRequest(SWFBridgeRequest.ADD_POP_UP_PLACE_HOLDER_REQUEST, false, false, popUpRequest.requestor, {window:popUpRequest.data.window}); request.data.placeHolderId = NameUtil.displayObjectToString(DisplayObject(popUpRequest.data.window)); dispatchEvent(request); }; } override public function get height():Number{ return (_height); } mx_internal function rawChildren_getChildAt(index:int):DisplayObject{ return (super.getChildAt(index)); } private function systemManagerHandler(event:Event):void{ if (event["name"] == "sameSandbox"){ event["value"] = (currentSandboxEvent == event["value"]); return; }; if (event["name"] == "hasSWFBridges"){ event["value"] = hasSWFBridges(); return; }; if ((event is InterManagerRequest)){ return; }; var name:String = event["name"]; switch (name){ case "popUpChildren.addChild": popUpChildren.addChild(event["value"]); break; case "popUpChildren.removeChild": popUpChildren.removeChild(event["value"]); break; case "cursorChildren.addChild": cursorChildren.addChild(event["value"]); break; case "cursorChildren.removeChild": cursorChildren.removeChild(event["value"]); break; case "toolTipChildren.addChild": toolTipChildren.addChild(event["value"]); break; case "toolTipChildren.removeChild": toolTipChildren.removeChild(event["value"]); break; case "screen": event["value"] = screen; break; case "application": event["value"] = application; break; case "isTopLevelRoot": event["value"] = isTopLevelRoot(); break; case "getVisibleApplicationRect": event["value"] = getVisibleApplicationRect(); break; case "bringToFront": if (event["value"].topMost){ popUpChildren.setChildIndex(DisplayObject(event["value"].popUp), (popUpChildren.numChildren - 1)); } else { setChildIndex(DisplayObject(event["value"].popUp), (numChildren - 1)); }; break; }; } private function activateRemotePopUp(form:Object):void{ var request:SWFBridgeRequest = new SWFBridgeRequest(SWFBridgeRequest.ACTIVATE_POP_UP_REQUEST, false, false, form.bridge, form.window); var bridge:Object = form.bridge; if (bridge){ bridge.dispatchEvent(request); }; } mx_internal function set noTopMostIndex(value:int):void{ var delta:int = (value - _noTopMostIndex); _noTopMostIndex = value; topMostIndex = (topMostIndex + delta); } override public function getObjectsUnderPoint(point:Point):Array{ var child:DisplayObject; var temp:Array; var children:Array = []; var n:int = topMostIndex; var i:int; while (i < n) { child = super.getChildAt(i); if ((child is DisplayObjectContainer)){ temp = DisplayObjectContainer(child).getObjectsUnderPoint(point); if (temp){ children = children.concat(temp); }; }; i++; }; return (children); } mx_internal function get topMostIndex():int{ return (_topMostIndex); } mx_internal function regenerateStyleCache(recursive:Boolean):void{ var child:IStyleClient; var foundTopLevelWindow:Boolean; var n:int = rawChildren.numChildren; var i:int; while (i < n) { child = (rawChildren.getChildAt(i) as IStyleClient); if (child){ child.regenerateStyleCache(recursive); }; if (isTopLevelWindow(DisplayObject(child))){ foundTopLevelWindow = true; }; n = rawChildren.numChildren; i++; }; if (((!(foundTopLevelWindow)) && ((topLevelWindow is IStyleClient)))){ IStyleClient(topLevelWindow).regenerateStyleCache(recursive); }; } public function addFocusManager(f:IFocusManagerContainer):void{ forms.push(f); } private function deactivateFormSandboxEventHandler(event:Event):void{ if ((event is SWFBridgeRequest)){ return; }; var bridgeEvent:SWFBridgeEvent = SWFBridgeEvent.marshal(event); if (!forwardFormEvent(bridgeEvent)){ if (((((isRemotePopUp(form)) && ((RemotePopUp(form).window == bridgeEvent.data.window)))) && ((RemotePopUp(form).bridge == bridgeEvent.data.notifier)))){ deactivateForm(form); }; }; } public function set swfBridgeGroup(bridgeGroup:ISWFBridgeGroup):void{ if (topLevel){ _swfBridgeGroup = bridgeGroup; } else { if (topLevelSystemManager){ SystemManager(topLevelSystemManager).swfBridgeGroup = bridgeGroup; }; }; } mx_internal function rawChildren_setChildIndex(child:DisplayObject, newIndex:int):void{ super.setChildIndex(child, newIndex); } private function mouseUpHandler(event:MouseEvent):void{ idleCounter = 0; } mx_internal function childAdded(child:DisplayObject):void{ child.dispatchEvent(new FlexEvent(FlexEvent.ADD)); if ((child is IUIComponent)){ IUIComponent(child).initialize(); }; } public function isFontFaceEmbedded(textFormat:TextFormat):Boolean{ var font:Font; var style:String; var fontName:String = textFormat.font; var fl:Array = Font.enumerateFonts(); var f:int; while (f < fl.length) { font = Font(fl[f]); if (font.fontName == fontName){ style = "regular"; if (((textFormat.bold) && (textFormat.italic))){ style = "boldItalic"; } else { if (textFormat.bold){ style = "bold"; } else { if (textFormat.italic){ style = "italic"; }; }; }; if (font.fontStyle == style){ return (true); }; }; f++; }; if (((((!(fontName)) || (!(embeddedFontList)))) || (!(embeddedFontList[fontName])))){ return (false); }; var info:Object = embeddedFontList[fontName]; return (!(((((((textFormat.bold) && (!(info.bold)))) || (((textFormat.italic) && (!(info.italic)))))) || (((((!(textFormat.bold)) && (!(textFormat.italic)))) && (!(info.regular))))))); } private function forwardPlaceholderRequest(request:SWFBridgeRequest, addPlaceholder:Boolean):Boolean{ if (isTopLevelRoot()){ return (false); }; var refObj:Object; var oldId:String; if (request.data.window){ refObj = request.data.window; request.data.window = null; } else { refObj = request.requestor; oldId = request.data.placeHolderId; request.data.placeHolderId = ((NameUtil.displayObjectToString(this) + ".") + request.data.placeHolderId); }; if (addPlaceholder){ addPlaceholderId(request.data.placeHolderId, oldId, request.requestor, refObj); } else { removePlaceholderId(request.data.placeHolderId); }; var sbRoot:DisplayObject = getSandboxRoot(); var bridge:IEventDispatcher = swfBridgeGroup.parentBridge; request.requestor = bridge; if (sbRoot == this){ bridge.dispatchEvent(request); } else { sbRoot.dispatchEvent(request); }; return (true); } public function getTopLevelRoot():DisplayObject{ var sm:ISystemManager; var parent:DisplayObject; var lastParent:DisplayObject; sm = this; if (sm.topLevelSystemManager){ sm = sm.topLevelSystemManager; }; parent = DisplayObject(sm).parent; lastParent = parent; while (parent) { if ((parent is Stage)){ return (lastParent); }; lastParent = parent; parent = parent.parent; }; //unresolved jump var _slot1 = error; return (null); } override public function removeEventListener(type:String, listener:Function, useCapture:Boolean=false):void{ var newListener:StageEventProxy; var actualType:String; var type = type; var listener = listener; var useCapture = useCapture; if ((((type == FlexEvent.RENDER)) || ((type == FlexEvent.ENTER_FRAME)))){ if (type == FlexEvent.RENDER){ type = Event.RENDER; } else { type = Event.ENTER_FRAME; }; if (stage){ stage.removeEventListener(type, listener, useCapture); }; super.removeEventListener(type, listener, useCapture); //unresolved jump var _slot1 = error; super.removeEventListener(type, listener, useCapture); return; }; if ((((((((((type == MouseEvent.MOUSE_MOVE)) || ((type == MouseEvent.MOUSE_UP)))) || ((type == MouseEvent.MOUSE_DOWN)))) || ((type == Event.ACTIVATE)))) || ((type == Event.DEACTIVATE)))){ if (stage){ newListener = weakReferenceProxies[listener]; if (!newListener){ newListener = strongReferenceProxies[listener]; if (newListener){ delete strongReferenceProxies[listener]; }; }; if (newListener){ stage.removeEventListener(type, newListener.stageListener, false); }; }; //unresolved jump var _slot1 = error; }; if (((hasSWFBridges()) || ((SystemManagerGlobals.topLevelSystemManagers.length > 1)))){ actualType = EventUtil.sandboxMouseEventMap[type]; if (actualType){ if ((((getSandboxRoot() == this)) && (eventProxy))){ super.removeEventListener(actualType, eventProxy.marshalListener, useCapture); }; if (!SystemManagerGlobals.changingListenersInOtherSystemManagers){ removeEventListenerFromOtherSystemManagers(type, otherSystemManagerMouseListener, useCapture); }; removeEventListenerFromSandboxes(type, sandboxMouseListener, useCapture); super.removeEventListener(type, listener, false); return; }; }; if (type == FlexEvent.IDLE){ super.removeEventListener(type, listener, useCapture); if (((!(hasEventListener(FlexEvent.IDLE))) && (idleTimer))){ idleTimer.stop(); idleTimer = null; removeEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler); removeEventListener(MouseEvent.MOUSE_UP, mouseUpHandler); }; } else { super.removeEventListener(type, listener, useCapture); }; } private function extraFrameHandler(event:Event=null):void{ var c:Class; var frameList:Object = info()["frames"]; if (((frameList) && (frameList[currentLabel]))){ c = Class(getDefinitionByName(frameList[currentLabel])); var _local4 = c; _local4["frame"](this); }; deferredNextFrame(); } public function isTopLevelRoot():Boolean{ return (((isStageRoot) || (isBootstrapRoot))); } public function get application():IUIComponent{ return (IUIComponent(_document)); } override public function removeChildAt(index:int):DisplayObject{ noTopMostIndex--; return (rawChildren_removeChildAt((applicationIndex + index))); } mx_internal function rawChildren_removeChildAt(index:int):DisplayObject{ var child:DisplayObject = super.getChildAt(index); removingChild(child); super.removeChildAt(index); childRemoved(child); return (child); } private function getSWFBridgeOfDisplayObject(displayObject:DisplayObject):IEventDispatcher{ var request:SWFBridgeRequest; var children:Array; var n:int; var i:int; var childBridge:IEventDispatcher; var bp:ISWFBridgeProvider; if (swfBridgeGroup){ request = new SWFBridgeRequest(SWFBridgeRequest.IS_BRIDGE_CHILD_REQUEST, false, false, null, displayObject); children = swfBridgeGroup.getChildBridges(); n = children.length; i = 0; while (i < n) { childBridge = IEventDispatcher(children[i]); bp = swfBridgeGroup.getChildBridgeProvider(childBridge); if (SecurityUtil.hasMutualTrustBetweenParentAndChild(bp)){ childBridge.dispatchEvent(request); if (request.data == true){ return (childBridge); }; request.data = displayObject; }; i++; }; }; return (null); } private function deactivateRequestHandler(event:Event):void{ var placeholder:PlaceholderData; var popUp:RemotePopUp; var smp:SystemManagerProxy; var f:IFocusManagerContainer; var request:SWFBridgeRequest = SWFBridgeRequest.marshal(event); var child:Object = request.data; var nextId:String; if ((request.data is String)){ placeholder = idToPlaceholder[request.data]; child = placeholder.data; nextId = placeholder.id; if (nextId == null){ popUp = findRemotePopUp(child, placeholder.bridge); if (popUp){ deactivateRemotePopUp(popUp); return; }; }; }; if ((child is SystemManagerProxy)){ smp = SystemManagerProxy(child); f = findFocusManagerContainer(smp); if (((smp) && (f))){ smp.deactivateByProxy(f); }; } else { if ((child is IFocusManagerContainer)){ IFocusManagerContainer(child).focusManager.deactivate(); } else { if ((child is IEventDispatcher)){ request.data = nextId; request.requestor = IEventDispatcher(child); IEventDispatcher(child).dispatchEvent(request); return; }; throw (new Error()); }; }; } private function installCompiledResourceBundles():void{ var info:Object = this.info(); var applicationDomain:ApplicationDomain = (((!(topLevel)) && ((parent is Loader)))) ? Loader(parent).contentLoaderInfo.applicationDomain : info["currentDomain"]; var compiledLocales:Array = info["compiledLocales"]; var compiledResourceBundleNames:Array = info["compiledResourceBundleNames"]; var resourceManager:IResourceManager = ResourceManager.getInstance(); resourceManager.installCompiledResourceBundles(applicationDomain, compiledLocales, compiledResourceBundleNames); if (!resourceManager.localeChain){ resourceManager.initializeLocaleChain(compiledLocales); }; } private function deactivateForm(f:Object):void{ if (form){ if ((((form == f)) && ((forms.length > 1)))){ if (isRemotePopUp(form)){ deactivateRemotePopUp(form); } else { form.focusManager.deactivate(); }; form = findLastActiveForm(f); if (form){ if (isRemotePopUp(form)){ activateRemotePopUp(form); } else { form.focusManager.activate(); }; }; }; }; } private function unloadHandler(event:Event):void{ dispatchEvent(event); } mx_internal function removingChild(child:DisplayObject):void{ child.dispatchEvent(new FlexEvent(FlexEvent.REMOVE)); } mx_internal function get applicationIndex():int{ return (_applicationIndex); } mx_internal function set toolTipIndex(value:int):void{ var delta:int = (value - _toolTipIndex); _toolTipIndex = value; cursorIndex = (cursorIndex + delta); } private function hasSWFBridges():Boolean{ if (swfBridgeGroup){ return (true); }; return (false); } private function updateLastActiveForm():void{ var n:int = forms.length; if (n < 2){ return; }; var index = -1; var i:int; while (i < n) { if (areFormsEqual(form, forms[i])){ index = i; break; }; i++; }; if (index >= 0){ forms.splice(index, 1); forms.push(form); } else { throw (new Error()); }; } public function get cursorChildren():IChildList{ if (!topLevel){ return (_topLevelSystemManager.cursorChildren); }; if (!_cursorChildren){ _cursorChildren = new SystemChildrenList(this, new QName(mx_internal, "toolTipIndex"), new QName(mx_internal, "cursorIndex")); }; return (_cursorChildren); } private function sandboxMouseListener(event:Event):void{ if ((event is SandboxMouseEvent)){ return; }; var marshaledEvent:Event = SandboxMouseEvent.marshal(event); dispatchEventFromSWFBridges(marshaledEvent, (event.target as IEventDispatcher)); var me:InterManagerRequest = new InterManagerRequest(InterManagerRequest.SYSTEM_MANAGER_REQUEST); me.name = "sameSandbox"; me.value = event; getSandboxRoot().dispatchEvent(me); if (!me.value){ dispatchEvent(marshaledEvent); }; } public function get preloaderBackgroundImage():Object{ return (info()["backgroundImage"]); } public function set numModalWindows(value:int):void{ _numModalWindows = value; } public function get preloaderBackgroundAlpha():Number{ return (info()["backgroundAlpha"]); } mx_internal function rawChildren_getChildByName(name:String):DisplayObject{ return (super.getChildByName(name)); } private function dispatchInvalidateRequest():void{ var bridge:IEventDispatcher = swfBridgeGroup.parentBridge; var request:SWFBridgeRequest = new SWFBridgeRequest(SWFBridgeRequest.INVALIDATE_REQUEST, false, false, bridge, (InvalidateRequestData.SIZE | InvalidateRequestData.DISPLAY_LIST)); bridge.dispatchEvent(request); } public function get preloaderBackgroundColor():uint{ var value:* = info()["backgroundColor"]; if (value == undefined){ return (StyleManager.NOT_A_COLOR); }; return (StyleManager.getColorName(value)); } public function getVisibleApplicationRect(bounds:Rectangle=null):Rectangle{ var s:Rectangle; var pt:Point; var bridge:IEventDispatcher; var request:SWFBridgeRequest; if (!bounds){ bounds = getBounds(DisplayObject(this)); s = screen; pt = new Point(Math.max(0, bounds.x), Math.max(0, bounds.y)); pt = localToGlobal(pt); bounds.x = pt.x; bounds.y = pt.y; bounds.width = s.width; bounds.height = s.height; }; if (useSWFBridge()){ bridge = swfBridgeGroup.parentBridge; request = new SWFBridgeRequest(SWFBridgeRequest.GET_VISIBLE_RECT_REQUEST, false, false, bridge, bounds); bridge.dispatchEvent(request); bounds = Rectangle(request.data); }; return (bounds); } public function get topLevelSystemManager():ISystemManager{ if (topLevel){ return (this); }; return (_topLevelSystemManager); } private function appCreationCompleteHandler(event:FlexEvent):void{ var obj:DisplayObjectContainer; if (((!(topLevel)) && (parent))){ obj = parent.parent; while (obj) { if ((obj is IInvalidating)){ IInvalidating(obj).invalidateSize(); IInvalidating(obj).invalidateDisplayList(); return; }; obj = obj.parent; }; }; if (((topLevel) && (useSWFBridge()))){ dispatchInvalidateRequest(); }; } public function addChildToSandboxRoot(layer:String, child:DisplayObject):void{ var me:InterManagerRequest; if (getSandboxRoot() == this){ this[layer].addChild(child); } else { addingChild(child); me = new InterManagerRequest(InterManagerRequest.SYSTEM_MANAGER_REQUEST); me.name = (layer + ".addChild"); me.value = child; getSandboxRoot().dispatchEvent(me); childAdded(child); }; } private function dispatchDeactivatedWindowEvent(window:DisplayObject):void{ var sbRoot:DisplayObject; var sendToSbRoot:Boolean; var bridgeEvent:SWFBridgeEvent; var bridge:IEventDispatcher = (swfBridgeGroup) ? swfBridgeGroup.parentBridge : null; if (bridge){ sbRoot = getSandboxRoot(); sendToSbRoot = !((sbRoot == this)); bridgeEvent = new SWFBridgeEvent(SWFBridgeEvent.BRIDGE_WINDOW_DEACTIVATE, false, false, {notifier:bridge, window:(sendToSbRoot) ? window : NameUtil.displayObjectToString(window)}); if (sendToSbRoot){ sbRoot.dispatchEvent(bridgeEvent); } else { bridge.dispatchEvent(bridgeEvent); }; }; } private function isBridgeChildHandler(event:Event):void{ if ((event is SWFBridgeRequest)){ return; }; var eObj:Object = Object(event); eObj.data = ((eObj.data) && (rawChildren.contains((eObj.data as DisplayObject)))); } public function get measuredHeight():Number{ return ((topLevelWindow) ? topLevelWindow.getExplicitOrMeasuredHeight() : loaderInfo.height); } private function activateRequestHandler(event:Event):void{ var placeholder:PlaceholderData; var popUp:RemotePopUp; var smp:SystemManagerProxy; var f:IFocusManagerContainer; var request:SWFBridgeRequest = SWFBridgeRequest.marshal(event); var child:Object = request.data; var nextId:String; if ((request.data is String)){ placeholder = idToPlaceholder[request.data]; child = placeholder.data; nextId = placeholder.id; if (nextId == null){ popUp = findRemotePopUp(child, placeholder.bridge); if (popUp){ activateRemotePopUp(popUp); return; }; }; }; if ((child is SystemManagerProxy)){ smp = SystemManagerProxy(child); f = findFocusManagerContainer(smp); if (((smp) && (f))){ smp.activateByProxy(f); }; } else { if ((child is IFocusManagerContainer)){ IFocusManagerContainer(child).focusManager.activate(); } else { if ((child is IEventDispatcher)){ request.data = nextId; request.requestor = IEventDispatcher(child); IEventDispatcher(child).dispatchEvent(request); } else { throw (new Error()); }; }; }; } mx_internal function rawChildren_addChildAt(child:DisplayObject, index:int):DisplayObject{ addingChild(child); super.addChildAt(child, index); childAdded(child); return (child); } mx_internal function initialize():void{ var n:int; var i:int; var fontRegistry:EmbeddedFontRegistry; var crossDomainRSLItem:Class; var cdNode:Object; var node:RSLItem; if (isStageRoot){ _width = stage.stageWidth; _height = stage.stageHeight; } else { _width = loaderInfo.width; _height = loaderInfo.height; }; preloader = new Preloader(); preloader.addEventListener(FlexEvent.INIT_PROGRESS, preloader_initProgressHandler); preloader.addEventListener(FlexEvent.PRELOADER_DONE, preloader_preloaderDoneHandler); if (!_popUpChildren){ _popUpChildren = new SystemChildrenList(this, new QName(mx_internal, "noTopMostIndex"), new QName(mx_internal, "topMostIndex")); }; _popUpChildren.addChild(preloader); var rsls:Array = info()["rsls"]; var cdRsls:Array = info()["cdRsls"]; var usePreloader:Boolean; if (info()["usePreloader"] != undefined){ usePreloader = info()["usePreloader"]; }; var preloaderDisplayClass:Class = (info()["preloader"] as Class); if (((usePreloader) && (!(preloaderDisplayClass)))){ preloaderDisplayClass = DownloadProgressBar; }; var rslList:Array = []; if (((cdRsls) && ((cdRsls.length > 0)))){ crossDomainRSLItem = Class(getDefinitionByName("mx.core::CrossDomainRSLItem")); n = cdRsls.length; i = 0; while (i < n) { cdNode = new crossDomainRSLItem(cdRsls[i]["rsls"], cdRsls[i]["policyFiles"], cdRsls[i]["digests"], cdRsls[i]["types"], cdRsls[i]["isSigned"], this.loaderInfo.url); rslList.push(cdNode); i++; }; }; if (((!((rsls == null))) && ((rsls.length > 0)))){ n = rsls.length; i = 0; while (i < n) { node = new RSLItem(rsls[i].url, this.loaderInfo.url); rslList.push(node); i++; }; }; Singleton.registerClass("mx.resources::IResourceManager", Class(getDefinitionByName("mx.resources::ResourceManagerImpl"))); var resourceManager:IResourceManager = ResourceManager.getInstance(); Singleton.registerClass("mx.core::IEmbeddedFontRegistry", Class(getDefinitionByName("mx.core::EmbeddedFontRegistry"))); Singleton.registerClass("mx.styles::IStyleManager", Class(getDefinitionByName("mx.styles::StyleManagerImpl"))); Singleton.registerClass("mx.styles::IStyleManager2", Class(getDefinitionByName("mx.styles::StyleManagerImpl"))); var localeChainList:String = loaderInfo.parameters["localeChain"]; if (((!((localeChainList == null))) && (!((localeChainList == ""))))){ resourceManager.localeChain = localeChainList.split(","); }; var resourceModuleURLList:String = loaderInfo.parameters["resourceModuleURLs"]; var resourceModuleURLs:Array = (resourceModuleURLList) ? resourceModuleURLList.split(",") : null; preloader.initialize(usePreloader, preloaderDisplayClass, preloaderBackgroundColor, preloaderBackgroundAlpha, preloaderBackgroundImage, preloaderBackgroundSize, (isStageRoot) ? stage.stageWidth : loaderInfo.width, (isStageRoot) ? stage.stageHeight : loaderInfo.height, null, null, rslList, resourceModuleURLs); } public function useSWFBridge():Boolean{ if (isStageRoot){ return (false); }; if (((!(topLevel)) && (topLevelSystemManager))){ return (topLevelSystemManager.useSWFBridge()); }; if (((topLevel) && (!((getSandboxRoot() == this))))){ return (true); }; if (getSandboxRoot() == this){ root.loaderInfo.parentAllowsChild; if (((parentAllowsChild) && (childAllowsParent))){ if (!parent.dispatchEvent(new Event("mx.managers.SystemManager.isStageRoot", false, true))){ return (true); }; //unresolved jump var _slot1 = e; } else { return (true); }; //unresolved jump var _slot1 = e1; return (false); }; return (false); } mx_internal function childRemoved(child:DisplayObject):void{ if ((child is IUIComponent)){ IUIComponent(child).parentChanged(null); }; } final mx_internal function $removeChildAt(index:int):DisplayObject{ return (super.removeChildAt(index)); } private function canActivatePopUp(f:Object):Boolean{ var remotePopUp:RemotePopUp; var event:SWFBridgeRequest; if (isRemotePopUp(f)){ remotePopUp = RemotePopUp(f); event = new SWFBridgeRequest(SWFBridgeRequest.CAN_ACTIVATE_POP_UP_REQUEST, false, false, null, remotePopUp.window); IEventDispatcher(remotePopUp.bridge).dispatchEvent(event); return (event.data); }; if (canActivateLocalComponent(f)){ return (true); }; return (false); } mx_internal function get noTopMostIndex():int{ return (_noTopMostIndex); } override public function get numChildren():int{ return ((noTopMostIndex - applicationIndex)); } private function canActivateLocalComponent(o:Object):Boolean{ if ((((((((o is Sprite)) && ((o is IUIComponent)))) && (Sprite(o).visible))) && (IUIComponent(o).enabled))){ return (true); }; return (false); } private function preloader_preloaderDoneHandler(event:Event):void{ var app:IUIComponent = topLevelWindow; preloader.removeEventListener(FlexEvent.PRELOADER_DONE, preloader_preloaderDoneHandler); _popUpChildren.removeChild(preloader); preloader = null; mouseCatcher = new FlexSprite(); mouseCatcher.name = "mouseCatcher"; noTopMostIndex++; super.addChildAt(mouseCatcher, 0); resizeMouseCatcher(); if (!topLevel){ mouseCatcher.visible = false; mask = mouseCatcher; }; noTopMostIndex++; super.addChildAt(DisplayObject(app), 1); app.dispatchEvent(new FlexEvent(FlexEvent.APPLICATION_COMPLETE)); dispatchEvent(new FlexEvent(FlexEvent.APPLICATION_COMPLETE)); } private function initializeTopLevelWindow(event:Event):void{ var app:IUIComponent; var obj:DisplayObjectContainer; var sm:ISystemManager; var sandboxRoot:DisplayObject; initialized = true; if (((!(parent)) && (parentAllowsChild))){ return; }; if (!topLevel){ obj = parent.parent; if (!obj){ return; }; while (obj) { if ((obj is IUIComponent)){ sm = IUIComponent(obj).systemManager; if (((sm) && (!(sm.isTopLevel())))){ sm = sm.topLevelSystemManager; }; _topLevelSystemManager = sm; break; }; obj = obj.parent; }; }; if (((isTopLevelRoot()) || ((getSandboxRoot() == this)))){ addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler, true); }; if (((isTopLevelRoot()) && (stage))){ stage.addEventListener(Event.RESIZE, Stage_resizeHandler, false, 0, true); } else { if (((topLevel) && (stage))){ sandboxRoot = getSandboxRoot(); if (sandboxRoot != this){ sandboxRoot.addEventListener(Event.RESIZE, Stage_resizeHandler, false, 0, true); }; }; }; app = (topLevelWindow = IUIComponent(create())); document = app; if (document){ IEventDispatcher(app).addEventListener(FlexEvent.CREATION_COMPLETE, appCreationCompleteHandler); if (!LoaderConfig._url){ LoaderConfig._url = loaderInfo.url; LoaderConfig._parameters = loaderInfo.parameters; }; if (((isStageRoot) && (stage))){ _width = stage.stageWidth; _height = stage.stageHeight; IFlexDisplayObject(app).setActualSize(_width, _height); } else { IFlexDisplayObject(app).setActualSize(loaderInfo.width, loaderInfo.height); }; if (preloader){ preloader.registerApplication(app); }; addingChild(DisplayObject(app)); childAdded(DisplayObject(app)); } else { document = this; }; } final mx_internal function $addChildAt(child:DisplayObject, index:int):DisplayObject{ return (super.addChildAt(child, index)); } mx_internal function dispatchActivatedWindowEvent(window:DisplayObject):void{ var sbRoot:DisplayObject; var sendToSbRoot:Boolean; var bridgeEvent:SWFBridgeEvent; var bridge:IEventDispatcher = (swfBridgeGroup) ? swfBridgeGroup.parentBridge : null; if (bridge){ sbRoot = getSandboxRoot(); sendToSbRoot = !((sbRoot == this)); bridgeEvent = new SWFBridgeEvent(SWFBridgeEvent.BRIDGE_WINDOW_ACTIVATE, false, false, {notifier:bridge, window:(sendToSbRoot) ? window : NameUtil.displayObjectToString(window)}); if (sendToSbRoot){ sbRoot.dispatchEvent(bridgeEvent); } else { bridge.dispatchEvent(bridgeEvent); }; }; } private function nextFrameTimerHandler(event:TimerEvent):void{ if ((currentFrame + 1) <= framesLoaded){ nextFrame(); nextFrameTimer.removeEventListener(TimerEvent.TIMER, nextFrameTimerHandler); nextFrameTimer.reset(); }; } public function get numModalWindows():int{ return (_numModalWindows); } private function areFormsEqual(form1:Object, form2:Object):Boolean{ if (form1 == form2){ return (true); }; if ((((form1 is RemotePopUp)) && ((form2 is RemotePopUp)))){ return (areRemotePopUpsEqual(form1, form2)); }; return (false); } public function isTopLevelWindow(object:DisplayObject):Boolean{ return ((((object is IUIComponent)) && ((IUIComponent(object) == topLevelWindow)))); } private function removePlaceholderId(id:String):void{ delete idToPlaceholder[id]; } override public function get width():Number{ return (_width); } private function dispatchActivatedApplicationEvent():void{ var bridgeEvent:SWFBridgeEvent; var bridge:IEventDispatcher = (swfBridgeGroup) ? swfBridgeGroup.parentBridge : null; if (bridge){ bridgeEvent = new SWFBridgeEvent(SWFBridgeEvent.BRIDGE_APPLICATION_ACTIVATE, false, false); bridge.dispatchEvent(bridgeEvent); }; } private function otherSystemManagerMouseListener(event:SandboxMouseEvent):void{ if (dispatchingToSystemManagers){ return; }; dispatchEventFromSWFBridges(event); var me:InterManagerRequest = new InterManagerRequest(InterManagerRequest.SYSTEM_MANAGER_REQUEST); me.name = "sameSandbox"; me.value = event; getSandboxRoot().dispatchEvent(me); if (!me.value){ dispatchEvent(event); }; } private function hideMouseCursorRequestHandler(event:Event):void{ var bridge:IEventDispatcher; if (((!(isTopLevelRoot())) && ((event is SWFBridgeRequest)))){ return; }; var request:SWFBridgeRequest = SWFBridgeRequest.marshal(event); if (!isTopLevelRoot()){ bridge = swfBridgeGroup.parentBridge; request.requestor = bridge; bridge.dispatchEvent(request); } else { if (eventProxy){ SystemManagerGlobals.showMouseCursor = false; }; }; } private function getTopLevelSystemManager(parent:DisplayObject):ISystemManager{ var sm:ISystemManager; var localRoot:DisplayObjectContainer = DisplayObjectContainer(parent.root); if (((((!(localRoot)) || ((localRoot is Stage)))) && ((parent is IUIComponent)))){ localRoot = DisplayObjectContainer(IUIComponent(parent).systemManager); }; if ((localRoot is ISystemManager)){ sm = ISystemManager(localRoot); if (!sm.isTopLevel()){ sm = sm.topLevelSystemManager; }; }; return (sm); } public function isDisplayObjectInABridgedApplication(displayObject:DisplayObject):Boolean{ return (!((getSWFBridgeOfDisplayObject(displayObject) == null))); } public function move(x:Number, y:Number):void{ } public function set explicitWidth(value:Number):void{ _explicitWidth = value; } public function get parentAllowsChild():Boolean{ return (loaderInfo.parentAllowsChild); //unresolved jump var _slot1 = error; return (false); } private function preloader_initProgressHandler(event:Event):void{ preloader.removeEventListener(FlexEvent.INIT_PROGRESS, preloader_initProgressHandler); deferredNextFrame(); } public function get explicitWidth():Number{ return (_explicitWidth); } private function activateFormSandboxEventHandler(event:Event):void{ var bridgeEvent:SWFBridgeEvent = SWFBridgeEvent.marshal(event); if (!forwardFormEvent(bridgeEvent)){ activateForm(new RemotePopUp(bridgeEvent.data.window, bridgeEvent.data.notifier)); }; } mx_internal function rawChildren_addChild(child:DisplayObject):DisplayObject{ addingChild(child); super.addChild(child); childAdded(child); return (child); } public static function getSWFRoot(object:Object):DisplayObject{ var p:*; var sm:ISystemManager; var domain:ApplicationDomain; var cls:Class; var object = object; var className:String = getQualifiedClassName(object); for (p in allSystemManagers) { sm = (p as ISystemManager); domain = sm.loaderInfo.applicationDomain; cls = Class(domain.getDefinition(className)); if ((object is cls)){ return ((sm as DisplayObject)); }; //unresolved jump var _slot1 = e; }; return (null); } private static function areRemotePopUpsEqual(form1:Object, form2:Object):Boolean{ if (!(form1 is RemotePopUp)){ return (false); }; if (!(form2 is RemotePopUp)){ return (false); }; var remotePopUp1:RemotePopUp = RemotePopUp(form1); var remotePopUp2:RemotePopUp = RemotePopUp(form2); if ((((((remotePopUp1.window == remotePopUp2.window)) && (remotePopUp1.bridge))) && (remotePopUp2.bridge))){ return (true); }; return (false); } private static function getChildListIndex(childList:IChildList, f:Object):int{ var childList = childList; var f = f; var index = -1; index = childList.getChildIndex(DisplayObject(f)); //unresolved jump var _slot1 = e; return (index); } mx_internal static function registerInitCallback(initFunction:Function):void{ if (((!(allSystemManagers)) || (!(lastSystemManager)))){ return; }; var sm:SystemManager = lastSystemManager; if (sm.doneExecutingInitCallbacks){ initFunction(sm); } else { sm.initCallbackFunctions.push(initFunction); }; } private static function isRemotePopUp(form:Object):Boolean{ return (!((form is IFocusManagerContainer))); } } }//package mx.managers
Section 213
//SystemManagerGlobals (mx.managers.SystemManagerGlobals) package mx.managers { public class SystemManagerGlobals { public static var topLevelSystemManagers:Array = []; public static var changingListenersInOtherSystemManagers:Boolean; public static var bootstrapLoaderInfoURL:String; public static var showMouseCursor:Boolean; public function SystemManagerGlobals(){ super(); } } }//package mx.managers
Section 214
//SystemManagerProxy (mx.managers.SystemManagerProxy) package mx.managers { import flash.display.*; import flash.geom.*; import mx.core.*; import flash.events.*; import mx.events.*; import mx.utils.*; public class SystemManagerProxy extends SystemManager { private var _systemManager:ISystemManager; mx_internal static const VERSION:String = "3.2.0.3958"; public function SystemManagerProxy(systemManager:ISystemManager){ super(); _systemManager = systemManager; topLevel = true; super.addEventListener(MouseEvent.MOUSE_DOWN, proxyMouseDownHandler, true); } override public function create(... _args):Object{ return (IFlexModuleFactory(_systemManager).create.apply(this, _args)); } public function get systemManager():ISystemManager{ return (_systemManager); } override public function activate(f:IFocusManagerContainer):void{ var mutualTrust:Boolean; var bridgeEvent:SWFBridgeEvent; var bridge:IEventDispatcher = (_systemManager.swfBridgeGroup) ? _systemManager.swfBridgeGroup.parentBridge : null; if (bridge){ mutualTrust = SecurityUtil.hasMutualTrustBetweenParentAndChild(ISWFBridgeProvider(_systemManager)); bridgeEvent = new SWFBridgeEvent(SWFBridgeEvent.BRIDGE_WINDOW_ACTIVATE, false, false, {notifier:bridge, window:(mutualTrust) ? this : NameUtil.displayObjectToString(this)}); _systemManager.getSandboxRoot().dispatchEvent(bridgeEvent); }; } override public function addEventListener(type:String, listener:Function, useCapture:Boolean=false, priority:int=0, useWeakReference:Boolean=false):void{ super.addEventListener(type, listener, useCapture, priority, useWeakReference); _systemManager.addEventListener(type, listener, useCapture, priority, useWeakReference); } public function deactivateByProxy(f:IFocusManagerContainer):void{ if (f){ f.focusManager.deactivate(); }; } override public function removeEventListener(type:String, listener:Function, useCapture:Boolean=false):void{ super.removeEventListener(type, listener, useCapture); _systemManager.removeEventListener(type, listener, useCapture); } override public function get document():Object{ return (findFocusManagerContainer(this)); } public function activateByProxy(f:IFocusManagerContainer):void{ super.activate(f); } override public function removeChildBridge(bridge:IEventDispatcher):void{ _systemManager.removeChildBridge(bridge); } override public function get swfBridgeGroup():ISWFBridgeGroup{ return (_systemManager.swfBridgeGroup); } override public function addChildBridge(bridge:IEventDispatcher, owner:DisplayObject):void{ _systemManager.addChildBridge(bridge, owner); } override public function useSWFBridge():Boolean{ return (_systemManager.useSWFBridge()); } override public function get screen():Rectangle{ return (_systemManager.screen); } override public function set swfBridgeGroup(bridgeGroup:ISWFBridgeGroup):void{ } private function proxyMouseDownHandler(event:MouseEvent):void{ if (findFocusManagerContainer(this)){ SystemManager(_systemManager).dispatchActivatedWindowEvent(this); }; } override public function deactivate(f:IFocusManagerContainer):void{ var mutualTrust:Boolean; var bridgeEvent:SWFBridgeEvent; var sm:ISystemManager = _systemManager; var bridge:IEventDispatcher = (sm.swfBridgeGroup) ? sm.swfBridgeGroup.parentBridge : null; if (bridge){ mutualTrust = SecurityUtil.hasMutualTrustBetweenParentAndChild(ISWFBridgeProvider(_systemManager)); bridgeEvent = new SWFBridgeEvent(SWFBridgeEvent.BRIDGE_WINDOW_DEACTIVATE, false, false, {notifier:bridge, window:(mutualTrust) ? this : NameUtil.displayObjectToString(this)}); _systemManager.getSandboxRoot().dispatchEvent(bridgeEvent); }; } override public function set document(value:Object):void{ } override public function getVisibleApplicationRect(bounds:Rectangle=null):Rectangle{ return (_systemManager.getVisibleApplicationRect(bounds)); } override public function getDefinitionByName(name:String):Object{ return (_systemManager.getDefinitionByName(name)); } } }//package mx.managers
Section 215
//SystemRawChildrenList (mx.managers.SystemRawChildrenList) package mx.managers { import flash.display.*; import flash.geom.*; import mx.core.*; public class SystemRawChildrenList implements IChildList { private var owner:SystemManager; mx_internal static const VERSION:String = "3.2.0.3958"; public function SystemRawChildrenList(owner:SystemManager){ super(); this.owner = owner; } public function getChildAt(index:int):DisplayObject{ return (owner.mx_internal::rawChildren_getChildAt(index)); } public function addChild(child:DisplayObject):DisplayObject{ return (owner.mx_internal::rawChildren_addChild(child)); } public function getChildIndex(child:DisplayObject):int{ return (owner.mx_internal::rawChildren_getChildIndex(child)); } public function setChildIndex(child:DisplayObject, newIndex:int):void{ var _local3 = owner; _local3.mx_internal::rawChildren_setChildIndex(child, newIndex); } public function getChildByName(name:String):DisplayObject{ return (owner.mx_internal::rawChildren_getChildByName(name)); } public function removeChildAt(index:int):DisplayObject{ return (owner.mx_internal::rawChildren_removeChildAt(index)); } public function get numChildren():int{ return (owner.mx_internal::$numChildren); } public function addChildAt(child:DisplayObject, index:int):DisplayObject{ return (owner.mx_internal::rawChildren_addChildAt(child, index)); } public function getObjectsUnderPoint(point:Point):Array{ return (owner.mx_internal::rawChildren_getObjectsUnderPoint(point)); } public function contains(child:DisplayObject):Boolean{ return (owner.mx_internal::rawChildren_contains(child)); } public function removeChild(child:DisplayObject):DisplayObject{ return (owner.mx_internal::rawChildren_removeChild(child)); } } }//package mx.managers
Section 216
//ToolTipManager (mx.managers.ToolTipManager) package mx.managers { import flash.display.*; import mx.core.*; import flash.events.*; import mx.effects.*; public class ToolTipManager extends EventDispatcher { mx_internal static const VERSION:String = "3.2.0.3958"; private static var implClassDependency:ToolTipManagerImpl; private static var _impl:IToolTipManager2; public function ToolTipManager(){ super(); } mx_internal static function registerToolTip(target:DisplayObject, oldToolTip:String, newToolTip:String):void{ impl.registerToolTip(target, oldToolTip, newToolTip); } public static function get enabled():Boolean{ return (impl.enabled); } public static function set enabled(value:Boolean):void{ impl.enabled = value; } public static function createToolTip(text:String, x:Number, y:Number, errorTipBorderStyle:String=null, context:IUIComponent=null):IToolTip{ return (impl.createToolTip(text, x, y, errorTipBorderStyle, context)); } public static function set hideDelay(value:Number):void{ impl.hideDelay = value; } public static function set showDelay(value:Number):void{ impl.showDelay = value; } public static function get showDelay():Number{ return (impl.showDelay); } public static function destroyToolTip(toolTip:IToolTip):void{ return (impl.destroyToolTip(toolTip)); } public static function get scrubDelay():Number{ return (impl.scrubDelay); } public static function get toolTipClass():Class{ return (impl.toolTipClass); } mx_internal static function registerErrorString(target:DisplayObject, oldErrorString:String, newErrorString:String):void{ impl.registerErrorString(target, oldErrorString, newErrorString); } mx_internal static function sizeTip(toolTip:IToolTip):void{ impl.sizeTip(toolTip); } public static function set currentTarget(value:DisplayObject):void{ impl.currentTarget = value; } public static function set showEffect(value:IAbstractEffect):void{ impl.showEffect = value; } private static function get impl():IToolTipManager2{ if (!_impl){ _impl = IToolTipManager2(Singleton.getInstance("mx.managers::IToolTipManager2")); }; return (_impl); } public static function get hideDelay():Number{ return (impl.hideDelay); } public static function set hideEffect(value:IAbstractEffect):void{ impl.hideEffect = value; } public static function set scrubDelay(value:Number):void{ impl.scrubDelay = value; } public static function get currentToolTip():IToolTip{ return (impl.currentToolTip); } public static function set currentToolTip(value:IToolTip):void{ impl.currentToolTip = value; } public static function get showEffect():IAbstractEffect{ return (impl.showEffect); } public static function get currentTarget():DisplayObject{ return (impl.currentTarget); } public static function get hideEffect():IAbstractEffect{ return (impl.hideEffect); } public static function set toolTipClass(value:Class):void{ impl.toolTipClass = value; } } }//package mx.managers
Section 217
//ToolTipManagerImpl (mx.managers.ToolTipManagerImpl) package mx.managers { import flash.display.*; import flash.geom.*; import mx.core.*; import flash.events.*; import mx.events.*; import mx.styles.*; import mx.controls.*; import mx.effects.*; import flash.utils.*; import mx.validators.*; public class ToolTipManagerImpl extends EventDispatcher implements IToolTipManager2 { private var _enabled:Boolean;// = true private var _showDelay:Number;// = 500 private var _hideEffect:IAbstractEffect; mx_internal var hideTimer:Timer; private var _scrubDelay:Number;// = 100 private var _toolTipClass:Class; mx_internal var showTimer:Timer; private var sandboxRoot:IEventDispatcher;// = null mx_internal var currentText:String; private var _currentToolTip:DisplayObject; mx_internal var scrubTimer:Timer; mx_internal var previousTarget:DisplayObject; private var _currentTarget:DisplayObject; private var systemManager:ISystemManager;// = null private var _showEffect:IAbstractEffect; private var _hideDelay:Number;// = 10000 mx_internal var initialized:Boolean;// = false mx_internal var isError:Boolean; mx_internal static const VERSION:String = "3.2.0.3958"; private static var instance:IToolTipManager2; public function ToolTipManagerImpl(){ _toolTipClass = ToolTip; super(); if (instance){ throw (new Error("Instance already exists.")); }; this.systemManager = (SystemManagerGlobals.topLevelSystemManagers[0] as ISystemManager); sandboxRoot = this.systemManager.getSandboxRoot(); sandboxRoot.addEventListener(InterManagerRequest.TOOLTIP_MANAGER_REQUEST, marshalToolTipManagerHandler, false, 0, true); var me:InterManagerRequest = new InterManagerRequest(InterManagerRequest.TOOLTIP_MANAGER_REQUEST); me.name = "update"; sandboxRoot.dispatchEvent(me); } mx_internal function systemManager_mouseDownHandler(event:MouseEvent):void{ reset(); } public function set showDelay(value:Number):void{ _showDelay = value; } mx_internal function showTimer_timerHandler(event:TimerEvent):void{ if (currentTarget){ createTip(); initializeTip(); positionTip(); showTip(); }; } mx_internal function hideEffectEnded():void{ var event:ToolTipEvent; reset(); if (previousTarget){ event = new ToolTipEvent(ToolTipEvent.TOOL_TIP_END); event.toolTip = currentToolTip; previousTarget.dispatchEvent(event); }; } public function set scrubDelay(value:Number):void{ _scrubDelay = value; } public function get currentToolTip():IToolTip{ return ((_currentToolTip as IToolTip)); } private function mouseIsOver(target:DisplayObject):Boolean{ if (((!(target)) || (!(target.stage)))){ return (false); }; if ((((target.stage.mouseX == 0)) && ((target.stage.mouseY == 0)))){ return (false); }; return (target.hitTestPoint(target.stage.mouseX, target.stage.mouseY, true)); } mx_internal function toolTipMouseOutHandler(event:MouseEvent):void{ checkIfTargetChanged(event.relatedObject); } public function get enabled():Boolean{ return (_enabled); } public function createToolTip(text:String, x:Number, y:Number, errorTipBorderStyle:String=null, context:IUIComponent=null):IToolTip{ var toolTip:ToolTip = new ToolTip(); var sm:ISystemManager = (context) ? (context.systemManager as ISystemManager) : (ApplicationGlobals.application.systemManager as ISystemManager); sm.topLevelSystemManager.addChildToSandboxRoot("toolTipChildren", (toolTip as DisplayObject)); if (errorTipBorderStyle){ toolTip.setStyle("styleName", "errorTip"); toolTip.setStyle("borderStyle", errorTipBorderStyle); }; toolTip.text = text; sizeTip(toolTip); toolTip.move(x, y); return ((toolTip as IToolTip)); } mx_internal function reset():void{ var sm:ISystemManager; showTimer.reset(); hideTimer.reset(); if (currentToolTip){ if (((showEffect) || (hideEffect))){ currentToolTip.removeEventListener(EffectEvent.EFFECT_END, effectEndHandler); }; EffectManager.endEffectsForTarget(currentToolTip); sm = (currentToolTip.systemManager as ISystemManager); sm.topLevelSystemManager.removeChildFromSandboxRoot("toolTipChildren", (currentToolTip as DisplayObject)); currentToolTip = null; scrubTimer.delay = scrubDelay; scrubTimer.reset(); if (scrubDelay > 0){ scrubTimer.delay = scrubDelay; scrubTimer.start(); }; }; } public function set currentToolTip(value:IToolTip):void{ _currentToolTip = (value as DisplayObject); var me:InterManagerRequest = new InterManagerRequest(InterManagerRequest.TOOLTIP_MANAGER_REQUEST); me.name = "currentToolTip"; me.value = value; sandboxRoot.dispatchEvent(me); } public function get toolTipClass():Class{ return (_toolTipClass); } private function hideImmediately(target:DisplayObject):void{ checkIfTargetChanged(null); } mx_internal function showTip():void{ var sm:ISystemManager; var event:ToolTipEvent = new ToolTipEvent(ToolTipEvent.TOOL_TIP_SHOW); event.toolTip = currentToolTip; currentTarget.dispatchEvent(event); if (isError){ currentTarget.addEventListener("change", changeHandler); } else { sm = getSystemManager(currentTarget); sm.addEventListener(MouseEvent.MOUSE_DOWN, systemManager_mouseDownHandler); }; currentToolTip.visible = true; if (!showEffect){ showEffectEnded(); }; } mx_internal function effectEndHandler(event:EffectEvent):void{ if (event.effectInstance.effect == showEffect){ showEffectEnded(); } else { if (event.effectInstance.effect == hideEffect){ hideEffectEnded(); }; }; } public function get hideDelay():Number{ return (_hideDelay); } public function get currentTarget():DisplayObject{ return (_currentTarget); } mx_internal function showEffectEnded():void{ var event:ToolTipEvent; if (hideDelay == 0){ hideTip(); } else { if (hideDelay < Infinity){ hideTimer.delay = hideDelay; hideTimer.start(); }; }; if (currentTarget){ event = new ToolTipEvent(ToolTipEvent.TOOL_TIP_SHOWN); event.toolTip = currentToolTip; currentTarget.dispatchEvent(event); }; } public function get hideEffect():IAbstractEffect{ return (_hideEffect); } mx_internal function changeHandler(event:Event):void{ reset(); } public function set enabled(value:Boolean):void{ _enabled = value; } mx_internal function errorTipMouseOverHandler(event:MouseEvent):void{ checkIfTargetChanged(DisplayObject(event.target)); } public function get showDelay():Number{ return (_showDelay); } public function get scrubDelay():Number{ return (_scrubDelay); } public function registerErrorString(target:DisplayObject, oldErrorString:String, newErrorString:String):void{ if (((!(oldErrorString)) && (newErrorString))){ target.addEventListener(MouseEvent.MOUSE_OVER, errorTipMouseOverHandler); target.addEventListener(MouseEvent.MOUSE_OUT, errorTipMouseOutHandler); if (mouseIsOver(target)){ showImmediately(target); }; } else { if (((oldErrorString) && (!(newErrorString)))){ target.removeEventListener(MouseEvent.MOUSE_OVER, errorTipMouseOverHandler); target.removeEventListener(MouseEvent.MOUSE_OUT, errorTipMouseOutHandler); if (mouseIsOver(target)){ hideImmediately(target); }; }; }; } mx_internal function initialize():void{ if (!showTimer){ showTimer = new Timer(0, 1); showTimer.addEventListener(TimerEvent.TIMER, showTimer_timerHandler); }; if (!hideTimer){ hideTimer = new Timer(0, 1); hideTimer.addEventListener(TimerEvent.TIMER, hideTimer_timerHandler); }; if (!scrubTimer){ scrubTimer = new Timer(0, 1); }; initialized = true; } public function destroyToolTip(toolTip:IToolTip):void{ var sm:ISystemManager = (toolTip.systemManager as ISystemManager); sm.topLevelSystemManager.removeChildFromSandboxRoot("toolTipChildren", DisplayObject(toolTip)); } mx_internal function checkIfTargetChanged(displayObject:DisplayObject):void{ if (!enabled){ return; }; findTarget(displayObject); if (currentTarget != previousTarget){ targetChanged(); previousTarget = currentTarget; }; } private function marshalToolTipManagerHandler(event:Event):void{ var me:InterManagerRequest; if ((event is InterManagerRequest)){ return; }; var marshalEvent:Object = event; switch (marshalEvent.name){ case "currentToolTip": _currentToolTip = marshalEvent.value; break; case ToolTipEvent.TOOL_TIP_HIDE: if ((_currentToolTip is IToolTip)){ hideTip(); }; break; case "update": event.stopImmediatePropagation(); me = new InterManagerRequest(InterManagerRequest.TOOLTIP_MANAGER_REQUEST); me.name = "currentToolTip"; me.value = _currentToolTip; sandboxRoot.dispatchEvent(me); }; } public function set toolTipClass(value:Class):void{ _toolTipClass = value; } private function getGlobalBounds(obj:DisplayObject, parent:DisplayObject):Rectangle{ var upperLeft:Point = new Point(0, 0); upperLeft = obj.localToGlobal(upperLeft); upperLeft = parent.globalToLocal(upperLeft); return (new Rectangle(upperLeft.x, upperLeft.y, obj.width, obj.height)); } mx_internal function positionTip():void{ var x:Number; var y:Number; var targetGlobalBounds:Rectangle; var pos:Point; var ctt:IToolTip; var newWidth:Number; var oldWidth:Number; var sm:ISystemManager; var toolTipWidth:Number; var toolTipHeight:Number; var screenWidth:Number = currentToolTip.screen.width; var screenHeight:Number = currentToolTip.screen.height; if (isError){ targetGlobalBounds = getGlobalBounds(currentTarget, currentToolTip.root); x = (targetGlobalBounds.right + 4); y = (targetGlobalBounds.top - 1); if ((x + currentToolTip.width) > screenWidth){ newWidth = NaN; oldWidth = NaN; x = (targetGlobalBounds.left - 2); if (((x + currentToolTip.width) + 4) > screenWidth){ newWidth = ((screenWidth - x) - 4); oldWidth = Object(toolTipClass).maxWidth; Object(toolTipClass).maxWidth = newWidth; if ((currentToolTip is IStyleClient)){ IStyleClient(currentToolTip).setStyle("borderStyle", "errorTipAbove"); }; currentToolTip["text"] = currentToolTip["text"]; Object(toolTipClass).maxWidth = oldWidth; } else { if ((currentToolTip is IStyleClient)){ IStyleClient(currentToolTip).setStyle("borderStyle", "errorTipAbove"); }; currentToolTip["text"] = currentToolTip["text"]; }; if ((currentToolTip.height + 2) < targetGlobalBounds.top){ y = (targetGlobalBounds.top - (currentToolTip.height + 2)); } else { y = (targetGlobalBounds.bottom + 2); if (!isNaN(newWidth)){ Object(toolTipClass).maxWidth = newWidth; }; if ((currentToolTip is IStyleClient)){ IStyleClient(currentToolTip).setStyle("borderStyle", "errorTipBelow"); }; currentToolTip["text"] = currentToolTip["text"]; if (!isNaN(oldWidth)){ Object(toolTipClass).maxWidth = oldWidth; }; }; }; sizeTip(currentToolTip); pos = new Point(x, y); ctt = currentToolTip; x = pos.x; y = pos.y; } else { sm = getSystemManager(currentTarget); x = (DisplayObject(sm).mouseX + 11); y = (DisplayObject(sm).mouseY + 22); toolTipWidth = currentToolTip.width; if ((x + toolTipWidth) > screenWidth){ x = (screenWidth - toolTipWidth); }; toolTipHeight = currentToolTip.height; if ((y + toolTipHeight) > screenHeight){ y = (screenHeight - toolTipHeight); }; pos = new Point(x, y); pos = DisplayObject(sm).localToGlobal(pos); pos = DisplayObject(sandboxRoot).globalToLocal(pos); x = pos.x; y = pos.y; }; currentToolTip.move(x, y); } mx_internal function errorTipMouseOutHandler(event:MouseEvent):void{ checkIfTargetChanged(event.relatedObject); } mx_internal function findTarget(displayObject:DisplayObject):void{ while (displayObject) { if ((displayObject is IValidatorListener)){ currentText = IValidatorListener(displayObject).errorString; if (((!((currentText == null))) && (!((currentText == ""))))){ currentTarget = displayObject; isError = true; return; }; }; if ((displayObject is IToolTipManagerClient)){ currentText = IToolTipManagerClient(displayObject).toolTip; if (currentText != null){ currentTarget = displayObject; isError = false; return; }; }; displayObject = displayObject.parent; }; currentText = null; currentTarget = null; } public function registerToolTip(target:DisplayObject, oldToolTip:String, newToolTip:String):void{ if (((!(oldToolTip)) && (newToolTip))){ target.addEventListener(MouseEvent.MOUSE_OVER, toolTipMouseOverHandler); target.addEventListener(MouseEvent.MOUSE_OUT, toolTipMouseOutHandler); if (mouseIsOver(target)){ showImmediately(target); }; } else { if (((oldToolTip) && (!(newToolTip)))){ target.removeEventListener(MouseEvent.MOUSE_OVER, toolTipMouseOverHandler); target.removeEventListener(MouseEvent.MOUSE_OUT, toolTipMouseOutHandler); if (mouseIsOver(target)){ hideImmediately(target); }; }; }; } private function showImmediately(target:DisplayObject):void{ var oldShowDelay:Number = ToolTipManager.showDelay; ToolTipManager.showDelay = 0; checkIfTargetChanged(target); ToolTipManager.showDelay = oldShowDelay; } public function set hideDelay(value:Number):void{ _hideDelay = value; } private function getSystemManager(target:DisplayObject):ISystemManager{ return (((target is IUIComponent)) ? IUIComponent(target).systemManager : null); } public function set currentTarget(value:DisplayObject):void{ _currentTarget = value; } public function sizeTip(toolTip:IToolTip):void{ if ((toolTip is IInvalidating)){ IInvalidating(toolTip).validateNow(); }; toolTip.setActualSize(toolTip.getExplicitOrMeasuredWidth(), toolTip.getExplicitOrMeasuredHeight()); } public function set showEffect(value:IAbstractEffect):void{ _showEffect = (value as IAbstractEffect); } mx_internal function targetChanged():void{ var event:ToolTipEvent; var me:InterManagerRequest; if (!initialized){ initialize(); }; if (((previousTarget) && (currentToolTip))){ if ((currentToolTip is IToolTip)){ event = new ToolTipEvent(ToolTipEvent.TOOL_TIP_HIDE); event.toolTip = currentToolTip; previousTarget.dispatchEvent(event); } else { me = new InterManagerRequest(InterManagerRequest.TOOLTIP_MANAGER_REQUEST); me.name = ToolTipEvent.TOOL_TIP_HIDE; sandboxRoot.dispatchEvent(me); }; }; reset(); if (currentTarget){ if (currentText == ""){ return; }; event = new ToolTipEvent(ToolTipEvent.TOOL_TIP_START); currentTarget.dispatchEvent(event); if ((((showDelay == 0)) || (scrubTimer.running))){ createTip(); initializeTip(); positionTip(); showTip(); } else { showTimer.delay = showDelay; showTimer.start(); }; }; } public function set hideEffect(value:IAbstractEffect):void{ _hideEffect = (value as IAbstractEffect); } mx_internal function hideTimer_timerHandler(event:TimerEvent):void{ hideTip(); } mx_internal function initializeTip():void{ if ((currentToolTip is IToolTip)){ IToolTip(currentToolTip).text = currentText; }; if (((isError) && ((currentToolTip is IStyleClient)))){ IStyleClient(currentToolTip).setStyle("styleName", "errorTip"); }; sizeTip(currentToolTip); if ((currentToolTip is IStyleClient)){ if (showEffect){ IStyleClient(currentToolTip).setStyle("showEffect", showEffect); }; if (hideEffect){ IStyleClient(currentToolTip).setStyle("hideEffect", hideEffect); }; }; if (((showEffect) || (hideEffect))){ currentToolTip.addEventListener(EffectEvent.EFFECT_END, effectEndHandler); }; } public function get showEffect():IAbstractEffect{ return (_showEffect); } mx_internal function toolTipMouseOverHandler(event:MouseEvent):void{ checkIfTargetChanged(DisplayObject(event.target)); } mx_internal function hideTip():void{ var event:ToolTipEvent; var sm:ISystemManager; if (previousTarget){ event = new ToolTipEvent(ToolTipEvent.TOOL_TIP_HIDE); event.toolTip = currentToolTip; previousTarget.dispatchEvent(event); }; if (currentToolTip){ currentToolTip.visible = false; }; if (isError){ if (currentTarget){ currentTarget.removeEventListener("change", changeHandler); }; } else { if (previousTarget){ sm = getSystemManager(previousTarget); sm.removeEventListener(MouseEvent.MOUSE_DOWN, systemManager_mouseDownHandler); }; }; if (!hideEffect){ hideEffectEnded(); }; } mx_internal function createTip():void{ var event:ToolTipEvent = new ToolTipEvent(ToolTipEvent.TOOL_TIP_CREATE); currentTarget.dispatchEvent(event); if (event.toolTip){ currentToolTip = event.toolTip; } else { currentToolTip = new toolTipClass(); }; currentToolTip.visible = false; var sm:ISystemManager = (getSystemManager(currentTarget) as ISystemManager); sm.topLevelSystemManager.addChildToSandboxRoot("toolTipChildren", (currentToolTip as DisplayObject)); } public static function getInstance():IToolTipManager2{ if (!instance){ instance = new (ToolTipManagerImpl); }; return (instance); } } }//package mx.managers
Section 218
//LoaderConfig (mx.messaging.config.LoaderConfig) package mx.messaging.config { import mx.core.*; public class LoaderConfig { mx_internal static const VERSION:String = "3.2.0.3958"; mx_internal static var _url:String = null; mx_internal static var _parameters:Object; public function LoaderConfig(){ super(); } public static function get url():String{ return (_url); } public static function get parameters():Object{ return (_parameters); } } }//package mx.messaging.config
Section 219
//IModuleInfo (mx.modules.IModuleInfo) package mx.modules { import mx.core.*; import flash.events.*; import flash.system.*; import flash.utils.*; public interface IModuleInfo extends IEventDispatcher { function get ready():Boolean; function get loaded():Boolean; function load(_arg1:ApplicationDomain=null, _arg2:SecurityDomain=null, _arg3:ByteArray=null):void; function release():void; function get error():Boolean; function get data():Object; function publish(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\modules;IModuleInfo.as:IFlexModuleFactory):void; function get factory():IFlexModuleFactory; function set data(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\modules;IModuleInfo.as:Object):void; function get url():String; function get setup():Boolean; function unload():void; } }//package mx.modules
Section 220
//ModuleManager (mx.modules.ModuleManager) package mx.modules { import mx.core.*; public class ModuleManager { mx_internal static const VERSION:String = "3.2.0.3958"; public function ModuleManager(){ super(); } public static function getModule(url:String):IModuleInfo{ return (getSingleton().getModule(url)); } private static function getSingleton():Object{ if (!ModuleManagerGlobals.managerSingleton){ ModuleManagerGlobals.managerSingleton = new ModuleManagerImpl(); }; return (ModuleManagerGlobals.managerSingleton); } public static function getAssociatedFactory(object:Object):IFlexModuleFactory{ return (getSingleton().getAssociatedFactory(object)); } } }//package mx.modules import flash.display.*; import mx.core.*; import flash.events.*; import mx.events.*; import flash.system.*; import flash.net.*; import flash.utils.*; class ModuleInfoProxy extends EventDispatcher implements IModuleInfo { private var _data:Object; private var info:ModuleInfo; private var referenced:Boolean;// = false private function ModuleInfoProxy(info:ModuleInfo){ super(); this.info = info; info.addEventListener(ModuleEvent.SETUP, moduleEventHandler, false, 0, true); info.addEventListener(ModuleEvent.PROGRESS, moduleEventHandler, false, 0, true); info.addEventListener(ModuleEvent.READY, moduleEventHandler, false, 0, true); info.addEventListener(ModuleEvent.ERROR, moduleEventHandler, false, 0, true); info.addEventListener(ModuleEvent.UNLOAD, moduleEventHandler, false, 0, true); } public function get loaded():Boolean{ return (info.loaded); } public function release():void{ if (referenced){ info.removeReference(); referenced = false; }; } public function get error():Boolean{ return (info.error); } public function get factory():IFlexModuleFactory{ return (info.factory); } public function publish(factory:IFlexModuleFactory):void{ info.publish(factory); } public function set data(value:Object):void{ _data = value; } public function get ready():Boolean{ return (info.ready); } public function load(applicationDomain:ApplicationDomain=null, securityDomain:SecurityDomain=null, bytes:ByteArray=null):void{ var moduleEvent:ModuleEvent; info.resurrect(); if (!referenced){ info.addReference(); referenced = true; }; if (info.error){ dispatchEvent(new ModuleEvent(ModuleEvent.ERROR)); } else { if (info.loaded){ if (info.setup){ dispatchEvent(new ModuleEvent(ModuleEvent.SETUP)); if (info.ready){ moduleEvent = new ModuleEvent(ModuleEvent.PROGRESS); moduleEvent.bytesLoaded = info.size; moduleEvent.bytesTotal = info.size; dispatchEvent(moduleEvent); dispatchEvent(new ModuleEvent(ModuleEvent.READY)); }; }; } else { info.load(applicationDomain, securityDomain, bytes); }; }; } private function moduleEventHandler(event:ModuleEvent):void{ dispatchEvent(event); } public function get url():String{ return (info.url); } public function get data():Object{ return (_data); } public function get setup():Boolean{ return (info.setup); } public function unload():void{ info.unload(); info.removeEventListener(ModuleEvent.SETUP, moduleEventHandler); info.removeEventListener(ModuleEvent.PROGRESS, moduleEventHandler); info.removeEventListener(ModuleEvent.READY, moduleEventHandler); info.removeEventListener(ModuleEvent.ERROR, moduleEventHandler); info.removeEventListener(ModuleEvent.UNLOAD, moduleEventHandler); } } class ModuleManagerImpl extends EventDispatcher { private var moduleList:Object; private function ModuleManagerImpl(){ moduleList = {}; super(); } public function getModule(url:String):IModuleInfo{ var info:ModuleInfo = (moduleList[url] as ModuleInfo); if (!info){ info = new ModuleInfo(url); moduleList[url] = info; }; return (new ModuleInfoProxy(info)); } public function getAssociatedFactory(object:Object):IFlexModuleFactory{ var m:Object; var info:ModuleInfo; var domain:ApplicationDomain; var cls:Class; var object = object; var className:String = getQualifiedClassName(object); for each (m in moduleList) { info = (m as ModuleInfo); if (!info.ready){ } else { domain = info.applicationDomain; cls = Class(domain.getDefinition(className)); if ((object is cls)){ return (info.factory); }; //unresolved jump var _slot1 = error; }; }; return (null); } } class ModuleInfo extends EventDispatcher { private var _error:Boolean;// = false private var loader:Loader; private var factoryInfo:FactoryInfo; private var limbo:Dictionary; private var _loaded:Boolean;// = false private var _ready:Boolean;// = false private var numReferences:int;// = 0 private var _url:String; private var _setup:Boolean;// = false private function ModuleInfo(url:String){ super(); _url = url; } private function clearLoader():void{ if (loader){ if (loader.contentLoaderInfo){ loader.contentLoaderInfo.removeEventListener(Event.INIT, initHandler); loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, completeHandler); loader.contentLoaderInfo.removeEventListener(ProgressEvent.PROGRESS, progressHandler); loader.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, errorHandler); loader.contentLoaderInfo.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, errorHandler); }; if (loader.content){ loader.content.removeEventListener("ready", readyHandler); loader.content.removeEventListener("error", moduleErrorHandler); }; //unresolved jump var _slot1 = error; if (_loaded){ loader.close(); //unresolved jump var _slot1 = error; }; loader.unload(); //unresolved jump var _slot1 = error; loader = null; }; } public function get size():int{ return ((((!(limbo)) && (factoryInfo))) ? factoryInfo.bytesTotal : 0); } public function get loaded():Boolean{ return ((limbo) ? false : _loaded); } public function release():void{ if (((_ready) && (!(limbo)))){ limbo = new Dictionary(true); limbo[factoryInfo] = 1; factoryInfo = null; } else { unload(); }; } public function get error():Boolean{ return ((limbo) ? false : _error); } public function get factory():IFlexModuleFactory{ return ((((!(limbo)) && (factoryInfo))) ? factoryInfo.factory : null); } public function completeHandler(event:Event):void{ var moduleEvent:ModuleEvent = new ModuleEvent(ModuleEvent.PROGRESS, event.bubbles, event.cancelable); moduleEvent.bytesLoaded = loader.contentLoaderInfo.bytesLoaded; moduleEvent.bytesTotal = loader.contentLoaderInfo.bytesTotal; dispatchEvent(moduleEvent); } public function publish(factory:IFlexModuleFactory):void{ if (factoryInfo){ return; }; if (_url.indexOf("published://") != 0){ return; }; factoryInfo = new FactoryInfo(); factoryInfo.factory = factory; _loaded = true; _setup = true; _ready = true; _error = false; dispatchEvent(new ModuleEvent(ModuleEvent.SETUP)); dispatchEvent(new ModuleEvent(ModuleEvent.PROGRESS)); dispatchEvent(new ModuleEvent(ModuleEvent.READY)); } public function initHandler(event:Event):void{ var moduleEvent:ModuleEvent; var event = event; factoryInfo = new FactoryInfo(); factoryInfo.factory = (loader.content as IFlexModuleFactory); //unresolved jump var _slot1 = error; if (!factoryInfo.factory){ moduleEvent = new ModuleEvent(ModuleEvent.ERROR, event.bubbles, event.cancelable); moduleEvent.bytesLoaded = 0; moduleEvent.bytesTotal = 0; moduleEvent.errorText = "SWF is not a loadable module"; dispatchEvent(moduleEvent); return; }; loader.content.addEventListener("ready", readyHandler); loader.content.addEventListener("error", moduleErrorHandler); factoryInfo.applicationDomain = loader.contentLoaderInfo.applicationDomain; //unresolved jump var _slot1 = error; _setup = true; dispatchEvent(new ModuleEvent(ModuleEvent.SETUP)); } public function resurrect():void{ var f:Object; if (((!(factoryInfo)) && (limbo))){ for (f in limbo) { factoryInfo = (f as FactoryInfo); break; }; limbo = null; }; if (!factoryInfo){ if (_loaded){ dispatchEvent(new ModuleEvent(ModuleEvent.UNLOAD)); }; loader = null; _loaded = false; _setup = false; _ready = false; _error = false; }; } public function errorHandler(event:ErrorEvent):void{ _error = true; var moduleEvent:ModuleEvent = new ModuleEvent(ModuleEvent.ERROR, event.bubbles, event.cancelable); moduleEvent.bytesLoaded = 0; moduleEvent.bytesTotal = 0; moduleEvent.errorText = event.text; dispatchEvent(moduleEvent); } public function get ready():Boolean{ return ((limbo) ? false : _ready); } private function loadBytes(applicationDomain:ApplicationDomain, bytes:ByteArray):void{ var c:LoaderContext = new LoaderContext(); c.applicationDomain = (applicationDomain) ? applicationDomain : new ApplicationDomain(ApplicationDomain.currentDomain); if (("allowLoadBytesCodeExecution" in c)){ c["allowLoadBytesCodeExecution"] = true; }; loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.INIT, initHandler); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler); loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, errorHandler); loader.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR, errorHandler); loader.loadBytes(bytes, c); } public function removeReference():void{ numReferences--; if (numReferences == 0){ release(); }; } public function addReference():void{ numReferences++; } public function progressHandler(event:ProgressEvent):void{ var moduleEvent:ModuleEvent = new ModuleEvent(ModuleEvent.PROGRESS, event.bubbles, event.cancelable); moduleEvent.bytesLoaded = event.bytesLoaded; moduleEvent.bytesTotal = event.bytesTotal; dispatchEvent(moduleEvent); } public function load(applicationDomain:ApplicationDomain=null, securityDomain:SecurityDomain=null, bytes:ByteArray=null):void{ if (_loaded){ return; }; _loaded = true; limbo = null; if (bytes){ loadBytes(applicationDomain, bytes); return; }; if (_url.indexOf("published://") == 0){ return; }; var r:URLRequest = new URLRequest(_url); var c:LoaderContext = new LoaderContext(); c.applicationDomain = (applicationDomain) ? applicationDomain : new ApplicationDomain(ApplicationDomain.currentDomain); c.securityDomain = securityDomain; if ((((securityDomain == null)) && ((Security.sandboxType == Security.REMOTE)))){ c.securityDomain = SecurityDomain.currentDomain; }; loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.INIT, initHandler); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler); loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, progressHandler); loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, errorHandler); loader.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR, errorHandler); loader.load(r, c); } public function get url():String{ return (_url); } public function get applicationDomain():ApplicationDomain{ return ((((!(limbo)) && (factoryInfo))) ? factoryInfo.applicationDomain : null); } public function moduleErrorHandler(event:Event):void{ var errorEvent:ModuleEvent; _ready = true; factoryInfo.bytesTotal = loader.contentLoaderInfo.bytesTotal; clearLoader(); if ((event is ModuleEvent)){ errorEvent = ModuleEvent(event); } else { errorEvent = new ModuleEvent(ModuleEvent.ERROR); }; dispatchEvent(errorEvent); } public function readyHandler(event:Event):void{ _ready = true; factoryInfo.bytesTotal = loader.contentLoaderInfo.bytesTotal; clearLoader(); dispatchEvent(new ModuleEvent(ModuleEvent.READY)); } public function get setup():Boolean{ return ((limbo) ? false : _setup); } public function unload():void{ clearLoader(); if (_loaded){ dispatchEvent(new ModuleEvent(ModuleEvent.UNLOAD)); }; limbo = null; factoryInfo = null; _loaded = false; _setup = false; _ready = false; _error = false; } } class FactoryInfo { public var bytesTotal:int;// = 0 public var factory:IFlexModuleFactory; public var applicationDomain:ApplicationDomain; private function FactoryInfo(){ super(); } }
Section 221
//ModuleManagerGlobals (mx.modules.ModuleManagerGlobals) package mx.modules { public class ModuleManagerGlobals { public static var managerSingleton:Object = null; public function ModuleManagerGlobals(){ super(); } } }//package mx.modules
Section 222
//DownloadProgressBar (mx.preloaders.DownloadProgressBar) package mx.preloaders { import flash.display.*; import flash.geom.*; import mx.core.*; import flash.text.*; import flash.events.*; import mx.events.*; import flash.system.*; import mx.graphics.*; import flash.net.*; import flash.utils.*; public class DownloadProgressBar extends Sprite implements IPreloaderDisplay { protected var MINIMUM_DISPLAY_TIME:uint;// = 0 private var _barFrameRect:RoundedRectangle; private var _stageHeight:Number;// = 375 private var _stageWidth:Number;// = 500 private var _percentRect:Rectangle; private var _percentObj:TextField; private var _downloadingLabel:String;// = "Loading" private var _showProgressBar:Boolean;// = true private var _yOffset:Number;// = 20 private var _initProgressCount:uint;// = 0 private var _barSprite:Sprite; private var _visible:Boolean;// = false private var _barRect:RoundedRectangle; private var _showingDisplay:Boolean;// = false private var _backgroundSize:String;// = "" private var _initProgressTotal:uint;// = 12 private var _startedInit:Boolean;// = false private var _showLabel:Boolean;// = true private var _value:Number;// = 0 private var _labelRect:Rectangle; private var _backgroundImage:Object; private var _backgroundAlpha:Number;// = 1 private var _backgroundColor:uint; private var _startedLoading:Boolean;// = false private var _showPercentage:Boolean;// = false private var _barFrameSprite:Sprite; protected var DOWNLOAD_PERCENTAGE:uint;// = 60 private var _displayStartCount:uint;// = 0 private var _labelObj:TextField; private var _borderRect:RoundedRectangle; private var _maximum:Number;// = 0 private var _displayTime:int; private var _label:String;// = "" private var _preloader:Sprite; private var _xOffset:Number;// = 20 private var _startTime:int; mx_internal static const VERSION:String = "3.2.0.3958"; private static var _initializingLabel:String = "Initializing"; public function DownloadProgressBar(){ _labelRect = labelRect; _percentRect = percentRect; _borderRect = borderRect; _barFrameRect = barFrameRect; _barRect = barRect; super(); } protected function getPercentLoaded(loaded:Number, total:Number):Number{ var perc:Number; if ((((((((loaded == 0)) || ((total == 0)))) || (isNaN(total)))) || (isNaN(loaded)))){ return (0); }; perc = ((100 * loaded) / total); if (((isNaN(perc)) || ((perc <= 0)))){ return (0); }; if (perc > 99){ return (99); }; return (Math.round(perc)); } protected function get labelFormat():TextFormat{ var tf:TextFormat = new TextFormat(); tf.color = 0x333333; tf.font = "Verdana"; tf.size = 10; return (tf); } private function calcScale():void{ var scale:Number; if ((((stageWidth < 160)) || ((stageHeight < 120)))){ scaleX = 1; scaleY = 1; } else { if ((((stageWidth < 240)) || ((stageHeight < 150)))){ createChildren(); scale = Math.min((stageWidth / 240), (stageHeight / 150)); scaleX = scale; scaleY = scale; } else { createChildren(); }; }; } protected function get percentRect():Rectangle{ return (new Rectangle(108, 4, 34, 16)); } protected function set showLabel(value:Boolean):void{ _showLabel = value; draw(); } private function calcBackgroundSize():Number{ var index:int; var percentage:Number = NaN; if (backgroundSize){ index = backgroundSize.indexOf("%"); if (index != -1){ percentage = Number(backgroundSize.substr(0, index)); }; }; return (percentage); } private function show():void{ _showingDisplay = true; calcScale(); draw(); _displayTime = getTimer(); } private function loadBackgroundImage(classOrString:Object):void{ var cls:Class; var newStyleObj:DisplayObject; var loader:Loader; var loaderContext:LoaderContext; var classOrString = classOrString; if (((classOrString) && ((classOrString as Class)))){ cls = Class(classOrString); initBackgroundImage(new (cls)); } else { if (((classOrString) && ((classOrString is String)))){ cls = Class(getDefinitionByName(String(classOrString))); //unresolved jump var _slot1 = e; if (cls){ newStyleObj = new (cls); initBackgroundImage(newStyleObj); } else { loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loader_completeHandler); loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, loader_ioErrorHandler); loaderContext = new LoaderContext(); loaderContext.applicationDomain = new ApplicationDomain(ApplicationDomain.currentDomain); loader.load(new URLRequest(String(classOrString)), loaderContext); }; }; }; } protected function set showPercentage(value:Boolean):void{ _showPercentage = value; draw(); } protected function get barFrameRect():RoundedRectangle{ return (new RoundedRectangle(14, 40, 154, 4)); } private function loader_ioErrorHandler(event:IOErrorEvent):void{ } protected function rslErrorHandler(event:RSLEvent):void{ _preloader.removeEventListener(ProgressEvent.PROGRESS, progressHandler); _preloader.removeEventListener(Event.COMPLETE, completeHandler); _preloader.removeEventListener(RSLEvent.RSL_PROGRESS, rslProgressHandler); _preloader.removeEventListener(RSLEvent.RSL_COMPLETE, rslCompleteHandler); _preloader.removeEventListener(RSLEvent.RSL_ERROR, rslErrorHandler); _preloader.removeEventListener(FlexEvent.INIT_PROGRESS, initProgressHandler); _preloader.removeEventListener(FlexEvent.INIT_COMPLETE, initCompleteHandler); if (!_showingDisplay){ show(); _showingDisplay = true; }; label = ((("RSL Error " + (event.rslIndex + 1)) + " of ") + event.rslTotal); var errorField:ErrorField = new ErrorField(this); errorField.show(event.errorText); } protected function rslCompleteHandler(event:RSLEvent):void{ label = ((("Loaded library " + event.rslIndex) + " of ") + event.rslTotal); } protected function get borderRect():RoundedRectangle{ return (new RoundedRectangle(0, 0, 182, 60, 4)); } protected function showDisplayForDownloading(elapsedTime:int, event:ProgressEvent):Boolean{ return ((((elapsedTime > 700)) && ((event.bytesLoaded < (event.bytesTotal / 2))))); } protected function createChildren():void{ var labelObj:TextField; var percentObj:TextField; var g:Graphics = graphics; if (backgroundColor != 4294967295){ g.beginFill(backgroundColor, backgroundAlpha); g.drawRect(0, 0, stageWidth, stageHeight); }; if (backgroundImage != null){ loadBackgroundImage(backgroundImage); }; _barFrameSprite = new Sprite(); _barSprite = new Sprite(); addChild(_barFrameSprite); addChild(_barSprite); g.beginFill(0xCCCCCC, 0.4); g.drawRoundRect(calcX(_borderRect.x), calcY(_borderRect.y), _borderRect.width, _borderRect.height, (_borderRect.cornerRadius * 2), (_borderRect.cornerRadius * 2)); g.drawRoundRect(calcX((_borderRect.x + 1)), calcY((_borderRect.y + 1)), (_borderRect.width - 2), (_borderRect.height - 2), (_borderRect.cornerRadius - (1 * 2)), (_borderRect.cornerRadius - (1 * 2))); g.endFill(); g.beginFill(0xCCCCCC, 0.4); g.drawRoundRect(calcX((_borderRect.x + 1)), calcY((_borderRect.y + 1)), (_borderRect.width - 2), (_borderRect.height - 2), (_borderRect.cornerRadius - (1 * 2)), (_borderRect.cornerRadius - (1 * 2))); g.endFill(); var frame_g:Graphics = _barFrameSprite.graphics; var matrix:Matrix = new Matrix(); matrix.createGradientBox(_barFrameRect.width, _barFrameRect.height, (Math.PI / 2), calcX(_barFrameRect.x), calcY(_barFrameRect.y)); frame_g.beginGradientFill(GradientType.LINEAR, [6054502, 11909306], [1, 1], [0, 0xFF], matrix); frame_g.drawRoundRect(calcX(_barFrameRect.x), calcY(_barFrameRect.y), _barFrameRect.width, _barFrameRect.height, (_barFrameRect.cornerRadius * 2), (_barFrameRect.cornerRadius * 2)); frame_g.drawRoundRect(calcX((_barFrameRect.x + 1)), calcY((_barFrameRect.y + 1)), (_barFrameRect.width - 2), (_barFrameRect.height - 2), (_barFrameRect.cornerRadius * 2), (_barFrameRect.cornerRadius * 2)); frame_g.endFill(); _labelObj = new TextField(); _labelObj.x = calcX(_labelRect.x); _labelObj.y = calcY(_labelRect.y); _labelObj.width = _labelRect.width; _labelObj.height = _labelRect.height; _labelObj.selectable = false; _labelObj.defaultTextFormat = labelFormat; addChild(_labelObj); _percentObj = new TextField(); _percentObj.x = calcX(_percentRect.x); _percentObj.y = calcY(_percentRect.y); _percentObj.width = _percentRect.width; _percentObj.height = _percentRect.height; _percentObj.selectable = false; _percentObj.defaultTextFormat = percentFormat; addChild(_percentObj); var ds:RectangularDropShadow = new RectangularDropShadow(); ds.color = 0; ds.angle = 90; ds.alpha = 0.6; ds.distance = 2; ds.tlRadius = (ds.trRadius = (ds.blRadius = (ds.brRadius = _borderRect.cornerRadius))); ds.drawShadow(g, calcX(_borderRect.x), calcY(_borderRect.y), _borderRect.width, _borderRect.height); g.lineStyle(1, 0xFFFFFF, 0.3); g.moveTo((calcX(_borderRect.x) + _borderRect.cornerRadius), calcY(_borderRect.y)); g.lineTo(((calcX(_borderRect.x) - _borderRect.cornerRadius) + _borderRect.width), calcY(_borderRect.y)); } private function draw():void{ var percentage:Number; if (_startedLoading){ if (!_startedInit){ percentage = Math.round(((getPercentLoaded(_value, _maximum) * DOWNLOAD_PERCENTAGE) / 100)); } else { percentage = Math.round((((getPercentLoaded(_value, _maximum) * (100 - DOWNLOAD_PERCENTAGE)) / 100) + DOWNLOAD_PERCENTAGE)); }; } else { percentage = getPercentLoaded(_value, _maximum); }; if (_labelObj){ _labelObj.text = _label; }; if (_percentObj){ if (!_showPercentage){ _percentObj.visible = false; _percentObj.text = ""; } else { _percentObj.text = (String(percentage) + "%"); }; }; if (((_barSprite) && (_barFrameSprite))){ if (!_showProgressBar){ _barSprite.visible = false; _barFrameSprite.visible = false; } else { drawProgressBar(percentage); }; }; } private function timerHandler(event:Event=null):void{ dispatchEvent(new Event(Event.COMPLETE)); } private function hide():void{ } public function get backgroundSize():String{ return (_backgroundSize); } protected function center(width:Number, height:Number):void{ _xOffset = Math.floor(((width - _borderRect.width) / 2)); _yOffset = Math.floor(((height - _borderRect.height) / 2)); } protected function progressHandler(event:ProgressEvent):void{ var loaded:uint = event.bytesLoaded; var total:uint = event.bytesTotal; var elapsedTime:int = (getTimer() - _startTime); if (((_showingDisplay) || (showDisplayForDownloading(elapsedTime, event)))){ if (!_startedLoading){ show(); label = downloadingLabel; _startedLoading = true; }; setProgress(event.bytesLoaded, event.bytesTotal); }; } protected function initProgressHandler(event:Event):void{ var loaded:Number; var elapsedTime:int = (getTimer() - _startTime); _initProgressCount++; if (((!(_showingDisplay)) && (showDisplayForInit(elapsedTime, _initProgressCount)))){ _displayStartCount = _initProgressCount; show(); } else { if (_showingDisplay){ if (!_startedInit){ _startedInit = true; label = initializingLabel; }; loaded = ((100 * _initProgressCount) / (_initProgressTotal - _displayStartCount)); setProgress(loaded, 100); }; }; } protected function set downloadingLabel(value:String):void{ _downloadingLabel = value; } public function get stageWidth():Number{ return (_stageWidth); } protected function get showPercentage():Boolean{ return (_showPercentage); } override public function get visible():Boolean{ return (_visible); } public function set stageHeight(value:Number):void{ _stageHeight = value; } public function initialize():void{ _startTime = getTimer(); center(stageWidth, stageHeight); } protected function rslProgressHandler(event:RSLEvent):void{ } protected function get barRect():RoundedRectangle{ return (new RoundedRectangle(14, 39, 154, 6, 0)); } protected function get percentFormat():TextFormat{ var tf:TextFormat = new TextFormat(); tf.align = "right"; tf.color = 0; tf.font = "Verdana"; tf.size = 10; return (tf); } public function set backgroundImage(value:Object):void{ _backgroundImage = value; } private function calcX(base:Number):Number{ return ((base + _xOffset)); } private function calcY(base:Number):Number{ return ((base + _yOffset)); } public function set backgroundAlpha(value:Number):void{ _backgroundAlpha = value; } private function initCompleteHandler(event:Event):void{ var timer:Timer; var elapsedTime:int = (getTimer() - _displayTime); if (((_showingDisplay) && ((elapsedTime < MINIMUM_DISPLAY_TIME)))){ timer = new Timer((MINIMUM_DISPLAY_TIME - elapsedTime), 1); timer.addEventListener(TimerEvent.TIMER, timerHandler); timer.start(); } else { timerHandler(); }; } public function set backgroundColor(value:uint):void{ _backgroundColor = value; } private function initBackgroundImage(image:DisplayObject):void{ var sX:Number; var sY:Number; var scale:Number; addChildAt(image, 0); var backgroundImageWidth:Number = image.width; var backgroundImageHeight:Number = image.height; var percentage:Number = calcBackgroundSize(); if (isNaN(percentage)){ sX = 1; sY = 1; } else { scale = (percentage * 0.01); sX = ((scale * stageWidth) / backgroundImageWidth); sY = ((scale * stageHeight) / backgroundImageHeight); }; image.scaleX = sX; image.scaleY = sY; var offsetX:Number = Math.round((0.5 * (stageWidth - (backgroundImageWidth * sX)))); var offsetY:Number = Math.round((0.5 * (stageHeight - (backgroundImageHeight * sY)))); image.x = offsetX; image.y = offsetY; if (!isNaN(backgroundAlpha)){ image.alpha = backgroundAlpha; }; } public function set backgroundSize(value:String):void{ _backgroundSize = value; } protected function showDisplayForInit(elapsedTime:int, count:int):Boolean{ return ((((elapsedTime > 300)) && ((count == 2)))); } protected function get downloadingLabel():String{ return (_downloadingLabel); } private function loader_completeHandler(event:Event):void{ var target:DisplayObject = DisplayObject(LoaderInfo(event.target).loader); initBackgroundImage(target); } protected function setProgress(completed:Number, total:Number):void{ if (((((((!(isNaN(completed))) && (!(isNaN(total))))) && ((completed >= 0)))) && ((total > 0)))){ _value = Number(completed); _maximum = Number(total); draw(); }; } public function get stageHeight():Number{ return (_stageHeight); } public function get backgroundImage():Object{ return (_backgroundImage); } public function get backgroundAlpha():Number{ if (!isNaN(_backgroundAlpha)){ return (_backgroundAlpha); }; return (1); } private function drawProgressBar(percentage:Number):void{ var barY2:Number; var g:Graphics = _barSprite.graphics; g.clear(); var colors:Array = [0xFFFFFF, 0xFFFFFF]; var ratios:Array = [0, 0xFF]; var matrix:Matrix = new Matrix(); var barWidth:Number = ((_barRect.width * percentage) / 100); var barWidthSplit:Number = (barWidth / 2); var barHeight:Number = (_barRect.height - 4); var barX:Number = calcX(_barRect.x); var barY:Number = (calcY(_barRect.y) + 2); matrix.createGradientBox(barWidthSplit, barHeight, 0, barX, barY); g.beginGradientFill(GradientType.LINEAR, colors, [0.39, 0.85], ratios, matrix); g.drawRect(barX, barY, barWidthSplit, barHeight); matrix.createGradientBox(barWidthSplit, barHeight, 0, (barX + barWidthSplit), barY); g.beginGradientFill(GradientType.LINEAR, colors, [0.85, 1], ratios, matrix); g.drawRect((barX + barWidthSplit), barY, barWidthSplit, barHeight); barWidthSplit = (barWidth / 3); barHeight = _barRect.height; barY = calcY(_barRect.y); barY2 = ((barY + barHeight) - 1); matrix.createGradientBox(barWidthSplit, barHeight, 0, barX, barY); g.beginGradientFill(GradientType.LINEAR, colors, [0.05, 0.15], ratios, matrix); g.drawRect(barX, barY, barWidthSplit, 1); g.drawRect(barX, barY2, barWidthSplit, 1); matrix.createGradientBox(barWidthSplit, barHeight, 0, (barX + barWidthSplit), barY); g.beginGradientFill(GradientType.LINEAR, colors, [0.15, 0.25], ratios, matrix); g.drawRect((barX + barWidthSplit), barY, barWidthSplit, 1); g.drawRect((barX + barWidthSplit), barY2, barWidthSplit, 1); matrix.createGradientBox(barWidthSplit, barHeight, 0, (barX + (barWidthSplit * 2)), barY); g.beginGradientFill(GradientType.LINEAR, colors, [0.25, 0.1], ratios, matrix); g.drawRect((barX + (barWidthSplit * 2)), barY, barWidthSplit, 1); g.drawRect((barX + (barWidthSplit * 2)), barY2, barWidthSplit, 1); barWidthSplit = (barWidth / 3); barHeight = _barRect.height; barY = (calcY(_barRect.y) + 1); barY2 = ((calcY(_barRect.y) + barHeight) - 2); matrix.createGradientBox(barWidthSplit, barHeight, 0, barX, barY); g.beginGradientFill(GradientType.LINEAR, colors, [0.15, 0.3], ratios, matrix); g.drawRect(barX, barY, barWidthSplit, 1); g.drawRect(barX, barY2, barWidthSplit, 1); matrix.createGradientBox(barWidthSplit, barHeight, 0, (barX + barWidthSplit), barY); g.beginGradientFill(GradientType.LINEAR, colors, [0.3, 0.4], ratios, matrix); g.drawRect((barX + barWidthSplit), barY, barWidthSplit, 1); g.drawRect((barX + barWidthSplit), barY2, barWidthSplit, 1); matrix.createGradientBox(barWidthSplit, barHeight, 0, (barX + (barWidthSplit * 2)), barY); g.beginGradientFill(GradientType.LINEAR, colors, [0.4, 0.25], ratios, matrix); g.drawRect((barX + (barWidthSplit * 2)), barY, barWidthSplit, 1); g.drawRect((barX + (barWidthSplit * 2)), barY2, barWidthSplit, 1); } public function get backgroundColor():uint{ return (_backgroundColor); } public function set stageWidth(value:Number):void{ _stageWidth = value; } protected function completeHandler(event:Event):void{ } protected function set label(value:String):void{ if (!(value is Function)){ _label = value; }; draw(); } public function set preloader(value:Sprite):void{ _preloader = value; value.addEventListener(ProgressEvent.PROGRESS, progressHandler); value.addEventListener(Event.COMPLETE, completeHandler); value.addEventListener(RSLEvent.RSL_PROGRESS, rslProgressHandler); value.addEventListener(RSLEvent.RSL_COMPLETE, rslCompleteHandler); value.addEventListener(RSLEvent.RSL_ERROR, rslErrorHandler); value.addEventListener(FlexEvent.INIT_PROGRESS, initProgressHandler); value.addEventListener(FlexEvent.INIT_COMPLETE, initCompleteHandler); } protected function get label():String{ return (_label); } protected function get labelRect():Rectangle{ return (new Rectangle(14, 17, 100, 16)); } override public function set visible(value:Boolean):void{ if (((!(_visible)) && (value))){ show(); } else { if (((_visible) && (!(value)))){ hide(); }; }; _visible = value; } protected function get showLabel():Boolean{ return (_showLabel); } public static function get initializingLabel():String{ return (_initializingLabel); } public static function set initializingLabel(value:String):void{ _initializingLabel = value; } } }//package mx.preloaders import flash.display.*; import flash.text.*; import flash.system.*; class ErrorField extends Sprite { private const TEXT_MARGIN_PX:int = 10; private const MAX_WIDTH_INCHES:int = 6; private const MIN_WIDTH_INCHES:int = 2; private var downloadProgressBar:DownloadProgressBar; private function ErrorField(downloadProgressBar:DownloadProgressBar){ super(); this.downloadProgressBar = downloadProgressBar; } protected function get labelFormat():TextFormat{ var tf:TextFormat = new TextFormat(); tf.color = 0; tf.font = "Verdana"; tf.size = 10; return (tf); } public function show(errorText:String):void{ if ((((errorText == null)) || ((errorText.length == 0)))){ return; }; var screenWidth:Number = downloadProgressBar.stageWidth; var screenHeight:Number = downloadProgressBar.stageHeight; var textField:TextField = new TextField(); textField.autoSize = TextFieldAutoSize.LEFT; textField.multiline = true; textField.wordWrap = true; textField.background = true; textField.defaultTextFormat = labelFormat; textField.text = errorText; textField.width = Math.max((MIN_WIDTH_INCHES * Capabilities.screenDPI), (screenWidth - (TEXT_MARGIN_PX * 2))); textField.width = Math.min((MAX_WIDTH_INCHES * Capabilities.screenDPI), textField.width); textField.y = Math.max(0, ((screenHeight - TEXT_MARGIN_PX) - textField.height)); textField.x = ((screenWidth - textField.width) / 2); downloadProgressBar.parent.addChild(this); this.addChild(textField); } }
Section 223
//IPreloaderDisplay (mx.preloaders.IPreloaderDisplay) package mx.preloaders { import flash.display.*; import flash.events.*; public interface IPreloaderDisplay extends IEventDispatcher { function set backgroundAlpha(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\preloaders;IPreloaderDisplay.as:Number):void; function get stageHeight():Number; function get stageWidth():Number; function set backgroundColor(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\preloaders;IPreloaderDisplay.as:uint):void; function set preloader(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\preloaders;IPreloaderDisplay.as:Sprite):void; function get backgroundImage():Object; function get backgroundSize():String; function get backgroundAlpha():Number; function set stageHeight(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\preloaders;IPreloaderDisplay.as:Number):void; function get backgroundColor():uint; function set stageWidth(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\preloaders;IPreloaderDisplay.as:Number):void; function set backgroundImage(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\preloaders;IPreloaderDisplay.as:Object):void; function set backgroundSize(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\preloaders;IPreloaderDisplay.as:String):void; function initialize():void; } }//package mx.preloaders
Section 224
//Preloader (mx.preloaders.Preloader) package mx.preloaders { import flash.display.*; import mx.core.*; import flash.events.*; import mx.events.*; import flash.utils.*; public class Preloader extends Sprite { private var app:IEventDispatcher;// = null private var showDisplay:Boolean; private var timer:Timer; private var rslDone:Boolean;// = false private var displayClass:IPreloaderDisplay;// = null private var rslListLoader:RSLListLoader; mx_internal static const VERSION:String = "3.2.0.3958"; public function Preloader(){ super(); } private function getByteValues():Object{ var li:LoaderInfo = root.loaderInfo; var loaded:int = li.bytesLoaded; var total:int = li.bytesTotal; var n:int = (rslListLoader) ? rslListLoader.getItemCount() : 0; var i:int; while (i < n) { loaded = (loaded + rslListLoader.getItem(i).loaded); total = (total + rslListLoader.getItem(i).total); i++; }; return ({loaded:loaded, total:total}); } private function appProgressHandler(event:Event):void{ dispatchEvent(new FlexEvent(FlexEvent.INIT_PROGRESS)); } private function dispatchAppEndEvent(event:Object=null):void{ dispatchEvent(new FlexEvent(FlexEvent.INIT_COMPLETE)); if (!showDisplay){ displayClassCompleteHandler(null); }; } private function ioErrorHandler(event:IOErrorEvent):void{ } private function appCreationCompleteHandler(event:FlexEvent):void{ dispatchAppEndEvent(); } mx_internal function rslErrorHandler(event:ErrorEvent):void{ var index:int = rslListLoader.getIndex(); var item:RSLItem = rslListLoader.getItem(index); var rslEvent:RSLEvent = new RSLEvent(RSLEvent.RSL_ERROR); rslEvent.bytesLoaded = 0; rslEvent.bytesTotal = 0; rslEvent.rslIndex = index; rslEvent.rslTotal = rslListLoader.getItemCount(); rslEvent.url = item.urlRequest; rslEvent.errorText = decodeURI(event.text); dispatchEvent(rslEvent); } public function initialize(showDisplay:Boolean, displayClassName:Class, backgroundColor:uint, backgroundAlpha:Number, backgroundImage:Object, backgroundSize:String, displayWidth:Number, displayHeight:Number, libs:Array=null, sizes:Array=null, rslList:Array=null, resourceModuleURLs:Array=null):void{ var n:int; var i:int; var node:RSLItem; var resourceModuleNode:ResourceModuleRSLItem; if (((((!((libs == null))) || (!((sizes == null))))) && (!((rslList == null))))){ throw (new Error("RSLs may only be specified by using libs and sizes or rslList, not both.")); }; root.loaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); if (((libs) && ((libs.length > 0)))){ if (rslList == null){ rslList = []; }; n = libs.length; i = 0; while (i < n) { node = new RSLItem(libs[i]); rslList.push(node); i++; }; }; if (((resourceModuleURLs) && ((resourceModuleURLs.length > 0)))){ n = resourceModuleURLs.length; i = 0; while (i < n) { resourceModuleNode = new ResourceModuleRSLItem(resourceModuleURLs[i]); rslList.push(resourceModuleNode); i++; }; }; rslListLoader = new RSLListLoader(rslList); this.showDisplay = showDisplay; timer = new Timer(10); timer.addEventListener(TimerEvent.TIMER, timerHandler); timer.start(); if (showDisplay){ displayClass = new (displayClassName); displayClass.addEventListener(Event.COMPLETE, displayClassCompleteHandler); addChild(DisplayObject(displayClass)); displayClass.backgroundColor = backgroundColor; displayClass.backgroundAlpha = backgroundAlpha; displayClass.backgroundImage = backgroundImage; displayClass.backgroundSize = backgroundSize; displayClass.stageWidth = displayWidth; displayClass.stageHeight = displayHeight; displayClass.initialize(); displayClass.preloader = this; }; if (rslListLoader.getItemCount() > 0){ rslListLoader.load(mx_internal::rslProgressHandler, mx_internal::rslCompleteHandler, mx_internal::rslErrorHandler, mx_internal::rslErrorHandler, mx_internal::rslErrorHandler); } else { rslDone = true; }; } mx_internal function rslProgressHandler(event:ProgressEvent):void{ var index:int = rslListLoader.getIndex(); var item:RSLItem = rslListLoader.getItem(index); var rslEvent:RSLEvent = new RSLEvent(RSLEvent.RSL_PROGRESS); rslEvent.bytesLoaded = event.bytesLoaded; rslEvent.bytesTotal = event.bytesTotal; rslEvent.rslIndex = index; rslEvent.rslTotal = rslListLoader.getItemCount(); rslEvent.url = item.urlRequest; dispatchEvent(rslEvent); } public function registerApplication(app:IEventDispatcher):void{ app.addEventListener("validatePropertiesComplete", appProgressHandler); app.addEventListener("validateSizeComplete", appProgressHandler); app.addEventListener("validateDisplayListComplete", appProgressHandler); app.addEventListener(FlexEvent.CREATION_COMPLETE, appCreationCompleteHandler); this.app = app; } mx_internal function rslCompleteHandler(event:Event):void{ var index:int = rslListLoader.getIndex(); var item:RSLItem = rslListLoader.getItem(index); var rslEvent:RSLEvent = new RSLEvent(RSLEvent.RSL_COMPLETE); rslEvent.bytesLoaded = item.total; rslEvent.bytesTotal = item.total; rslEvent.rslIndex = index; rslEvent.rslTotal = rslListLoader.getItemCount(); rslEvent.url = item.urlRequest; dispatchEvent(rslEvent); rslDone = ((index + 1) == rslEvent.rslTotal); } private function timerHandler(event:TimerEvent):void{ if (!root){ return; }; var bytes:Object = getByteValues(); var loaded:int = bytes.loaded; var total:int = bytes.total; dispatchEvent(new ProgressEvent(ProgressEvent.PROGRESS, false, false, loaded, total)); if (((rslDone) && ((((((((loaded >= total)) && ((total > 0)))) || ((((total == 0)) && ((loaded > 0)))))) || ((((((root is MovieClip)) && ((MovieClip(root).totalFrames > 2)))) && ((MovieClip(root).framesLoaded >= 2)))))))){ timer.removeEventListener(TimerEvent.TIMER, timerHandler); timer.reset(); dispatchEvent(new Event(Event.COMPLETE)); dispatchEvent(new FlexEvent(FlexEvent.INIT_PROGRESS)); }; } private function displayClassCompleteHandler(event:Event):void{ if (displayClass){ displayClass.removeEventListener(Event.COMPLETE, displayClassCompleteHandler); }; if (root){ root.loaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); }; if (app){ app.removeEventListener("validatePropertiesComplete", appProgressHandler); app.removeEventListener("validateSizeComplete", appProgressHandler); app.removeEventListener("validateDisplayListComplete", appProgressHandler); app.removeEventListener(FlexEvent.CREATION_COMPLETE, appCreationCompleteHandler); app = null; }; dispatchEvent(new FlexEvent(FlexEvent.PRELOADER_DONE)); } } }//package mx.preloaders
Section 225
//IResourceBundle (mx.resources.IResourceBundle) package mx.resources { public interface IResourceBundle { function get content():Object; function get locale():String; function get bundleName():String; } }//package mx.resources
Section 226
//IResourceManager (mx.resources.IResourceManager) package mx.resources { import flash.events.*; import flash.system.*; public interface IResourceManager extends IEventDispatcher { function loadResourceModule(_arg1:String, _arg2:Boolean=true, _arg3:ApplicationDomain=null, _arg4:SecurityDomain=null):IEventDispatcher; function getBoolean(_arg1:String, _arg2:String, _arg3:String=null):Boolean; function getClass(_arg1:String, _arg2:String, _arg3:String=null):Class; function getLocales():Array; function removeResourceBundlesForLocale(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\resources;IResourceManager.as:String):void; function getResourceBundle(_arg1:String, _arg2:String):IResourceBundle; function get localeChain():Array; function getInt(_arg1:String, _arg2:String, _arg3:String=null):int; function update():void; function set localeChain(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\resources;IResourceManager.as:Array):void; function getUint(_arg1:String, _arg2:String, _arg3:String=null):uint; function addResourceBundle(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\resources;IResourceManager.as:IResourceBundle):void; function getStringArray(_arg1:String, _arg2:String, _arg3:String=null):Array; function getBundleNamesForLocale(:String):Array; function removeResourceBundle(_arg1:String, _arg2:String):void; function getObject(_arg1:String, _arg2:String, _arg3:String=null); function getString(_arg1:String, _arg2:String, _arg3:Array=null, _arg4:String=null):String; function installCompiledResourceBundles(_arg1:ApplicationDomain, _arg2:Array, _arg3:Array):void; function unloadResourceModule(_arg1:String, _arg2:Boolean=true):void; function getPreferredLocaleChain():Array; function findResourceBundleWithResource(_arg1:String, _arg2:String):IResourceBundle; function initializeLocaleChain(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\resources;IResourceManager.as:Array):void; function getNumber(_arg1:String, _arg2:String, _arg3:String=null):Number; } }//package mx.resources
Section 227
//IResourceModule (mx.resources.IResourceModule) package mx.resources { public interface IResourceModule { function get resourceBundles():Array; } }//package mx.resources
Section 228
//LocaleSorter (mx.resources.LocaleSorter) package mx.resources { import mx.core.*; public class LocaleSorter { mx_internal static const VERSION:String = "3.2.0.3958"; public function LocaleSorter(){ super(); } private static function normalizeLocale(locale:String):String{ return (locale.toLowerCase().replace(/-/g, "_")); } public static function sortLocalesByPreference(appLocales:Array, systemPreferences:Array, ultimateFallbackLocale:String=null, addAll:Boolean=false):Array{ var result:Array; var hasLocale:Object; var i:int; var j:int; var k:int; var l:int; var locale:String; var plocale:LocaleID; var appLocales = appLocales; var systemPreferences = systemPreferences; var ultimateFallbackLocale = ultimateFallbackLocale; var addAll = addAll; var promote:Function = function (locale:String):void{ if (typeof(hasLocale[locale]) != "undefined"){ result.push(appLocales[hasLocale[locale]]); delete hasLocale[locale]; }; }; result = []; hasLocale = {}; var locales:Array = trimAndNormalize(appLocales); var preferenceLocales:Array = trimAndNormalize(systemPreferences); addUltimateFallbackLocale(preferenceLocales, ultimateFallbackLocale); j = 0; while (j < locales.length) { hasLocale[locales[j]] = j; j = (j + 1); }; i = 0; l = preferenceLocales.length; while (i < l) { plocale = LocaleID.fromString(preferenceLocales[i]); promote(preferenceLocales[i]); promote(plocale.toString()); while (plocale.transformToParent()) { promote(plocale.toString()); }; plocale = LocaleID.fromString(preferenceLocales[i]); j = 0; while (j < l) { locale = preferenceLocales[j]; if (plocale.isSiblingOf(LocaleID.fromString(locale))){ promote(locale); }; j = (j + 1); }; j = 0; k = locales.length; while (j < k) { locale = locales[j]; if (plocale.isSiblingOf(LocaleID.fromString(locale))){ promote(locale); }; j = (j + 1); }; i = (i + 1); }; if (addAll){ j = 0; k = locales.length; while (j < k) { promote(locales[j]); j = (j + 1); }; }; return (result); } private static function addUltimateFallbackLocale(preferenceLocales:Array, ultimateFallbackLocale:String):void{ var locale:String; if (((!((ultimateFallbackLocale == null))) && (!((ultimateFallbackLocale == ""))))){ locale = normalizeLocale(ultimateFallbackLocale); if (preferenceLocales.indexOf(locale) == -1){ preferenceLocales.push(locale); }; }; } private static function trimAndNormalize(list:Array):Array{ var resultList:Array = []; var i:int; while (i < list.length) { resultList.push(normalizeLocale(list[i])); i++; }; return (resultList); } } }//package mx.resources class LocaleID { private var privateLangs:Boolean;// = false private var script:String;// = "" private var variants:Array; private var privates:Array; private var extensions:Object; private var lang:String;// = "" private var region:String;// = "" private var extended_langs:Array; public static const STATE_PRIMARY_LANGUAGE:int = 0; public static const STATE_REGION:int = 3; public static const STATE_EXTENDED_LANGUAGES:int = 1; public static const STATE_EXTENSIONS:int = 5; public static const STATE_SCRIPT:int = 2; public static const STATE_VARIANTS:int = 4; public static const STATE_PRIVATES:int = 6; private function LocaleID(){ extended_langs = []; variants = []; extensions = {}; privates = []; super(); } public function equals(locale:LocaleID):Boolean{ return ((toString() == locale.toString())); } public function canonicalize():void{ var i:String; for (i in extensions) { if (extensions.hasOwnProperty(i)){ if (extensions[i].length == 0){ delete extensions[i]; } else { extensions[i] = extensions[i].sort(); }; }; }; extended_langs = extended_langs.sort(); variants = variants.sort(); privates = privates.sort(); if (script == ""){ script = LocaleRegistry.getScriptByLang(lang); }; if ((((script == "")) && (!((region == ""))))){ script = LocaleRegistry.getScriptByLangAndRegion(lang, region); }; if ((((region == "")) && (!((script == ""))))){ region = LocaleRegistry.getDefaultRegionForLangAndScript(lang, script); }; } public function toString():String{ var i:String; var stack:Array = [lang]; Array.prototype.push.apply(stack, extended_langs); if (script != ""){ stack.push(script); }; if (region != ""){ stack.push(region); }; Array.prototype.push.apply(stack, variants); for (i in extensions) { if (extensions.hasOwnProperty(i)){ stack.push(i); Array.prototype.push.apply(stack, extensions[i]); }; }; if (privates.length > 0){ stack.push("x"); Array.prototype.push.apply(stack, privates); }; return (stack.join("_")); } public function isSiblingOf(other:LocaleID):Boolean{ return ((((lang == other.lang)) && ((script == other.script)))); } public function transformToParent():Boolean{ var i:String; var lastExtension:Array; var defaultRegion:String; if (privates.length > 0){ privates.splice((privates.length - 1), 1); return (true); }; var lastExtensionName:String; for (i in extensions) { if (extensions.hasOwnProperty(i)){ lastExtensionName = i; }; }; if (lastExtensionName){ lastExtension = extensions[lastExtensionName]; if (lastExtension.length == 1){ delete extensions[lastExtensionName]; return (true); }; lastExtension.splice((lastExtension.length - 1), 1); return (true); }; if (variants.length > 0){ variants.splice((variants.length - 1), 1); return (true); }; if (script != ""){ if (LocaleRegistry.getScriptByLang(lang) != ""){ script = ""; return (true); }; if (region == ""){ defaultRegion = LocaleRegistry.getDefaultRegionForLangAndScript(lang, script); if (defaultRegion != ""){ region = defaultRegion; script = ""; return (true); }; }; }; if (region != ""){ if (!(((script == "")) && ((LocaleRegistry.getScriptByLang(lang) == "")))){ region = ""; return (true); }; }; if (extended_langs.length > 0){ extended_langs.splice((extended_langs.length - 1), 1); return (true); }; return (false); } public static function fromString(str:String):LocaleID{ var last_extension:Array; var subtag:String; var subtag_length:int; var firstChar:String; var localeID:LocaleID = new (LocaleID); var state:int = STATE_PRIMARY_LANGUAGE; var subtags:Array = str.replace(/-/g, "_").split("_"); var i:int; var l:int = subtags.length; while (i < l) { subtag = subtags[i].toLowerCase(); if (state == STATE_PRIMARY_LANGUAGE){ if (subtag == "x"){ localeID.privateLangs = true; } else { if (subtag == "i"){ localeID.lang = (localeID.lang + "i-"); } else { localeID.lang = (localeID.lang + subtag); state = STATE_EXTENDED_LANGUAGES; }; }; } else { subtag_length = subtag.length; if (subtag_length == 0){ } else { firstChar = subtag.charAt(0).toLowerCase(); if ((((state <= STATE_EXTENDED_LANGUAGES)) && ((subtag_length == 3)))){ localeID.extended_langs.push(subtag); if (localeID.extended_langs.length == 3){ state = STATE_SCRIPT; }; } else { if ((((state <= STATE_SCRIPT)) && ((subtag_length == 4)))){ localeID.script = subtag; state = STATE_REGION; } else { if ((((state <= STATE_REGION)) && ((((subtag_length == 2)) || ((subtag_length == 3)))))){ localeID.region = subtag; state = STATE_VARIANTS; } else { if ((((state <= STATE_VARIANTS)) && ((((((((firstChar >= "a")) && ((firstChar <= "z")))) && ((subtag_length >= 5)))) || ((((((firstChar >= "0")) && ((firstChar <= "9")))) && ((subtag_length >= 4)))))))){ localeID.variants.push(subtag); state = STATE_VARIANTS; } else { if ((((state < STATE_PRIVATES)) && ((subtag_length == 1)))){ if (subtag == "x"){ state = STATE_PRIVATES; last_extension = localeID.privates; } else { state = STATE_EXTENSIONS; last_extension = ((localeID.extensions[subtag]) || ([])); localeID.extensions[subtag] = last_extension; }; } else { if (state >= STATE_EXTENSIONS){ last_extension.push(subtag); }; }; }; }; }; }; }; }; i++; }; localeID.canonicalize(); return (localeID); } } class LocaleRegistry { private static const SCRIPT_ID_BY_LANG:Object = {ab:5, af:1, am:2, ar:3, as:4, ay:1, be:5, bg:5, bn:4, bs:1, ca:1, ch:1, cs:1, cy:1, da:1, de:1, dv:6, dz:7, el:8, en:1, eo:1, es:1, et:1, eu:1, fa:3, fi:1, fj:1, fo:1, fr:1, frr:1, fy:1, ga:1, gl:1, gn:1, gu:9, gv:1, he:10, hi:11, hr:1, ht:1, hu:1, hy:12, id:1, in:1, is:1, it:1, iw:10, ja:13, ka:14, kk:5, kl:1, km:15, kn:16, ko:17, la:1, lb:1, ln:1, lo:18, lt:1, lv:1, mg:1, mh:1, mk:5, ml:19, mo:1, mr:11, ms:1, mt:1, my:20, na:1, nb:1, nd:1, ne:11, nl:1, nn:1, no:1, nr:1, ny:1, om:1, or:21, pa:22, pl:1, ps:3, pt:1, qu:1, rn:1, ro:1, ru:5, rw:1, sg:1, si:23, sk:1, sl:1, sm:1, so:1, sq:1, ss:1, st:1, sv:1, sw:1, ta:24, te:25, th:26, ti:2, tl:1, tn:1, to:1, tr:1, ts:1, uk:5, ur:3, ve:1, vi:1, wo:1, xh:1, yi:10, zu:1, cpe:1, dsb:1, frs:1, gsw:1, hsb:1, kok:11, mai:11, men:1, nds:1, niu:1, nqo:27, nso:1, son:1, tem:1, tkl:1, tmh:1, tpi:1, tvl:1, zbl:28}; private static const SCRIPTS:Array = ["", "latn", "ethi", "arab", "beng", "cyrl", "thaa", "tibt", "grek", "gujr", "hebr", "deva", "armn", "jpan", "geor", "khmr", "knda", "kore", "laoo", "mlym", "mymr", "orya", "guru", "sinh", "taml", "telu", "thai", "nkoo", "blis", "hans", "hant", "mong", "syrc"]; private static const DEFAULT_REGION_BY_LANG_AND_SCRIPT:Object = {bg:{5:"bg"}, ca:{1:"es"}, zh:{30:"tw", 29:"cn"}, cs:{1:"cz"}, da:{1:"dk"}, de:{1:"de"}, el:{8:"gr"}, en:{1:"us"}, es:{1:"es"}, fi:{1:"fi"}, fr:{1:"fr"}, he:{10:"il"}, hu:{1:"hu"}, is:{1:"is"}, it:{1:"it"}, ja:{13:"jp"}, ko:{17:"kr"}, nl:{1:"nl"}, nb:{1:"no"}, pl:{1:"pl"}, pt:{1:"br"}, ro:{1:"ro"}, ru:{5:"ru"}, hr:{1:"hr"}, sk:{1:"sk"}, sq:{1:"al"}, sv:{1:"se"}, th:{26:"th"}, tr:{1:"tr"}, ur:{3:"pk"}, id:{1:"id"}, uk:{5:"ua"}, be:{5:"by"}, sl:{1:"si"}, et:{1:"ee"}, lv:{1:"lv"}, lt:{1:"lt"}, fa:{3:"ir"}, vi:{1:"vn"}, hy:{12:"am"}, az:{1:"az", 5:"az"}, eu:{1:"es"}, mk:{5:"mk"}, af:{1:"za"}, ka:{14:"ge"}, fo:{1:"fo"}, hi:{11:"in"}, ms:{1:"my"}, kk:{5:"kz"}, ky:{5:"kg"}, sw:{1:"ke"}, uz:{1:"uz", 5:"uz"}, tt:{5:"ru"}, pa:{22:"in"}, gu:{9:"in"}, ta:{24:"in"}, te:{25:"in"}, kn:{16:"in"}, mr:{11:"in"}, sa:{11:"in"}, mn:{5:"mn"}, gl:{1:"es"}, kok:{11:"in"}, syr:{32:"sy"}, dv:{6:"mv"}, nn:{1:"no"}, sr:{1:"cs", 5:"cs"}, cy:{1:"gb"}, mi:{1:"nz"}, mt:{1:"mt"}, quz:{1:"bo"}, tn:{1:"za"}, xh:{1:"za"}, zu:{1:"za"}, nso:{1:"za"}, se:{1:"no"}, smj:{1:"no"}, sma:{1:"no"}, sms:{1:"fi"}, smn:{1:"fi"}, bs:{1:"ba"}}; private static const SCRIPT_BY_ID:Object = {latn:1, ethi:2, arab:3, beng:4, cyrl:5, thaa:6, tibt:7, grek:8, gujr:9, hebr:10, deva:11, armn:12, jpan:13, geor:14, khmr:15, knda:16, kore:17, laoo:18, mlym:19, mymr:20, orya:21, guru:22, sinh:23, taml:24, telu:25, thai:26, nkoo:27, blis:28, hans:29, hant:30, mong:31, syrc:32}; private static const SCRIPT_ID_BY_LANG_AND_REGION:Object = {zh:{cn:29, sg:29, tw:30, hk:30, mo:30}, mn:{cn:31, sg:5}, pa:{pk:3, in:22}, ha:{gh:1, ne:1}}; private function LocaleRegistry(){ super(); } public static function getScriptByLangAndRegion(lang:String, region:String):String{ var langRegions:Object = SCRIPT_ID_BY_LANG_AND_REGION[lang]; if (langRegions == null){ return (""); }; var scriptID:Object = langRegions[region]; if (scriptID == null){ return (""); }; return (SCRIPTS[int(scriptID)].toLowerCase()); } public static function getScriptByLang(lang:String):String{ var scriptID:Object = SCRIPT_ID_BY_LANG[lang]; if (scriptID == null){ return (""); }; return (SCRIPTS[int(scriptID)].toLowerCase()); } public static function getDefaultRegionForLangAndScript(lang:String, script:String):String{ var langObj:Object = DEFAULT_REGION_BY_LANG_AND_SCRIPT[lang]; var scriptID:Object = SCRIPT_BY_ID[script]; if ((((langObj == null)) || ((scriptID == null)))){ return (""); }; return (((langObj[int(scriptID)]) || (""))); } }
Section 229
//ResourceBundle (mx.resources.ResourceBundle) package mx.resources { import mx.core.*; import flash.system.*; import mx.utils.*; public class ResourceBundle implements IResourceBundle { mx_internal var _locale:String; private var _content:Object; mx_internal var _bundleName:String; mx_internal static const VERSION:String = "3.2.0.3958"; mx_internal static var backupApplicationDomain:ApplicationDomain; mx_internal static var locale:String; public function ResourceBundle(locale:String=null, bundleName:String=null){ _content = {}; super(); mx_internal::_locale = locale; mx_internal::_bundleName = bundleName; _content = getContent(); } protected function getContent():Object{ return ({}); } public function getString(key:String):String{ return (String(_getObject(key))); } public function get content():Object{ return (_content); } public function getBoolean(key:String, defaultValue:Boolean=true):Boolean{ var temp:String = _getObject(key).toLowerCase(); if (temp == "false"){ return (false); }; if (temp == "true"){ return (true); }; return (defaultValue); } public function getStringArray(key:String):Array{ var array:Array = _getObject(key).split(","); var n:int = array.length; var i:int; while (i < n) { array[i] = StringUtil.trim(array[i]); i++; }; return (array); } public function getObject(key:String):Object{ return (_getObject(key)); } private function _getObject(key:String):Object{ var value:Object = content[key]; if (!value){ throw (new Error(((("Key " + key) + " was not found in resource bundle ") + bundleName))); }; return (value); } public function get locale():String{ return (mx_internal::_locale); } public function get bundleName():String{ return (mx_internal::_bundleName); } public function getNumber(key:String):Number{ return (Number(_getObject(key))); } private static function getClassByName(name:String, domain:ApplicationDomain):Class{ var c:Class; if (domain.hasDefinition(name)){ c = (domain.getDefinition(name) as Class); }; return (c); } public static function getResourceBundle(baseName:String, currentDomain:ApplicationDomain=null):ResourceBundle{ var className:String; var bundleClass:Class; var bundleObj:Object; var bundle:ResourceBundle; if (!currentDomain){ currentDomain = ApplicationDomain.currentDomain; }; className = (((mx_internal::locale + "$") + baseName) + "_properties"); bundleClass = getClassByName(className, currentDomain); if (!bundleClass){ className = (baseName + "_properties"); bundleClass = getClassByName(className, currentDomain); }; if (!bundleClass){ className = baseName; bundleClass = getClassByName(className, currentDomain); }; if (((!(bundleClass)) && (mx_internal::backupApplicationDomain))){ className = (baseName + "_properties"); bundleClass = getClassByName(className, mx_internal::backupApplicationDomain); if (!bundleClass){ className = baseName; bundleClass = getClassByName(className, mx_internal::backupApplicationDomain); }; }; if (bundleClass){ bundleObj = new (bundleClass); if ((bundleObj is ResourceBundle)){ bundle = ResourceBundle(bundleObj); return (bundle); }; }; throw (new Error(("Could not find resource bundle " + baseName))); } } }//package mx.resources
Section 230
//ResourceManager (mx.resources.ResourceManager) package mx.resources { import mx.core.*; public class ResourceManager { mx_internal static const VERSION:String = "3.2.0.3958"; private static var implClassDependency:ResourceManagerImpl; private static var instance:IResourceManager; public function ResourceManager(){ super(); } public static function getInstance():IResourceManager{ if (!instance){ instance = IResourceManager(Singleton.getInstance("mx.resources::IResourceManager")); //unresolved jump var _slot1 = e; instance = new ResourceManagerImpl(); }; return (instance); } } }//package mx.resources
Section 231
//ResourceManagerImpl (mx.resources.ResourceManagerImpl) package mx.resources { import mx.core.*; import flash.events.*; import mx.events.*; import flash.system.*; import mx.modules.*; import flash.utils.*; import mx.utils.*; public class ResourceManagerImpl extends EventDispatcher implements IResourceManager { private var resourceModules:Object; private var initializedForNonFrameworkApp:Boolean;// = false private var localeMap:Object; private var _localeChain:Array; mx_internal static const VERSION:String = "3.2.0.3958"; private static var instance:IResourceManager; public function ResourceManagerImpl(){ localeMap = {}; resourceModules = {}; super(); } public function get localeChain():Array{ return (_localeChain); } public function set localeChain(value:Array):void{ _localeChain = value; update(); } public function getStringArray(bundleName:String, resourceName:String, locale:String=null):Array{ var resourceBundle:IResourceBundle = findBundle(bundleName, resourceName, locale); if (!resourceBundle){ return (null); }; var value:* = resourceBundle.content[resourceName]; var array:Array = String(value).split(","); var n:int = array.length; var i:int; while (i < n) { array[i] = StringUtil.trim(array[i]); i++; }; return (array); } mx_internal function installCompiledResourceBundle(applicationDomain:ApplicationDomain, locale:String, bundleName:String):void{ var packageName:String; var localName:String = bundleName; var colonIndex:int = bundleName.indexOf(":"); if (colonIndex != -1){ packageName = bundleName.substring(0, colonIndex); localName = bundleName.substring((colonIndex + 1)); }; if (getResourceBundle(locale, bundleName)){ return; }; var resourceBundleClassName = (((locale + "$") + localName) + "_properties"); if (packageName != null){ resourceBundleClassName = ((packageName + ".") + resourceBundleClassName); }; var bundleClass:Class; if (applicationDomain.hasDefinition(resourceBundleClassName)){ bundleClass = Class(applicationDomain.getDefinition(resourceBundleClassName)); }; if (!bundleClass){ resourceBundleClassName = bundleName; if (applicationDomain.hasDefinition(resourceBundleClassName)){ bundleClass = Class(applicationDomain.getDefinition(resourceBundleClassName)); }; }; if (!bundleClass){ resourceBundleClassName = (bundleName + "_properties"); if (applicationDomain.hasDefinition(resourceBundleClassName)){ bundleClass = Class(applicationDomain.getDefinition(resourceBundleClassName)); }; }; if (!bundleClass){ throw (new Error((((("Could not find compiled resource bundle '" + bundleName) + "' for locale '") + locale) + "'."))); }; var resourceBundle:ResourceBundle = ResourceBundle(new (bundleClass)); resourceBundle.mx_internal::_locale = locale; resourceBundle.mx_internal::_bundleName = bundleName; addResourceBundle(resourceBundle); } public function getString(bundleName:String, resourceName:String, parameters:Array=null, locale:String=null):String{ var resourceBundle:IResourceBundle = findBundle(bundleName, resourceName, locale); if (!resourceBundle){ return (null); }; var value:String = String(resourceBundle.content[resourceName]); if (parameters){ value = StringUtil.substitute(value, parameters); }; return (value); } public function loadResourceModule(url:String, updateFlag:Boolean=true, applicationDomain:ApplicationDomain=null, securityDomain:SecurityDomain=null):IEventDispatcher{ var moduleInfo:IModuleInfo; var resourceEventDispatcher:ResourceEventDispatcher; var timer:Timer; var timerHandler:Function; var url = url; var updateFlag = updateFlag; var applicationDomain = applicationDomain; var securityDomain = securityDomain; moduleInfo = ModuleManager.getModule(url); resourceEventDispatcher = new ResourceEventDispatcher(moduleInfo); var readyHandler:Function = function (event:ModuleEvent):void{ var resourceModule:* = event.module.factory.create(); resourceModules[event.module.url].resourceModule = resourceModule; if (updateFlag){ update(); }; }; moduleInfo.addEventListener(ModuleEvent.READY, readyHandler, false, 0, true); var errorHandler:Function = function (event:ModuleEvent):void{ var resourceEvent:ResourceEvent; var message:String = ("Unable to load resource module from " + url); if (resourceEventDispatcher.willTrigger(ResourceEvent.ERROR)){ resourceEvent = new ResourceEvent(ResourceEvent.ERROR, event.bubbles, event.cancelable); resourceEvent.bytesLoaded = 0; resourceEvent.bytesTotal = 0; resourceEvent.errorText = message; resourceEventDispatcher.dispatchEvent(resourceEvent); } else { throw (new Error(message)); }; }; moduleInfo.addEventListener(ModuleEvent.ERROR, errorHandler, false, 0, true); resourceModules[url] = new ResourceModuleInfo(moduleInfo, readyHandler, errorHandler); timer = new Timer(0); timerHandler = function (event:TimerEvent):void{ timer.removeEventListener(TimerEvent.TIMER, timerHandler); timer.stop(); moduleInfo.load(applicationDomain, securityDomain); }; timer.addEventListener(TimerEvent.TIMER, timerHandler, false, 0, true); timer.start(); return (resourceEventDispatcher); } public function getLocales():Array{ var p:String; var locales:Array = []; for (p in localeMap) { locales.push(p); }; return (locales); } public function removeResourceBundlesForLocale(locale:String):void{ delete localeMap[locale]; } public function getResourceBundle(locale:String, bundleName:String):IResourceBundle{ var bundleMap:Object = localeMap[locale]; if (!bundleMap){ return (null); }; return (bundleMap[bundleName]); } private function dumpResourceModule(resourceModule):void{ var bundle:ResourceBundle; var p:String; for each (bundle in resourceModule.resourceBundles) { trace(bundle.locale, bundle.bundleName); for (p in bundle.content) { }; }; } public function addResourceBundle(resourceBundle:IResourceBundle):void{ var locale:String = resourceBundle.locale; var bundleName:String = resourceBundle.bundleName; if (!localeMap[locale]){ localeMap[locale] = {}; }; localeMap[locale][bundleName] = resourceBundle; } public function getObject(bundleName:String, resourceName:String, locale:String=null){ var resourceBundle:IResourceBundle = findBundle(bundleName, resourceName, locale); if (!resourceBundle){ return (undefined); }; return (resourceBundle.content[resourceName]); } public function getInt(bundleName:String, resourceName:String, locale:String=null):int{ var resourceBundle:IResourceBundle = findBundle(bundleName, resourceName, locale); if (!resourceBundle){ return (0); }; var value:* = resourceBundle.content[resourceName]; return (int(value)); } private function findBundle(bundleName:String, resourceName:String, locale:String):IResourceBundle{ supportNonFrameworkApps(); return (((locale)!=null) ? getResourceBundle(locale, bundleName) : findResourceBundleWithResource(bundleName, resourceName)); } private function supportNonFrameworkApps():void{ if (initializedForNonFrameworkApp){ return; }; initializedForNonFrameworkApp = true; if (getLocales().length > 0){ return; }; var applicationDomain:ApplicationDomain = ApplicationDomain.currentDomain; if (!applicationDomain.hasDefinition("_CompiledResourceBundleInfo")){ return; }; var c:Class = Class(applicationDomain.getDefinition("_CompiledResourceBundleInfo")); var locales:Array = c.compiledLocales; var bundleNames:Array = c.compiledResourceBundleNames; installCompiledResourceBundles(applicationDomain, locales, bundleNames); localeChain = locales; } public function getBundleNamesForLocale(locale:String):Array{ var p:String; var bundleNames:Array = []; for (p in localeMap[locale]) { bundleNames.push(p); }; return (bundleNames); } public function getPreferredLocaleChain():Array{ return (LocaleSorter.sortLocalesByPreference(getLocales(), getSystemPreferredLocales(), null, true)); } public function getNumber(bundleName:String, resourceName:String, locale:String=null):Number{ var resourceBundle:IResourceBundle = findBundle(bundleName, resourceName, locale); if (!resourceBundle){ return (NaN); }; var value:* = resourceBundle.content[resourceName]; return (Number(value)); } public function update():void{ dispatchEvent(new Event(Event.CHANGE)); } public function getClass(bundleName:String, resourceName:String, locale:String=null):Class{ var resourceBundle:IResourceBundle = findBundle(bundleName, resourceName, locale); if (!resourceBundle){ return (null); }; var value:* = resourceBundle.content[resourceName]; return ((value as Class)); } public function removeResourceBundle(locale:String, bundleName:String):void{ delete localeMap[locale][bundleName]; if (getBundleNamesForLocale(locale).length == 0){ delete localeMap[locale]; }; } public function initializeLocaleChain(compiledLocales:Array):void{ localeChain = LocaleSorter.sortLocalesByPreference(compiledLocales, getSystemPreferredLocales(), null, true); } public function findResourceBundleWithResource(bundleName:String, resourceName:String):IResourceBundle{ var locale:String; var bundleMap:Object; var bundle:ResourceBundle; if (!_localeChain){ return (null); }; var n:int = _localeChain.length; var i:int; while (i < n) { locale = localeChain[i]; bundleMap = localeMap[locale]; if (!bundleMap){ } else { bundle = bundleMap[bundleName]; if (!bundle){ } else { if ((resourceName in bundle.content)){ return (bundle); }; }; }; i++; }; return (null); } public function getUint(bundleName:String, resourceName:String, locale:String=null):uint{ var resourceBundle:IResourceBundle = findBundle(bundleName, resourceName, locale); if (!resourceBundle){ return (0); }; var value:* = resourceBundle.content[resourceName]; return (uint(value)); } private function getSystemPreferredLocales():Array{ var systemPreferences:Array; if (Capabilities["languages"]){ systemPreferences = Capabilities["languages"]; } else { systemPreferences = [Capabilities.language]; }; return (systemPreferences); } public function installCompiledResourceBundles(applicationDomain:ApplicationDomain, locales:Array, bundleNames:Array):void{ var locale:String; var j:int; var bundleName:String; var n:int = (locales) ? locales.length : 0; var m:int = (bundleNames) ? bundleNames.length : 0; var i:int; while (i < n) { locale = locales[i]; j = 0; while (j < m) { bundleName = bundleNames[j]; mx_internal::installCompiledResourceBundle(applicationDomain, locale, bundleName); j++; }; i++; }; } public function getBoolean(bundleName:String, resourceName:String, locale:String=null):Boolean{ var resourceBundle:IResourceBundle = findBundle(bundleName, resourceName, locale); if (!resourceBundle){ return (false); }; var value:* = resourceBundle.content[resourceName]; return ((String(value).toLowerCase() == "true")); } public function unloadResourceModule(url:String, update:Boolean=true):void{ throw (new Error("unloadResourceModule() is not yet implemented.")); } public static function getInstance():IResourceManager{ if (!instance){ instance = new (ResourceManagerImpl); }; return (instance); } } }//package mx.resources import flash.events.*; import mx.events.*; import mx.modules.*; class ResourceModuleInfo { public var resourceModule:IResourceModule; public var errorHandler:Function; public var readyHandler:Function; public var moduleInfo:IModuleInfo; private function ResourceModuleInfo(moduleInfo:IModuleInfo, readyHandler:Function, errorHandler:Function){ super(); this.moduleInfo = moduleInfo; this.readyHandler = readyHandler; this.errorHandler = errorHandler; } } class ResourceEventDispatcher extends EventDispatcher { private function ResourceEventDispatcher(moduleInfo:IModuleInfo){ super(); moduleInfo.addEventListener(ModuleEvent.ERROR, moduleInfo_errorHandler, false, 0, true); moduleInfo.addEventListener(ModuleEvent.PROGRESS, moduleInfo_progressHandler, false, 0, true); moduleInfo.addEventListener(ModuleEvent.READY, moduleInfo_readyHandler, false, 0, true); } private function moduleInfo_progressHandler(event:ModuleEvent):void{ var resourceEvent:ResourceEvent = new ResourceEvent(ResourceEvent.PROGRESS, event.bubbles, event.cancelable); resourceEvent.bytesLoaded = event.bytesLoaded; resourceEvent.bytesTotal = event.bytesTotal; dispatchEvent(resourceEvent); } private function moduleInfo_readyHandler(event:ModuleEvent):void{ var resourceEvent:ResourceEvent = new ResourceEvent(ResourceEvent.COMPLETE); dispatchEvent(resourceEvent); } private function moduleInfo_errorHandler(event:ModuleEvent):void{ var resourceEvent:ResourceEvent = new ResourceEvent(ResourceEvent.ERROR, event.bubbles, event.cancelable); resourceEvent.bytesLoaded = event.bytesLoaded; resourceEvent.bytesTotal = event.bytesTotal; resourceEvent.errorText = event.errorText; dispatchEvent(resourceEvent); } }
Section 232
//IResponder (mx.rpc.IResponder) package mx.rpc { public interface IResponder { function fault(:Object):void; function result(:Object):void; } }//package mx.rpc
Section 233
//ApplicationBackground (mx.skins.halo.ApplicationBackground) package mx.skins.halo { import flash.display.*; import mx.utils.*; import mx.skins.*; public class ApplicationBackground extends ProgrammaticSkin { mx_internal static const VERSION:String = "3.2.0.3958"; public function ApplicationBackground(){ super(); } override public function get measuredWidth():Number{ return (8); } override public function get measuredHeight():Number{ return (8); } override protected function updateDisplayList(w:Number, h:Number):void{ var bgColor:uint; super.updateDisplayList(w, h); var g:Graphics = graphics; var fillColors:Array = getStyle("backgroundGradientColors"); var fillAlphas:Array = getStyle("backgroundGradientAlphas"); if (!fillColors){ bgColor = getStyle("backgroundColor"); if (isNaN(bgColor)){ bgColor = 0xFFFFFF; }; fillColors = []; fillColors[0] = ColorUtil.adjustBrightness(bgColor, 15); fillColors[1] = ColorUtil.adjustBrightness(bgColor, -25); }; if (!fillAlphas){ fillAlphas = [1, 1]; }; g.clear(); drawRoundRect(0, 0, w, h, 0, fillColors, fillAlphas, verticalGradientMatrix(0, 0, w, h)); } } }//package mx.skins.halo
Section 234
//BrokenImageBorderSkin (mx.skins.halo.BrokenImageBorderSkin) package mx.skins.halo { import flash.display.*; import mx.skins.*; public class BrokenImageBorderSkin extends ProgrammaticSkin { mx_internal static const VERSION:String = "3.2.0.3958"; public function BrokenImageBorderSkin(){ super(); } override protected function updateDisplayList(w:Number, h:Number):void{ super.updateDisplayList(w, h); var g:Graphics = graphics; g.clear(); g.lineStyle(1, getStyle("borderColor")); g.drawRect(0, 0, w, h); } } }//package mx.skins.halo
Section 235
//BusyCursor (mx.skins.halo.BusyCursor) package mx.skins.halo { import flash.display.*; import mx.core.*; import flash.events.*; import mx.styles.*; public class BusyCursor extends FlexSprite { private var hourHand:Shape; private var minuteHand:Shape; mx_internal static const VERSION:String = "3.2.0.3958"; public function BusyCursor(){ var g:Graphics; super(); var cursorManagerStyleDeclaration:CSSStyleDeclaration = StyleManager.getStyleDeclaration("CursorManager"); var cursorClass:Class = cursorManagerStyleDeclaration.getStyle("busyCursorBackground"); var cursorHolder:DisplayObject = new (cursorClass); if ((cursorHolder is InteractiveObject)){ InteractiveObject(cursorHolder).mouseEnabled = false; }; addChild(cursorHolder); var xOff:Number = -0.5; var yOff:Number = -0.5; minuteHand = new FlexShape(); minuteHand.name = "minuteHand"; g = minuteHand.graphics; g.beginFill(0); g.moveTo(xOff, yOff); g.lineTo((1 + xOff), (0 + yOff)); g.lineTo((1 + xOff), (5 + yOff)); g.lineTo((0 + xOff), (5 + yOff)); g.lineTo((0 + xOff), (0 + yOff)); g.endFill(); addChild(minuteHand); hourHand = new FlexShape(); hourHand.name = "hourHand"; g = hourHand.graphics; g.beginFill(0); g.moveTo(xOff, yOff); g.lineTo((4 + xOff), (0 + yOff)); g.lineTo((4 + xOff), (1 + yOff)); g.lineTo((0 + xOff), (1 + yOff)); g.lineTo((0 + xOff), (0 + yOff)); g.endFill(); addChild(hourHand); addEventListener(Event.ADDED, handleAdded); addEventListener(Event.REMOVED, handleRemoved); } private function enterFrameHandler(event:Event):void{ minuteHand.rotation = (minuteHand.rotation + 12); hourHand.rotation = (hourHand.rotation + 1); } private function handleAdded(event:Event):void{ addEventListener(Event.ENTER_FRAME, enterFrameHandler); } private function handleRemoved(event:Event):void{ removeEventListener(Event.ENTER_FRAME, enterFrameHandler); } } }//package mx.skins.halo
Section 236
//ButtonSkin (mx.skins.halo.ButtonSkin) package mx.skins.halo { import flash.display.*; import mx.core.*; import mx.styles.*; import mx.utils.*; import mx.skins.*; public class ButtonSkin extends Border { mx_internal static const VERSION:String = "3.2.0.3958"; private static var cache:Object = {}; public function ButtonSkin(){ super(); } override public function get measuredWidth():Number{ return (UIComponent.DEFAULT_MEASURED_MIN_WIDTH); } override public function get measuredHeight():Number{ return (UIComponent.DEFAULT_MEASURED_MIN_HEIGHT); } override protected function updateDisplayList(w:Number, h:Number):void{ var tmp:Number; var upFillColors:Array; var upFillAlphas:Array; var overFillColors:Array; var overFillAlphas:Array; var disFillColors:Array; var disFillAlphas:Array; super.updateDisplayList(w, h); var borderColor:uint = getStyle("borderColor"); var cornerRadius:Number = getStyle("cornerRadius"); var fillAlphas:Array = getStyle("fillAlphas"); var fillColors:Array = getStyle("fillColors"); StyleManager.getColorNames(fillColors); var highlightAlphas:Array = getStyle("highlightAlphas"); var themeColor:uint = getStyle("themeColor"); var derStyles:Object = calcDerivedStyles(themeColor, fillColors[0], fillColors[1]); var borderColorDrk1:Number = ColorUtil.adjustBrightness2(borderColor, -50); var themeColorDrk1:Number = ColorUtil.adjustBrightness2(themeColor, -25); var emph:Boolean; if ((parent is IButton)){ emph = IButton(parent).emphasized; }; var cr:Number = Math.max(0, cornerRadius); var cr1:Number = Math.max(0, (cornerRadius - 1)); var cr2:Number = Math.max(0, (cornerRadius - 2)); graphics.clear(); switch (name){ case "selectedUpSkin": case "selectedOverSkin": drawRoundRect(0, 0, w, h, cr, [themeColor, themeColorDrk1], 1, verticalGradientMatrix(0, 0, w, h)); drawRoundRect(1, 1, (w - 2), (h - 2), cr1, [fillColors[1], fillColors[1]], 1, verticalGradientMatrix(0, 0, (w - 2), (h - 2))); break; case "upSkin": upFillColors = [fillColors[0], fillColors[1]]; upFillAlphas = [fillAlphas[0], fillAlphas[1]]; if (emph){ drawRoundRect(0, 0, w, h, cr, [themeColor, themeColorDrk1], 1, verticalGradientMatrix(0, 0, w, h), GradientType.LINEAR, null, {x:2, y:2, w:(w - 4), h:(h - 4), r:(cornerRadius - 2)}); drawRoundRect(2, 2, (w - 4), (h - 4), cr2, upFillColors, upFillAlphas, verticalGradientMatrix(2, 2, (w - 2), (h - 2))); drawRoundRect(2, 2, (w - 4), ((h - 4) / 2), {tl:cr2, tr:cr2, bl:0, br:0}, [0xFFFFFF, 0xFFFFFF], highlightAlphas, verticalGradientMatrix(1, 1, (w - 2), ((h - 2) / 2))); } else { drawRoundRect(0, 0, w, h, cr, [borderColor, borderColorDrk1], 1, verticalGradientMatrix(0, 0, w, h), GradientType.LINEAR, null, {x:1, y:1, w:(w - 2), h:(h - 2), r:(cornerRadius - 1)}); drawRoundRect(1, 1, (w - 2), (h - 2), cr1, upFillColors, upFillAlphas, verticalGradientMatrix(1, 1, (w - 2), (h - 2))); drawRoundRect(1, 1, (w - 2), ((h - 2) / 2), {tl:cr1, tr:cr1, bl:0, br:0}, [0xFFFFFF, 0xFFFFFF], highlightAlphas, verticalGradientMatrix(1, 1, (w - 2), ((h - 2) / 2))); }; break; case "overSkin": if (fillColors.length > 2){ overFillColors = [fillColors[2], fillColors[3]]; } else { overFillColors = [fillColors[0], fillColors[1]]; }; if (fillAlphas.length > 2){ overFillAlphas = [fillAlphas[2], fillAlphas[3]]; } else { overFillAlphas = [fillAlphas[0], fillAlphas[1]]; }; drawRoundRect(0, 0, w, h, cr, [themeColor, themeColorDrk1], 1, verticalGradientMatrix(0, 0, w, h), GradientType.LINEAR, null, {x:1, y:1, w:(w - 2), h:(h - 2), r:(cornerRadius - 1)}); drawRoundRect(1, 1, (w - 2), (h - 2), cr1, overFillColors, overFillAlphas, verticalGradientMatrix(1, 1, (w - 2), (h - 2))); drawRoundRect(1, 1, (w - 2), ((h - 2) / 2), {tl:cr1, tr:cr1, bl:0, br:0}, [0xFFFFFF, 0xFFFFFF], highlightAlphas, verticalGradientMatrix(1, 1, (w - 2), ((h - 2) / 2))); break; case "downSkin": case "selectedDownSkin": drawRoundRect(0, 0, w, h, cr, [themeColor, themeColorDrk1], 1, verticalGradientMatrix(0, 0, w, h)); drawRoundRect(1, 1, (w - 2), (h - 2), cr1, [derStyles.fillColorPress1, derStyles.fillColorPress2], 1, verticalGradientMatrix(1, 1, (w - 2), (h - 2))); drawRoundRect(2, 2, (w - 4), ((h - 4) / 2), {tl:cr2, tr:cr2, bl:0, br:0}, [0xFFFFFF, 0xFFFFFF], highlightAlphas, verticalGradientMatrix(1, 1, (w - 2), ((h - 2) / 2))); break; case "disabledSkin": case "selectedDisabledSkin": disFillColors = [fillColors[0], fillColors[1]]; disFillAlphas = [Math.max(0, (fillAlphas[0] - 0.15)), Math.max(0, (fillAlphas[1] - 0.15))]; drawRoundRect(0, 0, w, h, cr, [borderColor, borderColorDrk1], 0.5, verticalGradientMatrix(0, 0, w, h), GradientType.LINEAR, null, {x:1, y:1, w:(w - 2), h:(h - 2), r:(cornerRadius - 1)}); drawRoundRect(1, 1, (w - 2), (h - 2), cr1, disFillColors, disFillAlphas, verticalGradientMatrix(1, 1, (w - 2), (h - 2))); break; }; } private static function calcDerivedStyles(themeColor:uint, fillColor0:uint, fillColor1:uint):Object{ var o:Object; var key:String = HaloColors.getCacheKey(themeColor, fillColor0, fillColor1); if (!cache[key]){ o = (cache[key] = {}); HaloColors.addHaloColors(o, themeColor, fillColor0, fillColor1); }; return (cache[key]); } } }//package mx.skins.halo
Section 237
//HaloBorder (mx.skins.halo.HaloBorder) package mx.skins.halo { import flash.display.*; import mx.core.*; import mx.styles.*; import mx.graphics.*; import mx.utils.*; import mx.skins.*; public class HaloBorder extends RectangularBorder { mx_internal var radiusObj:Object; mx_internal var backgroundHole:Object; mx_internal var radius:Number; mx_internal var bRoundedCorners:Boolean; mx_internal var backgroundColor:Object; private var dropShadow:RectangularDropShadow; protected var _borderMetrics:EdgeMetrics; mx_internal var backgroundAlphaName:String; mx_internal static const VERSION:String = "3.2.0.3958"; private static var BORDER_WIDTHS:Object = {none:0, solid:1, inset:2, outset:2, alert:3, dropdown:2, menuBorder:1, comboNonEdit:2}; public function HaloBorder(){ super(); BORDER_WIDTHS["default"] = 3; } override public function styleChanged(styleProp:String):void{ if ((((((((((styleProp == null)) || ((styleProp == "styleName")))) || ((styleProp == "borderStyle")))) || ((styleProp == "borderThickness")))) || ((styleProp == "borderSides")))){ _borderMetrics = null; }; invalidateDisplayList(); } override protected function updateDisplayList(w:Number, h:Number):void{ if (((isNaN(w)) || (isNaN(h)))){ return; }; super.updateDisplayList(w, h); backgroundColor = getBackgroundColor(); bRoundedCorners = false; backgroundAlphaName = "backgroundAlpha"; backgroundHole = null; radius = 0; radiusObj = null; drawBorder(w, h); drawBackground(w, h); } mx_internal function drawBorder(w:Number, h:Number):void{ var backgroundAlpha:Number; var borderCapColor:uint; var borderColor:uint; var borderSides:String; var borderThickness:Number; var buttonColor:uint; var docked:Boolean; var dropdownBorderColor:uint; var fillColors:Array; var footerColors:Array; var highlightColor:uint; var shadowCapColor:uint; var shadowColor:uint; var themeColor:uint; var translucent:Boolean; var hole:Object; var borderColorDrk1:Number; var borderColorDrk2:Number; var borderColorLt1:Number; var borderInnerColor:Object; var contentAlpha:Number; var br:Number; var parentContainer:IContainer; var vm:EdgeMetrics; var showChrome:Boolean; var borderAlpha:Number; var fillAlphas:Array; var backgroundColorNum:uint; var bHasAllSides:Boolean; var holeRadius:Number; var borderStyle:String = getStyle("borderStyle"); var highlightAlphas:Array = getStyle("highlightAlphas"); var drawTopHighlight:Boolean; var g:Graphics = graphics; g.clear(); if (borderStyle){ switch (borderStyle){ case "none": break; case "inset": borderColor = getStyle("borderColor"); borderColorDrk1 = ColorUtil.adjustBrightness2(borderColor, -40); borderColorDrk2 = ColorUtil.adjustBrightness2(borderColor, 25); borderColorLt1 = ColorUtil.adjustBrightness2(borderColor, 40); borderInnerColor = backgroundColor; if ((((borderInnerColor === null)) || ((borderInnerColor === "")))){ borderInnerColor = borderColor; }; draw3dBorder(borderColorDrk2, borderColorDrk1, borderColorLt1, Number(borderInnerColor), Number(borderInnerColor), Number(borderInnerColor)); break; case "outset": borderColor = getStyle("borderColor"); borderColorDrk1 = ColorUtil.adjustBrightness2(borderColor, -40); borderColorDrk2 = ColorUtil.adjustBrightness2(borderColor, -25); borderColorLt1 = ColorUtil.adjustBrightness2(borderColor, 40); borderInnerColor = backgroundColor; if ((((borderInnerColor === null)) || ((borderInnerColor === "")))){ borderInnerColor = borderColor; }; draw3dBorder(borderColorDrk2, borderColorLt1, borderColorDrk1, Number(borderInnerColor), Number(borderInnerColor), Number(borderInnerColor)); break; case "alert": case "default": if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_3_0){ contentAlpha = getStyle("backgroundAlpha"); backgroundAlpha = getStyle("borderAlpha"); backgroundAlphaName = "borderAlpha"; radius = getStyle("cornerRadius"); bRoundedCorners = (getStyle("roundedBottomCorners").toString().toLowerCase() == "true"); br = (bRoundedCorners) ? radius : 0; drawDropShadow(0, 0, w, h, radius, radius, br, br); if (!bRoundedCorners){ radiusObj = {}; }; parentContainer = (parent as IContainer); if (parentContainer){ vm = parentContainer.viewMetrics; backgroundHole = {x:vm.left, y:vm.top, w:Math.max(0, ((w - vm.left) - vm.right)), h:Math.max(0, ((h - vm.top) - vm.bottom)), r:0}; if ((((backgroundHole.w > 0)) && ((backgroundHole.h > 0)))){ if (contentAlpha != backgroundAlpha){ drawDropShadow(backgroundHole.x, backgroundHole.y, backgroundHole.w, backgroundHole.h, 0, 0, 0, 0); }; g.beginFill(Number(backgroundColor), contentAlpha); g.drawRect(backgroundHole.x, backgroundHole.y, backgroundHole.w, backgroundHole.h); g.endFill(); }; }; backgroundColor = getStyle("borderColor"); }; break; case "dropdown": dropdownBorderColor = getStyle("dropdownBorderColor"); drawDropShadow(0, 0, w, h, 4, 0, 0, 4); drawRoundRect(0, 0, w, h, {tl:4, tr:0, br:0, bl:4}, 5068126, 1); drawRoundRect(0, 0, w, h, {tl:4, tr:0, br:0, bl:4}, [0xFFFFFF, 0xFFFFFF], [0.7, 0], verticalGradientMatrix(0, 0, w, h)); drawRoundRect(1, 1, (w - 1), (h - 2), {tl:3, tr:0, br:0, bl:3}, 0xFFFFFF, 1); drawRoundRect(1, 2, (w - 1), (h - 3), {tl:3, tr:0, br:0, bl:3}, [0xEEEEEE, 0xFFFFFF], 1, verticalGradientMatrix(0, 0, (w - 1), (h - 3))); if (!isNaN(dropdownBorderColor)){ drawRoundRect(0, 0, (w + 1), h, {tl:4, tr:0, br:0, bl:4}, dropdownBorderColor, 0.5); drawRoundRect(1, 1, (w - 1), (h - 2), {tl:3, tr:0, br:0, bl:3}, 0xFFFFFF, 1); drawRoundRect(1, 2, (w - 1), (h - 3), {tl:3, tr:0, br:0, bl:3}, [0xEEEEEE, 0xFFFFFF], 1, verticalGradientMatrix(0, 0, (w - 1), (h - 3))); }; backgroundColor = null; break; case "menuBorder": borderColor = getStyle("borderColor"); drawRoundRect(0, 0, w, h, 0, borderColor, 1); drawDropShadow(1, 1, (w - 2), (h - 2), 0, 0, 0, 0); break; case "comboNonEdit": break; case "controlBar": if ((((w == 0)) || ((h == 0)))){ backgroundColor = null; break; }; footerColors = getStyle("footerColors"); showChrome = !((footerColors == null)); borderAlpha = getStyle("borderAlpha"); if (showChrome){ g.lineStyle(0, ((footerColors.length > 0)) ? footerColors[1] : footerColors[0], borderAlpha); g.moveTo(0, 0); g.lineTo(w, 0); g.lineStyle(0, 0, 0); if (((((parent) && (parent.parent))) && ((parent.parent is IStyleClient)))){ radius = IStyleClient(parent.parent).getStyle("cornerRadius"); borderAlpha = IStyleClient(parent.parent).getStyle("borderAlpha"); }; if (isNaN(radius)){ radius = 0; }; if (IStyleClient(parent.parent).getStyle("roundedBottomCorners").toString().toLowerCase() != "true"){ radius = 0; }; drawRoundRect(0, 1, w, (h - 1), {tl:0, tr:0, bl:radius, br:radius}, footerColors, borderAlpha, verticalGradientMatrix(0, 0, w, h)); if ((((footerColors.length > 1)) && (!((footerColors[0] == footerColors[1]))))){ drawRoundRect(0, 1, w, (h - 1), {tl:0, tr:0, bl:radius, br:radius}, [0xFFFFFF, 0xFFFFFF], highlightAlphas, verticalGradientMatrix(0, 0, w, h)); drawRoundRect(1, 2, (w - 2), (h - 3), {tl:0, tr:0, bl:(radius - 1), br:(radius - 1)}, footerColors, borderAlpha, verticalGradientMatrix(0, 0, w, h)); }; }; backgroundColor = null; break; case "applicationControlBar": fillColors = getStyle("fillColors"); backgroundAlpha = getStyle("backgroundAlpha"); highlightAlphas = getStyle("highlightAlphas"); fillAlphas = getStyle("fillAlphas"); docked = getStyle("docked"); backgroundColorNum = uint(backgroundColor); radius = getStyle("cornerRadius"); if (!radius){ radius = 0; }; drawDropShadow(0, 1, w, (h - 1), radius, radius, radius, radius); if (((!((backgroundColor === null))) && (StyleManager.isValidStyleValue(backgroundColor)))){ drawRoundRect(0, 1, w, (h - 1), radius, backgroundColorNum, backgroundAlpha, verticalGradientMatrix(0, 0, w, h)); }; drawRoundRect(0, 1, w, (h - 1), radius, fillColors, fillAlphas, verticalGradientMatrix(0, 0, w, h)); drawRoundRect(0, 1, w, ((h / 2) - 1), {tl:radius, tr:radius, bl:0, br:0}, [0xFFFFFF, 0xFFFFFF], highlightAlphas, verticalGradientMatrix(0, 0, w, ((h / 2) - 1))); drawRoundRect(0, 1, w, (h - 1), {tl:radius, tr:radius, bl:0, br:0}, 0xFFFFFF, 0.3, null, GradientType.LINEAR, null, {x:0, y:2, w:w, h:(h - 2), r:{tl:radius, tr:radius, bl:0, br:0}}); backgroundColor = null; break; default: borderColor = getStyle("borderColor"); borderThickness = getStyle("borderThickness"); borderSides = getStyle("borderSides"); bHasAllSides = true; radius = getStyle("cornerRadius"); bRoundedCorners = (getStyle("roundedBottomCorners").toString().toLowerCase() == "true"); holeRadius = Math.max((radius - borderThickness), 0); hole = {x:borderThickness, y:borderThickness, w:(w - (borderThickness * 2)), h:(h - (borderThickness * 2)), r:holeRadius}; if (!bRoundedCorners){ radiusObj = {tl:radius, tr:radius, bl:0, br:0}; hole.r = {tl:holeRadius, tr:holeRadius, bl:0, br:0}; }; if (borderSides != "left top right bottom"){ hole.r = {tl:holeRadius, tr:holeRadius, bl:(bRoundedCorners) ? holeRadius : 0, br:(bRoundedCorners) ? holeRadius : 0}; radiusObj = {tl:radius, tr:radius, bl:(bRoundedCorners) ? radius : 0, br:(bRoundedCorners) ? radius : 0}; borderSides = borderSides.toLowerCase(); if (borderSides.indexOf("left") == -1){ hole.x = 0; hole.w = (hole.w + borderThickness); hole.r.tl = 0; hole.r.bl = 0; radiusObj.tl = 0; radiusObj.bl = 0; bHasAllSides = false; }; if (borderSides.indexOf("top") == -1){ hole.y = 0; hole.h = (hole.h + borderThickness); hole.r.tl = 0; hole.r.tr = 0; radiusObj.tl = 0; radiusObj.tr = 0; bHasAllSides = false; }; if (borderSides.indexOf("right") == -1){ hole.w = (hole.w + borderThickness); hole.r.tr = 0; hole.r.br = 0; radiusObj.tr = 0; radiusObj.br = 0; bHasAllSides = false; }; if (borderSides.indexOf("bottom") == -1){ hole.h = (hole.h + borderThickness); hole.r.bl = 0; hole.r.br = 0; radiusObj.bl = 0; radiusObj.br = 0; bHasAllSides = false; }; }; if ((((radius == 0)) && (bHasAllSides))){ drawDropShadow(0, 0, w, h, 0, 0, 0, 0); g.beginFill(borderColor); g.drawRect(0, 0, w, h); g.drawRect(borderThickness, borderThickness, (w - (2 * borderThickness)), (h - (2 * borderThickness))); g.endFill(); } else { if (radiusObj){ drawDropShadow(0, 0, w, h, radiusObj.tl, radiusObj.tr, radiusObj.br, radiusObj.bl); drawRoundRect(0, 0, w, h, radiusObj, borderColor, 1, null, null, null, hole); radiusObj.tl = Math.max((radius - borderThickness), 0); radiusObj.tr = Math.max((radius - borderThickness), 0); radiusObj.bl = (bRoundedCorners) ? Math.max((radius - borderThickness), 0) : 0; radiusObj.br = (bRoundedCorners) ? Math.max((radius - borderThickness), 0) : 0; } else { drawDropShadow(0, 0, w, h, radius, radius, radius, radius); drawRoundRect(0, 0, w, h, radius, borderColor, 1, null, null, null, hole); radius = Math.max((getStyle("cornerRadius") - borderThickness), 0); }; }; }; }; } mx_internal function drawBackground(w:Number, h:Number):void{ var nd:Number; var alpha:Number; var bm:EdgeMetrics; var g:Graphics; var bottom:Number; var bottomRadius:Number; var highlightAlphas:Array; var highlightAlpha:Number; if (((((((!((backgroundColor === null))) && (!((backgroundColor === ""))))) || (getStyle("mouseShield")))) || (getStyle("mouseShieldChildren")))){ nd = Number(backgroundColor); alpha = 1; bm = getBackgroundColorMetrics(); g = graphics; if (((((isNaN(nd)) || ((backgroundColor === "")))) || ((backgroundColor === null)))){ alpha = 0; nd = 0xFFFFFF; } else { alpha = getStyle(backgroundAlphaName); }; if (((!((radius == 0))) || (backgroundHole))){ bottom = bm.bottom; if (radiusObj){ bottomRadius = (bRoundedCorners) ? radius : 0; radiusObj = {tl:radius, tr:radius, bl:bottomRadius, br:bottomRadius}; drawRoundRect(bm.left, bm.top, (width - (bm.left + bm.right)), (height - (bm.top + bottom)), radiusObj, nd, alpha, null, GradientType.LINEAR, null, backgroundHole); } else { drawRoundRect(bm.left, bm.top, (width - (bm.left + bm.right)), (height - (bm.top + bottom)), radius, nd, alpha, null, GradientType.LINEAR, null, backgroundHole); }; } else { g.beginFill(nd, alpha); g.drawRect(bm.left, bm.top, ((w - bm.right) - bm.left), ((h - bm.bottom) - bm.top)); g.endFill(); }; }; var borderStyle:String = getStyle("borderStyle"); if ((((((FlexVersion.compatibilityVersion < FlexVersion.VERSION_3_0)) && ((((borderStyle == "alert")) || ((borderStyle == "default")))))) && ((getStyle("headerColors") == null)))){ highlightAlphas = getStyle("highlightAlphas"); highlightAlpha = (highlightAlphas) ? highlightAlphas[0] : 0.3; drawRoundRect(0, 0, w, h, {tl:radius, tr:radius, bl:0, br:0}, 0xFFFFFF, highlightAlpha, null, GradientType.LINEAR, null, {x:0, y:1, w:w, h:(h - 1), r:{tl:radius, tr:radius, bl:0, br:0}}); }; } mx_internal function drawDropShadow(x:Number, y:Number, width:Number, height:Number, tlRadius:Number, trRadius:Number, brRadius:Number, blRadius:Number):void{ var angle:Number; var docked:Boolean; if ((((((((getStyle("dropShadowEnabled") == false)) || ((getStyle("dropShadowEnabled") == "false")))) || ((width == 0)))) || ((height == 0)))){ return; }; var distance:Number = getStyle("shadowDistance"); var direction:String = getStyle("shadowDirection"); if (getStyle("borderStyle") == "applicationControlBar"){ docked = getStyle("docked"); angle = (docked) ? 90 : getDropShadowAngle(distance, direction); distance = Math.abs(distance); } else { angle = getDropShadowAngle(distance, direction); distance = (Math.abs(distance) + 2); }; if (!dropShadow){ dropShadow = new RectangularDropShadow(); }; dropShadow.distance = distance; dropShadow.angle = angle; dropShadow.color = getStyle("dropShadowColor"); dropShadow.alpha = 0.4; dropShadow.tlRadius = tlRadius; dropShadow.trRadius = trRadius; dropShadow.blRadius = blRadius; dropShadow.brRadius = brRadius; dropShadow.drawShadow(graphics, x, y, width, height); } mx_internal function getBackgroundColor():Object{ var color:Object; var p:IUIComponent = (parent as IUIComponent); if (((p) && (!(p.enabled)))){ color = getStyle("backgroundDisabledColor"); if (((!((color === null))) && (StyleManager.isValidStyleValue(color)))){ return (color); }; }; return (getStyle("backgroundColor")); } mx_internal function draw3dBorder(c1:Number, c2:Number, c3:Number, c4:Number, c5:Number, c6:Number):void{ var w:Number = width; var h:Number = height; drawDropShadow(0, 0, width, height, 0, 0, 0, 0); var g:Graphics = graphics; g.beginFill(c1); g.drawRect(0, 0, w, h); g.drawRect(1, 0, (w - 2), h); g.endFill(); g.beginFill(c2); g.drawRect(1, 0, (w - 2), 1); g.endFill(); g.beginFill(c3); g.drawRect(1, (h - 1), (w - 2), 1); g.endFill(); g.beginFill(c4); g.drawRect(1, 1, (w - 2), 1); g.endFill(); g.beginFill(c5); g.drawRect(1, (h - 2), (w - 2), 1); g.endFill(); g.beginFill(c6); g.drawRect(1, 2, (w - 2), (h - 4)); g.drawRect(2, 2, (w - 4), (h - 4)); g.endFill(); } mx_internal function getBackgroundColorMetrics():EdgeMetrics{ return (borderMetrics); } mx_internal function getDropShadowAngle(distance:Number, direction:String):Number{ if (direction == "left"){ return (((distance >= 0)) ? 135 : 225); } else { if (direction == "right"){ return (((distance >= 0)) ? 45 : 315); //unresolved jump }; }; return (!NULL!); } override public function get borderMetrics():EdgeMetrics{ var borderThickness:Number; var borderSides:String; if (_borderMetrics){ return (_borderMetrics); }; var borderStyle:String = getStyle("borderStyle"); if ((((borderStyle == "default")) || ((borderStyle == "alert")))){ if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_3_0){ _borderMetrics = new EdgeMetrics(0, 0, 0, 0); } else { return (EdgeMetrics.EMPTY); }; } else { if ((((borderStyle == "controlBar")) || ((borderStyle == "applicationControlBar")))){ _borderMetrics = new EdgeMetrics(1, 1, 1, 1); } else { if (borderStyle == "solid"){ borderThickness = getStyle("borderThickness"); if (isNaN(borderThickness)){ borderThickness = 0; }; _borderMetrics = new EdgeMetrics(borderThickness, borderThickness, borderThickness, borderThickness); borderSides = getStyle("borderSides"); if (borderSides != "left top right bottom"){ if (borderSides.indexOf("left") == -1){ _borderMetrics.left = 0; }; if (borderSides.indexOf("top") == -1){ _borderMetrics.top = 0; }; if (borderSides.indexOf("right") == -1){ _borderMetrics.right = 0; }; if (borderSides.indexOf("bottom") == -1){ _borderMetrics.bottom = 0; }; }; } else { borderThickness = BORDER_WIDTHS[borderStyle]; if (isNaN(borderThickness)){ borderThickness = 0; }; _borderMetrics = new EdgeMetrics(borderThickness, borderThickness, borderThickness, borderThickness); }; }; }; return (_borderMetrics); } } }//package mx.skins.halo
Section 238
//HaloColors (mx.skins.halo.HaloColors) package mx.skins.halo { import mx.utils.*; public class HaloColors { mx_internal static const VERSION:String = "3.2.0.3958"; private static var cache:Object = {}; public function HaloColors(){ super(); } public static function getCacheKey(... _args):String{ return (_args.join(",")); } public static function addHaloColors(colors:Object, themeColor:uint, fillColor0:uint, fillColor1:uint):void{ var key:String = getCacheKey(themeColor, fillColor0, fillColor1); var o:Object = cache[key]; if (!o){ o = (cache[key] = {}); o.themeColLgt = ColorUtil.adjustBrightness(themeColor, 100); o.themeColDrk1 = ColorUtil.adjustBrightness(themeColor, -75); o.themeColDrk2 = ColorUtil.adjustBrightness(themeColor, -25); o.fillColorBright1 = ColorUtil.adjustBrightness2(fillColor0, 15); o.fillColorBright2 = ColorUtil.adjustBrightness2(fillColor1, 15); o.fillColorPress1 = ColorUtil.adjustBrightness2(themeColor, 85); o.fillColorPress2 = ColorUtil.adjustBrightness2(themeColor, 60); o.bevelHighlight1 = ColorUtil.adjustBrightness2(fillColor0, 40); o.bevelHighlight2 = ColorUtil.adjustBrightness2(fillColor1, 40); }; colors.themeColLgt = o.themeColLgt; colors.themeColDrk1 = o.themeColDrk1; colors.themeColDrk2 = o.themeColDrk2; colors.fillColorBright1 = o.fillColorBright1; colors.fillColorBright2 = o.fillColorBright2; colors.fillColorPress1 = o.fillColorPress1; colors.fillColorPress2 = o.fillColorPress2; colors.bevelHighlight1 = o.bevelHighlight1; colors.bevelHighlight2 = o.bevelHighlight2; } } }//package mx.skins.halo
Section 239
//HaloFocusRect (mx.skins.halo.HaloFocusRect) package mx.skins.halo { import flash.display.*; import mx.styles.*; import mx.utils.*; import mx.skins.*; public class HaloFocusRect extends ProgrammaticSkin implements IStyleClient { private var _focusColor:Number; mx_internal static const VERSION:String = "3.2.0.3958"; public function HaloFocusRect(){ super(); } public function get inheritingStyles():Object{ return (styleName.inheritingStyles); } public function set inheritingStyles(value:Object):void{ } public function notifyStyleChangeInChildren(styleProp:String, recursive:Boolean):void{ } public function registerEffects(effects:Array):void{ } public function regenerateStyleCache(recursive:Boolean):void{ } public function get styleDeclaration():CSSStyleDeclaration{ return (CSSStyleDeclaration(styleName)); } public function getClassStyleDeclarations():Array{ return ([]); } public function get className():String{ return ("HaloFocusRect"); } public function clearStyle(styleProp:String):void{ if (styleProp == "focusColor"){ _focusColor = NaN; }; } public function setStyle(styleProp:String, newValue):void{ if (styleProp == "focusColor"){ _focusColor = newValue; }; } public function set nonInheritingStyles(value:Object):void{ } public function get nonInheritingStyles():Object{ return (styleName.nonInheritingStyles); } override protected function updateDisplayList(w:Number, h:Number):void{ var tl:Number; var bl:Number; var tr:Number; var br:Number; var nr:Number; var ellipseSize:Number; super.updateDisplayList(w, h); var focusBlendMode:String = getStyle("focusBlendMode"); var focusAlpha:Number = getStyle("focusAlpha"); var focusColor:Number = getStyle("focusColor"); var cornerRadius:Number = getStyle("cornerRadius"); var focusThickness:Number = getStyle("focusThickness"); var focusRoundedCorners:String = getStyle("focusRoundedCorners"); var themeColor:Number = getStyle("themeColor"); var rectColor:Number = focusColor; if (isNaN(rectColor)){ rectColor = themeColor; }; var g:Graphics = graphics; g.clear(); blendMode = focusBlendMode; if (((!((focusRoundedCorners == "tl tr bl br"))) && ((cornerRadius > 0)))){ tl = 0; bl = 0; tr = 0; br = 0; nr = (cornerRadius + focusThickness); if (focusRoundedCorners.indexOf("tl") >= 0){ tl = nr; }; if (focusRoundedCorners.indexOf("tr") >= 0){ tr = nr; }; if (focusRoundedCorners.indexOf("bl") >= 0){ bl = nr; }; if (focusRoundedCorners.indexOf("br") >= 0){ br = nr; }; g.beginFill(rectColor, focusAlpha); GraphicsUtil.drawRoundRectComplex(g, 0, 0, w, h, tl, tr, bl, br); tl = (tl) ? cornerRadius : 0; tr = (tr) ? cornerRadius : 0; bl = (bl) ? cornerRadius : 0; br = (br) ? cornerRadius : 0; GraphicsUtil.drawRoundRectComplex(g, focusThickness, focusThickness, (w - (2 * focusThickness)), (h - (2 * focusThickness)), tl, tr, bl, br); g.endFill(); nr = (cornerRadius + (focusThickness / 2)); tl = (tl) ? nr : 0; tr = (tr) ? nr : 0; bl = (bl) ? nr : 0; br = (br) ? nr : 0; g.beginFill(rectColor, focusAlpha); GraphicsUtil.drawRoundRectComplex(g, (focusThickness / 2), (focusThickness / 2), (w - focusThickness), (h - focusThickness), tl, tr, bl, br); tl = (tl) ? cornerRadius : 0; tr = (tr) ? cornerRadius : 0; bl = (bl) ? cornerRadius : 0; br = (br) ? cornerRadius : 0; GraphicsUtil.drawRoundRectComplex(g, focusThickness, focusThickness, (w - (2 * focusThickness)), (h - (2 * focusThickness)), tl, tr, bl, br); g.endFill(); } else { g.beginFill(rectColor, focusAlpha); ellipseSize = (((cornerRadius > 0)) ? (cornerRadius + focusThickness) : 0 * 2); g.drawRoundRect(0, 0, w, h, ellipseSize, ellipseSize); ellipseSize = (cornerRadius * 2); g.drawRoundRect(focusThickness, focusThickness, (w - (2 * focusThickness)), (h - (2 * focusThickness)), ellipseSize, ellipseSize); g.endFill(); g.beginFill(rectColor, focusAlpha); ellipseSize = (((cornerRadius > 0)) ? (cornerRadius + (focusThickness / 2)) : 0 * 2); g.drawRoundRect((focusThickness / 2), (focusThickness / 2), (w - focusThickness), (h - focusThickness), ellipseSize, ellipseSize); ellipseSize = (cornerRadius * 2); g.drawRoundRect(focusThickness, focusThickness, (w - (2 * focusThickness)), (h - (2 * focusThickness)), ellipseSize, ellipseSize); g.endFill(); }; } override public function getStyle(styleProp:String){ return (((styleProp == "focusColor")) ? _focusColor : super.getStyle(styleProp)); } public function set styleDeclaration(value:CSSStyleDeclaration):void{ } } }//package mx.skins.halo
Section 240
//ScrollArrowSkin (mx.skins.halo.ScrollArrowSkin) package mx.skins.halo { import flash.display.*; import mx.core.*; import mx.styles.*; import mx.controls.scrollClasses.*; import mx.utils.*; import mx.skins.*; public class ScrollArrowSkin extends Border { mx_internal static const VERSION:String = "3.2.0.3958"; private static var cache:Object = {}; public function ScrollArrowSkin(){ super(); } override public function get measuredWidth():Number{ return (ScrollBar.THICKNESS); } override public function get measuredHeight():Number{ return (ScrollBar.THICKNESS); } override protected function updateDisplayList(w:Number, h:Number):void{ var borderColors:Array; var upFillColors:Array; var upFillAlphas:Array; var overFillColors:Array; var overFillAlphas:Array; var disFillColors:Array; var disFillAlphas:Array; super.updateDisplayList(w, h); var backgroundColor:Number = getStyle("backgroundColor"); var borderColor:uint = getStyle("borderColor"); var fillAlphas:Array = getStyle("fillAlphas"); var fillColors:Array = getStyle("fillColors"); StyleManager.getColorNames(fillColors); var highlightAlphas:Array = getStyle("highlightAlphas"); var themeColor:uint = getStyle("themeColor"); var upArrow = (name.charAt(0) == "u"); var arrowColor:uint = getStyle("iconColor"); var derStyles:Object = calcDerivedStyles(themeColor, borderColor, fillColors[0], fillColors[1]); var horizontal:Boolean = ((((parent) && (parent.parent))) && (!((parent.parent.rotation == 0)))); if (((upArrow) && (!(horizontal)))){ borderColors = [borderColor, derStyles.borderColorDrk1]; } else { borderColors = [derStyles.borderColorDrk1, derStyles.borderColorDrk2]; }; var g:Graphics = graphics; g.clear(); if (isNaN(backgroundColor)){ backgroundColor = 0xFFFFFF; }; if ((((FlexVersion.compatibilityVersion >= FlexVersion.VERSION_3_0)) || ((name.indexOf("Disabled") == -1)))){ drawRoundRect(0, 0, w, h, 0, backgroundColor, 1); }; switch (name){ case "upArrowUpSkin": if (!horizontal){ drawRoundRect(1, (h - 4), (w - 2), 8, 0, [derStyles.borderColorDrk1, derStyles.borderColorDrk1], [1, 0], verticalGradientMatrix(1, (h - 4), (w - 2), 8), GradientType.LINEAR, null, {x:1, y:(h - 4), w:(w - 2), h:4, r:0}); }; case "downArrowUpSkin": upFillColors = [fillColors[0], fillColors[1]]; upFillAlphas = [fillAlphas[0], fillAlphas[1]]; drawRoundRect(0, 0, w, h, 0, borderColors, 1, (horizontal) ? horizontalGradientMatrix(0, 0, w, h) : verticalGradientMatrix(0, 0, w, h), GradientType.LINEAR, null, {x:1, y:1, w:(w - 2), h:(h - 2), r:0}); drawRoundRect(1, 1, (w - 2), (h - 2), 0, upFillColors, upFillAlphas, (horizontal) ? horizontalGradientMatrix(0, 0, (w - 2), (h - 2)) : verticalGradientMatrix(0, 0, (w - 2), (h - (2 / 2)))); drawRoundRect(1, 1, (w - 2), (h - (2 / 2)), 0, [0xFFFFFF, 0xFFFFFF], highlightAlphas, (horizontal) ? horizontalGradientMatrix(0, 0, (w - 2), (h - 2)) : verticalGradientMatrix(0, 0, (w - 2), (h - (2 / 2)))); break; case "upArrowOverSkin": if (!horizontal){ drawRoundRect(1, (h - 4), (w - 2), 8, 0, [derStyles.borderColorDrk1, derStyles.borderColorDrk1], [1, 0], verticalGradientMatrix(1, (h - 4), (w - 2), 8), GradientType.LINEAR, null, {x:1, y:(h - 4), w:(w - 2), h:4, r:0}); }; case "downArrowOverSkin": if (fillColors.length > 2){ overFillColors = [fillColors[2], fillColors[3]]; } else { overFillColors = [fillColors[0], fillColors[1]]; }; if (fillAlphas.length > 2){ overFillAlphas = [fillAlphas[2], fillAlphas[3]]; } else { overFillAlphas = [fillAlphas[0], fillAlphas[1]]; }; drawRoundRect(0, 0, w, h, 0, 0xFFFFFF, 1); drawRoundRect(0, 0, w, h, 0, [themeColor, derStyles.themeColDrk1], 1, (horizontal) ? horizontalGradientMatrix(0, 0, w, h) : verticalGradientMatrix(0, 0, w, h), GradientType.LINEAR, null, {x:1, y:1, w:(w - 2), h:(h - 2), r:0}); drawRoundRect(1, 1, (w - 2), (h - 2), 0, overFillColors, overFillAlphas, (horizontal) ? horizontalGradientMatrix(0, 0, (w - 2), (h - 2)) : verticalGradientMatrix(0, 0, (w - 2), (h - 2))); drawRoundRect(1, 1, (w - 2), (h - (2 / 2)), 0, [0xFFFFFF, 0xFFFFFF], highlightAlphas, (horizontal) ? horizontalGradientMatrix(0, 0, (w - 2), (h - 2)) : verticalGradientMatrix(0, 0, (w - 2), (h - (2 / 2)))); break; case "upArrowDownSkin": if (!horizontal){ drawRoundRect(1, (h - 4), (w - 2), 8, 0, [derStyles.borderColorDrk1, derStyles.borderColorDrk1], [1, 0], (horizontal) ? horizontalGradientMatrix(1, (h - 4), (w - 2), 8) : verticalGradientMatrix(1, (h - 4), (w - 2), 8), GradientType.LINEAR, null, {x:1, y:(h - 4), w:(w - 2), h:4, r:0}); }; case "downArrowDownSkin": drawRoundRect(0, 0, w, h, 0, [themeColor, derStyles.themeColDrk1], 1, (horizontal) ? horizontalGradientMatrix(0, 0, w, h) : verticalGradientMatrix(0, 0, w, h), GradientType.LINEAR, null, {x:1, y:1, w:(w - 2), h:(h - 2), r:0}); drawRoundRect(1, 1, (w - 2), (h - 2), 0, [derStyles.fillColorPress1, derStyles.fillColorPress2], 1, (horizontal) ? horizontalGradientMatrix(0, 0, (w - 2), (h - 2)) : verticalGradientMatrix(0, 0, (w - 2), (h - 2))); drawRoundRect(1, 1, (w - 2), (h - (2 / 2)), 0, [0xFFFFFF, 0xFFFFFF], highlightAlphas, (horizontal) ? horizontalGradientMatrix(0, 0, (w - 2), (h - 2)) : verticalGradientMatrix(0, 0, (w - 2), (h - (2 / 2)))); break; case "upArrowDisabledSkin": if (FlexVersion.compatibilityVersion >= FlexVersion.VERSION_3_0){ if (!horizontal){ drawRoundRect(1, (h - 4), (w - 2), 8, 0, [derStyles.borderColorDrk1, derStyles.borderColorDrk1], [0.5, 0], verticalGradientMatrix(1, (h - 4), (w - 2), 8), GradientType.LINEAR, null, {x:1, y:(h - 4), w:(w - 2), h:4, r:0}); }; }; case "downArrowDisabledSkin": if (FlexVersion.compatibilityVersion >= FlexVersion.VERSION_3_0){ disFillColors = [fillColors[0], fillColors[1]]; disFillAlphas = [(fillAlphas[0] - 0.15), (fillAlphas[1] - 0.15)]; drawRoundRect(0, 0, w, h, 0, borderColors, 0.5, (horizontal) ? horizontalGradientMatrix(0, 0, w, h) : verticalGradientMatrix(0, 0, w, h), GradientType.LINEAR, null, {x:1, y:1, w:(w - 2), h:(h - 2), r:0}); drawRoundRect(1, 1, (w - 2), (h - 2), 0, disFillColors, disFillAlphas, (horizontal) ? horizontalGradientMatrix(0, 0, (w - 2), (h - 2)) : verticalGradientMatrix(0, 0, (w - 2), (h - (2 / 2)))); arrowColor = getStyle("disabledIconColor"); } else { drawRoundRect(0, 0, w, h, 0, 0xFFFFFF, 0); return; }; break; default: drawRoundRect(0, 0, w, h, 0, 0xFFFFFF, 0); return; }; g.beginFill(arrowColor); if (upArrow){ g.moveTo((w / 2), 6); g.lineTo((w - 5), (h - 6)); g.lineTo(5, (h - 6)); g.lineTo((w / 2), 6); } else { g.moveTo((w / 2), (h - 6)); g.lineTo((w - 5), 6); g.lineTo(5, 6); g.lineTo((w / 2), (h - 6)); }; g.endFill(); } private static function calcDerivedStyles(themeColor:uint, borderColor:uint, fillColor0:uint, fillColor1:uint):Object{ var o:Object; var key:String = HaloColors.getCacheKey(themeColor, borderColor, fillColor0, fillColor1); if (!cache[key]){ o = (cache[key] = {}); HaloColors.addHaloColors(o, themeColor, fillColor0, fillColor1); o.borderColorDrk1 = ColorUtil.adjustBrightness2(borderColor, -25); o.borderColorDrk2 = ColorUtil.adjustBrightness2(borderColor, -50); }; return (cache[key]); } } }//package mx.skins.halo
Section 241
//ScrollThumbSkin (mx.skins.halo.ScrollThumbSkin) package mx.skins.halo { import flash.display.*; import mx.styles.*; import mx.utils.*; import mx.skins.*; public class ScrollThumbSkin extends Border { mx_internal static const VERSION:String = "3.2.0.3958"; private static var cache:Object = {}; public function ScrollThumbSkin(){ super(); } override public function get measuredWidth():Number{ return (16); } override public function get measuredHeight():Number{ return (10); } override protected function updateDisplayList(w:Number, h:Number):void{ var upFillColors:Array; var upFillAlphas:Array; var overFillColors:Array; var overFillAlphas:Array; super.updateDisplayList(w, h); var backgroundColor:Number = getStyle("backgroundColor"); var borderColor:uint = getStyle("borderColor"); var cornerRadius:Number = getStyle("cornerRadius"); var fillAlphas:Array = getStyle("fillAlphas"); var fillColors:Array = getStyle("fillColors"); StyleManager.getColorNames(fillColors); var highlightAlphas:Array = getStyle("highlightAlphas"); var themeColor:uint = getStyle("themeColor"); var gripColor:uint = 7305079; var derStyles:Object = calcDerivedStyles(themeColor, borderColor, fillColors[0], fillColors[1]); var radius:Number = Math.max((cornerRadius - 1), 0); var cr:Object = {tl:0, tr:radius, bl:0, br:radius}; radius = Math.max((radius - 1), 0); var cr1:Object = {tl:0, tr:radius, bl:0, br:radius}; var horizontal:Boolean = ((((parent) && (parent.parent))) && (!((parent.parent.rotation == 0)))); if (isNaN(backgroundColor)){ backgroundColor = 0xFFFFFF; }; graphics.clear(); drawRoundRect(1, 0, (w - 3), h, cr, backgroundColor, 1); switch (name){ case "thumbUpSkin": default: upFillColors = [fillColors[0], fillColors[1]]; upFillAlphas = [fillAlphas[0], fillAlphas[1]]; drawRoundRect(0, 0, w, h, 0, 0xFFFFFF, 0); if (horizontal){ drawRoundRect(1, 0, (w - 2), h, cornerRadius, [derStyles.borderColorDrk1, derStyles.borderColorDrk1], [1, 0], horizontalGradientMatrix(2, 0, w, h), GradientType.LINEAR, null, {x:1, y:1, w:(w - 4), h:(h - 2), r:cr1}); } else { drawRoundRect(1, (h - radius), (w - 3), (radius + 4), {tl:0, tr:0, bl:0, br:radius}, [derStyles.borderColorDrk1, derStyles.borderColorDrk1], [1, 0], (horizontal) ? horizontalGradientMatrix(0, (h - 4), (w - 3), 8) : verticalGradientMatrix(0, (h - 4), (w - 3), 8), GradientType.LINEAR, null, {x:1, y:(h - radius), w:(w - 4), h:radius, r:{tl:0, tr:0, bl:0, br:(radius - 1)}}); }; drawRoundRect(1, 0, (w - 3), h, cr, [borderColor, derStyles.borderColorDrk1], 1, (horizontal) ? horizontalGradientMatrix(0, 0, w, h) : verticalGradientMatrix(0, 0, w, h), GradientType.LINEAR, null, {x:1, y:1, w:(w - 4), h:(h - 2), r:cr1}); drawRoundRect(1, 1, (w - 4), (h - 2), cr1, upFillColors, upFillAlphas, (horizontal) ? horizontalGradientMatrix(1, 0, (w - 2), (h - 2)) : verticalGradientMatrix(1, 0, (w - 2), (h - 2))); if (horizontal){ drawRoundRect(1, 0, ((w - 4) / 2), (h - 2), 0, [0xFFFFFF, 0xFFFFFF], highlightAlphas, horizontalGradientMatrix(1, 1, (w - 4), ((h - 2) / 2))); } else { drawRoundRect(1, 1, (w - 4), ((h - 2) / 2), cr1, [0xFFFFFF, 0xFFFFFF], highlightAlphas, (horizontal) ? horizontalGradientMatrix(1, 0, ((w - 4) / 2), (h - 2)) : verticalGradientMatrix(1, 1, (w - 4), ((h - 2) / 2))); }; break; case "thumbOverSkin": if (fillColors.length > 2){ overFillColors = [fillColors[2], fillColors[3]]; } else { overFillColors = [fillColors[0], fillColors[1]]; }; if (fillAlphas.length > 2){ overFillAlphas = [fillAlphas[2], fillAlphas[3]]; } else { overFillAlphas = [fillAlphas[0], fillAlphas[1]]; }; drawRoundRect(0, 0, w, h, 0, 0xFFFFFF, 0); if (horizontal){ drawRoundRect(1, 0, (w - 2), h, cornerRadius, [derStyles.borderColorDrk1, derStyles.borderColorDrk1], [1, 0], horizontalGradientMatrix(2, 0, w, h), GradientType.LINEAR, null, {x:1, y:1, w:(w - 4), h:(h - 2), r:cr1}); } else { drawRoundRect(1, (h - radius), (w - 3), (radius + 4), {tl:0, tr:0, bl:0, br:radius}, [derStyles.borderColorDrk1, derStyles.borderColorDrk1], [1, 0], (horizontal) ? horizontalGradientMatrix(0, (h - 4), (w - 3), 8) : verticalGradientMatrix(0, (h - 4), (w - 3), 8), GradientType.LINEAR, null, {x:1, y:(h - radius), w:(w - 4), h:radius, r:{tl:0, tr:0, bl:0, br:(radius - 1)}}); }; drawRoundRect(1, 0, (w - 3), h, cr, [themeColor, derStyles.themeColDrk1], 1, (horizontal) ? horizontalGradientMatrix(1, 0, w, h) : verticalGradientMatrix(0, 0, w, h), GradientType.LINEAR, null, {x:1, y:1, w:(w - 4), h:(h - 2), r:cr1}); drawRoundRect(1, 1, (w - 4), (h - 2), cr1, overFillColors, overFillAlphas, (horizontal) ? horizontalGradientMatrix(1, 0, w, h) : verticalGradientMatrix(1, 0, w, h)); break; case "thumbDownSkin": if (horizontal){ drawRoundRect(1, 0, (w - 2), h, cr, [derStyles.borderColorDrk1, derStyles.borderColorDrk1], [1, 0], horizontalGradientMatrix(2, 0, w, h), GradientType.LINEAR, null, {x:1, y:1, w:(w - 4), h:(h - 2), r:cr1}); } else { drawRoundRect(1, (h - radius), (w - 3), (radius + 4), {tl:0, tr:0, bl:0, br:radius}, [derStyles.borderColorDrk1, derStyles.borderColorDrk1], [1, 0], (horizontal) ? horizontalGradientMatrix(0, (h - 4), (w - 3), 8) : verticalGradientMatrix(0, (h - 4), (w - 3), 8), GradientType.LINEAR, null, {x:1, y:(h - radius), w:(w - 4), h:radius, r:{tl:0, tr:0, bl:0, br:(radius - 1)}}); }; drawRoundRect(1, 0, (w - 3), h, cr, [themeColor, derStyles.themeColDrk2], 1, (horizontal) ? horizontalGradientMatrix(1, 0, w, h) : verticalGradientMatrix(0, 0, w, h), GradientType.LINEAR, null, {x:1, y:1, w:(w - 4), h:(h - 2), r:cr1}); drawRoundRect(1, 1, (w - 4), (h - 2), cr1, [derStyles.fillColorPress1, derStyles.fillColorPress2], 1, (horizontal) ? horizontalGradientMatrix(1, 0, w, h) : verticalGradientMatrix(1, 0, w, h)); break; case "thumbDisabledSkin": drawRoundRect(0, 0, w, h, 0, 0xFFFFFF, 0); drawRoundRect(1, 0, (w - 3), h, cr, 0x999999, 0.5); drawRoundRect(1, 1, (w - 4), (h - 2), cr1, 0xFFFFFF, 0.5); break; }; var gripW:Number = Math.floor(((w / 2) - 4)); drawRoundRect(gripW, Math.floor(((h / 2) - 4)), 5, 1, 0, 0, 0.4); drawRoundRect(gripW, Math.floor(((h / 2) - 2)), 5, 1, 0, 0, 0.4); drawRoundRect(gripW, Math.floor((h / 2)), 5, 1, 0, 0, 0.4); drawRoundRect(gripW, Math.floor(((h / 2) + 2)), 5, 1, 0, 0, 0.4); drawRoundRect(gripW, Math.floor(((h / 2) + 4)), 5, 1, 0, 0, 0.4); } private static function calcDerivedStyles(themeColor:uint, borderColor:uint, fillColor0:uint, fillColor1:uint):Object{ var o:Object; var key:String = HaloColors.getCacheKey(themeColor, borderColor, fillColor0, fillColor1); if (!cache[key]){ o = (cache[key] = {}); HaloColors.addHaloColors(o, themeColor, fillColor0, fillColor1); o.borderColorDrk1 = ColorUtil.adjustBrightness2(borderColor, -50); }; return (cache[key]); } } }//package mx.skins.halo
Section 242
//ScrollTrackSkin (mx.skins.halo.ScrollTrackSkin) package mx.skins.halo { import flash.display.*; import mx.core.*; import mx.styles.*; import mx.utils.*; import mx.skins.*; public class ScrollTrackSkin extends Border { mx_internal static const VERSION:String = "3.2.0.3958"; public function ScrollTrackSkin(){ super(); } override public function get measuredWidth():Number{ return (16); } override public function get measuredHeight():Number{ return (1); } override protected function updateDisplayList(w:Number, h:Number):void{ super.updateDisplayList(w, h); var fillColors:Array = getStyle("trackColors"); StyleManager.getColorNames(fillColors); var borderColor:uint = ColorUtil.adjustBrightness2(getStyle("borderColor"), -20); var borderColorDrk1:uint = ColorUtil.adjustBrightness2(borderColor, -30); graphics.clear(); var fillAlpha:Number = 1; if ((((name == "trackDisabledSkin")) && ((FlexVersion.compatibilityVersion >= FlexVersion.VERSION_3_0)))){ fillAlpha = 0.2; }; drawRoundRect(0, 0, w, h, 0, [borderColor, borderColorDrk1], fillAlpha, verticalGradientMatrix(0, 0, w, h), GradientType.LINEAR, null, {x:1, y:1, w:(w - 2), h:(h - 2), r:0}); drawRoundRect(1, 1, (w - 2), (h - 2), 0, fillColors, fillAlpha, horizontalGradientMatrix(1, 1, ((w / 3) * 2), (h - 2))); } } }//package mx.skins.halo
Section 243
//ToolTipBorder (mx.skins.halo.ToolTipBorder) package mx.skins.halo { import flash.display.*; import mx.core.*; import mx.graphics.*; import flash.filters.*; import mx.skins.*; public class ToolTipBorder extends RectangularBorder { private var _borderMetrics:EdgeMetrics; private var dropShadow:RectangularDropShadow; mx_internal static const VERSION:String = "3.2.0.3958"; public function ToolTipBorder(){ super(); } override public function get borderMetrics():EdgeMetrics{ if (_borderMetrics){ return (_borderMetrics); }; var borderStyle:String = getStyle("borderStyle"); switch (borderStyle){ case "errorTipRight": _borderMetrics = new EdgeMetrics(15, 1, 3, 3); break; case "errorTipAbove": _borderMetrics = new EdgeMetrics(3, 1, 3, 15); break; case "errorTipBelow": _borderMetrics = new EdgeMetrics(3, 13, 3, 3); break; default: _borderMetrics = new EdgeMetrics(3, 1, 3, 3); break; }; return (_borderMetrics); } override protected function updateDisplayList(w:Number, h:Number):void{ super.updateDisplayList(w, h); var borderStyle:String = getStyle("borderStyle"); var backgroundColor:uint = getStyle("backgroundColor"); var backgroundAlpha:Number = getStyle("backgroundAlpha"); var borderColor:uint = getStyle("borderColor"); var cornerRadius:Number = getStyle("cornerRadius"); var shadowColor:uint = getStyle("shadowColor"); var shadowAlpha:Number = 0.1; var g:Graphics = graphics; g.clear(); filters = []; switch (borderStyle){ case "toolTip": drawRoundRect(3, 1, (w - 6), (h - 4), cornerRadius, backgroundColor, backgroundAlpha); if (!dropShadow){ dropShadow = new RectangularDropShadow(); }; dropShadow.distance = 3; dropShadow.angle = 90; dropShadow.color = 0; dropShadow.alpha = 0.4; dropShadow.tlRadius = (cornerRadius + 2); dropShadow.trRadius = (cornerRadius + 2); dropShadow.blRadius = (cornerRadius + 2); dropShadow.brRadius = (cornerRadius + 2); dropShadow.drawShadow(graphics, 3, 0, (w - 6), (h - 4)); break; case "errorTipRight": drawRoundRect(11, 0, (w - 11), (h - 2), 3, borderColor, backgroundAlpha); g.beginFill(borderColor, backgroundAlpha); g.moveTo(11, 7); g.lineTo(0, 13); g.lineTo(11, 19); g.moveTo(11, 7); g.endFill(); filters = [new DropShadowFilter(2, 90, 0, 0.4)]; break; case "errorTipAbove": drawRoundRect(0, 0, w, (h - 13), 3, borderColor, backgroundAlpha); g.beginFill(borderColor, backgroundAlpha); g.moveTo(9, (h - 13)); g.lineTo(15, (h - 2)); g.lineTo(21, (h - 13)); g.moveTo(9, (h - 13)); g.endFill(); filters = [new DropShadowFilter(2, 90, 0, 0.4)]; break; case "errorTipBelow": drawRoundRect(0, 11, w, (h - 13), 3, borderColor, backgroundAlpha); g.beginFill(borderColor, backgroundAlpha); g.moveTo(9, 11); g.lineTo(15, 0); g.lineTo(21, 11); g.moveTo(10, 11); g.endFill(); filters = [new DropShadowFilter(2, 90, 0, 0.4)]; break; }; } override public function styleChanged(styleProp:String):void{ if ((((((styleProp == "borderStyle")) || ((styleProp == "styleName")))) || ((styleProp == null)))){ _borderMetrics = null; }; invalidateDisplayList(); } } }//package mx.skins.halo
Section 244
//Border (mx.skins.Border) package mx.skins { import mx.core.*; public class Border extends ProgrammaticSkin implements IBorder { mx_internal static const VERSION:String = "3.2.0.3958"; public function Border(){ super(); } public function get borderMetrics():EdgeMetrics{ return (EdgeMetrics.EMPTY); } } }//package mx.skins
Section 245
//ProgrammaticSkin (mx.skins.ProgrammaticSkin) package mx.skins { import flash.display.*; import flash.geom.*; import mx.core.*; import mx.managers.*; import mx.styles.*; import mx.utils.*; public class ProgrammaticSkin extends FlexShape implements IFlexDisplayObject, IInvalidating, ILayoutManagerClient, ISimpleStyleClient, IProgrammaticSkin { private var _initialized:Boolean;// = false private var _height:Number; private var invalidateDisplayListFlag:Boolean;// = false private var _styleName:IStyleClient; private var _nestLevel:int;// = 0 private var _processedDescriptors:Boolean;// = false private var _updateCompletePendingFlag:Boolean;// = true private var _width:Number; mx_internal static const VERSION:String = "3.2.0.3958"; private static var tempMatrix:Matrix = new Matrix(); public function ProgrammaticSkin(){ super(); _width = measuredWidth; _height = measuredHeight; } public function getStyle(styleProp:String){ return ((_styleName) ? _styleName.getStyle(styleProp) : null); } protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void{ } public function get nestLevel():int{ return (_nestLevel); } public function set nestLevel(value:int):void{ _nestLevel = value; invalidateDisplayList(); } override public function get height():Number{ return (_height); } public function get updateCompletePendingFlag():Boolean{ return (_updateCompletePendingFlag); } protected function verticalGradientMatrix(x:Number, y:Number, width:Number, height:Number):Matrix{ return (rotatedGradientMatrix(x, y, width, height, 90)); } public function validateSize(recursive:Boolean=false):void{ } public function invalidateDisplayList():void{ if (((!(invalidateDisplayListFlag)) && ((nestLevel > 0)))){ invalidateDisplayListFlag = true; UIComponentGlobals.layoutManager.invalidateDisplayList(this); }; } public function set updateCompletePendingFlag(value:Boolean):void{ _updateCompletePendingFlag = value; } protected function horizontalGradientMatrix(x:Number, y:Number, width:Number, height:Number):Matrix{ return (rotatedGradientMatrix(x, y, width, height, 0)); } override public function set height(value:Number):void{ _height = value; invalidateDisplayList(); } public function set processedDescriptors(value:Boolean):void{ _processedDescriptors = value; } public function validateDisplayList():void{ invalidateDisplayListFlag = false; updateDisplayList(width, height); } public function get measuredWidth():Number{ return (0); } override public function set width(value:Number):void{ _width = value; invalidateDisplayList(); } public function get measuredHeight():Number{ return (0); } public function set initialized(value:Boolean):void{ _initialized = value; } protected function drawRoundRect(x:Number, y:Number, width:Number, height:Number, cornerRadius:Object=null, color:Object=null, alpha:Object=null, gradientMatrix:Matrix=null, gradientType:String="linear", gradientRatios:Array=null, hole:Object=null):void{ var ellipseSize:Number; var alphas:Array; var holeR:Object; var g:Graphics = graphics; if ((((width == 0)) || ((height == 0)))){ return; }; if (color !== null){ if ((color is uint)){ g.beginFill(uint(color), Number(alpha)); } else { if ((color is Array)){ alphas = ((alpha is Array)) ? (alpha as Array) : [alpha, alpha]; if (!gradientRatios){ gradientRatios = [0, 0xFF]; }; g.beginGradientFill(gradientType, (color as Array), alphas, gradientRatios, gradientMatrix); }; }; }; if (!cornerRadius){ g.drawRect(x, y, width, height); } else { if ((cornerRadius is Number)){ ellipseSize = (Number(cornerRadius) * 2); g.drawRoundRect(x, y, width, height, ellipseSize, ellipseSize); } else { GraphicsUtil.drawRoundRectComplex(g, x, y, width, height, cornerRadius.tl, cornerRadius.tr, cornerRadius.bl, cornerRadius.br); }; }; if (hole){ holeR = hole.r; if ((holeR is Number)){ ellipseSize = (Number(holeR) * 2); g.drawRoundRect(hole.x, hole.y, hole.w, hole.h, ellipseSize, ellipseSize); } else { GraphicsUtil.drawRoundRectComplex(g, hole.x, hole.y, hole.w, hole.h, holeR.tl, holeR.tr, holeR.bl, holeR.br); }; }; if (color !== null){ g.endFill(); }; } public function get processedDescriptors():Boolean{ return (_processedDescriptors); } public function set styleName(value:Object):void{ if (_styleName != value){ _styleName = (value as IStyleClient); invalidateDisplayList(); }; } public function setActualSize(newWidth:Number, newHeight:Number):void{ var changed:Boolean; if (_width != newWidth){ _width = newWidth; changed = true; }; if (_height != newHeight){ _height = newHeight; changed = true; }; if (changed){ invalidateDisplayList(); }; } public function styleChanged(styleProp:String):void{ invalidateDisplayList(); } override public function get width():Number{ return (_width); } public function invalidateProperties():void{ } public function get initialized():Boolean{ return (_initialized); } protected function rotatedGradientMatrix(x:Number, y:Number, width:Number, height:Number, rotation:Number):Matrix{ tempMatrix.createGradientBox(width, height, ((rotation * Math.PI) / 180), x, y); return (tempMatrix); } public function move(x:Number, y:Number):void{ this.x = x; this.y = y; } public function get styleName():Object{ return (_styleName); } public function validateNow():void{ if (invalidateDisplayListFlag){ validateDisplayList(); }; } public function invalidateSize():void{ } public function validateProperties():void{ } } }//package mx.skins
Section 246
//RectangularBorder (mx.skins.RectangularBorder) package mx.skins { import flash.display.*; import flash.geom.*; import mx.core.*; import flash.events.*; import mx.resources.*; import mx.styles.*; import flash.utils.*; import flash.system.*; import flash.net.*; public class RectangularBorder extends Border implements IRectangularBorder { private var backgroundImage:DisplayObject; private var backgroundImageHeight:Number; private var _backgroundImageBounds:Rectangle; private var backgroundImageStyle:Object; private var backgroundImageWidth:Number; private var resourceManager:IResourceManager; mx_internal static const VERSION:String = "3.2.0.3958"; public function RectangularBorder(){ resourceManager = ResourceManager.getInstance(); super(); addEventListener(Event.REMOVED, removedHandler); } public function layoutBackgroundImage():void{ var sW:Number; var sH:Number; var sX:Number; var sY:Number; var scale:Number; var g:Graphics; var p:DisplayObject = parent; var bm:EdgeMetrics = ((p is IContainer)) ? IContainer(p).viewMetrics : borderMetrics; var scrollableBk = !((getStyle("backgroundAttachment") == "fixed")); if (_backgroundImageBounds){ sW = _backgroundImageBounds.width; sH = _backgroundImageBounds.height; } else { sW = ((width - bm.left) - bm.right); sH = ((height - bm.top) - bm.bottom); }; var percentage:Number = getBackgroundSize(); if (isNaN(percentage)){ sX = 1; sY = 1; } else { scale = (percentage * 0.01); sX = ((scale * sW) / backgroundImageWidth); sY = ((scale * sH) / backgroundImageHeight); }; backgroundImage.scaleX = sX; backgroundImage.scaleY = sY; var offsetX:Number = Math.round((0.5 * (sW - (backgroundImageWidth * sX)))); var offsetY:Number = Math.round((0.5 * (sH - (backgroundImageHeight * sY)))); backgroundImage.x = bm.left; backgroundImage.y = bm.top; var backgroundMask:Shape = Shape(backgroundImage.mask); backgroundMask.x = bm.left; backgroundMask.y = bm.top; if (((scrollableBk) && ((p is IContainer)))){ offsetX = (offsetX - IContainer(p).horizontalScrollPosition); offsetY = (offsetY - IContainer(p).verticalScrollPosition); }; backgroundImage.alpha = getStyle("backgroundAlpha"); backgroundImage.x = (backgroundImage.x + offsetX); backgroundImage.y = (backgroundImage.y + offsetY); var maskWidth:Number = ((width - bm.left) - bm.right); var maskHeight:Number = ((height - bm.top) - bm.bottom); if (((!((backgroundMask.width == maskWidth))) || (!((backgroundMask.height == maskHeight))))){ g = backgroundMask.graphics; g.clear(); g.beginFill(0xFFFFFF); g.drawRect(0, 0, maskWidth, maskHeight); g.endFill(); }; } public function set backgroundImageBounds(value:Rectangle):void{ _backgroundImageBounds = value; invalidateDisplayList(); } private function getBackgroundSize():Number{ var index:int; var percentage:Number = NaN; var backgroundSize:Object = getStyle("backgroundSize"); if (((backgroundSize) && ((backgroundSize is String)))){ index = backgroundSize.indexOf("%"); if (index != -1){ percentage = Number(backgroundSize.substr(0, index)); }; }; return (percentage); } private function removedHandler(event:Event):void{ var childrenList:IChildList; if (backgroundImage){ childrenList = ((parent is IRawChildrenContainer)) ? IRawChildrenContainer(parent).rawChildren : IChildList(parent); childrenList.removeChild(backgroundImage.mask); childrenList.removeChild(backgroundImage); backgroundImage = null; }; } private function initBackgroundImage(image:DisplayObject):void{ backgroundImage = image; if ((image is Loader)){ backgroundImageWidth = Loader(image).contentLoaderInfo.width; backgroundImageHeight = Loader(image).contentLoaderInfo.height; } else { backgroundImageWidth = backgroundImage.width; backgroundImageHeight = backgroundImage.height; if ((image is ISimpleStyleClient)){ ISimpleStyleClient(image).styleName = styleName; }; }; var childrenList:IChildList = ((parent is IRawChildrenContainer)) ? IRawChildrenContainer(parent).rawChildren : IChildList(parent); var backgroundMask:Shape = new FlexShape(); backgroundMask.name = "backgroundMask"; backgroundMask.x = 0; backgroundMask.y = 0; childrenList.addChild(backgroundMask); var myIndex:int = childrenList.getChildIndex(this); childrenList.addChildAt(backgroundImage, (myIndex + 1)); backgroundImage.mask = backgroundMask; } public function get backgroundImageBounds():Rectangle{ return (_backgroundImageBounds); } public function get hasBackgroundImage():Boolean{ return (!((backgroundImage == null))); } private function completeEventHandler(event:Event):void{ if (!parent){ return; }; var target:DisplayObject = DisplayObject(LoaderInfo(event.target).loader); initBackgroundImage(target); layoutBackgroundImage(); dispatchEvent(event.clone()); } override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void{ var cls:Class; var newStyleObj:DisplayObject; var loader:Loader; var loaderContext:LoaderContext; var message:String; var unscaledWidth = unscaledWidth; var unscaledHeight = unscaledHeight; if (!parent){ return; }; var newStyle:Object = getStyle("backgroundImage"); if (newStyle != backgroundImageStyle){ removedHandler(null); backgroundImageStyle = newStyle; if (((newStyle) && ((newStyle as Class)))){ cls = Class(newStyle); initBackgroundImage(new (cls)); } else { if (((newStyle) && ((newStyle is String)))){ cls = Class(getDefinitionByName(String(newStyle))); //unresolved jump var _slot1 = e; if (cls){ newStyleObj = new (cls); initBackgroundImage(newStyleObj); } else { loader = new FlexLoader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeEventHandler); loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, errorEventHandler); loader.contentLoaderInfo.addEventListener(ErrorEvent.ERROR, errorEventHandler); loaderContext = new LoaderContext(); loaderContext.applicationDomain = new ApplicationDomain(ApplicationDomain.currentDomain); loader.load(new URLRequest(String(newStyle)), loaderContext); }; } else { if (newStyle){ message = resourceManager.getString("skins", "notLoaded", [newStyle]); throw (new Error(message)); }; }; }; }; if (backgroundImage){ layoutBackgroundImage(); }; } private function errorEventHandler(event:Event):void{ } } }//package mx.skins
Section 247
//IOverride (mx.states.IOverride) package mx.states { import mx.core.*; public interface IOverride { function initialize():void; function remove(:UIComponent):void; function apply(:UIComponent):void; } }//package mx.states
Section 248
//State (mx.states.State) package mx.states { import flash.events.*; import mx.events.*; public class State extends EventDispatcher { public var basedOn:String; private var initialized:Boolean;// = false public var overrides:Array; public var name:String; mx_internal static const VERSION:String = "3.2.0.3958"; public function State(){ overrides = []; super(); } mx_internal function initialize():void{ var i:int; if (!initialized){ initialized = true; i = 0; while (i < overrides.length) { IOverride(overrides[i]).initialize(); i++; }; }; } mx_internal function dispatchExitState():void{ dispatchEvent(new FlexEvent(FlexEvent.EXIT_STATE)); } mx_internal function dispatchEnterState():void{ dispatchEvent(new FlexEvent(FlexEvent.ENTER_STATE)); } } }//package mx.states
Section 249
//Transition (mx.states.Transition) package mx.states { import mx.effects.*; public class Transition { public var effect:IEffect; public var toState:String;// = "*" public var fromState:String;// = "*" mx_internal static const VERSION:String = "3.2.0.3958"; public function Transition(){ super(); } } }//package mx.states
Section 250
//CSSStyleDeclaration (mx.styles.CSSStyleDeclaration) package mx.styles { import flash.display.*; import mx.core.*; import mx.managers.*; import flash.events.*; import flash.utils.*; public class CSSStyleDeclaration extends EventDispatcher { mx_internal var effects:Array; protected var overrides:Object; public var defaultFactory:Function; public var factory:Function; mx_internal var selectorRefCount:int;// = 0 private var styleManager:IStyleManager2; private var clones:Dictionary; mx_internal static const VERSION:String = "3.2.0.3958"; private static const NOT_A_COLOR:uint = 4294967295; private static const FILTERMAP_PROP:String = "__reserved__filterMap"; public function CSSStyleDeclaration(selector:String=null){ clones = new Dictionary(true); super(); if (selector){ styleManager = (Singleton.getInstance("mx.styles::IStyleManager2") as IStyleManager2); styleManager.setStyleDeclaration(selector, this, false); }; } mx_internal function addStyleToProtoChain(chain:Object, target:DisplayObject, filterMap:Object=null):Object{ var p:String; var emptyObjectFactory:Function; var filteredChain:Object; var filterObjectFactory:Function; var i:String; var chain = chain; var target = target; var filterMap = filterMap; var nodeAddedToChain:Boolean; var originalChain:Object = chain; if (filterMap){ chain = {}; }; if (defaultFactory != null){ defaultFactory.prototype = chain; chain = new defaultFactory(); nodeAddedToChain = true; }; if (factory != null){ factory.prototype = chain; chain = new factory(); nodeAddedToChain = true; }; if (overrides){ if ((((defaultFactory == null)) && ((factory == null)))){ emptyObjectFactory = function ():void{ }; emptyObjectFactory.prototype = chain; chain = new (emptyObjectFactory); nodeAddedToChain = true; }; for (p in overrides) { if (overrides[p] === undefined){ delete chain[p]; } else { chain[p] = overrides[p]; }; }; }; if (filterMap){ if (nodeAddedToChain){ filteredChain = {}; filterObjectFactory = function ():void{ }; filterObjectFactory.prototype = originalChain; filteredChain = new (filterObjectFactory); for (i in chain) { if (filterMap[i] != null){ filteredChain[filterMap[i]] = chain[i]; }; }; chain = filteredChain; chain[FILTERMAP_PROP] = filterMap; } else { chain = originalChain; }; }; if (nodeAddedToChain){ clones[chain] = 1; }; return (chain); } public function getStyle(styleProp:String){ var o:*; var v:*; if (overrides){ if ((((styleProp in overrides)) && ((overrides[styleProp] === undefined)))){ return (undefined); }; v = overrides[styleProp]; if (v !== undefined){ return (v); }; }; if (factory != null){ factory.prototype = {}; o = new factory(); v = o[styleProp]; if (v !== undefined){ return (v); }; }; if (defaultFactory != null){ defaultFactory.prototype = {}; o = new defaultFactory(); v = o[styleProp]; if (v !== undefined){ return (v); }; }; return (undefined); } public function clearStyle(styleProp:String):void{ setStyle(styleProp, undefined); } public function setStyle(styleProp:String, newValue):void{ var i:int; var sm:Object; var oldValue:Object = getStyle(styleProp); var regenerate:Boolean; if ((((((((((selectorRefCount > 0)) && ((factory == null)))) && ((defaultFactory == null)))) && (!(overrides)))) && (!((oldValue === newValue))))){ regenerate = true; }; if (newValue !== undefined){ setStyle(styleProp, newValue); } else { if (newValue == oldValue){ return; }; setStyle(styleProp, newValue); }; var sms:Array = SystemManagerGlobals.topLevelSystemManagers; var n:int = sms.length; if (regenerate){ i = 0; while (i < n) { sm = sms[i]; sm.regenerateStyleCache(true); i++; }; }; i = 0; while (i < n) { sm = sms[i]; sm.notifyStyleChangeInChildren(styleProp, true); i++; }; } private function clearStyleAttr(styleProp:String):void{ var clone:*; if (!overrides){ overrides = {}; }; overrides[styleProp] = undefined; for (clone in clones) { delete clone[styleProp]; }; } mx_internal function createProtoChainRoot():Object{ var root:Object = {}; if (defaultFactory != null){ defaultFactory.prototype = root; root = new defaultFactory(); }; if (factory != null){ factory.prototype = root; root = new factory(); }; clones[root] = 1; return (root); } mx_internal function clearOverride(styleProp:String):void{ if (((overrides) && (overrides[styleProp]))){ delete overrides[styleProp]; }; } mx_internal function setStyle(styleProp:String, value):void{ var o:Object; var clone:*; var colorNumber:Number; var cloneFilter:Object; if (value === undefined){ clearStyleAttr(styleProp); return; }; if ((value is String)){ if (!styleManager){ styleManager = (Singleton.getInstance("mx.styles::IStyleManager2") as IStyleManager2); }; colorNumber = styleManager.getColorName(value); if (colorNumber != NOT_A_COLOR){ value = colorNumber; }; }; if (defaultFactory != null){ o = new defaultFactory(); if (o[styleProp] !== value){ if (!overrides){ overrides = {}; }; overrides[styleProp] = value; } else { if (overrides){ delete overrides[styleProp]; }; }; }; if (factory != null){ o = new factory(); if (o[styleProp] !== value){ if (!overrides){ overrides = {}; }; overrides[styleProp] = value; } else { if (overrides){ delete overrides[styleProp]; }; }; }; if ((((defaultFactory == null)) && ((factory == null)))){ if (!overrides){ overrides = {}; }; overrides[styleProp] = value; }; for (clone in clones) { cloneFilter = clone[FILTERMAP_PROP]; if (cloneFilter){ if (cloneFilter[styleProp] != null){ clone[cloneFilter[styleProp]] = value; }; } else { clone[styleProp] = value; }; }; } } }//package mx.styles
Section 251
//ISimpleStyleClient (mx.styles.ISimpleStyleClient) package mx.styles { public interface ISimpleStyleClient { function set styleName(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\styles;ISimpleStyleClient.as:Object):void; function styleChanged(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\styles;ISimpleStyleClient.as:String):void; function get styleName():Object; } }//package mx.styles
Section 252
//IStyleClient (mx.styles.IStyleClient) package mx.styles { public interface IStyleClient extends ISimpleStyleClient { function regenerateStyleCache(mx.styles:IStyleClient/mx.styles:IStyleClient:className/get:Boolean):void; function get className():String; function clearStyle(mx.styles:IStyleClient/mx.styles:IStyleClient:className/get:String):void; function getClassStyleDeclarations():Array; function get inheritingStyles():Object; function set nonInheritingStyles(mx.styles:IStyleClient/mx.styles:IStyleClient:className/get:Object):void; function setStyle(_arg1:String, _arg2):void; function get styleDeclaration():CSSStyleDeclaration; function set styleDeclaration(mx.styles:IStyleClient/mx.styles:IStyleClient:className/get:CSSStyleDeclaration):void; function get nonInheritingStyles():Object; function set inheritingStyles(mx.styles:IStyleClient/mx.styles:IStyleClient:className/get:Object):void; function getStyle(*:String); function notifyStyleChangeInChildren(_arg1:String, _arg2:Boolean):void; function registerEffects(mx.styles:IStyleClient/mx.styles:IStyleClient:className/get:Array):void; } }//package mx.styles
Section 253
//IStyleManager (mx.styles.IStyleManager) package mx.styles { import flash.events.*; public interface IStyleManager { function isColorName(value:String):Boolean; function registerParentDisplayListInvalidatingStyle(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\styles;IStyleManager.as:String):void; function registerInheritingStyle(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\styles;IStyleManager.as:String):void; function set stylesRoot(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\styles;IStyleManager.as:Object):void; function get typeSelectorCache():Object; function styleDeclarationsChanged():void; function setStyleDeclaration(_arg1:String, _arg2:CSSStyleDeclaration, _arg3:Boolean):void; function isParentDisplayListInvalidatingStyle(value:String):Boolean; function isSizeInvalidatingStyle(value:String):Boolean; function get inheritingStyles():Object; function isValidStyleValue(value):Boolean; function isParentSizeInvalidatingStyle(value:String):Boolean; function getColorName(mx.styles:IStyleManager/mx.styles:IStyleManager:inheritingStyles/set:Object):uint; function set typeSelectorCache(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\styles;IStyleManager.as:Object):void; function unloadStyleDeclarations(_arg1:String, _arg2:Boolean=true):void; function getColorNames(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\styles;IStyleManager.as:Array):void; function loadStyleDeclarations(_arg1:String, _arg2:Boolean=true, _arg3:Boolean=false):IEventDispatcher; function isInheritingStyle(value:String):Boolean; function set inheritingStyles(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\styles;IStyleManager.as:Object):void; function get stylesRoot():Object; function initProtoChainRoots():void; function registerColorName(_arg1:String, _arg2:uint):void; function registerParentSizeInvalidatingStyle(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\styles;IStyleManager.as:String):void; function registerSizeInvalidatingStyle(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\styles;IStyleManager.as:String):void; function clearStyleDeclaration(_arg1:String, _arg2:Boolean):void; function isInheritingTextFormatStyle(value:String):Boolean; function getStyleDeclaration(mx.styles:IStyleManager/mx.styles:IStyleManager:inheritingStyles/get:String):CSSStyleDeclaration; } }//package mx.styles
Section 254
//IStyleManager2 (mx.styles.IStyleManager2) package mx.styles { import flash.events.*; import flash.system.*; public interface IStyleManager2 extends IStyleManager { function get selectors():Array; function loadStyleDeclarations2(_arg1:String, _arg2:Boolean=true, _arg3:ApplicationDomain=null, _arg4:SecurityDomain=null):IEventDispatcher; } }//package mx.styles
Section 255
//IStyleModule (mx.styles.IStyleModule) package mx.styles { public interface IStyleModule { function unload():void; } }//package mx.styles
Section 256
//StyleManager (mx.styles.StyleManager) package mx.styles { import mx.core.*; import flash.events.*; import flash.system.*; public class StyleManager { mx_internal static const VERSION:String = "3.2.0.3958"; public static const NOT_A_COLOR:uint = 4294967295; private static var _impl:IStyleManager2; private static var implClassDependency:StyleManagerImpl; public function StyleManager(){ super(); } public static function isParentSizeInvalidatingStyle(styleName:String):Boolean{ return (impl.isParentSizeInvalidatingStyle(styleName)); } public static function registerInheritingStyle(styleName:String):void{ impl.registerInheritingStyle(styleName); } mx_internal static function set stylesRoot(value:Object):void{ impl.stylesRoot = value; } mx_internal static function get inheritingStyles():Object{ return (impl.inheritingStyles); } mx_internal static function styleDeclarationsChanged():void{ impl.styleDeclarationsChanged(); } public static function setStyleDeclaration(selector:String, styleDeclaration:CSSStyleDeclaration, update:Boolean):void{ impl.setStyleDeclaration(selector, styleDeclaration, update); } public static function registerParentDisplayListInvalidatingStyle(styleName:String):void{ impl.registerParentDisplayListInvalidatingStyle(styleName); } mx_internal static function get typeSelectorCache():Object{ return (impl.typeSelectorCache); } mx_internal static function set inheritingStyles(value:Object):void{ impl.inheritingStyles = value; } public static function isColorName(colorName:String):Boolean{ return (impl.isColorName(colorName)); } public static function isParentDisplayListInvalidatingStyle(styleName:String):Boolean{ return (impl.isParentDisplayListInvalidatingStyle(styleName)); } public static function isSizeInvalidatingStyle(styleName:String):Boolean{ return (impl.isSizeInvalidatingStyle(styleName)); } public static function getColorName(colorName:Object):uint{ return (impl.getColorName(colorName)); } mx_internal static function set typeSelectorCache(value:Object):void{ impl.typeSelectorCache = value; } public static function unloadStyleDeclarations(url:String, update:Boolean=true):void{ impl.unloadStyleDeclarations(url, update); } public static function getColorNames(colors:Array):void{ impl.getColorNames(colors); } public static function loadStyleDeclarations(url:String, update:Boolean=true, trustContent:Boolean=false, applicationDomain:ApplicationDomain=null, securityDomain:SecurityDomain=null):IEventDispatcher{ return (impl.loadStyleDeclarations2(url, update, applicationDomain, securityDomain)); } private static function get impl():IStyleManager2{ if (!_impl){ _impl = IStyleManager2(Singleton.getInstance("mx.styles::IStyleManager2")); }; return (_impl); } public static function isValidStyleValue(value):Boolean{ return (impl.isValidStyleValue(value)); } mx_internal static function get stylesRoot():Object{ return (impl.stylesRoot); } public static function isInheritingStyle(styleName:String):Boolean{ return (impl.isInheritingStyle(styleName)); } mx_internal static function initProtoChainRoots():void{ impl.initProtoChainRoots(); } public static function registerParentSizeInvalidatingStyle(styleName:String):void{ impl.registerParentSizeInvalidatingStyle(styleName); } public static function get selectors():Array{ return (impl.selectors); } public static function registerSizeInvalidatingStyle(styleName:String):void{ impl.registerSizeInvalidatingStyle(styleName); } public static function clearStyleDeclaration(selector:String, update:Boolean):void{ impl.clearStyleDeclaration(selector, update); } public static function registerColorName(colorName:String, colorValue:uint):void{ impl.registerColorName(colorName, colorValue); } public static function isInheritingTextFormatStyle(styleName:String):Boolean{ return (impl.isInheritingTextFormatStyle(styleName)); } public static function getStyleDeclaration(selector:String):CSSStyleDeclaration{ return (impl.getStyleDeclaration(selector)); } } }//package mx.styles
Section 257
//StyleManagerImpl (mx.styles.StyleManagerImpl) package mx.styles { import mx.core.*; import mx.managers.*; import flash.events.*; import mx.events.*; import mx.resources.*; import flash.system.*; import mx.modules.*; import flash.utils.*; public class StyleManagerImpl implements IStyleManager2 { private var _stylesRoot:Object; private var _selectors:Object; private var styleModules:Object; private var _inheritingStyles:Object; private var resourceManager:IResourceManager; private var _typeSelectorCache:Object; mx_internal static const VERSION:String = "3.2.0.3958"; private static var parentSizeInvalidatingStyles:Object = {bottom:true, horizontalCenter:true, left:true, right:true, top:true, verticalCenter:true, baseline:true}; private static var colorNames:Object = {transparent:"transparent", black:0, blue:0xFF, green:0x8000, gray:0x808080, silver:0xC0C0C0, lime:0xFF00, olive:0x808000, white:0xFFFFFF, yellow:0xFFFF00, maroon:0x800000, navy:128, red:0xFF0000, purple:0x800080, teal:0x8080, fuchsia:0xFF00FF, aqua:0xFFFF, magenta:0xFF00FF, cyan:0xFFFF, halogreen:8453965, haloblue:40447, haloorange:0xFFB600, halosilver:11455193}; private static var inheritingTextFormatStyles:Object = {align:true, bold:true, color:true, font:true, indent:true, italic:true, size:true}; private static var instance:IStyleManager2; private static var parentDisplayListInvalidatingStyles:Object = {bottom:true, horizontalCenter:true, left:true, right:true, top:true, verticalCenter:true, baseline:true}; private static var sizeInvalidatingStyles:Object = {borderStyle:true, borderThickness:true, fontAntiAliasType:true, fontFamily:true, fontGridFitType:true, fontSharpness:true, fontSize:true, fontStyle:true, fontThickness:true, fontWeight:true, headerHeight:true, horizontalAlign:true, horizontalGap:true, kerning:true, leading:true, letterSpacing:true, paddingBottom:true, paddingLeft:true, paddingRight:true, paddingTop:true, strokeWidth:true, tabHeight:true, tabWidth:true, verticalAlign:true, verticalGap:true}; public function StyleManagerImpl(){ _selectors = {}; styleModules = {}; resourceManager = ResourceManager.getInstance(); _inheritingStyles = {}; _typeSelectorCache = {}; super(); } public function setStyleDeclaration(selector:String, styleDeclaration:CSSStyleDeclaration, update:Boolean):void{ styleDeclaration.selectorRefCount++; _selectors[selector] = styleDeclaration; typeSelectorCache = {}; if (update){ styleDeclarationsChanged(); }; } public function registerParentDisplayListInvalidatingStyle(styleName:String):void{ parentDisplayListInvalidatingStyles[styleName] = true; } public function getStyleDeclaration(selector:String):CSSStyleDeclaration{ var index:int; if (selector.charAt(0) != "."){ index = selector.lastIndexOf("."); if (index != -1){ selector = selector.substr((index + 1)); }; }; return (_selectors[selector]); } public function set typeSelectorCache(value:Object):void{ _typeSelectorCache = value; } public function isColorName(colorName:String):Boolean{ return (!((colorNames[colorName.toLowerCase()] === undefined))); } public function set inheritingStyles(value:Object):void{ _inheritingStyles = value; } public function getColorNames(colors:Array):void{ var colorNumber:uint; if (!colors){ return; }; var n:int = colors.length; var i:int; while (i < n) { if (((!((colors[i] == null))) && (isNaN(colors[i])))){ colorNumber = getColorName(colors[i]); if (colorNumber != StyleManager.NOT_A_COLOR){ colors[i] = colorNumber; }; }; i++; }; } public function isInheritingTextFormatStyle(styleName:String):Boolean{ return ((inheritingTextFormatStyles[styleName] == true)); } public function registerParentSizeInvalidatingStyle(styleName:String):void{ parentSizeInvalidatingStyles[styleName] = true; } public function registerColorName(colorName:String, colorValue:uint):void{ colorNames[colorName.toLowerCase()] = colorValue; } public function isParentSizeInvalidatingStyle(styleName:String):Boolean{ return ((parentSizeInvalidatingStyles[styleName] == true)); } public function registerInheritingStyle(styleName:String):void{ inheritingStyles[styleName] = true; } public function set stylesRoot(value:Object):void{ _stylesRoot = value; } public function get typeSelectorCache():Object{ return (_typeSelectorCache); } public function isParentDisplayListInvalidatingStyle(styleName:String):Boolean{ return ((parentDisplayListInvalidatingStyles[styleName] == true)); } public function isSizeInvalidatingStyle(styleName:String):Boolean{ return ((sizeInvalidatingStyles[styleName] == true)); } public function styleDeclarationsChanged():void{ var sm:Object; var sms:Array = SystemManagerGlobals.topLevelSystemManagers; var n:int = sms.length; var i:int; while (i < n) { sm = sms[i]; sm.regenerateStyleCache(true); sm.notifyStyleChangeInChildren(null, true); i++; }; } public function isValidStyleValue(value):Boolean{ return (!((value === undefined))); } public function loadStyleDeclarations(url:String, update:Boolean=true, trustContent:Boolean=false):IEventDispatcher{ return (loadStyleDeclarations2(url, update)); } public function get inheritingStyles():Object{ return (_inheritingStyles); } public function unloadStyleDeclarations(url:String, update:Boolean=true):void{ var module:IModuleInfo; var styleModuleInfo:StyleModuleInfo = styleModules[url]; if (styleModuleInfo){ styleModuleInfo.styleModule.unload(); module = styleModuleInfo.module; module.unload(); module.removeEventListener(ModuleEvent.READY, styleModuleInfo.readyHandler); module.removeEventListener(ModuleEvent.ERROR, styleModuleInfo.errorHandler); styleModules[url] = null; }; if (update){ styleDeclarationsChanged(); }; } public function getColorName(colorName:Object):uint{ var n:Number; var c:*; if ((colorName is String)){ if (colorName.charAt(0) == "#"){ n = Number(("0x" + colorName.slice(1))); return ((isNaN(n)) ? StyleManager.NOT_A_COLOR : uint(n)); }; if ((((colorName.charAt(1) == "x")) && ((colorName.charAt(0) == "0")))){ n = Number(colorName); return ((isNaN(n)) ? StyleManager.NOT_A_COLOR : uint(n)); }; c = colorNames[colorName.toLowerCase()]; if (c === undefined){ return (StyleManager.NOT_A_COLOR); }; return (uint(c)); }; return (uint(colorName)); } public function isInheritingStyle(styleName:String):Boolean{ return ((inheritingStyles[styleName] == true)); } public function get stylesRoot():Object{ return (_stylesRoot); } public function initProtoChainRoots():void{ if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_3_0){ delete _inheritingStyles["textDecoration"]; delete _inheritingStyles["leading"]; }; if (!stylesRoot){ stylesRoot = _selectors["global"].addStyleToProtoChain({}, null); }; } public function loadStyleDeclarations2(url:String, update:Boolean=true, applicationDomain:ApplicationDomain=null, securityDomain:SecurityDomain=null):IEventDispatcher{ var module:IModuleInfo; var styleEventDispatcher:StyleEventDispatcher; var timer:Timer; var timerHandler:Function; var url = url; var update = update; var applicationDomain = applicationDomain; var securityDomain = securityDomain; module = ModuleManager.getModule(url); var readyHandler:Function = function (moduleEvent:ModuleEvent):void{ var styleModule:IStyleModule = IStyleModule(moduleEvent.module.factory.create()); styleModules[moduleEvent.module.url].styleModule = styleModule; if (update){ styleDeclarationsChanged(); }; }; module.addEventListener(ModuleEvent.READY, readyHandler, false, 0, true); styleEventDispatcher = new StyleEventDispatcher(module); var errorHandler:Function = function (moduleEvent:ModuleEvent):void{ var styleEvent:StyleEvent; var errorText:String = resourceManager.getString("styles", "unableToLoad", [moduleEvent.errorText, url]); if (styleEventDispatcher.willTrigger(StyleEvent.ERROR)){ styleEvent = new StyleEvent(StyleEvent.ERROR, moduleEvent.bubbles, moduleEvent.cancelable); styleEvent.bytesLoaded = 0; styleEvent.bytesTotal = 0; styleEvent.errorText = errorText; styleEventDispatcher.dispatchEvent(styleEvent); } else { throw (new Error(errorText)); }; }; module.addEventListener(ModuleEvent.ERROR, errorHandler, false, 0, true); styleModules[url] = new StyleModuleInfo(module, readyHandler, errorHandler); timer = new Timer(0); timerHandler = function (event:TimerEvent):void{ timer.removeEventListener(TimerEvent.TIMER, timerHandler); timer.stop(); module.load(applicationDomain, securityDomain); }; timer.addEventListener(TimerEvent.TIMER, timerHandler, false, 0, true); timer.start(); return (styleEventDispatcher); } public function registerSizeInvalidatingStyle(styleName:String):void{ sizeInvalidatingStyles[styleName] = true; } public function clearStyleDeclaration(selector:String, update:Boolean):void{ var styleDeclaration:CSSStyleDeclaration = getStyleDeclaration(selector); if (((styleDeclaration) && ((styleDeclaration.selectorRefCount > 0)))){ styleDeclaration.selectorRefCount--; }; delete _selectors[selector]; if (update){ styleDeclarationsChanged(); }; } public function get selectors():Array{ var i:String; var theSelectors:Array = []; for (i in _selectors) { theSelectors.push(i); }; return (theSelectors); } public static function getInstance():IStyleManager2{ if (!instance){ instance = new (StyleManagerImpl); }; return (instance); } } }//package mx.styles import flash.events.*; import mx.events.*; import mx.modules.*; class StyleEventDispatcher extends EventDispatcher { private function StyleEventDispatcher(moduleInfo:IModuleInfo){ super(); moduleInfo.addEventListener(ModuleEvent.ERROR, moduleInfo_errorHandler, false, 0, true); moduleInfo.addEventListener(ModuleEvent.PROGRESS, moduleInfo_progressHandler, false, 0, true); moduleInfo.addEventListener(ModuleEvent.READY, moduleInfo_readyHandler, false, 0, true); } private function moduleInfo_progressHandler(event:ModuleEvent):void{ var styleEvent:StyleEvent = new StyleEvent(StyleEvent.PROGRESS, event.bubbles, event.cancelable); styleEvent.bytesLoaded = event.bytesLoaded; styleEvent.bytesTotal = event.bytesTotal; dispatchEvent(styleEvent); } private function moduleInfo_readyHandler(event:ModuleEvent):void{ var styleEvent:StyleEvent = new StyleEvent(StyleEvent.COMPLETE); dispatchEvent(styleEvent); } private function moduleInfo_errorHandler(event:ModuleEvent):void{ var styleEvent:StyleEvent = new StyleEvent(StyleEvent.ERROR, event.bubbles, event.cancelable); styleEvent.bytesLoaded = event.bytesLoaded; styleEvent.bytesTotal = event.bytesTotal; styleEvent.errorText = event.errorText; dispatchEvent(styleEvent); } } class StyleModuleInfo { public var errorHandler:Function; public var readyHandler:Function; public var module:IModuleInfo; public var styleModule:IStyleModule; private function StyleModuleInfo(module:IModuleInfo, readyHandler:Function, errorHandler:Function){ super(); this.module = module; this.readyHandler = readyHandler; this.errorHandler = errorHandler; } }
Section 258
//StyleProtoChain (mx.styles.StyleProtoChain) package mx.styles { import flash.display.*; import mx.core.*; public class StyleProtoChain { mx_internal static const VERSION:String = "3.2.0.3958"; public function StyleProtoChain(){ super(); } public static function initProtoChainForUIComponentStyleName(obj:IStyleClient):void{ var typeSelector:CSSStyleDeclaration; var styleName:IStyleClient = IStyleClient(obj.styleName); var target:DisplayObject = (obj as DisplayObject); var nonInheritChain:Object = styleName.nonInheritingStyles; if (((!(nonInheritChain)) || ((nonInheritChain == UIComponent.STYLE_UNINITIALIZED)))){ nonInheritChain = StyleManager.stylesRoot; if (nonInheritChain.effects){ obj.registerEffects(nonInheritChain.effects); }; }; var inheritChain:Object = styleName.inheritingStyles; if (((!(inheritChain)) || ((inheritChain == UIComponent.STYLE_UNINITIALIZED)))){ inheritChain = StyleManager.stylesRoot; }; var typeSelectors:Array = obj.getClassStyleDeclarations(); var n:int = typeSelectors.length; if ((styleName is StyleProxy)){ if (n == 0){ nonInheritChain = addProperties(nonInheritChain, styleName, false); }; target = (StyleProxy(styleName).source as DisplayObject); }; var i:int; while (i < n) { typeSelector = typeSelectors[i]; inheritChain = typeSelector.addStyleToProtoChain(inheritChain, target); inheritChain = addProperties(inheritChain, styleName, true); nonInheritChain = typeSelector.addStyleToProtoChain(nonInheritChain, target); nonInheritChain = addProperties(nonInheritChain, styleName, false); if (typeSelector.effects){ obj.registerEffects(typeSelector.effects); }; i++; }; obj.inheritingStyles = (obj.styleDeclaration) ? obj.styleDeclaration.addStyleToProtoChain(inheritChain, target) : inheritChain; obj.nonInheritingStyles = (obj.styleDeclaration) ? obj.styleDeclaration.addStyleToProtoChain(nonInheritChain, target) : nonInheritChain; } private static function addProperties(chain:Object, obj:IStyleClient, bInheriting:Boolean):Object{ var typeSelector:CSSStyleDeclaration; var classSelector:CSSStyleDeclaration; var filterMap:Object = ((((obj is StyleProxy)) && (!(bInheriting)))) ? StyleProxy(obj).filterMap : null; var curObj:IStyleClient = obj; while ((curObj is StyleProxy)) { curObj = StyleProxy(curObj).source; }; var target:DisplayObject = (curObj as DisplayObject); var typeSelectors:Array = obj.getClassStyleDeclarations(); var n:int = typeSelectors.length; var i:int; while (i < n) { typeSelector = typeSelectors[i]; chain = typeSelector.addStyleToProtoChain(chain, target, filterMap); if (typeSelector.effects){ obj.registerEffects(typeSelector.effects); }; i++; }; var styleName:Object = obj.styleName; if (styleName){ if (typeof(styleName) == "object"){ if ((styleName is CSSStyleDeclaration)){ classSelector = CSSStyleDeclaration(styleName); } else { chain = addProperties(chain, IStyleClient(styleName), bInheriting); }; } else { classSelector = StyleManager.getStyleDeclaration(("." + styleName)); }; if (classSelector){ chain = classSelector.addStyleToProtoChain(chain, target, filterMap); if (classSelector.effects){ obj.registerEffects(classSelector.effects); }; }; }; if (obj.styleDeclaration){ chain = obj.styleDeclaration.addStyleToProtoChain(chain, target, filterMap); }; return (chain); } public static function initTextField(obj:IUITextField):void{ var classSelector:CSSStyleDeclaration; var styleName:Object = obj.styleName; if (styleName){ if (typeof(styleName) == "object"){ if ((styleName is CSSStyleDeclaration)){ classSelector = CSSStyleDeclaration(styleName); } else { if ((styleName is StyleProxy)){ obj.inheritingStyles = IStyleClient(styleName).inheritingStyles; obj.nonInheritingStyles = addProperties(StyleManager.stylesRoot, IStyleClient(styleName), false); return; }; obj.inheritingStyles = IStyleClient(styleName).inheritingStyles; obj.nonInheritingStyles = IStyleClient(styleName).nonInheritingStyles; return; }; } else { classSelector = StyleManager.getStyleDeclaration(("." + styleName)); }; }; var inheritChain:Object = IStyleClient(obj.parent).inheritingStyles; var nonInheritChain:Object = StyleManager.stylesRoot; if (!inheritChain){ inheritChain = StyleManager.stylesRoot; }; if (classSelector){ inheritChain = classSelector.addStyleToProtoChain(inheritChain, DisplayObject(obj)); nonInheritChain = classSelector.addStyleToProtoChain(nonInheritChain, DisplayObject(obj)); }; obj.inheritingStyles = inheritChain; obj.nonInheritingStyles = nonInheritChain; } } }//package mx.styles
Section 259
//StyleProxy (mx.styles.StyleProxy) package mx.styles { import mx.core.*; public class StyleProxy implements IStyleClient { private var _source:IStyleClient; private var _filterMap:Object; mx_internal static const VERSION:String = "3.2.0.3958"; public function StyleProxy(source:IStyleClient, filterMap:Object){ super(); this.filterMap = filterMap; this.source = source; } public function styleChanged(styleProp:String):void{ return (_source.styleChanged(styleProp)); } public function get filterMap():Object{ return (((FlexVersion.compatibilityVersion < FlexVersion.VERSION_3_0)) ? null : _filterMap); } public function set filterMap(value:Object):void{ _filterMap = value; } public function get styleDeclaration():CSSStyleDeclaration{ return (_source.styleDeclaration); } public function notifyStyleChangeInChildren(styleProp:String, recursive:Boolean):void{ return (_source.notifyStyleChangeInChildren(styleProp, recursive)); } public function set inheritingStyles(value:Object):void{ } public function get source():IStyleClient{ return (_source); } public function get styleName():Object{ if ((_source.styleName is IStyleClient)){ return (new StyleProxy(IStyleClient(_source.styleName), filterMap)); }; return (_source.styleName); } public function registerEffects(effects:Array):void{ return (_source.registerEffects(effects)); } public function regenerateStyleCache(recursive:Boolean):void{ _source.regenerateStyleCache(recursive); } public function get inheritingStyles():Object{ return (_source.inheritingStyles); } public function get className():String{ return (_source.className); } public function clearStyle(styleProp:String):void{ _source.clearStyle(styleProp); } public function getClassStyleDeclarations():Array{ return (_source.getClassStyleDeclarations()); } public function set nonInheritingStyles(value:Object):void{ } public function setStyle(styleProp:String, newValue):void{ _source.setStyle(styleProp, newValue); } public function get nonInheritingStyles():Object{ return (((FlexVersion.compatibilityVersion < FlexVersion.VERSION_3_0)) ? _source.nonInheritingStyles : null); } public function set styleName(value:Object):void{ _source.styleName = value; } public function getStyle(styleProp:String){ return (_source.getStyle(styleProp)); } public function set source(value:IStyleClient):void{ _source = value; } public function set styleDeclaration(value:CSSStyleDeclaration):void{ _source.styleDeclaration = styleDeclaration; } } }//package mx.styles
Section 260
//ArrayUtil (mx.utils.ArrayUtil) package mx.utils { public class ArrayUtil { mx_internal static const VERSION:String = "3.2.0.3958"; public function ArrayUtil(){ super(); } public static function getItemIndex(item:Object, source:Array):int{ var n:int = source.length; var i:int; while (i < n) { if (source[i] === item){ return (i); }; i++; }; return (-1); } public static function toArray(obj:Object):Array{ if (!obj){ return ([]); }; if ((obj is Array)){ return ((obj as Array)); }; return ([obj]); } } }//package mx.utils
Section 261
//ColorUtil (mx.utils.ColorUtil) package mx.utils { public class ColorUtil { mx_internal static const VERSION:String = "3.2.0.3958"; public function ColorUtil(){ super(); } public static function adjustBrightness2(rgb:uint, brite:Number):uint{ var r:Number; var g:Number; var b:Number; if (brite == 0){ return (rgb); }; if (brite < 0){ brite = ((100 + brite) / 100); r = (((rgb >> 16) & 0xFF) * brite); g = (((rgb >> 8) & 0xFF) * brite); b = ((rgb & 0xFF) * brite); } else { brite = (brite / 100); r = ((rgb >> 16) & 0xFF); g = ((rgb >> 8) & 0xFF); b = (rgb & 0xFF); r = (r + ((0xFF - r) * brite)); g = (g + ((0xFF - g) * brite)); b = (b + ((0xFF - b) * brite)); r = Math.min(r, 0xFF); g = Math.min(g, 0xFF); b = Math.min(b, 0xFF); }; return ((((r << 16) | (g << 8)) | b)); } public static function rgbMultiply(rgb1:uint, rgb2:uint):uint{ var r1:Number = ((rgb1 >> 16) & 0xFF); var g1:Number = ((rgb1 >> 8) & 0xFF); var b1:Number = (rgb1 & 0xFF); var r2:Number = ((rgb2 >> 16) & 0xFF); var g2:Number = ((rgb2 >> 8) & 0xFF); var b2:Number = (rgb2 & 0xFF); return ((((((r1 * r2) / 0xFF) << 16) | (((g1 * g2) / 0xFF) << 8)) | ((b1 * b2) / 0xFF))); } public static function adjustBrightness(rgb:uint, brite:Number):uint{ var r:Number = Math.max(Math.min((((rgb >> 16) & 0xFF) + brite), 0xFF), 0); var g:Number = Math.max(Math.min((((rgb >> 8) & 0xFF) + brite), 0xFF), 0); var b:Number = Math.max(Math.min(((rgb & 0xFF) + brite), 0xFF), 0); return ((((r << 16) | (g << 8)) | b)); } } }//package mx.utils
Section 262
//DescribeTypeCache (mx.utils.DescribeTypeCache) package mx.utils { import mx.binding.*; import flash.utils.*; public class DescribeTypeCache { mx_internal static const VERSION:String = "3.2.0.3958"; private static var cacheHandlers:Object = {}; private static var typeCache:Object = {}; public function DescribeTypeCache(){ super(); } public static function describeType(o):DescribeTypeCacheRecord{ var className:String; var typeDescription:XML; var record:DescribeTypeCacheRecord; if ((o is String)){ className = o; } else { className = getQualifiedClassName(o); }; if ((className in typeCache)){ return (typeCache[className]); }; if ((o is String)){ o = getDefinitionByName(o); }; typeDescription = describeType(o); record = new DescribeTypeCacheRecord(); record.typeDescription = typeDescription; record.typeName = className; typeCache[className] = record; return (record); } public static function registerCacheHandler(valueName:String, handler:Function):void{ cacheHandlers[valueName] = handler; } static function extractValue(valueName:String, record:DescribeTypeCacheRecord){ if ((valueName in cacheHandlers)){ return (cacheHandlers[valueName](record)); }; return (undefined); } private static function bindabilityInfoHandler(record:DescribeTypeCacheRecord){ return (new BindabilityInfo(record.typeDescription)); } registerCacheHandler("bindabilityInfo", bindabilityInfoHandler); } }//package mx.utils
Section 263
//DescribeTypeCacheRecord (mx.utils.DescribeTypeCacheRecord) package mx.utils { import flash.utils.*; public dynamic class DescribeTypeCacheRecord extends Proxy { public var typeDescription:XML; public var typeName:String; private var cache:Object; public function DescribeTypeCacheRecord(){ cache = {}; super(); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function getProperty(name){ var result:* = cache[name]; if (result === undefined){ result = DescribeTypeCache.extractValue(name, this); cache[name] = result; }; return (result); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function hasProperty(name):Boolean{ if ((name in cache)){ return (true); }; var value:* = DescribeTypeCache.extractValue(name, this); if (value === undefined){ return (false); }; cache[name] = value; return (true); } } }//package mx.utils
Section 264
//EventUtil (mx.utils.EventUtil) package mx.utils { import mx.core.*; import flash.events.*; import mx.events.*; public class EventUtil { mx_internal static const VERSION:String = "3.2.0.3958"; private static var _sandboxEventMap:Object; private static var _mouseEventMap:Object; public function EventUtil(){ super(); } public static function get sandboxMouseEventMap():Object{ if (!_sandboxEventMap){ _sandboxEventMap = {}; _sandboxEventMap[SandboxMouseEvent.CLICK_SOMEWHERE] = MouseEvent.CLICK; _sandboxEventMap[SandboxMouseEvent.DOUBLE_CLICK_SOMEWHERE] = MouseEvent.DOUBLE_CLICK; _sandboxEventMap[SandboxMouseEvent.MOUSE_DOWN_SOMEWHERE] = MouseEvent.MOUSE_DOWN; _sandboxEventMap[SandboxMouseEvent.MOUSE_MOVE_SOMEWHERE] = MouseEvent.MOUSE_MOVE; _sandboxEventMap[SandboxMouseEvent.MOUSE_UP_SOMEWHERE] = MouseEvent.MOUSE_UP; _sandboxEventMap[SandboxMouseEvent.MOUSE_WHEEL_SOMEWHERE] = MouseEvent.MOUSE_WHEEL; }; return (_sandboxEventMap); } public static function get mouseEventMap():Object{ if (!_mouseEventMap){ _mouseEventMap = {}; _mouseEventMap[MouseEvent.CLICK] = SandboxMouseEvent.CLICK_SOMEWHERE; _mouseEventMap[MouseEvent.DOUBLE_CLICK] = SandboxMouseEvent.DOUBLE_CLICK_SOMEWHERE; _mouseEventMap[MouseEvent.MOUSE_DOWN] = SandboxMouseEvent.MOUSE_DOWN_SOMEWHERE; _mouseEventMap[MouseEvent.MOUSE_MOVE] = SandboxMouseEvent.MOUSE_MOVE_SOMEWHERE; _mouseEventMap[MouseEvent.MOUSE_UP] = SandboxMouseEvent.MOUSE_UP_SOMEWHERE; _mouseEventMap[MouseEvent.MOUSE_WHEEL] = SandboxMouseEvent.MOUSE_WHEEL_SOMEWHERE; }; return (_mouseEventMap); } } }//package mx.utils
Section 265
//GraphicsUtil (mx.utils.GraphicsUtil) package mx.utils { import flash.display.*; import mx.core.*; public class GraphicsUtil { mx_internal static const VERSION:String = "3.2.0.3958"; public function GraphicsUtil(){ super(); } public static function drawRoundRectComplex(graphics:Graphics, x:Number, y:Number, width:Number, height:Number, topLeftRadius:Number, topRightRadius:Number, bottomLeftRadius:Number, bottomRightRadius:Number):void{ var xw:Number = (x + width); var yh:Number = (y + height); var minSize:Number = ((width < height)) ? (width * 2) : (height * 2); topLeftRadius = ((topLeftRadius < minSize)) ? topLeftRadius : minSize; topRightRadius = ((topRightRadius < minSize)) ? topRightRadius : minSize; bottomLeftRadius = ((bottomLeftRadius < minSize)) ? bottomLeftRadius : minSize; bottomRightRadius = ((bottomRightRadius < minSize)) ? bottomRightRadius : minSize; var a:Number = (bottomRightRadius * 0.292893218813453); var s:Number = (bottomRightRadius * 0.585786437626905); graphics.moveTo(xw, (yh - bottomRightRadius)); graphics.curveTo(xw, (yh - s), (xw - a), (yh - a)); graphics.curveTo((xw - s), yh, (xw - bottomRightRadius), yh); a = (bottomLeftRadius * 0.292893218813453); s = (bottomLeftRadius * 0.585786437626905); graphics.lineTo((x + bottomLeftRadius), yh); graphics.curveTo((x + s), yh, (x + a), (yh - a)); graphics.curveTo(x, (yh - s), x, (yh - bottomLeftRadius)); a = (topLeftRadius * 0.292893218813453); s = (topLeftRadius * 0.585786437626905); graphics.lineTo(x, (y + topLeftRadius)); graphics.curveTo(x, (y + s), (x + a), (y + a)); graphics.curveTo((x + s), y, (x + topLeftRadius), y); a = (topRightRadius * 0.292893218813453); s = (topRightRadius * 0.585786437626905); graphics.lineTo((xw - topRightRadius), y); graphics.curveTo((xw - s), y, (xw - a), (y + a)); graphics.curveTo(xw, (y + s), xw, (y + topRightRadius)); graphics.lineTo(xw, (yh - bottomRightRadius)); } } }//package mx.utils
Section 266
//IXMLNotifiable (mx.utils.IXMLNotifiable) package mx.utils { public interface IXMLNotifiable { function xmlNotification(_arg1:Object, _arg2:String, _arg3:Object, _arg4:Object, _arg5:Object):void; } }//package mx.utils
Section 267
//LoaderUtil (mx.utils.LoaderUtil) package mx.utils { import flash.display.*; public class LoaderUtil { public function LoaderUtil(){ super(); } public static function normalizeURL(loaderInfo:LoaderInfo):String{ var url:String = loaderInfo.url; var results:Array = url.split("/[[DYNAMIC]]/"); return (results[0]); } public static function createAbsoluteURL(rootURL:String, url:String):String{ var lastIndex:int; var parentIndex:int; var absoluteURL:String = url; if (!(((((url.indexOf(":") > -1)) || ((url.indexOf("/") == 0)))) || ((url.indexOf("\\") == 0)))){ if (rootURL){ lastIndex = Math.max(rootURL.lastIndexOf("\\"), rootURL.lastIndexOf("/")); if (lastIndex <= 8){ rootURL = (rootURL + "/"); lastIndex = (rootURL.length - 1); }; if (url.indexOf("./") == 0){ url = url.substring(2); } else { while (url.indexOf("../") == 0) { url = url.substring(3); parentIndex = Math.max(rootURL.lastIndexOf("\\", (lastIndex - 1)), rootURL.lastIndexOf("/", (lastIndex - 1))); if (parentIndex <= 8){ parentIndex = lastIndex; }; lastIndex = parentIndex; }; }; if (lastIndex != -1){ absoluteURL = (rootURL.substr(0, (lastIndex + 1)) + url); }; }; }; return (absoluteURL); } } }//package mx.utils
Section 268
//NameUtil (mx.utils.NameUtil) package mx.utils { import flash.display.*; import mx.core.*; import flash.utils.*; public class NameUtil { mx_internal static const VERSION:String = "3.2.0.3958"; private static var counter:int = 0; public function NameUtil(){ super(); } public static function displayObjectToString(displayObject:DisplayObject):String{ var result:String; var o:DisplayObject; var s:String; var indices:Array; var displayObject = displayObject; o = displayObject; while (o != null) { if (((((o.parent) && (o.stage))) && ((o.parent == o.stage)))){ break; }; s = o.name; if ((o is IRepeaterClient)){ indices = IRepeaterClient(o).instanceIndices; if (indices){ s = (s + (("[" + indices.join("][")) + "]")); }; }; result = ((result == null)) ? s : ((s + ".") + result); o = o.parent; }; //unresolved jump var _slot1 = e; return (result); } public static function createUniqueName(object:Object):String{ if (!object){ return (null); }; var name:String = getQualifiedClassName(object); var index:int = name.indexOf("::"); if (index != -1){ name = name.substr((index + 2)); }; var charCode:int = name.charCodeAt((name.length - 1)); if ((((charCode >= 48)) && ((charCode <= 57)))){ name = (name + "_"); }; return ((name + counter++)); } } }//package mx.utils
Section 269
//object_proxy (mx.utils.object_proxy) package mx.utils { public namespace object_proxy = "http://www.adobe.com/2006/actionscript/flash/objectproxy"; }//package mx.utils
Section 270
//ObjectProxy (mx.utils.ObjectProxy) package mx.utils { import mx.core.*; import flash.events.*; import mx.events.*; import flash.utils.*; public dynamic class ObjectProxy extends Proxy implements IExternalizable, IPropertyChangeNotifier { private var _id:String; protected var notifiers:Object; protected var propertyList:Array; private var _proxyLevel:int; private var _type:QName; protected var dispatcher:EventDispatcher; protected var proxyClass:Class; private var _item:Object; public function ObjectProxy(item:Object=null, uid:String=null, proxyDepth:int=-1){ proxyClass = ObjectProxy; super(); if (!item){ item = {}; }; _item = item; _proxyLevel = proxyDepth; notifiers = {}; dispatcher = new EventDispatcher(this); if (uid){ _id = uid; }; } public function dispatchEvent(event:Event):Boolean{ return (dispatcher.dispatchEvent(event)); } public function hasEventListener(type:String):Boolean{ return (dispatcher.hasEventListener(type)); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function setProperty(name, value):void{ var notifier:IPropertyChangeNotifier; var event:PropertyChangeEvent; var oldVal:* = _item[name]; if (oldVal !== value){ _item[name] = value; notifier = IPropertyChangeNotifier(notifiers[name]); if (notifier){ notifier.removeEventListener(PropertyChangeEvent.PROPERTY_CHANGE, propertyChangeHandler); delete notifiers[name]; }; if (dispatcher.hasEventListener(PropertyChangeEvent.PROPERTY_CHANGE)){ if ((name is QName)){ name = QName(name).localName; }; event = PropertyChangeEvent.createUpdateEvent(this, name.toString(), oldVal, value); dispatcher.dispatchEvent(event); }; }; } public function willTrigger(type:String):Boolean{ return (dispatcher.willTrigger(type)); } public function readExternal(input:IDataInput):void{ var value:Object = input.readObject(); _item = value; } public function writeExternal(output:IDataOutput):void{ output.writeObject(_item); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function getProperty(name){ var result:*; if (notifiers[name.toString()]){ return (notifiers[name]); }; result = _item[name]; if (result){ if ((((_proxyLevel == 0)) || (ObjectUtil.isSimple(result)))){ return (result); }; result = getComplexProperty(name, result); }; return (result); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function hasProperty(name):Boolean{ return ((name in _item)); } public function get uid():String{ if (_id === null){ _id = UIDUtil.createUID(); }; return (_id); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function nextNameIndex(index:int):int{ if (index == 0){ setupPropertyList(); }; if (index < propertyList.length){ return ((index + 1)); }; return (0); } public function addEventListener(type:String, listener:Function, useCapture:Boolean=false, priority:int=0, useWeakReference:Boolean=false):void{ dispatcher.addEventListener(type, listener, useCapture, priority, useWeakReference); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function nextName(index:int):String{ return (propertyList[(index - 1)]); } public function set uid(value:String):void{ _id = value; } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function callProperty(name, ... _args){ return (_item[name].apply(_item, _args)); } public function removeEventListener(type:String, listener:Function, useCapture:Boolean=false):void{ dispatcher.removeEventListener(type, listener, useCapture); } protected function setupPropertyList():void{ var prop:String; if (getQualifiedClassName(_item) == "Object"){ propertyList = []; for (prop in _item) { propertyList.push(prop); }; } else { propertyList = ObjectUtil.getClassInfo(_item, null, {includeReadOnly:true, uris:["*"]}).properties; }; } object_proxy function getComplexProperty(name, value){ if ((value is IPropertyChangeNotifier)){ value.addEventListener(PropertyChangeEvent.PROPERTY_CHANGE, propertyChangeHandler); notifiers[name] = value; return (value); }; if (getQualifiedClassName(value) == "Object"){ value = new proxyClass(_item[name], null, ((_proxyLevel > 0)) ? (_proxyLevel - 1) : _proxyLevel); value.addEventListener(PropertyChangeEvent.PROPERTY_CHANGE, propertyChangeHandler); notifiers[name] = value; return (value); }; return (value); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function deleteProperty(name):Boolean{ var event:PropertyChangeEvent; var notifier:IPropertyChangeNotifier = IPropertyChangeNotifier(notifiers[name]); if (notifier){ notifier.removeEventListener(PropertyChangeEvent.PROPERTY_CHANGE, propertyChangeHandler); delete notifiers[name]; }; var oldVal:* = _item[name]; var deleted = delete _item[name]; if (dispatcher.hasEventListener(PropertyChangeEvent.PROPERTY_CHANGE)){ event = new PropertyChangeEvent(PropertyChangeEvent.PROPERTY_CHANGE); event.kind = PropertyChangeEventKind.DELETE; event.property = name; event.oldValue = oldVal; event.source = this; dispatcher.dispatchEvent(event); }; return (deleted); } object_proxy function get type():QName{ return (_type); } object_proxy function set type(value:QName):void{ _type = value; } public function propertyChangeHandler(event:PropertyChangeEvent):void{ dispatcher.dispatchEvent(event); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function nextValue(index:int){ return (_item[propertyList[(index - 1)]]); } object_proxy function get object():Object{ return (_item); } } }//package mx.utils
Section 271
//ObjectUtil (mx.utils.ObjectUtil) package mx.utils { import flash.utils.*; import mx.collections.*; import flash.xml.*; public class ObjectUtil { mx_internal static const VERSION:String = "3.2.0.3958"; private static var defaultToStringExcludes:Array = ["password", "credentials"]; private static var CLASS_INFO_CACHE:Object = {}; private static var refCount:int = 0; public function ObjectUtil(){ super(); } public static function isSimple(value:Object):Boolean{ var type = typeof(value); switch (type){ case "number": case "string": case "boolean": return (true); case "object": return ((((value is Date)) || ((value is Array)))); }; return (false); } private static function internalToString(value:Object, indent:int=0, refs:Dictionary=null, namespaceURIs:Array=null, exclude:Array=null):String{ var str:String; var classInfo:Object; var properties:Array; var id:Object; var isArray:Boolean; var isDict:Boolean; var prop:*; var j:int; var value = value; var indent = indent; var refs = refs; var namespaceURIs = namespaceURIs; var exclude = exclude; var type:String = ((value == null)) ? "null" : typeof(value); switch (type){ case "boolean": case "number": return (value.toString()); case "string": return ((("\"" + value.toString()) + "\"")); case "object": if ((value is Date)){ return (value.toString()); }; if ((value is XMLNode)){ return (value.toString()); }; if ((value is Class)){ return ((("(" + getQualifiedClassName(value)) + ")")); }; classInfo = getClassInfo(value, exclude, {includeReadOnly:true, uris:namespaceURIs}); properties = classInfo.properties; str = (("(" + classInfo.name) + ")"); if (refs == null){ refs = new Dictionary(true); }; id = refs[value]; if (id != null){ str = (str + ("#" + int(id))); return (str); }; if (value != null){ str = (str + ("#" + refCount.toString())); refs[value] = refCount; refCount++; }; isArray = (value is Array); isDict = (value is Dictionary); indent = (indent + 2); j = 0; for (;j < properties.length;(j = (j + 1))) { str = newline(str, indent); prop = properties[j]; if (isArray){ str = (str + "["); } else { if (isDict){ str = (str + "{"); }; }; if (isDict){ str = (str + internalToString(prop, indent, refs, namespaceURIs, exclude)); } else { str = (str + prop.toString()); }; if (isArray){ str = (str + "] "); } else { if (isDict){ str = (str + "} = "); } else { str = (str + " = "); }; }; str = (str + internalToString(value[prop], indent, refs, namespaceURIs, exclude)); continue; var _slot1 = e; str = (str + "?"); }; indent = (indent - 2); return (str); case "xml": return (value.toString()); default: return ((("(" + type) + ")")); }; } public static function getClassInfo(obj:Object, excludes:Array=null, options:Object=null):Object{ var n:int; var i:int; var result:Object; var cacheKey:String; var className:String; var classAlias:String; var properties:XMLList; var prop:XML; var metadataInfo:Object; var classInfo:XML; var numericIndex:Boolean; var key:*; var p:String; var pi:Number; var uris:Array; var uri:String; var qName:QName; var j:int; var obj = obj; var excludes = excludes; var options = options; if ((obj is ObjectProxy)){ obj = ObjectProxy(obj).object_proxy::object; }; if (options == null){ options = {includeReadOnly:true, uris:null, includeTransient:true}; }; var propertyNames:Array = []; var dynamic:Boolean; if (typeof(obj) == "xml"){ className = "XML"; properties = obj.text(); if (properties.length()){ propertyNames.push("*"); }; properties = obj.attributes(); } else { classInfo = DescribeTypeCache.describeType(obj).typeDescription; className = classInfo.@name.toString(); classAlias = classInfo.@alias.toString(); dynamic = (classInfo.@isDynamic.toString() == "true"); if (options.includeReadOnly){ properties = (classInfo..accessor.(@access != "writeonly") + classInfo..variable); } else { properties = (classInfo..accessor.(@access == "readwrite") + classInfo..variable); }; numericIndex = false; }; if (!dynamic){ cacheKey = getCacheKey(obj, excludes, options); result = CLASS_INFO_CACHE[cacheKey]; if (result != null){ return (result); }; }; result = {}; result["name"] = className; result["alias"] = classAlias; result["properties"] = propertyNames; result["dynamic"] = dynamic; var _local5 = recordMetadata(properties); metadataInfo = _local5; result["metadata"] = _local5; var excludeObject:Object = {}; if (excludes){ n = excludes.length; i = 0; while (i < n) { excludeObject[excludes[i]] = 1; i = (i + 1); }; }; var isArray = (className == "Array"); var isDict = (className == "flash.utils::Dictionary"); if (isDict){ for (key in obj) { propertyNames.push(key); }; } else { if (dynamic){ for (p in obj) { if (excludeObject[p] != 1){ if (isArray){ pi = parseInt(p); if (isNaN(pi)){ propertyNames.push(new QName("", p)); } else { propertyNames.push(pi); }; } else { propertyNames.push(new QName("", p)); }; }; }; numericIndex = ((isArray) && (!(isNaN(Number(p))))); }; }; if (((((isArray) || (isDict))) || ((className == "Object")))){ } else { if (className == "XML"){ n = properties.length(); i = 0; while (i < n) { p = properties[i].name(); if (excludeObject[p] != 1){ propertyNames.push(new QName("", ("@" + p))); }; i = (i + 1); }; } else { n = properties.length(); uris = options.uris; i = 0; for (;i < n;(i = (i + 1))) { prop = properties[i]; p = prop.@name.toString(); uri = prop.@uri.toString(); if (excludeObject[p] == 1){ } else { if (((!(options.includeTransient)) && (internalHasMetadata(metadataInfo, p, "Transient")))){ } else { if (uris != null){ if ((((uris.length == 1)) && ((uris[0] == "*")))){ qName = new QName(uri, p); obj[qName]; propertyNames.push(); //unresolved jump var _slot1 = e; } else { j = 0; for (;j < uris.length;(j = (j + 1))) { uri = uris[j]; if (prop.@uri.toString() == uri){ qName = new QName(uri, p); obj[qName]; propertyNames.push(qName); continue; var _slot1 = e; }; }; }; } else { if (uri.length == 0){ qName = new QName(uri, p); obj[qName]; propertyNames.push(qName); continue; var _slot1 = e; }; }; }; }; }; }; }; propertyNames.sort((Array.CASEINSENSITIVE | (numericIndex) ? Array.NUMERIC : 0)); if (!isDict){ i = 0; while (i < (propertyNames.length - 1)) { if (propertyNames[i].toString() == propertyNames[(i + 1)].toString()){ propertyNames.splice(i, 1); i = (i - 1); }; i = (i + 1); }; }; if (!dynamic){ cacheKey = getCacheKey(obj, excludes, options); CLASS_INFO_CACHE[cacheKey] = result; }; return (result); } private static function arrayCompare(a:Array, b:Array, currentDepth:int, desiredDepth:int, refs:Dictionary):int{ var key:Object; var result:int; if (a.length != b.length){ if (a.length < b.length){ result = -1; } else { result = 1; }; } else { for (key in a) { if (b.hasOwnProperty(key)){ result = internalCompare(a[key], b[key], currentDepth, desiredDepth, refs); if (result != 0){ return (result); }; } else { return (-1); }; }; for (key in b) { if (!a.hasOwnProperty(key)){ return (1); }; }; }; return (result); } public static function stringCompare(a:String, b:String, caseInsensitive:Boolean=false):int{ if ((((a == null)) && ((b == null)))){ return (0); }; if (a == null){ return (1); }; if (b == null){ return (-1); }; if (caseInsensitive){ a = a.toLocaleLowerCase(); b = b.toLocaleLowerCase(); }; var result:int = a.localeCompare(b); if (result < -1){ result = -1; } else { if (result > 1){ result = 1; }; }; return (result); } public static function dateCompare(a:Date, b:Date):int{ if ((((a == null)) && ((b == null)))){ return (0); }; if (a == null){ return (1); }; if (b == null){ return (-1); }; var na:Number = a.getTime(); var nb:Number = b.getTime(); if (na < nb){ return (-1); }; if (na > nb){ return (1); }; return (0); } public static function numericCompare(a:Number, b:Number):int{ if (((isNaN(a)) && (isNaN(b)))){ return (0); }; if (isNaN(a)){ return (1); }; if (isNaN(b)){ return (-1); }; if (a < b){ return (-1); }; if (a > b){ return (1); }; return (0); } private static function newline(str:String, n:int=0):String{ var result:String = str; result = (result + "\n"); var i:int; while (i < n) { result = (result + " "); i++; }; return (result); } private static function recordMetadata(properties:XMLList):Object{ var prop:XML; var propName:String; var metadataList:XMLList; var metadata:Object; var md:XML; var mdName:String; var argsList:XMLList; var value:Object; var arg:XML; var existing:Object; var argKey:String; var argValue:String; var existingArray:Array; var properties = properties; var result:Object; for each (prop in properties) { propName = prop.attribute("name").toString(); metadataList = prop.metadata; if (metadataList.length() > 0){ if (result == null){ result = {}; }; metadata = {}; result[propName] = metadata; for each (md in metadataList) { mdName = md.attribute("name").toString(); argsList = md.arg; value = {}; for each (arg in argsList) { argKey = arg.attribute("key").toString(); if (argKey != null){ argValue = arg.attribute("value").toString(); value[argKey] = argValue; }; }; existing = metadata[mdName]; if (existing != null){ if ((existing is Array)){ existingArray = (existing as Array); } else { existingArray = []; }; existingArray.push(value); existing = existingArray; } else { existing = value; }; metadata[mdName] = existing; }; }; }; //unresolved jump var _slot1 = e; return (result); } public static function compare(a:Object, b:Object, depth:int=-1):int{ return (internalCompare(a, b, 0, depth, new Dictionary(true))); } private static function listCompare(a:IList, b:IList, currentDepth:int, desiredDepth:int, refs:Dictionary):int{ var i:int; var result:int; if (a.length != b.length){ if (a.length < b.length){ result = -1; } else { result = 1; }; } else { i = 0; while (i < a.length) { result = internalCompare(a.getItemAt(i), b.getItemAt(i), (currentDepth + 1), desiredDepth, refs); if (result != 0){ i = a.length; }; i++; }; }; return (result); } private static function internalCompare(a:Object, b:Object, currentDepth:int, desiredDepth:int, refs:Dictionary):int{ var newDepth:int; var aRef:Boolean; var bRef:Boolean; var aProps:Array; var bProps:Array; var propName:QName; var aProp:Object; var bProp:Object; var i:int; if ((((a == null)) && ((b == null)))){ return (0); }; if (a == null){ return (1); }; if (b == null){ return (-1); }; if ((a is ObjectProxy)){ a = ObjectProxy(a).object_proxy::object; }; if ((b is ObjectProxy)){ b = ObjectProxy(b).object_proxy::object; }; var typeOfA = typeof(a); var typeOfB = typeof(b); var result:int; if (typeOfA == typeOfB){ switch (typeOfA){ case "boolean": result = numericCompare(Number(a), Number(b)); break; case "number": result = numericCompare((a as Number), (b as Number)); break; case "string": result = stringCompare((a as String), (b as String)); break; case "object": newDepth = ((desiredDepth > 0)) ? (desiredDepth - 1) : desiredDepth; aRef = refs[a]; bRef = refs[b]; if (((aRef) && (!(bRef)))){ return (1); }; if (((bRef) && (!(aRef)))){ return (-1); }; if (((bRef) && (aRef))){ return (0); }; refs[a] = true; refs[b] = true; if (((!((desiredDepth == -1))) && ((currentDepth > desiredDepth)))){ result = stringCompare(a.toString(), b.toString()); } else { if ((((a is Array)) && ((b is Array)))){ result = arrayCompare((a as Array), (b as Array), currentDepth, desiredDepth, refs); } else { if ((((a is Date)) && ((b is Date)))){ result = dateCompare((a as Date), (b as Date)); } else { if ((((a is IList)) && ((b is IList)))){ result = listCompare((a as IList), (b as IList), currentDepth, desiredDepth, refs); } else { if ((((a is ByteArray)) && ((b is ByteArray)))){ result = byteArrayCompare((a as ByteArray), (b as ByteArray)); } else { if (getQualifiedClassName(a) == getQualifiedClassName(b)){ aProps = getClassInfo(a).properties; if (getQualifiedClassName(a) == "Object"){ bProps = getClassInfo(b).properties; result = arrayCompare(aProps, bProps, currentDepth, newDepth, refs); }; if (result != 0){ return (result); }; i = 0; while (i < aProps.length) { propName = aProps[i]; aProp = a[propName]; bProp = b[propName]; result = internalCompare(aProp, bProp, (currentDepth + 1), newDepth, refs); if (result != 0){ i = aProps.length; }; i++; }; } else { return (1); }; }; }; }; }; }; break; }; } else { return (stringCompare(typeOfA, typeOfB)); }; return (result); } public static function hasMetadata(obj:Object, propName:String, metadataName:String, excludes:Array=null, options:Object=null):Boolean{ var classInfo:Object = getClassInfo(obj, excludes, options); var metadataInfo:Object = classInfo["metadata"]; return (internalHasMetadata(metadataInfo, propName, metadataName)); } private static function internalHasMetadata(metadataInfo:Object, propName:String, metadataName:String):Boolean{ var metadata:Object; if (metadataInfo != null){ metadata = metadataInfo[propName]; if (metadata != null){ if (metadata[metadataName] != null){ return (true); }; }; }; return (false); } public static function toString(value:Object, namespaceURIs:Array=null, exclude:Array=null):String{ if (exclude == null){ exclude = defaultToStringExcludes; }; refCount = 0; return (internalToString(value, 0, null, namespaceURIs, exclude)); } private static function byteArrayCompare(a:ByteArray, b:ByteArray):int{ var i:int; var result:int; if (a.length != b.length){ if (a.length < b.length){ result = -1; } else { result = 1; }; } else { a.position = 0; b.position = 0; i = 0; while (i < a.length) { result = numericCompare(a.readByte(), b.readByte()); if (result != 0){ i = a.length; }; i++; }; }; return (result); } public static function copy(value:Object):Object{ var buffer:ByteArray = new ByteArray(); buffer.writeObject(value); buffer.position = 0; var result:Object = buffer.readObject(); return (result); } private static function getCacheKey(o:Object, excludes:Array=null, options:Object=null):String{ var i:uint; var excl:String; var flag:String; var value:String; var key:String = getQualifiedClassName(o); if (excludes != null){ i = 0; while (i < excludes.length) { excl = (excludes[i] as String); if (excl != null){ key = (key + excl); }; i++; }; }; if (options != null){ for (flag in options) { key = (key + flag); value = (options[flag] as String); if (value != null){ key = (key + value); }; }; }; return (key); } } }//package mx.utils
Section 272
//SecurityUtil (mx.utils.SecurityUtil) package mx.utils { import mx.core.*; public class SecurityUtil { mx_internal static const VERSION:String = "3.2.0.3958"; public function SecurityUtil(){ super(); } public static function hasMutualTrustBetweenParentAndChild(bp:ISWFBridgeProvider):Boolean{ if (((((bp) && (bp.childAllowsParent))) && (bp.parentAllowsChild))){ return (true); }; return (false); } } }//package mx.utils
Section 273
//StringUtil (mx.utils.StringUtil) package mx.utils { import mx.core.*; public class StringUtil { mx_internal static const VERSION:String = "3.2.0.3958"; public function StringUtil(){ super(); } public static function trim(str:String):String{ if (str == null){ return (""); }; var startIndex:int; while (isWhitespace(str.charAt(startIndex))) { startIndex++; }; var endIndex:int = (str.length - 1); while (isWhitespace(str.charAt(endIndex))) { endIndex--; }; if (endIndex >= startIndex){ return (str.slice(startIndex, (endIndex + 1))); }; return (""); } public static function isWhitespace(character:String):Boolean{ switch (character){ case " ": case "\t": case "\r": case "\n": case "\f": return (true); default: return (false); }; } public static function substitute(str:String, ... _args):String{ var args:Array; if (str == null){ return (""); }; var len:uint = _args.length; if ((((len == 1)) && ((_args[0] is Array)))){ args = (_args[0] as Array); len = args.length; } else { args = _args; }; var i:int; while (i < len) { str = str.replace(new RegExp((("\\{" + i) + "\\}"), "g"), args[i]); i++; }; return (str); } public static function trimArrayElements(value:String, delimiter:String):String{ var items:Array; var len:int; var i:int; if (((!((value == ""))) && (!((value == null))))){ items = value.split(delimiter); len = items.length; i = 0; while (i < len) { items[i] = StringUtil.trim(items[i]); i++; }; if (len > 0){ value = items.join(delimiter); }; }; return (value); } } }//package mx.utils
Section 274
//UIDUtil (mx.utils.UIDUtil) package mx.utils { import mx.core.*; import flash.utils.*; public class UIDUtil { mx_internal static const VERSION:String = "3.2.0.3958"; private static const ALPHA_CHAR_CODES:Array = [48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 65, 66, 67, 68, 69, 70]; private static var uidDictionary:Dictionary = new Dictionary(true); public function UIDUtil(){ super(); } public static function fromByteArray(ba:ByteArray):String{ var chars:Array; var index:uint; var i:uint; var b:int; if (((((!((ba == null))) && ((ba.length >= 16)))) && ((ba.bytesAvailable >= 16)))){ chars = new Array(36); index = 0; i = 0; while (i < 16) { if ((((((((i == 4)) || ((i == 6)))) || ((i == 8)))) || ((i == 10)))){ var _temp1 = index; index = (index + 1); var _local6 = _temp1; chars[_local6] = 45; }; b = ba.readByte(); var _temp2 = index; index = (index + 1); _local6 = _temp2; chars[_local6] = ALPHA_CHAR_CODES[((b & 240) >>> 4)]; var _temp3 = index; index = (index + 1); var _local7 = _temp3; chars[_local7] = ALPHA_CHAR_CODES[(b & 15)]; i++; }; return (String.fromCharCode.apply(null, chars)); }; return (null); } public static function isUID(uid:String):Boolean{ var i:uint; var c:Number; if (((!((uid == null))) && ((uid.length == 36)))){ i = 0; while (i < 36) { c = uid.charCodeAt(i); if ((((((((i == 8)) || ((i == 13)))) || ((i == 18)))) || ((i == 23)))){ if (c != 45){ return (false); }; } else { if ((((((c < 48)) || ((c > 70)))) || ((((c > 57)) && ((c < 65)))))){ return (false); }; }; i++; }; return (true); }; return (false); } public static function createUID():String{ var i:int; var j:int; var uid:Array = new Array(36); var index:int; i = 0; while (i < 8) { var _temp1 = index; index = (index + 1); var _local7 = _temp1; uid[_local7] = ALPHA_CHAR_CODES[Math.floor((Math.random() * 16))]; i++; }; i = 0; while (i < 3) { var _temp2 = index; index = (index + 1); _local7 = _temp2; uid[_local7] = 45; j = 0; while (j < 4) { var _temp3 = index; index = (index + 1); var _local8 = _temp3; uid[_local8] = ALPHA_CHAR_CODES[Math.floor((Math.random() * 16))]; j++; }; i++; }; var _temp4 = index; index = (index + 1); _local7 = _temp4; uid[_local7] = 45; var time:Number = new Date().getTime(); var timeString:String = ("0000000" + time.toString(16).toUpperCase()).substr(-8); i = 0; while (i < 8) { var _temp5 = index; index = (index + 1); _local8 = _temp5; uid[_local8] = timeString.charCodeAt(i); i++; }; i = 0; while (i < 4) { var _temp6 = index; index = (index + 1); _local8 = _temp6; uid[_local8] = ALPHA_CHAR_CODES[Math.floor((Math.random() * 16))]; i++; }; return (String.fromCharCode.apply(null, uid)); } public static function toByteArray(uid:String):ByteArray{ var result:ByteArray; var i:uint; var c:String; var h1:uint; var h2:uint; if (isUID(uid)){ result = new ByteArray(); i = 0; while (i < uid.length) { c = uid.charAt(i); if (c == "-"){ } else { h1 = getDigit(c); i++; h2 = getDigit(uid.charAt(i)); result.writeByte((((h1 << 4) | h2) & 0xFF)); }; i++; }; result.position = 0; return (result); }; return (null); } private static function getDigit(hex:String):uint{ switch (hex){ case "A": case "a": return (10); case "B": case "b": return (11); case "C": case "c": return (12); case "D": case "d": return (13); case "E": case "e": return (14); case "F": case "f": return (15); default: return (new uint(hex)); }; } public static function getUID(item:Object):String{ var result:String; var xitem:XML; var nodeKind:String; var notificationFunction:Function; var item = item; result = null; if (item == null){ return (result); }; if ((item is IUID)){ result = IUID(item).uid; if ((((result == null)) || ((result.length == 0)))){ result = createUID(); IUID(item).uid = result; }; } else { if ((((item is IPropertyChangeNotifier)) && (!((item is IUIComponent))))){ result = IPropertyChangeNotifier(item).uid; if ((((result == null)) || ((result.length == 0)))){ result = createUID(); IPropertyChangeNotifier(item).uid = result; }; } else { if ((item is String)){ return ((item as String)); }; if ((((item is XMLList)) && ((item.length == 1)))){ item = item[0]; }; if ((item is XML)){ xitem = XML(item); nodeKind = xitem.nodeKind(); if ((((nodeKind == "text")) || ((nodeKind == "attribute")))){ return (xitem.toString()); }; notificationFunction = xitem.notification(); if (!(notificationFunction is Function)){ notificationFunction = XMLNotifier.initializeXMLForNotification(); xitem.setNotification(notificationFunction); }; if (notificationFunction["uid"] == undefined){ result = (notificationFunction["uid"] = createUID()); }; result = notificationFunction["uid"]; } else { if (("mx_internal_uid" in item)){ return (item.mx_internal_uid); }; if (("uid" in item)){ return (item.uid); }; result = uidDictionary[item]; if (!result){ result = createUID(); item.mx_internal_uid = result; //unresolved jump var _slot1 = e; uidDictionary[item] = result; }; }; //unresolved jump var _slot1 = e; result = item.toString(); }; }; return (result); } } }//package mx.utils
Section 275
//XMLNotifier (mx.utils.XMLNotifier) package mx.utils { import flash.utils.*; public class XMLNotifier { mx_internal static const VERSION:String = "3.2.0.3958"; private static var instance:XMLNotifier; public function XMLNotifier(x:XMLNotifierSingleton){ super(); } public function watchXML(xml:Object, notifiable:IXMLNotifiable, uid:String=null):void{ var xmlWatchers:Dictionary; var xitem:XML = XML(xml); var watcherFunction:Object = xitem.notification(); if (!(watcherFunction is Function)){ watcherFunction = initializeXMLForNotification(); xitem.setNotification((watcherFunction as Function)); if (((uid) && ((watcherFunction["uid"] == null)))){ watcherFunction["uid"] = uid; }; }; if (watcherFunction["watched"] == undefined){ xmlWatchers = new Dictionary(true); watcherFunction["watched"] = xmlWatchers; } else { xmlWatchers = watcherFunction["watched"]; }; xmlWatchers[notifiable] = true; } public function unwatchXML(xml:Object, notifiable:IXMLNotifiable):void{ var xmlWatchers:Dictionary; var xitem:XML = XML(xml); var watcherFunction:Object = xitem.notification(); if (!(watcherFunction is Function)){ return; }; if (watcherFunction["watched"] != undefined){ xmlWatchers = watcherFunction["watched"]; delete xmlWatchers[notifiable]; }; } public static function getInstance():XMLNotifier{ if (!instance){ instance = new XMLNotifier(new XMLNotifierSingleton()); }; return (instance); } mx_internal static function initializeXMLForNotification():Function{ var notificationFunction:Function = function (currentTarget:Object, ty:String, tar:Object, value:Object, detail:Object):void{ var notifiable:Object; var xmlWatchers:Dictionary = arguments.callee.watched; if (xmlWatchers != null){ for (notifiable in xmlWatchers) { IXMLNotifiable(notifiable).xmlNotification(currentTarget, ty, tar, value, detail); }; }; }; return (notificationFunction); } } }//package mx.utils class XMLNotifierSingleton { private function XMLNotifierSingleton(){ super(); } }
Section 276
//IValidatorListener (mx.validators.IValidatorListener) package mx.validators { import mx.events.*; public interface IValidatorListener { function set errorString(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\validators;IValidatorListener.as:String):void; function get validationSubField():String; function validationResultHandler(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\validators;IValidatorListener.as:ValidationResultEvent):void; function set validationSubField(C:\autobuild\3.2.0\frameworks\projects\framework\src;mx\validators;IValidatorListener.as:String):void; function get errorString():String; } }//package mx.validators
Section 277
//ValidationResult (mx.validators.ValidationResult) package mx.validators { public class ValidationResult { public var subField:String; public var errorCode:String; public var isError:Boolean; public var errorMessage:String; mx_internal static const VERSION:String = "3.2.0.3958"; public function ValidationResult(isError:Boolean, subField:String="", errorCode:String="", errorMessage:String=""){ super(); this.isError = isError; this.subField = subField; this.errorMessage = errorMessage; this.errorCode = errorCode; } } }//package mx.validators
Section 278
//Log (SWFStats.Log) package SWFStats { import flash.events.*; import flash.utils.*; import flash.system.*; import flash.net.*; import flash.external.*; public final class Log { private static const PingR:Timer = new Timer(30000); private static const PingF:Timer = new Timer(60000); public static var GUID:String = ""; private static var Plays:int = 0; public static var Enabled:Boolean = false; private static var Request:LogRequest = new LogRequest(); private static var Pings:int = 0; public static var Queue:Boolean = true; public static var SourceUrl:String; private static var HighestGoal:int = 0; private static var FirstPing:Boolean = true; public static var SWFID:int = 0; public function Log(){ super(); } private static function SaveCookie(n:String, v:int):void{ var cookie:SharedObject = SharedObject.getLocal("swfstats"); cookie.data[n] = v.toString(); cookie.flush(); } public static function View(swfid:int=0, guid:String="", defaulturl:String=""):void{ if (SWFID > 0){ return; }; SWFID = swfid; GUID = guid; Enabled = true; if ((((SWFID == 0)) || ((GUID == "")))){ Enabled = false; return; }; if (((((!((defaulturl.indexOf("http://") == 0))) && (!((Security.sandboxType == "localWithNetwork"))))) && (!((Security.sandboxType == "localTrusted"))))){ Enabled = false; return; }; SourceUrl = GetUrl(defaulturl); if ((((SourceUrl == null)) || ((SourceUrl == "")))){ Enabled = false; return; }; Security.allowDomain("http://tracker.swfstats.com/"); Security.allowInsecureDomain("http://tracker.swfstats.com/"); Security.loadPolicyFile("http://tracker.swfstats.com/crossdomain.xml"); Security.allowDomain("http://utils.swfstats.com/"); Security.allowInsecureDomain("http://utils.swfstats.com/"); Security.loadPolicyFile("http://utils.swfstats.com/crossdomain.xml"); var views:int = GetCookie("views"); views++; SaveCookie("views", views); Send(("v/" + views), true); PingF.addEventListener(TimerEvent.TIMER, PingServer); PingF.start(); } public static function LevelCounterMetric(name:String, level):void{ if (!Enabled){ return; }; Send(((("lc/" + Clean(name)) + "/") + Clean(level))); } private static function Clean(s:String):String{ return (escape(s.replace("/", "\\").replace("~", "-"))); } public static function Play():void{ if (!Enabled){ return; }; Plays++; Send(("p/" + Plays)); } private static function Send(s:String, view:Boolean=false):void{ Request.Queue(s); if (((((Request.Ready) || (view))) || (!(Queue)))){ Request.Send(); Request = new LogRequest(); }; } private static function GetUrl(defaulturl:String):String{ var url:String; var defaulturl = defaulturl; if (ExternalInterface.available){ url = String(ExternalInterface.call("window.location.href.toString")); //unresolved jump var _slot1 = s; url = defaulturl; } else { if (defaulturl.indexOf("http://") == 0){ url = defaulturl; }; }; if ((((((url == null)) || ((url == "")))) || ((url == "null")))){ if ((((Security.sandboxType == "localWithNetwork")) || ((Security.sandboxType == "localTrusted")))){ url = "http://local-testing/"; } else { url = null; }; }; return (escape(url)); } public static function LevelRangedMetric(name:String, level, value:int):void{ if (!Enabled){ return; }; Send(((((("lr/" + Clean(name)) + "/") + Clean(level)) + "/") + value)); } private static function GetCookie(n:String):int{ var cookie:SharedObject = SharedObject.getLocal("swfstats"); if (cookie.data[n] == undefined){ return (0); }; return (int(cookie.data[n])); } public static function Goal(n:int, name:String):void{ } private static function PingServer(... _args):void{ if (!Enabled){ return; }; Pings++; Send(((("t/" + (FirstPing) ? "y" : "n") + "/") + Pings), true); if (FirstPing){ PingF.stop(); PingR.addEventListener(TimerEvent.TIMER, PingServer); PingR.start(); FirstPing = false; }; } public static function LevelAverageMetric(name:String, level, value:int):void{ if (!Enabled){ return; }; Send(((((("la/" + Clean(name)) + "/") + Clean(level)) + "/") + value)); } public static function CustomMetric(name:String, group:String=null):void{ if (!Enabled){ return; }; if (group == null){ group = ""; }; Send(((("c/" + Clean(name)) + "/") + Clean(group))); } } }//package SWFStats
Section 279
//LogRequest (SWFStats.LogRequest) package SWFStats { import flash.events.*; import flash.net.*; public final class LogRequest { private var Data:String;// = "" public var Ready:Boolean;// = false private var Pieces:int; private static var Failed:int = 0; public function LogRequest(){ super(); } private function IOErrorHandler(e:IOErrorEvent):void{ Failed++; } public function Queue(data:String):void{ if (Failed > 3){ return; }; this.Pieces++; this.Data = (this.Data + (((this.Data == "")) ? "" : "~" + data)); if ((((this.Pieces == 8)) || ((this.Data.length > 300)))){ this.Ready = true; }; } private function SecurityErrorHandler(e:SecurityErrorEvent):void{ } private function StatusChange(e:HTTPStatusEvent):void{ } public function Send():void{ var sendaction:URLLoader = new URLLoader(); sendaction.addEventListener(IOErrorEvent.IO_ERROR, this.IOErrorHandler); sendaction.addEventListener(HTTPStatusEvent.HTTP_STATUS, this.StatusChange); sendaction.addEventListener(SecurityErrorEvent.SECURITY_ERROR, this.SecurityErrorHandler); sendaction.load(new URLRequest((((((((((("http://tracker.swfstats.com/Games/q.aspx?guid=" + Log.GUID) + "&swfid=") + Log.SWFID) + "&q=") + this.Data) + "&url=") + Log.SourceUrl) + "&") + Math.random()) + "z"))); trace((((((((((("http://tracker.swfstats.com/Games/q.aspx?guid=" + Log.GUID) + "&swfid=") + Log.SWFID) + "&q=") + this.Data) + "&url=") + Log.SourceUrl) + "&") + Math.random()) + "z")); } } }//package SWFStats
Section 280
//_activeButtonStyleStyle (_activeButtonStyleStyle) package { import mx.core.*; import mx.styles.*; public class _activeButtonStyleStyle { public static function init(_activeButtonStyleStyle:IFlexModuleFactory):void{ var fbs = _activeButtonStyleStyle; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".activeButtonStyle"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".activeButtonStyle", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ }; }; } } }//package
Section 281
//_activeTabStyleStyle (_activeTabStyleStyle) package { import mx.core.*; import mx.styles.*; public class _activeTabStyleStyle { public static function init(:IFlexModuleFactory):void{ var fbs = ; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".activeTabStyle"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".activeTabStyle", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.fontWeight = "bold"; }; }; } } }//package
Section 282
//_advancedDataGridStylesStyle (_advancedDataGridStylesStyle) package { import mx.core.*; import mx.styles.*; public class _advancedDataGridStylesStyle { public static function init(:IFlexModuleFactory):void{ var fbs = ; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".advancedDataGridStyles"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".advancedDataGridStyles", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.fontWeight = "bold"; }; }; } } }//package
Section 283
//_alertButtonStyleStyle (_alertButtonStyleStyle) package { import mx.core.*; import mx.styles.*; public class _alertButtonStyleStyle { public static function init(:IFlexModuleFactory):void{ var fbs = ; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".alertButtonStyle"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".alertButtonStyle", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.color = 734012; }; }; } } }//package
Section 284
//_ApplicationStyle (_ApplicationStyle) package { import mx.core.*; import mx.styles.*; import mx.skins.halo.*; public class _ApplicationStyle { public static function init(paddingRight:IFlexModuleFactory):void{ var fbs = paddingRight; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration("Application"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration("Application", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.paddingTop = 24; this.paddingLeft = 24; this.backgroundGradientAlphas = [1, 1]; this.horizontalAlign = "center"; this.paddingRight = 24; this.backgroundImage = ApplicationBackground; this.paddingBottom = 24; this.backgroundSize = "100%"; this.backgroundColor = 8821927; }; }; } } }//package
Section 285
//_ButtonStyle (_ButtonStyle) package { import mx.core.*; import mx.styles.*; import mx.skins.halo.*; public class _ButtonStyle { public static function init(paddingLeft:IFlexModuleFactory):void{ var fbs = paddingLeft; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration("Button"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration("Button", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.paddingTop = 2; this.textAlign = "center"; this.skin = ButtonSkin; this.paddingLeft = 10; this.fontWeight = "bold"; this.cornerRadius = 4; this.paddingRight = 10; this.verticalGap = 2; this.horizontalGap = 2; this.paddingBottom = 2; }; }; } } }//package
Section 286
//_comboDropdownStyle (_comboDropdownStyle) package { import mx.core.*; import mx.styles.*; public class _comboDropdownStyle { public static function init(dropShadowEnabled:IFlexModuleFactory):void{ var fbs = dropShadowEnabled; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".comboDropdown"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".comboDropdown", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.paddingLeft = 5; this.fontWeight = "normal"; this.cornerRadius = 0; this.paddingRight = 5; this.dropShadowEnabled = true; this.shadowDirection = "center"; this.leading = 0; this.borderThickness = 0; this.shadowDistance = 1; this.backgroundColor = 0xFFFFFF; }; }; } } }//package
Section 287
//_ContainerStyle (_ContainerStyle) package { import mx.core.*; import mx.styles.*; public class _ContainerStyle { public static function init(:IFlexModuleFactory):void{ var fbs = ; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration("Container"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration("Container", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.borderStyle = "none"; }; }; } } }//package
Section 288
//_CursorManagerStyle (_CursorManagerStyle) package { import mx.core.*; import mx.styles.*; import mx.skins.halo.*; public class _CursorManagerStyle { private static var _embed_css_Assets_swf_mx_skins_cursor_BusyCursor_1461192554:Class = _CursorManagerStyle__embed_css_Assets_swf_mx_skins_cursor_BusyCursor_1461192554; public static function init(mx.skins.halo:IFlexModuleFactory):void{ var fbs = mx.skins.halo; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration("CursorManager"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration("CursorManager", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.busyCursor = BusyCursor; this.busyCursorBackground = _embed_css_Assets_swf_mx_skins_cursor_BusyCursor_1461192554; }; }; } } }//package
Section 289
//_CursorManagerStyle__embed_css_Assets_swf_mx_skins_cursor_BusyCursor_1461192554 (_CursorManagerStyle__embed_css_Assets_swf_mx_skins_cursor_BusyCursor_1461192554) package { import mx.core.*; public class _CursorManagerStyle__embed_css_Assets_swf_mx_skins_cursor_BusyCursor_1461192554 extends SpriteAsset { } }//package
Section 290
//_dataGridStylesStyle (_dataGridStylesStyle) package { import mx.core.*; import mx.styles.*; public class _dataGridStylesStyle { public static function init(:IFlexModuleFactory):void{ var fbs = ; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".dataGridStyles"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".dataGridStyles", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.fontWeight = "bold"; }; }; } } }//package
Section 291
//_dateFieldPopupStyle (_dateFieldPopupStyle) package { import mx.core.*; import mx.styles.*; public class _dateFieldPopupStyle { public static function init(_dateFieldPopupStyle.as$22:IFlexModuleFactory):void{ var fbs = _dateFieldPopupStyle.as$22; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".dateFieldPopup"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".dateFieldPopup", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.dropShadowEnabled = true; this.borderThickness = 0; this.backgroundColor = 0xFFFFFF; }; }; } } }//package
Section 292
//_errorTipStyle (_errorTipStyle) package { import mx.core.*; import mx.styles.*; public class _errorTipStyle { public static function init(fontWeight:IFlexModuleFactory):void{ var fbs = fontWeight; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".errorTip"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".errorTip", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.paddingTop = 4; this.borderColor = 13510953; this.paddingLeft = 4; this.color = 0xFFFFFF; this.fontWeight = "bold"; this.paddingRight = 4; this.shadowColor = 0; this.fontSize = 9; this.paddingBottom = 4; this.borderStyle = "errorTipRight"; }; }; } } }//package
Section 293
//_globalStyle (_globalStyle) package { import mx.core.*; import mx.styles.*; import mx.skins.halo.*; public class _globalStyle { public static function init(borderAlpha:IFlexModuleFactory):void{ var fbs = borderAlpha; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration("global"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration("global", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.fontWeight = "normal"; this.modalTransparencyBlur = 3; this.verticalGridLineColor = 14015965; this.borderStyle = "inset"; this.buttonColor = 7305079; this.borderCapColor = 9542041; this.textAlign = "left"; this.disabledIconColor = 0x999999; this.stroked = false; this.fillColors = [0xFFFFFF, 0xCCCCCC, 0xFFFFFF, 0xEEEEEE]; this.fontStyle = "normal"; this.borderSides = "left top right bottom"; this.borderThickness = 1; this.modalTransparencyDuration = 100; this.useRollOver = true; this.strokeWidth = 1; this.filled = true; this.borderColor = 12040892; this.horizontalGridLines = false; this.horizontalGridLineColor = 0xF7F7F7; this.shadowCapColor = 14015965; this.fontGridFitType = "pixel"; this.horizontalAlign = "left"; this.modalTransparencyColor = 0xDDDDDD; this.disabledColor = 11187123; this.borderSkin = HaloBorder; this.dropShadowColor = 0; this.paddingBottom = 0; this.indentation = 17; this.version = "3.0.0"; this.fontThickness = 0; this.verticalGridLines = true; this.embedFonts = false; this.fontSharpness = 0; this.shadowDirection = "center"; this.textDecoration = "none"; this.selectionDuration = 250; this.bevel = true; this.fillColor = 0xFFFFFF; this.focusBlendMode = "normal"; this.dropShadowEnabled = false; this.textRollOverColor = 2831164; this.textIndent = 0; this.fontSize = 10; this.openDuration = 250; this.closeDuration = 250; this.kerning = false; this.paddingTop = 0; this.highlightAlphas = [0.3, 0]; this.cornerRadius = 0; this.horizontalGap = 8; this.textSelectedColor = 2831164; this.paddingLeft = 0; this.modalTransparency = 0.5; this.roundedBottomCorners = true; this.repeatDelay = 500; this.selectionDisabledColor = 0xDDDDDD; this.fontAntiAliasType = "advanced"; this.focusSkin = HaloFocusRect; this.verticalGap = 6; this.leading = 2; this.shadowColor = 0xEEEEEE; this.backgroundAlpha = 1; this.iconColor = 0x111111; this.focusAlpha = 0.4; this.borderAlpha = 1; this.focusThickness = 2; this.themeColor = 40447; this.backgroundSize = "auto"; this.indicatorGap = 14; this.letterSpacing = 0; this.fontFamily = "Verdana"; this.fillAlphas = [0.6, 0.4, 0.75, 0.65]; this.color = 734012; this.paddingRight = 0; this.errorColor = 0xFF0000; this.verticalAlign = "top"; this.focusRoundedCorners = "tl tr bl br"; this.shadowDistance = 2; this.repeatInterval = 35; }; }; } } }//package
Section 294
//_headerDateTextStyle (_headerDateTextStyle) package { import mx.core.*; import mx.styles.*; public class _headerDateTextStyle { public static function init(center:IFlexModuleFactory):void{ var fbs = center; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".headerDateText"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".headerDateText", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.textAlign = "center"; this.fontWeight = "bold"; }; }; } } }//package
Section 295
//_headerDragProxyStyleStyle (_headerDragProxyStyleStyle) package { import mx.core.*; import mx.styles.*; public class _headerDragProxyStyleStyle { public static function init(:IFlexModuleFactory):void{ var fbs = ; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".headerDragProxyStyle"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".headerDragProxyStyle", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.fontWeight = "bold"; }; }; } } }//package
Section 296
//_linkButtonStyleStyle (_linkButtonStyleStyle) package { import mx.core.*; import mx.styles.*; public class _linkButtonStyleStyle { public static function init(http://adobe.com/AS3/2006/builtin:IFlexModuleFactory):void{ var fbs = http://adobe.com/AS3/2006/builtin; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".linkButtonStyle"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".linkButtonStyle", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.paddingTop = 2; this.paddingLeft = 2; this.paddingRight = 2; this.paddingBottom = 2; }; }; } } }//package
Section 297
//_Oliver_FlexInit (_Oliver_FlexInit) package { import mx.core.*; import mx.styles.*; import mx.effects.*; import flash.utils.*; import flash.system.*; import mx.collections.*; import mx.utils.*; import flash.net.*; public class _Oliver_FlexInit { public static function init(mouseDown:IFlexModuleFactory):void{ var fbs = mouseDown; var _local3 = EffectManager; _local3.mx_internal::registerEffectTrigger("addedEffect", "added"); _local3 = EffectManager; _local3.mx_internal::registerEffectTrigger("completeEffect", "complete"); _local3 = EffectManager; _local3.mx_internal::registerEffectTrigger("creationCompleteEffect", "creationComplete"); _local3 = EffectManager; _local3.mx_internal::registerEffectTrigger("focusInEffect", "focusIn"); _local3 = EffectManager; _local3.mx_internal::registerEffectTrigger("focusOutEffect", "focusOut"); _local3 = EffectManager; _local3.mx_internal::registerEffectTrigger("hideEffect", "hide"); _local3 = EffectManager; _local3.mx_internal::registerEffectTrigger("mouseDownEffect", "mouseDown"); _local3 = EffectManager; _local3.mx_internal::registerEffectTrigger("mouseUpEffect", "mouseUp"); _local3 = EffectManager; _local3.mx_internal::registerEffectTrigger("moveEffect", "move"); _local3 = EffectManager; _local3.mx_internal::registerEffectTrigger("removedEffect", "removed"); _local3 = EffectManager; _local3.mx_internal::registerEffectTrigger("resizeEffect", "resize"); _local3 = EffectManager; _local3.mx_internal::registerEffectTrigger("rollOutEffect", "rollOut"); _local3 = EffectManager; _local3.mx_internal::registerEffectTrigger("rollOverEffect", "rollOver"); _local3 = EffectManager; _local3.mx_internal::registerEffectTrigger("showEffect", "show"); try { if (getClassByAlias("flex.messaging.io.ArrayCollection") == null){ registerClassAlias("flex.messaging.io.ArrayCollection", ArrayCollection); }; } catch(e:Error) { registerClassAlias("flex.messaging.io.ArrayCollection", ArrayCollection); }; try { if (getClassByAlias("flex.messaging.io.ArrayList") == null){ registerClassAlias("flex.messaging.io.ArrayList", ArrayList); }; } catch(e:Error) { registerClassAlias("flex.messaging.io.ArrayList", ArrayList); }; try { if (getClassByAlias("flex.messaging.io.ObjectProxy") == null){ registerClassAlias("flex.messaging.io.ObjectProxy", ObjectProxy); }; } catch(e:Error) { registerClassAlias("flex.messaging.io.ObjectProxy", ObjectProxy); }; var styleNames:Array = ["fontWeight", "modalTransparencyBlur", "textRollOverColor", "backgroundDisabledColor", "textIndent", "barColor", "fontSize", "kerning", "textAlign", "fontStyle", "modalTransparencyDuration", "textSelectedColor", "modalTransparency", "fontGridFitType", "disabledColor", "fontAntiAliasType", "modalTransparencyColor", "leading", "dropShadowColor", "themeColor", "letterSpacing", "fontFamily", "color", "fontThickness", "errorColor", "fontSharpness", "textDecoration"]; var i:int; while (i < styleNames.length) { StyleManager.registerInheritingStyle(styleNames[i]); i = (i + 1); }; } } }//package
Section 298
//_Oliver_mx_managers_SystemManager (_Oliver_mx_managers_SystemManager) package { import mx.core.*; import mx.managers.*; import flash.system.*; public class _Oliver_mx_managers_SystemManager extends SystemManager implements IFlexModuleFactory { override public function create(... _args):Object{ if ((((_args.length > 0)) && (!((_args[0] is String))))){ return (super.create.apply(this, _args)); }; var _local2:String = ((_args.length == 0)) ? "Oliver" : String(_args[0]); var _local3:Class = Class(getDefinitionByName(_local2)); if (!_local3){ return (null); }; var _local4:Object = new (_local3); if ((_local4 is IFlexModule)){ IFlexModule(_local4).moduleFactory = this; }; return (_local4); } override public function info():Object{ return ({backgroundColor:"0x282238", compiledLocales:["en_US"], compiledResourceBundleNames:["collections", "containers", "controls", "core", "effects", "skins", "styles"], creationComplete:"setup();", currentDomain:ApplicationDomain.currentDomain, height:"565", horizontalScrollPolicy:"off", layout:"absolute", mainClassName:"Oliver", mixins:["_Oliver_FlexInit", "_alertButtonStyleStyle", "_ScrollBarStyle", "_activeTabStyleStyle", "_textAreaHScrollBarStyleStyle", "_ToolTipStyle", "_advancedDataGridStylesStyle", "_comboDropdownStyle", "_ContainerStyle", "_textAreaVScrollBarStyleStyle", "_linkButtonStyleStyle", "_globalStyle", "_windowStatusStyle", "_windowStylesStyle", "_activeButtonStyleStyle", "_errorTipStyle", "_richTextEditorTextAreaStyleStyle", "_CursorManagerStyle", "_todayStyleStyle", "_dateFieldPopupStyle", "_plainStyle", "_dataGridStylesStyle", "_ApplicationStyle", "_SWFLoaderStyle", "_headerDateTextStyle", "_ButtonStyle", "_popUpMenuStyle", "_swatchPanelTextFieldStyle", "_opaquePanelStyle", "_weekDayStyleStyle", "_headerDragProxyStyleStyle", "_VolumeControlWatcherSetupUtil", "_OptionsBarWatcherSetupUtil"], preloader:BenePreloader, verticalScrollPolicy:"off", width:"656"}); } } }//package
Section 299
//_opaquePanelStyle (_opaquePanelStyle) package { import mx.core.*; import mx.styles.*; public class _opaquePanelStyle { public static function init(Object:IFlexModuleFactory):void{ var fbs = Object; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".opaquePanel"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".opaquePanel", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.footerColors = [0xE7E7E7, 0xC7C7C7]; this.borderColor = 0xFFFFFF; this.headerColors = [0xE7E7E7, 0xD9D9D9]; this.borderAlpha = 1; this.backgroundColor = 0xFFFFFF; }; }; } } }//package
Section 300
//_OptionsBarWatcherSetupUtil (_OptionsBarWatcherSetupUtil) package { import flash.display.*; import mx.core.*; import mx.binding.*; public class _OptionsBarWatcherSetupUtil extends Sprite implements IWatcherSetupUtil { public function setup(OptionsBar:Object, OptionsBar:Function, OptionsBar:Array, OptionsBar:Array):void{ OptionsBar[0] = new PropertyWatcher("background", {propertyChange:true}, [OptionsBar[0]], OptionsBar); OptionsBar[0].updateParent(OptionsBar); } public static function init(OptionsBar:IFlexModuleFactory):void{ OptionsBar.watcherSetupUtil = new (_OptionsBarWatcherSetupUtil); } } }//package
Section 301
//_plainStyle (_plainStyle) package { import mx.core.*; import mx.styles.*; public class _plainStyle { public static function init(left:IFlexModuleFactory):void{ var fbs = left; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".plain"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".plain", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.paddingTop = 0; this.paddingLeft = 0; this.horizontalAlign = "left"; this.paddingRight = 0; this.backgroundImage = ""; this.paddingBottom = 0; this.backgroundColor = 0xFFFFFF; }; }; } } }//package
Section 302
//_popUpMenuStyle (_popUpMenuStyle) package { import mx.core.*; import mx.styles.*; public class _popUpMenuStyle { public static function init(left:IFlexModuleFactory):void{ var fbs = left; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".popUpMenu"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".popUpMenu", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.textAlign = "left"; this.fontWeight = "normal"; }; }; } } }//package
Section 303
//_richTextEditorTextAreaStyleStyle (_richTextEditorTextAreaStyleStyle) package { import mx.core.*; import mx.styles.*; public class _richTextEditorTextAreaStyleStyle { public static function init(_richTextEditorTextAreaStyleStyle:IFlexModuleFactory):void{ var fbs = _richTextEditorTextAreaStyleStyle; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".richTextEditorTextAreaStyle"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".richTextEditorTextAreaStyle", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ }; }; } } }//package
Section 304
//_ScrollBarStyle (_ScrollBarStyle) package { import mx.core.*; import mx.styles.*; import mx.skins.halo.*; public class _ScrollBarStyle { public static function init(ScrollTrackSkin:IFlexModuleFactory):void{ var fbs = ScrollTrackSkin; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration("ScrollBar"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration("ScrollBar", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.trackColors = [9738651, 0xE7E7E7]; this.thumbOffset = 0; this.paddingTop = 0; this.downArrowSkin = ScrollArrowSkin; this.borderColor = 12040892; this.paddingLeft = 0; this.cornerRadius = 4; this.paddingRight = 0; this.trackSkin = ScrollTrackSkin; this.thumbSkin = ScrollThumbSkin; this.paddingBottom = 0; this.upArrowSkin = ScrollArrowSkin; }; }; } } }//package
Section 305
//_swatchPanelTextFieldStyle (_swatchPanelTextFieldStyle) package { import mx.core.*; import mx.styles.*; public class _swatchPanelTextFieldStyle { public static function init(shadowColor:IFlexModuleFactory):void{ var fbs = shadowColor; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".swatchPanelTextField"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".swatchPanelTextField", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.highlightColor = 12897484; this.borderColor = 14015965; this.paddingLeft = 5; this.shadowCapColor = 14015965; this.paddingRight = 5; this.shadowColor = 14015965; this.borderStyle = "inset"; this.buttonColor = 7305079; this.backgroundColor = 0xFFFFFF; this.borderCapColor = 9542041; }; }; } } }//package
Section 306
//_SWFLoaderStyle (_SWFLoaderStyle) package { import mx.core.*; import mx.styles.*; import mx.skins.halo.*; public class _SWFLoaderStyle { private static var _embed_css_Assets_swf___brokenImage_323519580:Class = _SWFLoaderStyle__embed_css_Assets_swf___brokenImage_323519580; public static function init(http://adobe.com/AS3/2006/builtin:IFlexModuleFactory):void{ var fbs = http://adobe.com/AS3/2006/builtin; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration("SWFLoader"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration("SWFLoader", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.brokenImageSkin = _embed_css_Assets_swf___brokenImage_323519580; this.borderStyle = "none"; this.brokenImageBorderSkin = BrokenImageBorderSkin; }; }; } } }//package
Section 307
//_SWFLoaderStyle__embed_css_Assets_swf___brokenImage_323519580 (_SWFLoaderStyle__embed_css_Assets_swf___brokenImage_323519580) package { import mx.core.*; public class _SWFLoaderStyle__embed_css_Assets_swf___brokenImage_323519580 extends SpriteAsset { } }//package
Section 308
//_textAreaHScrollBarStyleStyle (_textAreaHScrollBarStyleStyle) package { import mx.core.*; import mx.styles.*; public class _textAreaHScrollBarStyleStyle { public static function init(_textAreaHScrollBarStyleStyle:IFlexModuleFactory):void{ var fbs = _textAreaHScrollBarStyleStyle; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".textAreaHScrollBarStyle"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".textAreaHScrollBarStyle", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ }; }; } } }//package
Section 309
//_textAreaVScrollBarStyleStyle (_textAreaVScrollBarStyleStyle) package { import mx.core.*; import mx.styles.*; public class _textAreaVScrollBarStyleStyle { public static function init(_textAreaVScrollBarStyleStyle:IFlexModuleFactory):void{ var fbs = _textAreaVScrollBarStyleStyle; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".textAreaVScrollBarStyle"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".textAreaVScrollBarStyle", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ }; }; } } }//package
Section 310
//_todayStyleStyle (_todayStyleStyle) package { import mx.core.*; import mx.styles.*; public class _todayStyleStyle { public static function init(center:IFlexModuleFactory):void{ var fbs = center; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".todayStyle"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".todayStyle", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.textAlign = "center"; this.color = 0xFFFFFF; }; }; } } }//package
Section 311
//_ToolTipStyle (_ToolTipStyle) package { import mx.core.*; import mx.styles.*; import mx.skins.halo.*; public class _ToolTipStyle { public static function init(mx.skins.halo:IFlexModuleFactory):void{ var fbs = mx.skins.halo; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration("ToolTip"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration("ToolTip", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.paddingTop = 2; this.borderColor = 9542041; this.paddingLeft = 4; this.cornerRadius = 2; this.paddingRight = 4; this.shadowColor = 0; this.fontSize = 9; this.borderSkin = ToolTipBorder; this.backgroundAlpha = 0.95; this.paddingBottom = 2; this.borderStyle = "toolTip"; this.backgroundColor = 16777164; }; }; } } }//package
Section 312
//_weekDayStyleStyle (_weekDayStyleStyle) package { import mx.core.*; import mx.styles.*; public class _weekDayStyleStyle { public static function init(center:IFlexModuleFactory):void{ var fbs = center; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".weekDayStyle"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".weekDayStyle", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.textAlign = "center"; this.fontWeight = "bold"; }; }; } } }//package
Section 313
//_windowStatusStyle (_windowStatusStyle) package { import mx.core.*; import mx.styles.*; public class _windowStatusStyle { public static function init(:IFlexModuleFactory):void{ var fbs = ; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".windowStatus"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".windowStatus", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.color = 0x666666; }; }; } } }//package
Section 314
//_windowStylesStyle (_windowStylesStyle) package { import mx.core.*; import mx.styles.*; public class _windowStylesStyle { public static function init(:IFlexModuleFactory):void{ var fbs = ; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".windowStyles"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".windowStyles", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.fontWeight = "bold"; }; }; } } }//package
Section 315
//_VolumeControlWatcherSetupUtil (_VolumeControlWatcherSetupUtil) package { import flash.display.*; import mx.core.*; import mx.binding.*; public class _VolumeControlWatcherSetupUtil extends Sprite implements IWatcherSetupUtil { public function setup(VolumeControl:Object, VolumeControl:Function, VolumeControl:Array, VolumeControl:Array):void{ VolumeControl[1] = new PropertyWatcher("check_off", {propertyChange:true}, [VolumeControl[4]], VolumeControl); VolumeControl[0] = new PropertyWatcher("check_sq", {propertyChange:true}, [VolumeControl[2], VolumeControl[1], VolumeControl[3], VolumeControl[0]], VolumeControl); VolumeControl[1].updateParent(VolumeControl); VolumeControl[0].updateParent(VolumeControl); } public static function init(VolumeControl:IFlexModuleFactory):void{ VolumeControl.watcherSetupUtil = new (_VolumeControlWatcherSetupUtil); } } }//package
Section 316
//Amulet (Amulet) package { import mx.controls.*; import mx.containers.*; public class Amulet extends MagicItem { private var power:int; private var power_num:CroppedImage; private var button_mo:Class; private var overlay:Canvas; private var button_on:Class; private var overlay_img:Image; private var button_off:Class; private var time_num:CroppedImage; private var num_src:Class; private var bg_src:Class; private var overlay_src:Class; public function Amulet(){ num_src = Amulet_num_src; bg_src = Amulet_bg_src; overlay_src = Amulet_overlay_src; button_on = Amulet_button_on; button_mo = Amulet_button_mo; button_off = Amulet_button_off; bg_img = bg_src; super(); y = 188; overlay = new Canvas(); overlay.width = 106; overlay.height = 83; overlay.y = 15; overlay.verticalScrollPolicy = "off"; overlay.clipContent = true; overlay_img = new Image(); overlay_img.source = overlay_src; overlay.addChild(overlay_img); addChildAt(overlay, 0); button.setSources(button_on, button_mo, button_off, true); power_num = new CroppedImage(41, 41, 13, 13, 0, 0, 13, 130, num_src); time_num = new CroppedImage(53, 55, 13, 13, 0, 0, 13, 130, num_src); addChildAt(power_num, 2); addChildAt(time_num, 2); changeSpell(Oliver.TELEPORT); } public function queryCharged():Boolean{ if (power >= (cost - 1)){ return (true); }; return (false); } override protected function deductCharge():void{ power = -1; overlay.visible = false; button.turnOff(); power_num.moveImage(0, 0); } override public function refreshCharges():void{ cost = Oliver.spell_costs[spell]; if (Oliver.app.spell_mastery[spell] == 4){ cost--; }; power = cost; overlay.height = 83; overlay.y = 15; overlay_img.y = 0; overlay.visible = true; button.turnOn(); power_num.moveImage(0, (power * 13)); time_num.moveImage(0, (power * 13)); } public function recharge():void{ if (power < cost){ power++; if (power > 0){ overlay.visible = true; overlay.height = (83 * (power / cost)); overlay.y = (98 - overlay.height); overlay_img.y = (15 - overlay.y); power_num.moveImage(0, (power * 13)); }; if (power == cost){ button.turnOn(); }; }; } override protected function querySpellAvailable():Boolean{ if (power == cost){ return (true); }; return (false); } } }//package
Section 317
//Amulet_bg_src (Amulet_bg_src) package { import mx.core.*; public class Amulet_bg_src extends BitmapAsset { } }//package
Section 318
//Amulet_button_mo (Amulet_button_mo) package { import mx.core.*; public class Amulet_button_mo extends BitmapAsset { } }//package
Section 319
//Amulet_button_off (Amulet_button_off) package { import mx.core.*; public class Amulet_button_off extends BitmapAsset { } }//package
Section 320
//Amulet_button_on (Amulet_button_on) package { import mx.core.*; public class Amulet_button_on extends BitmapAsset { } }//package
Section 321
//Amulet_num_src (Amulet_num_src) package { import mx.core.*; public class Amulet_num_src extends BitmapAsset { } }//package
Section 322
//Amulet_overlay_src (Amulet_overlay_src) package { import mx.core.*; public class Amulet_overlay_src extends BitmapAsset { } }//package
Section 323
//Basilisk (Basilisk) package { public class Basilisk extends OliverSprite { private var disintegrate_ani:Class; private var collide_ani:Class; private var walk_ani:Class; public function Basilisk(x_pos:int, y_pos:int, facing:int, animate_creation:Boolean=false){ walk_ani = Basilisk_walk_ani; collide_ani = Basilisk_collide_ani; disintegrate_ani = Basilisk_disintegrate_ani; ANIMATIONS = [walk_ani, walk_ani, collide_ani, disintegrate_ani, disintegrate_ani]; FRAME_SIZE = 46; X_OFFSET = -5; Y_OFFSET = -4; super(x_pos, y_pos, facing); if (animate_creation){ playAnimation(3, true, true); }; } } }//package
Section 324
//Basilisk_collide_ani (Basilisk_collide_ani) package { import mx.core.*; public class Basilisk_collide_ani extends BitmapAsset { } }//package
Section 325
//Basilisk_disintegrate_ani (Basilisk_disintegrate_ani) package { import mx.core.*; public class Basilisk_disintegrate_ani extends BitmapAsset { } }//package
Section 326
//Basilisk_walk_ani (Basilisk_walk_ani) package { import mx.core.*; public class Basilisk_walk_ani extends BitmapAsset { } }//package
Section 327
//BenePreloader (BenePreloader) package { import flash.display.*; import flash.events.*; import mx.events.*; import mx.preloaders.*; import flash.utils.*; import CPMStar.*; public class BenePreloader extends DownloadProgressBar { private var ad:AdLoader; private var timer:uint; private var anim:LoadingAnim; private var success:Boolean;// = false private var fProgress:Shape; public function BenePreloader(){ ad = new AdLoader("3098Q60BE28D9"); super(); fProgress = new Shape(); addChild(fProgress); fProgress.x = 228; fProgress.y = 450; fProgress.graphics.clear(); fProgress.graphics.beginFill(0xCC8800); fProgress.graphics.drawRect(0, 0, 200, 28); fProgress.graphics.endFill(); fProgress.graphics.beginFill(0); fProgress.graphics.drawRect(2, 2, 196, 24); fProgress.graphics.endFill(); ad.x = 178; ad.y = 130; backgroundColor = 5579383; } private function FlexInitComplete(event:Event):void{ timer = setInterval(quickfade, 5000); } override public function set preloader(preloader:Sprite):void{ preloader.addEventListener(ProgressEvent.PROGRESS, SWFDownloadProgress); preloader.addEventListener(Event.COMPLETE, SWFDownloadComplete); preloader.addEventListener(FlexEvent.INIT_PROGRESS, FlexInitProgress); preloader.addEventListener(FlexEvent.INIT_COMPLETE, FlexInitComplete); } private function SWFDownloadComplete(event:Event):void{ fProgress.graphics.beginFill(0xAAFF00); fProgress.graphics.drawRect(2, 2, 196, 24); fProgress.graphics.endFill(); } private function FlexInitProgress(event:Event):void{ } private function SWFDownloadProgress(event:ProgressEvent):void{ fProgress.graphics.beginFill(0xAAFF00); fProgress.graphics.drawRect(2, 2, ((196 * event.bytesLoaded) / event.bytesTotal), 24); fProgress.graphics.endFill(); if (!success){ if (SmileyGamerAPI.init(stage, 6664, "Oliver &amp; The Basilisks") != ""){ success = true; if (SmileyGamerAPI.canShowPreloaderAd()){ addChild(ad); } else { anim = new LoadingAnim(); anim.x = 128; anim.y = 100; addChild(anim); }; trace(("The URL is: " + SmileyGamerAPI.sReferer)); } else { trace("Still no URL..."); }; }; } private function quickfade():void{ clearInterval(timer); timer = setInterval(fadeout, 20); } private function fadeout():void{ alpha = (alpha - 0.1); if (alpha <= 0.05){ clearInterval(timer); dispatchEvent(new Event(Event.COMPLETE)); }; } } }//package
Section 328
//CollisionPoint (CollisionPoint) package { import flash.geom.*; public class CollisionPoint extends Point { public var golems:int; public function CollisionPoint(x:Number=0, y:Number=0, golem:Boolean=false){ super(x, y); golems = (golem) ? 1 : 0; } } }//package
Section 329
//CroppedImage (CroppedImage) package { import mx.controls.*; import mx.containers.*; public class CroppedImage extends Canvas { public var img:Image; public function CroppedImage(frame_x:int, frame_y:int, frame_w:int, frame_h:int, pic_x:int, pic_y:int, pic_w:int, pic_h:int, pic_source:Class){ img = new Image(); super(); addChild(img); this.x = frame_x; this.y = frame_y; this.width = frame_w; this.height = frame_h; img.x = -(pic_x); img.y = -(pic_y); img.width = pic_w; img.height = pic_h; img.source = pic_source; clipContent = true; horizontalScrollPolicy = "off"; verticalScrollPolicy = "off"; } public function moveImage(pic_x:int, pic_y:int):void{ img.x = -(pic_x); img.y = -(pic_y); } public function scrollImage(scroll_x:int, scroll_y:int):void{ img.x = (img.x - scroll_x); img.y = (img.y - scroll_y); } } }//package
Section 330
//DynamicButton (DynamicButton) package { import mx.core.*; import flash.events.*; import mx.events.*; import mx.controls.*; import mx.containers.*; import flash.filters.*; public class DynamicButton extends Canvas { private var _embed_mxml_assets_big_button_pushed_gif_1460635709:Class; private var glow:GlowFilter; private var text_src:Class; private var button_text:CroppedImage; private var color:ColorMatrixFilter; private var _embed_mxml_assets_big_button_gif_394338733:Class; private var _documentDescriptor_:UIComponentDescriptor; private var _3490mo:Image; public static var AGAIN:int = 2; public static var NO:int = 12; public static var START:int = 13; public static var SUBMIT_SCORE:int = 6; public static var YES:int = 11; public static var NEXT_LEVEL:int = 5; public static var HIGH_SCORES:int = 4; public static var MENU:int = 10; public static var GLOBAL:int = 14; public static var INSTRUCTIONS:int = 3; public static var CONTINUE:int = 0; public static var START_OVER:int = 1; public static var SIMPLE:int = 7; public static var NORMAL:int = 8; public static var DELUXE:int = 9; public function DynamicButton(){ _documentDescriptor_ = new UIComponentDescriptor({type:Canvas, propertiesFactory:function ():Object{ return ({width:175, height:31, childDescriptors:[new UIComponentDescriptor({type:Image, propertiesFactory:function ():Object{ return ({source:_embed_mxml_assets_big_button_gif_394338733}); }}), new UIComponentDescriptor({type:Image, id:"mo", propertiesFactory:function ():Object{ return ({visible:false, source:_embed_mxml_assets_big_button_pushed_gif_1460635709}); }})]}); }}); text_src = DynamicButton_text_src; glow = new GlowFilter(0x42006C, 1, 4, 4, 20); color = new ColorMatrixFilter([0.78, 0, 0, 0, 0, 0, 0.675, 0, 0, 0, 0, 0, 0.85, 0, 0, 0, 0, 0, 1, 0]); _embed_mxml_assets_big_button_gif_394338733 = DynamicButton__embed_mxml_assets_big_button_gif_394338733; _embed_mxml_assets_big_button_pushed_gif_1460635709 = DynamicButton__embed_mxml_assets_big_button_pushed_gif_1460635709; super(); mx_internal::_document = this; this.width = 175; this.height = 31; this.addEventListener("mouseOver", ___DynamicButton_Canvas1_mouseOver); this.addEventListener("mouseOut", ___DynamicButton_Canvas1_mouseOut); this.addEventListener("creationComplete", ___DynamicButton_Canvas1_creationComplete); } public function ___DynamicButton_Canvas1_creationComplete(event:FlexEvent):void{ setup(); } override public function initialize():void{ mx_internal::setDocumentDescriptor(_documentDescriptor_); super.initialize(); } public function set mo(flash.filters:Image):void{ var _local2:Object = this._3490mo; if (_local2 !== flash.filters){ this._3490mo = flash.filters; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "mo", _local2, flash.filters)); }; } public function get mo():Image{ return (this._3490mo); } public function ___DynamicButton_Canvas1_mouseOver(event:MouseEvent):void{ mo.visible = true; button_text.filters = [glow, color]; } public function setText(text:int){ button_text.moveImage(0, (21 * text)); } public function ___DynamicButton_Canvas1_mouseOut(event:MouseEvent):void{ mo.visible = false; button_text.filters = [glow]; } private function setup():void{ button_text = new CroppedImage(0, 6, 175, 21, 0, 0, 175, 315, text_src); button_text.filters = [glow]; addChild(button_text); } } }//package
Section 331
//DynamicButton__embed_mxml_assets_big_button_gif_394338733 (DynamicButton__embed_mxml_assets_big_button_gif_394338733) package { import mx.core.*; public class DynamicButton__embed_mxml_assets_big_button_gif_394338733 extends BitmapAsset { } }//package
Section 332
//DynamicButton__embed_mxml_assets_big_button_pushed_gif_1460635709 (DynamicButton__embed_mxml_assets_big_button_pushed_gif_1460635709) package { import mx.core.*; public class DynamicButton__embed_mxml_assets_big_button_pushed_gif_1460635709 extends BitmapAsset { } }//package
Section 333
//DynamicButton_text_src (DynamicButton_text_src) package { import mx.core.*; public class DynamicButton_text_src extends BitmapAsset { } }//package
Section 334
//en_US$collections_properties (en_US$collections_properties) package { import mx.resources.*; public class en_US$collections_properties extends ResourceBundle { public function en_US$collections_properties(){ super("en_US", "collections"); } override protected function getContent():Object{ var _local1:Object = {findCondition:"Find criteria must contain all sort fields leading up to '{0}'.", noComparatorSortField:"Cannot determine comparator for SortField with name '{0}'.", outOfBounds:"Index '{0}' specified is out of bounds.", nonUnique:"Non-unique values in items.", incorrectAddition:"Attempt to add an item already in the view.", findRestriction:"Find criteria must contain at least one sort field value.", invalidType:"Incorrect type. Must be of type XML or a XMLList that contains one XML object. ", unknownMode:"Unknown find mode.", invalidIndex:"Invalid index: '{0}'.", invalidRemove:"Cannot remove when current is beforeFirst or afterLast.", unknownProperty:"Unknown Property: '{0}'.", invalidInsert:"Cannot insert when current is beforeFirst.", itemNotFound:"Cannot find when view is not sorted.", bookmarkInvalid:"Bookmark no longer valid.", noComparator:"Cannot determine comparator for '{0}'.", invalidCursor:"Cursor no longer valid.", noItems:"No items to search.", bookmarkNotFound:"Bookmark is not from this view."}; return (_local1); } } }//package
Section 335
//en_US$containers_properties (en_US$containers_properties) package { import mx.resources.*; public class en_US$containers_properties extends ResourceBundle { public function en_US$containers_properties(){ super("en_US", "containers"); } override protected function getContent():Object{ var _local1:Object = {noColumnsFound:"No ConstraintColumns found.", noRowsFound:"No ConstraintRows found.", rowNotFound:"ConstraintRow '{0}' not found.", columnNotFound:"ConstraintColumn '{0}' not found."}; return (_local1); } } }//package
Section 336
//en_US$controls_properties (en_US$controls_properties) package { import mx.resources.*; public class en_US$controls_properties extends ResourceBundle { public function en_US$controls_properties(){ super("en_US", "controls"); } override protected function getContent():Object{ var _local1:Object = {undefinedParameter:"CuePoint parameter undefined.", nullURL:"Null URL sent to VideoPlayer.load.", incorrectType:"Type must be 0, 1 or 2.", okLabel:"OK", noLabel:"No", wrongNumParams:"Num params must be number.", wrongDisabled:"Disabled must be number.", wrongTime:"Time must be number.", dayNamesShortest:"S,M,T,W,T,F,S", wrongType:"Type must be number.", firstDayOfWeek:"0", rootNotSMIL:"URL: '{0}' Root node not smil: '{1}'.", errorMessages:"Unable to make connection to server or to find FLV on server.,No matching cue point found.,Illegal cue point.,Invalid seek.,Invalid contentPath.,Invalid XML.,No bitrate match; must be no default FLV.,Cannot delete default VideoPlayer.", unexpectedEnd:"Unexpected end of cuePoint param string.", rootNotFound:"URL: '{0}' No root node found; if file is an flv, it must have a .flv extension.", errWrongContainer:"ERROR: The dataProvider of '{0}' must not contain objects of type flash.display.DisplayObject.", invalidCall:"Cannot call reconnect on an http connection.", cancelLabel:"Cancel", errWrongType:"ERROR: The dataProvider of '{0}' must be String, ViewStack, Array, or IList.", badArgs:"Bad args to _play.", missingRoot:"URL: '{0}' No root node found; if URL is for an FLV, it must have a .flv extension and take no parameters.", notLoadable:"Unable to load '{0}'.", wrongName:"Name cannot be undefined or null.", wrongTimeName:"Time must be number and/or name must not be undefined or null.", yesLabel:"Yes", undefinedArray:"CuePoint.array undefined.", missingProxy:"URL: '{0}' fpad xml requires proxy tag.", unknownInput:"Unknown inputType '{0}'.", missingAttributeSrc:"URL: '{0}' Attribute src is required in '{1}' tag.", yearSymbol:"", wrongIndex:"CuePoint.index must be number between -1 and cuePoint.array.length.", notImplemented:"'{0}' not implemented yet.", label:"LOADING %3%%", wrongFormat:"Unexpected cuePoint parameter format.", tagNotFound:"URL: '{0}' At least one video of ref tag is required.", unsupportedMode:"IMEMode '{0}' not supported.", cannotDisable:"Cannot disable actionscript cue points.", missingAttributes:"URL: '{0}' Tag '{1}' requires attributes id, width, and height. Width and height must be numbers greater than or equal to 0.", notfpad:"URL: '{0}' Root node not fpad."}; return (_local1); } } }//package
Section 337
//en_US$core_properties (en_US$core_properties) package { import mx.resources.*; public class en_US$core_properties extends ResourceBundle { public function en_US$core_properties(){ super("en_US", "core"); } override protected function getContent():Object{ var _local1:Object = {multipleChildSets_ClassAndInstance:"Multiple sets of visual children have been specified for this component (component definition and component instance).", truncationIndicator:"...", notExecuting:"Repeater is not executing.", versionAlreadyRead:"Compatibility version has already been read.", multipleChildSets_ClassAndSubclass:"Multiple sets of visual children have been specified for this component (base component definition and derived component definition).", viewSource:"View Source", badFile:"File does not exist.", stateUndefined:"Undefined state '{0}'.", versionAlreadySet:"Compatibility version has already been set."}; return (_local1); } } }//package
Section 338
//en_US$effects_properties (en_US$effects_properties) package { import mx.resources.*; public class en_US$effects_properties extends ResourceBundle { public function en_US$effects_properties(){ super("en_US", "effects"); } override protected function getContent():Object{ var _local1:Object = {incorrectTrigger:"The Zoom effect can not be triggered by a moveEffect trigger.", incorrectSource:"Source property must be a Class or String."}; return (_local1); } } }//package
Section 339
//en_US$skins_properties (en_US$skins_properties) package { import mx.resources.*; public class en_US$skins_properties extends ResourceBundle { public function en_US$skins_properties(){ super("en_US", "skins"); } override protected function getContent():Object{ var _local1:Object = {notLoaded:"Unable to load '{0}'."}; return (_local1); } } }//package
Section 340
//en_US$styles_properties (en_US$styles_properties) package { import mx.resources.*; public class en_US$styles_properties extends ResourceBundle { public function en_US$styles_properties(){ super("en_US", "styles"); } override protected function getContent():Object{ var _local1:Object = {unableToLoad:"Unable to load style({0}): {1}."}; return (_local1); } } }//package
Section 341
//EndGame (EndGame) package { import flash.display.*; import flash.geom.*; import flash.media.*; import flash.text.*; import mx.core.*; import flash.events.*; import mx.events.*; import mx.styles.*; import mx.controls.*; import mx.containers.*; import mx.binding.*; import flash.utils.*; import flash.system.*; import flash.filters.*; import flash.ui.*; import flash.net.*; import flash.external.*; import flash.accessibility.*; import flash.debugger.*; import flash.errors.*; import flash.printing.*; import flash.profiler.*; import flash.xml.*; public class EndGame extends Canvas { private var _257706864no_button:DynamicButton; private var _282095734yes_button:DynamicButton; private var _embed_mxml_assets_endgame_bg_png_1475688797:Class; private var _1332194002background:Image; private var _documentDescriptor_:UIComponentDescriptor; public function EndGame(){ _documentDescriptor_ = new UIComponentDescriptor({type:Canvas, propertiesFactory:function ():Object{ return ({width:656, height:536, childDescriptors:[new UIComponentDescriptor({type:Image, id:"background", propertiesFactory:function ():Object{ return ({source:_embed_mxml_assets_endgame_bg_png_1475688797}); }}), new UIComponentDescriptor({type:DynamicButton, id:"yes_button", events:{creationComplete:"__yes_button_creationComplete", click:"__yes_button_click"}, propertiesFactory:function ():Object{ return ({x:183, y:251}); }}), new UIComponentDescriptor({type:DynamicButton, id:"no_button", events:{creationComplete:"__no_button_creationComplete", click:"__no_button_click"}, propertiesFactory:function ():Object{ return ({x:183, y:288}); }})]}); }}); _embed_mxml_assets_endgame_bg_png_1475688797 = EndGame__embed_mxml_assets_endgame_bg_png_1475688797; super(); mx_internal::_document = this; if (!this.styleDeclaration){ this.styleDeclaration = new CSSStyleDeclaration(); }; this.styleDeclaration.defaultFactory = function ():void{ this.backgroundColor = 0; this.backgroundAlpha = 0.5; }; this.width = 656; this.height = 536; this.verticalScrollPolicy = "off"; } public function set no_button(y:DynamicButton):void{ var _local2:Object = this._257706864no_button; if (_local2 !== y){ this._257706864no_button = y; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "no_button", _local2, y)); }; } public function __no_button_creationComplete(event:FlexEvent):void{ no_button.setText(DynamicButton.NO); } public function get yes_button():DynamicButton{ return (this._282095734yes_button); } public function __yes_button_creationComplete(event:FlexEvent):void{ yes_button.setText(DynamicButton.YES); } public function get background():Image{ return (this._1332194002background); } override public function initialize():void{ mx_internal::setDocumentDescriptor(_documentDescriptor_); super.initialize(); } public function __no_button_click(event:MouseEvent):void{ visible = false; } public function __yes_button_click(event:MouseEvent):void{ hideAll(); Oliver.app.mainmenu.visible = true; Oliver.app.in_progress = false; } public function set yes_button(y:DynamicButton):void{ var _local2:Object = this._282095734yes_button; if (_local2 !== y){ this._282095734yes_button = y; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "yes_button", _local2, y)); }; } public function set background(y:Image):void{ var _local2:Object = this._1332194002background; if (_local2 !== y){ this._1332194002background = y; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "background", _local2, y)); }; } public function get no_button():DynamicButton{ return (this._257706864no_button); } private function hideAll():void{ Oliver.app.interlevel.visible = false; Oliver.app.gameover_screen.visible = false; Oliver.app.hiscore_screen.visible = false; Oliver.app.endgame.visible = false; Oliver.app.help.visible = false; Oliver.app.simple_interlevel.visible = false; } } }//package
Section 342
//EndGame__embed_mxml_assets_endgame_bg_png_1475688797 (EndGame__embed_mxml_assets_endgame_bg_png_1475688797) package { import mx.core.*; public class EndGame__embed_mxml_assets_endgame_bg_png_1475688797 extends BitmapAsset { } }//package
Section 343
//Explosion (Explosion) package { import flash.events.*; public class Explosion extends SimpleAnimation { private var img_src:Class; public function Explosion(x_pos:int, y_pos:int){ img_src = Explosion_img_src; super(105, 105, 8, 55, img_src); x = ((x_pos - 1) * 35); y = ((y_pos - 1) * 35); addEventListener(Event.ADDED, boom); } private function boom(ev:Event):void{ removeEventListener(Event.ADDED, boom); play(); } override protected function onFrame(frame:int):void{ if ((((frame == 8)) && (!((this.parent == null))))){ this.parent.removeChild(this); }; } } }//package
Section 344
//Explosion_img_src (Explosion_img_src) package { import mx.core.*; public class Explosion_img_src extends BitmapAsset { } }//package
Section 345
//GameOver (GameOver) package { import flash.display.*; import flash.geom.*; import flash.media.*; import flash.text.*; import mx.core.*; import flash.events.*; import mx.events.*; import mx.styles.*; import mx.controls.*; import mx.containers.*; import mx.binding.*; import flash.utils.*; import flash.system.*; import flash.filters.*; import flash.ui.*; import flash.net.*; import CPMStar.*; import flash.external.*; import flash.accessibility.*; import flash.debugger.*; import flash.errors.*; import flash.printing.*; import flash.profiler.*; import flash.xml.*; public class GameOver extends Canvas { private var CPMcontainer:Image; private var _849895125total_sc:NumberRenderer; private var _895689446spr_sc:NumberRenderer; private var _1396208037bas_sc:NumberRenderer; private var _1080312374continue_button:DynamicButton; private var CPMad:AdLoader; private var score_sent:Boolean; private var _1240342004gol_ct:NumberRenderer; private var _2110575861smiley_img:Image; private var _895689925spr_ct:NumberRenderer; private var _1396208516bas_ct:NumberRenderer; private var _1332194002background:Image; private var current_level:int; private var smileyclip:Sprite; private var _298715380ad_canvas:Canvas; private var total_score:int; private var _1521087240stats_canvas:Canvas; private var bg_blank:Class; private var _1090731123lvl_sc:NumberRenderer; private var _1240341525gol_sc:NumberRenderer; private var bg_fields:Class; private var ad_shown:Boolean;// = false private var _documentDescriptor_:UIComponentDescriptor; static var toggle:Boolean = false; public function GameOver(){ _documentDescriptor_ = new UIComponentDescriptor({type:Canvas, propertiesFactory:function ():Object{ return ({width:656, height:536, childDescriptors:[new UIComponentDescriptor({type:Image, id:"background"}), new UIComponentDescriptor({type:DynamicButton, id:"continue_button", events:{creationComplete:"__continue_button_creationComplete", click:"__continue_button_click"}, propertiesFactory:function ():Object{ return ({x:183, y:380}); }}), new UIComponentDescriptor({type:Canvas, id:"stats_canvas", propertiesFactory:function ():Object{ return ({percentWidth:100, y:3, childDescriptors:[new UIComponentDescriptor({type:NumberRenderer, id:"bas_ct", events:{creationComplete:"__bas_ct_creationComplete"}, propertiesFactory:function ():Object{ return ({x:266, y:188}); }}), new UIComponentDescriptor({type:NumberRenderer, id:"bas_sc", events:{creationComplete:"__bas_sc_creationComplete"}, propertiesFactory:function ():Object{ return ({x:356, y:188}); }}), new UIComponentDescriptor({type:NumberRenderer, id:"gol_ct", events:{creationComplete:"__gol_ct_creationComplete"}, propertiesFactory:function ():Object{ return ({x:266, y:213}); }}), new UIComponentDescriptor({type:NumberRenderer, id:"gol_sc", events:{creationComplete:"__gol_sc_creationComplete"}, propertiesFactory:function ():Object{ return ({x:356, y:213}); }}), new UIComponentDescriptor({type:NumberRenderer, id:"spr_ct", events:{creationComplete:"__spr_ct_creationComplete"}, propertiesFactory:function ():Object{ return ({x:266, y:238}); }}), new UIComponentDescriptor({type:NumberRenderer, id:"spr_sc", events:{creationComplete:"__spr_sc_creationComplete"}, propertiesFactory:function ():Object{ return ({x:356, y:238}); }}), new UIComponentDescriptor({type:NumberRenderer, id:"lvl_sc", events:{creationComplete:"__lvl_sc_creationComplete"}, propertiesFactory:function ():Object{ return ({x:283, y:278}); }}), new UIComponentDescriptor({type:NumberRenderer, id:"total_sc", events:{creationComplete:"__total_sc_creationComplete"}, propertiesFactory:function ():Object{ return ({x:283, y:317}); }})]}); }}), new UIComponentDescriptor({type:Canvas, id:"ad_canvas", propertiesFactory:function ():Object{ return ({childDescriptors:[new UIComponentDescriptor({type:Image, id:"smiley_img", propertiesFactory:function ():Object{ return ({width:300, height:250, x:123, y:120}); }})]}); }})]}); }}); bg_fields = GameOver_bg_fields; bg_blank = GameOver_bg_blank; super(); mx_internal::_document = this; if (!this.styleDeclaration){ this.styleDeclaration = new CSSStyleDeclaration(); }; this.styleDeclaration.defaultFactory = function ():void{ this.backgroundColor = 0; this.backgroundAlpha = 0.8; }; this.width = 656; this.height = 536; this.verticalScrollPolicy = "off"; this.addEventListener("creationComplete", ___GameOver_Canvas1_creationComplete); } public function get ad_canvas():Canvas{ return (this._298715380ad_canvas); } public function show(score:int, bas:int, gol:int, spr:int):int{ ad_shown = false; CPMcontainer.visible = false; smiley_img.visible = false; background.source = bg_fields; score_sent = false; stats_canvas.visible = true; var lvl_score:int = (((bas * 100) + (gol * 400)) + (spr * 200)); visible = true; score = (score + lvl_score); bas_ct.setNumber(bas); bas_sc.setNumber((bas * 100)); gol_ct.setNumber(gol); gol_sc.setNumber((gol * 400)); spr_ct.setNumber(spr); spr_sc.setNumber((spr * 200)); lvl_sc.setNumber(lvl_score); total_sc.setNumber(score); total_score = score; return (lvl_score); } public function set spr_ct(UIComponentDescriptor:NumberRenderer):void{ var _local2:Object = this._895689925spr_ct; if (_local2 !== UIComponentDescriptor){ this._895689925spr_ct = UIComponentDescriptor; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "spr_ct", _local2, UIComponentDescriptor)); }; } public function get stats_canvas():Canvas{ return (this._1521087240stats_canvas); } public function get bas_ct():NumberRenderer{ return (this._1396208516bas_ct); } public function get gol_ct():NumberRenderer{ return (this._1240342004gol_ct); } public function get lvl_sc():NumberRenderer{ return (this._1090731123lvl_sc); } override public function initialize():void{ mx_internal::setDocumentDescriptor(_documentDescriptor_); super.initialize(); } public function set continue_button(UIComponentDescriptor:DynamicButton):void{ var _local2:Object = this._1080312374continue_button; if (_local2 !== UIComponentDescriptor){ this._1080312374continue_button = UIComponentDescriptor; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "continue_button", _local2, UIComponentDescriptor)); }; } public function set lvl_sc(UIComponentDescriptor:NumberRenderer):void{ var _local2:Object = this._1090731123lvl_sc; if (_local2 !== UIComponentDescriptor){ this._1090731123lvl_sc = UIComponentDescriptor; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "lvl_sc", _local2, UIComponentDescriptor)); }; } public function set gol_ct(UIComponentDescriptor:NumberRenderer):void{ var _local2:Object = this._1240342004gol_ct; if (_local2 !== UIComponentDescriptor){ this._1240342004gol_ct = UIComponentDescriptor; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "gol_ct", _local2, UIComponentDescriptor)); }; } public function get spr_sc():NumberRenderer{ return (this._895689446spr_sc); } public function get smiley_img():Image{ return (this._2110575861smiley_img); } public function __gol_sc_creationComplete(event:FlexEvent):void{ gol_sc.setSize(0, 5, 2); } public function set bas_sc(UIComponentDescriptor:NumberRenderer):void{ var _local2:Object = this._1396208037bas_sc; if (_local2 !== UIComponentDescriptor){ this._1396208037bas_sc = UIComponentDescriptor; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "bas_sc", _local2, UIComponentDescriptor)); }; } public function __bas_sc_creationComplete(event:FlexEvent):void{ bas_sc.setSize(0, 5, 2); } public function get background():Image{ return (this._1332194002background); } public function nextScreen():void{ if (!(((SmileyGamerAPI.allowedClickAwayAdType() == SmileyGamerAPI.NONE)) || (ad_shown))){ trace("Showing some kind of ad..."); stats_canvas.visible = false; ad_shown = true; if (((toggle) && ((SmileyGamerAPI.allowedClickAwayAdType() == SmileyGamerAPI.MIXED)))){ trace("showing CPM ad"); toggle = false; smiley_img.visible = false; CPMcontainer.visible = true; } else { trace("showing smiley ad"); toggle = true; smiley_img.visible = true; CPMcontainer.visible = false; }; background.source = bg_blank; } else { if (Oliver.app.hiscore_screen.queryScoreBeaten(total_score)){ trace("Contiuing.."); Oliver.app.hiscore_screen.refresh(); Oliver.app.newscore.getName(total_score); visible = false; } else { trace("Continuing..."); Oliver.app.hiscore_screen.refresh(); Oliver.app.hiscore_screen.submitScore(); visible = false; }; }; } public function __bas_ct_creationComplete(event:FlexEvent):void{ bas_ct.setSize(0, 3, 2); } public function __gol_ct_creationComplete(event:FlexEvent):void{ gol_ct.setSize(0, 3, 2); } public function set spr_sc(UIComponentDescriptor:NumberRenderer):void{ var _local2:Object = this._895689446spr_sc; if (_local2 !== UIComponentDescriptor){ this._895689446spr_sc = UIComponentDescriptor; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "spr_sc", _local2, UIComponentDescriptor)); }; } public function get total_sc():NumberRenderer{ return (this._849895125total_sc); } public function __lvl_sc_creationComplete(event:FlexEvent):void{ lvl_sc.setSize(1, 6, 3); } public function get spr_ct():NumberRenderer{ return (this._895689925spr_ct); } public function get bas_sc():NumberRenderer{ return (this._1396208037bas_sc); } public function __spr_ct_creationComplete(event:FlexEvent):void{ spr_ct.setSize(0, 3, 2); } public function __spr_sc_creationComplete(event:FlexEvent):void{ spr_sc.setSize(0, 5, 2); } public function get continue_button():DynamicButton{ return (this._1080312374continue_button); } public function set background(UIComponentDescriptor:Image):void{ var _local2:Object = this._1332194002background; if (_local2 !== UIComponentDescriptor){ this._1332194002background = UIComponentDescriptor; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "background", _local2, UIComponentDescriptor)); }; } public function set gol_sc(UIComponentDescriptor:NumberRenderer):void{ var _local2:Object = this._1240341525gol_sc; if (_local2 !== UIComponentDescriptor){ this._1240341525gol_sc = UIComponentDescriptor; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "gol_sc", _local2, UIComponentDescriptor)); }; } public function preloadAds():void{ CPMad = new AdLoader("3099QAC167306"); CPMcontainer.source = CPMad; smileyclip = new Sprite(); SmileyGamerAPI.showSGMoreGamesAd(smileyclip); smiley_img.source = smileyclip; } public function __continue_button_creationComplete(event:FlexEvent):void{ continue_button.setText(DynamicButton.CONTINUE); } public function set total_sc(UIComponentDescriptor:NumberRenderer):void{ var _local2:Object = this._849895125total_sc; if (_local2 !== UIComponentDescriptor){ this._849895125total_sc = UIComponentDescriptor; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "total_sc", _local2, UIComponentDescriptor)); }; } public function set stats_canvas(UIComponentDescriptor:Canvas):void{ var _local2:Object = this._1521087240stats_canvas; if (_local2 !== UIComponentDescriptor){ this._1521087240stats_canvas = UIComponentDescriptor; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "stats_canvas", _local2, UIComponentDescriptor)); }; } public function get gol_sc():NumberRenderer{ return (this._1240341525gol_sc); } public function set ad_canvas(UIComponentDescriptor:Canvas):void{ var _local2:Object = this._298715380ad_canvas; if (_local2 !== UIComponentDescriptor){ this._298715380ad_canvas = UIComponentDescriptor; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "ad_canvas", _local2, UIComponentDescriptor)); }; } public function ___GameOver_Canvas1_creationComplete(event:FlexEvent):void{ setup(); } public function set smiley_img(UIComponentDescriptor:Image):void{ var _local2:Object = this._2110575861smiley_img; if (_local2 !== UIComponentDescriptor){ this._2110575861smiley_img = UIComponentDescriptor; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "smiley_img", _local2, UIComponentDescriptor)); }; } public function __continue_button_click(event:MouseEvent):void{ nextScreen(); } public function __total_sc_creationComplete(event:FlexEvent):void{ total_sc.setSize(1, 6, 3); } private function setup():void{ background.source = bg_fields; CPMcontainer = new Image(); ad_canvas.addChild(CPMcontainer); CPMcontainer.x = 123; CPMcontainer.y = 120; } public function set bas_ct(UIComponentDescriptor:NumberRenderer):void{ var _local2:Object = this._1396208516bas_ct; if (_local2 !== UIComponentDescriptor){ this._1396208516bas_ct = UIComponentDescriptor; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "bas_ct", _local2, UIComponentDescriptor)); }; } } }//package
Section 346
//GameOver_bg_blank (GameOver_bg_blank) package { import mx.core.*; public class GameOver_bg_blank extends BitmapAsset { } }//package
Section 347
//GameOver_bg_fields (GameOver_bg_fields) package { import mx.core.*; public class GameOver_bg_fields extends BitmapAsset { } }//package
Section 348
//Golem (Golem) package { public class Golem extends OliverSprite { private var punch_ani:Class; private var walk_ani:Class; private var disint_ani:Class; private var collision_ani:Class; public function Golem(x_pos:int, y_pos:int, facing:int, animate_creation:Boolean=false){ walk_ani = Golem_walk_ani; punch_ani = Golem_punch_ani; disint_ani = Golem_disint_ani; collision_ani = Golem_collision_ani; FRAME_SIZE = 44; X_OFFSET = -4; Y_OFFSET = -3; ANIMATIONS = [walk_ani, punch_ani, collision_ani, disint_ani, punch_ani]; super(x_pos, y_pos, facing); alpha = 1; if (animate_creation){ playAnimation(3, true, true); }; } } }//package
Section 349
//Golem_collision_ani (Golem_collision_ani) package { import mx.core.*; public class Golem_collision_ani extends BitmapAsset { } }//package
Section 350
//Golem_disint_ani (Golem_disint_ani) package { import mx.core.*; public class Golem_disint_ani extends BitmapAsset { } }//package
Section 351
//Golem_punch_ani (Golem_punch_ani) package { import mx.core.*; public class Golem_punch_ani extends BitmapAsset { } }//package
Section 352
//Golem_walk_ani (Golem_walk_ani) package { import mx.core.*; public class Golem_walk_ani extends BitmapAsset { } }//package
Section 353
//Help (Help) package { import flash.display.*; import flash.geom.*; import flash.media.*; import flash.text.*; import mx.core.*; import flash.events.*; import mx.events.*; import mx.styles.*; import mx.controls.*; import mx.containers.*; import mx.binding.*; import flash.utils.*; import flash.system.*; import flash.filters.*; import flash.ui.*; import flash.net.*; import flash.external.*; import flash.accessibility.*; import flash.debugger.*; import flash.errors.*; import flash.printing.*; import flash.profiler.*; import flash.xml.*; public class Help extends Canvas { private var _1017967102next_button:OliverButton; private var back_src:Class; private var page:int;// = 0 private var help2:Class; private var help3:Class; private var back_mo:Class; private var close_src:Class; private var next_src:Class; private var next_off:Class; private var back_off:Class; private var help1:Class; private var _1554360029help_image:Image; private var _1678958759close_button:OliverButton; private var pages:Array; private var close_mo:Class; private var _1605952118back_button:OliverButton; private var next_mo:Class; private var _documentDescriptor_:UIComponentDescriptor; public function Help(){ _documentDescriptor_ = new UIComponentDescriptor({type:Canvas, propertiesFactory:function ():Object{ return ({width:656, height:536, childDescriptors:[new UIComponentDescriptor({type:Image, id:"help_image", propertiesFactory:function ():Object{ return ({width:656, height:536}); }}), new UIComponentDescriptor({type:OliverButton, id:"next_button", events:{creationComplete:"__next_button_creationComplete", click:"__next_button_click"}}), new UIComponentDescriptor({type:OliverButton, id:"back_button", events:{creationComplete:"__back_button_creationComplete", click:"__back_button_click"}}), new UIComponentDescriptor({type:OliverButton, id:"close_button", events:{creationComplete:"__close_button_creationComplete", click:"__close_button_click"}})]}); }}); next_src = Help_next_src; next_mo = Help_next_mo; next_off = Help_next_off; back_src = Help_back_src; back_mo = Help_back_mo; back_off = Help_back_off; close_src = Help_close_src; close_mo = Help_close_mo; help1 = Help_help1; help2 = Help_help2; help3 = Help_help3; pages = [[help1, 347, 475], [help2, 347, 475], [help3, 347, 475]]; super(); mx_internal::_document = this; this.width = 656; this.height = 536; this.visible = false; } public function get next_button():OliverButton{ return (this._1017967102next_button); } public function __close_button_click(event:MouseEvent):void{ visible = false; } public function get back_button():OliverButton{ return (this._1605952118back_button); } override public function initialize():void{ mx_internal::setDocumentDescriptor(_documentDescriptor_); super.initialize(); } public function set back_button(back_src:OliverButton):void{ var _local2:Object = this._1605952118back_button; if (_local2 !== back_src){ this._1605952118back_button = back_src; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "back_button", _local2, back_src)); }; } public function __next_button_click(event:MouseEvent):void{ if (next_button.active){ showPage((page + 1)); }; } private function showPage(page:int):void{ this.page = page; help_image.source = pages[page][0]; back_button.x = pages[page][1]; back_button.y = pages[page][2]; next_button.x = (back_button.x + 88); next_button.y = back_button.y; close_button.x = (next_button.x + 88); close_button.y = next_button.y; if (page == 0){ back_button.turnOff(); } else { back_button.turnOn(); }; if (page == (pages.length - 1)){ next_button.turnOff(); } else { next_button.turnOn(); }; } public function __back_button_creationComplete(event:FlexEvent):void{ back_button.setSources(back_src, back_mo, back_off, true); } public function set close_button(back_src:OliverButton):void{ var _local2:Object = this._1678958759close_button; if (_local2 !== back_src){ this._1678958759close_button = back_src; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "close_button", _local2, back_src)); }; } public function __back_button_click(event:MouseEvent):void{ if (back_button.active){ showPage((page - 1)); }; } public function __next_button_creationComplete(event:FlexEvent):void{ next_button.setSources(next_src, next_mo, next_off, true); } public function nextScreen():void{ if (page == (pages.length - 1)){ visible = false; } else { showPage((page + 1)); }; } public function set help_image(back_src:Image):void{ var _local2:Object = this._1554360029help_image; if (_local2 !== back_src){ this._1554360029help_image = back_src; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "help_image", _local2, back_src)); }; } public function get close_button():OliverButton{ return (this._1678958759close_button); } public function get help_image():Image{ return (this._1554360029help_image); } public function showHelp():void{ visible = true; showPage(0); } public function set next_button(back_src:OliverButton):void{ var _local2:Object = this._1017967102next_button; if (_local2 !== back_src){ this._1017967102next_button = back_src; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "next_button", _local2, back_src)); }; } public function __close_button_creationComplete(event:FlexEvent):void{ close_button.setSources(close_src, close_mo, null, true); } } }//package
Section 354
//Help_back_mo (Help_back_mo) package { import mx.core.*; public class Help_back_mo extends BitmapAsset { } }//package
Section 355
//Help_back_off (Help_back_off) package { import mx.core.*; public class Help_back_off extends BitmapAsset { } }//package
Section 356
//Help_back_src (Help_back_src) package { import mx.core.*; public class Help_back_src extends BitmapAsset { } }//package
Section 357
//Help_close_mo (Help_close_mo) package { import mx.core.*; public class Help_close_mo extends BitmapAsset { } }//package
Section 358
//Help_close_src (Help_close_src) package { import mx.core.*; public class Help_close_src extends BitmapAsset { } }//package
Section 359
//Help_help1 (Help_help1) package { import mx.core.*; public class Help_help1 extends BitmapAsset { } }//package
Section 360
//Help_help2 (Help_help2) package { import mx.core.*; public class Help_help2 extends BitmapAsset { } }//package
Section 361
//Help_help3 (Help_help3) package { import mx.core.*; public class Help_help3 extends BitmapAsset { } }//package
Section 362
//Help_next_mo (Help_next_mo) package { import mx.core.*; public class Help_next_mo extends BitmapAsset { } }//package
Section 363
//Help_next_off (Help_next_off) package { import mx.core.*; public class Help_next_off extends BitmapAsset { } }//package
Section 364
//Help_next_src (Help_next_src) package { import mx.core.*; public class Help_next_src extends BitmapAsset { } }//package
Section 365
//Hiscores (Hiscores) package { import flash.display.*; import flash.geom.*; import flash.media.*; import flash.text.*; import mx.core.*; import flash.events.*; import mx.events.*; import mx.styles.*; import mx.controls.*; import mx.containers.*; import mx.binding.*; import flash.utils.*; import flash.system.*; import flash.filters.*; import mochi.as3.*; import flash.ui.*; import flash.net.*; import flash.external.*; import flash.accessibility.*; import flash.debugger.*; import flash.errors.*; import flash.printing.*; import flash.profiler.*; import flash.xml.*; public class Hiscores extends Canvas { private var _embed_mxml_assets_hiscore_bg_png_717226013:Class; private var _1196493733score_canvas:Canvas; private var _1157436946menu_button:DynamicButton; private var boardIDs:Array; private var scores:Array; private var score_sent:Boolean; private var _620376026latest_score:int; private var _1332194002background:Image; private var _1715864258current_level:int; private var latest_name:String; private var cookie:SharedObject; private var _608986353again_button:DynamicButton; private var _1724951730global_button:DynamicButton; private var _documentDescriptor_:UIComponentDescriptor; public function Hiscores(){ _documentDescriptor_ = new UIComponentDescriptor({type:Canvas, propertiesFactory:function ():Object{ return ({width:656, height:536, childDescriptors:[new UIComponentDescriptor({type:Image, id:"background", propertiesFactory:function ():Object{ return ({source:_embed_mxml_assets_hiscore_bg_png_717226013}); }}), new UIComponentDescriptor({type:Canvas, id:"score_canvas", propertiesFactory:function ():Object{ return ({x:95, y:121, width:347, height:296}); }}), new UIComponentDescriptor({type:DynamicButton, id:"again_button", events:{creationComplete:"__again_button_creationComplete", click:"__again_button_click"}, propertiesFactory:function ():Object{ return ({x:93, y:430}); }}), new UIComponentDescriptor({type:DynamicButton, id:"global_button", events:{creationComplete:"__global_button_creationComplete", click:"__global_button_click"}, propertiesFactory:function ():Object{ return ({x:270, y:430}); }}), new UIComponentDescriptor({type:DynamicButton, id:"menu_button", events:{creationComplete:"__menu_button_creationComplete", click:"__menu_button_click"}, propertiesFactory:function ():Object{ return ({x:270, y:430}); }})]}); }}); scores = new Array(0); boardIDs = ["cdd559ef7f317ec4", "fa4a9f2ba9fb87d7", "a81688847e63a880"]; _embed_mxml_assets_hiscore_bg_png_717226013 = Hiscores__embed_mxml_assets_hiscore_bg_png_717226013; super(); mx_internal::_document = this; if (!this.styleDeclaration){ this.styleDeclaration = new CSSStyleDeclaration(); }; this.styleDeclaration.defaultFactory = function ():void{ this.backgroundColor = 0; this.backgroundAlpha = 0.8; }; this.width = 656; this.height = 536; this.verticalScrollPolicy = "off"; this.addEventListener("creationComplete", ___Hiscores_Canvas1_creationComplete); } private function set current_level(value:int):void{ var oldValue:Object = this._1715864258current_level; if (oldValue !== value){ this._1715864258current_level = value; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "current_level", oldValue, value)); }; } override public function initialize():void{ mx_internal::setDocumentDescriptor(_documentDescriptor_); super.initialize(); } public function get menu_button():DynamicButton{ return (this._1157436946menu_button); } public function __again_button_click(event:MouseEvent):void{ startOver(); } private function displayScores(highlight_index:int):void{ var temp_text:Label; if ((((highlight_index >= 0)) && (Oliver.scores_enabled))){ menu_button.visible = false; global_button.visible = true; } else { menu_button.visible = true; global_button.visible = false; }; score_canvas.removeAllChildren(); var glow:GlowFilter = new GlowFilter(9437021, 0.6, 5, 6, 2, 1); var i:int; while (i < 10) { temp_text = new Label(); temp_text.x = 10; temp_text.width = 0x0101; temp_text.y = ((i * 27) + 11); temp_text.text = String(scores[i][0]).toUpperCase(); temp_text.setStyle("color", ((i == highlight_index)) ? "0xbef6a5" : "0xffd149"); temp_text.setStyle("fontFamily", "Verdana"); temp_text.setStyle("fontSize", "20"); temp_text.setStyle("fontWeight", "bold"); if (i == highlight_index){ temp_text.filters = [glow]; }; score_canvas.addChild(temp_text); temp_text = new Label(); temp_text.x = 237; temp_text.width = 100; temp_text.y = ((i * 27) + 11); temp_text.text = String(scores[i][1]); temp_text.setStyle("color", ((i == highlight_index)) ? "0xbef6a5" : "0xffd149"); temp_text.setStyle("fontFamily", "Verdana"); temp_text.setStyle("fontSize", "20"); temp_text.setStyle("fontWeight", "bold"); temp_text.setStyle("textAlign", "right"); if (i == highlight_index){ temp_text.filters = [glow]; }; score_canvas.addChild(temp_text); i++; }; } public function set global_button(width:DynamicButton):void{ var _local2:Object = this._1724951730global_button; if (_local2 !== width){ this._1724951730global_button = width; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "global_button", _local2, width)); }; } public function __menu_button_creationComplete(event:FlexEvent):void{ menu_button.setText(DynamicButton.MENU); } public function queryScoreBeaten(score:int):Boolean{ refresh(); if ((((score > 100)) && ((score > scores[(scores.length - 1)][1])))){ return (true); }; return (false); } public function set menu_button(width:DynamicButton):void{ var _local2:Object = this._1157436946menu_button; if (_local2 !== width){ this._1157436946menu_button = width; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "menu_button", _local2, width)); }; } public function get background():Image{ return (this._1332194002background); } public function __menu_button_click(event:MouseEvent):void{ visible = false; Oliver.app.mainmenu.visible = true; } public function get score_canvas():Canvas{ return (this._1196493733score_canvas); } private function get current_level():int{ return (this._1715864258current_level); } private function parseScores(scorestring:String):void{ var i:int; var current_string:String; trace("parsing scores"); i = 0; var current_array:Array = new Array(2); scores = new Array(0); while (i < scorestring.length) { current_string = ""; while (((!((scorestring.charAt(i) == ":"))) && ((i < scorestring.length)))) { current_string = (current_string + scorestring.charAt(i)); trace(current_string); i++; }; if (current_array[0] == null){ current_array[0] = current_string; } else { current_array[1] = int(current_string); scores.push(current_array); current_array = new Array(2); }; i++; }; while (scores.length < 10) { current_array = new Array(2); current_array[0] = "Oliver"; current_array[1] = 100; scores.push(current_array); }; i = 0; while (i < 10) { trace(((("NAME: " + scores[i][0]) + " SCORE: ") + scores[i][1])); i++; }; } public function get global_button():DynamicButton{ return (this._1724951730global_button); } public function set score_canvas(width:Canvas):void{ var _local2:Object = this._1196493733score_canvas; if (_local2 !== width){ this._1196493733score_canvas = width; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "score_canvas", _local2, width)); }; } public function startOver():void{ visible = false; Oliver.app.startGame(Oliver.app.mode); } public function submitScore(score:int=0, name:String="NONE"):void{ var i:int; visible = true; var highlight_index = -1; latest_score = score; latest_name = name; if (score != 0){ i = 9; while (i >= 0) { if ((((i == 0)) || ((score <= scores[(i - 1)][1])))){ scores[i][0] = name; scores[i][1] = score; highlight_index = i; saveScores(); displayScores(highlight_index); return; }; scores[i][0] = scores[(i - 1)][0]; scores[i][1] = scores[(i - 1)][1]; i--; }; }; displayScores(-1); } public function refresh():void{ switch (Oliver.app.mode){ case Oliver.SIMPLE: parseScores(String(cookie.data.simple_scores)); break; case Oliver.NORMAL: parseScores(String(cookie.data.normal_scores)); break; case Oliver.DELUXE: parseScores(String(cookie.data.deluxe_scores)); }; } public function set background(width:Image):void{ var _local2:Object = this._1332194002background; if (_local2 !== width){ this._1332194002background = width; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "background", _local2, width)); }; } private function get latest_score():int{ return (this._620376026latest_score); } public function set again_button(width:DynamicButton):void{ var _local2:Object = this._608986353again_button; if (_local2 !== width){ this._608986353again_button = width; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "again_button", _local2, width)); }; } public function __again_button_creationComplete(event:FlexEvent):void{ again_button.setText(DynamicButton.AGAIN); } private function set latest_score(value:int):void{ var oldValue:Object = this._620376026latest_score; if (oldValue !== value){ this._620376026latest_score = value; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "latest_score", oldValue, value)); }; } public function __global_button_creationComplete(event:FlexEvent):void{ global_button.setText(DynamicButton.GLOBAL); } public function get again_button():DynamicButton{ return (this._608986353again_button); } public function __global_button_click(event:MouseEvent):void{ MochiScores.showLeaderboard({boardID:boardIDs[Oliver.app.mode], score:latest_score, name:latest_name}); } public function ___Hiscores_Canvas1_creationComplete(event:FlexEvent):void{ setup(); } private function setup():void{ cookie = SharedObject.getLocal("oliver_data"); } private function saveScores():void{ var scorestring:String = ""; var i:int; while (i < 10) { scorestring = (scorestring + (((scores[i][0] + ":") + scores[i][1]) + ":")); i++; }; switch (Oliver.app.mode){ case Oliver.SIMPLE: cookie.data.simple_scores = scorestring; break; case Oliver.NORMAL: cookie.data.normal_scores = scorestring; break; case Oliver.DELUXE: cookie.data.deluxe_scores = scorestring; }; cookie.flush(); } } }//package
Section 366
//Hiscores__embed_mxml_assets_hiscore_bg_png_717226013 (Hiscores__embed_mxml_assets_hiscore_bg_png_717226013) package { import mx.core.*; public class Hiscores__embed_mxml_assets_hiscore_bg_png_717226013 extends BitmapAsset { } }//package
Section 367
//HueShiftButton (HueShiftButton) package { import flash.events.*; import mx.events.*; import mx.controls.*; import flash.utils.*; import mx.collections.*; import flash.filters.*; public class HueShiftButton extends Image { private var flash_count:int;// = 0 var active:Boolean; var _1331727278dimmer:ColorMatrixFilter; private var flash_ani:uint; var matrix_array:Array; private var flashing:Boolean;// = false public var effect_active:Boolean;// = true var hue_effect:ColorMatrixFilter; public function HueShiftButton(){ matrix_array = [1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1.3, 0, 0, 0, 0, 0, 0, 1, 0]; hue_effect = new ColorMatrixFilter(matrix_array); _1331727278dimmer = new ColorMatrixFilter([0.3, 0.1, 0.1, 0, 0, 0.1, 0.3, 0.1, 0, 0, 0.1, 0.1, 0.3, 0, 0, 0, 0, 0, 1, 0]); super(); this.addEventListener("creationComplete", ___HueShiftButton_Image1_creationComplete); } override public function initialize():void{ super.initialize(); } function get dimmer():ColorMatrixFilter{ return (this._1331727278dimmer); } private function toggle():void{ var temp_array:Array = filters; var collection:ArrayCollection = new ArrayCollection(temp_array); if (collection.contains(hue_effect)){ collection.removeItemAt(collection.getItemIndex(hue_effect)); flash_count++; } else { temp_array.push(hue_effect); }; filters = temp_array; if (flash_count >= 2){ if (active){ if (collection.contains(dimmer)){ collection.removeItemAt(collection.getItemIndex(dimmer)); }; }; if (!active){ filters = [dimmer]; }; flashing = false; clearInterval(flash_ani); }; } public function ___HueShiftButton_Image1_creationComplete(event:FlexEvent):void{ setup(); } private function mouseOut(event:Event):void{ var temp_array:Array = filters; var collection:ArrayCollection = new ArrayCollection(temp_array); if (((!(flashing)) && (collection.contains(hue_effect)))){ collection.removeItemAt(collection.getItemIndex(hue_effect)); }; filters = temp_array; } private function mouseIn(event:Event):void{ if (active){ filters = filters.concat([hue_effect]); }; } function set dimmer(value:ColorMatrixFilter):void{ var oldValue:Object = this._1331727278dimmer; if (oldValue !== value){ this._1331727278dimmer = value; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "dimmer", oldValue, value)); }; } public function flash():void{ flash_count = 0; if (!flashing){ flashing = true; filters = [hue_effect]; flash_ani = setInterval(toggle, 80); }; } public function turnOff():void{ if (!flashing){ filters = [dimmer]; }; active = false; } public function turnOn():void{ filters = new Array(0); if (flashing){ clearInterval(flash_ani); flashing = false; }; active = true; } private function setup():void{ addEventListener(MouseEvent.ROLL_OVER, mouseIn); addEventListener(MouseEvent.ROLL_OUT, mouseOut); active = true; } } }//package
Section 368
//Interlevel (Interlevel) package { import flash.display.*; import flash.geom.*; import flash.media.*; import flash.text.*; import mx.core.*; import flash.events.*; import mx.events.*; import mx.styles.*; import mx.controls.*; import mx.containers.*; import mx.binding.*; import flash.utils.*; import flash.system.*; import flash.filters.*; import flash.ui.*; import flash.net.*; import flash.external.*; import flash.accessibility.*; import flash.debugger.*; import flash.errors.*; import flash.printing.*; import flash.profiler.*; import flash.xml.*; public class Interlevel extends Canvas { private var _849895125total_sc:NumberRenderer; private var _1196493733score_canvas:Canvas; private var magic_bonus:CroppedImage; private var _embed_mxml_assets_level_complete1_png_367701331:Class; private var _1396208037bas_sc:NumberRenderer; private var _468316753start_button:DynamicButton; private var scroll_icons:Array; private var _embed_mxml_assets_minus_png_1072943315:Class; private var _embed_mxml_assets_magic_select_bg_png_868888227:Class; private var _69874665magic_bg:Image; private var _1396208516bas_ct:NumberRenderer; private var _865541433trg_ct:NumberRenderer; private var mastery_icon:CroppedImage; private var _1078040157med_sc:NumberRenderer; private var meditation_text:CroppedImage; private var _1240341525gol_sc:NumberRenderer; private var m_bonus_src:Class; private var _1189608490magic_canvas:Canvas; private var cost_src:Class; private var _1081644868mag_sc:NumberRenderer; private var _1231640094info_text:Image; private var _895689446spr_sc:NumberRenderer; private var _1078040636med_ct:NumberRenderer; private var _920177648rub_sc:NumberRenderer; private var _1059321426amulet_chooser:SpellChooser; private var _1080312374continue_button:DynamicButton; private var _865332896trn_ct:NumberRenderer; private var _103901296minus:Image; private var _1040311730no_med:Image; private var _1240342004gol_ct:NumberRenderer; private var _1516399259spell_info:Canvas; private var _447719574levelscore_bg:Image; private var _895689925spr_ct:NumberRenderer; private var _865332417trn_sc:NumberRenderer; private var rubble_penalty:CroppedImage; private var _80592329scroll_chooser:SpellChooser; private var _920178127rub_ct:NumberRenderer; private var cost_offsets:Array; private var cost:CroppedImage; private var _1712945668wand_chooser:SpellChooser; private var _1288568932level_number:NumberRenderer; private var _1100650276rewards:Rewards; private var _2136279670single_digit:Image; private var _embed_mxml_assets_level_complete_bg_png_730825389:Class; private var _documentDescriptor_:UIComponentDescriptor; private var mastery_src:Class; public function Interlevel(){ _documentDescriptor_ = new UIComponentDescriptor({type:Canvas, propertiesFactory:function ():Object{ return ({width:656, height:536, childDescriptors:[new UIComponentDescriptor({type:Canvas, id:"score_canvas", propertiesFactory:function ():Object{ return ({width:536, height:660, childDescriptors:[new UIComponentDescriptor({type:Image, id:"levelscore_bg", propertiesFactory:function ():Object{ return ({source:_embed_mxml_assets_level_complete_bg_png_730825389, percentWidth:100, percentHeight:100}); }}), new UIComponentDescriptor({type:Image, id:"single_digit", propertiesFactory:function ():Object{ return ({x:72, y:94, source:_embed_mxml_assets_level_complete1_png_367701331, visible:false}); }}), new UIComponentDescriptor({type:NumberRenderer, id:"level_number", events:{creationComplete:"__level_number_creationComplete"}, propertiesFactory:function ():Object{ return ({x:204, y:97}); }}), new UIComponentDescriptor({type:NumberRenderer, id:"bas_ct", events:{creationComplete:"__bas_ct_creationComplete"}, propertiesFactory:function ():Object{ return ({x:266, y:176}); }}), new UIComponentDescriptor({type:NumberRenderer, id:"bas_sc", events:{creationComplete:"__bas_sc_creationComplete"}, propertiesFactory:function ():Object{ return ({x:356, y:176}); }}), new UIComponentDescriptor({type:NumberRenderer, id:"gol_ct", events:{creationComplete:"__gol_ct_creationComplete"}, propertiesFactory:function ():Object{ return ({x:266, y:201}); }}), new UIComponentDescriptor({type:NumberRenderer, id:"gol_sc", events:{creationComplete:"__gol_sc_creationComplete"}, propertiesFactory:function ():Object{ return ({x:356, y:201}); }}), new UIComponentDescriptor({type:NumberRenderer, id:"spr_ct", events:{creationComplete:"__spr_ct_creationComplete"}, propertiesFactory:function ():Object{ return ({x:266, y:226}); }}), new UIComponentDescriptor({type:NumberRenderer, id:"spr_sc", events:{creationComplete:"__spr_sc_creationComplete"}, propertiesFactory:function ():Object{ return ({x:356, y:226}); }}), new UIComponentDescriptor({type:NumberRenderer, id:"rub_ct", events:{creationComplete:"__rub_ct_creationComplete"}, propertiesFactory:function ():Object{ return ({x:266, y:251}); }}), new UIComponentDescriptor({type:NumberRenderer, id:"rub_sc", events:{creationComplete:"__rub_sc_creationComplete"}, propertiesFactory:function ():Object{ return ({x:363, y:251}); }}), new UIComponentDescriptor({type:NumberRenderer, id:"trn_ct", events:{creationComplete:"__trn_ct_creationComplete"}, propertiesFactory:function ():Object{ return ({x:0x0100, y:276}); }}), new UIComponentDescriptor({type:NumberRenderer, id:"trg_ct", events:{creationComplete:"__trg_ct_creationComplete"}, propertiesFactory:function ():Object{ return ({x:288, y:276}); }}), new UIComponentDescriptor({type:NumberRenderer, id:"trn_sc", events:{creationComplete:"__trn_sc_creationComplete"}, propertiesFactory:function ():Object{ return ({x:363, y:276}); }}), new UIComponentDescriptor({type:NumberRenderer, id:"med_ct", events:{creationComplete:"__med_ct_creationComplete"}, propertiesFactory:function ():Object{ return ({x:266, y:301}); }}), new UIComponentDescriptor({type:NumberRenderer, id:"med_sc", events:{creationComplete:"__med_sc_creationComplete"}, propertiesFactory:function ():Object{ return ({x:363, y:301}); }}), new UIComponentDescriptor({type:NumberRenderer, id:"mag_sc", events:{creationComplete:"__mag_sc_creationComplete"}, propertiesFactory:function ():Object{ return ({x:363, y:326}); }}), new UIComponentDescriptor({type:NumberRenderer, id:"total_sc", events:{creationComplete:"__total_sc_creationComplete"}, propertiesFactory:function ():Object{ return ({x:283, y:360}); }}), new UIComponentDescriptor({type:Image, id:"minus", propertiesFactory:function ():Object{ return ({source:_embed_mxml_assets_minus_png_1072943315, y:0x0100, x:358}); }}), new UIComponentDescriptor({type:Image, id:"no_med", propertiesFactory:function ():Object{ return ({source:_embed_mxml_assets_minus_png_1072943315, y:305, x:280, visible:false}); }}), new UIComponentDescriptor({type:DynamicButton, id:"continue_button", events:{creationComplete:"__continue_button_creationComplete", click:"__continue_button_click"}, propertiesFactory:function ():Object{ return ({x:183, y:401}); }})]}); }}), new UIComponentDescriptor({type:Canvas, id:"magic_canvas", propertiesFactory:function ():Object{ return ({width:536, height:660, visible:false, childDescriptors:[new UIComponentDescriptor({type:Image, id:"magic_bg", propertiesFactory:function ():Object{ return ({source:_embed_mxml_assets_magic_select_bg_png_868888227, percentWidth:100, percentHeight:100}); }}), new UIComponentDescriptor({type:DynamicButton, id:"start_button", events:{creationComplete:"__start_button_creationComplete", click:"__start_button_click"}, propertiesFactory:function ():Object{ return ({x:188, y:414}); }}), new UIComponentDescriptor({type:Rewards, id:"rewards", propertiesFactory:function ():Object{ return ({x:73, y:130}); }}), new UIComponentDescriptor({type:SpellChooser, id:"amulet_chooser", events:{mouseOver:"__amulet_chooser_mouseOver", click:"__amulet_chooser_click", mouseOut:"__amulet_chooser_mouseOut"}, propertiesFactory:function ():Object{ return ({x:111, y:233}); }}), new UIComponentDescriptor({type:SpellChooser, id:"wand_chooser", events:{mouseOver:"__wand_chooser_mouseOver", click:"__wand_chooser_click", mouseOut:"__wand_chooser_mouseOut"}, propertiesFactory:function ():Object{ return ({x:216, y:233}); }}), new UIComponentDescriptor({type:SpellChooser, id:"scroll_chooser", events:{mouseOver:"__scroll_chooser_mouseOver", click:"__scroll_chooser_click", mouseOut:"__scroll_chooser_mouseOut"}, propertiesFactory:function ():Object{ return ({x:321, y:233}); }}), new UIComponentDescriptor({type:Canvas, id:"spell_info", stylesFactory:function ():void{ this.backgroundColor = 16183253; }, propertiesFactory:function ():Object{ return ({x:122, y:352, width:294, height:48, visible:false, childDescriptors:[new UIComponentDescriptor({type:Image, id:"info_text", propertiesFactory:function ():Object{ return ({x:5, y:4, width:280, height:40}); }})]}); }})]}); }})]}); }}); mastery_src = Interlevel_mastery_src; m_bonus_src = Interlevel_m_bonus_src; cost_src = Interlevel_cost_src; scroll_icons = new Array(5); cost_offsets = [76, 45, 106, 84, 102, 91, 91, 79, 80, 93]; _embed_mxml_assets_level_complete1_png_367701331 = Interlevel__embed_mxml_assets_level_complete1_png_367701331; _embed_mxml_assets_level_complete_bg_png_730825389 = Interlevel__embed_mxml_assets_level_complete_bg_png_730825389; _embed_mxml_assets_magic_select_bg_png_868888227 = Interlevel__embed_mxml_assets_magic_select_bg_png_868888227; _embed_mxml_assets_minus_png_1072943315 = Interlevel__embed_mxml_assets_minus_png_1072943315; super(); mx_internal::_document = this; if (!this.styleDeclaration){ this.styleDeclaration = new CSSStyleDeclaration(); }; this.styleDeclaration.defaultFactory = function ():void{ this.backgroundColor = 0; this.backgroundAlpha = 0.8; }; this.width = 656; this.height = 536; this.verticalScrollPolicy = "off"; this.horizontalScrollPolicy = "off"; this.addEventListener("creationComplete", ___Interlevel_Canvas1_creationComplete); } public function __amulet_chooser_mouseOut(event:MouseEvent):void{ spell_info.visible = false; } public function __scroll_chooser_mouseOver(event:MouseEvent):void{ showInfo(scroll_chooser); } public function __total_sc_creationComplete(event:FlexEvent):void{ total_sc.setSize(1, 6, 3); } public function set wand_chooser(_embed_mxml_assets_level_complete1_png_367701331:SpellChooser):void{ var _local2:Object = this._1712945668wand_chooser; if (_local2 !== _embed_mxml_assets_level_complete1_png_367701331){ this._1712945668wand_chooser = _embed_mxml_assets_level_complete1_png_367701331; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "wand_chooser", _local2, _embed_mxml_assets_level_complete1_png_367701331)); }; } public function get wand_chooser():SpellChooser{ return (this._1712945668wand_chooser); } public function get gol_ct():NumberRenderer{ return (this._1240342004gol_ct); } public function get magic_bg():Image{ return (this._69874665magic_bg); } public function set gol_ct(_embed_mxml_assets_level_complete1_png_367701331:NumberRenderer):void{ var _local2:Object = this._1240342004gol_ct; if (_local2 !== _embed_mxml_assets_level_complete1_png_367701331){ this._1240342004gol_ct = _embed_mxml_assets_level_complete1_png_367701331; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "gol_ct", _local2, _embed_mxml_assets_level_complete1_png_367701331)); }; } public function get info_text():Image{ return (this._1231640094info_text); } public function get rub_sc():NumberRenderer{ return (this._920177648rub_sc); } public function get spr_sc():NumberRenderer{ return (this._895689446spr_sc); } public function get gol_sc():NumberRenderer{ return (this._1240341525gol_sc); } public function set single_digit(_embed_mxml_assets_level_complete1_png_367701331:Image):void{ var _local2:Object = this._2136279670single_digit; if (_local2 !== _embed_mxml_assets_level_complete1_png_367701331){ this._2136279670single_digit = _embed_mxml_assets_level_complete1_png_367701331; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "single_digit", _local2, _embed_mxml_assets_level_complete1_png_367701331)); }; } public function set rub_sc(_embed_mxml_assets_level_complete1_png_367701331:NumberRenderer):void{ var _local2:Object = this._920177648rub_sc; if (_local2 !== _embed_mxml_assets_level_complete1_png_367701331){ this._920177648rub_sc = _embed_mxml_assets_level_complete1_png_367701331; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "rub_sc", _local2, _embed_mxml_assets_level_complete1_png_367701331)); }; } public function __gol_ct_creationComplete(event:FlexEvent):void{ gol_ct.setSize(0, 3, 2); } public function get magic_canvas():Canvas{ return (this._1189608490magic_canvas); } public function get total_sc():NumberRenderer{ return (this._849895125total_sc); } public function set spr_sc(_embed_mxml_assets_level_complete1_png_367701331:NumberRenderer):void{ var _local2:Object = this._895689446spr_sc; if (_local2 !== _embed_mxml_assets_level_complete1_png_367701331){ this._895689446spr_sc = _embed_mxml_assets_level_complete1_png_367701331; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "spr_sc", _local2, _embed_mxml_assets_level_complete1_png_367701331)); }; } public function set magic_bg(_embed_mxml_assets_level_complete1_png_367701331:Image):void{ var _local2:Object = this._69874665magic_bg; if (_local2 !== _embed_mxml_assets_level_complete1_png_367701331){ this._69874665magic_bg = _embed_mxml_assets_level_complete1_png_367701331; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "magic_bg", _local2, _embed_mxml_assets_level_complete1_png_367701331)); }; } public function get rub_ct():NumberRenderer{ return (this._920178127rub_ct); } public function __gol_sc_creationComplete(event:FlexEvent):void{ gol_sc.setSize(0, 5, 2); } public function set info_text(_embed_mxml_assets_level_complete1_png_367701331:Image):void{ var _local2:Object = this._1231640094info_text; if (_local2 !== _embed_mxml_assets_level_complete1_png_367701331){ this._1231640094info_text = _embed_mxml_assets_level_complete1_png_367701331; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "info_text", _local2, _embed_mxml_assets_level_complete1_png_367701331)); }; } public function ___Interlevel_Canvas1_creationComplete(event:FlexEvent):void{ setup(); } public function nextScreen():void{ if (magic_canvas.visible){ startLevel(); } else { score_canvas.visible = false; magic_canvas.visible = true; }; } private function startLevel():void{ this.visible = false; Oliver.app.startLevel(false); } public function set levelscore_bg(_embed_mxml_assets_level_complete1_png_367701331:Image):void{ var _local2:Object = this._447719574levelscore_bg; if (_local2 !== _embed_mxml_assets_level_complete1_png_367701331){ this._447719574levelscore_bg = _embed_mxml_assets_level_complete1_png_367701331; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "levelscore_bg", _local2, _embed_mxml_assets_level_complete1_png_367701331)); }; } public function set rewards(_embed_mxml_assets_level_complete1_png_367701331:Rewards):void{ var _local2:Object = this._1100650276rewards; if (_local2 !== _embed_mxml_assets_level_complete1_png_367701331){ this._1100650276rewards = _embed_mxml_assets_level_complete1_png_367701331; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "rewards", _local2, _embed_mxml_assets_level_complete1_png_367701331)); }; } public function set score_canvas(_embed_mxml_assets_level_complete1_png_367701331:Canvas):void{ var _local2:Object = this._1196493733score_canvas; if (_local2 !== _embed_mxml_assets_level_complete1_png_367701331){ this._1196493733score_canvas = _embed_mxml_assets_level_complete1_png_367701331; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "score_canvas", _local2, _embed_mxml_assets_level_complete1_png_367701331)); }; } private function showInfo(chooser:SpellChooser):void{ spell_info.visible = true; info_text.source = chooser.description; cost.x = (8 + cost_offsets[chooser.spell]); cost.moveImage((14 * (Oliver.spell_costs[chooser.spell] - ((Oliver.app.spell_mastery[chooser.spell])==5) ? 3 : 2)), 0); trace(("Scrolls: " + Oliver.app.scrolls[chooser.spell])); mastery_icon.moveImage((14 * Oliver.app.spell_mastery[chooser.spell]), 0); } public function set med_sc(_embed_mxml_assets_level_complete1_png_367701331:NumberRenderer):void{ var _local2:Object = this._1078040157med_sc; if (_local2 !== _embed_mxml_assets_level_complete1_png_367701331){ this._1078040157med_sc = _embed_mxml_assets_level_complete1_png_367701331; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "med_sc", _local2, _embed_mxml_assets_level_complete1_png_367701331)); }; } public function __scroll_chooser_mouseOut(event:MouseEvent):void{ spell_info.visible = false; } public function get rewards():Rewards{ return (this._1100650276rewards); } public function get spr_ct():NumberRenderer{ return (this._895689925spr_ct); } public function get no_med():Image{ return (this._1040311730no_med); } public function __trn_ct_creationComplete(event:FlexEvent):void{ trn_ct.setSize(0, 2, 2); } public function __trn_sc_creationComplete(event:FlexEvent):void{ trn_sc.setSize(0, 4, 2); } public function get bas_sc():NumberRenderer{ return (this._1396208037bas_sc); } public function set start_button(_embed_mxml_assets_level_complete1_png_367701331:DynamicButton):void{ var _local2:Object = this._468316753start_button; if (_local2 !== _embed_mxml_assets_level_complete1_png_367701331){ this._468316753start_button = _embed_mxml_assets_level_complete1_png_367701331; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "start_button", _local2, _embed_mxml_assets_level_complete1_png_367701331)); }; } public function set rub_ct(_embed_mxml_assets_level_complete1_png_367701331:NumberRenderer):void{ var _local2:Object = this._920178127rub_ct; if (_local2 !== _embed_mxml_assets_level_complete1_png_367701331){ this._920178127rub_ct = _embed_mxml_assets_level_complete1_png_367701331; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "rub_ct", _local2, _embed_mxml_assets_level_complete1_png_367701331)); }; } public function set amulet_chooser(_embed_mxml_assets_level_complete1_png_367701331:SpellChooser):void{ var _local2:Object = this._1059321426amulet_chooser; if (_local2 !== _embed_mxml_assets_level_complete1_png_367701331){ this._1059321426amulet_chooser = _embed_mxml_assets_level_complete1_png_367701331; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "amulet_chooser", _local2, _embed_mxml_assets_level_complete1_png_367701331)); }; } public function get level_number():NumberRenderer{ return (this._1288568932level_number); } public function __wand_chooser_click(event:MouseEvent):void{ changeWand(); } public function get trn_ct():NumberRenderer{ return (this._865332896trn_ct); } public function __wand_chooser_mouseOut(event:MouseEvent):void{ spell_info.visible = false; } public function get minus():Image{ return (this._103901296minus); } public function __med_ct_creationComplete(event:FlexEvent):void{ med_ct.setSize(0, 3, 2); } public function __wand_chooser_mouseOver(event:MouseEvent):void{ showInfo(wand_chooser); } public function set mag_sc(_embed_mxml_assets_level_complete1_png_367701331:NumberRenderer):void{ var _local2:Object = this._1081644868mag_sc; if (_local2 !== _embed_mxml_assets_level_complete1_png_367701331){ this._1081644868mag_sc = _embed_mxml_assets_level_complete1_png_367701331; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "mag_sc", _local2, _embed_mxml_assets_level_complete1_png_367701331)); }; } public function __med_sc_creationComplete(event:FlexEvent):void{ med_sc.setSize(0, 4, 2); } public function get bas_ct():NumberRenderer{ return (this._1396208516bas_ct); } private function setup():void{ var new_img:Image; magic_bonus = new CroppedImage(100, 325, 140, 14, 0, 0, 140, 168, m_bonus_src); rubble_penalty = new CroppedImage(100, 250, 140, 14, 0, 0, 140, 168, m_bonus_src); meditation_text = new CroppedImage(100, 300, 140, 14, 0, 0, 140, 168, m_bonus_src); score_canvas.addChild(magic_bonus); score_canvas.addChild(rubble_penalty); score_canvas.addChild(meditation_text); mastery_icon = new CroppedImage(276, 3, 14, 14, 0, 0, 70, 14, mastery_src); spell_info.addChild(mastery_icon); cost = new CroppedImage(0, 0, 14, 14, 0, 0, 98, 14, cost_src); cost.y = 4; spell_info.addChild(cost); } private function changeAmulet():void{ var index:int = ((amulet_chooser.spell + 1) % Oliver.app.num_spells); while (Oliver.app.spell_mastery[index] < 2) { index = ((index + 1) % Oliver.app.num_spells); if (index == amulet_chooser.spell){ return; }; }; amulet_chooser.setSpell(index); Oliver.app.amulet.changeSpell(index); showInfo(amulet_chooser); } public function set total_sc(_embed_mxml_assets_level_complete1_png_367701331:NumberRenderer):void{ var _local2:Object = this._849895125total_sc; if (_local2 !== _embed_mxml_assets_level_complete1_png_367701331){ this._849895125total_sc = _embed_mxml_assets_level_complete1_png_367701331; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "total_sc", _local2, _embed_mxml_assets_level_complete1_png_367701331)); }; } public function get single_digit():Image{ return (this._2136279670single_digit); } public function set med_ct(_embed_mxml_assets_level_complete1_png_367701331:NumberRenderer):void{ var _local2:Object = this._1078040636med_ct; if (_local2 !== _embed_mxml_assets_level_complete1_png_367701331){ this._1078040636med_ct = _embed_mxml_assets_level_complete1_png_367701331; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "med_ct", _local2, _embed_mxml_assets_level_complete1_png_367701331)); }; } public function __mag_sc_creationComplete(event:FlexEvent):void{ mag_sc.setSize(0, 4, 2); } public function set magic_canvas(_embed_mxml_assets_level_complete1_png_367701331:Canvas):void{ var _local2:Object = this._1189608490magic_canvas; if (_local2 !== _embed_mxml_assets_level_complete1_png_367701331){ this._1189608490magic_canvas = _embed_mxml_assets_level_complete1_png_367701331; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "magic_canvas", _local2, _embed_mxml_assets_level_complete1_png_367701331)); }; } public function set scroll_chooser(_embed_mxml_assets_level_complete1_png_367701331:SpellChooser):void{ var _local2:Object = this._80592329scroll_chooser; if (_local2 !== _embed_mxml_assets_level_complete1_png_367701331){ this._80592329scroll_chooser = _embed_mxml_assets_level_complete1_png_367701331; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "scroll_chooser", _local2, _embed_mxml_assets_level_complete1_png_367701331)); }; } public function get trn_sc():NumberRenderer{ return (this._865332417trn_sc); } public function __scroll_chooser_click(event:MouseEvent):void{ changeScroll(); } public function set trg_ct(_embed_mxml_assets_level_complete1_png_367701331:NumberRenderer):void{ var _local2:Object = this._865541433trg_ct; if (_local2 !== _embed_mxml_assets_level_complete1_png_367701331){ this._865541433trg_ct = _embed_mxml_assets_level_complete1_png_367701331; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "trg_ct", _local2, _embed_mxml_assets_level_complete1_png_367701331)); }; } override public function initialize():void{ mx_internal::setDocumentDescriptor(_documentDescriptor_); super.initialize(); } private function changeScroll():void{ var index:int = ((scroll_chooser.spell + 1) % Oliver.app.num_spells); while (Oliver.app.scrolls[index] == 0) { index = ((index + 1) % Oliver.app.num_spells); if (index == scroll_chooser.spell){ return; }; }; scroll_chooser.setSpell(index); Oliver.app.scroll.changeSpell(index); showInfo(scroll_chooser); scroll_chooser.setNumber(Oliver.app.scrolls[scroll_chooser.spell]); } public function __amulet_chooser_click(event:MouseEvent):void{ changeAmulet(); } public function set trn_sc(_embed_mxml_assets_level_complete1_png_367701331:NumberRenderer):void{ var _local2:Object = this._865332417trn_sc; if (_local2 !== _embed_mxml_assets_level_complete1_png_367701331){ this._865332417trn_sc = _embed_mxml_assets_level_complete1_png_367701331; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "trn_sc", _local2, _embed_mxml_assets_level_complete1_png_367701331)); }; } public function set continue_button(_embed_mxml_assets_level_complete1_png_367701331:DynamicButton):void{ var _local2:Object = this._1080312374continue_button; if (_local2 !== _embed_mxml_assets_level_complete1_png_367701331){ this._1080312374continue_button = _embed_mxml_assets_level_complete1_png_367701331; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "continue_button", _local2, _embed_mxml_assets_level_complete1_png_367701331)); }; } public function get levelscore_bg():Image{ return (this._447719574levelscore_bg); } public function __rub_sc_creationComplete(event:FlexEvent):void{ rub_sc.setSize(0, 4, 2); } public function get med_sc():NumberRenderer{ return (this._1078040157med_sc); } public function get score_canvas():Canvas{ return (this._1196493733score_canvas); } public function __rub_ct_creationComplete(event:FlexEvent):void{ rub_ct.setSize(0, 3, 2); } public function get amulet_chooser():SpellChooser{ return (this._1059321426amulet_chooser); } public function __amulet_chooser_mouseOver(event:MouseEvent):void{ showInfo(amulet_chooser); } public function set no_med(_embed_mxml_assets_level_complete1_png_367701331:Image):void{ var _local2:Object = this._1040311730no_med; if (_local2 !== _embed_mxml_assets_level_complete1_png_367701331){ this._1040311730no_med = _embed_mxml_assets_level_complete1_png_367701331; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "no_med", _local2, _embed_mxml_assets_level_complete1_png_367701331)); }; } public function set bas_sc(_embed_mxml_assets_level_complete1_png_367701331:NumberRenderer):void{ var _local2:Object = this._1396208037bas_sc; if (_local2 !== _embed_mxml_assets_level_complete1_png_367701331){ this._1396208037bas_sc = _embed_mxml_assets_level_complete1_png_367701331; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "bas_sc", _local2, _embed_mxml_assets_level_complete1_png_367701331)); }; } public function get spell_info():Canvas{ return (this._1516399259spell_info); } public function __bas_ct_creationComplete(event:FlexEvent):void{ bas_ct.setSize(0, 3, 2); } public function __bas_sc_creationComplete(event:FlexEvent):void{ bas_sc.setSize(0, 5, 2); } public function get start_button():DynamicButton{ return (this._468316753start_button); } public function get mag_sc():NumberRenderer{ return (this._1081644868mag_sc); } public function get med_ct():NumberRenderer{ return (this._1078040636med_ct); } public function get trg_ct():NumberRenderer{ return (this._865541433trg_ct); } public function set level_number(_embed_mxml_assets_level_complete1_png_367701331:NumberRenderer):void{ var _local2:Object = this._1288568932level_number; if (_local2 !== _embed_mxml_assets_level_complete1_png_367701331){ this._1288568932level_number = _embed_mxml_assets_level_complete1_png_367701331; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "level_number", _local2, _embed_mxml_assets_level_complete1_png_367701331)); }; } public function set trn_ct(_embed_mxml_assets_level_complete1_png_367701331:NumberRenderer):void{ var _local2:Object = this._865332896trn_ct; if (_local2 !== _embed_mxml_assets_level_complete1_png_367701331){ this._865332896trn_ct = _embed_mxml_assets_level_complete1_png_367701331; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "trn_ct", _local2, _embed_mxml_assets_level_complete1_png_367701331)); }; } private function changeWand():void{ var index:int = ((wand_chooser.spell + 1) % Oliver.app.num_spells); while (Oliver.app.spell_mastery[index] < 1) { index = ((index + 1) % Oliver.app.num_spells); if (index == wand_chooser.spell){ return; }; }; wand_chooser.setSpell(index); Oliver.app.wand.changeSpell(index); showInfo(wand_chooser); } public function __level_number_creationComplete(event:FlexEvent):void{ level_number.setSize(2, 3, 4); } public function set gol_sc(_embed_mxml_assets_level_complete1_png_367701331:NumberRenderer):void{ var _local2:Object = this._1240341525gol_sc; if (_local2 !== _embed_mxml_assets_level_complete1_png_367701331){ this._1240341525gol_sc = _embed_mxml_assets_level_complete1_png_367701331; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "gol_sc", _local2, _embed_mxml_assets_level_complete1_png_367701331)); }; } public function __trg_ct_creationComplete(event:FlexEvent):void{ trg_ct.setSize(0, 2, 2); } public function __start_button_click(event:MouseEvent):void{ startLevel(); } public function get continue_button():DynamicButton{ return (this._1080312374continue_button); } public function __spr_sc_creationComplete(event:FlexEvent):void{ spr_sc.setSize(0, 5, 2); } public function get scroll_chooser():SpellChooser{ return (this._80592329scroll_chooser); } public function set spell_info(_embed_mxml_assets_level_complete1_png_367701331:Canvas):void{ var _local2:Object = this._1516399259spell_info; if (_local2 !== _embed_mxml_assets_level_complete1_png_367701331){ this._1516399259spell_info = _embed_mxml_assets_level_complete1_png_367701331; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "spell_info", _local2, _embed_mxml_assets_level_complete1_png_367701331)); }; } public function __spr_ct_creationComplete(event:FlexEvent):void{ spr_ct.setSize(0, 3, 2); } public function set minus(_embed_mxml_assets_level_complete1_png_367701331:Image):void{ var _local2:Object = this._103901296minus; if (_local2 !== _embed_mxml_assets_level_complete1_png_367701331){ this._103901296minus = _embed_mxml_assets_level_complete1_png_367701331; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "minus", _local2, _embed_mxml_assets_level_complete1_png_367701331)); }; } public function __start_button_creationComplete(event:FlexEvent):void{ start_button.setText(DynamicButton.NEXT_LEVEL); } public function set spr_ct(_embed_mxml_assets_level_complete1_png_367701331:NumberRenderer):void{ var _local2:Object = this._895689925spr_ct; if (_local2 !== _embed_mxml_assets_level_complete1_png_367701331){ this._895689925spr_ct = _embed_mxml_assets_level_complete1_png_367701331; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "spr_ct", _local2, _embed_mxml_assets_level_complete1_png_367701331)); }; } public function __continue_button_creationComplete(event:FlexEvent):void{ continue_button.setText(DynamicButton.CONTINUE); } public function __continue_button_click(event:MouseEvent):void{ nextScreen(); } public function show(level:int, score:int, bas:int, gol:int, spir:int, rubble:int, turns:int, med:int, a_use:Boolean, w_use:Boolean, s_use:Boolean):int{ var med_score:int; visible = true; score_canvas.visible = true; magic_canvas.visible = false; if (level < 10){ single_digit.visible = true; } else { single_digit.visible = false; }; level_number.setNumber(level); bas_ct.setNumber(bas); var bas_score:int = (bas * 100); bas_sc.setNumber(bas_score); var gol_score:int = (gol * 400); gol_ct.setNumber(gol); gol_sc.setNumber(gol_score); var spir_score:int = (spir * 200); spr_ct.setNumber(spir); spr_sc.setNumber(spir_score); var rubble_score:int = ((rubble == 0)) ? 200 : (rubble * 20); rubble_penalty.moveImage(0, ((rubble == 0)) ? 126 : 112); rub_ct.setNumber(rubble); rub_sc.setNumber(rubble_score); if (rubble == 0){ minus.visible = false; } else { minus.visible = true; }; minus.x = (354 + rub_sc.left_edge); var turn_limit:int = Oliver.app.getTurnLimit(level); var turns_score:int = ((turn_limit - turns) * 50); if (turns_score < 0){ turns_score = 0; } else { turns_score = (turns_score + 200); }; trn_ct.setNumber(Math.min(turns, 99)); trg_ct.setNumber(Math.min(turn_limit, 99)); trn_sc.setNumber(turns_score); if (turns <= turn_limit){ meditation_text.moveImage(0, 154); med_score = ((med * Math.min(med, 5)) * 30); no_med.visible = false; med_ct.visible = true; } else { meditation_text.moveImage(0, 140); med_score = 0; med = 0; no_med.visible = true; med_ct.visible = false; }; var bonus:int = (((a_use) ? 0 : 200 + (w_use) ? 0 : 100) + (s_use) ? 0 : 100); switch ((((a_use) ? 1 : 0 + (w_use) ? 2 : 0) + (s_use) ? 4 : 0)){ case 0: magic_bonus.moveImage(0, 84); break; case 1: magic_bonus.moveImage(0, 42); break; case 2: magic_bonus.moveImage(0, 56); break; case 3: magic_bonus.moveImage(0, 28); break; case 4: magic_bonus.moveImage(0, 70); break; case 5: magic_bonus.moveImage(0, 14); break; case 6: magic_bonus.moveImage(0, 0); break; case 7: magic_bonus.moveImage(0, 98); break; }; if (bonus == 400){ bonus = 600; }; mag_sc.setNumber(bonus); med_ct.setNumber(med); med_sc.setNumber(med_score); var total:int = ((((((bas_score + gol_score) + spir_score) + ((rubble == 0)) ? 200 : -(rubble_score)) + turns_score) + med_score) + bonus); total_sc.setNumber(total); rewards.getRewards((score + total), (Oliver.app.scroll.used) ? Oliver.app.scroll.spell : -1); if (rewards.scroll >= 0){ var _local22 = Oliver.app.scrolls; var _local23 = rewards.scroll; var _local24 = (_local22[_local23] + 1); _local22[_local23] = _local24; }; Oliver.app.wand.gainCharges(rewards.charges); var counter:int; while ((((Oliver.app.scrolls[((Oliver.app.scroll.spell + counter) % Oliver.app.num_spells)] == 0)) && ((counter < Oliver.app.num_spells)))) { counter++; }; if (counter == Oliver.app.num_spells){ scroll_chooser.setSpell(-1); Oliver.app.scroll.changeSpell(-1); } else { scroll_chooser.setSpell(((Oliver.app.scroll.spell + counter) % Oliver.app.num_spells)); scroll_chooser.setNumber(Oliver.app.scrolls[scroll_chooser.spell]); Oliver.app.scroll.changeSpell(scroll_chooser.spell); }; wand_chooser.setNumber(Oliver.app.wand.energy); if (Oliver.app.mode == Oliver.NORMAL){ mastery_icon.visible = false; } else { mastery_icon.visible = true; }; return (total); } public function set bas_ct(_embed_mxml_assets_level_complete1_png_367701331:NumberRenderer):void{ var _local2:Object = this._1396208516bas_ct; if (_local2 !== _embed_mxml_assets_level_complete1_png_367701331){ this._1396208516bas_ct = _embed_mxml_assets_level_complete1_png_367701331; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "bas_ct", _local2, _embed_mxml_assets_level_complete1_png_367701331)); }; } } }//package
Section 369
//Interlevel__embed_mxml_assets_level_complete_bg_png_730825389 (Interlevel__embed_mxml_assets_level_complete_bg_png_730825389) package { import mx.core.*; public class Interlevel__embed_mxml_assets_level_complete_bg_png_730825389 extends BitmapAsset { } }//package
Section 370
//Interlevel__embed_mxml_assets_level_complete1_png_367701331 (Interlevel__embed_mxml_assets_level_complete1_png_367701331) package { import mx.core.*; public class Interlevel__embed_mxml_assets_level_complete1_png_367701331 extends BitmapAsset { } }//package
Section 371
//Interlevel__embed_mxml_assets_magic_select_bg_png_868888227 (Interlevel__embed_mxml_assets_magic_select_bg_png_868888227) package { import mx.core.*; public class Interlevel__embed_mxml_assets_magic_select_bg_png_868888227 extends BitmapAsset { } }//package
Section 372
//Interlevel__embed_mxml_assets_minus_png_1072943315 (Interlevel__embed_mxml_assets_minus_png_1072943315) package { import mx.core.*; public class Interlevel__embed_mxml_assets_minus_png_1072943315 extends BitmapAsset { } }//package
Section 373
//Interlevel_cost_src (Interlevel_cost_src) package { import mx.core.*; public class Interlevel_cost_src extends BitmapAsset { } }//package
Section 374
//Interlevel_m_bonus_src (Interlevel_m_bonus_src) package { import mx.core.*; public class Interlevel_m_bonus_src extends BitmapAsset { } }//package
Section 375
//Interlevel_mastery_src (Interlevel_mastery_src) package { import mx.core.*; public class Interlevel_mastery_src extends BitmapAsset { } }//package
Section 376
//ItemSparkle (ItemSparkle) package { import flash.events.*; public class ItemSparkle extends PulseAnimation { private var alpha_rev:Boolean;// = false private var y_disp:int; private var x_disp:int; private var y_origin:int; private var x_origin:int; private var sprk_src:Class; public function ItemSparkle(x:int, y:int){ sprk_src = ItemSparkle_sprk_src; super(17, 17, 4, 100, sprk_src); this.x = x; this.y = y; x_origin = x; y_origin = y; alpha = 0; addEventListener(Event.ADDED, doPlay); } override protected function onFrame(frame:int):void{ x_disp = (x_disp + ((int((Math.random() * 20)) - 10) - int((x_disp / 2)))); y_disp = (y_disp + ((int((Math.random() * 20)) - 10) - int((y_disp / 2)))); this.x = (x_origin + x_disp); this.y = (y_origin + y_disp); if (x < 0){ x = 0; }; if (x > 89){ x = 89; }; if (y < 0){ y = 0; }; if (y > 89){ y = 89; }; trace(((((x_disp + ",") + this.x) + ",") + this.parent.x)); if (!alpha_rev){ alpha = (alpha + 0.2); } else { alpha = (alpha - 0.1); }; if (alpha >= 1){ alpha_rev = true; } else { if (alpha <= 0){ stop(); if (this.parent != null){ this.parent.removeChild(this); }; }; }; } private function doPlay(ev:Event):void{ play(); } } }//package
Section 377
//ItemSparkle_sprk_src (ItemSparkle_sprk_src) package { import mx.core.*; public class ItemSparkle_sprk_src extends BitmapAsset { } }//package
Section 378
//LevelIntro (LevelIntro) package { import mx.core.*; import flash.events.*; import mx.events.*; import mx.controls.*; import mx.containers.*; public class LevelIntro extends Canvas { private var _3568835trns:NumberRenderer; private var _97300bas:NumberRenderer; private var _1080312374continue_button:DynamicButton; private var _embed_mxml_assets_level_intro_bg_png_685019549:Class; private var _documentDescriptor_:UIComponentDescriptor; public function LevelIntro(){ _documentDescriptor_ = new UIComponentDescriptor({type:Canvas, propertiesFactory:function ():Object{ return ({childDescriptors:[new UIComponentDescriptor({type:Image, propertiesFactory:function ():Object{ return ({source:_embed_mxml_assets_level_intro_bg_png_685019549, x:93, y:173}); }}), new UIComponentDescriptor({type:DynamicButton, id:"continue_button", events:{creationComplete:"__continue_button_creationComplete", click:"__continue_button_click"}, propertiesFactory:function ():Object{ return ({x:181, y:293}); }}), new UIComponentDescriptor({type:NumberRenderer, id:"bas", events:{creationComplete:"__bas_creationComplete"}, propertiesFactory:function ():Object{ return ({x:0x0101, y:243}); }}), new UIComponentDescriptor({type:NumberRenderer, id:"trns", events:{creationComplete:"__trns_creationComplete"}, propertiesFactory:function ():Object{ return ({x:142, y:268}); }})]}); }}); _embed_mxml_assets_level_intro_bg_png_685019549 = LevelIntro__embed_mxml_assets_level_intro_bg_png_685019549; super(); mx_internal::_document = this; this.verticalScrollPolicy = "off"; this.addEventListener("creationComplete", ___LevelIntro_Canvas1_creationComplete); } public function startLevel():void{ visible = false; Oliver.app.player_movable = true; Oliver.app.key_listener.setFocus(); } public function get trns():NumberRenderer{ return (this._3568835trns); } private function setup():void{ } public function set trns(continue_button:NumberRenderer):void{ var _local2:Object = this._3568835trns; if (_local2 !== continue_button){ this._3568835trns = continue_button; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "trns", _local2, continue_button)); }; } public function get continue_button():DynamicButton{ return (this._1080312374continue_button); } public function __trns_creationComplete(event:FlexEvent):void{ trns.setSize(5, 2, 2); } override public function initialize():void{ mx_internal::setDocumentDescriptor(_documentDescriptor_); super.initialize(); } public function get bas():NumberRenderer{ return (this._97300bas); } public function ___LevelIntro_Canvas1_creationComplete(event:FlexEvent):void{ setup(); } public function set continue_button(continue_button:DynamicButton):void{ var _local2:Object = this._1080312374continue_button; if (_local2 !== continue_button){ this._1080312374continue_button = continue_button; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "continue_button", _local2, continue_button)); }; } public function __bas_creationComplete(event:FlexEvent):void{ bas.setSize(5, 2, 2); } public function set bas(continue_button:NumberRenderer):void{ var _local2:Object = this._97300bas; if (_local2 !== continue_button){ this._97300bas = continue_button; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "bas", _local2, continue_button)); }; } public function __continue_button_creationComplete(event:FlexEvent):void{ continue_button.setText(DynamicButton.START); } public function __continue_button_click(event:MouseEvent):void{ startLevel(); } public function show(basilisks:int, turns:int):void{ visible = true; Oliver.app.player_movable = false; bas.setNumber(basilisks); trns.setNumber(turns); } } }//package
Section 379
//LevelIntro__embed_mxml_assets_level_intro_bg_png_685019549 (LevelIntro__embed_mxml_assets_level_intro_bg_png_685019549) package { import mx.core.*; public class LevelIntro__embed_mxml_assets_level_intro_bg_png_685019549 extends BitmapAsset { } }//package
Section 380
//LightningBolt (LightningBolt) package { import flash.display.*; import flash.geom.*; import flash.events.*; import mx.controls.*; import flash.utils.*; public class LightningBolt extends Image { private var animation:uint;// = 0 private var frames:Array; private var img_src:Class; private var frame:int;// = 0 private var suppress:Boolean; public function LightningBolt(x_from:int, y_from:int, x_to:int, y_to:int, fire_immediately:Boolean=false, suppress_callback:Boolean=false){ var dx:int; var dy:int; var ssc:SingleSourceComposite; img_src = LightningBolt_img_src; super(); dx = (x_to - x_from); dy = (y_to - y_from); frames = new Array(0); var i:int; while (i < 4) { ssc = new SingleSourceComposite(); ssc.width = ((Math.abs(dx) * 35) + 35); ssc.height = ((Math.abs(dy) * 35) + 35); ssc.setup(img_src, 0, true); frames.push(ssc); i++; }; x = (35 * Math.min(x_from, x_to)); y = (35 * Math.min(y_from, y_to)); if ((((((dy == 0)) || ((dx == 0)))) || ((Math.abs(dy) == Math.abs(dx))))){ straightBolt(dx, dy); } else { zagBolt(dx, dy); }; source = frames[0]; visible = false; suppress = suppress_callback; if (fire_immediately){ addEventListener(Event.ADDED, play); }; } private function nextFrame():void{ frame++; if (frame == 4){ clearInterval(animation); this.visible = false; if (this.parent != null){ parent.removeChild(this); }; if (!suppress){ Oliver.app.lightningCallback(); }; return; } else { source = frames[frame]; }; } public function play(ev:Event=null):void{ if (ev != null){ removeEventListener(Event.ADDED, play); }; visible = true; frame = 0; animation = setInterval(nextFrame, 120); Oliver.app.sound_channel_1.playSound("lightning"); } private function straightBolt(dx:int, dy:int):void{ var type:int; var i:int; var steps:int = Math.max(Math.abs(dx), Math.abs(dy)); var x_step = 35; var y_step = 35; var x_pos:int; var y_pos:int; if (dy == 0){ type = 0; y_step = 0; } else { if (dx == 0){ type = 1; x_step = 0; } else { if (dx == dy){ type = 2; } else { type = 3; y_pos = (steps * 35); y_step = -35; }; }; }; var j:int; while (j <= steps) { i = 0; while (i < 4) { SingleSourceComposite(frames[i]).copyPixels((i * 35), (type * 35), 35, 35, x_pos, y_pos); if (type == 2){ SingleSourceComposite(frames[i]).copyPixels((i * 35), 420, 2, 2, (x_pos + 34), (y_pos + 34)); } else { if (type == 3){ SingleSourceComposite(frames[i]).copyPixels((i * 35), 420, 2, 2, (x_pos + 34), y_pos); }; }; i++; }; x_pos = (x_pos + x_step); y_pos = (y_pos + y_step); j++; }; if (type == 0){ crop(false, true, false, true); } else { if (type == 1){ crop(true, false, true, false); } else { crop(true, true, true, true); }; }; } private function crop(top:Boolean, right:Boolean, bottom:Boolean, left:Boolean):void{ var bmp:Bitmap; var bmpd:BitmapData; var rect:Rectangle; var new_w:int = SingleSourceComposite(frames[0]).width; var new_h:int = SingleSourceComposite(frames[0]).height; if (left){ new_w = (new_w - 25); x = (x + 25); }; if (right){ new_w = (new_w - 25); }; if (top){ new_h = (new_h - 25); y = (y + 25); }; if (bottom){ new_h = (new_h - 25); }; var i:int; while (i < 4) { bmpd = new BitmapData(new_w, new_h, true); rect = new Rectangle((left) ? 25 : 0, (top) ? 25 : 0, new_w, new_h); bmpd.copyPixels(SingleSourceComposite(frames[i]).bmp_data, rect, new Point(0, 0)); bmp = new Bitmap(bmpd); frames[i] = bmp; i++; }; } private function zagBolt(dx:int, dy:int):void{ var i:int; var od_zag:int; var do_zag:int; var type:int; var steps:Array = new Array(Math.max(Math.abs(dx), Math.abs(dy))); var diag:int = Math.min(Math.abs(dx), Math.abs(dy)); i = 0; while (i < steps.length) { if ((Math.random() * (steps.length - i)) < diag){ diag--; steps[i] = true; } else { steps[i] = false; }; i++; }; var orth_type:int = ((Math.abs(dx) > Math.abs(dy))) ? 0 : 1; var diag_type:int = (((Math.abs(dx) / dx))==(Math.abs(dy) / dy)) ? 2 : 3; var x_step = 35; var y_step:int = ((diag_type)==2) ? 35 : -35; if ((((orth_type == 0)) && ((diag_type == 2)))){ od_zag = 6; do_zag = 4; }; if ((((orth_type == 0)) && ((diag_type == 3)))){ od_zag = 5; do_zag = 7; }; if ((((orth_type == 1)) && ((diag_type == 2)))){ od_zag = 8; do_zag = 11; }; if ((((orth_type == 1)) && ((diag_type == 3)))){ od_zag = 9; do_zag = 10; }; var x_pos:int; var y_pos:int = ((y_step)>0) ? 0 : (Math.abs(dy) * 35); var j:int; while (j <= steps.length) { if (j == 0){ type = (steps[0]) ? diag_type : orth_type; } else { if (j == steps.length){ type = (steps[(j - 1)]) ? diag_type : orth_type; } else { if (steps[(j - 1)]){ if (steps[j]){ type = diag_type; } else { type = do_zag; }; } else { if (steps[j]){ type = od_zag; } else { type = orth_type; }; }; }; }; i = 0; while (i < 4) { SingleSourceComposite(frames[i]).copyPixels((i * 35), (type * 35), 35, 35, x_pos, y_pos); if ((((((type == 2)) || ((type == 6)))) || ((type == 8)))){ SingleSourceComposite(frames[i]).copyPixels((i * 35), 420, 2, 2, (x_pos + 34), (y_pos + 34)); } else { if ((((((type == 3)) || ((type == 5)))) || ((type == 9)))){ SingleSourceComposite(frames[i]).copyPixels((i * 35), 420, 2, 2, (x_pos + 34), y_pos); }; }; i++; }; if ((((orth_type == 0)) || (steps[j]))){ x_pos = (x_pos + x_step); }; if ((((orth_type == 1)) || (steps[j]))){ y_pos = (y_pos + y_step); }; j++; }; var top:Boolean; var left:Boolean; var right:Boolean; var bottom:Boolean; if (!steps[0]){ if (diag_type == 2){ if (orth_type == 0){ top = false; } else { left = false; }; } else { if (orth_type == 0){ bottom = false; } else { left = false; }; }; }; if (!steps[(steps.length - 1)]){ if (diag_type == 2){ if (orth_type == 0){ bottom = false; } else { right = false; }; } else { if (orth_type == 0){ top = false; } else { right = false; }; }; }; crop(top, right, bottom, left); } } }//package
Section 381
//LightningBolt_img_src (LightningBolt_img_src) package { import mx.core.*; public class LightningBolt_img_src extends BitmapAsset { } }//package
Section 382
//LoadingAnim (LoadingAnim) package { import flash.display.*; import flash.utils.*; public class LoadingAnim extends Loader { public var loading_anim:Class; public function LoadingAnim(){ loading_anim = LoadingAnim_loading_anim; super(); this.loadBytes((new loading_anim() as ByteArray)); } } }//package
Section 383
//LoadingAnim_loading_anim (LoadingAnim_loading_anim) package { import mx.core.*; public class LoadingAnim_loading_anim extends ByteArrayAsset { } }//package
Section 384
//MagicItem (MagicItem) package { import flash.events.*; import mx.controls.*; import mx.containers.*; public class MagicItem extends Canvas { public var button:OliverButton; protected var spellname:CroppedImage; protected var bg_img:Class;// = null protected var cost:int; private var desc_bg_src:Class; private var spellnames:Class; var img_src:Class; public var spell:int;// = 0 private var desc_src:Class; private var spelldesc:CroppedImage; private var desc_bg:Image; public var used:Boolean; public function MagicItem(){ spellnames = MagicItem_spellnames; desc_bg_src = MagicItem_desc_bg_src; img_src = MagicItem_img_src; desc_src = MagicItem_desc_src; super(); width = 106; height = 106; x = 3; setStyle("backgroundImage", bg_img); clipContent = false; horizontalScrollPolicy = "off"; verticalScrollPolicy = "off"; button = new OliverButton(); button.width = 28; button.height = 28; button.x = 4; button.y = 4; button.addEventListener(MouseEvent.MOUSE_DOWN, castSpell); addChild(button); spellname = new CroppedImage(0, 88, 106, 18, 0, 0, 106, 270, spellnames); addChild(spellname); spelldesc = new CroppedImage(-182, 61, 280, 40, 0, 0, 280, 560, desc_src); spelldesc.visible = false; desc_bg = new Image(); desc_bg.x = -192; desc_bg.y = 54; desc_bg.source = desc_bg_src; desc_bg.visible = false; addChild(desc_bg); addChild(spelldesc); addEventListener(MouseEvent.MOUSE_OVER, showDescription); addEventListener(MouseEvent.MOUSE_OUT, hideDescription); } public function confirmSpell():void{ playSparkles(); deductCharge(); used = true; } protected function deductCharge():void{ } public function changeSpell(spell:int):void{ this.spell = spell; spellname.moveImage(0, (spell * 18)); refreshCharges(); } private function hideDescription(ev:MouseEvent):void{ spelldesc.visible = false; desc_bg.visible = false; } public function castSpell(ev:MouseEvent=null):void{ if (querySpellAvailable()){ Oliver.app.castSpell(spell, this); }; } public function refreshCharges():void{ } private function playSparkles():void{ var j:int; var i:int; while (i < 3) { j = 0; while (j < 3) { addChild(new ItemSparkle((((i * 30) + 2) + int((Math.random() * 25))), (((j * 30) + 2) + int((Math.random() * 25))))); j++; }; i++; }; } protected function querySpellAvailable():Boolean{ return (true); } private function showDescription(ev:MouseEvent):void{ spelldesc.moveImage(0, (40 * this.spell)); desc_bg.visible = true; spelldesc.visible = true; } } }//package
Section 385
//MagicItem_desc_bg_src (MagicItem_desc_bg_src) package { import mx.core.*; public class MagicItem_desc_bg_src extends BitmapAsset { } }//package
Section 386
//MagicItem_desc_src (MagicItem_desc_src) package { import mx.core.*; public class MagicItem_desc_src extends BitmapAsset { } }//package
Section 387
//MagicItem_img_src (MagicItem_img_src) package { import mx.core.*; public class MagicItem_img_src extends BitmapAsset { } }//package
Section 388
//MagicItem_spellnames (MagicItem_spellnames) package { import mx.core.*; public class MagicItem_spellnames extends BitmapAsset { } }//package
Section 389
//MagicSparkle (MagicSparkle) package { import flash.events.*; import mx.events.*; import mx.effects.*; import flash.utils.*; public class MagicSparkle extends CroppedImage { private var alpha_max:Number; private var mv:Move; private var sparkle_src:Class; private var ani:uint; public function MagicSparkle(x:int, y:int, direction:int){ sparkle_src = MagicSparkle_sparkle_src; super(x, y, 9, 9, 0, 0, 18, 9, sparkle_src); addEventListener(Event.ADDED, doSparkle); mv = new Move(this); mv.xBy = (40 * Math.sin(((direction * Math.PI) / 180))); mv.yBy = (40 * Math.cos(((direction * Math.PI) / 180))); mv.duration = 425; alpha_max = 1.25; } private function die(ev:EffectEvent):void{ clearInterval(ani); if (this.parent != null){ this.parent.removeChild(this); }; } private function doSparkle(ev:Event):void{ removeEventListener(Event.ADDED, doSparkle); mv.play(); mv.addEventListener(EffectEvent.EFFECT_END, die); ani = setInterval(flicker, 60); } private function flicker():void{ alpha_max = (alpha_max - 0.25); alpha = Math.min(alpha, alpha_max); if (img.x < 0){ moveImage(0, 0); } else { moveImage(9, 0); }; } } }//package
Section 390
//MagicSparkle_sparkle_src (MagicSparkle_sparkle_src) package { import mx.core.*; public class MagicSparkle_sparkle_src extends BitmapAsset { } }//package
Section 391
//MainMenu (MainMenu) package { import flash.display.*; import flash.geom.*; import flash.media.*; import flash.text.*; import mx.core.*; import flash.events.*; import mx.events.*; import mx.styles.*; import mx.controls.*; import mx.containers.*; import mx.binding.*; import flash.utils.*; import flash.system.*; import flash.filters.*; import flash.ui.*; import flash.net.*; import flash.external.*; import flash.accessibility.*; import flash.debugger.*; import flash.errors.*; import flash.printing.*; import flash.profiler.*; import flash.xml.*; public class MainMenu extends Canvas { private var _1972225594deluxe_button:DynamicButton; private var _1940874634normal_button:DynamicButton; private var instructions_src:Class; private var play_mo:Class; private var play_src:Class; private var _1782711903simple_button:DynamicButton; private var btn:SmileyButton; private var _embed_mxml_assets_main_menu_bg_png_1407733971:Class; private var _407123188instructions_button:DynamicButton; private var _1332194002background:Image; private var _documentDescriptor_:UIComponentDescriptor; private var instructions_mo:Class; public function MainMenu(){ _documentDescriptor_ = new UIComponentDescriptor({type:Canvas, propertiesFactory:function ():Object{ return ({width:656, height:536, childDescriptors:[new UIComponentDescriptor({type:Image, id:"background", propertiesFactory:function ():Object{ return ({source:_embed_mxml_assets_main_menu_bg_png_1407733971}); }}), new UIComponentDescriptor({type:DynamicButton, id:"simple_button", events:{creationComplete:"__simple_button_creationComplete", click:"__simple_button_click"}, propertiesFactory:function ():Object{ return ({x:240, y:310}); }}), new UIComponentDescriptor({type:DynamicButton, id:"normal_button", events:{creationComplete:"__normal_button_creationComplete", click:"__normal_button_click"}, propertiesFactory:function ():Object{ return ({x:240, y:353}); }}), new UIComponentDescriptor({type:DynamicButton, id:"deluxe_button", events:{creationComplete:"__deluxe_button_creationComplete", click:"__deluxe_button_click"}, propertiesFactory:function ():Object{ return ({x:240, y:396}); }}), new UIComponentDescriptor({type:DynamicButton, id:"instructions_button", events:{creationComplete:"__instructions_button_creationComplete", click:"__instructions_button_click"}, propertiesFactory:function ():Object{ return ({x:240, y:439}); }}), new UIComponentDescriptor({type:Canvas, events:{click:"___MainMenu_Canvas2_click"}, propertiesFactory:function ():Object{ return ({width:300, y:503, x:177, height:22, buttonMode:true}); }})]}); }}); play_src = MainMenu_play_src; play_mo = MainMenu_play_mo; instructions_src = MainMenu_instructions_src; instructions_mo = MainMenu_instructions_mo; btn = new SmileyButton(13404415, 0x110033); _embed_mxml_assets_main_menu_bg_png_1407733971 = MainMenu__embed_mxml_assets_main_menu_bg_png_1407733971; super(); mx_internal::_document = this; if (!this.styleDeclaration){ this.styleDeclaration = new CSSStyleDeclaration(); }; this.styleDeclaration.defaultFactory = function ():void{ this.backgroundColor = 0; this.backgroundAlpha = 0.8; }; this.width = 656; this.height = 536; this.verticalScrollPolicy = "off"; this.addEventListener("creationComplete", ___MainMenu_Canvas1_creationComplete); } public function get deluxe_button():DynamicButton{ return (this._1972225594deluxe_button); } public function __normal_button_click(event:MouseEvent):void{ play(Oliver.NORMAL); } public function set deluxe_button(width:DynamicButton):void{ var _local2:Object = this._1972225594deluxe_button; if (_local2 !== width){ this._1972225594deluxe_button = width; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "deluxe_button", _local2, width)); }; } public function __simple_button_creationComplete(event:FlexEvent):void{ simple_button.setText(DynamicButton.SIMPLE); } public function __simple_button_click(event:MouseEvent):void{ play(Oliver.SIMPLE); } private function setup():void{ btn.x = 583; btn.y = 481; addChild(btn); } override public function initialize():void{ mx_internal::setDocumentDescriptor(_documentDescriptor_); super.initialize(); } public function get instructions_button():DynamicButton{ return (this._407123188instructions_button); } public function __deluxe_button_creationComplete(event:FlexEvent):void{ deluxe_button.setText(DynamicButton.DELUXE); } public function set simple_button(width:DynamicButton):void{ var _local2:Object = this._1782711903simple_button; if (_local2 !== width){ this._1782711903simple_button = width; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "simple_button", _local2, width)); }; } public function set instructions_button(width:DynamicButton):void{ var _local2:Object = this._407123188instructions_button; if (_local2 !== width){ this._407123188instructions_button = width; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "instructions_button", _local2, width)); }; } public function set normal_button(width:DynamicButton):void{ var _local2:Object = this._1940874634normal_button; if (_local2 !== width){ this._1940874634normal_button = width; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "normal_button", _local2, width)); }; } public function get simple_button():DynamicButton{ return (this._1782711903simple_button); } public function __deluxe_button_click(event:MouseEvent):void{ play(Oliver.DELUXE); } public function ___MainMenu_Canvas1_creationComplete(event:FlexEvent):void{ setup(); } public function ___MainMenu_Canvas2_click(event:MouseEvent):void{ SmileyGamerAPI.showFreeContent(); } public function __instructions_button_creationComplete(event:FlexEvent):void{ instructions_button.setText(DynamicButton.INSTRUCTIONS); } public function __normal_button_creationComplete(event:FlexEvent):void{ normal_button.setText(DynamicButton.NORMAL); } public function get background():Image{ return (this._1332194002background); } public function __instructions_button_click(event:MouseEvent):void{ Oliver.app.help.showHelp(); } public function get normal_button():DynamicButton{ return (this._1940874634normal_button); } public function play(mode:int):void{ visible = false; Oliver.app.startGame(mode); } public function set background(width:Image):void{ var _local2:Object = this._1332194002background; if (_local2 !== width){ this._1332194002background = width; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "background", _local2, width)); }; } } }//package
Section 392
//MainMenu__embed_mxml_assets_main_menu_bg_png_1407733971 (MainMenu__embed_mxml_assets_main_menu_bg_png_1407733971) package { import mx.core.*; public class MainMenu__embed_mxml_assets_main_menu_bg_png_1407733971 extends BitmapAsset { } }//package
Section 393
//MainMenu_instructions_mo (MainMenu_instructions_mo) package { import mx.core.*; public class MainMenu_instructions_mo extends BitmapAsset { } }//package
Section 394
//MainMenu_instructions_src (MainMenu_instructions_src) package { import mx.core.*; public class MainMenu_instructions_src extends BitmapAsset { } }//package
Section 395
//MainMenu_play_mo (MainMenu_play_mo) package { import mx.core.*; public class MainMenu_play_mo extends BitmapAsset { } }//package
Section 396
//MainMenu_play_src (MainMenu_play_src) package { import mx.core.*; public class MainMenu_play_src extends BitmapAsset { } }//package
Section 397
//MochiBot (MochiBot) package { import flash.display.*; import mx.core.*; import flash.system.*; import flash.net.*; public dynamic class MochiBot extends Sprite { public function MochiBot(){ super(); } public static function track(parent:Sprite, tag:String, container:UIComponent, url:String):MochiBot{ if (Security.sandboxType == "localWithFile"){ return (null); }; var self:MochiBot = new (MochiBot); container.addChild(self); Security.allowDomain("*"); Security.allowInsecureDomain("*"); var server:String = "http://core.mochibot.com/my/core.swf"; var lv:URLVariables = new URLVariables(); lv["sb"] = Security.sandboxType; lv["v"] = Capabilities.version; lv["swfid"] = tag; lv["mv"] = "8"; lv["fv"] = "9"; if (url.indexOf("http") == 0){ lv["url"] = url; } else { lv["url"] = "local"; }; var req:URLRequest = new URLRequest(server); req.contentType = "application/x-www-form-urlencoded"; req.method = URLRequestMethod.POST; req.data = lv; var loader:Loader = new Loader(); self.addChild(loader); loader.load(req); return (self); } } }//package
Section 398
//NewScore (NewScore) package { import flash.display.*; import flash.geom.*; import flash.media.*; import flash.text.*; import mx.core.*; import flash.events.*; import mx.events.*; import mx.styles.*; import mx.controls.*; import mx.containers.*; import mx.binding.*; import flash.utils.*; import flash.system.*; import flash.filters.*; import flash.ui.*; import flash.net.*; import flash.external.*; import flash.accessibility.*; import flash.debugger.*; import flash.errors.*; import flash.printing.*; import flash.profiler.*; import flash.xml.*; public class NewScore extends Canvas { private var _embed_mxml_assets_name_submit_bg_png_621482723:Class; private var score:int; private var previous_name:String;// = "OLIVER" private var _2096610540playername:Label; private var _582346439submit_button:DynamicButton; private var submit_mo:Class; private var typed:Boolean;// = false private var _1332194002background:Image; private var _documentDescriptor_:UIComponentDescriptor; private var submit_src:Class; public function NewScore(){ _documentDescriptor_ = new UIComponentDescriptor({type:Canvas, propertiesFactory:function ():Object{ return ({width:656, height:536, childDescriptors:[new UIComponentDescriptor({type:Image, id:"background", propertiesFactory:function ():Object{ return ({source:_embed_mxml_assets_name_submit_bg_png_621482723}); }}), new UIComponentDescriptor({type:Label, id:"playername", stylesFactory:function ():void{ this.textAlign = "center"; this.fontFamily = "Verdana"; this.color = 16765257; this.fontSize = 20; this.fontWeight = "bold"; }, propertiesFactory:function ():Object{ return ({text:"OLIVER", x:143, y:247, width:0x0101, height:37}); }}), new UIComponentDescriptor({type:DynamicButton, id:"submit_button", events:{creationComplete:"__submit_button_creationComplete", click:"__submit_button_click"}, propertiesFactory:function ():Object{ return ({x:186, y:296}); }})]}); }}); submit_src = NewScore_submit_src; submit_mo = NewScore_submit_mo; _embed_mxml_assets_name_submit_bg_png_621482723 = NewScore__embed_mxml_assets_name_submit_bg_png_621482723; super(); mx_internal::_document = this; if (!this.styleDeclaration){ this.styleDeclaration = new CSSStyleDeclaration(); }; this.styleDeclaration.defaultFactory = function ():void{ this.backgroundColor = 0; this.backgroundAlpha = 0.8; }; this.width = 656; this.height = 536; this.verticalScrollPolicy = "off"; } public function getName(score:int):void{ this.score = score; playername.text = previous_name; typed = false; visible = true; } public function keypress(ev:KeyboardEvent):void{ if ((((((((((ev.keyCode < 65)) || ((ev.keyCode > 90)))) && (!((ev.keyCode == Keyboard.DELETE))))) && (!((ev.keyCode == Keyboard.BACKSPACE))))) && (!((ev.keyCode == Keyboard.ENTER))))){ return; }; if (((!(typed)) && (!((ev.keyCode == Keyboard.ENTER))))){ playername.text = ""; typed = true; }; if ((((ev.keyCode == Keyboard.DELETE)) || ((ev.keyCode == Keyboard.BACKSPACE)))){ if (playername.text.length == 0){ return; }; if (playername.text.length == 1){ playername.text = ""; } else { playername.text = playername.text.substr(0, (playername.text.length - 1)); }; } else { if (ev.keyCode == Keyboard.ENTER){ submit(); return; }; if (playername.text.length >= 10){ return; }; playername.text = (playername.text + String.fromCharCode(ev.charCode).toUpperCase()); }; } override public function initialize():void{ mx_internal::setDocumentDescriptor(_documentDescriptor_); super.initialize(); } public function submit():void{ visible = false; Oliver.app.hiscore_screen.submitScore(score, playername.text); } public function __submit_button_creationComplete(event:FlexEvent):void{ submit_button.setText(DynamicButton.SUBMIT_SCORE); } public function set playername(textAlign:Label):void{ var _local2:Object = this._2096610540playername; if (_local2 !== textAlign){ this._2096610540playername = textAlign; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "playername", _local2, textAlign)); }; } public function set background(textAlign:Image):void{ var _local2:Object = this._1332194002background; if (_local2 !== textAlign){ this._1332194002background = textAlign; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "background", _local2, textAlign)); }; } public function get background():Image{ return (this._1332194002background); } public function __submit_button_click(event:MouseEvent):void{ submit(); } public function set submit_button(textAlign:DynamicButton):void{ var _local2:Object = this._582346439submit_button; if (_local2 !== textAlign){ this._582346439submit_button = textAlign; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "submit_button", _local2, textAlign)); }; } public function get submit_button():DynamicButton{ return (this._582346439submit_button); } public function get playername():Label{ return (this._2096610540playername); } } }//package
Section 399
//NewScore__embed_mxml_assets_name_submit_bg_png_621482723 (NewScore__embed_mxml_assets_name_submit_bg_png_621482723) package { import mx.core.*; public class NewScore__embed_mxml_assets_name_submit_bg_png_621482723 extends BitmapAsset { } }//package
Section 400
//NewScore_submit_mo (NewScore_submit_mo) package { import mx.core.*; public class NewScore_submit_mo extends BitmapAsset { } }//package
Section 401
//NewScore_submit_src (NewScore_submit_src) package { import mx.core.*; public class NewScore_submit_src extends BitmapAsset { } }//package
Section 402
//NumberRenderer (NumberRenderer) package { import flash.display.*; import flash.geom.*; import flash.media.*; import flash.text.*; import flash.events.*; import mx.styles.*; import mx.binding.*; import flash.utils.*; import flash.system.*; import flash.filters.*; import flash.ui.*; import flash.net.*; import flash.external.*; import flash.accessibility.*; import flash.debugger.*; import flash.errors.*; import flash.printing.*; import flash.profiler.*; import flash.xml.*; public class NumberRenderer extends SingleSourceComposite { private var tiny:Class; private var size:int; private var med:Class; private var big:Class; private var sizes:Array; private var small:Class; private var current_source:Class; private var ms:Class; public var left_edge:int;// = 0 private var tracking:int; private var small_dk:Class; public function NumberRenderer(){ big = NumberRenderer_big; med = NumberRenderer_med; small_dk = NumberRenderer_small_dk; small = NumberRenderer_small; tiny = NumberRenderer_tiny; ms = NumberRenderer_ms; sizes = [14, 25, 32, 11, 21, 16]; super(); } public function setSize(size:int, max_digits:int, tracking:int=0):void{ this.size = sizes[size]; this.tracking = tracking; height = this.size; width = ((this.size - tracking) * max_digits); switch (size){ case 0: setup(small, 0, true); break; case 1: setup(med, 0, true); break; case 2: setup(big, 0, true); break; case 3: setup(tiny, 0, true); break; case 4: setup(ms, 0, true); break; case 5: setup(small_dk, 0, true); break; }; } public function setNumber(num:int):void{ var i:int; clear(); var digits:Array = new Array(String(num).length); i = 0; while (i < digits.length) { digits[i] = (int((num / Math.pow(10, i))) % 10); i++; }; digits.reverse(); var x_positions:Array = new Array(digits.length); var current_x:int; i = 0; while (i < digits.length) { if (digits[i] == 1){ current_x = (current_x - int((size * 0.12))); }; x_positions[i] = current_x; if (digits[i] == 1){ current_x = (current_x + int((size * 0.88))); } else { current_x = (current_x + size); }; current_x = (current_x - tracking); i++; }; i = 0; while (i < digits.length) { x_positions[i] = (x_positions[i] + ((width - current_x) / 2)); if (digits[i] == 1){ copyPixels(int((1.12 * size)), 0, int((0.7 * size)), size, (x_positions[i] + int((0.12 * size))), 0); } else { copyPixels((digits[i] * size), 0, size, size, x_positions[i], 0); }; i++; }; left_edge = ((digits[i])==1) ? (x_positions[0] + int((0.12 * size))) : x_positions[0]; } override public function initialize():void{ super.initialize(); } } }//package
Section 403
//NumberRenderer_big (NumberRenderer_big) package { import mx.core.*; public class NumberRenderer_big extends BitmapAsset { } }//package
Section 404
//NumberRenderer_med (NumberRenderer_med) package { import mx.core.*; public class NumberRenderer_med extends BitmapAsset { } }//package
Section 405
//NumberRenderer_ms (NumberRenderer_ms) package { import mx.core.*; public class NumberRenderer_ms extends BitmapAsset { } }//package
Section 406
//NumberRenderer_small (NumberRenderer_small) package { import mx.core.*; public class NumberRenderer_small extends BitmapAsset { } }//package
Section 407
//NumberRenderer_small_dk (NumberRenderer_small_dk) package { import mx.core.*; public class NumberRenderer_small_dk extends BitmapAsset { } }//package
Section 408
//NumberRenderer_tiny (NumberRenderer_tiny) package { import mx.core.*; public class NumberRenderer_tiny extends BitmapAsset { } }//package
Section 409
//Oliver (Oliver) package { import flash.display.*; import flash.geom.*; import flash.media.*; import flash.text.*; import mx.core.*; import flash.events.*; import mx.events.*; import mx.styles.*; import mx.controls.*; import mx.effects.*; import mx.containers.*; import mx.binding.*; import flash.utils.*; import flash.system.*; import mx.collections.*; import flash.filters.*; import mochi.as3.*; import flash.ui.*; import flash.net.*; import SWFStats.*; import flash.external.*; import flash.accessibility.*; import flash.debugger.*; import flash.errors.*; import flash.printing.*; import flash.profiler.*; import flash.xml.*; public class Oliver extends Application { public var timestop_anim:uint; public var in_progress:Boolean; private var splash_src:Class; private var pass:Class; private var _1654553132down_arrow:OliverButton; private var _1529835926score_number:NumberRenderer; public var timestop:int;// = 0 private var _311357896intro_image:Image; private var arrow2_mo:Class; private var _3198785help:Help; private var dis_bolt_diag:Class; private var _879704715intro_canvas:Canvas; private var _1592860632interlevel:Interlevel; public var music_channel2:SoundChannel; private var _1850796591left_arrow:OliverButton; public var music_channel1:SoundChannel; private var _955226739level_canvas:Canvas; private var add_to_buffer:Boolean; public var bolts:Array; private var spell_target:Object;// = null public var spell_effect:Boolean; private var pass_mo:Class; private var _107868map:SingleSourceComposite; private var dir_arrows_src:Class; private var arrow3_mo:Class; private var _7694696mainmenu:MainMenu; private var exploding_traps:Array; public var sound_channel_2:SoundManager; private var _embed_mxml_assets_ui_mockup_png_749493075:Class; private var last_keypress:KeyboardEvent; public var basilisks:Array; public var sound_channel_1:SoundManager; private var _903560936dr_arrow:OliverButton; private var splash_anim:MovieClip; private var jump_distance:Point; private var dir_select:Function;// = null private var med_mo:Class; private var targets:Array; private var _2114957809level_intro:LevelIntro; private var dis_animation:SlidingAnimation; private var arrow4_mo:Class; private var meditating:Boolean; private var arrow0:Class; private var arrow1:Class; private var arrow2:Class; private var arrow3:Class; private var arrow4:Class; private var arrow5:Class; private var arrow6:Class; private var arrow7:Class; private var cursor_moving:Boolean; private var _1933615726dl_arrow:OliverButton; private var move_timer:uint; private var _1924356193ul_arrow:OliverButton; private var item_used:MagicItem; private var arrow5_mo:Class; private var dir_arrows:PulseAnimation; private var _124523974hiscore_screen:Hiscores; private var fire_shield:Class; public var initial_basilisks:int;// = 0 private var _1349119146cursor:Image; public var mode:int;// = 0 private var _623050866first_play_button:DynamicButton; public var rocks:Array; private var _embed_mxml_assets_timestop_overlay_png_358613933:Class; public var golems:Array; private var med:Class; private var arrow6_mo:Class; public var golems_killed:int;// = 0 private var pause:uint; private var _84569050right_arrow:OliverButton; public var wand:Wand; private var _1043131756key_listener:Text; private var arrow7_mo:Class; private var _1332194002background:TilingComposite; public var music_on:Boolean;// = true public var max_turns_meditated:int;// = 0 public var spell_mastery:Array; private var cookie:SharedObject; private var _4197019under_effects:Canvas; private var _1395300594newscore:NewScore; public var play_mo:Class; public var fs_animation:SimpleAnimation; private var _1475500128timestop_overlay:Image; private var _387880883sparkle_shower:SparkleShower; private var score:int; public var music1:Sound; public var music2:Sound; private var _1249474914options:OptionsBar; public var spirits:Array; private var _3732ui:Image; public var lose_stoneskin:Boolean;// = false public var firstgame:Boolean;// = true private var _embed_mxml_assets_first_play_png_805245507:Class; private var _1208927586main_canvas:Canvas; public var scroll:Scroll; private var _embed_mxml_assets_crosshairs_gif_1406757933:Class; public var spirits_captured:int;// = 0 public var player:Player; private var current_spell:int;// = -1 private var traps:Array; private var tileset:Class; public var player_dead:Boolean; private var _1591828693simple_interlevel:SimpleInterlevel; public var player_movable:Boolean;// = false private var dis_animation_diag:SlidingAnimation; private var _1209613088pass_button:OliverButton; public var turns_meditated:int;// = 0 private var bg_texture:Class; private var _1923396252super_canvas:Canvas; private var _160915613first_play:Canvas; private var _2053938402interface_canvas:Canvas; private var cursor_mv:Move; public var num_spells:int;// = 14 private var Mochicontainer:UIComponent; public var play:Class; public var scrolls:Array; private var _910666083play_button:OliverButton; private var _1340556313ur_arrow:OliverButton; private var _865609910meditate_button:OliverButton; public var looptime:uint;// = 0 public var music_source:Class; public var level:int;// = 0 private var animation:uint; public var turn_target:int;// = 0 public var turns:int;// = 0 private var arrow0_mo:Class; private var current_iteration:int; private var _1606684851endgame:EndGame; private var dis_bolt:Class; private var _1462742267gameover_screen:GameOver; private var _2102310930sprite_canvas:Canvas; public var amulet:Amulet; private var command_buffer:Array; private var music_vol:Number;// = 0.8 private var player_moved:Boolean; public var current_music:Boolean;// = false private var _1179403621up_arrow:OliverButton; private var _1288568932level_number:NumberRenderer; private var _1965881226player_canvas:Canvas; private var _documentDescriptor_:UIComponentDescriptor; private var arrow1_mo:Class; private var repelling:int; private var _2116307095over_effects:Canvas; public static var STONESKIN:int = 11; public static var PETRIFY:int = 5; public static var EARTHQUAKE:int = 4; public static var TIMESTOP:int = 10; public static var REPULSION:int = 8; public static var MAGIC_TRAP:int = 9; public static var DETONATE:int = 7; public static var FIRE_SHIELD:int = 6; public static var DISINTEGRATE:int = 2; mx_internal static var _Oliver_StylesInit_done:Boolean = false; public static var STONEWALL:int = 13; public static var app:Oliver; public static var LIGHTNING:int = 3; public static var TELEPORT:int = 0; public static var BANISHMENT:int = 12; public static var JUMP:int = 1; public static var spell_costs:Array = [5, 6, 4, 4, 4, 6, 6, 4, 4, 3, 7, 8, 4, 5]; public static var num_to_dir:Array = [5, 4, 3, 6, -1, 2, 7, 0, 1]; public static var TILE_SIZE:int = 35; public static var DELUXE:int = 2; public static var SIMPLE:int = 0; public static var scores_enabled:Boolean = true; public static var NORMAL:int = 1; public function Oliver(){ _documentDescriptor_ = new UIComponentDescriptor({type:Application, propertiesFactory:function ():Object{ return ({height:565, width:656, childDescriptors:[new UIComponentDescriptor({type:Canvas, id:"super_canvas", propertiesFactory:function ():Object{ return ({childDescriptors:[new UIComponentDescriptor({type:TilingComposite, id:"background", propertiesFactory:function ():Object{ return ({x:0, y:0, height:536, width:660}); }}), new UIComponentDescriptor({type:Canvas, id:"main_canvas", propertiesFactory:function ():Object{ return ({x:0, y:0, height:536, width:660, horizontalScrollPolicy:"off", verticalScrollPolicy:"off", childDescriptors:[new UIComponentDescriptor({type:Canvas, id:"level_canvas", propertiesFactory:function ():Object{ return ({x:5, y:5, height:526, width:526, horizontalScrollPolicy:"off", verticalScrollPolicy:"off", childDescriptors:[new UIComponentDescriptor({type:SingleSourceComposite, id:"map", propertiesFactory:function ():Object{ return ({x:0, y:0, height:526, width:526}); }}), new UIComponentDescriptor({type:Image, id:"timestop_overlay", propertiesFactory:function ():Object{ return ({visible:false, alpha:0, mouseEnabled:false, source:_embed_mxml_assets_timestop_overlay_png_358613933}); }}), new UIComponentDescriptor({type:Canvas, id:"under_effects", propertiesFactory:function ():Object{ return ({x:0, y:0, height:526, width:526, horizontalScrollPolicy:"off", verticalScrollPolicy:"off", clipContent:true}); }}), new UIComponentDescriptor({type:Canvas, id:"sprite_canvas", propertiesFactory:function ():Object{ return ({x:0, y:0, height:526, width:526, horizontalScrollPolicy:"off", verticalScrollPolicy:"off", clipContent:true}); }}), new UIComponentDescriptor({type:Canvas, id:"over_effects", propertiesFactory:function ():Object{ return ({x:0, y:0, height:526, width:526, horizontalScrollPolicy:"off", verticalScrollPolicy:"off", clipContent:true, childDescriptors:[new UIComponentDescriptor({type:SparkleShower, id:"sparkle_shower", propertiesFactory:function ():Object{ return ({visible:false}); }}), new UIComponentDescriptor({type:Image, id:"cursor", propertiesFactory:function ():Object{ return ({visible:false, mouseEnabled:false, source:_embed_mxml_assets_crosshairs_gif_1406757933}); }})]}); }}), new UIComponentDescriptor({type:Canvas, id:"player_canvas", propertiesFactory:function ():Object{ return ({x:0, y:0, height:526, width:526, horizontalScrollPolicy:"off", verticalScrollPolicy:"off", clipContent:true}); }})]}); }}), new UIComponentDescriptor({type:Canvas, id:"interface_canvas", propertiesFactory:function ():Object{ return ({x:538, y:5, width:122, height:526, childDescriptors:[new UIComponentDescriptor({type:Image, id:"ui", propertiesFactory:function ():Object{ return ({x:0, y:0, source:_embed_mxml_assets_ui_mockup_png_749493075}); }}), new UIComponentDescriptor({type:OliverButton, id:"up_arrow", events:{creationComplete:"__up_arrow_creationComplete", click:"__up_arrow_click"}, propertiesFactory:function ():Object{ return ({x:39, y:70}); }}), new UIComponentDescriptor({type:OliverButton, id:"ur_arrow", events:{creationComplete:"__ur_arrow_creationComplete", click:"__ur_arrow_click"}, propertiesFactory:function ():Object{ return ({x:77, y:70}); }}), new UIComponentDescriptor({type:OliverButton, id:"right_arrow", events:{creationComplete:"__right_arrow_creationComplete", click:"__right_arrow_click"}, propertiesFactory:function ():Object{ return ({x:77, y:99}); }}), new UIComponentDescriptor({type:OliverButton, id:"dr_arrow", events:{creationComplete:"__dr_arrow_creationComplete", click:"__dr_arrow_click"}, propertiesFactory:function ():Object{ return ({x:77, y:128}); }}), new UIComponentDescriptor({type:OliverButton, id:"down_arrow", events:{creationComplete:"__down_arrow_creationComplete", click:"__down_arrow_click"}, propertiesFactory:function ():Object{ return ({x:39, y:128}); }}), new UIComponentDescriptor({type:OliverButton, id:"dl_arrow", events:{creationComplete:"__dl_arrow_creationComplete", click:"__dl_arrow_click"}, propertiesFactory:function ():Object{ return ({x:0, y:128}); }}), new UIComponentDescriptor({type:OliverButton, id:"left_arrow", events:{creationComplete:"__left_arrow_creationComplete", click:"__left_arrow_click"}, propertiesFactory:function ():Object{ return ({x:0, y:99}); }}), new UIComponentDescriptor({type:OliverButton, id:"ul_arrow", events:{creationComplete:"__ul_arrow_creationComplete", click:"__ul_arrow_click"}, propertiesFactory:function ():Object{ return ({x:0, y:70}); }}), new UIComponentDescriptor({type:OliverButton, id:"pass_button", events:{creationComplete:"__pass_button_creationComplete", click:"__pass_button_click"}, propertiesFactory:function ():Object{ return ({x:39, y:99}); }}), new UIComponentDescriptor({type:OliverButton, id:"meditate_button", events:{creationComplete:"__meditate_button_creationComplete", click:"__meditate_button_click"}, propertiesFactory:function ():Object{ return ({x:0, y:156}); }}), new UIComponentDescriptor({type:NumberRenderer, id:"level_number", events:{creationComplete:"__level_number_creationComplete"}, propertiesFactory:function ():Object{ return ({x:63, y:10}); }}), new UIComponentDescriptor({type:NumberRenderer, id:"score_number", events:{creationComplete:"__score_number_creationComplete"}, propertiesFactory:function ():Object{ return ({x:15, y:43}); }})]}); }}), new UIComponentDescriptor({type:LevelIntro, id:"level_intro", propertiesFactory:function ():Object{ return ({visible:false}); }}), new UIComponentDescriptor({type:Canvas, id:"first_play", propertiesFactory:function ():Object{ return ({visible:false, percentWidth:100, percentHeight:100, childDescriptors:[new UIComponentDescriptor({type:Image, propertiesFactory:function ():Object{ return ({source:_embed_mxml_assets_first_play_png_805245507}); }}), new UIComponentDescriptor({type:DynamicButton, id:"first_play_button", events:{creationComplete:"__first_play_button_creationComplete", click:"__first_play_button_click"}, propertiesFactory:function ():Object{ return ({x:178, y:313}); }})]}); }})]}); }}), new UIComponentDescriptor({type:Interlevel, id:"interlevel", propertiesFactory:function ():Object{ return ({x:0, y:0, visible:false}); }}), new UIComponentDescriptor({type:SimpleInterlevel, id:"simple_interlevel", propertiesFactory:function ():Object{ return ({x:0, y:0, visible:false}); }}), new UIComponentDescriptor({type:GameOver, id:"gameover_screen", propertiesFactory:function ():Object{ return ({x:0, y:0, visible:false}); }}), new UIComponentDescriptor({type:Hiscores, id:"hiscore_screen", propertiesFactory:function ():Object{ return ({x:0, y:0, visible:false}); }}), new UIComponentDescriptor({type:NewScore, id:"newscore", propertiesFactory:function ():Object{ return ({x:0, y:0, visible:false}); }}), new UIComponentDescriptor({type:MainMenu, id:"mainmenu", propertiesFactory:function ():Object{ return ({x:0, y:0}); }}), new UIComponentDescriptor({type:EndGame, id:"endgame", propertiesFactory:function ():Object{ return ({x:0, y:0, visible:false}); }}), new UIComponentDescriptor({type:Help, id:"help", propertiesFactory:function ():Object{ return ({x:0, y:0}); }}), new UIComponentDescriptor({type:Text, id:"key_listener", propertiesFactory:function ():Object{ return ({visible:false}); }}), new UIComponentDescriptor({type:OptionsBar, id:"options", propertiesFactory:function ():Object{ return ({y:536}); }})]}); }}), new UIComponentDescriptor({type:Canvas, id:"intro_canvas", stylesFactory:function ():void{ this.backgroundColor = 2630200; }, propertiesFactory:function ():Object{ return ({percentWidth:100, percentHeight:100, childDescriptors:[new UIComponentDescriptor({type:OliverButton, id:"play_button", events:{creationComplete:"__play_button_creationComplete", click:"__play_button_click"}, propertiesFactory:function ():Object{ return ({x:240, y:460}); }}), new UIComponentDescriptor({type:Label, stylesFactory:function ():void{ this.textAlign = "center"; this.color = 0xFFFFFF; }, propertiesFactory:function ():Object{ return ({text:"Oliver & the Basilisks is brought to you by:", y:50, width:656}); }}), new UIComponentDescriptor({type:Image, id:"intro_image", events:{click:"__intro_image_click"}, propertiesFactory:function ():Object{ return ({width:400, height:320, x:128, y:90, buttonMode:true}); }})]}); }})]}); }}); arrow0 = Oliver_arrow0; arrow0_mo = Oliver_arrow0_mo; arrow1 = Oliver_arrow1; arrow1_mo = Oliver_arrow1_mo; arrow2 = Oliver_arrow2; arrow2_mo = Oliver_arrow2_mo; arrow3 = Oliver_arrow3; arrow3_mo = Oliver_arrow3_mo; arrow4 = Oliver_arrow4; arrow4_mo = Oliver_arrow4_mo; arrow5 = Oliver_arrow5; arrow5_mo = Oliver_arrow5_mo; arrow6 = Oliver_arrow6; arrow6_mo = Oliver_arrow6_mo; arrow7 = Oliver_arrow7; arrow7_mo = Oliver_arrow7_mo; pass = Oliver_pass; pass_mo = Oliver_pass_mo; med = Oliver_med; med_mo = Oliver_med_mo; tileset = Oliver_tileset; bg_texture = Oliver_bg_texture; fire_shield = Oliver_fire_shield; dis_bolt = Oliver_dis_bolt; dir_arrows_src = Oliver_dir_arrows_src; dis_bolt_diag = Oliver_dis_bolt_diag; play = Oliver_play; play_mo = Oliver_play_mo; spell_mastery = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; scrolls = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; music_source = Oliver_music_source; music1 = (new music_source() as Sound); music2 = (new music_source() as Sound); splash_src = Oliver_splash_src; Mochicontainer = new UIComponent(); _embed_mxml_assets_crosshairs_gif_1406757933 = Oliver__embed_mxml_assets_crosshairs_gif_1406757933; _embed_mxml_assets_first_play_png_805245507 = Oliver__embed_mxml_assets_first_play_png_805245507; _embed_mxml_assets_timestop_overlay_png_358613933 = Oliver__embed_mxml_assets_timestop_overlay_png_358613933; _embed_mxml_assets_ui_mockup_png_749493075 = Oliver__embed_mxml_assets_ui_mockup_png_749493075; super(); mx_internal::_document = this; if (!this.styleDeclaration){ this.styleDeclaration = new CSSStyleDeclaration(); }; this.styleDeclaration.defaultFactory = function ():void{ this.backgroundColor = 2630200; }; mx_internal::_Oliver_StylesInit(); this.layout = "absolute"; this.height = 565; this.width = 656; this.horizontalScrollPolicy = "off"; this.verticalScrollPolicy = "off"; this.addEventListener("creationComplete", ___Oliver_Application1_creationComplete); } public function __ul_arrow_click(event:MouseEvent):void{ doMove(7); } public function get sprite_canvas():Canvas{ return (this._2102310930sprite_canvas); } private function exorcism():void{ var rock:Rock; var gol:Golem; var spr:Spirit; if ((((golems.length == 0)) && ((spirits.length == 0)))){ cancelSpell(); return; }; for each (gol in golems) { rock = new Rock(gol.x_pos, gol.y_pos, false, gol); sprite_canvas.addChildAt(rock, 0); rocks.push(rock); }; for each (spr in spirits) { spr.fadeOut(2); }; sparkle_shower.play(player.x_pos, player.y_pos); item_used.confirmSpell(); nextPhase(350, false); } private function detonate():void{ current_iteration = 0; if (golems.length == 0){ cancelSpell(); return; }; sparkle_shower.play(player.x_pos, player.y_pos); animation = setInterval(doDetonate, 25); spell_effect = true; item_used.confirmSpell(); sound_channel_1.playSound("quake"); } public function set sprite_canvas(_embed_mxml_assets_crosshairs_gif_1406757933:Canvas):void{ var _local2:Object = this._2102310930sprite_canvas; if (_local2 !== _embed_mxml_assets_crosshairs_gif_1406757933){ this._2102310930sprite_canvas = _embed_mxml_assets_crosshairs_gif_1406757933; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "sprite_canvas", _local2, _embed_mxml_assets_crosshairs_gif_1406757933)); }; } public function get right_arrow():OliverButton{ return (this._84569050right_arrow); } public function get interlevel():Interlevel{ return (this._1592860632interlevel); } public function __right_arrow_creationComplete(event:FlexEvent):void{ right_arrow.setSources(arrow2, arrow2_mo, null, true); } private function traceSpriteInfo():void{ } public function startLevel(start_over:Boolean=false):void{ var sp:Spirit; lose_stoneskin = false; if (player.stoneskin){ player.toggleStone(false); }; if (timestop > 0){ timestop = 0; timestop_overlay.alpha = 0; timestop_overlay.visible = false; }; command_buffer = new Array(0); repelling = 0; player_moved = false; sparkle_shower.visible = false; for each (sp in spirits) { sp.stop(); }; sprite_canvas.removeAllChildren(); under_effects.removeAllChildren(); exploding_traps = new Array(0); amulet.refreshCharges(); if (start_over){ level = 1; } else { level++; if (scroll.spell != -1){ var _local3 = scrolls; var _local4 = scroll.spell; var _local5 = (_local3[_local4] - 1); _local3[_local4] = _local5; }; }; generateLevel(level); key_listener.setFocus(); meditating = false; clearInterval(pause); turns = 0; turn_target = (12 + (level / 4)); turns_meditated = 0; max_turns_meditated = 0; golems_killed = 0; spirits_captured = 0; wand.used = false; amulet.used = false; scroll.used = false; level_number.setNumber(level); } public function set right_arrow(_embed_mxml_assets_crosshairs_gif_1406757933:OliverButton):void{ var _local2:Object = this._84569050right_arrow; if (_local2 !== _embed_mxml_assets_crosshairs_gif_1406757933){ this._84569050right_arrow = _embed_mxml_assets_crosshairs_gif_1406757933; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "right_arrow", _local2, _embed_mxml_assets_crosshairs_gif_1406757933)); }; } public function getSquareContents(x:int, y:int):Object{ var bas:Basilisk; var rock:Rock; var spirit:Spirit; var gol:Golem; var trap:Trap; for each (bas in basilisks) { if ((((bas.x_pos == x)) && ((bas.y_pos == y)))){ return (bas); }; }; for each (rock in rocks) { if ((((rock.x_pos == x)) && ((rock.y_pos == y)))){ return (rock); }; }; for each (spirit in spirits) { if ((((spirit.x_pos == x)) && ((spirit.y_pos == y)))){ return (spirit); }; }; for each (gol in golems) { if ((((gol.x_pos == x)) && ((gol.y_pos == y)))){ return (gol); }; }; for each (trap in traps) { if ((((trap.x_pos == x)) && ((trap.y_pos == y)))){ return (trap); }; }; if ((((player.x_pos == x)) && ((player.y_pos == y)))){ return (player); }; return (null); } public function set interlevel(_embed_mxml_assets_crosshairs_gif_1406757933:Interlevel):void{ var _local2:Object = this._1592860632interlevel; if (_local2 !== _embed_mxml_assets_crosshairs_gif_1406757933){ this._1592860632interlevel = _embed_mxml_assets_crosshairs_gif_1406757933; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "interlevel", _local2, _embed_mxml_assets_crosshairs_gif_1406757933)); }; } public function __right_arrow_click(event:MouseEvent):void{ doMove(2); } public function __pass_button_creationComplete(event:FlexEvent):void{ pass_button.setSources(pass, pass_mo, null, true); } public function get timestop_overlay():Image{ return (this._1475500128timestop_overlay); } public function get ul_arrow():OliverButton{ return (this._1924356193ul_arrow); } private function disintegrate(dir:int):void{ stopDirSelect(); if (dir == -1){ cancelSpell(); return; }; player.changeFacing(dir); var distance:int; var x:int = player.x_pos; var y:int = player.y_pos; spell_target = null; while ((((spell_target == null)) || ((spell_target is Trap)))) { distance++; x = (player.x_pos + (distance * xStep(dir))); y = (player.y_pos + (distance * yStep(dir))); if ((((((((x < 0)) || ((x > 14)))) || ((y < 0)))) || ((y > 14)))){ break; }; spell_target = getSquareContents(x, y); }; if (spell_target == null){ cancelSpell(); return; }; switch (dir){ case 0: dis_animation.rotation = -90; dis_animation.x = (player.x_pos * TILE_SIZE); dis_animation.y = ((player.y_pos * TILE_SIZE) + 35); dis_animation.playSlide(0, -(distance)); break; case 1: dis_animation_diag.rotation = 0; dis_animation_diag.x = (player.x_pos * TILE_SIZE); dis_animation_diag.y = (player.y_pos * TILE_SIZE); dis_animation_diag.playSlide(distance, -(distance)); break; case 2: dis_animation.rotation = 0; dis_animation.x = (player.x_pos * TILE_SIZE); dis_animation.y = (player.y_pos * TILE_SIZE); dis_animation.playSlide(distance, 0); break; case 3: dis_animation_diag.rotation = 90; dis_animation_diag.x = ((player.x_pos * TILE_SIZE) + 35); dis_animation_diag.y = (player.y_pos * TILE_SIZE); dis_animation_diag.playSlide(distance, distance); break; case 4: dis_animation.rotation = 90; dis_animation.x = ((player.x_pos * TILE_SIZE) + 35); dis_animation.y = (player.y_pos * TILE_SIZE); dis_animation.playSlide(0, distance); break; case 5: dis_animation_diag.rotation = 180; dis_animation_diag.x = ((player.x_pos * TILE_SIZE) + 35); dis_animation_diag.y = ((player.y_pos * TILE_SIZE) + 35); dis_animation_diag.playSlide(-(distance), distance); break; case 6: dis_animation.rotation = 180; dis_animation.x = ((player.x_pos * TILE_SIZE) + 35); dis_animation.y = ((player.y_pos * TILE_SIZE) + 35); dis_animation.playSlide(-(distance), 0); break; case 7: dis_animation_diag.rotation = -90; dis_animation_diag.x = (player.x_pos * TILE_SIZE); dis_animation_diag.y = ((player.y_pos * TILE_SIZE) + 35); dis_animation_diag.playSlide(-(distance), -(distance)); break; }; spell_effect = true; item_used.confirmSpell(); sound_channel_1.playSound("lightning"); } public function __dl_arrow_creationComplete(event:FlexEvent):void{ dl_arrow.setSources(arrow5, arrow5_mo, null, true); } public function set down_arrow(_embed_mxml_assets_crosshairs_gif_1406757933:OliverButton):void{ var _local2:Object = this._1654553132down_arrow; if (_local2 !== _embed_mxml_assets_crosshairs_gif_1406757933){ this._1654553132down_arrow = _embed_mxml_assets_crosshairs_gif_1406757933; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "down_arrow", _local2, _embed_mxml_assets_crosshairs_gif_1406757933)); }; } public function __intro_image_click(event:MouseEvent):void{ SmileyGamerAPI.showHome(); } public function get level_number():NumberRenderer{ return (this._1288568932level_number); } public function get player_canvas():Canvas{ return (this._1965881226player_canvas); } public function __dl_arrow_click(event:MouseEvent):void{ doMove(5); } public function set hiscore_screen(_embed_mxml_assets_crosshairs_gif_1406757933:Hiscores):void{ var _local2:Object = this._124523974hiscore_screen; if (_local2 !== _embed_mxml_assets_crosshairs_gif_1406757933){ this._124523974hiscore_screen = _embed_mxml_assets_crosshairs_gif_1406757933; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "hiscore_screen", _local2, _embed_mxml_assets_crosshairs_gif_1406757933)); }; } public function get over_effects():Canvas{ return (this._2116307095over_effects); } private function repulsion():void{ repelling = 1; sparkle_shower.play(player.x_pos, player.y_pos); sound_channel_2.playSound("trap"); animationCallback(player); item_used.confirmSpell(); } private function checkDone(finish_turn:Boolean):void{ var bas:Basilisk; var gol:Golem; var sp:Spirit; var rock:Rock; var done:Boolean; clearInterval(move_timer); if (spell_effect){ done = false; }; if (player.busy){ done = false; }; if (done){ for each (bas in basilisks) { if (bas.busy){ done = false; break; }; }; }; if (done){ for each (gol in golems) { if (gol.busy){ done = false; break; }; }; }; if (done){ for each (sp in spirits) { if (sp.busy){ done = false; break; }; }; }; if (done){ for each (rock in rocks) { if (((rock.dying) || (rock.busy))){ done = false; break; }; }; }; if (done){ if (player_dead){ gameOver(); } else { if (finish_turn){ doneTurn(); } else { if (timestop == 0){ moveEnemies(); } else { timestop--; if (timestop == 0){ timestop_anim = setInterval(fadeTimestop, 100); }; doneTurn(); }; }; }; } else { move_timer = setInterval(checkDone, 50, finish_turn); }; } private function keyRelease(ev:KeyboardEvent):void{ if (!player_movable){ add_to_buffer = true; }; } public function reportClick(sprite:OliverSprite):void{ trace(((sprite.x_pos + ",") + sprite.y_pos)); if ((sprite is Basilisk)){ trace(("#" + basilisks.indexOf(sprite))); }; } public function get meditate_button():OliverButton{ return (this._865609910meditate_button); } public function set timestop_overlay(_embed_mxml_assets_crosshairs_gif_1406757933:Image):void{ var _local2:Object = this._1475500128timestop_overlay; if (_local2 !== _embed_mxml_assets_crosshairs_gif_1406757933){ this._1475500128timestop_overlay = _embed_mxml_assets_crosshairs_gif_1406757933; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "timestop_overlay", _local2, _embed_mxml_assets_crosshairs_gif_1406757933)); }; } public function set ul_arrow(_embed_mxml_assets_crosshairs_gif_1406757933:OliverButton):void{ var _local2:Object = this._1924356193ul_arrow; if (_local2 !== _embed_mxml_assets_crosshairs_gif_1406757933){ this._1924356193ul_arrow = _embed_mxml_assets_crosshairs_gif_1406757933; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "ul_arrow", _local2, _embed_mxml_assets_crosshairs_gif_1406757933)); }; } private function getDirection(spell:int):void{ if (spell == DISINTEGRATE){ dir_select = disintegrate; } else { if (spell == STONEWALL){ dir_select = stoneWall; } else { if (spell == MAGIC_TRAP){ dir_select = magicTrap; } else { if (spell == PETRIFY){ dir_select = petrify; }; }; }; }; if (command_buffer.length > 0){ command_buffer = new Array(0); }; player_movable = true; dir_arrows.x = ((player.x_pos * TILE_SIZE) - 16); dir_arrows.y = ((player.y_pos * TILE_SIZE) - 19); dir_arrows.play(); } public function get simple_interlevel():SimpleInterlevel{ return (this._1591828693simple_interlevel); } public function __meditate_button_click(event:MouseEvent):void{ if (player_movable){ doMeditate(); }; } public function set level_number(_embed_mxml_assets_crosshairs_gif_1406757933:NumberRenderer):void{ var _local2:Object = this._1288568932level_number; if (_local2 !== _embed_mxml_assets_crosshairs_gif_1406757933){ this._1288568932level_number = _embed_mxml_assets_crosshairs_gif_1406757933; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "level_number", _local2, _embed_mxml_assets_crosshairs_gif_1406757933)); }; } public function __score_number_creationComplete(event:FlexEvent):void{ score_number.setSize(0, 7, 2); } private function doMeditate():void{ if (queryEnemiesAdjacent(player.x_pos, player.y_pos)){ player_movable = true; return; }; meditating = true; player_movable = false; animationCallback(player); meditate_button.flash(); } public function set player_canvas(_embed_mxml_assets_crosshairs_gif_1406757933:Canvas):void{ var _local2:Object = this._1965881226player_canvas; if (_local2 !== _embed_mxml_assets_crosshairs_gif_1406757933){ this._1965881226player_canvas = _embed_mxml_assets_crosshairs_gif_1406757933; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "player_canvas", _local2, _embed_mxml_assets_crosshairs_gif_1406757933)); }; } public function __up_arrow_creationComplete(event:FlexEvent):void{ up_arrow.setSources(arrow0, arrow0_mo, null, true); } public function get newscore():NewScore{ return (this._1395300594newscore); } public function set level_canvas(_embed_mxml_assets_crosshairs_gif_1406757933:Canvas):void{ var _local2:Object = this._955226739level_canvas; if (_local2 !== _embed_mxml_assets_crosshairs_gif_1406757933){ this._955226739level_canvas = _embed_mxml_assets_crosshairs_gif_1406757933; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "level_canvas", _local2, _embed_mxml_assets_crosshairs_gif_1406757933)); }; } public function moveEnemies():void{ var x:int; var y:int; var move_dir:int; var gol:Golem; var bas:Basilisk; var collision_type:int; var rock:Rock; var dist:int; var closest:int; var random:Boolean; var sp:Spirit; var pt:CollisionPoint; var rk:Rock; var golem:Golem; var dest:Point; var i:int; var destination_points:Array = new Array(0); var collision_points:Array = new Array(0); var available_dirs:Array = new Array(0); var collision:Boolean; var sound_type:int; if (timestop > 0){ timestop--; if (timestop == 0){ timestop_anim = setInterval(fadeTimestop, 50); sound_channel_2.playSound("spirit_capture"); nextPhase(500, true); } else { nextPhase(50, true); }; return; }; for each (gol in golems) { collision = false; x = gol.x_pos; y = gol.y_pos; if (gol.x_pos > player.x_pos){ if (repelling){ x++; } else { x--; }; } else { if (gol.x_pos < player.x_pos){ if (repelling){ x--; } else { x++; }; }; }; if (gol.y_pos > player.y_pos){ if (repelling){ y++; } else { y--; }; } else { if (gol.y_pos < player.y_pos){ if (repelling){ y--; } else { y++; }; }; }; if (x > 14){ x = 14; }; if (x < 0){ x = 0; }; if (y > 14){ y = 14; }; if (y < 0){ y = 0; }; gol.x_dest = x; gol.y_dest = y; if ((((x == player.x_pos)) && ((y == player.y_pos)))){ } else { for each (pt in destination_points) { if ((((x == pt.x)) && ((y == pt.y)))){ collision = true; pt.golems++; if (collision_points.indexOf(pt) < 0){ collision_points.push(pt); }; break; }; }; if (!collision){ destination_points.push(new CollisionPoint(x, y, true)); }; }; }; for each (bas in basilisks) { if (bas.busy){ } else { collision = false; x = bas.x_pos; y = bas.y_pos; if (bas.x_pos > player.x_pos){ if (repelling){ x++; } else { x--; }; } else { if (bas.x_pos < player.x_pos){ if (repelling){ x--; } else { x++; }; }; }; if (bas.y_pos > player.y_pos){ if (repelling){ y++; } else { y--; }; } else { if (bas.y_pos < player.y_pos){ if (repelling){ y--; } else { y++; }; }; }; if (x > 14){ x = 14; }; if (x < 0){ x = 0; }; if (y > 14){ y = 14; }; if (y < 0){ y = 0; }; bas.x_dest = x; bas.y_dest = y; if ((((x == player.x_pos)) && ((y == player.y_pos)))){ if (player.stoneskin){ lose_stoneskin = true; //unresolved jump }; } else { for each (pt in destination_points) { if ((((x == pt.x)) && ((y == pt.y)))){ collision = true; if (collision_points.indexOf(pt) < 0){ collision_points.push(pt); }; break; }; }; if (!collision){ destination_points.push(new CollisionPoint(x, y, false)); }; }; }; }; for each (bas in basilisks) { if (bas.busy){ } else { move_dir = getDir((bas.x_dest - bas.x_pos), (bas.y_dest - bas.y_pos)); collision = false; if ((((((bas.x_dest == player.x_pos)) && ((bas.y_dest == player.y_pos)))) && (player.stoneskin))){ collision = true; sound_type = 1; } else { for each (pt in collision_points) { if ((((bas.x_dest == pt.x)) && ((bas.y_dest == pt.y)))){ collision = true; sound_type = 1; break; }; }; }; if (!collision){ for each (rock in rocks) { if ((((rock.x_pos == bas.x_dest)) && ((rock.y_pos == bas.y_dest)))){ collision = true; sound_type = 1; break; }; }; }; if (((((repelling) && ((bas.x_dest == bas.x_pos)))) && ((bas.y_dest == bas.y_pos)))){ if (collision){ bas.playAnimation(4); sound_type = 1; }; } else { bas.walk(move_dir, (collision) ? 2 : 1); }; }; }; for each (gol in golems) { move_dir = getDir((gol.x_dest - gol.x_pos), (gol.y_dest - gol.y_pos)); collision_type = 1; for each (pt in collision_points) { if ((((gol.x_dest == pt.x)) && ((gol.y_dest == pt.y)))){ collision_type = ((pt.golems)>1) ? 2 : 4; sound_type = 1; }; }; for each (rock in rocks) { if ((((rock.x_pos == gol.x_dest)) && ((rock.y_pos == gol.y_dest)))){ rock.playAnimation(3); if (collision_type == 1){ collision_type = 4; }; sound_type = 1; break; }; }; if (((((repelling) && ((gol.x_dest == gol.x_pos)))) && ((gol.y_dest == gol.y_pos)))){ if (collision_type == 2){ gol.playAnimation(3); }; } else { gol.walk(move_dir, collision_type); }; }; rock = null; closest = 20; random = false; trace(("spirits: " + spirits.length)); for each (sp in spirits) { if (sp.dying){ } else { closest = 20; random = false; trace(((("spirit at: " + sp.x_pos) + ",") + sp.y_pos)); for each (rk in rocks) { if (((rk.dying) || (rk.busy))){ } else { dist = Math.max(Math.abs((sp.x_pos - rk.x_pos)), Math.abs((sp.y_pos - rk.y_pos))); if (dist < closest){ rock = rk; closest = dist; }; }; }; trace(("closest distance: " + closest)); if (((!((rock == null))) && ((Math.random() < (1 / Math.sqrt(closest)))))){ if (closest == 1){ trace("spirit possessing rock"); sp.walk(getDir((rock.x_pos - sp.x_pos), (rock.y_pos - sp.y_pos)), 3); golem = new Golem(rock.x_pos, rock.y_pos, getDir((player.x_pos - rock.x_pos), (player.y_pos - rock.y_pos))); golems.push(golem); sprite_canvas.addChildAt(golem, 0); rock.transmute(golem); sound_type = 2; } else { dest = new Point(sp.x_pos, sp.y_pos); if (sp.x_pos > rock.x_pos){ dest.x--; } else { if (sp.x_pos < rock.x_pos){ dest.x++; }; }; if (sp.y_pos > rock.y_pos){ dest.y--; } else { if (sp.y_pos < rock.y_pos){ dest.y++; }; }; trace(((("trying to go to " + dest.x) + ",") + dest.y)); if (getSquareContents(dest.x, dest.y) != null){ random = true; trace("path obstructed!"); } else { trace("moving towards rock"); sp.walk(getDir((rock.x_pos - sp.x_pos), (rock.y_pos - sp.y_pos)), 1); }; }; } else { random = true; }; if (random){ trace("spirit moving randomly"); available_dirs = new Array(0); i = 0; while (i < 8) { x = (sp.x_pos + xStep(i)); y = (sp.y_pos + yStep(i)); if (getSquareContents(x, y) == null){ available_dirs.push(i); }; i++; }; if (available_dirs.length == 0){ sp.fadeOut(3); } else { move_dir = available_dirs[int((Math.random() * available_dirs.length))]; sp.walk(move_dir, 1); destination_points.push(new CollisionPoint(sp.x_pos, sp.y_pos)); }; }; }; }; if (doSpiritCreation()){ sound_channel_2.playSound("spirit_create"); }; if ((((basilisks.length == 0)) && ((golems.length == 0)))){ sound_type = -1; }; switch (sound_type){ case 0: sound_channel_1.playSound("basilisk_move"); break; case 1: sound_channel_1.playSound("rock_create"); break; case 2: sound_channel_1.playSound("golem_create"); break; }; if (repelling > 0){ repelling--; }; nextPhase(350, true); } public function set intro_canvas(_embed_mxml_assets_crosshairs_gif_1406757933:Canvas):void{ var _local2:Object = this._879704715intro_canvas; if (_local2 !== _embed_mxml_assets_crosshairs_gif_1406757933){ this._879704715intro_canvas = _embed_mxml_assets_crosshairs_gif_1406757933; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "intro_canvas", _local2, _embed_mxml_assets_crosshairs_gif_1406757933)); }; } public function get dr_arrow():OliverButton{ return (this._903560936dr_arrow); } private function keyPress(ev:KeyboardEvent):void{ var dir:int; if (newscore.visible){ newscore.keypress(ev); return; }; if ((((ev.keyCode == Keyboard.ENTER)) || ((ev.keyCode == Keyboard.SPACE)))){ nextScreen(); return; }; if (help.visible){ return; }; if (((((!(player_movable)) && (((!((ev.keyCode == last_keypress.keyCode))) || (!(player.busy)))))) && ((command_buffer.length < 2)))){ command_buffer.push(ev); last_keypress = ev; return; }; last_keypress = ev; if ((((ev.keyCode >= 97)) && ((ev.keyCode <= 105)))){ dir = num_to_dir[(ev.keyCode - 97)]; doMove(dir); } else { if (dir_select != null){ dir_select(-1); } else { if (ev.keyCode == 96){ if (player_movable){ doMeditate(); }; } else { if (String.fromCharCode(ev.keyCode).toUpperCase() == "A"){ if (player_movable){ amulet.castSpell(); }; } else { if (String.fromCharCode(ev.keyCode).toUpperCase() == "S"){ if (player_movable){ wand.castSpell(); }; } else { if (String.fromCharCode(ev.keyCode).toUpperCase() == "D"){ if (player_movable){ scroll.castSpell(); }; } else { if (String.fromCharCode(ev.keyCode).toUpperCase() == "W"){ traceSpriteInfo(); } else { if (command_buffer.length > 0){ keyPress(KeyboardEvent(command_buffer.shift())); }; }; }; }; }; }; }; }; } public function set key_listener(_embed_mxml_assets_crosshairs_gif_1406757933:Text):void{ var _local2:Object = this._1043131756key_listener; if (_local2 !== _embed_mxml_assets_crosshairs_gif_1406757933){ this._1043131756key_listener = _embed_mxml_assets_crosshairs_gif_1406757933; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "key_listener", _local2, _embed_mxml_assets_crosshairs_gif_1406757933)); }; } public function castSpell(spell:int, item:MagicItem):void{ Oliver.app.player_movable = false; item_used = item; item_used.button.flash(); switch (spell){ case TELEPORT: teleport(); break; case JUMP: newJump(player.x_pos, player.y_pos); break; case DISINTEGRATE: getDirection(DISINTEGRATE); break; case LIGHTNING: chain_lightning(); break; case MAGIC_TRAP: getDirection(MAGIC_TRAP); break; case STONEWALL: getDirection(STONEWALL); break; case FIRE_SHIELD: fireShield(player.x_pos, player.y_pos); break; case DETONATE: detonate(); break; case REPULSION: repulsion(); break; case EARTHQUAKE: earthquake(); break; case TIMESTOP: doTimestop(); break; case STONESKIN: stoneskin(); break; case BANISHMENT: banish(); break; case PETRIFY: getDirection(PETRIFY); break; }; } public function get background():TilingComposite{ return (this._1332194002background); } public function lightningCallback():void{ current_iteration++; trace(("lightning bolt! iteration is " + current_iteration)); if (current_iteration >= bolts.length){ spell_effect = false; nextPhase(50, false); return; }; LightningBolt(bolts[current_iteration]).play(); OliverSprite(targets[current_iteration]).playAnimation(3); } private function setupMagic():void{ fs_animation = new SimpleAnimation(105, 105, 8, 55, fire_shield); over_effects.addChild(fs_animation); dis_animation = new SlidingAnimation(35, 35, 8, 70, dis_bolt); over_effects.addChild(dis_animation); dis_animation_diag = new SlidingAnimation(35, 35, 8, 70, dis_bolt_diag); over_effects.addChild(dis_animation_diag); dir_arrows = new PulseAnimation(67, 75, 3, 120, dir_arrows_src); over_effects.addChild(dir_arrows); spell_effect = false; } public function set over_effects(_embed_mxml_assets_crosshairs_gif_1406757933:Canvas):void{ var _local2:Object = this._2116307095over_effects; if (_local2 !== _embed_mxml_assets_crosshairs_gif_1406757933){ this._2116307095over_effects = _embed_mxml_assets_crosshairs_gif_1406757933; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "over_effects", _local2, _embed_mxml_assets_crosshairs_gif_1406757933)); }; } public function set mainmenu(_embed_mxml_assets_crosshairs_gif_1406757933:MainMenu):void{ var _local2:Object = this._7694696mainmenu; if (_local2 !== _embed_mxml_assets_crosshairs_gif_1406757933){ this._7694696mainmenu = _embed_mxml_assets_crosshairs_gif_1406757933; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "mainmenu", _local2, _embed_mxml_assets_crosshairs_gif_1406757933)); }; } public function set play_button(_embed_mxml_assets_crosshairs_gif_1406757933:OliverButton):void{ var _local2:Object = this._910666083play_button; if (_local2 !== _embed_mxml_assets_crosshairs_gif_1406757933){ this._910666083play_button = _embed_mxml_assets_crosshairs_gif_1406757933; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "play_button", _local2, _embed_mxml_assets_crosshairs_gif_1406757933)); }; } private function doShake():void{ var new_rock:Rock; var contents:Object; var pt:Point; current_iteration++; if (!sound_channel_1.playing){ sound_channel_1.playSound("rock_create"); }; if (current_iteration > 25){ clearInterval(animation); level_canvas.x = 5; level_canvas.y = 5; spell_effect = false; nextPhase(250, false); return; }; if (level_canvas.x == 5){ level_canvas.x = ((Math.random())<0.5) ? 3 : 7; } else { level_canvas.x = 5; }; if (level_canvas.y == 5){ level_canvas.y = ((Math.random())<0.5) ? 4 : 6; } else { level_canvas.y = 5; }; if ((((current_iteration < 16)) && ((targets.length > 0)))){ pt = Point(targets.pop()); contents = getSquareContents(pt.x, pt.y); if ((contents is Rock)){ return; }; new_rock = new Rock(pt.x, pt.y, true); rocks.push(new_rock); sprite_canvas.addChildAt(new_rock, 0); if ((contents is Basilisk)){ Basilisk(contents).playAnimation(3); }; }; } public function set main_canvas(_embed_mxml_assets_crosshairs_gif_1406757933:Canvas):void{ var _local2:Object = this._1208927586main_canvas; if (_local2 !== _embed_mxml_assets_crosshairs_gif_1406757933){ this._1208927586main_canvas = _embed_mxml_assets_crosshairs_gif_1406757933; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "main_canvas", _local2, _embed_mxml_assets_crosshairs_gif_1406757933)); }; } public function set under_effects(_embed_mxml_assets_crosshairs_gif_1406757933:Canvas):void{ var _local2:Object = this._4197019under_effects; if (_local2 !== _embed_mxml_assets_crosshairs_gif_1406757933){ this._4197019under_effects = _embed_mxml_assets_crosshairs_gif_1406757933; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "under_effects", _local2, _embed_mxml_assets_crosshairs_gif_1406757933)); }; } private function nextScreen():void{ if (first_play.visible){ first_play.visible = false; cookie.data.played = "true"; } else { if (gameover_screen.visible){ gameover_screen.nextScreen(); } else { if (interlevel.visible){ interlevel.nextScreen(); } else { if (simple_interlevel.visible){ simple_interlevel.startLevel(); } else { if (help.visible){ help.nextScreen(); } else { if (hiscore_screen.visible){ hiscore_screen.startOver(); } else { if (level_intro.visible){ level_intro.startLevel(); }; }; }; }; }; }; }; } public function set ui(_embed_mxml_assets_crosshairs_gif_1406757933:Image):void{ var _local2:Object = this._3732ui; if (_local2 !== _embed_mxml_assets_crosshairs_gif_1406757933){ this._3732ui = _embed_mxml_assets_crosshairs_gif_1406757933; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "ui", _local2, _embed_mxml_assets_crosshairs_gif_1406757933)); }; } public function set options(_embed_mxml_assets_crosshairs_gif_1406757933:OptionsBar):void{ var _local2:Object = this._1249474914options; if (_local2 !== _embed_mxml_assets_crosshairs_gif_1406757933){ this._1249474914options = _embed_mxml_assets_crosshairs_gif_1406757933; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "options", _local2, _embed_mxml_assets_crosshairs_gif_1406757933)); }; } private function fireShield(x:int, y:int, playerspell:Boolean=true):void{ var contents:Object; var j:int; var success:Boolean; var i = -1; while (i <= 1) { j = -1; while (j <= 1) { contents = getSquareContents((x + i), (y + j)); if ((((contents is Basilisk)) && (!(Basilisk(contents).busy)))){ Basilisk(contents).playAnimation(3); success = true; } else { if ((((contents is Spirit)) && (!(Spirit(contents).busy)))){ Spirit(contents).fadeOut(2); success = true; } else { if (((!(playerspell)) && ((contents is Player)))){ player_dead = true; }; }; }; j++; }; i++; }; if (((playerspell) && (!(success)))){ cancelSpell(); return; }; fs_animation.x = ((x - 1) * TILE_SIZE); fs_animation.y = ((y - 1) * TILE_SIZE); fs_animation.play(); if (playerspell){ item_used.confirmSpell(); sound_channel_1.playSound("fireball"); nextPhase(350, false); } else { sound_channel_2.playSound("fireball"); }; } public function set super_canvas(_embed_mxml_assets_crosshairs_gif_1406757933:Canvas):void{ var _local2:Object = this._1923396252super_canvas; if (_local2 !== _embed_mxml_assets_crosshairs_gif_1406757933){ this._1923396252super_canvas = _embed_mxml_assets_crosshairs_gif_1406757933; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "super_canvas", _local2, _embed_mxml_assets_crosshairs_gif_1406757933)); }; } public function get map():SingleSourceComposite{ return (this._107868map); } public function get up_arrow():OliverButton{ return (this._1179403621up_arrow); } public function set meditate_button(_embed_mxml_assets_crosshairs_gif_1406757933:OliverButton):void{ var _local2:Object = this._865609910meditate_button; if (_local2 !== _embed_mxml_assets_crosshairs_gif_1406757933){ this._865609910meditate_button = _embed_mxml_assets_crosshairs_gif_1406757933; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "meditate_button", _local2, _embed_mxml_assets_crosshairs_gif_1406757933)); }; } public function __ul_arrow_creationComplete(event:FlexEvent):void{ ul_arrow.setSources(arrow7, arrow7_mo, null, true); } private function increaseScore(amt:int):void{ score = (score + amt); score_number.setNumber(score); } public function __left_arrow_click(event:MouseEvent):void{ doMove(6); } public function __meditate_button_creationComplete(event:FlexEvent):void{ meditate_button.setSources(med, med_mo, null, true); } public function __play_button_click(event:MouseEvent):void{ startFade(); } public function ___Oliver_Application1_creationComplete(event:FlexEvent):void{ setup(); } public function __down_arrow_click(event:MouseEvent):void{ doMove(4); } public function __dr_arrow_creationComplete(event:FlexEvent):void{ dr_arrow.setSources(arrow3, arrow3_mo, null, true); } public function get dl_arrow():OliverButton{ return (this._1933615726dl_arrow); } public function get score_number():NumberRenderer{ return (this._1529835926score_number); } public function set simple_interlevel(_embed_mxml_assets_crosshairs_gif_1406757933:SimpleInterlevel):void{ var _local2:Object = this._1591828693simple_interlevel; if (_local2 !== _embed_mxml_assets_crosshairs_gif_1406757933){ this._1591828693simple_interlevel = _embed_mxml_assets_crosshairs_gif_1406757933; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "simple_interlevel", _local2, _embed_mxml_assets_crosshairs_gif_1406757933)); }; } public function __first_play_button_creationComplete(event:FlexEvent):void{ first_play_button.setText(DynamicButton.START); } public function __first_play_button_click(event:MouseEvent):void{ first_play.visible = false; cookie.data.played = "true"; cookie.flush(); } public function get intro_image():Image{ return (this._311357896intro_image); } public function get left_arrow():OliverButton{ return (this._1850796591left_arrow); } private function doDetonate():void{ var gol:Golem; current_iteration++; if ((((golems.length == 0)) && ((current_iteration >= 25)))){ clearInterval(animation); level_canvas.x = 5; level_canvas.y = 5; spell_effect = false; nextPhase(50, false); return; }; if (level_canvas.x == 5){ level_canvas.x = ((Math.random())<0.5) ? 3 : 7; } else { level_canvas.x = 5; }; if (level_canvas.y == 5){ level_canvas.y = ((Math.random())<0.5) ? 4 : 6; } else { level_canvas.y = 5; }; if ((current_iteration % 12) != 1){ return; }; for each (gol in golems) { if (!gol.busy){ detonateTrap(new Trap(gol.x_pos, gol.y_pos), true); return; }; }; } mx_internal function _Oliver_StylesInit():void{ var _local1:CSSStyleDeclaration; var _local2:Array; if (mx_internal::_Oliver_StylesInit_done){ return; }; mx_internal::_Oliver_StylesInit_done = true; var _local3 = StyleManager; _local3.mx_internal::initProtoChainRoots(); } public function set newscore(_embed_mxml_assets_crosshairs_gif_1406757933:NewScore):void{ var _local2:Object = this._1395300594newscore; if (_local2 !== _embed_mxml_assets_crosshairs_gif_1406757933){ this._1395300594newscore = _embed_mxml_assets_crosshairs_gif_1406757933; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "newscore", _local2, _embed_mxml_assets_crosshairs_gif_1406757933)); }; } private function newJump(x:int, y:int):void{ var destination_point:Point; var j:int; var valid_squares:Array = new Array(0); var i = -4; while (i <= 4) { if (((((x + i) < 0)) || (((x + i) > 14)))){ } else { j = -4; while (j <= 4) { if (((((((y + j) < 0)) || (((y + j) > 14)))) || ((Math.max(Math.abs(i), Math.abs(j)) <= 1)))){ } else { if (((!(queryEnemiesAdjacent((x + i), (y + j)))) && ((getSquareContents((x + i), (y + j)) == null)))){ valid_squares.push(new Point((x + i), (y + j))); }; }; j++; }; }; i++; }; if (valid_squares.length == 0){ cancelSpell(); return; }; destination_point = Point(valid_squares[int((Math.random() * valid_squares.length))]); player.teleport(destination_point.x, destination_point.y, true); item_used.confirmSpell(); nextPhase(700, false); } public function get level_intro():LevelIntro{ return (this._2114957809level_intro); } public function doTimestop():void{ sparkle_shower.play(player.x_pos, player.y_pos); timestop_anim = setInterval(startTimestop, 100); item_used.confirmSpell(); sound_channel_1.playSound("capture"); timestop = 2; nextPhase(800, false); } private function startFade():void{ if (pause != 0){ clearInterval(pause); }; pause = setInterval(introFadeIn, 50); } public function __left_arrow_creationComplete(event:FlexEvent):void{ left_arrow.setSources(arrow6, arrow6_mo, null, true); } private function stopDirSelect():void{ player_movable = false; dir_select = null; dir_arrows.stop(); } public function set gameover_screen(_embed_mxml_assets_crosshairs_gif_1406757933:GameOver):void{ var _local2:Object = this._1462742267gameover_screen; if (_local2 !== _embed_mxml_assets_crosshairs_gif_1406757933){ this._1462742267gameover_screen = _embed_mxml_assets_crosshairs_gif_1406757933; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "gameover_screen", _local2, _embed_mxml_assets_crosshairs_gif_1406757933)); }; } public function __up_arrow_click(event:MouseEvent):void{ doMove(0); } public function banish():void{ var target:Object; var x_dest:int; var y_dest:int; var success:Boolean; var i:int; while (i < 8) { switch (i){ case 0: target = getSquareContents(player.x_pos, (player.y_pos - 1)); x_dest = player.x_pos; y_dest = 0; break; case 1: target = getSquareContents((player.x_pos + 1), (player.y_pos - 1)); x_dest = 14; y_dest = 0; break; case 2: target = getSquareContents((player.x_pos + 1), player.y_pos); x_dest = 14; y_dest = player.y_pos; break; case 3: target = getSquareContents((player.x_pos + 1), (player.y_pos + 1)); x_dest = 14; y_dest = 14; break; case 4: target = getSquareContents(player.x_pos, (player.y_pos + 1)); x_dest = player.x_pos; y_dest = 14; break; case 5: target = getSquareContents((player.x_pos - 1), (player.y_pos + 1)); x_dest = 0; y_dest = 14; break; case 6: target = getSquareContents((player.x_pos - 1), player.y_pos); x_dest = 0; y_dest = player.y_pos; break; case 7: target = getSquareContents((player.x_pos - 1), (player.y_pos - 1)); x_dest = 0; y_dest = 0; break; }; if ((((((target == null)) || ((target is Trap)))) || ((target is Rock)))){ } else { success = true; while (getSquareContents(x_dest, y_dest) != null) { if ((((x_dest == player.x_pos)) && ((y_dest == player.y_pos)))){ x_dest = int((Math.random() * 15)); y_dest = int((Math.random() * 15)); } else { if (x_dest > player.x_pos){ x_dest--; } else { if (x_dest < player.x_pos){ x_dest++; }; }; if (y_dest > player.y_pos){ y_dest--; } else { if (y_dest < player.y_pos){ y_dest++; }; }; }; }; over_effects.addChild(new TeleportFlash(target.x_pos, target.y_pos)); if ((target is OliverSprite)){ OliverSprite(target).setPosition(x_dest, y_dest); } else { if ((target is Spirit)){ Spirit(target).setPosition(x_dest, y_dest); }; }; over_effects.addChild(new TeleportFlash(x_dest, y_dest)); }; i++; }; if (!success){ cancelSpell(); } else { item_used.confirmSpell(); sound_channel_1.playSound("teleport"); nextPhase(1200, false); }; } private function movePlayer(dir:int):void{ var x_dest:int = (player.x_pos + xStep(dir)); var y_dest:int = (player.y_pos + yStep(dir)); switch (dir){ case 0: up_arrow.flash(); break; case 1: ur_arrow.flash(); break; case 2: right_arrow.flash(); break; case 3: dr_arrow.flash(); break; case 4: down_arrow.flash(); break; case 5: dl_arrow.flash(); break; case 6: left_arrow.flash(); break; case 7: ul_arrow.flash(); break; }; if ((((((((x_dest > 14)) || ((x_dest < 0)))) || ((y_dest > 14)))) || ((y_dest < 0)))){ player_movable = true; command_buffer = new Array(0); return; }; var contents:Object = getSquareContents(x_dest, y_dest); if ((((contents is Golem)) || ((contents is Trap)))){ player_movable = true; command_buffer = new Array(0); return; }; if ((contents is Basilisk)){ if (!player.stoneskin){ player_movable = true; command_buffer = new Array(0); return; }; lose_stoneskin = true; Basilisk(contents).playAnimation(3); }; if ((contents is Rock)){ if (!player.stoneskin){ player_movable = true; command_buffer = new Array(0); return; }; lose_stoneskin = true; Rock(contents).playAnimation(3); } else { if ((contents is Spirit)){ Spirit(contents).fadeOut(4); wand.gainCharges(1); amulet.refreshCharges(); spirits_captured++; sound_channel_1.playSound("capture"); }; }; sound_channel_1.playSound((lose_stoneskin) ? "rock_create" : "walk"); player.walk(dir); } public function destroyTarget():void{ spell_effect = false; nextPhase(50, false); if (spell_target == null){ animationCallback(player); return; }; if ((spell_target is Basilisk)){ Basilisk(spell_target).playAnimation(3); } else { if ((spell_target is Rock)){ Rock(spell_target).playAnimation(0); } else { if ((spell_target is Spirit)){ Spirit(spell_target).fadeOut(2); } else { if ((spell_target is Golem)){ Golem(spell_target).playAnimation(3); }; }; }; }; } public function set dr_arrow(_embed_mxml_assets_crosshairs_gif_1406757933:OliverButton):void{ var _local2:Object = this._903560936dr_arrow; if (_local2 !== _embed_mxml_assets_crosshairs_gif_1406757933){ this._903560936dr_arrow = _embed_mxml_assets_crosshairs_gif_1406757933; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "dr_arrow", _local2, _embed_mxml_assets_crosshairs_gif_1406757933)); }; } public function get hiscore_screen():Hiscores{ return (this._124523974hiscore_screen); } public function get down_arrow():OliverButton{ return (this._1654553132down_arrow); } public function set interface_canvas(_embed_mxml_assets_crosshairs_gif_1406757933:Canvas):void{ var _local2:Object = this._2053938402interface_canvas; if (_local2 !== _embed_mxml_assets_crosshairs_gif_1406757933){ this._2053938402interface_canvas = _embed_mxml_assets_crosshairs_gif_1406757933; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "interface_canvas", _local2, _embed_mxml_assets_crosshairs_gif_1406757933)); }; } public function getAdjacentRock(x:int, y:int):Rock{ var j:int; var rock:Rock; var adj_rocks:Array = new Array(0); var i = -1; while (i <= 1) { j = -1; while (j <= 1) { if ((((((((((((i == 0)) && ((j == 0)))) || (((x + i) < 0)))) || (((x + i) > 14)))) || (((y + j) < 0)))) || (((y + j) > 14)))){ } else { for each (rock in rocks) { if ((((((rock.x_pos == (x + i))) && ((rock.y_pos == (y + j))))) && (!(rock.dying)))){ adj_rocks.push(rock); }; }; }; j++; }; i++; }; if (adj_rocks.length == 0){ return (null); }; return (adj_rocks[int((Math.random() * adj_rocks.length))]); } private function nextPhase(time:int, end_turn:Boolean):void{ clearInterval(move_timer); move_timer = setInterval(checkDone, time, end_turn); } public function set pass_button(_embed_mxml_assets_crosshairs_gif_1406757933:OliverButton):void{ var _local2:Object = this._1209613088pass_button; if (_local2 !== _embed_mxml_assets_crosshairs_gif_1406757933){ this._1209613088pass_button = _embed_mxml_assets_crosshairs_gif_1406757933; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "pass_button", _local2, _embed_mxml_assets_crosshairs_gif_1406757933)); }; } private function introFadeIn():void{ super_canvas.alpha = (super_canvas.alpha + 0.1); intro_canvas.alpha = (intro_canvas.alpha - 0.1); if (music_channel1 != null){ music_channel1.soundTransform = new SoundTransform((0.3 + (super_canvas.alpha * 0.5))); }; if (music_channel2 != null){ music_channel2.soundTransform = new SoundTransform((0.3 + (super_canvas.alpha * 0.5))); }; if (super_canvas.alpha >= 0.95){ super_canvas.alpha = 1; intro_canvas.visible = false; music_vol = 0.8; if (music_channel1 != null){ music_channel1.soundTransform = new SoundTransform(0.8); }; if (music_channel2 != null){ music_channel2.soundTransform = new SoundTransform(0.8); }; clearInterval(pause); }; } private function autoPass():void{ clearInterval(pause); player_movable = false; animationCallback(player); turns_meditated++; } public function set background(_embed_mxml_assets_crosshairs_gif_1406757933:TilingComposite):void{ var _local2:Object = this._1332194002background; if (_local2 !== _embed_mxml_assets_crosshairs_gif_1406757933){ this._1332194002background = _embed_mxml_assets_crosshairs_gif_1406757933; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "background", _local2, _embed_mxml_assets_crosshairs_gif_1406757933)); }; } public function get level_canvas():Canvas{ return (this._955226739level_canvas); } private function magicTrap(dir:int):void{ var trap:Trap; var new_trap:Trap; stopDirSelect(); if (dir == -1){ cancelSpell(); return; }; var x:int = (player.x_pos + xStep(dir)); var y:int = (player.y_pos + yStep(dir)); if ((((((((((x < 0)) || ((x > 14)))) || ((y < 0)))) || ((y > 14)))) || (!((getSquareContents(x, y) == null))))){ cancelSpell(); return; }; for each (trap in traps) { if ((((trap.x_pos == x)) && ((trap.y_pos == y)))){ cancelSpell(); return; }; }; new_trap = new Trap(x, y); under_effects.addChild(new_trap); new_trap.play(); traps.push(new_trap); sparkle_shower.play(new_trap.x_pos, new_trap.y_pos); item_used.confirmSpell(); spell_effect = true; sound_channel_1.playSound("trap"); nextPhase(800, false); } public function __play_button_creationComplete(event:FlexEvent):void{ play_button.setSources(play, play_mo, null, true); } public function set help(_embed_mxml_assets_crosshairs_gif_1406757933:Help):void{ var _local2:Object = this._3198785help; if (_local2 !== _embed_mxml_assets_crosshairs_gif_1406757933){ this._3198785help = _embed_mxml_assets_crosshairs_gif_1406757933; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "help", _local2, _embed_mxml_assets_crosshairs_gif_1406757933)); }; } private function setup():void{ cookie = SharedObject.getLocal("oliver_played"); addChild(Mochicontainer); MochiBot.track(this, "f7081779", Mochicontainer, url); splash_anim = (new splash_src() as MovieClip); intro_image.source = splash_anim; super_canvas.alpha = 0; app = this; background.setup(bg_texture); background.fill(); map.setup(tileset, 10658444); key_listener.addEventListener(KeyboardEvent.KEY_DOWN, keyPress); key_listener.addEventListener(KeyboardEvent.KEY_UP, keyRelease); setupMagic(); amulet = new Amulet(); scroll = new Scroll(); wand = new Wand(); interface_canvas.addChild(amulet); interface_canvas.addChild(scroll); interface_canvas.addChild(wand); sound_channel_1 = new SoundManager(); sound_channel_2 = new SoundManager(); music_vol = 0.3; playMusic((music1.length - 380)); Log.View(1040, "142fb09d4359", url); if (!SmileyGamerAPI.canShowPreloaderAd()){ intro_canvas.visible = false; pause = setInterval(startFade, 2000); }; } public function getTurnLimit(lvl:int):int{ return ((12 + (lvl / 4))); } public function get intro_canvas():Canvas{ return (this._879704715intro_canvas); } public function get key_listener():Text{ return (this._1043131756key_listener); } public function get play_button():OliverButton{ return (this._910666083play_button); } public function get mainmenu():MainMenu{ return (this._7694696mainmenu); } public function set endgame(_embed_mxml_assets_crosshairs_gif_1406757933:EndGame):void{ var _local2:Object = this._1606684851endgame; if (_local2 !== _embed_mxml_assets_crosshairs_gif_1406757933){ this._1606684851endgame = _embed_mxml_assets_crosshairs_gif_1406757933; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "endgame", _local2, _embed_mxml_assets_crosshairs_gif_1406757933)); }; } public function get super_canvas():Canvas{ return (this._1923396252super_canvas); } public function get main_canvas():Canvas{ return (this._1208927586main_canvas); } public function __ur_arrow_creationComplete(event:FlexEvent):void{ ur_arrow.setSources(arrow1, arrow1_mo, null, true); } public function set cursor(_embed_mxml_assets_crosshairs_gif_1406757933:Image):void{ var _local2:Object = this._1349119146cursor; if (_local2 !== _embed_mxml_assets_crosshairs_gif_1406757933){ this._1349119146cursor = _embed_mxml_assets_crosshairs_gif_1406757933; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "cursor", _local2, _embed_mxml_assets_crosshairs_gif_1406757933)); }; } public function set map(_embed_mxml_assets_crosshairs_gif_1406757933:SingleSourceComposite):void{ var _local2:Object = this._107868map; if (_local2 !== _embed_mxml_assets_crosshairs_gif_1406757933){ this._107868map = _embed_mxml_assets_crosshairs_gif_1406757933; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "map", _local2, _embed_mxml_assets_crosshairs_gif_1406757933)); }; } private function onConnectError(status:String):void{ trace("SETTING SCORES ENABLED FALSE!"); scores_enabled = false; } public function get under_effects():Canvas{ return (this._4197019under_effects); } public function get options():OptionsBar{ return (this._1249474914options); } private function chain_lightning():void{ var x_from:int; var y_from:int; var x_to:int; var y_to:int; var dist:int; var min_dist:int; var current_shortest:int; var j:int; bolts = new Array(0); var potential_targets:Array = Shuffler.shuffle(basilisks.concat(golems)); targets = new Array(Math.min(potential_targets.length, (int(((basilisks.length + golems.length) / 6)) + 2))); trace(("number of targets is: " + targets.length)); if (targets.length == 0){ cancelSpell(); return; }; item_used.confirmSpell(); var col:ArrayCollection = new ArrayCollection(potential_targets); var i:int; while (i < targets.length) { if (i == 0){ x_from = player.x_pos; y_from = player.y_pos; } else { x_from = OliverSprite(targets[(i - 1)]).x_pos; y_from = OliverSprite(targets[(i - 1)]).y_pos; }; min_dist = 100; j = 0; while (j < (targets.length - i)) { x_to = OliverSprite(potential_targets[j]).x_pos; y_to = OliverSprite(potential_targets[j]).y_pos; dist = ((2 * Math.max(Math.abs((x_from - x_to)), Math.abs((y_from - y_to)))) + Math.min(Math.abs((x_from - x_to)), Math.abs((y_from - y_to)))); if (dist < min_dist){ min_dist = dist; current_shortest = j; }; j++; }; targets[i] = potential_targets[current_shortest]; col.removeItemAt(current_shortest); if (i == 0){ bolts.push(new LightningBolt(player.x_pos, player.y_pos, OliverSprite(targets[i]).x_pos, OliverSprite(targets[i]).y_pos, true)); } else { bolts.push(new LightningBolt(OliverSprite(targets[(i - 1)]).x_pos, OliverSprite(targets[(i - 1)]).y_pos, OliverSprite(targets[i]).x_pos, OliverSprite(targets[i]).y_pos, false)); }; over_effects.addChild(bolts[i]); i++; }; current_iteration = 0; player.changeFacing(getDir((OliverSprite(targets[0]).x_pos - player.x_pos), (OliverSprite(targets[0]).y_pos - player.y_pos))); OliverSprite(targets[0]).playAnimation(3); spell_effect = true; } private function earthquake():void{ var possibilities:Array; var pt:Point; var weight:int; var contents:Object; var x:int; var y:int; var j:int; var k:int; current_iteration = 0; targets = new Array(0); possibilities = new Array(0); var i = -5; while (i <= 5) { j = -5; while (j <= 5) { x = (player.x_pos + i); y = (player.y_pos + j); if ((((((((((((i == 0)) && ((j == 0)))) || ((x > 14)))) || ((x < 0)))) || ((y > 14)))) || ((y < 0)))){ } else { contents = getSquareContents(x, y); if ((((((((contents is Golem)) || ((contents is Trap)))) || ((contents is Rock)))) || ((contents is Spirit)))){ } else { pt = new Point(x, y); weight = Math.max(0, ((5 - Math.max(Math.abs(i), Math.abs(j))) - (Math.min(Math.abs(i), Math.abs(j)) / 2))); k = 0; while (k <= weight) { possibilities.push(pt); k++; }; }; }; j++; }; i++; }; possibilities = Shuffler.shuffle(possibilities); var l:int; while (l < 8) { if (possibilities.length == 0){ break; }; targets.push(possibilities.pop()); l++; }; sparkle_shower.play(player.x_pos, player.y_pos); animation = setInterval(doShake, 25); spell_effect = true; item_used.confirmSpell(); sound_channel_1.playSound("quake"); } private function cancelSpell():void{ player_movable = true; } public function startTimestop():void{ timestop_overlay.visible = true; timestop_overlay.alpha = (timestop_overlay.alpha + 0.08); if (timestop_overlay.alpha > 0.5){ clearInterval(timestop_anim); }; } public function set up_arrow(_embed_mxml_assets_crosshairs_gif_1406757933:OliverButton):void{ var _local2:Object = this._1179403621up_arrow; if (_local2 !== _embed_mxml_assets_crosshairs_gif_1406757933){ this._1179403621up_arrow = _embed_mxml_assets_crosshairs_gif_1406757933; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "up_arrow", _local2, _embed_mxml_assets_crosshairs_gif_1406757933)); }; } public function get ui():Image{ return (this._3732ui); } public function set first_play(_embed_mxml_assets_crosshairs_gif_1406757933:Canvas):void{ var _local2:Object = this._160915613first_play; if (_local2 !== _embed_mxml_assets_crosshairs_gif_1406757933){ this._160915613first_play = _embed_mxml_assets_crosshairs_gif_1406757933; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "first_play", _local2, _embed_mxml_assets_crosshairs_gif_1406757933)); }; } public function petrify(dir:int):void{ if (dir == -1){ cancelSpell(); return; }; var target:Point = new Point(player.x_pos, player.y_pos); stopDirSelect(); switch (dir){ case 0: target.y--; break; case 1: target.y--; target.x++; break; case 2: target.x++; break; case 3: target.y++; target.x++; break; case 4: target.y++; break; case 5: target.x--; target.y++; break; case 6: target.x--; break; case 7: target.x--; target.y--; break; }; if ((((((((target.x >= 15)) || ((target.x < 0)))) || ((target.y >= 15)))) || ((target.y < 0)))){ cancelSpell(); return; }; var bas:Object = getSquareContents(target.x, target.y); if ((((bas == null)) || (!((bas is Basilisk))))){ cancelSpell(); return; }; Basilisk(bas).playAnimation(3); var new_rock:Rock = new Rock(target.x, target.y, true); sprite_canvas.addChildAt(new_rock, 0); rocks.push(new_rock); item_used.confirmSpell(); sound_channel_1.playSound("golem_create"); nextPhase(500, false); } public function fadeTimestop():void{ timestop_overlay.alpha = (timestop_overlay.alpha - 0.08); if (timestop_overlay.alpha <= 0){ timestop_overlay.visible = false; clearInterval(timestop_anim); }; } private function doMove(dir:int):void{ if (dir_select != null){ dir_select(dir); return; }; if (!player_movable){ return; }; player_movable = false; if (dir == -1){ pass_button.flash(); animationCallback(player); } else { movePlayer(dir); }; } public function get gameover_screen():GameOver{ return (this._1462742267gameover_screen); } public function __down_arrow_creationComplete(event:FlexEvent):void{ down_arrow.setSources(arrow4, arrow4_mo, null, true); } private function placeBasilisk(stage:int):Basilisk{ var x_pos:int; var y_pos:int; var facing:int; var bas:Basilisk; var okay:Boolean; var min_dist:int = Math.max((4 - int((stage / 2))), 2); while (!(okay)) { x_pos = (Math.random() * 15); y_pos = (Math.random() * 15); okay = true; if ((((Math.abs((x_pos - 7)) < min_dist)) && ((Math.abs((y_pos - 7)) < min_dist)))){ okay = false; } else { for each (bas in basilisks) { if ((((bas.x_pos == x_pos)) && ((bas.y_pos == y_pos)))){ okay = false; break; }; }; }; }; facing = getDir((7 - x_pos), (7 - y_pos)); return (new Basilisk(x_pos, y_pos, facing)); } private function generateLevel(level:int):void{ var current_basilisk:Basilisk; generateMap(); player.teleport(7, 7, false); basilisks = new Array(0); spirits = new Array(0); rocks = new Array(0); golems = new Array(0); traps = new Array(0); initial_basilisks = (3 + int((level * 1.5))); var i:int; while (i < initial_basilisks) { current_basilisk = placeBasilisk((level / 5)); basilisks.push(current_basilisk); sprite_canvas.addChild(current_basilisk); i++; }; level_intro.show(initial_basilisks, getTurnLimit(level)); } public function get interface_canvas():Canvas{ return (this._2053938402interface_canvas); } public function get pass_button():OliverButton{ return (this._1209613088pass_button); } public function __ur_arrow_click(event:MouseEvent):void{ doMove(1); } private function teleport(x:int=-1, y:int=-1):void{ var destination_point:Point; var i:int; var j:int; var valid_squares:Array = new Array(0); if (x != -1){ if (getSquareContents(x, y) != null){ cancelSpell(); return; }; player.teleport(x, y, true); item_used.confirmSpell(); } else { i = 0; while (i < 15) { j = 0; while (j < 15) { if ((((((getSquareContents(i, j) == null)) && ((Math.max(Math.abs((i - player.x_pos)), Math.abs((j - player.y_pos))) >= 4)))) && (((Math.abs((i - player.x_pos)) + Math.abs((j - player.y_pos))) >= 6)))){ valid_squares.push(new Point(i, j)); }; j++; }; i++; }; if (valid_squares.length == 0){ cancelSpell(); return; }; destination_point = Point(valid_squares[int((Math.random() * valid_squares.length))]); player.teleport(destination_point.x, destination_point.y, true); item_used.confirmSpell(); }; nextPhase(700, false); } public function set dl_arrow(_embed_mxml_assets_crosshairs_gif_1406757933:OliverButton):void{ var _local2:Object = this._1933615726dl_arrow; if (_local2 !== _embed_mxml_assets_crosshairs_gif_1406757933){ this._1933615726dl_arrow = _embed_mxml_assets_crosshairs_gif_1406757933; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "dl_arrow", _local2, _embed_mxml_assets_crosshairs_gif_1406757933)); }; } public function doneTurn():void{ var bas:Basilisk; var gol:Golem; var spr:Spirit; var rock:Rock; if (exploding_traps.length > 0){ while (exploding_traps.length > 0) { detonateTrap(Trap(exploding_traps.pop())); }; return; }; turns++; if (player_dead){ gameOver(); return; }; if (basilisks.length == 0){ player_movable = false; if (mode == SIMPLE){ increaseScore(simple_interlevel.show(level, score, initial_basilisks, rocks.length, turns, Math.max(turns_meditated, max_turns_meditated), amulet.used, wand.used, scroll.used)); } else { if (!scroll.used){ var _local5 = scrolls; var _local6 = scroll.spell; var _local7 = (_local5[_local6] + 1); _local5[_local6] = _local7; }; increaseScore(interlevel.show(level, score, initial_basilisks, golems_killed, spirits_captured, rocks.length, turns, Math.max(turns_meditated, max_turns_meditated), amulet.used, wand.used, scroll.used)); }; return; } else { if (lose_stoneskin){ lose_stoneskin = false; player.toggleStone(); }; amulet.recharge(); for each (bas in basilisks) { bas.standby(); }; for each (gol in golems) { gol.standby(); }; for each (spr in spirits) { spr.standby(); }; for each (rock in rocks) { rock.standby(); }; startTurn(); }; } public function get help():Help{ return (this._3198785help); } public function set first_play_button(_embed_mxml_assets_crosshairs_gif_1406757933:DynamicButton):void{ var _local2:Object = this._623050866first_play_button; if (_local2 !== _embed_mxml_assets_crosshairs_gif_1406757933){ this._623050866first_play_button = _embed_mxml_assets_crosshairs_gif_1406757933; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "first_play_button", _local2, _embed_mxml_assets_crosshairs_gif_1406757933)); }; } public function get endgame():EndGame{ return (this._1606684851endgame); } public function set score_number(_embed_mxml_assets_crosshairs_gif_1406757933:NumberRenderer):void{ var _local2:Object = this._1529835926score_number; if (_local2 !== _embed_mxml_assets_crosshairs_gif_1406757933){ this._1529835926score_number = _embed_mxml_assets_crosshairs_gif_1406757933; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "score_number", _local2, _embed_mxml_assets_crosshairs_gif_1406757933)); }; } public function playMusic(loop_delay:int):void{ if (looptime != 0){ clearInterval(looptime); }; looptime = setInterval(playMusic, loop_delay, loop_delay); if (current_music){ music_channel2 = music2.play(); music_channel2.soundTransform = new SoundTransform((music_on) ? (music_vol * SoundManager.volume) : 0); current_music = false; } else { music_channel1 = music1.play(); music_channel1.soundTransform = new SoundTransform((music_on) ? (music_vol * SoundManager.volume) : 0); current_music = true; }; } public function get cursor():Image{ return (this._1349119146cursor); } private function doSpiritCreation():Boolean{ var sp:Spirit; if (mode == SIMPLE){ return (false); }; var x:int = (Math.random() * 15); var y:int = (Math.random() * 15); if ((((((int((Math.random() * 100)) < (((turn_target - turns) - spirits.length) * 8))) && ((getSquareContents(x, y) == null)))) && ((getAdjacentRock(x, y) == null)))){ trace("adding new spirit"); sp = new Spirit(x, y); spirits.push(sp); sprite_canvas.addChild(sp); return (true); }; return (false); } public function destroySprite(sprite:Object):void{ var col:ArrayCollection; if ((sprite is Basilisk)){ col = new ArrayCollection(basilisks); } else { if ((sprite is Rock)){ col = new ArrayCollection(rocks); } else { if ((sprite is Spirit)){ col = new ArrayCollection(spirits); Spirit(sprite).stop(); } else { if ((sprite is Rock)){ col = new ArrayCollection(rocks); } else { if ((sprite is Golem)){ col = new ArrayCollection(golems); golems_killed++; } else { if ((sprite is Trap)){ col = new ArrayCollection(traps); }; }; }; }; }; }; if (col.getItemIndex(sprite) >= 0){ col.removeItemAt(col.getItemIndex(sprite)); }; if (DisplayObject(sprite).parent != null){ DisplayObject(sprite).parent.removeChild(DisplayObject(sprite)); }; } public function stoneskin():void{ if (player.stoneskin){ cancelSpell(); return; }; player.toggleStone(); item_used.confirmSpell(); sound_channel_1.playSound("rock_create"); sound_channel_2.playSound("trap"); sparkle_shower.play(player.x_pos, player.y_pos); nextPhase(350, false); } public function set sparkle_shower(_embed_mxml_assets_crosshairs_gif_1406757933:SparkleShower):void{ var _local2:Object = this._387880883sparkle_shower; if (_local2 !== _embed_mxml_assets_crosshairs_gif_1406757933){ this._387880883sparkle_shower = _embed_mxml_assets_crosshairs_gif_1406757933; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "sparkle_shower", _local2, _embed_mxml_assets_crosshairs_gif_1406757933)); }; } public function get first_play():Canvas{ return (this._160915613first_play); } private function detonateTrap(trap:Trap, detonate_spell:Boolean=false):void{ var contents:Object; var j:int; var num_bolts:int; var legal_basilisks:Array; var bas:Basilisk; var closest:Basilisk; var dist:int; var col:ArrayCollection; under_effects.addChild(new Explosion(trap.x_pos, trap.y_pos)); destroySprite(trap); var i = -1; while (i <= 1) { j = -1; while (j <= 1) { contents = getSquareContents((trap.x_pos + i), (trap.y_pos + j)); if ((((((i == 0)) && ((j == 0)))) && ((contents is Golem)))){ Golem(contents).playAnimation(3); } else { if ((contents is Basilisk)){ Basilisk(contents).playAnimation(4); } else { if ((contents is Spirit)){ Spirit(contents).fadeOut(3); } else { if ((contents is Player)){ player_dead = true; }; }; }; }; j++; }; i++; }; if (!detonate_spell){ num_bolts = (int((Math.random() * 2)) + 1); legal_basilisks = new Array(0); for each (bas in basilisks) { if (!bas.busy){ legal_basilisks.push(bas); }; }; trace(((("bolts: " + num_bolts) + " targets: ") + legal_basilisks.length)); col = new ArrayCollection(legal_basilisks); while ((((num_bolts > 0)) && ((legal_basilisks.length > 0)))) { dist = 100; for each (bas in legal_basilisks) { if (Math.max(Math.abs((bas.x_pos - trap.x_pos)), Math.abs((bas.y_pos - trap.y_pos))) < dist){ closest = bas; dist = Math.max(Math.abs((bas.x_pos - trap.x_pos)), Math.abs((bas.y_pos - trap.y_pos))); }; }; closest.playAnimation(4); under_effects.addChild(new LightningBolt(trap.x_pos, trap.y_pos, closest.x_pos, closest.y_pos, true, true)); col.removeItemAt(col.getItemIndex(closest)); spell_effect = true; num_bolts--; }; }; sound_channel_1.playSound("fireball"); if (!detonate_spell){ nextPhase(500, true); }; } public function startGame(mode:int):void{ var choice:int; if (firstgame){ MochiServices.connect("d08e60ca10d1534b", stage, onConnectError); firstgame = false; }; if (cookie.data.played != "true"){ first_play.visible = true; }; gameover_screen.preloadAds(); Log.Play(); this.mode = mode; if (mode == DELUXE){ num_spells = 14; } else { num_spells = 7; }; wand.resetCharges(); if ((((mode == SIMPLE)) || ((mode == NORMAL)))){ amulet.changeSpell(TELEPORT); wand.changeSpell(FIRE_SHIELD); scroll.changeSpell(DISINTEGRATE); } else { do { choice = int((Math.random() * num_spells)); } while (spell_costs[choice] >= 6); wand.changeSpell(choice); do { choice = int((Math.random() * num_spells)); } while ((((((((choice == wand.spell)) || ((spell_costs[choice] >= 6)))) || ((choice == REPULSION)))) || ((choice == DETONATE)))); amulet.changeSpell(choice); if (((((((!((amulet.spell == TELEPORT))) && (!((amulet.spell == JUMP))))) && (!((wand.spell == TELEPORT))))) && (!((wand.spell == JUMP))))){ choice = ((Math.random() < 0.6)) ? TELEPORT : JUMP; } else { do { choice = int((Math.random() * num_spells)); } while ((((((choice == wand.spell)) || ((choice == amulet.spell)))) || ((spell_costs[choice] >= 6)))); }; scroll.changeSpell(choice); }; interlevel.wand_chooser.setSpell(wand.spell); interlevel.amulet_chooser.setSpell(amulet.spell); interlevel.rewards.reset(); score = 0; var i:int; while (i < num_spells) { scrolls[i] = 0; if (mode == NORMAL){ spell_mastery[i] = 2; } else { if (i == wand.spell){ spell_mastery[i] = 1; } else { if (i == amulet.spell){ spell_mastery[i] = 2; } else { spell_mastery[i] = 0; }; }; }; i++; }; player = new Player(7, 7, 0); player_canvas.removeAllChildren(); player_canvas.addChild(player); in_progress = true; player_dead = false; score_number.setNumber(0); startLevel(true); } public function __dr_arrow_click(event:MouseEvent):void{ doMove(3); } public function get first_play_button():DynamicButton{ return (this._623050866first_play_button); } override public function initialize():void{ mx_internal::setDocumentDescriptor(_documentDescriptor_); super.initialize(); } public function set intro_image(_embed_mxml_assets_crosshairs_gif_1406757933:Image):void{ var _local2:Object = this._311357896intro_image; if (_local2 !== _embed_mxml_assets_crosshairs_gif_1406757933){ this._311357896intro_image = _embed_mxml_assets_crosshairs_gif_1406757933; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "intro_image", _local2, _embed_mxml_assets_crosshairs_gif_1406757933)); }; } public function queryEnemiesAdjacent(x:int, y:int):Boolean{ var j:int; var bas:Basilisk; var gol:Golem; var i = -1; while (i <= 1) { j = -1; while (j <= 1) { if ((((((((((((i == 0)) && ((j == 0)))) || (((x + i) < 0)))) || (((x + i) > 14)))) || (((y + j) < 0)))) || (((y + j) > 14)))){ } else { for each (bas in basilisks) { if ((((bas.x_pos == (x + i))) && ((bas.y_pos == (y + j))))){ return (true); }; }; for each (gol in golems) { if ((((gol.x_pos == (x + i))) && ((gol.y_pos == (y + j))))){ return (true); }; }; }; j++; }; i++; }; return (false); } public function set left_arrow(_embed_mxml_assets_crosshairs_gif_1406757933:OliverButton):void{ var _local2:Object = this._1850796591left_arrow; if (_local2 !== _embed_mxml_assets_crosshairs_gif_1406757933){ this._1850796591left_arrow = _embed_mxml_assets_crosshairs_gif_1406757933; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "left_arrow", _local2, _embed_mxml_assets_crosshairs_gif_1406757933)); }; } private function generateMap():void{ var row_array:Array; var type:int; var row:int; var column:int; var i:int; var j:int; var type_array:Array = new Array(8); i = 0; while (i < 8) { row_array = new Array(8); j = 0; while (j < 8) { type = (Math.random() * 90); if (type > 87){ type = 3; } else { if (type > 83){ type = 8; } else { if (type > 79){ type = 10; } else { if (type > 10){ type = 0; }; }; }; }; row_array[j] = type; j++; }; type_array[i] = row_array; i++; }; i = 0; while (i < 15) { j = 0; while (j < 15) { column = Math.min(j, (14 - j)); row = Math.min(i, (14 - i)); type = int(type_array[row][column]); map.copyPixels((35 * type), 0, 35, 35, ((35 * j) + 1), ((35 * i) + 1)); j++; }; i++; }; } public function get sparkle_shower():SparkleShower{ return (this._387880883sparkle_shower); } public function __pass_button_click(event:MouseEvent):void{ doMove(-1); } public function set ur_arrow(_embed_mxml_assets_crosshairs_gif_1406757933:OliverButton):void{ var _local2:Object = this._1340556313ur_arrow; if (_local2 !== _embed_mxml_assets_crosshairs_gif_1406757933){ this._1340556313ur_arrow = _embed_mxml_assets_crosshairs_gif_1406757933; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "ur_arrow", _local2, _embed_mxml_assets_crosshairs_gif_1406757933)); }; } private function stoneWall(dir:int):void{ stopDirSelect(); if (dir == -1){ cancelSpell(); return; }; var x:int = (player.x_pos + xStep(dir)); var y:int = (player.y_pos + yStep(dir)); if ((((((((((x < 0)) || ((x > 14)))) || ((y < 0)))) || ((y > 14)))) || (!((getSquareContents(x, y) == null))))){ cancelSpell(); return; }; var new_rock:Rock = new Rock((player.x_pos + xStep(dir)), (player.y_pos + yStep(dir)), true); sprite_canvas.addChildAt(new_rock, 0); rocks.push(new_rock); player.changeFacing(dir); sound_channel_1.playSound("golem_create"); item_used.confirmSpell(); nextPhase(350, false); } public function __level_number_creationComplete(event:FlexEvent):void{ level_number.setSize(4, 2, 3); } public function set level_intro(_embed_mxml_assets_crosshairs_gif_1406757933:LevelIntro):void{ var _local2:Object = this._2114957809level_intro; if (_local2 !== _embed_mxml_assets_crosshairs_gif_1406757933){ this._2114957809level_intro = _embed_mxml_assets_crosshairs_gif_1406757933; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "level_intro", _local2, _embed_mxml_assets_crosshairs_gif_1406757933)); }; } public function gameOver():void{ player_movable = false; sound_channel_1.playSound("die"); increaseScore(gameover_screen.show(score, (initial_basilisks - basilisks.length), golems_killed, spirits_captured)); } public function get ur_arrow():OliverButton{ return (this._1340556313ur_arrow); } public function animationCallback(sprite:Object, action:int=1):void{ var create_rock:Boolean; var trap:Trap; var gol:Golem; var rock:Rock; var trap_detonated:Boolean; if (sprite == player){ moveEnemies(); } else { if ((sprite is OliverSprite)){ for each (trap in traps) { if ((((trap.x_pos == sprite.x_pos)) && ((trap.y_pos == sprite.y_pos)))){ trap_detonated = true; if (!trap.exploding){ trap.exploding = true; exploding_traps.push(trap); }; }; }; } else { if ((sprite is Spirit)){ for each (trap in traps) { if ((((trap.x_pos == sprite.x_pos)) && ((trap.y_pos == sprite.y_pos)))){ trap_detonated = true; if (!trap.exploding){ trap.exploding = true; exploding_traps.push(trap); }; }; }; }; }; }; if ((sprite is Basilisk)){ if (action == 3){ destroySprite(sprite); } else { if (action == 2){ if (!trap_detonated){ create_rock = true; if ((((sprite.x_pos == player.x_pos)) && ((sprite.y_pos == player.y_pos)))){ create_rock = false; } else { for each (gol in golems) { if ((((gol.x_pos == sprite.x_pos)) && ((gol.y_pos == sprite.y_pos)))){ create_rock = false; break; }; }; }; if (create_rock){ for each (rock in rocks) { if ((((rock.x_pos == sprite.x_pos)) && ((rock.y_pos == sprite.y_pos)))){ create_rock = false; break; }; }; }; if (create_rock){ rocks.push(new Rock(sprite.x_pos, sprite.y_pos)); sprite_canvas.addChildAt(rocks[(rocks.length - 1)], 0); }; }; destroySprite(sprite); } else { if (action == 1){ if ((((sprite.x_pos == player.x_pos)) && ((sprite.y_pos == player.y_pos)))){ if (!player.stoneskin){ player_dead = true; }; return; } else { for each (rock in rocks) { if ((((rock.x_pos == sprite.x_pos)) && ((rock.y_pos == sprite.y_pos)))){ destroySprite(sprite); break; }; }; }; } else { if (action == 4){ destroySprite(sprite); }; }; }; }; } else { if ((sprite is Rock)){ if (action == 0){ destroySprite(sprite); } else { if (action == 2){ destroySprite(sprite); } else { if (action == 3){ destroySprite(sprite); } else { if (action == -2){ destroySprite(Rock(sprite).gol); }; }; }; }; } else { if ((sprite is Spirit)){ if (action == 2){ destroySprite(sprite); } else { if (action == 3){ destroySprite(sprite); } else { if (action == 4){ destroySprite(sprite); }; }; }; } else { if ((sprite is Golem)){ if (action == 1){ if ((((sprite.x_pos == player.x_pos)) && ((sprite.y_pos == player.y_pos)))){ player_dead = true; return; }; } else { if (action == 2){ destroySprite(sprite); if (!trap_detonated){ create_rock = true; for each (rock in rocks) { if ((((rock.x_pos == sprite.x_pos)) && ((rock.y_pos == sprite.y_pos)))){ create_rock = false; break; }; }; if (create_rock){ rocks.push(new Rock(sprite.x_pos, sprite.y_pos)); sprite_canvas.addChildAt(rocks[(rocks.length - 1)], 0); }; }; } else { if (action == 3){ destroySprite(sprite); }; }; }; }; }; }; }; } public function doneSpellEffect(animation:SimpleAnimation, remove:Boolean=false):void{ spell_effect = false; if (((remove) && (!((animation.parent == null))))){ animation.parent.removeChild(animation); }; } public function startTurn():void{ clearInterval(move_timer); if (meditating){ if (queryEnemiesAdjacent(player.x_pos, player.y_pos)){ meditating = false; if (turns_meditated > max_turns_meditated){ max_turns_meditated = turns_meditated; }; turns_meditated = 0; } else { pause = setInterval(autoPass, 50); return; }; }; player_movable = true; player_moved = false; if (command_buffer.length > 0){ keyPress(KeyboardEvent(command_buffer.shift())); }; add_to_buffer = false; key_listener.setFocus(); } private static function getDir(x_change:int, y_change:int):int{ if (x_change < 0){ if (y_change < 0){ return (7); }; if (y_change == 0){ return (6); }; return (5); //unresolved jump }; if (x_change == 0){ if (y_change < 0){ return (0); }; return (4); //unresolved jump }; if (y_change < 0){ return (1); }; if (y_change == 0){ return (2); }; return (3); } public static function xStep(dir:int):int{ if ((((((dir == 1)) || ((dir == 2)))) || ((dir == 3)))){ return (1); }; if ((((dir == 0)) || ((dir == 4)))){ return (0); }; return (-1); } public static function yStep(dir:int):int{ if ((((((dir == 0)) || ((dir == 1)))) || ((dir == 7)))){ return (-1); }; if ((((dir == 2)) || ((dir == 6)))){ return (0); }; return (1); } } }//package
Section 410
//Oliver__embed_mxml_assets_crosshairs_gif_1406757933 (Oliver__embed_mxml_assets_crosshairs_gif_1406757933) package { import mx.core.*; public class Oliver__embed_mxml_assets_crosshairs_gif_1406757933 extends BitmapAsset { } }//package
Section 411
//Oliver__embed_mxml_assets_first_play_png_805245507 (Oliver__embed_mxml_assets_first_play_png_805245507) package { import mx.core.*; public class Oliver__embed_mxml_assets_first_play_png_805245507 extends BitmapAsset { } }//package
Section 412
//Oliver__embed_mxml_assets_timestop_overlay_png_358613933 (Oliver__embed_mxml_assets_timestop_overlay_png_358613933) package { import mx.core.*; public class Oliver__embed_mxml_assets_timestop_overlay_png_358613933 extends BitmapAsset { } }//package
Section 413
//Oliver__embed_mxml_assets_ui_mockup_png_749493075 (Oliver__embed_mxml_assets_ui_mockup_png_749493075) package { import mx.core.*; public class Oliver__embed_mxml_assets_ui_mockup_png_749493075 extends BitmapAsset { } }//package
Section 414
//Oliver_arrow0 (Oliver_arrow0) package { import mx.core.*; public class Oliver_arrow0 extends BitmapAsset { } }//package
Section 415
//Oliver_arrow0_mo (Oliver_arrow0_mo) package { import mx.core.*; public class Oliver_arrow0_mo extends BitmapAsset { } }//package
Section 416
//Oliver_arrow1 (Oliver_arrow1) package { import mx.core.*; public class Oliver_arrow1 extends BitmapAsset { } }//package
Section 417
//Oliver_arrow1_mo (Oliver_arrow1_mo) package { import mx.core.*; public class Oliver_arrow1_mo extends BitmapAsset { } }//package
Section 418
//Oliver_arrow2 (Oliver_arrow2) package { import mx.core.*; public class Oliver_arrow2 extends BitmapAsset { } }//package
Section 419
//Oliver_arrow2_mo (Oliver_arrow2_mo) package { import mx.core.*; public class Oliver_arrow2_mo extends BitmapAsset { } }//package
Section 420
//Oliver_arrow3 (Oliver_arrow3) package { import mx.core.*; public class Oliver_arrow3 extends BitmapAsset { } }//package
Section 421
//Oliver_arrow3_mo (Oliver_arrow3_mo) package { import mx.core.*; public class Oliver_arrow3_mo extends BitmapAsset { } }//package
Section 422
//Oliver_arrow4 (Oliver_arrow4) package { import mx.core.*; public class Oliver_arrow4 extends BitmapAsset { } }//package
Section 423
//Oliver_arrow4_mo (Oliver_arrow4_mo) package { import mx.core.*; public class Oliver_arrow4_mo extends BitmapAsset { } }//package
Section 424
//Oliver_arrow5 (Oliver_arrow5) package { import mx.core.*; public class Oliver_arrow5 extends BitmapAsset { } }//package
Section 425
//Oliver_arrow5_mo (Oliver_arrow5_mo) package { import mx.core.*; public class Oliver_arrow5_mo extends BitmapAsset { } }//package
Section 426
//Oliver_arrow6 (Oliver_arrow6) package { import mx.core.*; public class Oliver_arrow6 extends BitmapAsset { } }//package
Section 427
//Oliver_arrow6_mo (Oliver_arrow6_mo) package { import mx.core.*; public class Oliver_arrow6_mo extends BitmapAsset { } }//package
Section 428
//Oliver_arrow7 (Oliver_arrow7) package { import mx.core.*; public class Oliver_arrow7 extends BitmapAsset { } }//package
Section 429
//Oliver_arrow7_mo (Oliver_arrow7_mo) package { import mx.core.*; public class Oliver_arrow7_mo extends BitmapAsset { } }//package
Section 430
//Oliver_bg_texture (Oliver_bg_texture) package { import mx.core.*; public class Oliver_bg_texture extends BitmapAsset { } }//package
Section 431
//Oliver_dir_arrows_src (Oliver_dir_arrows_src) package { import mx.core.*; public class Oliver_dir_arrows_src extends BitmapAsset { } }//package
Section 432
//Oliver_dis_bolt (Oliver_dis_bolt) package { import mx.core.*; public class Oliver_dis_bolt extends BitmapAsset { } }//package
Section 433
//Oliver_dis_bolt_diag (Oliver_dis_bolt_diag) package { import mx.core.*; public class Oliver_dis_bolt_diag extends BitmapAsset { } }//package
Section 434
//Oliver_fire_shield (Oliver_fire_shield) package { import mx.core.*; public class Oliver_fire_shield extends BitmapAsset { } }//package
Section 435
//Oliver_med (Oliver_med) package { import mx.core.*; public class Oliver_med extends BitmapAsset { } }//package
Section 436
//Oliver_med_mo (Oliver_med_mo) package { import mx.core.*; public class Oliver_med_mo extends BitmapAsset { } }//package
Section 437
//Oliver_music_source (Oliver_music_source) package { import mx.core.*; public class Oliver_music_source extends SoundAsset { } }//package
Section 438
//Oliver_pass (Oliver_pass) package { import mx.core.*; public class Oliver_pass extends BitmapAsset { } }//package
Section 439
//Oliver_pass_mo (Oliver_pass_mo) package { import mx.core.*; public class Oliver_pass_mo extends BitmapAsset { } }//package
Section 440
//Oliver_play (Oliver_play) package { import mx.core.*; public class Oliver_play extends BitmapAsset { } }//package
Section 441
//Oliver_play_mo (Oliver_play_mo) package { import mx.core.*; public class Oliver_play_mo extends BitmapAsset { } }//package
Section 442
//Oliver_splash_src (Oliver_splash_src) package { import mx.core.*; import flash.utils.*; public class Oliver_splash_src extends MovieClipLoaderAsset { public var dataClass:Class; private static var bytes:ByteArray = null; public function Oliver_splash_src(){ dataClass = Oliver_splash_src_dataClass; super(); initialWidth = (8000 / 20); initialHeight = (0x1900 / 20); } override public function get movieClipData():ByteArray{ if (bytes == null){ bytes = ByteArray(new dataClass()); }; return (bytes); } } }//package
Section 443
//Oliver_splash_src_dataClass (Oliver_splash_src_dataClass) package { import mx.core.*; public class Oliver_splash_src_dataClass extends ByteArrayAsset { } }//package
Section 444
//Oliver_tileset (Oliver_tileset) package { import mx.core.*; public class Oliver_tileset extends BitmapAsset { } }//package
Section 445
//OliverButton (OliverButton) package { import flash.events.*; import mx.controls.*; import flash.utils.*; public class OliverButton extends Image { private var animation:uint; private var num_flashes; public var active:Boolean; private var mo_src:Class; private var off_src:Class; private var nrm_src:Class; public function OliverButton(){ super(); this.addEventListener("mouseOver", ___OliverButton_Image1_mouseOver); this.addEventListener("mouseOut", ___OliverButton_Image1_mouseOut); } public function ___OliverButton_Image1_mouseOut(event:MouseEvent):void{ if (active){ source = nrm_src; }; } public function turnOn():void{ trace("button on"); active = true; if (animation == 0){ if ((((((((mouseX >= 0)) && ((mouseX < width)))) && ((mouseY >= 0)))) && ((mouseY < height)))){ source = mo_src; } else { source = nrm_src; }; }; } public function ___OliverButton_Image1_mouseOver(event:MouseEvent):void{ if (active){ source = mo_src; }; } override public function initialize():void{ super.initialize(); } public function turnOff():void{ trace("button off"); active = false; if (animation == 0){ source = off_src; }; } public function setSources(nrm:Class, mo:Class, off:Class, initially_active:Boolean):void{ nrm_src = nrm; mo_src = mo; off_src = off; active = initially_active; animation = 0; if (active){ source = nrm_src; } else { source = off_src; }; } private function changeImg():void{ if (num_flashes == 2){ stopFlashing(); } else { num_flashes++; if (source == nrm_src){ source = mo_src; } else { source = nrm_src; }; }; } private function stopFlashing():void{ clearInterval(animation); animation = 0; if (!active){ source = off_src; } else { if ((((((((mouseX >= 0)) && ((mouseX < width)))) && ((mouseY >= 0)))) && ((mouseY < width)))){ source = mo_src; } else { source = nrm_src; }; }; } public function flash():void{ if (!active){ return; }; if (animation != 0){ clearInterval(animation); }; num_flashes = 0; animation = setInterval(changeImg, 100); } } }//package
Section 446
//OliverSprite (OliverSprite) package { import mx.events.*; import mx.effects.*; import flash.utils.*; public class OliverSprite extends CroppedImage { public var busy:Boolean; private var animation:uint;// = 0 public var x_dest:int; private var suppress_done:Boolean;// = false public var x_pos:int;// = 0 public var y_pos:int;// = 0 protected var X_OFFSET:int; private var current_frame:int;// = 0 public var y_dest:int; public var facing:int;// = 0 private var reverse_animation:Boolean;// = false protected var ANIMATIONS:Array; private var slide:Move; protected var FRAME_SIZE:int; public var action:int;// = 0 protected var Y_OFFSET:int; public static var WALK:int = 1; protected static var TILE_SIZE:int = 35; protected static var FRAME_DURATION:int = 50; public static var IDLE:int = 0; public function OliverSprite(x_pos:int, y_pos:int, facing:int){ slide = new Move(this); this.facing = facing; this.x_pos = x_pos; this.y_pos = y_pos; slide.duration = (9 * FRAME_DURATION); slide.easingFunction = animationEasing; slide.target = this; slide.addEventListener(EffectEvent.EFFECT_END, doneWalk); super(((x_pos * TILE_SIZE) + X_OFFSET), ((y_pos * TILE_SIZE) + Y_OFFSET), FRAME_SIZE, FRAME_SIZE, 0, (FRAME_SIZE * facing), (8 * FRAME_SIZE), (8 * FRAME_SIZE), ANIMATIONS[0]); busy = false; } public function walk(dir:int, action:int=1):void{ if (animation != 0){ clearInterval(animation); animation = 0; }; facing = dir; moveImage(0, (dir * FRAME_SIZE)); switch (dir){ case 0: y_pos--; slide.xBy = 0; slide.yBy = -(TILE_SIZE); break; case 1: y_pos--; x_pos++; slide.xBy = TILE_SIZE; slide.yBy = -(TILE_SIZE); break; case 2: x_pos++; slide.xBy = TILE_SIZE; slide.yBy = 0; break; case 3: x_pos++; y_pos++; slide.xBy = TILE_SIZE; slide.yBy = TILE_SIZE; break; case 4: y_pos++; slide.xBy = 0; slide.yBy = TILE_SIZE; break; case 5: x_pos--; y_pos++; slide.xBy = -(TILE_SIZE); slide.yBy = TILE_SIZE; break; case 6: x_pos--; slide.xBy = -(TILE_SIZE); slide.yBy = 0; break; case 7: x_pos--; y_pos--; slide.xBy = -(TILE_SIZE); slide.yBy = -(TILE_SIZE); break; }; slide.play(); this.action = action; playAnimation(action); busy = true; } private function doneWalk(ev:EffectEvent):void{ clearInterval(animation); moveImage(0, (FRAME_SIZE * facing)); animation = 0; busy = false; Oliver.app.animationCallback(this, action); } private function animationEasing(time:int, start:Number, distance:Number, duration:int):Number{ return ((start + (distance * (time / duration)))); } protected function doneAnimation(action:int):void{ moveImage(0, (facing * FRAME_SIZE)); Oliver.app.animationCallback(this, action); busy = false; } private function changeFrame():void{ if (current_frame == 7){ clearInterval(animation); animation = 0; if (!suppress_done){ doneAnimation(action); } else { moveImage(0, (facing * FRAME_SIZE)); }; } else { current_frame++; scrollImage((reverse_animation) ? -(FRAME_SIZE) : FRAME_SIZE, 0); }; } public function changeFacing(dir:int):void{ facing = dir; moveImage(0, (facing * FRAME_SIZE)); } public function setPosition(x:int, y:int){ x_pos = x; y_pos = y; this.x = ((x_pos * TILE_SIZE) + X_OFFSET); this.y = ((y_pos * TILE_SIZE) + Y_OFFSET); } public function standby():void{ if ((((this.parent == null)) || (!(this.visible)))){ trace("Destorying invisible sprite"); Oliver.app.destroySprite(this); return; }; if (animation != 0){ trace("Cancelling incomplete animation."); clearInterval(animation); animation = 0; if ((((((this is Basilisk)) && ((((((action == 2)) || ((action == 3)))) || ((action == 4)))))) || ((((this is Golem)) && ((((action == 2)) || ((action == 3)))))))){ trace("Destroying sprite"); Oliver.app.destroySprite(this); return; }; moveImage(0, (facing * FRAME_SIZE)); }; x = ((x_pos * TILE_SIZE) + X_OFFSET); y = ((y_pos * TILE_SIZE) + Y_OFFSET); busy = false; } public function playAnimation(num:int, suppress_done:Boolean=false, reverse:Boolean=false):void{ img.source = ANIMATIONS[num]; if (animation != 0){ Oliver.app.animationCallback(this, action); clearInterval(animation); if (reverse){ moveImage((7 * FRAME_SIZE), (facing * FRAME_SIZE)); } else { moveImage(0, (facing * FRAME_SIZE)); }; }; action = (reverse) ? -(num) : num; if ((this is Golem)){ trace(("golem doing action: " + action)); }; current_frame = 0; reverse_animation = reverse; this.suppress_done = suppress_done; animation = setInterval(changeFrame, FRAME_DURATION); busy = true; } } }//package
Section 447
//OptionsBar (OptionsBar) package { import flash.display.*; import flash.geom.*; import flash.media.*; import flash.text.*; import mx.core.*; import flash.events.*; import mx.events.*; import mx.styles.*; import mx.containers.*; import mx.binding.*; import flash.utils.*; import flash.system.*; import flash.filters.*; import flash.ui.*; import flash.net.*; import flash.external.*; import flash.accessibility.*; import flash.debugger.*; import flash.errors.*; import flash.printing.*; import flash.profiler.*; import flash.xml.*; public class OptionsBar extends Canvas implements IBindingClient { private var menu_src:Class; private var _1157436946menu_button:HueShiftButton; private var _documentDescriptor_:UIComponentDescriptor; private var _810883302volume:VolumeControl; private var _1562742948more_button:HueShiftButton; mx_internal var _watchers:Array; private var _2041853480sound_check:HueShiftButton; private var _1332194002background:Class; private var check_off:Class; mx_internal var _bindingsByDestination:Object; private var _1574127214music_check:HueShiftButton; private var vol:Number; mx_internal var _bindingsBeginWithWord:Object; private var help_src:Class; mx_internal var _bindings:Array; private var check_on:Class; private var more_src:Class; private var _748083696help_button:HueShiftButton; private static var _watcherSetupUtil:IWatcherSetupUtil; public function OptionsBar(){ _documentDescriptor_ = new UIComponentDescriptor({type:Canvas, propertiesFactory:function ():Object{ return ({width:656, height:29, childDescriptors:[new UIComponentDescriptor({type:HueShiftButton, id:"music_check", events:{click:"__music_check_click"}, propertiesFactory:function ():Object{ return ({x:70, y:8}); }}), new UIComponentDescriptor({type:HueShiftButton, id:"sound_check", events:{click:"__sound_check_click"}, propertiesFactory:function ():Object{ return ({x:158, y:8}); }}), new UIComponentDescriptor({type:HueShiftButton, id:"menu_button", events:{click:"__menu_button_click", creationComplete:"__menu_button_creationComplete"}, propertiesFactory:function ():Object{ return ({x:578, y:2}); }}), new UIComponentDescriptor({type:HueShiftButton, id:"help_button", events:{click:"__help_button_click", creationComplete:"__help_button_creationComplete"}, propertiesFactory:function ():Object{ return ({x:500, y:2}); }}), new UIComponentDescriptor({type:HueShiftButton, id:"more_button", events:{click:"__more_button_click", creationComplete:"__more_button_creationComplete"}, propertiesFactory:function ():Object{ return ({x:366, y:2}); }}), new UIComponentDescriptor({type:VolumeControl, id:"volume", events:{click:"__volume_click"}, propertiesFactory:function ():Object{ return ({x:258, y:8}); }})]}); }}); _1332194002background = OptionsBar_background; check_off = OptionsBar_check_off; check_on = OptionsBar_check_on; menu_src = OptionsBar_menu_src; help_src = OptionsBar_help_src; more_src = OptionsBar_more_src; _bindings = []; _watchers = []; _bindingsByDestination = {}; _bindingsBeginWithWord = {}; super(); mx_internal::_document = this; this.width = 656; this.height = 29; this.horizontalScrollPolicy = "off"; this.verticalScrollPolicy = "off"; this.addEventListener("creationComplete", ___OptionsBar_Canvas1_creationComplete); } public function __sound_check_click(event:MouseEvent):void{ if (sound_check.source == check_on){ soundOff(); } else { soundOn(); }; } public function __volume_click(event:MouseEvent):void{ volumeChange(volume.setVolume()); } public function __more_button_click(event:MouseEvent):void{ SmileyGamerAPI.showHome(); } public function __help_button_creationComplete(event:FlexEvent):void{ help_button.source = help_src; } private function musicOff():void{ music_check.source = check_off; Oliver.app.music_on = false; if (Oliver.app.music_channel1 != null){ Oliver.app.music_channel1.soundTransform = new SoundTransform(0); }; if (Oliver.app.music_channel2 != null){ Oliver.app.music_channel2.soundTransform = new SoundTransform(0); }; } override public function initialize():void{ var target:OptionsBar; var watcherSetupUtilClass:Object; mx_internal::setDocumentDescriptor(_documentDescriptor_); var bindings:Array = _OptionsBar_bindingsSetup(); var watchers:Array = []; target = this; if (_watcherSetupUtil == null){ watcherSetupUtilClass = getDefinitionByName("_OptionsBarWatcherSetupUtil"); var _local2 = watcherSetupUtilClass; _local2["init"](null); }; _watcherSetupUtil.setup(this, function (*:String){ return (target[*]); }, bindings, watchers); var i:uint; while (i < bindings.length) { Binding(bindings[i]).execute(); i = (i + 1); }; mx_internal::_bindings = mx_internal::_bindings.concat(bindings); mx_internal::_watchers = mx_internal::_watchers.concat(watchers); super.initialize(); } private function doMenu():void{ Oliver.app.help.visible = false; if (Oliver.app.in_progress){ Oliver.app.endgame.visible = true; } else { Oliver.app.mainmenu.visible = true; }; } public function get menu_button():HueShiftButton{ return (this._1157436946menu_button); } public function __help_button_click(event:MouseEvent):void{ Oliver.app.help.showHelp(); Oliver.app.endgame.visible = false; } public function __more_button_creationComplete(event:FlexEvent):void{ more_button.source = more_src; } public function get volume():VolumeControl{ return (this._810883302volume); } private function _OptionsBar_bindingExprs():void{ var _local1:*; _local1 = background; } public function __menu_button_creationComplete(event:FlexEvent):void{ menu_button.source = menu_src; } public function set menu_button(:HueShiftButton):void{ var _local2:Object = this._1157436946menu_button; if (_local2 !== ){ this._1157436946menu_button = ; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "menu_button", _local2, )); }; } private function get background():Class{ return (this._1332194002background); } public function set sound_check(:HueShiftButton):void{ var _local2:Object = this._2041853480sound_check; if (_local2 !== ){ this._2041853480sound_check = ; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "sound_check", _local2, )); }; } public function __music_check_click(event:MouseEvent):void{ if (music_check.source == check_on){ musicOff(); } else { musicOn(); }; } public function __menu_button_click(event:MouseEvent):void{ doMenu(); } public function set more_button(:HueShiftButton):void{ var _local2:Object = this._1562742948more_button; if (_local2 !== ){ this._1562742948more_button = ; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "more_button", _local2, )); }; } public function set volume(:VolumeControl):void{ var _local2:Object = this._810883302volume; if (_local2 !== ){ this._810883302volume = ; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "volume", _local2, )); }; } private function soundOn():void{ sound_check.source = check_on; SoundManager.sound_on = true; } public function get more_button():HueShiftButton{ return (this._1562742948more_button); } public function get sound_check():HueShiftButton{ return (this._2041853480sound_check); } private function soundOff():void{ sound_check.source = check_off; SoundManager.sound_on = false; } public function set music_check(:HueShiftButton):void{ var _local2:Object = this._1574127214music_check; if (_local2 !== ){ this._1574127214music_check = ; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "music_check", _local2, )); }; } private function musicOn():void{ music_check.source = check_on; Oliver.app.music_on = true; if (Oliver.app.music_channel1 != null){ Oliver.app.music_channel1.soundTransform = new SoundTransform(SoundManager.volume); }; if (Oliver.app.music_channel2 != null){ Oliver.app.music_channel2.soundTransform = new SoundTransform(SoundManager.volume); }; } public function set help_button(:HueShiftButton):void{ var _local2:Object = this._748083696help_button; if (_local2 !== ){ this._748083696help_button = ; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "help_button", _local2, )); }; } public function ___OptionsBar_Canvas1_creationComplete(event:FlexEvent):void{ setup(); } private function volumeChange(val:Number):void{ trace(("changing volume to : " + val)); vol = val; SoundManager.volume = val; if (music_check.source == check_off){ return; }; if (Oliver.app.music_channel1 != null){ Oliver.app.music_channel1.soundTransform = new SoundTransform(val); }; if (Oliver.app.music_channel2 != null){ Oliver.app.music_channel2.soundTransform = new SoundTransform(val); }; } private function _OptionsBar_bindingsSetup():Array{ var binding:Binding; var result:Array = []; binding = new Binding(this, function ():Object{ return (background); }, function (:Object):void{ this.setStyle("backgroundImage", ); }, "this.backgroundImage"); result[0] = binding; return (result); } public function get music_check():HueShiftButton{ return (this._1574127214music_check); } public function get help_button():HueShiftButton{ return (this._748083696help_button); } private function setup():void{ music_check.source = check_on; sound_check.source = check_on; } private function set background(value:Class):void{ var oldValue:Object = this._1332194002background; if (oldValue !== value){ this._1332194002background = value; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "background", oldValue, value)); }; } public static function set watcherSetupUtil(:IWatcherSetupUtil):void{ OptionsBar._watcherSetupUtil = ; } } }//package
Section 448
//OptionsBar_background (OptionsBar_background) package { import mx.core.*; public class OptionsBar_background extends BitmapAsset { } }//package
Section 449
//OptionsBar_check_off (OptionsBar_check_off) package { import mx.core.*; public class OptionsBar_check_off extends BitmapAsset { } }//package
Section 450
//OptionsBar_check_on (OptionsBar_check_on) package { import mx.core.*; public class OptionsBar_check_on extends BitmapAsset { } }//package
Section 451
//OptionsBar_help_src (OptionsBar_help_src) package { import mx.core.*; public class OptionsBar_help_src extends BitmapAsset { } }//package
Section 452
//OptionsBar_menu_src (OptionsBar_menu_src) package { import mx.core.*; public class OptionsBar_menu_src extends BitmapAsset { } }//package
Section 453
//OptionsBar_more_src (OptionsBar_more_src) package { import mx.core.*; public class OptionsBar_more_src extends BitmapAsset { } }//package
Section 454
//Player (Player) package { public class Player extends OliverSprite { public var stoneskin:Boolean;// = false private var walk_ani:Class; private var teleport_ani:Class; private var stone_src:Class; private var teleport_stone_src:Class; public function Player(x_pos:int, y_pos:int, facing:int){ walk_ani = Player_walk_ani; teleport_ani = Player_teleport_ani; stone_src = Player_stone_src; teleport_stone_src = Player_teleport_stone_src; FRAME_SIZE = 40; X_OFFSET = -2; Y_OFFSET = -2; ANIMATIONS = [walk_ani, walk_ani, teleport_ani]; super(x_pos, y_pos, facing); } override protected function doneAnimation(action:int):void{ if (action == 2){ trace("done forward teleport animation!"); x = ((x_pos * TILE_SIZE) + X_OFFSET); y = ((y_pos * TILE_SIZE) + Y_OFFSET); this.action = -1; playAnimation(2, false, true); } else { if (action == -2){ busy = false; } else { moveImage(0, (facing * FRAME_SIZE)); }; }; } public function teleport(x_pos:int, y_pos:int, animate:Boolean=true){ this.x_pos = x_pos; this.y_pos = y_pos; if (animate){ playAnimation(2); action = 2; Oliver.app.sound_channel_1.playSound("teleport"); } else { x = ((x_pos * TILE_SIZE) + X_OFFSET); y = ((y_pos * TILE_SIZE) + Y_OFFSET); facing = 0; moveImage(0, 0); }; } public function toggleStone(sound:Boolean=true):void{ if (!stoneskin){ stoneskin = true; ANIMATIONS = [stone_src, stone_src, teleport_stone_src]; } else { stoneskin = false; ANIMATIONS = [walk_ani, walk_ani, teleport_ani]; if (sound){ Oliver.app.sound_channel_2.playSound("trap"); }; }; img.source = ANIMATIONS[0]; } } }//package
Section 455
//Player_stone_src (Player_stone_src) package { import mx.core.*; public class Player_stone_src extends BitmapAsset { } }//package
Section 456
//Player_teleport_ani (Player_teleport_ani) package { import mx.core.*; public class Player_teleport_ani extends BitmapAsset { } }//package
Section 457
//Player_teleport_stone_src (Player_teleport_stone_src) package { import mx.core.*; public class Player_teleport_stone_src extends BitmapAsset { } }//package
Section 458
//Player_walk_ani (Player_walk_ani) package { import mx.core.*; public class Player_walk_ani extends BitmapAsset { } }//package
Section 459
//PulseAnimation (PulseAnimation) package { import flash.utils.*; public class PulseAnimation extends SimpleAnimation { private var reverse:Boolean; private var once_only:Boolean; public function PulseAnimation(frame_w:int, frame_h:int, num_frames:int, frame_duration:int, src:Class, once_only:Boolean=false){ reverse = false; this.once_only = once_only; super(frame_w, frame_h, num_frames, frame_duration, src); } override protected function nextFrame():void{ if (reverse){ current_frame--; if (current_frame == 0){ reverse = false; if (once_only){ clearInterval(animation); visible = false; if (parent != null){ parent.removeChild(this); }; }; }; scrollImage(-(frame_w), 0); } else { current_frame++; if (current_frame == (frames - 1)){ reverse = true; }; scrollImage(frame_w, 0); }; onFrame(current_frame); } public function stop():void{ clearInterval(animation); animation = 0; moveImage(0, 0); visible = false; reverse = false; } } }//package
Section 460
//Rewards (Rewards) package { import flash.display.*; import flash.geom.*; import flash.media.*; import flash.text.*; import flash.events.*; import mx.events.*; import mx.styles.*; import mx.binding.*; import flash.utils.*; import flash.system.*; import flash.filters.*; import flash.ui.*; import flash.net.*; import flash.external.*; import flash.accessibility.*; import flash.debugger.*; import flash.errors.*; import flash.printing.*; import flash.profiler.*; import flash.xml.*; public class Rewards extends SingleSourceComposite { private var scroll_cost:int;// = 2000 var img_src:Class; public var scroll:int;// = -1 private var text_widths:Array; private var previous_scroll:int;// = 0 private var previous_charge:int;// = 0 public var charges:int;// = 0 public function Rewards(){ img_src = Rewards_img_src; text_widths = [[76, 45, 112, 89, 103, 67, 96, 89, 86, 106, 89, 89, 96, 96], [67, 53, 61, 78, 176, 115, 155, 45, 16, 0]]; super(); this.width = 397; this.height = 60; this.addEventListener("creationComplete", ___Rewards_SingleSourceComposite1_creationComplete); } private function copyText(column:int, row:int, dest_x:int, dest_y:int, x_offset:int=0):int{ var src_x:int = ((column)==0) ? 0 : 112; src_x = (src_x + x_offset); var src_y:int = (row * 16); var width:int = int(text_widths[column][row]); copyPixels(src_x, src_y, width, 16, dest_x, dest_y); return (width); } public function ___Rewards_SingleSourceComposite1_creationComplete(event:FlexEvent):void{ setup(img_src, 0, true); } public function reset():void{ previous_scroll = 0; previous_charge = 0; scroll_cost = 2000; } override public function initialize():void{ super.initialize(); } public function getRewards(new_score:int, scroll_used:int):void{ var line_length:int; var line_position:int; var index:int; var increment:int; var i:int; var lines:int; var choices:Array = new Array(0); clear(); trace(("new score is: " + new_score)); if ((new_score - previous_scroll) >= scroll_cost){ i = 0; for (;i < Oliver.app.num_spells;i++) { if ((((Oliver.app.mode == Oliver.DELUXE)) && (((Oliver.app.scrolls[i] + Oliver.app.spell_mastery[i]) >= 4)))){ continue; } else { choices.push(i); }; }; if (choices.length == 0){ i = 0; while (i < Oliver.app.num_spells) { choices.push(i); i++; }; }; scroll = choices[int((Math.random() * choices.length))]; previous_scroll = (previous_scroll + scroll_cost); scroll_cost = (scroll_cost + 500); trace(((("scroll earned at: " + previous_scroll) + " next scroll at ") + (previous_scroll + scroll_cost))); line_length = ((text_widths[0][scroll] + text_widths[1][2]) + text_widths[1][3]); line_position = ((397 - line_length) / 2); line_position = (line_position + copyText(0, scroll, line_position, 0)); line_position = (line_position + copyText(1, 2, line_position, 0)); copyText(1, 3, line_position, 0); trace(("scroll acquired: " + scroll)); lines++; } else { scroll = -1; }; charges = Math.min(int(((new_score - previous_charge) / 500)), 8); previous_charge = (previous_charge + (charges * 500)); trace(("gained charges: " + charges)); trace(("last charge acquired at: " + previous_charge)); if (charges > 0){ line_length = (((text_widths[1][1] + text_widths[1][4]) + text_widths[1][8]) + 8); if (charges != 10){ line_length = (line_length - 6); }; line_position = ((397 - line_length) / 2); line_position = (line_position + copyText(1, 1, line_position, (lines * 22))); line_position = (line_position + copyText(1, 4, line_position, (lines * 22))); copyText(1, 8, (line_position + 8), (lines * 22), ((charges - 1) * 16)); lines++; }; if ((((((Oliver.app.mode == Oliver.DELUXE)) && (!((scroll_used == -1))))) && ((Oliver.app.spell_mastery[scroll_used] < 4)))){ var _local10 = Oliver.app.spell_mastery; var _local11 = scroll_used; var _local12 = (_local10[_local11] + 1); _local10[_local11] = _local12; switch (Oliver.app.spell_mastery[scroll_used]){ case 1: line_length = ((text_widths[0][scroll_used] + text_widths[1][5]) + text_widths[1][1]); line_position = ((397 - line_length) / 2); line_position = (line_position + copyText(0, scroll_used, line_position, (lines * 22))); line_position = (line_position + copyText(1, 5, line_position, (lines * 22))); copyText(1, 1, line_position, (lines * 22)); lines++; break; case 2: line_length = ((text_widths[0][scroll_used] + text_widths[1][5]) + text_widths[1][0]); line_position = ((397 - line_length) / 2); line_position = (line_position + copyText(0, scroll_used, line_position, (lines * 22))); line_position = (line_position + copyText(1, 5, line_position, (lines * 22))); copyText(1, 0, line_position, (lines * 22)); lines++; break; case 4: line_length = (text_widths[0][scroll_used] + text_widths[1][6]); line_position = ((397 - line_length) / 2); line_position = (line_position + copyText(0, scroll_used, line_position, (lines * 22))); copyText(1, 6, line_position, (lines * 22)); lines++; break; }; }; } } }//package
Section 461
//Rewards_img_src (Rewards_img_src) package { import mx.core.*; public class Rewards_img_src extends BitmapAsset { } }//package
Section 462
//Rock (Rock) package { import flash.events.*; import flash.utils.*; public class Rock extends CroppedImage { private var animation:uint; public var gol:Golem; public var x_pos:int; public var y_pos:int; private var rev:Boolean; var src:Class; public var dying:Boolean; private var frame:int;// = 0 public var busy:Boolean; private var current_action:int; private static var TILE_SIZE:int = 35; private static var NUM_FRAMES = 8; private static var Y_OFFSET:int = 0; private static var X_OFFSET:int = 0; public function Rock(x_pos:int, y_pos:int, animate_creation:Boolean=false, transmuted_golem:Golem=null){ var rk:Rock; src = Rock_src; this.x_pos = x_pos; this.y_pos = y_pos; dying = false; busy = false; super(((x_pos * TILE_SIZE) + X_OFFSET), ((y_pos * TILE_SIZE) + Y_OFFSET), 37, 37, 0, 0, 296, 111, src); rev = false; for each (rk in Oliver.app.rocks) { if ((((rk.x_pos == x_pos)) && ((rk.y_pos == y_pos)))){ Oliver.app.destroySprite(rk); }; }; if (animate_creation){ addEventListener(Event.ADDED, animateCreation); } else { if (transmuted_golem != null){ gol = transmuted_golem; addEventListener(Event.ADDED, reverseTransmute); }; }; } public function transmute(gol:Golem):void{ this.gol = gol; playAnimation(2); } public function standby():void{ if ((((this.parent == null)) || (!(this.visible)))){ trace("destroying invisible rock"); Oliver.app.destroySprite(this); return; }; if (animation != 0){ clearInterval(animation); animation = 0; moveImage(0, 0); trace("cancelling incomplete animation"); if (current_action != 1){ Oliver.app.destroySprite(this); trace("destroying rock"); return; }; }; x = ((x_pos * TILE_SIZE) + X_OFFSET); y = ((y_pos * TILE_SIZE) + Y_OFFSET); busy = false; } private function changeFrame():void{ frame++; if (frame == NUM_FRAMES){ clearInterval(animation); animation = 0; moveImage(0, 0); Oliver.app.animationCallback(this, (rev) ? -2 : current_action); rev = false; busy = false; } else { scrollImage((rev) ? -(this.width) : this.width, 0); if (current_action == 2){ gol.alpha = (rev) ? Math.max((gol.alpha - 0.15), 0) : Math.min((gol.alpha + 0.15), 1); }; }; } private function animateCreation(ev:Event):void{ removeEventListener(Event.ADDED, animateCreation); playAnimation(1); busy = true; } public function playAnimation(action:int):void{ if (animation != 0){ Oliver.app.animationCallback(this, current_action); clearInterval(animation); }; frame = 0; current_action = action; if ((((((action == 0)) || ((((action == 2)) && (!(rev)))))) || ((action == 3)))){ dying = true; }; moveImage((rev) ? (this.width * 7) : 0, ((action)==3) ? 0 : (this.height * action)); animation = setInterval(changeFrame, ((current_action)==2) ? 100 : 50); busy = true; } public function reverseTransmute(ev:Event):void{ removeEventListener(Event.ADDED, reverseTransmute); rev = true; playAnimation(2); } } }//package
Section 463
//Rock_src (Rock_src) package { import mx.core.*; public class Rock_src extends BitmapAsset { } }//package
Section 464
//Scroll (Scroll) package { public class Scroll extends MagicItem { private var button_off:Class; private var button_on:Class; private var button_mo:Class; private var scroll_img:Class; public function Scroll(){ button_on = Scroll_button_on; button_mo = Scroll_button_mo; button_off = Scroll_button_off; scroll_img = Scroll_scroll_img; bg_img = scroll_img; super(); y = 418; button.setSources(button_on, button_mo, button_off, true); used = false; } override protected function querySpellAvailable():Boolean{ return (button.active); } override public function refreshCharges():void{ button.turnOn(); used = false; setStyle("backgroundImage", bg_img); } override protected function deductCharge():void{ used = true; button.turnOff(); setStyle("backgroundImage", null); spellname.moveImage(0, 252); } override public function changeSpell(spell:int):void{ if (spell == -1){ button.turnOff(); setStyle("backgroundImage", null); spellname.moveImage(0, 252); } else { this.spell = spell; spellname.moveImage(0, (spell * 18)); refreshCharges(); }; } } }//package
Section 465
//Scroll_button_mo (Scroll_button_mo) package { import mx.core.*; public class Scroll_button_mo extends BitmapAsset { } }//package
Section 466
//Scroll_button_off (Scroll_button_off) package { import mx.core.*; public class Scroll_button_off extends BitmapAsset { } }//package
Section 467
//Scroll_button_on (Scroll_button_on) package { import mx.core.*; public class Scroll_button_on extends BitmapAsset { } }//package
Section 468
//Scroll_scroll_img (Scroll_scroll_img) package { import mx.core.*; public class Scroll_scroll_img extends BitmapAsset { } }//package
Section 469
//Shuffler (Shuffler) package { import mx.collections.*; public class Shuffler { public function Shuffler(){ super(); } public static function shuffle(input:Array):Array{ var randint:int; var temp_array:Array = new Array(input.length); var i:int; while (i < input.length) { temp_array[i] = input[i]; i++; }; var collection:ArrayCollection = new ArrayCollection(temp_array); var new_array:Array = new Array(0); while (temp_array.length > 0) { randint = int((Math.random() * temp_array.length)); new_array.push(temp_array[randint]); collection.removeItemAt(randint); }; return (new_array); } } }//package
Section 470
//SimpleAnimation (SimpleAnimation) package { import flash.utils.*; public class SimpleAnimation extends CroppedImage { protected var dur:int; protected var animation:uint; protected var frame_w:int; protected var frames:int; protected var current_frame:int; protected var do_callback:Boolean;// = true public function SimpleAnimation(frame_w:int, frame_h:int, num_frames:int, frame_duration:int, src:Class){ dur = frame_duration; frames = num_frames; this.frame_w = frame_w; animation = 0; super(0, 0, frame_w, frame_h, 0, 0, (frame_w * num_frames), frame_h, src); visible = false; } public function play():void{ if (animation != 0){ clearInterval(animation); moveImage(0, 0); }; current_frame = 0; visible = true; animation = setInterval(nextFrame, dur); } protected function onFrame(frame:int):void{ } protected function nextFrame():void{ current_frame++; onFrame(current_frame); if (current_frame == frames){ clearInterval(animation); moveImage(0, 0); animation = 0; visible = false; if (do_callback){ Oliver.app.doneSpellEffect(this); }; return; }; scrollImage(frame_w, 0); } } }//package
Section 471
//SimpleInterlevel (SimpleInterlevel) package { import flash.display.*; import flash.geom.*; import flash.media.*; import flash.text.*; import mx.core.*; import flash.events.*; import mx.events.*; import mx.styles.*; import mx.controls.*; import mx.containers.*; import mx.binding.*; import flash.utils.*; import flash.system.*; import flash.filters.*; import flash.ui.*; import flash.net.*; import flash.external.*; import flash.accessibility.*; import flash.debugger.*; import flash.errors.*; import flash.printing.*; import flash.profiler.*; import flash.xml.*; public class SimpleInterlevel extends Canvas { private var _849895125total_sc:NumberRenderer; private var _1196493733score_canvas:Canvas; private var magic_bonus:CroppedImage; private var _1396208037bas_sc:NumberRenderer; private var _embed_mxml_assets_level_complete1_png_367701331:Class; private var _embed_mxml_assets_minus_png_1072943315:Class; private var _1396208516bas_ct:NumberRenderer; private var _865541433trg_ct:NumberRenderer; private var _1078040157med_sc:NumberRenderer; private var meditation_text:CroppedImage; private var m_bonus_src:Class; private var _1081644868mag_sc:NumberRenderer; private var _920177648rub_sc:NumberRenderer; private var _1078040636med_ct:NumberRenderer; private var _1080312374continue_button:DynamicButton; private var _865332896trn_ct:NumberRenderer; private var _103901296minus:Image; private var _1040311730no_med:Image; private var _447719574levelscore_bg:Image; private var _865332417trn_sc:NumberRenderer; private var rubble_penalty:CroppedImage; private var _920178127rub_ct:NumberRenderer; private var _embed_mxml_assets_simple_level_complete_png_503005507:Class; private var _1288568932level_number:NumberRenderer; private var _2136279670single_digit:Image; private var _documentDescriptor_:UIComponentDescriptor; public function SimpleInterlevel(){ _documentDescriptor_ = new UIComponentDescriptor({type:Canvas, propertiesFactory:function ():Object{ return ({width:656, height:536, childDescriptors:[new UIComponentDescriptor({type:Canvas, id:"score_canvas", propertiesFactory:function ():Object{ return ({width:536, height:660, childDescriptors:[new UIComponentDescriptor({type:Image, id:"levelscore_bg", propertiesFactory:function ():Object{ return ({source:_embed_mxml_assets_simple_level_complete_png_503005507, percentWidth:100, percentHeight:100}); }}), new UIComponentDescriptor({type:Image, id:"single_digit", propertiesFactory:function ():Object{ return ({x:72, y:113, source:_embed_mxml_assets_level_complete1_png_367701331, visible:false}); }}), new UIComponentDescriptor({type:NumberRenderer, id:"level_number", events:{creationComplete:"__level_number_creationComplete"}, propertiesFactory:function ():Object{ return ({x:204, y:116}); }}), new UIComponentDescriptor({type:NumberRenderer, id:"bas_ct", events:{creationComplete:"__bas_ct_creationComplete"}, propertiesFactory:function ():Object{ return ({x:266, y:194}); }}), new UIComponentDescriptor({type:NumberRenderer, id:"bas_sc", events:{creationComplete:"__bas_sc_creationComplete"}, propertiesFactory:function ():Object{ return ({x:356, y:194}); }}), new UIComponentDescriptor({type:NumberRenderer, id:"rub_ct", events:{creationComplete:"__rub_ct_creationComplete"}, propertiesFactory:function ():Object{ return ({x:266, y:219}); }}), new UIComponentDescriptor({type:NumberRenderer, id:"rub_sc", events:{creationComplete:"__rub_sc_creationComplete"}, propertiesFactory:function ():Object{ return ({x:363, y:219}); }}), new UIComponentDescriptor({type:NumberRenderer, id:"trn_ct", events:{creationComplete:"__trn_ct_creationComplete"}, propertiesFactory:function ():Object{ return ({x:0x0100, y:244}); }}), new UIComponentDescriptor({type:NumberRenderer, id:"trg_ct", events:{creationComplete:"__trg_ct_creationComplete"}, propertiesFactory:function ():Object{ return ({x:288, y:244}); }}), new UIComponentDescriptor({type:NumberRenderer, id:"trn_sc", events:{creationComplete:"__trn_sc_creationComplete"}, propertiesFactory:function ():Object{ return ({x:363, y:244}); }}), new UIComponentDescriptor({type:NumberRenderer, id:"med_ct", events:{creationComplete:"__med_ct_creationComplete"}, propertiesFactory:function ():Object{ return ({x:266, y:269}); }}), new UIComponentDescriptor({type:NumberRenderer, id:"med_sc", events:{creationComplete:"__med_sc_creationComplete"}, propertiesFactory:function ():Object{ return ({x:363, y:269}); }}), new UIComponentDescriptor({type:NumberRenderer, id:"mag_sc", events:{creationComplete:"__mag_sc_creationComplete"}, propertiesFactory:function ():Object{ return ({x:363, y:294}); }}), new UIComponentDescriptor({type:NumberRenderer, id:"total_sc", events:{creationComplete:"__total_sc_creationComplete"}, propertiesFactory:function ():Object{ return ({x:283, y:328}); }}), new UIComponentDescriptor({type:Image, id:"minus", propertiesFactory:function ():Object{ return ({source:_embed_mxml_assets_minus_png_1072943315, y:224, x:323}); }}), new UIComponentDescriptor({type:Image, id:"no_med", propertiesFactory:function ():Object{ return ({source:_embed_mxml_assets_minus_png_1072943315, y:273, x:280, visible:false}); }}), new UIComponentDescriptor({type:DynamicButton, id:"continue_button", events:{creationComplete:"__continue_button_creationComplete", click:"__continue_button_click"}, propertiesFactory:function ():Object{ return ({x:183, y:376}); }})]}); }})]}); }}); m_bonus_src = SimpleInterlevel_m_bonus_src; _embed_mxml_assets_level_complete1_png_367701331 = SimpleInterlevel__embed_mxml_assets_level_complete1_png_367701331; _embed_mxml_assets_minus_png_1072943315 = SimpleInterlevel__embed_mxml_assets_minus_png_1072943315; _embed_mxml_assets_simple_level_complete_png_503005507 = SimpleInterlevel__embed_mxml_assets_simple_level_complete_png_503005507; super(); mx_internal::_document = this; if (!this.styleDeclaration){ this.styleDeclaration = new CSSStyleDeclaration(); }; this.styleDeclaration.defaultFactory = function ():void{ this.backgroundColor = 0; this.backgroundAlpha = 0.8; }; this.width = 656; this.height = 536; this.verticalScrollPolicy = "off"; this.horizontalScrollPolicy = "off"; this.addEventListener("creationComplete", ___SimpleInterlevel_Canvas1_creationComplete); } public function get rub_sc():NumberRenderer{ return (this._920177648rub_sc); } public function set rub_sc(visible:NumberRenderer):void{ var _local2:Object = this._920177648rub_sc; if (_local2 !== visible){ this._920177648rub_sc = visible; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "rub_sc", _local2, visible)); }; } public function get total_sc():NumberRenderer{ return (this._849895125total_sc); } public function set levelscore_bg(visible:Image):void{ var _local2:Object = this._447719574levelscore_bg; if (_local2 !== visible){ this._447719574levelscore_bg = visible; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "levelscore_bg", _local2, visible)); }; } public function get rub_ct():NumberRenderer{ return (this._920178127rub_ct); } public function get trn_sc():NumberRenderer{ return (this._865332417trn_sc); } public function startLevel():void{ this.visible = false; Oliver.app.startLevel(false); } public function set med_sc(visible:NumberRenderer):void{ var _local2:Object = this._1078040157med_sc; if (_local2 !== visible){ this._1078040157med_sc = visible; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "med_sc", _local2, visible)); }; } public function set score_canvas(visible:Canvas):void{ var _local2:Object = this._1196493733score_canvas; if (_local2 !== visible){ this._1196493733score_canvas = visible; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "score_canvas", _local2, visible)); }; } public function get no_med():Image{ return (this._1040311730no_med); } public function __trn_ct_creationComplete(event:FlexEvent):void{ trn_ct.setSize(0, 2, 2); } public function __trn_sc_creationComplete(event:FlexEvent):void{ trn_sc.setSize(0, 4, 2); } public function get bas_sc():NumberRenderer{ return (this._1396208037bas_sc); } public function set total_sc(visible:NumberRenderer):void{ var _local2:Object = this._849895125total_sc; if (_local2 !== visible){ this._849895125total_sc = visible; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "total_sc", _local2, visible)); }; } public function get trn_ct():NumberRenderer{ return (this._865332896trn_ct); } public function set rub_ct(visible:NumberRenderer):void{ var _local2:Object = this._920178127rub_ct; if (_local2 !== visible){ this._920178127rub_ct = visible; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "rub_ct", _local2, visible)); }; } public function get level_number():NumberRenderer{ return (this._1288568932level_number); } public function ___SimpleInterlevel_Canvas1_creationComplete(event:FlexEvent):void{ setup(); } public function get minus():Image{ return (this._103901296minus); } public function __med_ct_creationComplete(event:FlexEvent):void{ med_ct.setSize(0, 3, 2); } public function get single_digit():Image{ return (this._2136279670single_digit); } public function set mag_sc(visible:NumberRenderer):void{ var _local2:Object = this._1081644868mag_sc; if (_local2 !== visible){ this._1081644868mag_sc = visible; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "mag_sc", _local2, visible)); }; } public function __mag_sc_creationComplete(event:FlexEvent):void{ mag_sc.setSize(0, 4, 2); } public function get bas_ct():NumberRenderer{ return (this._1396208516bas_ct); } private function setup():void{ magic_bonus = new CroppedImage(100, 295, 140, 14, 0, 0, 140, 168, m_bonus_src); rubble_penalty = new CroppedImage(100, 220, 140, 14, 0, 0, 140, 168, m_bonus_src); meditation_text = new CroppedImage(100, 268, 140, 14, 0, 0, 140, 168, m_bonus_src); score_canvas.addChild(magic_bonus); score_canvas.addChild(rubble_penalty); score_canvas.addChild(meditation_text); } public function __med_sc_creationComplete(event:FlexEvent):void{ med_sc.setSize(0, 4, 2); } public function set med_ct(visible:NumberRenderer):void{ var _local2:Object = this._1078040636med_ct; if (_local2 !== visible){ this._1078040636med_ct = visible; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "med_ct", _local2, visible)); }; } public function set trn_sc(visible:NumberRenderer):void{ var _local2:Object = this._865332417trn_sc; if (_local2 !== visible){ this._865332417trn_sc = visible; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "trn_sc", _local2, visible)); }; } public function set trg_ct(visible:NumberRenderer):void{ var _local2:Object = this._865541433trg_ct; if (_local2 !== visible){ this._865541433trg_ct = visible; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "trg_ct", _local2, visible)); }; } public function set continue_button(visible:DynamicButton):void{ var _local2:Object = this._1080312374continue_button; if (_local2 !== visible){ this._1080312374continue_button = visible; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "continue_button", _local2, visible)); }; } public function get levelscore_bg():Image{ return (this._447719574levelscore_bg); } public function set no_med(visible:Image):void{ var _local2:Object = this._1040311730no_med; if (_local2 !== visible){ this._1040311730no_med = visible; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "no_med", _local2, visible)); }; } override public function initialize():void{ mx_internal::setDocumentDescriptor(_documentDescriptor_); super.initialize(); } public function get med_sc():NumberRenderer{ return (this._1078040157med_sc); } public function get score_canvas():Canvas{ return (this._1196493733score_canvas); } public function __rub_sc_creationComplete(event:FlexEvent):void{ rub_sc.setSize(0, 4, 2); } public function __rub_ct_creationComplete(event:FlexEvent):void{ rub_ct.setSize(0, 3, 2); } public function set bas_sc(visible:NumberRenderer):void{ var _local2:Object = this._1396208037bas_sc; if (_local2 !== visible){ this._1396208037bas_sc = visible; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "bas_sc", _local2, visible)); }; } public function __bas_ct_creationComplete(event:FlexEvent):void{ bas_ct.setSize(0, 3, 2); } public function __bas_sc_creationComplete(event:FlexEvent):void{ bas_sc.setSize(0, 5, 2); } public function set trn_ct(visible:NumberRenderer):void{ var _local2:Object = this._865332896trn_ct; if (_local2 !== visible){ this._865332896trn_ct = visible; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "trn_ct", _local2, visible)); }; } public function get mag_sc():NumberRenderer{ return (this._1081644868mag_sc); } public function get med_ct():NumberRenderer{ return (this._1078040636med_ct); } public function get trg_ct():NumberRenderer{ return (this._865541433trg_ct); } public function set level_number(visible:NumberRenderer):void{ var _local2:Object = this._1288568932level_number; if (_local2 !== visible){ this._1288568932level_number = visible; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "level_number", _local2, visible)); }; } public function __trg_ct_creationComplete(event:FlexEvent):void{ trg_ct.setSize(0, 2, 2); } public function get continue_button():DynamicButton{ return (this._1080312374continue_button); } public function __level_number_creationComplete(event:FlexEvent):void{ level_number.setSize(2, 3, 4); } public function set minus(visible:Image):void{ var _local2:Object = this._103901296minus; if (_local2 !== visible){ this._103901296minus = visible; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "minus", _local2, visible)); }; } public function __total_sc_creationComplete(event:FlexEvent):void{ total_sc.setSize(1, 6, 3); } public function __continue_button_creationComplete(event:FlexEvent):void{ continue_button.setText(DynamicButton.NEXT_LEVEL); } public function __continue_button_click(event:MouseEvent):void{ startLevel(); } public function set bas_ct(visible:NumberRenderer):void{ var _local2:Object = this._1396208516bas_ct; if (_local2 !== visible){ this._1396208516bas_ct = visible; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "bas_ct", _local2, visible)); }; } public function set single_digit(visible:Image):void{ var _local2:Object = this._2136279670single_digit; if (_local2 !== visible){ this._2136279670single_digit = visible; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "single_digit", _local2, visible)); }; } public function show(level:int, score:int, bas:int, rubble:int, turns:int, med:int, a_use:Boolean, w_use:Boolean, s_use:Boolean):int{ var med_score:int; visible = true; score_canvas.visible = true; if (level < 10){ single_digit.visible = true; } else { single_digit.visible = false; }; level_number.setNumber(level); bas_ct.setNumber(bas); var bas_score:int = (bas * 100); bas_sc.setNumber(bas_score); var rubble_score:int = ((rubble == 0)) ? 200 : (rubble * 20); rubble_penalty.moveImage(0, ((rubble == 0)) ? 126 : 112); rub_ct.setNumber(rubble); rub_sc.setNumber(rubble_score); if (rubble == 0){ minus.visible = false; } else { minus.visible = true; }; minus.x = (354 + rub_sc.left_edge); var turn_limit:int = (10 + (level / 5)); var turns_score:int = ((turn_limit - turns) * 50); if (turns_score < 0){ turns_score = 0; } else { turns_score = (turns_score + 200); }; trn_ct.setNumber(Math.min(turns, 99)); trg_ct.setNumber(Math.min(turn_limit, 99)); trn_sc.setNumber(turns_score); if (turns <= turn_limit){ meditation_text.moveImage(0, 154); med_score = ((med * Math.min(med, 5)) * 30); no_med.visible = false; med_ct.visible = true; } else { meditation_text.moveImage(0, 140); med_score = 0; med = 0; no_med.visible = true; med_ct.visible = false; }; var bonus:int = (((a_use) ? 0 : 200 + (w_use) ? 0 : 100) + (s_use) ? 0 : 100); switch ((((a_use) ? 1 : 0 + (w_use) ? 2 : 0) + (s_use) ? 4 : 0)){ case 0: magic_bonus.moveImage(0, 84); break; case 1: magic_bonus.moveImage(0, 42); break; case 2: magic_bonus.moveImage(0, 56); break; case 3: magic_bonus.moveImage(0, 28); break; case 4: magic_bonus.moveImage(0, 70); break; case 5: magic_bonus.moveImage(0, 14); break; case 6: magic_bonus.moveImage(0, 0); break; case 7: magic_bonus.moveImage(0, 98); break; }; if (bonus == 400){ bonus = 600; }; mag_sc.setNumber(bonus); med_ct.setNumber(med); med_sc.setNumber(med_score); var total:int = ((((bas_score + ((rubble == 0)) ? 200 : -(rubble_score)) + turns_score) + med_score) + bonus); total_sc.setNumber(total); Oliver.app.wand.gainCharges((level % 2)); Oliver.app.scroll.changeSpell(Oliver.DISINTEGRATE); var counter:int; return (total); } } }//package
Section 472
//SimpleInterlevel__embed_mxml_assets_level_complete1_png_367701331 (SimpleInterlevel__embed_mxml_assets_level_complete1_png_367701331) package { import mx.core.*; public class SimpleInterlevel__embed_mxml_assets_level_complete1_png_367701331 extends BitmapAsset { } }//package
Section 473
//SimpleInterlevel__embed_mxml_assets_minus_png_1072943315 (SimpleInterlevel__embed_mxml_assets_minus_png_1072943315) package { import mx.core.*; public class SimpleInterlevel__embed_mxml_assets_minus_png_1072943315 extends BitmapAsset { } }//package
Section 474
//SimpleInterlevel__embed_mxml_assets_simple_level_complete_png_503005507 (SimpleInterlevel__embed_mxml_assets_simple_level_complete_png_503005507) package { import mx.core.*; public class SimpleInterlevel__embed_mxml_assets_simple_level_complete_png_503005507 extends BitmapAsset { } }//package
Section 475
//SimpleInterlevel_m_bonus_src (SimpleInterlevel_m_bonus_src) package { import mx.core.*; public class SimpleInterlevel_m_bonus_src extends BitmapAsset { } }//package
Section 476
//SingleSourceComposite (SingleSourceComposite) package { import flash.display.*; import flash.geom.*; import mx.controls.*; public class SingleSourceComposite extends Image { public var bmp_data:BitmapData; private var bmp:Bitmap; public var source_image:BitmapData; private var bgc:Number; public function SingleSourceComposite(){ super(); } public function copyPixels(src_x:int, src_y:int, width:int, height:int, dest_x:int, dest_y:int):void{ bmp_data.copyPixels(source_image, new Rectangle(src_x, src_y, width, height), new Point(dest_x, dest_y)); } public function clear():void{ bmp_data.fillRect(new Rectangle(0, 0, this.width, this.height), bgc); } override public function initialize():void{ super.initialize(); } public function setup(src:Class, backgroundColor:Number=0, transparent:Boolean=false):void{ var source_bmp:Bitmap = (new (src) as Bitmap); bgc = backgroundColor; source_image = source_bmp.bitmapData; if (transparent){ bmp_data = new BitmapData(this.width, this.height, true, 0); } else { bmp_data = new BitmapData(this.width, this.height, false, backgroundColor); }; bmp = new Bitmap(bmp_data); source = bmp; } } }//package
Section 477
//SlidingAnimation (SlidingAnimation) package { import mx.effects.*; public class SlidingAnimation extends SimpleAnimation { private var sq_dur:int; private var skip_frames:Boolean;// = false private var mv:Move; public function SlidingAnimation(frame_w:int, frame_h:int, num_frames:int, duration_per_square:int, src:Class){ sq_dur = duration_per_square; super(frame_w, frame_h, num_frames, 100, src); do_callback = false; x = 30; y = 30; mv = new Move(); } public function playSlide(x_dist:int, y_dist:int):void{ mv.duration = int((sq_dur * Math.sqrt(((x_dist * x_dist) + (y_dist * y_dist))))); mv.xBy = (x_dist * Oliver.TILE_SIZE); mv.yBy = (y_dist * Oliver.TILE_SIZE); if (x_dist > 0){ mv.xBy = (mv.xBy - 10); }; if (x_dist < 0){ mv.xBy = (mv.xBy + 10); }; if (y_dist > 0){ mv.yBy = (mv.yBy - 10); }; if (y_dist < 0){ mv.yBy = (mv.yBy + 10); }; trace(((((("dur:" + mv.duration) + " xBy: ") + mv.xBy) + " yBy: ") + mv.yBy)); mv.easingFunction = animationEasing; mv.target = this; mv.play(); skip_frames = false; dur = (mv.duration / 8); if (dur < 40){ dur = (dur * 2); skip_frames = true; }; play(); } override protected function onFrame(frame:int):void{ if (((skip_frames) && (((current_frame % 2) == 0)))){ nextFrame(); } else { if (current_frame == 5){ Oliver.app.destroyTarget(); }; }; } private function animationEasing(time:int, start:Number, distance:Number, duration:int):Number{ return ((start + (distance * (time / duration)))); } } }//package
Section 478
//SmileyButton (SmileyButton) package { import flash.events.*; import mx.controls.*; import flash.filters.*; public class SmileyButton extends Image { private var innershadow2:DropShadowFilter; private var blackglow:GlowFilter; private var glow:GlowFilter; private static var SmileySmall:Class = SmileyButton_SmileySmall; public function SmileyButton(aGlowColor:int=0xFF0000, aBorderColor:int=0, aEnabled:Boolean=true){ super(); innershadow2 = new DropShadowFilter(1, -135); innershadow2.alpha = 0.8; innershadow2.quality = BitmapFilterQuality.HIGH; innershadow2.inner = true; blackglow = new GlowFilter(aBorderColor, 1, 4, 4, 4, BitmapFilterQuality.LOW); glow = new GlowFilter(aGlowColor, 1, 4, 4, 4, BitmapFilterQuality.LOW); source = SmileySmall; filters = [innershadow2, blackglow]; addEventListener(MouseEvent.MOUSE_OVER, mouseIn); addEventListener(MouseEvent.MOUSE_OUT, mouseOut); if (aEnabled){ addEventListener(MouseEvent.CLICK, SmileyGamerAPI.showHome); } else { mouseEnabled = false; }; this.buttonMode = true; } private function mouseIn(ev:MouseEvent):void{ filters = [innershadow2, glow]; } private function mouseOut(ev:MouseEvent):void{ filters = [innershadow2, blackglow]; } } }//package
Section 479
//SmileyButton_SmileySmall (SmileyButton_SmileySmall) package { import mx.core.*; public class SmileyButton_SmileySmall extends BitmapAsset { } }//package
Section 480
//SmileyGamerAPI (SmileyGamerAPI) package { import flash.display.*; import flash.events.*; import flash.system.*; import flash.net.*; import flash.external.*; public class SmileyGamerAPI { public static const MIXED:int = 2; public static const HOME:String = "http://www.smileygamer.com"; private static const ONLY_SG_AD_DOMAINS:Array = ["kaisergames.de", "y8.com", "kongregate.com", "freeonlinegames.com", "gamesclub.com", "media.jaludo.com"]; private static const NO_AD_DOMAINS:Array = ["www8.agame.com", "addictinggames.com", "armorgames.com", "www.flashgamelicense.com"]; public static const SG_ONLY:int = 1; public static const NONE:int = 0; private static var sGame:String; private static var sStage:Stage; private static var sID:int; public static var sReferer:String; public function SmileyGamerAPI(){ super(); } public static function isInDomains(aDomains:Array):Boolean{ var allowed:Boolean; var i:int; while (i < aDomains.length) { allowed = ((allowed) || (isDomain(aDomains[i]))); i++; }; return (allowed); } public static function showSGMoreGamesTab(aClip:DisplayObjectContainer, aColor:uint=0):void{ var aClip = aClip; var aColor = aColor; Security.allowDomain("smileygamer.com"); var url = "http://www.smileygamer.com/sgads/SGMoreGamesTab.swf"; var ldr:Loader = new Loader(); ldr.load(new URLRequest(((((url + "?gameid=") + sID) + "&color=") + aColor))); //unresolved jump var _slot1 = e; aClip.addChild(ldr); } public static function allowedClickAwayAdType():int{ if (isInDomains(NO_AD_DOMAINS)){ return (NONE); }; if (isInDomains(ONLY_SG_AD_DOMAINS)){ return (SG_ONLY); }; return (MIXED); } public static function showFreeContent(aEvent:Event=null):void{ showURL((HOME + "/freecontent.html"), true); } public static function canShowPreloaderAd():Boolean{ return (!(((((isHome()) || (isInDomains(NO_AD_DOMAINS)))) || (isInDomains(ONLY_SG_AD_DOMAINS))))); } public static function init(aStage:Stage, aID:int, aGame:String):String{ sStage = aStage; sID = aID; sGame = aGame; sReferer = getReferer(); return (sReferer); } public static function showPlayGamePage(aGameName:String=null, aID:int=0):void{ if (aGameName == null){ showURL((((((HOME + "/play/") + sID) + "/") + getGameSlug()) + ".html"), true); } else { showURL((((((HOME + "/play/") + aID) + "/") + getGameSlug(aGameName)) + ".html"), true); }; } public static function isDomain(aDomain:String):Boolean{ if (((isLocal()) && ((sStage.loaderInfo.loaderURL.toLowerCase().indexOf(aDomain) > -1)))){ return (true); }; return ((((sReferer.indexOf(aDomain) == 0)) || (((!((sReferer.indexOf(("." + aDomain)) == -1))) && ((sReferer.indexOf(("." + aDomain)) == ((sReferer.length - aDomain.length) - 1))))))); } public static function showSGMoreGamesAd(aClip:DisplayObjectContainer):void{ var dispatchHandler:Function; var aClip = aClip; dispatchHandler = function (event:Event):void{ aClip.dispatchEvent(event); }; Security.allowDomain("smileygamer.com"); var url = "http://www.smileygamer.com/sgads/SGMoreGamesAd.swf"; var ldr:Loader = new Loader(); ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, dispatchHandler); ldr.load(new URLRequest(((((url + "?gameid=") + sID) + "&siteref=") + sReferer))); //unresolved jump var _slot1 = e; trace("error loading ad"); aClip.addChild(ldr); } public static function isLocal():Boolean{ return ((sReferer == "local")); } public static function isHome():Boolean{ return (isDomain("smileygamer.com")); } public static function showURL(aURL:String, aAddRef:Boolean=false):void{ var aURL = aURL; var aAddRef = aAddRef; if (aAddRef){ aURL = ((aURL + "?gameref=") + sID); }; ExternalInterface.call("window.open", aURL, "_blank", ""); //unresolved jump var _slot1 = e; navigateToURL(new URLRequest(aURL), "_blank"); //unresolved jump var _slot1 = e; } public static function getGameSlug(aGameName:String=null):String{ var name:String = ((aGameName)!=null) ? aGameName : sGame; name = name.toLowerCase(); name = name.replace(/\s/g, "-"); return (name); } public static function getReferer():String{ var referer:String; if (sStage != null){ referer = sStage.loaderInfo.loaderURL.toLowerCase(); if (referer.indexOf("file://") == 0){ referer = "local"; } else { referer = referer.split("/")[2]; }; return (referer); //unresolved jump }; return (""); } public static function showHome(aEvent:Event=null):void{ showURL(HOME, true); } } }//package
Section 481
//SoundManager (SoundManager) package { import flash.media.*; import flash.events.*; public class SoundManager { private var channel:SoundChannel; private var golem_cr_src:Class; private var volume_array:Array; private var teleport_src:Class; private var trap_src:Class; private var stonewall_src:Class; private var fireball_src:Class; public var playing:Boolean; private var spirit_cr_src:Class; private var die_src:Class; private var sound_array:Array; private var capture_src:Class; private var rock_cr_src:Class; private var lightning_src:Class; private var earthquake_src:Class; private var walk_src:Class; private var slither_src:Class; private var transform:SoundTransform; private var name_array:Array; public static var volume:Number = 0.8; public static var sound_on:Boolean = true; public function SoundManager(){ lightning_src = SoundManager_lightning_src; fireball_src = SoundManager_fireball_src; golem_cr_src = SoundManager_golem_cr_src; rock_cr_src = SoundManager_rock_cr_src; slither_src = SoundManager_slither_src; spirit_cr_src = SoundManager_spirit_cr_src; teleport_src = SoundManager_teleport_src; walk_src = SoundManager_walk_src; earthquake_src = SoundManager_earthquake_src; stonewall_src = SoundManager_stonewall_src; die_src = SoundManager_die_src; trap_src = SoundManager_trap_src; capture_src = SoundManager_capture_src; sound_array = new Array(0); name_array = new Array(0); volume_array = new Array(0); super(); addSound("lightning", lightning_src, 0.3); addSound("fireball", fireball_src, 1); addSound("golem_create", golem_cr_src, 1); addSound("rock_create", rock_cr_src, 1); addSound("basilisk_move", slither_src, 1); addSound("spirit_create", spirit_cr_src, 0.4); addSound("teleport", teleport_src, 0.4); addSound("walk", walk_src, 1); addSound("quake", earthquake_src, 0.8); addSound("stonewall", stonewall_src, 0.8); addSound("die", die_src, 0.6); addSound("trap", trap_src, 1); addSound("capture", capture_src, 0.9); transform = new SoundTransform(); playing = false; } public function playSound(name:String):void{ if (!sound_on){ return; }; var index:int = name_array.indexOf(name); if (index < 0){ return; }; transform.volume = (volume * volume_array[index]); trace(((((("global volume: " + volume) + " this sound volume: ") + volume_array[index]) + " net volume ") + (volume * volume_array[index]))); channel = Sound(sound_array[index]).play(); channel.soundTransform = transform; channel.addEventListener(Event.SOUND_COMPLETE, doneSound); playing = true; } private function addSound(name:String, src:Class, vol:Number):void{ name_array.push(name); sound_array.push((new (src) as Sound)); volume_array.push(vol); } private function doneSound(ev:Event):void{ playing = false; } } }//package
Section 482
//SoundManager_capture_src (SoundManager_capture_src) package { import mx.core.*; public class SoundManager_capture_src extends SoundAsset { } }//package
Section 483
//SoundManager_die_src (SoundManager_die_src) package { import mx.core.*; public class SoundManager_die_src extends SoundAsset { } }//package
Section 484
//SoundManager_earthquake_src (SoundManager_earthquake_src) package { import mx.core.*; public class SoundManager_earthquake_src extends SoundAsset { } }//package
Section 485
//SoundManager_fireball_src (SoundManager_fireball_src) package { import mx.core.*; public class SoundManager_fireball_src extends SoundAsset { } }//package
Section 486
//SoundManager_golem_cr_src (SoundManager_golem_cr_src) package { import mx.core.*; public class SoundManager_golem_cr_src extends SoundAsset { } }//package
Section 487
//SoundManager_lightning_src (SoundManager_lightning_src) package { import mx.core.*; public class SoundManager_lightning_src extends SoundAsset { } }//package
Section 488
//SoundManager_rock_cr_src (SoundManager_rock_cr_src) package { import mx.core.*; public class SoundManager_rock_cr_src extends SoundAsset { } }//package
Section 489
//SoundManager_slither_src (SoundManager_slither_src) package { import mx.core.*; public class SoundManager_slither_src extends SoundAsset { } }//package
Section 490
//SoundManager_spirit_cr_src (SoundManager_spirit_cr_src) package { import mx.core.*; public class SoundManager_spirit_cr_src extends SoundAsset { } }//package
Section 491
//SoundManager_stonewall_src (SoundManager_stonewall_src) package { import mx.core.*; public class SoundManager_stonewall_src extends SoundAsset { } }//package
Section 492
//SoundManager_teleport_src (SoundManager_teleport_src) package { import mx.core.*; public class SoundManager_teleport_src extends SoundAsset { } }//package
Section 493
//SoundManager_trap_src (SoundManager_trap_src) package { import mx.core.*; public class SoundManager_trap_src extends SoundAsset { } }//package
Section 494
//SoundManager_walk_src (SoundManager_walk_src) package { import mx.core.*; public class SoundManager_walk_src extends SoundAsset { } }//package
Section 495
//SparkleShower (SparkleShower) package { import flash.display.*; import flash.geom.*; import flash.media.*; import flash.text.*; import mx.core.*; import flash.events.*; import mx.styles.*; import mx.containers.*; import mx.binding.*; import flash.utils.*; import flash.system.*; import flash.filters.*; import flash.ui.*; import flash.net.*; import flash.external.*; import flash.accessibility.*; import flash.debugger.*; import flash.errors.*; import flash.printing.*; import flash.profiler.*; import flash.xml.*; public class SparkleShower extends Canvas { private var _documentDescriptor_:UIComponentDescriptor; private var dir_array:Array; private var ani:uint; public function SparkleShower(){ _documentDescriptor_ = new UIComponentDescriptor({type:Canvas, propertiesFactory:function ():Object{ return ({width:1, height:1}); }}); super(); mx_internal::_document = this; this.width = 1; this.height = 1; this.horizontalScrollPolicy = "off"; this.verticalScrollPolicy = "off"; this.clipContent = false; } override public function initialize():void{ mx_internal::setDocumentDescriptor(_documentDescriptor_); super.initialize(); } public function play(x_pos:int, y_pos:int):void{ x = ((35 * x_pos) + 17); y = ((35 * y_pos) + 17); visible = true; dir_array = new Array(18); var i:int; while (i < 12) { dir_array[i] = int(((i * 30) + int((20 * Math.random())))); i++; }; dir_array = Shuffler.shuffle(dir_array); spark(); spark(); ani = setInterval(spark, 100); } private function spark():void{ if (dir_array.length > 1){ addChild(new MagicSparkle(0, 0, dir_array.pop())); addChild(new MagicSparkle(0, 0, dir_array.pop())); } else { if (this.numChildren == 0){ clearInterval(ani); this.visible = false; Oliver.app.spell_effect = false; }; }; trace(("sparkling... number of children: " + this.numChildren)); } } }//package
Section 496
//SpellChooser (SpellChooser) package { import mx.core.*; import mx.events.*; import mx.controls.*; import mx.containers.*; public class SpellChooser extends Canvas { private var _documentDescriptor_:UIComponentDescriptor; private var _1034364087number:NumberRenderer; private var _embed_mxml_assets_numberbox_gif_1622951123:Class; private var img_src:Class; public var spell:int; private var desc_src:Class; private var name_src:Class; private var spellname:CroppedImage; public var description:CroppedImage; private var picture:CroppedImage; private var _1649930722numberbox:Image; public function SpellChooser(){ _documentDescriptor_ = new UIComponentDescriptor({type:Canvas, propertiesFactory:function ():Object{ return ({width:106, height:111, childDescriptors:[new UIComponentDescriptor({type:Image, id:"numberbox", propertiesFactory:function ():Object{ return ({source:_embed_mxml_assets_numberbox_gif_1622951123, x:67, y:69, visible:false}); }}), new UIComponentDescriptor({type:NumberRenderer, id:"number", events:{creationComplete:"__number_creationComplete"}, propertiesFactory:function ():Object{ return ({x:72, y:73}); }})]}); }}); img_src = SpellChooser_img_src; name_src = SpellChooser_name_src; desc_src = SpellChooser_desc_src; _embed_mxml_assets_numberbox_gif_1622951123 = SpellChooser__embed_mxml_assets_numberbox_gif_1622951123; super(); mx_internal::_document = this; this.width = 106; this.height = 111; this.addEventListener("creationComplete", ___SpellChooser_Canvas1_creationComplete); } public function set numberbox(creationComplete:Image):void{ var _local2:Object = this._1649930722numberbox; if (_local2 !== creationComplete){ this._1649930722numberbox = creationComplete; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "numberbox", _local2, creationComplete)); }; } public function get number():NumberRenderer{ return (this._1034364087number); } public function setNumber(num:int):void{ numberbox.visible = true; number.setNumber(num); } public function __number_creationComplete(event:FlexEvent):void{ number.setSize(3, 2, 1); } public function ___SpellChooser_Canvas1_creationComplete(event:FlexEvent):void{ setup(); } public function set number(creationComplete:NumberRenderer):void{ var _local2:Object = this._1034364087number; if (_local2 !== creationComplete){ this._1034364087number = creationComplete; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "number", _local2, creationComplete)); }; } public function get numberbox():Image{ return (this._1649930722numberbox); } public function setSpell(spell:int):void{ this.spell = spell; if (spell == -1){ visible = false; return; }; visible = true; picture.moveImage((spell * 84), 0); spellname.moveImage(0, (18 * spell)); description.moveImage(0, (spell * 40)); } override public function initialize():void{ mx_internal::setDocumentDescriptor(_documentDescriptor_); super.initialize(); } private function setup():void{ picture = new CroppedImage(11, 0, 84, 84, 0, 0, 1176, 84, img_src); addChildAt(picture, 0); spellname = new CroppedImage(0, 93, 106, 18, 0, 0, 106, 270, name_src); addChildAt(spellname, 0); description = new CroppedImage(0, 0, 280, 40, 0, 0, 280, 560, desc_src); } } }//package
Section 497
//SpellChooser__embed_mxml_assets_numberbox_gif_1622951123 (SpellChooser__embed_mxml_assets_numberbox_gif_1622951123) package { import mx.core.*; public class SpellChooser__embed_mxml_assets_numberbox_gif_1622951123 extends BitmapAsset { } }//package
Section 498
//SpellChooser_desc_src (SpellChooser_desc_src) package { import mx.core.*; public class SpellChooser_desc_src extends BitmapAsset { } }//package
Section 499
//SpellChooser_img_src (SpellChooser_img_src) package { import mx.core.*; public class SpellChooser_img_src extends BitmapAsset { } }//package
Section 500
//SpellChooser_name_src (SpellChooser_name_src) package { import mx.core.*; public class SpellChooser_name_src extends BitmapAsset { } }//package
Section 501
//Spirit (Spirit) package { import flash.events.*; import mx.events.*; import mx.effects.*; import mx.containers.*; import flash.utils.*; public class Spirit extends Canvas { private var img:CroppedImage; public var x_pos:int; public var y_pos:int; private var main_ani:uint; private var fade_ani:uint; private var sparkle_img:CroppedImage; private var main_frame:int; private var img_src:Class; private var fade_frame:int; public var dying:Boolean; private var slide:Move; private var action:int; public var busy:Boolean; private var sparkle_src:Class; public function Spirit(x_pos:int, y_pos:int){ img_src = Spirit_img_src; sparkle_src = Spirit_sparkle_src; slide = new Move(this); super(); dying = false; img = new CroppedImage(0, 0, 37, 37, 0, 0, 444, 37, img_src); addChild(img); sparkle_img = new CroppedImage(1, 1, 35, 35, 0, 0, 280, 35, sparkle_src); addChild(sparkle_img); this.x_pos = x_pos; x = ((35 * x_pos) - 1); this.y_pos = y_pos; y = ((35 * y_pos) - 1); img.alpha = 0; addEventListener(Event.ADDED, fadeIn); slide.duration = 500; slide.target = this; slide.addEventListener(EffectEvent.EFFECT_END, doneWalk); addEventListener(MouseEvent.CLICK, report); busy = false; } public function stop():void{ clearInterval(main_ani); } private function fadeInFrame():void{ fade_frame++; if (fade_frame == 8){ startRegularAnimation(); busy = false; } else { sparkle_img.scrollImage(35, 0); img.alpha = (img.alpha + 0.1); }; } private function fadeIn(ev:Event):void{ removeEventListener(Event.ADDED, fadeIn); fade_frame = 0; fade_ani = setInterval(fadeInFrame, 40); busy = true; } public function walk(dir:int, action:int=1):void{ if (fade_ani != 0){ trace("halting spirit fade"); startRegularAnimation(); }; slide.xBy = (Oliver.xStep(dir) * 35); slide.yBy = (Oliver.yStep(dir) * 35); slide.play(); x_pos = (x_pos + Oliver.xStep(dir)); y_pos = (y_pos + Oliver.yStep(dir)); if ((((((((x_pos < 0)) || ((x_pos > 14)))) || ((y_pos < 0)))) || ((y_pos > 14)))){ action = 3; }; this.action = action; if (action == 3){ fadeOut(3, true); }; busy = true; } public function fadeOut(action:int, suppress_callback:Boolean=false):void{ if (fade_ani != 0){ Oliver.app.animationCallback(this, this.action); clearInterval(fade_ani); img.alpha = 1; }; if (!suppress_callback){ this.action = action; }; fade_frame = 0; sparkle_img.visible = true; sparkle_img.moveImage(245, 0); dying = true; fade_ani = setInterval(fadeOutFrame, 100, suppress_callback); busy = true; } private function report(ev:MouseEvent):void{ trace(((((((("spirit #" + Oliver.app.spirits.indexOf(this)) + " at ") + x_pos) + ",") + y_pos) + " alpha = ") + img.alpha)); } private function startRegularAnimation():void{ img.alpha = 1; sparkle_img.visible = false; clearInterval(fade_ani); fade_ani = 0; main_frame = 0; main_ani = setInterval(changeFrame, 100); Oliver.app.animationCallback(this, action); } private function doneWalk(ev:EffectEvent):void{ Oliver.app.animationCallback(this, action); busy = false; } private function fadeOutFrame(suppress_callback:Boolean):void{ fade_frame++; if (fade_frame == 8){ this.visible = false; clearInterval(fade_ani); clearInterval(main_ani); if (!suppress_callback){ Oliver.app.animationCallback(this, action); }; busy = false; } else { img.alpha = (img.alpha - 0.12); sparkle_img.scrollImage(-35, 0); }; } private function changeFrame():void{ main_frame++; if (main_frame == 12){ main_frame = 0; img.moveImage(0, 0); } else { img.scrollImage(37, 0); }; } public function setPosition(x:int, y:int){ x_pos = x; y_pos = y; this.x = ((x_pos * 35) - 1); this.y = ((y_pos * 35) - 1); } public function standby():void{ if ((((this.parent == null)) || (!(this.visible)))){ trace("Destroying invisible spirit"); Oliver.app.destroySprite(this); return; }; if (fade_ani != 0){ trace("halting spirit fade"); startRegularAnimation(); }; x = ((x_pos * 35) - 1); y = ((y_pos * 35) - 1); busy = false; } } }//package
Section 502
//Spirit_img_src (Spirit_img_src) package { import mx.core.*; public class Spirit_img_src extends BitmapAsset { } }//package
Section 503
//Spirit_sparkle_src (Spirit_sparkle_src) package { import mx.core.*; public class Spirit_sparkle_src extends BitmapAsset { } }//package
Section 504
//TeleportFlash (TeleportFlash) package { import flash.events.*; public class TeleportFlash extends PulseAnimation { private var teleport_src:Class; public function TeleportFlash(x_pos:int, y_pos:int){ teleport_src = TeleportFlash_teleport_src; super(40, 40, 7, 80, teleport_src, true); addEventListener(Event.ADDED, start); x = ((x_pos * 35) - 3); y = ((y_pos * 35) - 3); } private function start(ev:Event):void{ removeEventListener(Event.ADDED, start); play(); } } }//package
Section 505
//TeleportFlash_teleport_src (TeleportFlash_teleport_src) package { import mx.core.*; public class TeleportFlash_teleport_src extends BitmapAsset { } }//package
Section 506
//TilingComposite (TilingComposite) package { public class TilingComposite extends SingleSourceComposite { public function TilingComposite(){ super(); } override public function initialize():void{ super.initialize(); } public function fill():void{ var j:int; var h_count:int = ((width / source_image.width) + 1); var v_count:int = ((height / source_image.height) + 1); var i:int; while (i < h_count) { j = 0; while (j < v_count) { copyPixels(0, 0, source_image.width, source_image.height, (i * source_image.width), (j * source_image.height)); j++; }; i++; }; } } }//package
Section 507
//Trap (Trap) package { public class Trap extends PulseAnimation { public var exploding:Boolean; private var img_src:Class; private var ani:uint; public var x_pos; public var y_pos; public function Trap(x_pos:int, y_pos:int){ img_src = Trap_img_src; super(26, 26, 3, 200, img_src); this.x_pos = x_pos; this.y_pos = y_pos; x = ((x_pos * 35) + 5); y = ((y_pos * 35) + 5); alpha = 0.9; exploding = false; play(); } } }//package
Section 508
//Trap_img_src (Trap_img_src) package { import mx.core.*; public class Trap_img_src extends BitmapAsset { } }//package
Section 509
//Wand (Wand) package { public class Wand extends MagicItem { private var orb_src:Class; private var button_mo:Class; private var button_on:Class; public var energy:int; private var cost_num:CroppedImage; private var orb:CroppedImage; private var button_off:Class; private var power_num1:CroppedImage; private var power_num2:CroppedImage; private var bg_src:Class; private var num_src:Class; private static var INITIAL_CHARGES = 20; public function Wand(){ orb_src = Wand_orb_src; bg_src = Wand_bg_src; num_src = Wand_num_src; button_on = Wand_button_on; button_mo = Wand_button_mo; button_off = Wand_button_off; bg_img = bg_src; super(); y = 303; button.setSources(button_on, button_mo, button_off, true); orb = new CroppedImage(56, 0, 50, 50, 0, 0, 200, 50, orb_src); power_num1 = new CroppedImage(74, 15, 13, 13, 0, 0, 13, 130, num_src); power_num2 = new CroppedImage(83, 15, 13, 13, 0, 0, 13, 130, num_src); cost_num = new CroppedImage(14, 78, 13, 13, 0, 0, 13, 130, num_src); addChildAt(orb, 1); addChildAt(power_num1, 2); addChildAt(power_num2, 2); addChildAt(cost_num, 2); energy = INITIAL_CHARGES; changeSpell(Oliver.STONEWALL); } public function gainCharges(amt:int):void{ energy = Math.min(99, Math.max((energy + amt), 0)); refreshCharges(); } override public function refreshCharges():void{ if (Oliver.app.mode == Oliver.SIMPLE){ cost = 1; cost_num.visible = false; } else { cost = Oliver.spell_costs[spell]; if ((((Oliver.app.mode == Oliver.DELUXE)) && ((Oliver.app.spell_mastery[spell] == 4)))){ cost--; }; cost_num.visible = true; cost_num.moveImage(0, (cost * 13)); }; orb.moveImage((50 * Math.min(int((energy / cost)), 3)), 0); if (energy < cost){ button.turnOff(); } else { button.turnOn(); }; if (energy >= 10){ power_num2.x = 83; power_num2.moveImage(0, ((energy % 10) * 13)); power_num1.visible = true; power_num1.moveImage(0, (int((energy / 10)) * 13)); } else { power_num1.visible = false; power_num2.x = 79; power_num2.moveImage(0, (energy * 13)); }; } override protected function querySpellAvailable():Boolean{ return ((energy >= cost)); } override protected function deductCharge():void{ energy = (energy - cost); refreshCharges(); } public function resetCharges():void{ if (Oliver.app.mode == Oliver.SIMPLE){ energy = 3; } else { energy = INITIAL_CHARGES; }; refreshCharges(); } } }//package
Section 510
//Wand_bg_src (Wand_bg_src) package { import mx.core.*; public class Wand_bg_src extends BitmapAsset { } }//package
Section 511
//Wand_button_mo (Wand_button_mo) package { import mx.core.*; public class Wand_button_mo extends BitmapAsset { } }//package
Section 512
//Wand_button_off (Wand_button_off) package { import mx.core.*; public class Wand_button_off extends BitmapAsset { } }//package
Section 513
//Wand_button_on (Wand_button_on) package { import mx.core.*; public class Wand_button_on extends BitmapAsset { } }//package
Section 514
//Wand_num_src (Wand_num_src) package { import mx.core.*; public class Wand_num_src extends BitmapAsset { } }//package
Section 515
//Wand_orb_src (Wand_orb_src) package { import mx.core.*; public class Wand_orb_src extends BitmapAsset { } }//package
Section 516
//VolumeControl (VolumeControl) package { import flash.display.*; import flash.geom.*; import flash.media.*; import flash.text.*; import mx.core.*; import flash.events.*; import mx.events.*; import mx.styles.*; import mx.controls.*; import mx.containers.*; import mx.binding.*; import flash.utils.*; import flash.system.*; import flash.filters.*; import flash.ui.*; import flash.net.*; import flash.external.*; import flash.accessibility.*; import flash.debugger.*; import flash.errors.*; import flash.printing.*; import flash.profiler.*; import flash.xml.*; public class VolumeControl extends Canvas implements IBindingClient { var buttons:Array; private var _1351240932glasspane:Box; var current_vol:int;// = 4 var _1536889077check_sq:Class; mx_internal var _watchers:Array; var hue_effect:ColorMatrixFilter; private var _3029959box2:Image; mx_internal var _bindingsByDestination:Object; mx_internal var _bindingsBeginWithWord:Object; private var _3029958box1:Image; private var _3029960box3:Image; private var _3029961box4:Image; var matrix_array:Array; private var _3029962box5:Image; mx_internal var _bindings:Array; private var _documentDescriptor_:UIComponentDescriptor; var _398917048check_off:Class; private static var _watcherSetupUtil:IWatcherSetupUtil; public function VolumeControl(){ _documentDescriptor_ = new UIComponentDescriptor({type:Canvas, propertiesFactory:function ():Object{ return ({width:85, height:13, childDescriptors:[new UIComponentDescriptor({type:Image, id:"box1", propertiesFactory:function ():Object{ return ({x:0}); }}), new UIComponentDescriptor({type:Image, id:"box2", propertiesFactory:function ():Object{ return ({x:18}); }}), new UIComponentDescriptor({type:Image, id:"box3", propertiesFactory:function ():Object{ return ({x:36}); }}), new UIComponentDescriptor({type:Image, id:"box4", propertiesFactory:function ():Object{ return ({x:54}); }}), new UIComponentDescriptor({type:Image, id:"box5", propertiesFactory:function ():Object{ return ({x:72}); }}), new UIComponentDescriptor({type:Box, id:"glasspane", propertiesFactory:function ():Object{ return ({width:85, height:13}); }})]}); }}); _398917048check_off = VolumeControl_check_off; _1536889077check_sq = VolumeControl_check_sq; matrix_array = [1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1.3, 0, 0, 0, 0, 0, 0, 1, 0]; hue_effect = new ColorMatrixFilter(matrix_array); _bindings = []; _watchers = []; _bindingsByDestination = {}; _bindingsBeginWithWord = {}; super(); mx_internal::_document = this; if (!this.styleDeclaration){ this.styleDeclaration = new CSSStyleDeclaration(); }; this.styleDeclaration.defaultFactory = function ():void{ this.backgroundColor = 1975087; this.backgroundAlpha = 1; }; this.width = 85; this.height = 13; this.addEventListener("creationComplete", ___VolumeControl_Canvas1_creationComplete); } public function set box1(:Image):void{ var _local2:Object = this._3029958box1; if (_local2 !== ){ this._3029958box1 = ; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "box1", _local2, )); }; } public function set box2(:Image):void{ var _local2:Object = this._3029959box2; if (_local2 !== ){ this._3029959box2 = ; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "box2", _local2, )); }; } private function setGlow(pos:int):void{ var i:int; while (i < 5) { if (i <= pos){ Image(buttons[i]).filters = [hue_effect]; } else { Image(buttons[i]).filters = new Array(0); }; i++; }; } private function mouseMove(ev:MouseEvent):void{ setButtons(mousePos()); setGlow(mousePos()); } override public function initialize():void{ var target:VolumeControl; var watcherSetupUtilClass:Object; mx_internal::setDocumentDescriptor(_documentDescriptor_); var bindings:Array = _VolumeControl_bindingsSetup(); var watchers:Array = []; target = this; if (_watcherSetupUtil == null){ watcherSetupUtilClass = getDefinitionByName("_VolumeControlWatcherSetupUtil"); var _local2 = watcherSetupUtilClass; _local2["init"](null); }; _watcherSetupUtil.setup(this, function (*:String){ return (target[*]); }, bindings, watchers); var i:uint; while (i < bindings.length) { Binding(bindings[i]).execute(); i = (i + 1); }; mx_internal::_bindings = mx_internal::_bindings.concat(bindings); mx_internal::_watchers = mx_internal::_watchers.concat(watchers); super.initialize(); } public function set box4(:Image):void{ var _local2:Object = this._3029961box4; if (_local2 !== ){ this._3029961box4 = ; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "box4", _local2, )); }; } public function set box5(:Image):void{ var _local2:Object = this._3029962box5; if (_local2 !== ){ this._3029962box5 = ; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "box5", _local2, )); }; } public function setVolume():Number{ current_vol = (mousePos() + 1); return ((current_vol * 0.2)); } public function set box3(:Image):void{ var _local2:Object = this._3029960box3; if (_local2 !== ){ this._3029960box3 = ; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "box3", _local2, )); }; } private function cancelGlow():void{ var i:int; while (i < 5) { Image(buttons[i]).filters = new Array(0); i++; }; } public function ___VolumeControl_Canvas1_creationComplete(event:FlexEvent):void{ setup(); } private function _VolumeControl_bindingExprs():void{ var _local1:*; _local1 = check_sq; _local1 = check_sq; _local1 = check_sq; _local1 = check_sq; _local1 = check_off; } private function setButtons(pos:int):void{ var i:int; while (i < 5) { if (i <= pos){ Image(buttons[i]).source = check_sq; } else { Image(buttons[i]).source = check_off; }; i++; }; } public function get box1():Image{ return (this._3029958box1); } public function get box2():Image{ return (this._3029959box2); } public function get box3():Image{ return (this._3029960box3); } public function get box4():Image{ return (this._3029961box4); } public function set glasspane(:Box):void{ var _local2:Object = this._1351240932glasspane; if (_local2 !== ){ this._1351240932glasspane = ; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "glasspane", _local2, )); }; } public function get box5():Image{ return (this._3029962box5); } private function _VolumeControl_bindingsSetup():Array{ var binding:Binding; var result:Array = []; binding = new Binding(this, function ():Object{ return (check_sq); }, function (:Object):void{ box1.source = ; }, "box1.source"); result[0] = binding; binding = new Binding(this, function ():Object{ return (check_sq); }, function (:Object):void{ box2.source = ; }, "box2.source"); result[1] = binding; binding = new Binding(this, function ():Object{ return (check_sq); }, function (:Object):void{ box3.source = ; }, "box3.source"); result[2] = binding; binding = new Binding(this, function ():Object{ return (check_sq); }, function (:Object):void{ box4.source = ; }, "box4.source"); result[3] = binding; binding = new Binding(this, function ():Object{ return (check_off); }, function (:Object):void{ box5.source = ; }, "box5.source"); result[4] = binding; return (result); } public function get glasspane():Box{ return (this._1351240932glasspane); } function get check_off():Class{ return (this._398917048check_off); } private function mouseOut(ev:MouseEvent):void{ trace("foo!"); setButtons((current_vol - 1)); cancelGlow(); } function set check_sq(value:Class):void{ var oldValue:Object = this._1536889077check_sq; if (oldValue !== value){ this._1536889077check_sq = value; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "check_sq", oldValue, value)); }; } private function mousePos():int{ return (((mouseX + 3) / 18)); } function get check_sq():Class{ return (this._1536889077check_sq); } public function setup():void{ addEventListener(MouseEvent.MOUSE_MOVE, mouseMove); glasspane.addEventListener(MouseEvent.MOUSE_OUT, mouseOut); buttons = [box1, box2, box3, box4, box5]; } function set check_off(value:Class):void{ var oldValue:Object = this._398917048check_off; if (oldValue !== value){ this._398917048check_off = value; this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "check_off", oldValue, value)); }; } public static function set watcherSetupUtil(:IWatcherSetupUtil):void{ VolumeControl._watcherSetupUtil = ; } } }//package
Section 517
//VolumeControl_check_off (VolumeControl_check_off) package { import mx.core.*; public class VolumeControl_check_off extends BitmapAsset { } }//package
Section 518
//VolumeControl_check_sq (VolumeControl_check_sq) package { import mx.core.*; public class VolumeControl_check_sq extends BitmapAsset { } }//package

Library Items

Symbol 1 BinaryData {LoadingAnim_loading_anim} [LoadingAnim_loading_anim]
Symbol 2 Bitmap {Oliver_dir_arrows_src} [Oliver_dir_arrows_src]
Symbol 3 Bitmap {Oliver_arrow5_mo} [Oliver_arrow5_mo]
Symbol 4 Bitmap {Oliver_arrow7} [Oliver_arrow7]
Symbol 5 Bitmap {Oliver_arrow6} [Oliver_arrow6]
Symbol 6 Bitmap {Oliver_pass_mo} [Oliver_pass_mo]
Symbol 7 Bitmap {Oliver_play_mo} [Oliver_play_mo]
Symbol 8 Sound {Oliver_music_source} [Oliver_music_source]
Symbol 9 Bitmap {Oliver__embed_mxml_assets_crosshairs_gif_1406757933} [Oliver__embed_mxml_assets_crosshairs_gif_1406757933]
Symbol 10 Bitmap {Oliver_arrow3} [Oliver_arrow3]
Symbol 11 Bitmap {Oliver_arrow2} [Oliver_arrow2]
Symbol 12 Bitmap {Oliver_arrow4} [Oliver_arrow4]
Symbol 13 Bitmap {Oliver_dis_bolt} [Oliver_dis_bolt]
Symbol 14 Bitmap {Oliver_med_mo} [Oliver_med_mo]
Symbol 15 Bitmap {Oliver_dis_bolt_diag} [Oliver_dis_bolt_diag]
Symbol 16 Bitmap {Oliver__embed_mxml_assets_timestop_overlay_png_358613933} [Oliver__embed_mxml_assets_timestop_overlay_png_358613933]
Symbol 17 Bitmap {Oliver_bg_texture} [Oliver_bg_texture]
Symbol 18 Bitmap {Oliver_pass} [Oliver_pass]
Symbol 19 Bitmap {Oliver_play} [Oliver_play]
Symbol 20 Bitmap {Oliver_arrow5} [Oliver_arrow5]
Symbol 21 Bitmap {Oliver_arrow0_mo} [Oliver_arrow0_mo]
Symbol 22 Bitmap {Oliver_arrow0} [Oliver_arrow0]
Symbol 23 Bitmap {Oliver_arrow2_mo} [Oliver_arrow2_mo]
Symbol 24 Bitmap {Oliver_tileset} [Oliver_tileset]
Symbol 25 Bitmap {Oliver_arrow1} [Oliver_arrow1]
Symbol 26 Bitmap {Oliver_arrow1_mo} [Oliver_arrow1_mo]
Symbol 27 Bitmap {Oliver_arrow4_mo} [Oliver_arrow4_mo]
Symbol 28 Bitmap {Oliver__embed_mxml_assets_ui_mockup_png_749493075} [Oliver__embed_mxml_assets_ui_mockup_png_749493075]
Symbol 29 Bitmap {Oliver_med} [Oliver_med]
Symbol 30 Bitmap {Oliver_arrow6_mo} [Oliver_arrow6_mo]
Symbol 31 Bitmap {Oliver_arrow7_mo} [Oliver_arrow7_mo]
Symbol 32 Bitmap {Oliver_fire_shield} [Oliver_fire_shield]
Symbol 33 Bitmap {Oliver_arrow3_mo} [Oliver_arrow3_mo]
Symbol 34 GraphicUsed by:35
Symbol 35 MovieClip {_CursorManagerStyle__embed_css_Assets_swf_mx_skins_cursor_BusyCursor_1461192554} [mx.skins.cursor.BusyCursor]Uses:34
Symbol 36 BitmapUsed by:37
Symbol 37 GraphicUses:36Used by:38
Symbol 38 MovieClip {_SWFLoaderStyle__embed_css_Assets_swf___brokenImage_323519580} [__brokenImage]Uses:37
Symbol 39 BinaryData {Oliver_splash_src_dataClass} [Oliver_splash_src_dataClass]
Symbol 40 Bitmap {Help_help2} [Help_help2]
Symbol 41 Bitmap {Help_close_src} [Help_close_src]
Symbol 42 Bitmap {Help_back_mo} [Help_back_mo]
Symbol 43 Bitmap {Help_next_off} [Help_next_off]
Symbol 44 Bitmap {Help_help3} [Help_help3]
Symbol 45 Bitmap {Help_close_mo} [Help_close_mo]
Symbol 46 Bitmap {Help_back_src} [Help_back_src]
Symbol 47 Bitmap {Help_next_src} [Help_next_src]
Symbol 48 Bitmap {Help_next_mo} [Help_next_mo]
Symbol 49 Bitmap {Help_help1} [Help_help1]
Symbol 50 Bitmap {Help_back_off} [Help_back_off]
Symbol 51 Bitmap {LightningBolt_img_src} [LightningBolt_img_src]
Symbol 52 Bitmap {LevelIntro__embed_mxml_assets_level_intro_bg_png_685019549} [LevelIntro__embed_mxml_assets_level_intro_bg_png_685019549]
Symbol 53 Bitmap {NewScore__embed_mxml_assets_name_submit_bg_png_621482723} [NewScore__embed_mxml_assets_name_submit_bg_png_621482723]
Symbol 54 Bitmap {NewScore_submit_mo} [NewScore_submit_mo]
Symbol 55 Bitmap {NewScore_submit_src} [NewScore_submit_src]
Symbol 56 Bitmap {Rock_src} [Rock_src]
Symbol 57 Bitmap {EndGame__embed_mxml_assets_endgame_bg_png_1475688797} [EndGame__embed_mxml_assets_endgame_bg_png_1475688797]
Symbol 58 Bitmap {NumberRenderer_big} [NumberRenderer_big]
Symbol 59 Bitmap {NumberRenderer_small} [NumberRenderer_small]
Symbol 60 Bitmap {NumberRenderer_med} [NumberRenderer_med]
Symbol 61 Bitmap {NumberRenderer_small_dk} [NumberRenderer_small_dk]
Symbol 62 Bitmap {NumberRenderer_ms} [NumberRenderer_ms]
Symbol 63 Bitmap {NumberRenderer_tiny} [NumberRenderer_tiny]
Symbol 64 Bitmap {DynamicButton__embed_mxml_assets_big_button_gif_394338733} [DynamicButton__embed_mxml_assets_big_button_gif_394338733]
Symbol 65 Bitmap {DynamicButton__embed_mxml_assets_big_button_pushed_gif_1460635709} [DynamicButton__embed_mxml_assets_big_button_pushed_gif_1460635709]
Symbol 66 Bitmap {DynamicButton_text_src} [DynamicButton_text_src]
Symbol 67 Bitmap {MagicItem_desc_src} [MagicItem_desc_src]
Symbol 68 Bitmap {MagicItem_spellnames} [MagicItem_spellnames]
Symbol 69 Bitmap {MagicItem_img_src} [MagicItem_img_src]
Symbol 70 Bitmap {MagicItem_desc_bg_src} [MagicItem_desc_bg_src]
Symbol 71 Bitmap {Wand_bg_src} [Wand_bg_src]
Symbol 72 Bitmap {Wand_button_on} [Wand_button_on]
Symbol 73 Bitmap {Wand_num_src} [Wand_num_src]
Symbol 74 Bitmap {Wand_button_off} [Wand_button_off]
Symbol 75 Bitmap {Wand_orb_src} [Wand_orb_src]
Symbol 76 Bitmap {Wand_button_mo} [Wand_button_mo]
Symbol 77 Bitmap {Amulet_button_off} [Amulet_button_off]
Symbol 78 Bitmap {Amulet_bg_src} [Amulet_bg_src]
Symbol 79 Bitmap {Amulet_button_mo} [Amulet_button_mo]
Symbol 80 Bitmap {Amulet_num_src} [Amulet_num_src]
Symbol 81 Bitmap {Amulet_button_on} [Amulet_button_on]
Symbol 82 Bitmap {Amulet_overlay_src} [Amulet_overlay_src]
Symbol 83 Bitmap {Trap_img_src} [Trap_img_src]
Symbol 84 Bitmap {OptionsBar_menu_src} [OptionsBar_menu_src]
Symbol 85 Bitmap {OptionsBar_background} [OptionsBar_background]
Symbol 86 Bitmap {OptionsBar_check_on} [OptionsBar_check_on]
Symbol 87 Bitmap {OptionsBar_check_off} [OptionsBar_check_off]
Symbol 88 Bitmap {OptionsBar_more_src} [OptionsBar_more_src]
Symbol 89 Bitmap {OptionsBar_help_src} [OptionsBar_help_src]
Symbol 90 Bitmap {MainMenu_instructions_src} [MainMenu_instructions_src]
Symbol 91 Bitmap {MainMenu_play_mo} [MainMenu_play_mo]
Symbol 92 Bitmap {MainMenu_instructions_mo} [MainMenu_instructions_mo]
Symbol 93 Bitmap {MainMenu__embed_mxml_assets_main_menu_bg_png_1407733971} [MainMenu__embed_mxml_assets_main_menu_bg_png_1407733971]
Symbol 94 Bitmap {MainMenu_play_src} [MainMenu_play_src]
Symbol 95 Bitmap {Scroll_button_off} [Scroll_button_off]
Symbol 96 Bitmap {Scroll_button_mo} [Scroll_button_mo]
Symbol 97 Bitmap {Scroll_button_on} [Scroll_button_on]
Symbol 98 Bitmap {Scroll_scroll_img} [Scroll_scroll_img]
Symbol 99 Bitmap {Explosion_img_src} [Explosion_img_src]
Symbol 100 Bitmap {Golem_collision_ani} [Golem_collision_ani]
Symbol 101 Bitmap {Golem_punch_ani} [Golem_punch_ani]
Symbol 102 Bitmap {Golem_walk_ani} [Golem_walk_ani]
Symbol 103 Bitmap {Golem_disint_ani} [Golem_disint_ani]
Symbol 104 Bitmap {SimpleInterlevel__embed_mxml_assets_simple_level_complete_png_503005507} [SimpleInterlevel__embed_mxml_assets_simple_level_complete_png_503005507]
Symbol 105 Bitmap {SimpleInterlevel_m_bonus_src} [SimpleInterlevel_m_bonus_src]
Symbol 106 Bitmap {SimpleInterlevel__embed_mxml_assets_minus_png_1072943315} [SimpleInterlevel__embed_mxml_assets_minus_png_1072943315]
Symbol 107 Bitmap {SimpleInterlevel__embed_mxml_assets_level_complete1_png_367701331} [SimpleInterlevel__embed_mxml_assets_level_complete1_png_367701331]
Symbol 108 Bitmap {TeleportFlash_teleport_src} [TeleportFlash_teleport_src]
Symbol 109 Bitmap {Interlevel_m_bonus_src} [Interlevel_m_bonus_src]
Symbol 110 Bitmap {Interlevel__embed_mxml_assets_magic_select_bg_png_868888227} [Interlevel__embed_mxml_assets_magic_select_bg_png_868888227]
Symbol 111 Bitmap {Interlevel__embed_mxml_assets_minus_png_1072943315} [Interlevel__embed_mxml_assets_minus_png_1072943315]
Symbol 112 Bitmap {Interlevel__embed_mxml_assets_level_complete1_png_367701331} [Interlevel__embed_mxml_assets_level_complete1_png_367701331]
Symbol 113 Bitmap {Interlevel__embed_mxml_assets_level_complete_bg_png_730825389} [Interlevel__embed_mxml_assets_level_complete_bg_png_730825389]
Symbol 114 Bitmap {Interlevel_mastery_src} [Interlevel_mastery_src]
Symbol 115 Bitmap {Interlevel_cost_src} [Interlevel_cost_src]
Symbol 116 Bitmap {Basilisk_collide_ani} [Basilisk_collide_ani]
Symbol 117 Bitmap {Basilisk_walk_ani} [Basilisk_walk_ani]
Symbol 118 Bitmap {Basilisk_disintegrate_ani} [Basilisk_disintegrate_ani]
Symbol 119 Bitmap {Spirit_sparkle_src} [Spirit_sparkle_src]
Symbol 120 Bitmap {Spirit_img_src} [Spirit_img_src]
Symbol 121 Sound {SoundManager_golem_cr_src} [SoundManager_golem_cr_src]
Symbol 122 Sound {SoundManager_die_src} [SoundManager_die_src]
Symbol 123 Sound {SoundManager_walk_src} [SoundManager_walk_src]
Symbol 124 Sound {SoundManager_capture_src} [SoundManager_capture_src]
Symbol 125 Sound {SoundManager_stonewall_src} [SoundManager_stonewall_src]
Symbol 126 Sound {SoundManager_lightning_src} [SoundManager_lightning_src]
Symbol 127 Sound {SoundManager_trap_src} [SoundManager_trap_src]
Symbol 128 Sound {SoundManager_teleport_src} [SoundManager_teleport_src]
Symbol 129 Sound {SoundManager_fireball_src} [SoundManager_fireball_src]
Symbol 130 Sound {SoundManager_spirit_cr_src} [SoundManager_spirit_cr_src]
Symbol 131 Sound {SoundManager_earthquake_src} [SoundManager_earthquake_src]
Symbol 132 Sound {SoundManager_slither_src} [SoundManager_slither_src]
Symbol 133 Sound {SoundManager_rock_cr_src} [SoundManager_rock_cr_src]
Symbol 134 Bitmap {Hiscores__embed_mxml_assets_hiscore_bg_png_717226013} [Hiscores__embed_mxml_assets_hiscore_bg_png_717226013]
Symbol 135 Bitmap {GameOver_bg_blank} [GameOver_bg_blank]
Symbol 136 Bitmap {GameOver_bg_fields} [GameOver_bg_fields]
Symbol 137 Bitmap {Player_stone_src} [Player_stone_src]
Symbol 138 Bitmap {Player_walk_ani} [Player_walk_ani]
Symbol 139 Bitmap {Player_teleport_stone_src} [Player_teleport_stone_src]
Symbol 140 Bitmap {Player_teleport_ani} [Player_teleport_ani]
Symbol 141 Bitmap {ItemSparkle_sprk_src} [ItemSparkle_sprk_src]
Symbol 142 Bitmap {VolumeControl_check_sq} [VolumeControl_check_sq]
Symbol 143 Bitmap {VolumeControl_check_off} [VolumeControl_check_off]
Symbol 144 Bitmap {SmileyButton_SmileySmall} [SmileyButton_SmileySmall]
Symbol 145 Bitmap {MagicSparkle_sparkle_src} [MagicSparkle_sparkle_src]
Symbol 146 Bitmap {SpellChooser_img_src} [SpellChooser_img_src]
Symbol 147 Bitmap {SpellChooser_desc_src} [SpellChooser_desc_src]
Symbol 148 Bitmap {SpellChooser__embed_mxml_assets_numberbox_gif_1622951123} [SpellChooser__embed_mxml_assets_numberbox_gif_1622951123]
Symbol 149 Bitmap {SpellChooser_name_src} [SpellChooser_name_src]
Symbol 150 Bitmap {Rewards_img_src} [Rewards_img_src]
Symbol 151 MovieClip {Oliver_splash_src}
Symbol 152 Bitmap {Oliver__embed_mxml_assets_first_play_png_805245507}

Special Tags

FileAttributes (69)Timeline Frame 1Access network only, Metadata present, AS3.
SWFMetaData (77)Timeline Frame 1458 bytes "<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'><rdf:Description rdf:about='' xmlns ..."
ScriptLimits (65)Timeline Frame 1MaxRecursionDepth: 1000, ScriptTimeout: 60 seconds
ExportAssets (56)Timeline Frame 1Symbol 1 as "LoadingAnim_loading_anim"
ExportAssets (56)Timeline Frame 2Symbol 2 as "Oliver_dir_arrows_src"
ExportAssets (56)Timeline Frame 2Symbol 3 as "Oliver_arrow5_mo"
ExportAssets (56)Timeline Frame 2Symbol 4 as "Oliver_arrow7"
ExportAssets (56)Timeline Frame 2Symbol 5 as "Oliver_arrow6"
ExportAssets (56)Timeline Frame 2Symbol 6 as "Oliver_pass_mo"
ExportAssets (56)Timeline Frame 2Symbol 7 as "Oliver_play_mo"
ExportAssets (56)Timeline Frame 2Symbol 8 as "Oliver_music_source"
ExportAssets (56)Timeline Frame 2Symbol 9 as "Oliver__embed_mxml_assets_crosshairs_gif_1406757933"
ExportAssets (56)Timeline Frame 2Symbol 10 as "Oliver_arrow3"
ExportAssets (56)Timeline Frame 2Symbol 11 as "Oliver_arrow2"
ExportAssets (56)Timeline Frame 2Symbol 12 as "Oliver_arrow4"
ExportAssets (56)Timeline Frame 2Symbol 13 as "Oliver_dis_bolt"
ExportAssets (56)Timeline Frame 2Symbol 14 as "Oliver_med_mo"
ExportAssets (56)Timeline Frame 2Symbol 15 as "Oliver_dis_bolt_diag"
ExportAssets (56)Timeline Frame 2Symbol 16 as "Oliver__embed_mxml_assets_timestop_overlay_png_358613933"
ExportAssets (56)Timeline Frame 2Symbol 17 as "Oliver_bg_texture"
ExportAssets (56)Timeline Frame 2Symbol 18 as "Oliver_pass"
ExportAssets (56)Timeline Frame 2Symbol 19 as "Oliver_play"
ExportAssets (56)Timeline Frame 2Symbol 20 as "Oliver_arrow5"
ExportAssets (56)Timeline Frame 2Symbol 21 as "Oliver_arrow0_mo"
ExportAssets (56)Timeline Frame 2Symbol 22 as "Oliver_arrow0"
ExportAssets (56)Timeline Frame 2Symbol 23 as "Oliver_arrow2_mo"
ExportAssets (56)Timeline Frame 2Symbol 24 as "Oliver_tileset"
ExportAssets (56)Timeline Frame 2Symbol 25 as "Oliver_arrow1"
ExportAssets (56)Timeline Frame 2Symbol 26 as "Oliver_arrow1_mo"
ExportAssets (56)Timeline Frame 2Symbol 27 as "Oliver_arrow4_mo"
ExportAssets (56)Timeline Frame 2Symbol 28 as "Oliver__embed_mxml_assets_ui_mockup_png_749493075"
ExportAssets (56)Timeline Frame 2Symbol 29 as "Oliver_med"
ExportAssets (56)Timeline Frame 2Symbol 30 as "Oliver_arrow6_mo"
ExportAssets (56)Timeline Frame 2Symbol 31 as "Oliver_arrow7_mo"
ExportAssets (56)Timeline Frame 2Symbol 32 as "Oliver_fire_shield"
ExportAssets (56)Timeline Frame 2Symbol 33 as "Oliver_arrow3_mo"
ExportAssets (56)Timeline Frame 2Symbol 35 as "mx.skins.cursor.BusyCursor"
ExportAssets (56)Timeline Frame 2Symbol 38 as "__brokenImage"
ExportAssets (56)Timeline Frame 2Symbol 39 as "Oliver_splash_src_dataClass"
ExportAssets (56)Timeline Frame 2Symbol 40 as "Help_help2"
ExportAssets (56)Timeline Frame 2Symbol 41 as "Help_close_src"
ExportAssets (56)Timeline Frame 2Symbol 42 as "Help_back_mo"
ExportAssets (56)Timeline Frame 2Symbol 43 as "Help_next_off"
ExportAssets (56)Timeline Frame 2Symbol 44 as "Help_help3"
ExportAssets (56)Timeline Frame 2Symbol 45 as "Help_close_mo"
ExportAssets (56)Timeline Frame 2Symbol 46 as "Help_back_src"
ExportAssets (56)Timeline Frame 2Symbol 47 as "Help_next_src"
ExportAssets (56)Timeline Frame 2Symbol 48 as "Help_next_mo"
ExportAssets (56)Timeline Frame 2Symbol 49 as "Help_help1"
ExportAssets (56)Timeline Frame 2Symbol 50 as "Help_back_off"
ExportAssets (56)Timeline Frame 2Symbol 51 as "LightningBolt_img_src"
ExportAssets (56)Timeline Frame 2Symbol 52 as "LevelIntro__embed_mxml_assets_level_intro_bg_png_685019549"
ExportAssets (56)Timeline Frame 2Symbol 53 as "NewScore__embed_mxml_assets_name_submit_bg_png_621482723"
ExportAssets (56)Timeline Frame 2Symbol 54 as "NewScore_submit_mo"
ExportAssets (56)Timeline Frame 2Symbol 55 as "NewScore_submit_src"
ExportAssets (56)Timeline Frame 2Symbol 56 as "Rock_src"
ExportAssets (56)Timeline Frame 2Symbol 57 as "EndGame__embed_mxml_assets_endgame_bg_png_1475688797"
ExportAssets (56)Timeline Frame 2Symbol 58 as "NumberRenderer_big"
ExportAssets (56)Timeline Frame 2Symbol 59 as "NumberRenderer_small"
ExportAssets (56)Timeline Frame 2Symbol 60 as "NumberRenderer_med"
ExportAssets (56)Timeline Frame 2Symbol 61 as "NumberRenderer_small_dk"
ExportAssets (56)Timeline Frame 2Symbol 62 as "NumberRenderer_ms"
ExportAssets (56)Timeline Frame 2Symbol 63 as "NumberRenderer_tiny"
ExportAssets (56)Timeline Frame 2Symbol 64 as "DynamicButton__embed_mxml_assets_big_button_gif_394338733"
ExportAssets (56)Timeline Frame 2Symbol 65 as "DynamicButton__embed_mxml_assets_big_button_pushed_gif_1460635709"
ExportAssets (56)Timeline Frame 2Symbol 66 as "DynamicButton_text_src"
ExportAssets (56)Timeline Frame 2Symbol 67 as "MagicItem_desc_src"
ExportAssets (56)Timeline Frame 2Symbol 68 as "MagicItem_spellnames"
ExportAssets (56)Timeline Frame 2Symbol 69 as "MagicItem_img_src"
ExportAssets (56)Timeline Frame 2Symbol 70 as "MagicItem_desc_bg_src"
ExportAssets (56)Timeline Frame 2Symbol 71 as "Wand_bg_src"
ExportAssets (56)Timeline Frame 2Symbol 72 as "Wand_button_on"
ExportAssets (56)Timeline Frame 2Symbol 73 as "Wand_num_src"
ExportAssets (56)Timeline Frame 2Symbol 74 as "Wand_button_off"
ExportAssets (56)Timeline Frame 2Symbol 75 as "Wand_orb_src"
ExportAssets (56)Timeline Frame 2Symbol 76 as "Wand_button_mo"
ExportAssets (56)Timeline Frame 2Symbol 77 as "Amulet_button_off"
ExportAssets (56)Timeline Frame 2Symbol 78 as "Amulet_bg_src"
ExportAssets (56)Timeline Frame 2Symbol 79 as "Amulet_button_mo"
ExportAssets (56)Timeline Frame 2Symbol 80 as "Amulet_num_src"
ExportAssets (56)Timeline Frame 2Symbol 81 as "Amulet_button_on"
ExportAssets (56)Timeline Frame 2Symbol 82 as "Amulet_overlay_src"
ExportAssets (56)Timeline Frame 2Symbol 83 as "Trap_img_src"
ExportAssets (56)Timeline Frame 2Symbol 84 as "OptionsBar_menu_src"
ExportAssets (56)Timeline Frame 2Symbol 85 as "OptionsBar_background"
ExportAssets (56)Timeline Frame 2Symbol 86 as "OptionsBar_check_on"
ExportAssets (56)Timeline Frame 2Symbol 87 as "OptionsBar_check_off"
ExportAssets (56)Timeline Frame 2Symbol 88 as "OptionsBar_more_src"
ExportAssets (56)Timeline Frame 2Symbol 89 as "OptionsBar_help_src"
ExportAssets (56)Timeline Frame 2Symbol 90 as "MainMenu_instructions_src"
ExportAssets (56)Timeline Frame 2Symbol 91 as "MainMenu_play_mo"
ExportAssets (56)Timeline Frame 2Symbol 92 as "MainMenu_instructions_mo"
ExportAssets (56)Timeline Frame 2Symbol 93 as "MainMenu__embed_mxml_assets_main_menu_bg_png_1407733971"
ExportAssets (56)Timeline Frame 2Symbol 94 as "MainMenu_play_src"
ExportAssets (56)Timeline Frame 2Symbol 95 as "Scroll_button_off"
ExportAssets (56)Timeline Frame 2Symbol 96 as "Scroll_button_mo"
ExportAssets (56)Timeline Frame 2Symbol 97 as "Scroll_button_on"
ExportAssets (56)Timeline Frame 2Symbol 98 as "Scroll_scroll_img"
ExportAssets (56)Timeline Frame 2Symbol 99 as "Explosion_img_src"
ExportAssets (56)Timeline Frame 2Symbol 100 as "Golem_collision_ani"
ExportAssets (56)Timeline Frame 2Symbol 101 as "Golem_punch_ani"
ExportAssets (56)Timeline Frame 2Symbol 102 as "Golem_walk_ani"
ExportAssets (56)Timeline Frame 2Symbol 103 as "Golem_disint_ani"
ExportAssets (56)Timeline Frame 2Symbol 104 as "SimpleInterlevel__embed_mxml_assets_simple_level_complete_png_503005507"
ExportAssets (56)Timeline Frame 2Symbol 105 as "SimpleInterlevel_m_bonus_src"
ExportAssets (56)Timeline Frame 2Symbol 106 as "SimpleInterlevel__embed_mxml_assets_minus_png_1072943315"
ExportAssets (56)Timeline Frame 2Symbol 107 as "SimpleInterlevel__embed_mxml_assets_level_complete1_png_367701331"
ExportAssets (56)Timeline Frame 2Symbol 108 as "TeleportFlash_teleport_src"
ExportAssets (56)Timeline Frame 2Symbol 109 as "Interlevel_m_bonus_src"
ExportAssets (56)Timeline Frame 2Symbol 110 as "Interlevel__embed_mxml_assets_magic_select_bg_png_868888227"
ExportAssets (56)Timeline Frame 2Symbol 111 as "Interlevel__embed_mxml_assets_minus_png_1072943315"
ExportAssets (56)Timeline Frame 2Symbol 112 as "Interlevel__embed_mxml_assets_level_complete1_png_367701331"
ExportAssets (56)Timeline Frame 2Symbol 113 as "Interlevel__embed_mxml_assets_level_complete_bg_png_730825389"
ExportAssets (56)Timeline Frame 2Symbol 114 as "Interlevel_mastery_src"
ExportAssets (56)Timeline Frame 2Symbol 115 as "Interlevel_cost_src"
ExportAssets (56)Timeline Frame 2Symbol 116 as "Basilisk_collide_ani"
ExportAssets (56)Timeline Frame 2Symbol 117 as "Basilisk_walk_ani"
ExportAssets (56)Timeline Frame 2Symbol 118 as "Basilisk_disintegrate_ani"
ExportAssets (56)Timeline Frame 2Symbol 119 as "Spirit_sparkle_src"
ExportAssets (56)Timeline Frame 2Symbol 120 as "Spirit_img_src"
ExportAssets (56)Timeline Frame 2Symbol 121 as "SoundManager_golem_cr_src"
ExportAssets (56)Timeline Frame 2Symbol 122 as "SoundManager_die_src"
ExportAssets (56)Timeline Frame 2Symbol 123 as "SoundManager_walk_src"
ExportAssets (56)Timeline Frame 2Symbol 124 as "SoundManager_capture_src"
ExportAssets (56)Timeline Frame 2Symbol 125 as "SoundManager_stonewall_src"
ExportAssets (56)Timeline Frame 2Symbol 126 as "SoundManager_lightning_src"
ExportAssets (56)Timeline Frame 2Symbol 127 as "SoundManager_trap_src"
ExportAssets (56)Timeline Frame 2Symbol 128 as "SoundManager_teleport_src"
ExportAssets (56)Timeline Frame 2Symbol 129 as "SoundManager_fireball_src"
ExportAssets (56)Timeline Frame 2Symbol 130 as "SoundManager_spirit_cr_src"
ExportAssets (56)Timeline Frame 2Symbol 131 as "SoundManager_earthquake_src"
ExportAssets (56)Timeline Frame 2Symbol 132 as "SoundManager_slither_src"
ExportAssets (56)Timeline Frame 2Symbol 133 as "SoundManager_rock_cr_src"
ExportAssets (56)Timeline Frame 2Symbol 134 as "Hiscores__embed_mxml_assets_hiscore_bg_png_717226013"
ExportAssets (56)Timeline Frame 2Symbol 135 as "GameOver_bg_blank"
ExportAssets (56)Timeline Frame 2Symbol 136 as "GameOver_bg_fields"
ExportAssets (56)Timeline Frame 2Symbol 137 as "Player_stone_src"
ExportAssets (56)Timeline Frame 2Symbol 138 as "Player_walk_ani"
ExportAssets (56)Timeline Frame 2Symbol 139 as "Player_teleport_stone_src"
ExportAssets (56)Timeline Frame 2Symbol 140 as "Player_teleport_ani"
ExportAssets (56)Timeline Frame 2Symbol 141 as "ItemSparkle_sprk_src"
ExportAssets (56)Timeline Frame 2Symbol 142 as "VolumeControl_check_sq"
ExportAssets (56)Timeline Frame 2Symbol 143 as "VolumeControl_check_off"
ExportAssets (56)Timeline Frame 2Symbol 144 as "SmileyButton_SmileySmall"
ExportAssets (56)Timeline Frame 2Symbol 145 as "MagicSparkle_sparkle_src"
ExportAssets (56)Timeline Frame 2Symbol 146 as "SpellChooser_img_src"
ExportAssets (56)Timeline Frame 2Symbol 147 as "SpellChooser_desc_src"
ExportAssets (56)Timeline Frame 2Symbol 148 as "SpellChooser__embed_mxml_assets_numberbox_gif_1622951123"
ExportAssets (56)Timeline Frame 2Symbol 149 as "SpellChooser_name_src"
ExportAssets (56)Timeline Frame 2Symbol 150 as "Rewards_img_src"
EnableDebugger2 (64)Timeline Frame 131 bytes "u.$1$KM$mEzc4RWvSesmQuRfdglAH.."
DebugMX1 (63)Timeline Frame 1
SerialNumber (41)Timeline Frame 1

Labels

"_Oliver_mx_managers_SystemManager"Frame 1
"Oliver"Frame 2




http://swfchan.com/26/126513/info.shtml
Created: 26/2 -2019 00:14:04 Last modified: 26/2 -2019 00:14:04 Server time: 15/05 -2024 11:09:59