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

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

Economia.swf

This is the info page for
Flash #215799

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


ActionScript [AS3]
Section 1
//MD5 (com.adobe.crypto.MD5) package com.adobe.crypto { import flash.utils.*; import com.adobe.utils.*; public class MD5 { public static var digest:ByteArray; private static function ff(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int):int{ return (transform(f, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7)); } private static function f(_arg1:int, _arg2:int, _arg3:int):int{ return (((_arg1 & _arg2) | (~(_arg1) & _arg3))); } private static function g(_arg1:int, _arg2:int, _arg3:int):int{ return (((_arg1 & _arg3) | (_arg2 & ~(_arg3)))); } private static function h(_arg1:int, _arg2:int, _arg3:int):int{ return (((_arg1 ^ _arg2) ^ _arg3)); } private static function i(_arg1:int, _arg2:int, _arg3:int):int{ return ((_arg2 ^ (_arg1 | ~(_arg3)))); } private static function transform(_arg1:Function, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int, _arg8:int):int{ var _local9:int = (((_arg2 + int(_arg1(_arg3, _arg4, _arg5))) + _arg6) + _arg8); return ((IntUtil.rol(_local9, _arg7) + _arg3)); } private static function hh(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int):int{ return (transform(h, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7)); } public static function hash(_arg1:String):String{ var _local2:ByteArray = new ByteArray(); _local2.writeUTFBytes(_arg1); return (hashBinary(_local2)); } private static function createBlocks(_arg1:ByteArray):Array{ var _local2:Array = new Array(); var _local3:int = (_arg1.length * 8); var _local4 = 0xFF; var _local5:int; while (_local5 < _local3) { _local2[int((_local5 >> 5))] = (_local2[int((_local5 >> 5))] | ((_arg1[(_local5 / 8)] & _local4) << (_local5 % 32))); _local5 = (_local5 + 8); }; _local2[int((_local3 >> 5))] = (_local2[int((_local3 >> 5))] | (128 << (_local3 % 32))); _local2[int(((((_local3 + 64) >>> 9) << 4) + 14))] = _local3; return (_local2); } public static function hashBinary(_arg1:ByteArray):String{ var _local6:int; var _local7:int; var _local8:int; var _local9:int; var _local2 = 1732584193; var _local3 = -271733879; var _local4 = -1732584194; var _local5 = 271733878; var _local10:Array = createBlocks(_arg1); var _local11:int = _local10.length; var _local12:int; while (_local12 < _local11) { _local6 = _local2; _local7 = _local3; _local8 = _local4; _local9 = _local5; _local2 = ff(_local2, _local3, _local4, _local5, _local10[int((_local12 + 0))], 7, -680876936); _local5 = ff(_local5, _local2, _local3, _local4, _local10[int((_local12 + 1))], 12, -389564586); _local4 = ff(_local4, _local5, _local2, _local3, _local10[int((_local12 + 2))], 17, 606105819); _local3 = ff(_local3, _local4, _local5, _local2, _local10[int((_local12 + 3))], 22, -1044525330); _local2 = ff(_local2, _local3, _local4, _local5, _local10[int((_local12 + 4))], 7, -176418897); _local5 = ff(_local5, _local2, _local3, _local4, _local10[int((_local12 + 5))], 12, 1200080426); _local4 = ff(_local4, _local5, _local2, _local3, _local10[int((_local12 + 6))], 17, -1473231341); _local3 = ff(_local3, _local4, _local5, _local2, _local10[int((_local12 + 7))], 22, -45705983); _local2 = ff(_local2, _local3, _local4, _local5, _local10[int((_local12 + 8))], 7, 1770035416); _local5 = ff(_local5, _local2, _local3, _local4, _local10[int((_local12 + 9))], 12, -1958414417); _local4 = ff(_local4, _local5, _local2, _local3, _local10[int((_local12 + 10))], 17, -42063); _local3 = ff(_local3, _local4, _local5, _local2, _local10[int((_local12 + 11))], 22, -1990404162); _local2 = ff(_local2, _local3, _local4, _local5, _local10[int((_local12 + 12))], 7, 1804603682); _local5 = ff(_local5, _local2, _local3, _local4, _local10[int((_local12 + 13))], 12, -40341101); _local4 = ff(_local4, _local5, _local2, _local3, _local10[int((_local12 + 14))], 17, -1502002290); _local3 = ff(_local3, _local4, _local5, _local2, _local10[int((_local12 + 15))], 22, 1236535329); _local2 = gg(_local2, _local3, _local4, _local5, _local10[int((_local12 + 1))], 5, -165796510); _local5 = gg(_local5, _local2, _local3, _local4, _local10[int((_local12 + 6))], 9, -1069501632); _local4 = gg(_local4, _local5, _local2, _local3, _local10[int((_local12 + 11))], 14, 643717713); _local3 = gg(_local3, _local4, _local5, _local2, _local10[int((_local12 + 0))], 20, -373897302); _local2 = gg(_local2, _local3, _local4, _local5, _local10[int((_local12 + 5))], 5, -701558691); _local5 = gg(_local5, _local2, _local3, _local4, _local10[int((_local12 + 10))], 9, 38016083); _local4 = gg(_local4, _local5, _local2, _local3, _local10[int((_local12 + 15))], 14, -660478335); _local3 = gg(_local3, _local4, _local5, _local2, _local10[int((_local12 + 4))], 20, -405537848); _local2 = gg(_local2, _local3, _local4, _local5, _local10[int((_local12 + 9))], 5, 568446438); _local5 = gg(_local5, _local2, _local3, _local4, _local10[int((_local12 + 14))], 9, -1019803690); _local4 = gg(_local4, _local5, _local2, _local3, _local10[int((_local12 + 3))], 14, -187363961); _local3 = gg(_local3, _local4, _local5, _local2, _local10[int((_local12 + 8))], 20, 1163531501); _local2 = gg(_local2, _local3, _local4, _local5, _local10[int((_local12 + 13))], 5, -1444681467); _local5 = gg(_local5, _local2, _local3, _local4, _local10[int((_local12 + 2))], 9, -51403784); _local4 = gg(_local4, _local5, _local2, _local3, _local10[int((_local12 + 7))], 14, 1735328473); _local3 = gg(_local3, _local4, _local5, _local2, _local10[int((_local12 + 12))], 20, -1926607734); _local2 = hh(_local2, _local3, _local4, _local5, _local10[int((_local12 + 5))], 4, -378558); _local5 = hh(_local5, _local2, _local3, _local4, _local10[int((_local12 + 8))], 11, -2022574463); _local4 = hh(_local4, _local5, _local2, _local3, _local10[int((_local12 + 11))], 16, 1839030562); _local3 = hh(_local3, _local4, _local5, _local2, _local10[int((_local12 + 14))], 23, -35309556); _local2 = hh(_local2, _local3, _local4, _local5, _local10[int((_local12 + 1))], 4, -1530992060); _local5 = hh(_local5, _local2, _local3, _local4, _local10[int((_local12 + 4))], 11, 1272893353); _local4 = hh(_local4, _local5, _local2, _local3, _local10[int((_local12 + 7))], 16, -155497632); _local3 = hh(_local3, _local4, _local5, _local2, _local10[int((_local12 + 10))], 23, -1094730640); _local2 = hh(_local2, _local3, _local4, _local5, _local10[int((_local12 + 13))], 4, 681279174); _local5 = hh(_local5, _local2, _local3, _local4, _local10[int((_local12 + 0))], 11, -358537222); _local4 = hh(_local4, _local5, _local2, _local3, _local10[int((_local12 + 3))], 16, -722521979); _local3 = hh(_local3, _local4, _local5, _local2, _local10[int((_local12 + 6))], 23, 76029189); _local2 = hh(_local2, _local3, _local4, _local5, _local10[int((_local12 + 9))], 4, -640364487); _local5 = hh(_local5, _local2, _local3, _local4, _local10[int((_local12 + 12))], 11, -421815835); _local4 = hh(_local4, _local5, _local2, _local3, _local10[int((_local12 + 15))], 16, 530742520); _local3 = hh(_local3, _local4, _local5, _local2, _local10[int((_local12 + 2))], 23, -995338651); _local2 = ii(_local2, _local3, _local4, _local5, _local10[int((_local12 + 0))], 6, -198630844); _local5 = ii(_local5, _local2, _local3, _local4, _local10[int((_local12 + 7))], 10, 1126891415); _local4 = ii(_local4, _local5, _local2, _local3, _local10[int((_local12 + 14))], 15, -1416354905); _local3 = ii(_local3, _local4, _local5, _local2, _local10[int((_local12 + 5))], 21, -57434055); _local2 = ii(_local2, _local3, _local4, _local5, _local10[int((_local12 + 12))], 6, 1700485571); _local5 = ii(_local5, _local2, _local3, _local4, _local10[int((_local12 + 3))], 10, -1894986606); _local4 = ii(_local4, _local5, _local2, _local3, _local10[int((_local12 + 10))], 15, -1051523); _local3 = ii(_local3, _local4, _local5, _local2, _local10[int((_local12 + 1))], 21, -2054922799); _local2 = ii(_local2, _local3, _local4, _local5, _local10[int((_local12 + 8))], 6, 1873313359); _local5 = ii(_local5, _local2, _local3, _local4, _local10[int((_local12 + 15))], 10, -30611744); _local4 = ii(_local4, _local5, _local2, _local3, _local10[int((_local12 + 6))], 15, -1560198380); _local3 = ii(_local3, _local4, _local5, _local2, _local10[int((_local12 + 13))], 21, 1309151649); _local2 = ii(_local2, _local3, _local4, _local5, _local10[int((_local12 + 4))], 6, -145523070); _local5 = ii(_local5, _local2, _local3, _local4, _local10[int((_local12 + 11))], 10, -1120210379); _local4 = ii(_local4, _local5, _local2, _local3, _local10[int((_local12 + 2))], 15, 718787259); _local3 = ii(_local3, _local4, _local5, _local2, _local10[int((_local12 + 9))], 21, -343485551); _local2 = (_local2 + _local6); _local3 = (_local3 + _local7); _local4 = (_local4 + _local8); _local5 = (_local5 + _local9); _local12 = (_local12 + 16); }; digest = new ByteArray(); digest.writeInt(_local2); digest.writeInt(_local3); digest.writeInt(_local4); digest.writeInt(_local5); digest.position = 0; return ((((IntUtil.toHex(_local2) + IntUtil.toHex(_local3)) + IntUtil.toHex(_local4)) + IntUtil.toHex(_local5))); } private static function gg(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int):int{ return (transform(g, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7)); } private static function ii(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int):int{ return (transform(i, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7)); } public static function hashBytes(_arg1:ByteArray):String{ return (hashBinary(_arg1)); } } }//package com.adobe.crypto
Section 2
//JSON (com.adobe.serialization.json.JSON) package com.adobe.serialization.json { public class JSON { public static function decode(_arg1:String){ var _local2:JSONDecoder = new JSONDecoder(_arg1); return (_local2.getValue()); } public static function encode(_arg1:Object):String{ var _local2:JSONEncoder = new JSONEncoder(_arg1); return (_local2.getString()); } } }//package com.adobe.serialization.json
Section 3
//JSONDecoder (com.adobe.serialization.json.JSONDecoder) package com.adobe.serialization.json { public class JSONDecoder { private var value; private var tokenizer:JSONTokenizer; private var token:JSONToken; public function JSONDecoder(_arg1:String){ tokenizer = new JSONTokenizer(_arg1); nextToken(); value = parseValue(); } private function parseObject():Object{ var _local2:String; var _local1:Object = new Object(); nextToken(); if (token.type == JSONTokenType.RIGHT_BRACE){ return (_local1); }; while (true) { if (token.type == JSONTokenType.STRING){ _local2 = String(token.value); nextToken(); if (token.type == JSONTokenType.COLON){ nextToken(); _local1[_local2] = parseValue(); nextToken(); if (token.type == JSONTokenType.RIGHT_BRACE){ return (_local1); }; if (token.type == JSONTokenType.COMMA){ nextToken(); } else { tokenizer.parseError(("Expecting } or , but found " + token.value)); }; } else { tokenizer.parseError(("Expecting : but found " + token.value)); }; } else { tokenizer.parseError(("Expecting string but found " + token.value)); }; }; return (null); } private function parseValue():Object{ if (token == null){ tokenizer.parseError("Unexpected end of input"); }; switch (token.type){ case JSONTokenType.LEFT_BRACE: return (parseObject()); case JSONTokenType.LEFT_BRACKET: return (parseArray()); case JSONTokenType.STRING: case JSONTokenType.NUMBER: case JSONTokenType.TRUE: case JSONTokenType.FALSE: case JSONTokenType.NULL: return (token.value); default: tokenizer.parseError(("Unexpected " + token.value)); }; return (null); } private function nextToken():JSONToken{ return ((token = tokenizer.getNextToken())); } public function getValue(){ return (value); } private function parseArray():Array{ var _local1:Array = new Array(); nextToken(); if (token.type == JSONTokenType.RIGHT_BRACKET){ return (_local1); }; while (true) { _local1.push(parseValue()); nextToken(); if (token.type == JSONTokenType.RIGHT_BRACKET){ return (_local1); }; if (token.type == JSONTokenType.COMMA){ nextToken(); } else { tokenizer.parseError(("Expecting ] or , but found " + token.value)); }; }; return (null); } } }//package com.adobe.serialization.json
Section 4
//JSONEncoder (com.adobe.serialization.json.JSONEncoder) package com.adobe.serialization.json { import flash.utils.*; public class JSONEncoder { private var jsonString:String; public function JSONEncoder(_arg1){ jsonString = convertToString(_arg1); } private function escapeString(_arg1:String):String{ var _local3:String; var _local6:String; var _local7:String; var _local2 = ""; var _local4:Number = _arg1.length; var _local5:int; while (_local5 < _local4) { _local3 = _arg1.charAt(_local5); switch (_local3){ case "\"": _local2 = (_local2 + "\\\""); break; case "\\": _local2 = (_local2 + "\\\\"); break; case "\b": _local2 = (_local2 + "\\b"); break; case "\f": _local2 = (_local2 + "\\f"); break; case "\n": _local2 = (_local2 + "\\n"); break; case "\r": _local2 = (_local2 + "\\r"); break; case "\t": _local2 = (_local2 + "\\t"); break; default: if (_local3 < " "){ _local6 = _local3.charCodeAt(0).toString(16); _local7 = ((_local6.length == 2)) ? "00" : "000"; _local2 = (_local2 + (("\\u" + _local7) + _local6)); } else { _local2 = (_local2 + _local3); }; }; _local5++; }; return ((("\"" + _local2) + "\"")); } private function arrayToString(_arg1:Array):String{ var _local2 = ""; var _local3:int; while (_local3 < _arg1.length) { if (_local2.length > 0){ _local2 = (_local2 + ","); }; _local2 = (_local2 + convertToString(_arg1[_local3])); _local3++; }; return ((("[" + _local2) + "]")); } public function getString():String{ return (jsonString); } private function objectToString(_arg1:Object):String{ var value:Object; var key:String; var v:XML; var o = _arg1; var s = ""; var classInfo:XML = describeType(o); if (classInfo.@name.toString() == "Object"){ for (key in o) { value = o[key]; if ((value is Function)){ } else { if (s.length > 0){ s = (s + ","); }; s = (s + ((escapeString(key) + ":") + convertToString(value))); }; }; } else { for each (v in classInfo..*.(((name() == "variable")) || ((name() == "accessor")))) { if (s.length > 0){ s = (s + ","); }; s = (s + ((escapeString(v.@name.toString()) + ":") + convertToString(o[v.@name]))); }; }; return ((("{" + s) + "}")); } private function convertToString(_arg1):String{ if ((_arg1 is String)){ return (escapeString((_arg1 as String))); }; if ((_arg1 is Number)){ return ((isFinite((_arg1 as Number))) ? _arg1.toString() : "null"); } else { if ((_arg1 is Boolean)){ return ((_arg1) ? "true" : "false"); } else { if ((_arg1 is Array)){ return (arrayToString((_arg1 as Array))); }; if ((((_arg1 is Object)) && (!((_arg1 == null))))){ return (objectToString(_arg1)); }; }; }; return ("null"); } } }//package com.adobe.serialization.json
Section 5
//JSONParseError (com.adobe.serialization.json.JSONParseError) package com.adobe.serialization.json { public class JSONParseError extends Error { private var _location:int; private var _text:String; public function JSONParseError(_arg1:String="", _arg2:int=0, _arg3:String=""){ super(_arg1); name = "JSONParseError"; _location = _arg2; _text = _arg3; } public function get location():int{ return (_location); } public function get text():String{ return (_text); } } }//package com.adobe.serialization.json
Section 6
//JSONToken (com.adobe.serialization.json.JSONToken) package com.adobe.serialization.json { public class JSONToken { private var _value:Object; private var _type:int; public function JSONToken(_arg1:int=-1, _arg2:Object=null){ _type = _arg1; _value = _arg2; } public function get value():Object{ return (_value); } public function get type():int{ return (_type); } public function set type(_arg1:int):void{ _type = _arg1; } public function set value(_arg1:Object):void{ _value = _arg1; } } }//package com.adobe.serialization.json
Section 7
//JSONTokenizer (com.adobe.serialization.json.JSONTokenizer) package com.adobe.serialization.json { public class JSONTokenizer { private var loc:int; private var ch:String; private var obj:Object; private var jsonString:String; public function JSONTokenizer(_arg1:String){ jsonString = _arg1; loc = 0; nextChar(); } private function skipComments():void{ if (ch == "/"){ nextChar(); switch (ch){ case "/": do { nextChar(); } while (((!((ch == "\n"))) && (!((ch == ""))))); nextChar(); break; case "*": nextChar(); while (true) { if (ch == "*"){ nextChar(); if (ch == "/"){ nextChar(); break; }; } else { nextChar(); }; if (ch == ""){ parseError("Multi-line comment not closed"); }; }; break; default: parseError((("Unexpected " + ch) + " encountered (expecting '/' or '*' )")); }; }; } private function isDigit(_arg1:String):Boolean{ return ((((_arg1 >= "0")) && ((_arg1 <= "9")))); } private function readString():JSONToken{ var _local3:String; var _local4:int; var _local1:JSONToken = new JSONToken(); _local1.type = JSONTokenType.STRING; var _local2 = ""; nextChar(); while (((!((ch == "\""))) && (!((ch == ""))))) { if (ch == "\\"){ nextChar(); switch (ch){ case "\"": _local2 = (_local2 + "\""); break; case "/": _local2 = (_local2 + "/"); break; case "\\": _local2 = (_local2 + "\\"); break; case "b": _local2 = (_local2 + "\b"); break; case "f": _local2 = (_local2 + "\f"); break; case "n": _local2 = (_local2 + "\n"); break; case "r": _local2 = (_local2 + "\r"); break; case "t": _local2 = (_local2 + "\t"); break; case "u": _local3 = ""; _local4 = 0; while (_local4 < 4) { if (!isHexDigit(nextChar())){ parseError((" Excepted a hex digit, but found: " + ch)); }; _local3 = (_local3 + ch); _local4++; }; _local2 = (_local2 + String.fromCharCode(parseInt(_local3, 16))); break; default: _local2 = (_local2 + ("\\" + ch)); }; } else { _local2 = (_local2 + ch); }; nextChar(); }; if (ch == ""){ parseError("Unterminated string literal"); }; nextChar(); _local1.value = _local2; return (_local1); } private function nextChar():String{ return ((ch = jsonString.charAt(loc++))); } public function getNextToken():JSONToken{ var _local2:String; var _local3:String; var _local4:String; var _local1:JSONToken = new JSONToken(); skipIgnored(); switch (ch){ case "{": _local1.type = JSONTokenType.LEFT_BRACE; _local1.value = "{"; nextChar(); break; case "}": _local1.type = JSONTokenType.RIGHT_BRACE; _local1.value = "}"; nextChar(); break; case "[": _local1.type = JSONTokenType.LEFT_BRACKET; _local1.value = "["; nextChar(); break; case "]": _local1.type = JSONTokenType.RIGHT_BRACKET; _local1.value = "]"; nextChar(); break; case ",": _local1.type = JSONTokenType.COMMA; _local1.value = ","; nextChar(); break; case ":": _local1.type = JSONTokenType.COLON; _local1.value = ":"; nextChar(); break; case "t": _local2 = ((("t" + nextChar()) + nextChar()) + nextChar()); if (_local2 == "true"){ _local1.type = JSONTokenType.TRUE; _local1.value = true; nextChar(); } else { parseError(("Expecting 'true' but found " + _local2)); }; break; case "f": _local3 = (((("f" + nextChar()) + nextChar()) + nextChar()) + nextChar()); if (_local3 == "false"){ _local1.type = JSONTokenType.FALSE; _local1.value = false; nextChar(); } else { parseError(("Expecting 'false' but found " + _local3)); }; break; case "n": _local4 = ((("n" + nextChar()) + nextChar()) + nextChar()); if (_local4 == "null"){ _local1.type = JSONTokenType.NULL; _local1.value = null; nextChar(); } else { parseError(("Expecting 'null' but found " + _local4)); }; break; case "\"": _local1 = readString(); break; default: if (((isDigit(ch)) || ((ch == "-")))){ _local1 = readNumber(); } else { if (ch == ""){ return (null); }; parseError((("Unexpected " + ch) + " encountered")); }; }; return (_local1); } private function skipWhite():void{ while (isWhiteSpace(ch)) { nextChar(); }; } public function parseError(_arg1:String):void{ throw (new JSONParseError(_arg1, loc, jsonString)); } private function isWhiteSpace(_arg1:String):Boolean{ return ((((((((_arg1 == " ")) || ((_arg1 == "\t")))) || ((_arg1 == "\n")))) || ((_arg1 == "\r")))); } private function skipIgnored():void{ var _local1:int; do { _local1 = loc; skipWhite(); skipComments(); } while (_local1 != loc); } private function isHexDigit(_arg1:String):Boolean{ var _local2:String = _arg1.toUpperCase(); return (((isDigit(_arg1)) || ((((_local2 >= "A")) && ((_local2 <= "F")))))); } private function readNumber():JSONToken{ var _local1:JSONToken = new JSONToken(); _local1.type = JSONTokenType.NUMBER; var _local2 = ""; if (ch == "-"){ _local2 = (_local2 + "-"); nextChar(); }; if (!isDigit(ch)){ parseError("Expecting a digit"); }; if (ch == "0"){ _local2 = (_local2 + ch); nextChar(); if (isDigit(ch)){ parseError("A digit cannot immediately follow 0"); }; } else { while (isDigit(ch)) { _local2 = (_local2 + ch); nextChar(); }; }; if (ch == "."){ _local2 = (_local2 + "."); nextChar(); if (!isDigit(ch)){ parseError("Expecting a digit"); }; while (isDigit(ch)) { _local2 = (_local2 + ch); nextChar(); }; }; if ((((ch == "e")) || ((ch == "E")))){ _local2 = (_local2 + "e"); nextChar(); if ((((ch == "+")) || ((ch == "-")))){ _local2 = (_local2 + ch); nextChar(); }; if (!isDigit(ch)){ parseError("Scientific notation number needs exponent value"); }; while (isDigit(ch)) { _local2 = (_local2 + ch); nextChar(); }; }; var _local3:Number = Number(_local2); if (((isFinite(_local3)) && (!(isNaN(_local3))))){ _local1.value = _local3; return (_local1); }; parseError((("Number " + _local3) + " is not valid!")); return (null); } } }//package com.adobe.serialization.json
Section 8
//JSONTokenType (com.adobe.serialization.json.JSONTokenType) package com.adobe.serialization.json { public class JSONTokenType { public static const NUMBER:int = 11; public static const FALSE:int = 8; public static const RIGHT_BRACKET:int = 4; public static const NULL:int = 9; public static const TRUE:int = 7; public static const RIGHT_BRACE:int = 2; public static const UNKNOWN:int = -1; public static const COMMA:int = 0; public static const LEFT_BRACKET:int = 3; public static const STRING:int = 10; public static const LEFT_BRACE:int = 1; public static const COLON:int = 6; } }//package com.adobe.serialization.json
Section 9
//IntUtil (com.adobe.utils.IntUtil) package com.adobe.utils { public class IntUtil { private static var hexChars:String = "0123456789abcdef"; public static function toHex(_arg1:int, _arg2:Boolean=false):String{ var _local4:int; var _local5:int; var _local3 = ""; if (_arg2){ _local4 = 0; while (_local4 < 4) { _local3 = (_local3 + (hexChars.charAt(((_arg1 >> (((3 - _local4) * 8) + 4)) & 15)) + hexChars.charAt(((_arg1 >> ((3 - _local4) * 8)) & 15)))); _local4++; }; } else { _local5 = 0; while (_local5 < 4) { _local3 = (_local3 + (hexChars.charAt(((_arg1 >> ((_local5 * 8) + 4)) & 15)) + hexChars.charAt(((_arg1 >> (_local5 * 8)) & 15)))); _local5++; }; }; return (_local3); } public static function ror(_arg1:int, _arg2:int):uint{ var _local3:int = (32 - _arg2); return (((_arg1 << _local3) | (_arg1 >>> (32 - _local3)))); } public static function rol(_arg1:int, _arg2:int):int{ return (((_arg1 << _arg2) | (_arg1 >>> (32 - _arg2)))); } } }//package com.adobe.utils
Section 10
//Debug (com.carlcalderon.arthropod.Debug) package com.carlcalderon.arthropod { import flash.events.*; import flash.display.*; import flash.geom.*; import flash.net.*; import flash.system.*; public class Debug { private static const MEMORY_OPERATION:String = "debugMemory"; public static const NAME:String = "Debug"; private static const ERROR_OPERATION:String = "debugError"; private static const CLEAR_OPERATION:String = "debugClear"; private static const BITMAP_OPERATION:String = "debugBitmapData"; public static const VERSION:String = "0.74"; private static const TYPE:String = "app"; private static const ARRAY_OPERATION:String = "debugArray"; private static const DOMAIN:String = "com.carlcalderon.Arthropod"; private static const OBJECT_OPERATION:String = "debugObject"; private static const WARNING_OPERATION:String = "debugWarning"; private static const CONNECTION:String = "arthropod"; private static const CHECK:String = ".161E714B6C1A76DE7B9865F88B32FCCE8FABA7B5.1"; private static const LOG_OPERATION:String = "debug"; public static var LIGHT_BLUE:uint = 0xCCCC; public static var secureDomain:String = "*"; public static var password:String = "2828"; public static var allowLog:Boolean = true; public static var BLUE:uint = 6710988; public static var GREEN:uint = 0xCC00; public static var ignoreStatus:Boolean = true; public static var RED:uint = 0xCC0000; public static var secure:Boolean = false; public static var YELLOW:uint = 0xCCCC00; public static var PINK:uint = 0xCC00CC; private static var lc:LocalConnection = new LocalConnection(); private static var hasEventListeners:Boolean = false; public static function memory():Boolean{ return (send(MEMORY_OPERATION, System.totalMemory, null)); } public static function error(_arg1):Boolean{ return (send(ERROR_OPERATION, String(_arg1), 0xCC0000)); } public static function warning(_arg1):Boolean{ return (send(WARNING_OPERATION, String(_arg1), 0xCCCC00)); } private static function send(_arg1:String, _arg2, _arg3):Boolean{ var operation = _arg1; var value = _arg2; var prop = _arg3; if (!secure){ lc.allowInsecureDomain("*"); } else { lc.allowDomain(secureDomain); }; if (!hasEventListeners){ if (ignoreStatus){ lc.addEventListener(StatusEvent.STATUS, ignore); } else { lc.addEventListener(StatusEvent.STATUS, status); }; hasEventListeners = true; }; if (allowLog){ try { lc.send((((((TYPE + "#") + DOMAIN) + CHECK) + ":") + CONNECTION), operation, password, value, prop); return (true); } catch(e) { return (false); }; }; return (false); } public static function bitmap(_arg1, _arg2:String=null):Boolean{ var _local3:BitmapData = new BitmapData(100, 100, true, 0xFFFFFF); var _local4:Matrix = new Matrix(); var _local5:Number = (100 / ((_arg1.width)>=_arg1.height) ? _arg1.width : _arg1.height); _local4.scale(_local5, _local5); _local3.draw(_arg1, _local4, null, null, null, true); var _local6:Rectangle = new Rectangle(0, 0, Math.floor((_arg1.width * _local5)), Math.floor((_arg1.height * _local5))); return (send(BITMAP_OPERATION, _local3.getPixels(_local6), {bounds:_local6, lbl:_arg2})); } public static function object(_arg1):Boolean{ return (send(OBJECT_OPERATION, _arg1, null)); } public static function clear():Boolean{ return (send(CLEAR_OPERATION, 0, 0)); } private static function ignore(_arg1:StatusEvent):void{ } public static function log(_arg1, _arg2:uint=0xFEFEFE):Boolean{ return (send(LOG_OPERATION, String(_arg1), _arg2)); } public static function array(_arg1:Array):Boolean{ return (send(ARRAY_OPERATION, _arg1, null)); } public static function snapshot(_arg1:Stage, _arg2:String=null):Boolean{ if (_arg1){ return (bitmap(_arg1, _arg2)); }; return (false); } private static function status(_arg1:StatusEvent):void{ trace(("Arthropod status:\n" + _arg1.toString())); } } }//package com.carlcalderon.arthropod
Section 11
//PropTween (com.greensock.core.PropTween) package com.greensock.core { public class PropTween { public var priority:int; public var start:Number; public var prevNode:PropTween; public var change:Number; public var target:Object; public var name:String; public var property:String; public var nextNode:PropTween; public var isPlugin:Boolean; public function PropTween(_arg1:Object, _arg2:String, _arg3:Number, _arg4:Number, _arg5:String, _arg6:Boolean, _arg7:PropTween=null, _arg8:int=0){ this.target = _arg1; this.property = _arg2; this.start = _arg3; this.change = _arg4; this.name = _arg5; this.isPlugin = _arg6; if (_arg7){ _arg7.prevNode = this; this.nextNode = _arg7; }; this.priority = _arg8; } } }//package com.greensock.core
Section 12
//SimpleTimeline (com.greensock.core.SimpleTimeline) package com.greensock.core { public class SimpleTimeline extends TweenCore { public var autoRemoveChildren:Boolean; protected var _lastChild:TweenCore; protected var _firstChild:TweenCore; public function SimpleTimeline(_arg1:Object=null){ super(0, _arg1); } override public function renderTime(_arg1:Number, _arg2:Boolean=false, _arg3:Boolean=false):void{ var _local5:Number; var _local6:TweenCore; var _local4:TweenCore = _firstChild; this.cachedTotalTime = _arg1; this.cachedTime = _arg1; while (_local4) { _local6 = _local4.nextNode; if (((_local4.active) || ((((((_arg1 >= _local4.cachedStartTime)) && (!(_local4.cachedPaused)))) && (!(_local4.gc)))))){ if (!_local4.cachedReversed){ _local4.renderTime(((_arg1 - _local4.cachedStartTime) * _local4.cachedTimeScale), _arg2, false); } else { _local5 = (_local4.cacheIsDirty) ? _local4.totalDuration : _local4.cachedTotalDuration; _local4.renderTime((_local5 - ((_arg1 - _local4.cachedStartTime) * _local4.cachedTimeScale)), _arg2, false); }; }; _local4 = _local6; }; } public function addChild(_arg1:TweenCore):void{ if (((!(_arg1.gc)) && (_arg1.timeline))){ _arg1.timeline.remove(_arg1, true); }; _arg1.timeline = this; if (_arg1.gc){ _arg1.setEnabled(true, true); }; if (_firstChild){ _firstChild.prevNode = _arg1; }; _arg1.nextNode = _firstChild; _firstChild = _arg1; _arg1.prevNode = null; } public function remove(_arg1:TweenCore, _arg2:Boolean=false):void{ if (_arg1.gc){ return; }; if (!_arg2){ _arg1.setEnabled(false, true); }; if (_arg1.nextNode){ _arg1.nextNode.prevNode = _arg1.prevNode; } else { if (_lastChild == _arg1){ _lastChild = _arg1.prevNode; }; }; if (_arg1.prevNode){ _arg1.prevNode.nextNode = _arg1.nextNode; } else { if (_firstChild == _arg1){ _firstChild = _arg1.nextNode; }; }; } public function get rawTime():Number{ return (this.cachedTotalTime); } } }//package com.greensock.core
Section 13
//TweenCore (com.greensock.core.TweenCore) package com.greensock.core { import com.greensock.*; public class TweenCore { public var initted:Boolean; protected var _hasUpdate:Boolean; public var active:Boolean; protected var _delay:Number; public var cachedTime:Number; public var cachedReversed:Boolean; public var nextNode:TweenCore; protected var _rawPrevTime:Number;// = -1 public var vars:Object; public var cachedTotalTime:Number; public var timeline:SimpleTimeline; public var data; public var cachedStartTime:Number; public var prevNode:TweenCore; public var cachedDuration:Number; public var gc:Boolean; protected var _pauseTime:Number; public var cacheIsDirty:Boolean; public var cachedPaused:Boolean; public var cachedTimeScale:Number; public var cachedTotalDuration:Number; public static const version:Number = 1.13; protected static var _classInitted:Boolean; public function TweenCore(_arg1:Number=0, _arg2:Object=null){ this.vars = ((_arg2) || ({})); this.cachedDuration = (this.cachedTotalDuration = ((_arg1) || (0))); _delay = ((this.vars.delay) || (0)); this.cachedTimeScale = ((this.vars.timeScale) || (1)); this.active = Boolean((((((_arg1 == 0)) && ((_delay == 0)))) && (!((this.vars.immediateRender == false))))); this.cachedTotalTime = (this.cachedTime = 0); this.data = this.vars.data; if (!_classInitted){ if (isNaN(TweenLite.rootFrame)){ TweenLite.initClass(); _classInitted = true; } else { return; }; }; var _local3:SimpleTimeline = ((this.vars.timeline is SimpleTimeline)) ? this.vars.timeline : (this.vars.useFrames) ? TweenLite.rootFramesTimeline : TweenLite.rootTimeline; this.cachedStartTime = (_local3.cachedTotalTime + _delay); _local3.addChild(this); if (this.vars.reversed){ this.cachedReversed = true; }; if (this.vars.paused){ this.paused = true; }; } public function renderTime(_arg1:Number, _arg2:Boolean=false, _arg3:Boolean=false):void{ } public function get delay():Number{ return (_delay); } public function get duration():Number{ return (this.cachedDuration); } public function restart(_arg1:Boolean=false, _arg2:Boolean=true):void{ this.reversed = false; this.paused = false; this.setTotalTime((_arg1) ? -(_delay) : 0, _arg2); } public function set reversed(_arg1:Boolean):void{ if (_arg1 != this.cachedReversed){ this.cachedReversed = _arg1; setTotalTime(this.cachedTotalTime, true); }; } public function set startTime(_arg1:Number):void{ var _local2:Boolean = Boolean(((!((this.timeline == null))) && (((!((_arg1 == this.cachedStartTime))) || (this.gc))))); this.cachedStartTime = _arg1; if (_local2){ this.timeline.addChild(this); }; } public function set delay(_arg1:Number):void{ this.startTime = (this.startTime + (_arg1 - _delay)); _delay = _arg1; } public function resume():void{ this.paused = false; } public function get paused():Boolean{ return (this.cachedPaused); } public function play():void{ this.reversed = false; this.paused = false; } public function set duration(_arg1:Number):void{ this.cachedDuration = (this.cachedTotalDuration = _arg1); setDirtyCache(false); } public function complete(_arg1:Boolean=false, _arg2:Boolean=false):void{ if (!_arg1){ renderTime(this.cachedTotalDuration, _arg2, false); return; }; if (this.timeline.autoRemoveChildren){ this.setEnabled(false, false); } else { this.active = false; }; if (!_arg2){ if (((((this.vars.onComplete) && ((this.cachedTotalTime == this.cachedTotalDuration)))) && (!(this.cachedReversed)))){ this.vars.onComplete.apply(null, this.vars.onCompleteParams); } else { if (((((this.cachedReversed) && ((this.cachedTotalTime == 0)))) && (this.vars.onReverseComplete))){ this.vars.onReverseComplete.apply(null, this.vars.onReverseCompleteParams); }; }; }; } public function invalidate():void{ } public function get totalTime():Number{ return (this.cachedTotalTime); } public function get reversed():Boolean{ return (this.cachedReversed); } public function get startTime():Number{ return (this.cachedStartTime); } public function set currentTime(_arg1:Number):void{ setTotalTime(_arg1, false); } protected function setDirtyCache(_arg1:Boolean=true):void{ var _local2:TweenCore = (_arg1) ? this : this.timeline; while (_local2) { _local2.cacheIsDirty = true; _local2 = _local2.timeline; }; } public function reverse(_arg1:Boolean=true):void{ this.reversed = true; if (_arg1){ this.paused = false; } else { if (this.gc){ this.setEnabled(true, false); }; }; } public function set paused(_arg1:Boolean):void{ if (((!((_arg1 == this.cachedPaused))) && (this.timeline))){ if (_arg1){ _pauseTime = this.timeline.rawTime; } else { this.cachedStartTime = (this.cachedStartTime + (this.timeline.rawTime - _pauseTime)); _pauseTime = NaN; setDirtyCache(false); }; this.cachedPaused = _arg1; this.active = Boolean(((((!(this.cachedPaused)) && ((this.cachedTotalTime > 0)))) && ((this.cachedTotalTime < this.cachedTotalDuration)))); }; if (((!(_arg1)) && (this.gc))){ this.setTotalTime(this.cachedTotalTime, false); this.setEnabled(true, false); }; } public function kill():void{ setEnabled(false, false); } public function set totalTime(_arg1:Number):void{ setTotalTime(_arg1, false); } public function get currentTime():Number{ return (this.cachedTime); } protected function setTotalTime(_arg1:Number, _arg2:Boolean=false):void{ var _local3:Number; var _local4:Number; if (this.timeline){ _local3 = (((_pauseTime) || ((_pauseTime == 0)))) ? _pauseTime : this.timeline.cachedTotalTime; if (this.cachedReversed){ _local4 = (this.cacheIsDirty) ? this.totalDuration : this.cachedTotalDuration; this.cachedStartTime = (_local3 - ((_local4 - _arg1) / this.cachedTimeScale)); } else { this.cachedStartTime = (_local3 - (_arg1 / this.cachedTimeScale)); }; if (!this.timeline.cacheIsDirty){ setDirtyCache(false); }; if (this.cachedTotalTime != _arg1){ renderTime(_arg1, _arg2, false); }; }; } public function pause():void{ this.paused = true; } public function set totalDuration(_arg1:Number):void{ this.duration = _arg1; } public function get totalDuration():Number{ return (this.cachedTotalDuration); } public function setEnabled(_arg1:Boolean, _arg2:Boolean=false):Boolean{ if (_arg1){ this.active = Boolean(((((!(this.cachedPaused)) && ((this.cachedTotalTime > 0)))) && ((this.cachedTotalTime < this.cachedTotalDuration)))); if (((!(_arg2)) && (this.gc))){ this.timeline.addChild(this); }; } else { this.active = false; if (!_arg2){ this.timeline.remove(this, true); }; }; this.gc = !(_arg1); return (false); } } }//package com.greensock.core
Section 14
//Emotion (com.greensock.easing.Emotion) package com.greensock.easing { import flash.geom.*; import fl.motion.*; public class Emotion { public static function strongInSoftOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{ var _local6:Array = [{point:[0, 0], pre:[0, 0], post:[0.14, 0.01]}, {point:[0.22, 0.74], pre:[0.1, 0.48], post:[0.32, 0.96]}, {point:[1, 1], pre:[0.38, 1], post:[1, 1]}]; var _local7:BezierSegment; var _local8:int; while (_local8 < (_local6.length - 1)) { if (((((_arg1 / _arg4) >= _local6[_local8].point[0])) && (((_arg1 / _arg4) <= _local6[(_local8 + 1)].point[0])))){ _local7 = new BezierSegment(new Point(_local6[_local8].point[0], _local6[_local8].point[1]), new Point(_local6[_local8].post[0], _local6[_local8].post[1]), new Point(_local6[(_local8 + 1)].pre[0], _local6[(_local8 + 1)].pre[1]), new Point(_local6[(_local8 + 1)].point[0], _local6[(_local8 + 1)].point[1])); break; }; _local8++; }; return (((_arg3 * _local7.getYForX((_arg1 / _arg4))) + _arg2)); } public static function singleBounceEaseOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / _arg4); var _local5:Number = (_arg1 * _arg1); var _local6:Number = (_local5 * _arg1); return ((_arg2 + (_arg3 * ((((((6.1 * _local6) * _local5) + ((-23.1475 * _local5) * _local5)) + (34.395 * _local6)) + (-24.695 * _local5)) + (8.3475 * _arg1))))); } } }//package com.greensock.easing
Section 15
//Strong (com.greensock.easing.Strong) package com.greensock.easing { public class Strong { public static const power:uint = 4; public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = ((_arg1 / _arg4) - 1); return (((_arg3 * (((((_arg1 * _arg1) * _arg1) * _arg1) * _arg1) + 1)) + _arg2)); } public static function easeIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / _arg4); return (((((((_arg3 * _arg1) * _arg1) * _arg1) * _arg1) * _arg1) + _arg2)); } public static function easeInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / (_arg4 * 0.5)); if (_arg1 < 1){ return ((((((((_arg3 * 0.5) * _arg1) * _arg1) * _arg1) * _arg1) * _arg1) + _arg2)); }; _arg1 = (_arg1 - 2); return ((((_arg3 * 0.5) * (((((_arg1 * _arg1) * _arg1) * _arg1) * _arg1) + 2)) + _arg2)); } } }//package com.greensock.easing
Section 16
//TweenEvent (com.greensock.events.TweenEvent) package com.greensock.events { import flash.events.*; public class TweenEvent extends Event { public static const COMPLETE:String = "complete"; public static const START:String = "init"; public static const UPDATE:String = "change"; public static const REVERSE_COMPLETE:String = "reverseComplete"; public static const VERSION:Number = 1; public static const REPEAT:String = "repeat"; public function TweenEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false){ super(_arg1, _arg2, _arg3); } override public function clone():Event{ return (new TweenEvent(this.type, this.bubbles, this.cancelable)); } } }//package com.greensock.events
Section 17
//AutoAlphaPlugin (com.greensock.plugins.AutoAlphaPlugin) package com.greensock.plugins { import flash.display.*; import com.greensock.*; public class AutoAlphaPlugin extends TweenPlugin { protected var _target:Object; protected var _ignoreVisible:Boolean; public static const API:Number = 1; public function AutoAlphaPlugin(){ this.propName = "autoAlpha"; this.overwriteProps = ["alpha", "visible"]; } override public function killProps(_arg1:Object):void{ super.killProps(_arg1); _ignoreVisible = Boolean(("visible" in _arg1)); } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ _target = _arg1; addTween(_arg1, "alpha", _arg1.alpha, _arg2, "alpha"); return (true); } override public function set changeFactor(_arg1:Number):void{ updateTweens(_arg1); if (!_ignoreVisible){ _target.visible = Boolean(!((_target.alpha == 0))); }; } } }//package com.greensock.plugins
Section 18
//BevelFilterPlugin (com.greensock.plugins.BevelFilterPlugin) package com.greensock.plugins { import flash.display.*; import com.greensock.*; import flash.filters.*; public class BevelFilterPlugin extends FilterPlugin { public static const API:Number = 1; private static var _propNames:Array = ["distance", "angle", "highlightColor", "highlightAlpha", "shadowColor", "shadowAlpha", "blurX", "blurY", "strength", "quality"]; public function BevelFilterPlugin(){ this.propName = "bevelFilter"; this.overwriteProps = ["bevelFilter"]; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ _target = _arg1; _type = BevelFilter; initFilter(_arg2, new BevelFilter(0, 0, 0xFFFFFF, 0.5, 0, 0.5, 2, 2, 0, ((_arg2.quality) || (2))), _propNames); return (true); } } }//package com.greensock.plugins
Section 19
//BezierPlugin (com.greensock.plugins.BezierPlugin) package com.greensock.plugins { import com.greensock.*; import com.greensock.core.*; public class BezierPlugin extends TweenPlugin { protected var _future:Object; protected var _orient:Boolean; protected var _orientData:Array; protected var _target:Object; protected var _beziers:Object; public static const API:Number = 1; protected static const _RAD2DEG:Number = 57.2957795130823; public function BezierPlugin(){ _future = {}; super(); this.propName = "bezier"; this.overwriteProps = []; } override public function killProps(_arg1:Object):void{ var _local2:String; for (_local2 in _beziers) { if ((_local2 in _arg1)){ delete _beziers[_local2]; }; }; super.killProps(_arg1); } protected function init(_arg1:TweenLite, _arg2:Array, _arg3:Boolean):void{ var _local6:int; var _local7:String; var _local8:Object; _target = _arg1.target; var _local4:Object = ((_arg1.vars.isTV)==true) ? _arg1.vars.exposedVars : _arg1.vars; if (_local4.orientToBezier == true){ _orientData = [["x", "y", "rotation", 0, 0.01]]; _orient = true; } else { if ((_local4.orientToBezier is Array)){ _orientData = _local4.orientToBezier; _orient = true; }; }; var _local5:Object = {}; _local6 = 0; while (_local6 < _arg2.length) { for (_local7 in _arg2[_local6]) { if (_local5[_local7] == undefined){ _local5[_local7] = [_arg1.target[_local7]]; }; if (typeof(_arg2[_local6][_local7]) == "number"){ _local5[_local7].push(_arg2[_local6][_local7]); } else { _local5[_local7].push((_arg1.target[_local7] + Number(_arg2[_local6][_local7]))); }; }; _local6++; }; for (_local7 in _local5) { this.overwriteProps[this.overwriteProps.length] = _local7; if (_local4[_local7] != undefined){ if (typeof(_local4[_local7]) == "number"){ _local5[_local7].push(_local4[_local7]); } else { _local5[_local7].push((_arg1.target[_local7] + Number(_local4[_local7]))); }; _local8 = {}; _local8[_local7] = true; _arg1.killVars(_local8, false); delete _local4[_local7]; }; }; _beziers = parseBeziers(_local5, _arg3); } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ if (!(_arg2 is Array)){ return (false); }; init(_arg3, (_arg2 as Array), false); return (true); } override public function set changeFactor(_arg1:Number):void{ var _local2:int; var _local3:String; var _local4:Object; var _local5:Number; var _local6:uint; var _local7:Number; var _local8:Object; var _local9:Number; var _local10:Number; var _local11:Array; var _local12:Number; var _local13:Object; var _local14:Boolean; if (_arg1 == 1){ for (_local3 in _beziers) { _local2 = (_beziers[_local3].length - 1); _target[_local3] = _beziers[_local3][_local2][2]; }; } else { for (_local3 in _beziers) { _local6 = _beziers[_local3].length; if (_arg1 < 0){ _local2 = 0; } else { if (_arg1 >= 1){ _local2 = (_local6 - 1); } else { _local2 = int((_local6 * _arg1)); }; }; _local5 = ((_arg1 - (_local2 * (1 / _local6))) * _local6); _local4 = _beziers[_local3][_local2]; if (this.round){ _local7 = (_local4[0] + (_local5 * (((2 * (1 - _local5)) * (_local4[1] - _local4[0])) + (_local5 * (_local4[2] - _local4[0]))))); _target[_local3] = ((_local7)>0) ? int((_local7 + 0.5)) : int((_local7 - 0.5)); } else { _target[_local3] = (_local4[0] + (_local5 * (((2 * (1 - _local5)) * (_local4[1] - _local4[0])) + (_local5 * (_local4[2] - _local4[0]))))); }; }; }; if (_orient){ _local2 = _orientData.length; _local8 = {}; while (_local2--) { _local11 = _orientData[_local2]; _local8[_local11[0]] = _target[_local11[0]]; _local8[_local11[1]] = _target[_local11[1]]; }; _local13 = _target; _local14 = this.round; _target = _future; this.round = false; _orient = false; _local2 = _orientData.length; while (_local2--) { _local11 = _orientData[_local2]; this.changeFactor = (_arg1 + ((_local11[4]) || (0.01))); _local12 = ((_local11[3]) || (0)); _local9 = (_future[_local11[0]] - _local8[_local11[0]]); _local10 = (_future[_local11[1]] - _local8[_local11[1]]); _local13[_local11[2]] = ((Math.atan2(_local10, _local9) * _RAD2DEG) + _local12); }; _target = _local13; this.round = _local14; _orient = true; }; } public static function parseBeziers(_arg1:Object, _arg2:Boolean=false):Object{ var _local3:int; var _local4:Array; var _local5:Object; var _local6:String; var _local7:Object = {}; if (_arg2){ for (_local6 in _arg1) { _local4 = _arg1[_local6]; _local5 = []; _local7[_local6] = _local5; if (_local4.length > 2){ _local5[_local5.length] = [_local4[0], (_local4[1] - ((_local4[2] - _local4[0]) / 4)), _local4[1]]; _local3 = 1; while (_local3 < (_local4.length - 1)) { _local5[_local5.length] = [_local4[_local3], (_local4[_local3] + (_local4[_local3] - _local5[(_local3 - 1)][1])), _local4[(_local3 + 1)]]; _local3++; }; } else { _local5[_local5.length] = [_local4[0], ((_local4[0] + _local4[1]) / 2), _local4[1]]; }; }; } else { for (_local6 in _arg1) { _local4 = _arg1[_local6]; _local5 = []; _local7[_local6] = _local5; if (_local4.length > 3){ _local5[_local5.length] = [_local4[0], _local4[1], ((_local4[1] + _local4[2]) / 2)]; _local3 = 2; while (_local3 < (_local4.length - 2)) { _local5[_local5.length] = [_local5[(_local3 - 2)][2], _local4[_local3], ((_local4[_local3] + _local4[(_local3 + 1)]) / 2)]; _local3++; }; _local5[_local5.length] = [_local5[(_local5.length - 1)][2], _local4[(_local4.length - 2)], _local4[(_local4.length - 1)]]; } else { if (_local4.length == 3){ _local5[_local5.length] = [_local4[0], _local4[1], _local4[2]]; } else { if (_local4.length == 2){ _local5[_local5.length] = [_local4[0], ((_local4[0] + _local4[1]) / 2), _local4[1]]; }; }; }; }; }; return (_local7); } } }//package com.greensock.plugins
Section 20
//BezierThroughPlugin (com.greensock.plugins.BezierThroughPlugin) package com.greensock.plugins { import com.greensock.*; public class BezierThroughPlugin extends BezierPlugin { public static const API:Number = 1; public function BezierThroughPlugin(){ this.propName = "bezierThrough"; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ if (!(_arg2 is Array)){ return (false); }; init(_arg3, (_arg2 as Array), true); return (true); } } }//package com.greensock.plugins
Section 21
//BlurFilterPlugin (com.greensock.plugins.BlurFilterPlugin) package com.greensock.plugins { import flash.display.*; import com.greensock.*; import flash.filters.*; public class BlurFilterPlugin extends FilterPlugin { public static const API:Number = 1; private static var _propNames:Array = ["blurX", "blurY", "quality"]; public function BlurFilterPlugin(){ this.propName = "blurFilter"; this.overwriteProps = ["blurFilter"]; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ _target = _arg1; _type = BlurFilter; initFilter(_arg2, new BlurFilter(0, 0, ((_arg2.quality) || (2))), _propNames); return (true); } } }//package com.greensock.plugins
Section 22
//ColorMatrixFilterPlugin (com.greensock.plugins.ColorMatrixFilterPlugin) package com.greensock.plugins { import flash.display.*; import com.greensock.*; import flash.filters.*; public class ColorMatrixFilterPlugin extends FilterPlugin { protected var _matrix:Array; protected var _matrixTween:EndArrayPlugin; public static const API:Number = 1; private static var _propNames:Array = []; protected static var _lumG:Number = 0.71516; protected static var _lumR:Number = 0.212671; protected static var _idMatrix:Array = [1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0]; protected static var _lumB:Number = 0.072169; public function ColorMatrixFilterPlugin(){ this.propName = "colorMatrixFilter"; this.overwriteProps = ["colorMatrixFilter"]; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ _target = _arg1; _type = ColorMatrixFilter; var _local4:Object = _arg2; initFilter({remove:_arg2.remove, index:_arg2.index, addFilter:_arg2.addFilter}, new ColorMatrixFilter(_idMatrix.slice()), _propNames); _matrix = ColorMatrixFilter(_filter).matrix; var _local5:Array = []; if (((!((_local4.matrix == null))) && ((_local4.matrix is Array)))){ _local5 = _local4.matrix; } else { if (_local4.relative == true){ _local5 = _matrix.slice(); } else { _local5 = _idMatrix.slice(); }; _local5 = setBrightness(_local5, _local4.brightness); _local5 = setContrast(_local5, _local4.contrast); _local5 = setHue(_local5, _local4.hue); _local5 = setSaturation(_local5, _local4.saturation); _local5 = setThreshold(_local5, _local4.threshold); if (!isNaN(_local4.colorize)){ _local5 = colorize(_local5, _local4.colorize, _local4.amount); }; }; _matrixTween = new EndArrayPlugin(); _matrixTween.init(_matrix, _local5); return (true); } override public function set changeFactor(_arg1:Number):void{ _matrixTween.changeFactor = _arg1; ColorMatrixFilter(_filter).matrix = _matrix; super.changeFactor = _arg1; } public static function setSaturation(_arg1:Array, _arg2:Number):Array{ if (isNaN(_arg2)){ return (_arg1); }; var _local3:Number = (1 - _arg2); var _local4:Number = (_local3 * _lumR); var _local5:Number = (_local3 * _lumG); var _local6:Number = (_local3 * _lumB); var _local7:Array = [(_local4 + _arg2), _local5, _local6, 0, 0, _local4, (_local5 + _arg2), _local6, 0, 0, _local4, _local5, (_local6 + _arg2), 0, 0, 0, 0, 0, 1, 0]; return (applyMatrix(_local7, _arg1)); } public static function setHue(_arg1:Array, _arg2:Number):Array{ if (isNaN(_arg2)){ return (_arg1); }; _arg2 = (_arg2 * (Math.PI / 180)); var _local3:Number = Math.cos(_arg2); var _local4:Number = Math.sin(_arg2); var _local5:Array = [((_lumR + (_local3 * (1 - _lumR))) + (_local4 * -(_lumR))), ((_lumG + (_local3 * -(_lumG))) + (_local4 * -(_lumG))), ((_lumB + (_local3 * -(_lumB))) + (_local4 * (1 - _lumB))), 0, 0, ((_lumR + (_local3 * -(_lumR))) + (_local4 * 0.143)), ((_lumG + (_local3 * (1 - _lumG))) + (_local4 * 0.14)), ((_lumB + (_local3 * -(_lumB))) + (_local4 * -0.283)), 0, 0, ((_lumR + (_local3 * -(_lumR))) + (_local4 * -((1 - _lumR)))), ((_lumG + (_local3 * -(_lumG))) + (_local4 * _lumG)), ((_lumB + (_local3 * (1 - _lumB))) + (_local4 * _lumB)), 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1]; return (applyMatrix(_local5, _arg1)); } public static function setContrast(_arg1:Array, _arg2:Number):Array{ if (isNaN(_arg2)){ return (_arg1); }; _arg2 = (_arg2 + 0.01); var _local3:Array = [_arg2, 0, 0, 0, (128 * (1 - _arg2)), 0, _arg2, 0, 0, (128 * (1 - _arg2)), 0, 0, _arg2, 0, (128 * (1 - _arg2)), 0, 0, 0, 1, 0]; return (applyMatrix(_local3, _arg1)); } public static function applyMatrix(_arg1:Array, _arg2:Array):Array{ var _local6:int; var _local7:int; if (((!((_arg1 is Array))) || (!((_arg2 is Array))))){ return (_arg2); }; var _local3:Array = []; var _local4:int; var _local5:int; _local6 = 0; while (_local6 < 4) { _local7 = 0; while (_local7 < 5) { if (_local7 == 4){ _local5 = _arg1[(_local4 + 4)]; } else { _local5 = 0; }; _local3[(_local4 + _local7)] = (((((_arg1[_local4] * _arg2[_local7]) + (_arg1[(_local4 + 1)] * _arg2[(_local7 + 5)])) + (_arg1[(_local4 + 2)] * _arg2[(_local7 + 10)])) + (_arg1[(_local4 + 3)] * _arg2[(_local7 + 15)])) + _local5); _local7++; }; _local4 = (_local4 + 5); _local6++; }; return (_local3); } public static function setThreshold(_arg1:Array, _arg2:Number):Array{ if (isNaN(_arg2)){ return (_arg1); }; var _local3:Array = [(_lumR * 0x0100), (_lumG * 0x0100), (_lumB * 0x0100), 0, (-256 * _arg2), (_lumR * 0x0100), (_lumG * 0x0100), (_lumB * 0x0100), 0, (-256 * _arg2), (_lumR * 0x0100), (_lumG * 0x0100), (_lumB * 0x0100), 0, (-256 * _arg2), 0, 0, 0, 1, 0]; return (applyMatrix(_local3, _arg1)); } public static function colorize(_arg1:Array, _arg2:Number, _arg3:Number=1):Array{ if (isNaN(_arg2)){ return (_arg1); }; if (isNaN(_arg3)){ _arg3 = 1; }; var _local4:Number = (((_arg2 >> 16) & 0xFF) / 0xFF); var _local5:Number = (((_arg2 >> 8) & 0xFF) / 0xFF); var _local6:Number = ((_arg2 & 0xFF) / 0xFF); var _local7:Number = (1 - _arg3); var _local8:Array = [(_local7 + ((_arg3 * _local4) * _lumR)), ((_arg3 * _local4) * _lumG), ((_arg3 * _local4) * _lumB), 0, 0, ((_arg3 * _local5) * _lumR), (_local7 + ((_arg3 * _local5) * _lumG)), ((_arg3 * _local5) * _lumB), 0, 0, ((_arg3 * _local6) * _lumR), ((_arg3 * _local6) * _lumG), (_local7 + ((_arg3 * _local6) * _lumB)), 0, 0, 0, 0, 0, 1, 0]; return (applyMatrix(_local8, _arg1)); } public static function setBrightness(_arg1:Array, _arg2:Number):Array{ if (isNaN(_arg2)){ return (_arg1); }; _arg2 = ((_arg2 * 100) - 100); return (applyMatrix([1, 0, 0, 0, _arg2, 0, 1, 0, 0, _arg2, 0, 0, 1, 0, _arg2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1], _arg1)); } } }//package com.greensock.plugins
Section 23
//ColorTransformPlugin (com.greensock.plugins.ColorTransformPlugin) package com.greensock.plugins { import flash.display.*; import com.greensock.*; import flash.geom.*; public class ColorTransformPlugin extends TintPlugin { public static const API:Number = 1; public function ColorTransformPlugin(){ this.propName = "colorTransform"; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ var _local5:String; var _local6:Number; if (!(_arg1 is DisplayObject)){ return (false); }; var _local4:ColorTransform = _arg1.transform.colorTransform; for (_local5 in _arg2) { if ((((_local5 == "tint")) || ((_local5 == "color")))){ if (_arg2[_local5] != null){ _local4.color = int(_arg2[_local5]); }; } else { if ((((((_local5 == "tintAmount")) || ((_local5 == "exposure")))) || ((_local5 == "brightness")))){ } else { _local4[_local5] = _arg2[_local5]; }; }; }; if (!isNaN(_arg2.tintAmount)){ _local6 = (_arg2.tintAmount / (1 - (((_local4.redMultiplier + _local4.greenMultiplier) + _local4.blueMultiplier) / 3))); _local4.redOffset = (_local4.redOffset * _local6); _local4.greenOffset = (_local4.greenOffset * _local6); _local4.blueOffset = (_local4.blueOffset * _local6); _local4.redMultiplier = (_local4.greenMultiplier = (_local4.blueMultiplier = (1 - _arg2.tintAmount))); } else { if (!isNaN(_arg2.exposure)){ _local4.redOffset = (_local4.greenOffset = (_local4.blueOffset = (0xFF * (_arg2.exposure - 1)))); _local4.redMultiplier = (_local4.greenMultiplier = (_local4.blueMultiplier = 1)); } else { if (!isNaN(_arg2.brightness)){ _local4.redOffset = (_local4.greenOffset = (_local4.blueOffset = Math.max(0, ((_arg2.brightness - 1) * 0xFF)))); _local4.redMultiplier = (_local4.greenMultiplier = (_local4.blueMultiplier = (1 - Math.abs((_arg2.brightness - 1))))); }; }; }; _ignoreAlpha = Boolean(((!((_arg3.vars.alpha == undefined))) && ((_arg2.alphaMultiplier == undefined)))); init((_arg1 as DisplayObject), _local4); return (true); } } }//package com.greensock.plugins
Section 24
//DropShadowFilterPlugin (com.greensock.plugins.DropShadowFilterPlugin) package com.greensock.plugins { import flash.display.*; import com.greensock.*; import flash.filters.*; public class DropShadowFilterPlugin extends FilterPlugin { public static const API:Number = 1; private static var _propNames:Array = ["distance", "angle", "color", "alpha", "blurX", "blurY", "strength", "quality", "inner", "knockout", "hideObject"]; public function DropShadowFilterPlugin(){ this.propName = "dropShadowFilter"; this.overwriteProps = ["dropShadowFilter"]; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ _target = _arg1; _type = DropShadowFilter; initFilter(_arg2, new DropShadowFilter(0, 45, 0, 0, 0, 0, 1, ((_arg2.quality) || (2)), _arg2.inner, _arg2.knockout, _arg2.hideObject), _propNames); return (true); } } }//package com.greensock.plugins
Section 25
//EndArrayPlugin (com.greensock.plugins.EndArrayPlugin) package com.greensock.plugins { import flash.display.*; import com.greensock.*; public class EndArrayPlugin extends TweenPlugin { protected var _a:Array; protected var _info:Array; public static const API:Number = 1; public function EndArrayPlugin(){ _info = []; super(); this.propName = "endArray"; this.overwriteProps = ["endArray"]; } public function init(_arg1:Array, _arg2:Array):void{ _a = _arg1; var _local3:int = _arg2.length; while (_local3--) { if (((!((_arg1[_local3] == _arg2[_local3]))) && (!((_arg1[_local3] == null))))){ _info[_info.length] = new ArrayTweenInfo(_local3, _a[_local3], (_arg2[_local3] - _a[_local3])); }; }; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ if (((!((_arg1 is Array))) || (!((_arg2 is Array))))){ return (false); }; init((_arg1 as Array), _arg2); return (true); } override public function set changeFactor(_arg1:Number):void{ var _local3:ArrayTweenInfo; var _local4:Number; var _local2:int = _info.length; if (this.round){ while (_local2--) { _local3 = _info[_local2]; _local4 = (_local3.start + (_local3.change * _arg1)); _a[_local3.index] = ((_local4)>0) ? int((_local4 + 0.5)) : int((_local4 - 0.5)); }; } else { while (_local2--) { _local3 = _info[_local2]; _a[_local3.index] = (_local3.start + (_local3.change * _arg1)); }; }; } } }//package com.greensock.plugins class ArrayTweenInfo { public var change:Number; public var start:Number; public var index:uint; private function ArrayTweenInfo(_arg1:uint, _arg2:Number, _arg3:Number){ this.index = _arg1; this.start = _arg2; this.change = _arg3; } }
Section 26
//FilterPlugin (com.greensock.plugins.FilterPlugin) package com.greensock.plugins { import flash.display.*; import com.greensock.*; import com.greensock.core.*; import flash.filters.*; public class FilterPlugin extends TweenPlugin { protected var _remove:Boolean; protected var _target:Object; protected var _index:int; protected var _filter:BitmapFilter; protected var _type:Class; public static const VERSION:Number = 2.03; public static const API:Number = 1; public function onCompleteTween():void{ var _local1:Array; var _local2:int; if (_remove){ _local1 = _target.filters; if (!(_local1[_index] is _type)){ _local2 = _local1.length; while (_local2--) { if ((_local1[_local2] is _type)){ _local1.splice(_local2, 1); break; }; }; } else { _local1.splice(_index, 1); }; _target.filters = _local1; }; } protected function initFilter(_arg1:Object, _arg2:BitmapFilter, _arg3:Array):void{ var _local5:String; var _local6:int; var _local7:HexColorsPlugin; var _local4:Array = _target.filters; var _local8:Object = ((_arg1 is BitmapFilter)) ? {} : _arg1; _index = -1; if (_local8.index != null){ _index = _local8.index; } else { _local6 = _local4.length; while (_local6--) { if ((_local4[_local6] is _type)){ _index = _local6; break; }; }; }; if ((((((_index == -1)) || ((_local4[_index] == null)))) || ((_local8.addFilter == true)))){ _index = ((_local8.index)!=null) ? _local8.index : _local4.length; _local4[_index] = _arg2; _target.filters = _local4; }; _filter = _local4[_index]; if (_local8.remove == true){ _remove = true; this.onComplete = onCompleteTween; }; _local6 = _arg3.length; while (_local6--) { _local5 = _arg3[_local6]; if ((((_local5 in _arg1)) && (!((_filter[_local5] == _arg1[_local5]))))){ if ((((((_local5 == "color")) || ((_local5 == "highlightColor")))) || ((_local5 == "shadowColor")))){ _local7 = new HexColorsPlugin(); _local7.initColor(_filter, _local5, _filter[_local5], _arg1[_local5]); _tweens[_tweens.length] = new PropTween(_local7, "changeFactor", 0, 1, _local5, false); } else { if ((((((((_local5 == "quality")) || ((_local5 == "inner")))) || ((_local5 == "knockout")))) || ((_local5 == "hideObject")))){ _filter[_local5] = _arg1[_local5]; } else { addTween(_filter, _local5, _filter[_local5], _arg1[_local5], _local5); }; }; }; }; } override public function set changeFactor(_arg1:Number):void{ var _local3:PropTween; var _local2:int = _tweens.length; var _local4:Array = _target.filters; while (_local2--) { _local3 = _tweens[_local2]; _local3.target[_local3.property] = (_local3.start + (_local3.change * _arg1)); }; if (!(_local4[_index] is _type)){ _local2 = (_index = _local4.length); while (_local2--) { if ((_local4[_local2] is _type)){ _index = _local2; break; }; }; }; _local4[_index] = _filter; _target.filters = _local4; } } }//package com.greensock.plugins
Section 27
//FrameLabelPlugin (com.greensock.plugins.FrameLabelPlugin) package com.greensock.plugins { import flash.display.*; import com.greensock.*; public class FrameLabelPlugin extends FramePlugin { public static const API:Number = 1; public function FrameLabelPlugin(){ this.propName = "frameLabel"; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ if ((!(_arg3.target) is MovieClip)){ return (false); }; _target = (_arg1 as MovieClip); this.frame = _target.currentFrame; var _local4:Array = _target.currentLabels; var _local5:String = _arg2; var _local6:int = _target.currentFrame; var _local7:int = _local4.length; while (_local7--) { if (_local4[_local7].name == _local5){ _local6 = _local4[_local7].frame; break; }; }; if (this.frame != _local6){ addTween(this, "frame", this.frame, _local6, "frame"); }; return (true); } } }//package com.greensock.plugins
Section 28
//FramePlugin (com.greensock.plugins.FramePlugin) package com.greensock.plugins { import flash.display.*; import com.greensock.*; public class FramePlugin extends TweenPlugin { protected var _target:MovieClip; public var frame:int; public static const API:Number = 1; public function FramePlugin(){ this.propName = "frame"; this.overwriteProps = ["frame", "frameLabel"]; this.round = true; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ if (((!((_arg1 is MovieClip))) || (isNaN(_arg2)))){ return (false); }; _target = (_arg1 as MovieClip); this.frame = _target.currentFrame; addTween(this, "frame", this.frame, _arg2, "frame"); return (true); } override public function set changeFactor(_arg1:Number):void{ updateTweens(_arg1); _target.gotoAndStop(this.frame); } } }//package com.greensock.plugins
Section 29
//GlowFilterPlugin (com.greensock.plugins.GlowFilterPlugin) package com.greensock.plugins { import flash.display.*; import com.greensock.*; import flash.filters.*; public class GlowFilterPlugin extends FilterPlugin { public static const API:Number = 1; private static var _propNames:Array = ["color", "alpha", "blurX", "blurY", "strength", "quality", "inner", "knockout"]; public function GlowFilterPlugin(){ this.propName = "glowFilter"; this.overwriteProps = ["glowFilter"]; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ _target = _arg1; _type = GlowFilter; initFilter(_arg2, new GlowFilter(0xFFFFFF, 0, 0, 0, ((_arg2.strength) || (1)), ((_arg2.quality) || (2)), _arg2.inner, _arg2.knockout), _propNames); return (true); } } }//package com.greensock.plugins
Section 30
//HexColorsPlugin (com.greensock.plugins.HexColorsPlugin) package com.greensock.plugins { import flash.display.*; import com.greensock.*; public class HexColorsPlugin extends TweenPlugin { protected var _colors:Array; public static const API:Number = 1; public function HexColorsPlugin(){ this.propName = "hexColors"; this.overwriteProps = []; _colors = []; } override public function killProps(_arg1:Object):void{ var _local2:int = (_colors.length - 1); while (_local2 > -1) { if (_arg1[_colors[_local2][1]] != undefined){ _colors.splice(_local2, 1); }; _local2--; }; super.killProps(_arg1); } public function initColor(_arg1:Object, _arg2:String, _arg3:uint, _arg4:uint):void{ var _local5:Number; var _local6:Number; var _local7:Number; if (_arg3 != _arg4){ _local5 = (_arg3 >> 16); _local6 = ((_arg3 >> 8) & 0xFF); _local7 = (_arg3 & 0xFF); _colors[_colors.length] = [_arg1, _arg2, _local5, ((_arg4 >> 16) - _local5), _local6, (((_arg4 >> 8) & 0xFF) - _local6), _local7, ((_arg4 & 0xFF) - _local7)]; this.overwriteProps[this.overwriteProps.length] = _arg2; }; } override public function set changeFactor(_arg1:Number):void{ var _local2:int; var _local3:Array; _local2 = (_colors.length - 1); while (_local2 > -1) { _local3 = _colors[_local2]; _local3[0][_local3[1]] = ((((_local3[2] + (_arg1 * _local3[3])) << 16) | ((_local3[4] + (_arg1 * _local3[5])) << 8)) | (_local3[6] + (_arg1 * _local3[7]))); _local2--; }; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ var _local4:String; for (_local4 in _arg2) { initColor(_arg1, _local4, uint(_arg1[_local4]), uint(_arg2[_local4])); }; return (true); } } }//package com.greensock.plugins
Section 31
//RemoveTintPlugin (com.greensock.plugins.RemoveTintPlugin) package com.greensock.plugins { public class RemoveTintPlugin extends TintPlugin { public static const API:Number = 1; public function RemoveTintPlugin(){ this.propName = "removeTint"; } } }//package com.greensock.plugins
Section 32
//RoundPropsPlugin (com.greensock.plugins.RoundPropsPlugin) package com.greensock.plugins { import flash.display.*; import com.greensock.*; public class RoundPropsPlugin extends TweenPlugin { public static const API:Number = 1; public function RoundPropsPlugin(){ this.propName = "roundProps"; this.overwriteProps = []; this.round = true; } public function add(_arg1:Object, _arg2:String, _arg3:Number, _arg4:Number):void{ addTween(_arg1, _arg2, _arg3, (_arg3 + _arg4), _arg2); this.overwriteProps[this.overwriteProps.length] = _arg2; } } }//package com.greensock.plugins
Section 33
//ShortRotationPlugin (com.greensock.plugins.ShortRotationPlugin) package com.greensock.plugins { import flash.display.*; import com.greensock.*; public class ShortRotationPlugin extends TweenPlugin { public static const API:Number = 1; public function ShortRotationPlugin(){ this.propName = "shortRotation"; this.overwriteProps = []; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ var _local4:String; if (typeof(_arg2) == "number"){ return (false); }; for (_local4 in _arg2) { initRotation(_arg1, _local4, _arg1[_local4], ((typeof(_arg2[_local4]))=="number") ? Number(_arg2[_local4]) : (_arg1[_local4] + Number(_arg2[_local4]))); }; return (true); } public function initRotation(_arg1:Object, _arg2:String, _arg3:Number, _arg4:Number):void{ var _local5:Number = ((_arg4 - _arg3) % 360); if (((_arg4 - _arg3) % 360) != (_local5 % 180)){ _local5 = ((_local5)<0) ? (_local5 + 360) : (_local5 - 360); }; addTween(_arg1, _arg2, _arg3, (_arg3 + _local5), _arg2); this.overwriteProps[this.overwriteProps.length] = _arg2; } } }//package com.greensock.plugins
Section 34
//TintPlugin (com.greensock.plugins.TintPlugin) package com.greensock.plugins { import flash.display.*; import com.greensock.*; import com.greensock.core.*; import flash.geom.*; public class TintPlugin extends TweenPlugin { protected var _ct:ColorTransform; protected var _transform:Transform; protected var _ignoreAlpha:Boolean; public static const API:Number = 1; protected static var _props:Array = ["redMultiplier", "greenMultiplier", "blueMultiplier", "alphaMultiplier", "redOffset", "greenOffset", "blueOffset", "alphaOffset"]; public function TintPlugin(){ this.propName = "tint"; this.overwriteProps = ["tint"]; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ if (!(_arg1 is DisplayObject)){ return (false); }; var _local4:ColorTransform = new ColorTransform(); if (((!((_arg2 == null))) && (!((_arg3.vars.removeTint == true))))){ _local4.color = uint(_arg2); }; _ignoreAlpha = true; init((_arg1 as DisplayObject), _local4); return (true); } override public function set changeFactor(_arg1:Number):void{ var _local2:ColorTransform; updateTweens(_arg1); if (_ignoreAlpha){ _local2 = _transform.colorTransform; _ct.alphaMultiplier = _local2.alphaMultiplier; _ct.alphaOffset = _local2.alphaOffset; }; _transform.colorTransform = _ct; } public function init(_arg1:DisplayObject, _arg2:ColorTransform):void{ var _local4:String; _transform = _arg1.transform; _ct = _transform.colorTransform; var _local3:int = _props.length; while (_local3--) { _local4 = _props[_local3]; if (_ct[_local4] != _arg2[_local4]){ _tweens[_tweens.length] = new PropTween(_ct, _local4, _ct[_local4], (_arg2[_local4] - _ct[_local4]), "tint", false); }; }; } } }//package com.greensock.plugins
Section 35
//TweenPlugin (com.greensock.plugins.TweenPlugin) package com.greensock.plugins { import com.greensock.*; import com.greensock.core.*; public class TweenPlugin { public var activeDisable:Boolean; protected var _changeFactor:Number;// = 0 protected var _tweens:Array; public var onDisable:Function; public var propName:String; public var round:Boolean; public var onEnable:Function; public var priority:int;// = 0 public var overwriteProps:Array; public var onComplete:Function; public static const VERSION:Number = 1.31; public static const API:Number = 1; public function TweenPlugin(){ _tweens = []; super(); } protected function updateTweens(_arg1:Number):void{ var _local3:PropTween; var _local4:Number; var _local2:int = _tweens.length; if (this.round){ while (_local2--) { _local3 = _tweens[_local2]; _local4 = (_local3.start + (_local3.change * _arg1)); _local3.target[_local3.property] = ((_local4)>0) ? int((_local4 + 0.5)) : int((_local4 - 0.5)); }; } else { while (_local2--) { _local3 = _tweens[_local2]; _local3.target[_local3.property] = (_local3.start + (_local3.change * _arg1)); }; }; } protected function addTween(_arg1:Object, _arg2:String, _arg3:Number, _arg4, _arg5:String=null):void{ var _local6:Number; if (_arg4 != null){ _local6 = ((typeof(_arg4))=="number") ? (Number(_arg4) - _arg3) : Number(_arg4); if (_local6 != 0){ _tweens[_tweens.length] = new PropTween(_arg1, _arg2, _arg3, _local6, ((_arg5) || (_arg2)), false); }; }; } public function get changeFactor():Number{ return (_changeFactor); } public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ addTween(_arg1, this.propName, _arg1[this.propName], _arg2, this.propName); return (true); } public function killProps(_arg1:Object):void{ var _local2:int = this.overwriteProps.length; while (_local2--) { if ((this.overwriteProps[_local2] in _arg1)){ this.overwriteProps.splice(_local2, 1); }; }; _local2 = _tweens.length; while (_local2--) { if ((PropTween(_tweens[_local2]).name in _arg1)){ _tweens.splice(_local2, 1); }; }; } public function set changeFactor(_arg1:Number):void{ updateTweens(_arg1); _changeFactor = _arg1; } public static function activate(_arg1:Array):Boolean{ var _local3:Object; TweenLite.onPluginEvent = TweenPlugin.onTweenEvent; var _local2:int = _arg1.length; while (_local2--) { if (_arg1[_local2].hasOwnProperty("API")){ _local3 = new ((_arg1[_local2] as Class)); TweenLite.plugins[_local3.propName] = _arg1[_local2]; }; }; return (true); } private static function onTweenEvent(_arg1:String, _arg2:TweenLite):Boolean{ var _local4:Boolean; var _local5:Array; var _local6:int; var _local3:PropTween = _arg2.cachedPT1; if (_arg1 == "onInit"){ _local5 = []; while (_local3) { _local5[_local5.length] = _local3; _local3 = _local3.nextNode; }; _local5.sortOn("priority", (Array.NUMERIC | Array.DESCENDING)); _local6 = _local5.length; while (_local6--) { PropTween(_local5[_local6]).nextNode = _local5[(_local6 + 1)]; PropTween(_local5[_local6]).prevNode = _local5[(_local6 - 1)]; }; _arg2.cachedPT1 = _local5[0]; } else { while (_local3) { if (((_local3.isPlugin) && (_local3.target[_arg1]))){ if (_local3.target.activeDisable){ _local4 = true; }; var _local7 = _local3.target; _local7[_arg1](); }; _local3 = _local3.nextNode; }; }; return (_local4); } } }//package com.greensock.plugins
Section 36
//VisiblePlugin (com.greensock.plugins.VisiblePlugin) package com.greensock.plugins { import flash.display.*; import com.greensock.*; public class VisiblePlugin extends TweenPlugin { protected var _target:Object; protected var _initVal:Boolean; protected var _visible:Boolean; protected var _tween:TweenLite; public static const API:Number = 1; public function VisiblePlugin(){ this.propName = "visible"; this.overwriteProps = ["visible"]; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ _target = _arg1; _tween = _arg3; _initVal = _target.visible; _visible = Boolean(_arg2); return (true); } override public function set changeFactor(_arg1:Number):void{ if ((((_arg1 == 1)) && ((((_tween.cachedDuration == _tween.cachedTime)) || ((_tween.cachedTime == 0)))))){ _target.visible = _visible; } else { _target.visible = _initVal; }; } } }//package com.greensock.plugins
Section 37
//VolumePlugin (com.greensock.plugins.VolumePlugin) package com.greensock.plugins { import flash.display.*; import com.greensock.*; import flash.media.*; public class VolumePlugin extends TweenPlugin { protected var _target:Object; protected var _st:SoundTransform; public static const API:Number = 1; public function VolumePlugin(){ this.propName = "volume"; this.overwriteProps = ["volume"]; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ if (((isNaN(_arg2)) || (!(_arg1.hasOwnProperty("soundTransform"))))){ return (false); }; _target = _arg1; _st = _target.soundTransform; addTween(_st, "volume", _st.volume, _arg2, "volume"); return (true); } override public function set changeFactor(_arg1:Number):void{ updateTweens(_arg1); _target.soundTransform = _st; } } }//package com.greensock.plugins
Section 38
//OverwriteManager (com.greensock.OverwriteManager) package com.greensock { import flash.utils.*; import com.greensock.core.*; import flash.errors.*; public class OverwriteManager { public static const ALL_ONSTART:int = 4; public static const CONCURRENT:int = 3; public static const ALL_IMMEDIATE:int = 1; public static const PREEXISTING:int = 5; public static const AUTO:int = 2; public static const version:Number = 6; public static const NONE:int = 0; public static var enabled:Boolean; public static var mode:int; public static function getGlobalPaused(_arg1:TweenCore):Boolean{ while (_arg1) { if (_arg1.cachedPaused){ return (true); }; _arg1 = _arg1.timeline; }; return (false); } public static function init(_arg1:int=2):int{ if (TweenLite.version < 11.099994){ throw (new Error("Warning: Your TweenLite class needs to be updated to work with OverwriteManager (or you may need to clear your ASO files). Please download and install the latest version from http://www.tweenlite.com.")); }; TweenLite.overwriteManager = OverwriteManager; mode = _arg1; enabled = true; return (mode); } public static function manageOverwrites(_arg1:TweenLite, _arg2:Object, _arg3:Array, _arg4:uint):Boolean{ var _local5:int; var _local6:Boolean; var _local7:TweenLite; var _local13:uint; var _local14:Number; var _local15:Number; var _local16:TweenCore; var _local17:Number; var _local18:SimpleTimeline; if (_arg4 >= 4){ _local13 = _arg3.length; _local5 = 0; while (_local5 < _local13) { _local7 = _arg3[_local5]; if (_local7 != _arg1){ if (_local7.setEnabled(false, false)){ _local6 = true; }; } else { if (_arg4 == 5){ break; }; }; _local5++; }; return (_local6); }; var _local8:Number = _arg1.startTime; var _local9:Array = []; var _local10:Array = []; var _local11:uint; var _local12:uint; _local5 = _arg3.length; while (_local5--) { _local7 = _arg3[_local5]; if ((((_local7 == _arg1)) || (_local7.gc))){ } else { if (_local7.timeline != _arg1.timeline){ if (!getGlobalPaused(_local7)){ var _temp1 = _local11; _local11 = (_local11 + 1); var _local19 = _temp1; _local10[_local19] = _local7; }; } else { if ((((((_local7.startTime <= _local8)) && (((_local7.startTime + _local7.totalDuration) > _local8)))) && (!(getGlobalPaused(_local7))))){ var _temp2 = _local12; _local12 = (_local12 + 1); _local19 = _temp2; _local9[_local19] = _local7; }; }; }; }; if (_local11 != 0){ _local14 = _arg1.cachedTimeScale; _local15 = _local8; _local18 = _arg1.timeline; while (_local18) { _local14 = (_local14 * _local18.cachedTimeScale); _local15 = (_local15 + _local18.startTime); _local18 = _local18.timeline; }; _local8 = (_local14 * _local15); _local5 = _local11; while (_local5--) { _local16 = _local10[_local5]; _local14 = _local16.cachedTimeScale; _local15 = _local16.startTime; _local18 = _local16.timeline; while (_local18) { _local14 = (_local14 * _local18.cachedTimeScale); _local15 = (_local15 + _local18.startTime); _local18 = _local18.timeline; }; _local17 = (_local14 * _local15); if ((((_local17 <= _local8)) && (((((_local17 + (_local16.totalDuration * _local14)) > _local8)) || ((_local16.cachedDuration == 0)))))){ var _temp3 = _local12; _local12 = (_local12 + 1); _local19 = _temp3; _local9[_local19] = _local16; }; }; }; if (_local12 == 0){ return (_local6); }; _local5 = _local12; if (_arg4 == 2){ while (_local5--) { _local7 = _local9[_local5]; if (_local7.killVars(_arg2)){ _local6 = true; }; if ((((_local7.cachedPT1 == null)) && (_local7.initted))){ _local7.setEnabled(false, false); }; }; } else { while (_local5--) { if (TweenLite(_local9[_local5]).setEnabled(false, false)){ _local6 = true; }; }; }; return (_local6); } } }//package com.greensock
Section 39
//TweenLite (com.greensock.TweenLite) package com.greensock { import flash.events.*; import flash.display.*; import flash.utils.*; import com.greensock.core.*; import com.greensock.plugins.*; public class TweenLite extends TweenCore { protected var _hasPlugins:Boolean; public var propTweenLookup:Object; public var cachedPT1:PropTween; protected var _overwrite:uint; protected var _ease:Function; public var target:Object; public var ratio:Number;// = 0 protected var _overwrittenProps:Object; protected var _notifyPluginsOfEnabled:Boolean; public static const version:Number = 11.133; public static var rootTimeline:SimpleTimeline; public static var fastEaseLookup:Dictionary = new Dictionary(false); public static var onPluginEvent:Function; public static var rootFramesTimeline:SimpleTimeline; public static var defaultEase:Function = TweenLite.easeOut; public static var plugins:Object = {}; public static var masterList:Dictionary = new Dictionary(false); public static var overwriteManager:Object; public static var rootFrame:Number; public static var killDelayedCallsTo:Function = TweenLite.killTweensOf; private static var _shape:Shape = new Shape(); protected static var _reservedProps:Object = {ease:1, delay:1, overwrite:1, onComplete:1, onCompleteParams:1, useFrames:1, runBackwards:1, startAt:1, onUpdate:1, onUpdateParams:1, roundProps:1, onStart:1, onStartParams:1, onReverseComplete:1, onReverseCompleteParams:1, onRepeat:1, onRepeatParams:1, proxiedEase:1, easeParams:1, yoyo:1, onCompleteListener:1, onUpdateListener:1, onStartListener:1, onReverseCompleteListener:1, onRepeatListener:1, orientToBezier:1, timeScale:1, immediateRender:1, repeat:1, repeatDelay:1, timeline:1, data:1, paused:1}; public function TweenLite(_arg1:Object, _arg2:Number, _arg3:Object){ var _local5:TweenLite; super(_arg2, _arg3); this.target = _arg1; if ((((this.target is TweenCore)) && (("timeScale" in this.vars)))){ this.cachedTimeScale = 1; }; propTweenLookup = {}; _ease = defaultEase; _overwrite = (((!((Number(_arg3.overwrite) > -1))) || (((!(overwriteManager.enabled)) && ((_arg3.overwrite > 1)))))) ? overwriteManager.mode : int(_arg3.overwrite); var _local4:Array = masterList[_arg1]; if (!_local4){ masterList[_arg1] = [this]; } else { if (_overwrite == 1){ for each (_local5 in _local4) { if (!_local5.gc){ _local5.setEnabled(false, false); }; }; masterList[_arg1] = [this]; } else { _local4[_local4.length] = this; }; }; if (((this.active) || (this.vars.immediateRender))){ renderTime(0, false, true); }; } protected function easeProxy(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return (this.vars.proxiedEase.apply(null, arguments.concat(this.vars.easeParams))); } override public function renderTime(_arg1:Number, _arg2:Boolean=false, _arg3:Boolean=false):void{ var _local4:Boolean; var _local5:Number = this.cachedTime; if (_arg1 >= this.cachedDuration){ this.cachedTotalTime = (this.cachedTime = this.cachedDuration); this.ratio = 1; _local4 = true; if (this.cachedDuration == 0){ if ((((((_arg1 == 0)) || ((_rawPrevTime < 0)))) && (!((_rawPrevTime == _arg1))))){ _arg3 = true; }; _rawPrevTime = _arg1; }; } else { if (_arg1 <= 0){ this.cachedTotalTime = (this.cachedTime = (this.ratio = 0)); if (_arg1 < 0){ this.active = false; if (this.cachedDuration == 0){ if (_rawPrevTime > 0){ _arg3 = true; _local4 = true; }; _rawPrevTime = _arg1; }; }; if (((this.cachedReversed) && (!((_local5 == 0))))){ _local4 = true; }; } else { this.cachedTotalTime = (this.cachedTime = _arg1); this.ratio = _ease(_arg1, 0, 1, this.cachedDuration); }; }; if ((((this.cachedTime == _local5)) && (!(_arg3)))){ return; }; if (!this.initted){ init(); if (((!(_local4)) && (this.cachedTime))){ this.ratio = _ease(this.cachedTime, 0, 1, this.cachedDuration); }; }; if (((!(this.active)) && (!(this.cachedPaused)))){ this.active = true; }; if ((((((((_local5 == 0)) && (this.vars.onStart))) && (!((this.cachedTime == 0))))) && (!(_arg2)))){ this.vars.onStart.apply(null, this.vars.onStartParams); }; var _local6:PropTween = this.cachedPT1; while (_local6) { _local6.target[_local6.property] = (_local6.start + (this.ratio * _local6.change)); _local6 = _local6.nextNode; }; if (((_hasUpdate) && (!(_arg2)))){ this.vars.onUpdate.apply(null, this.vars.onUpdateParams); }; if (_local4){ if (((_hasPlugins) && (this.cachedPT1))){ onPluginEvent("onComplete", this); }; complete(true, _arg2); }; } override public function setEnabled(_arg1:Boolean, _arg2:Boolean=false):Boolean{ var _local3:Array; if (_arg1){ _local3 = TweenLite.masterList[this.target]; if (!_local3){ TweenLite.masterList[this.target] = [this]; } else { _local3[_local3.length] = this; }; }; super.setEnabled(_arg1, _arg2); if (((_notifyPluginsOfEnabled) && (this.cachedPT1))){ return (onPluginEvent((_arg1) ? "onEnable" : "onDisable", this)); }; return (false); } protected function init():void{ var _local1:String; var _local2:int; var _local3:*; var _local4:Boolean; var _local5:Array; var _local6:PropTween; if (typeof(this.vars.ease) == "function"){ _ease = this.vars.ease; }; if (this.vars.easeParams){ this.vars.proxiedEase = _ease; _ease = easeProxy; }; this.cachedPT1 = null; this.propTweenLookup = {}; for (_local1 in this.vars) { if ((((_local1 in _reservedProps)) && (!((((_local1 == "timeScale")) && ((this.target is TweenCore))))))){ } else { if ((((_local1 in plugins)) && (new ((plugins[_local1] as Class)).onInitTween(this.target, this.vars[_local1], this)))){ this.cachedPT1 = new PropTween(_local3, "changeFactor", 0, 1, ((_local3.overwriteProps.length)==1) ? _local3.overwriteProps[0] : "_MULTIPLE_", true, this.cachedPT1); if (this.cachedPT1.name == "_MULTIPLE_"){ _local2 = _local3.overwriteProps.length; while (_local2--) { this.propTweenLookup[_local3.overwriteProps[_local2]] = this.cachedPT1; }; } else { this.propTweenLookup[this.cachedPT1.name] = this.cachedPT1; }; if (_local3.priority){ this.cachedPT1.priority = _local3.priority; _local4 = true; }; if (((_local3.onDisable) || (_local3.onEnable))){ _notifyPluginsOfEnabled = true; }; _hasPlugins = true; } else { this.cachedPT1 = new PropTween(this.target, _local1, Number(this.target[_local1]), ((typeof(this.vars[_local1]))=="number") ? (Number(this.vars[_local1]) - this.target[_local1]) : Number(this.vars[_local1]), _local1, false, this.cachedPT1); this.propTweenLookup[_local1] = this.cachedPT1; }; }; }; if (_local4){ onPluginEvent("onInit", this); }; if (this.vars.runBackwards){ _local6 = this.cachedPT1; while (_local6) { _local6.start = (_local6.start + _local6.change); _local6.change = -(_local6.change); _local6 = _local6.nextNode; }; }; _hasUpdate = Boolean(!((this.vars.onUpdate == null))); if (_overwrittenProps){ killVars(_overwrittenProps); if (this.cachedPT1 == null){ this.setEnabled(false, false); }; }; if ((((((((_overwrite > 1)) && (this.cachedPT1))) && (masterList[this.target]))) && ((_local5.length > 1)))){ if (overwriteManager.manageOverwrites(this, this.propTweenLookup, _local5, _overwrite)){ init(); }; }; this.initted = true; } public function killVars(_arg1:Object, _arg2:Boolean=true):Boolean{ var _local3:String; var _local4:PropTween; var _local5:Boolean; if (_overwrittenProps == null){ _overwrittenProps = {}; }; for (_local3 in _arg1) { if ((_local3 in propTweenLookup)){ _local4 = propTweenLookup[_local3]; if (((_local4.isPlugin) && ((_local4.name == "_MULTIPLE_")))){ _local4.target.killProps(_arg1); if (_local4.target.overwriteProps.length == 0){ _local4.name = ""; }; }; if (_local4.name != "_MULTIPLE_"){ if (_local4.nextNode){ _local4.nextNode.prevNode = _local4.prevNode; }; if (_local4.prevNode){ _local4.prevNode.nextNode = _local4.nextNode; } else { if (this.cachedPT1 == _local4){ this.cachedPT1 = _local4.nextNode; }; }; if (((_local4.isPlugin) && (_local4.target.onDisable))){ _local4.target.onDisable(); if (_local4.target.activeDisable){ _local5 = true; }; }; delete propTweenLookup[_local3]; }; }; if (_arg2){ _overwrittenProps[_local3] = 1; }; }; return (_local5); } override public function invalidate():void{ if (((_notifyPluginsOfEnabled) && (this.cachedPT1))){ onPluginEvent("onDisable", this); }; this.cachedPT1 = null; _overwrittenProps = null; _hasUpdate = (this.initted = (this.active = (_notifyPluginsOfEnabled = false))); this.propTweenLookup = {}; } public static function initClass():void{ rootFrame = 0; rootTimeline = new SimpleTimeline(null); rootFramesTimeline = new SimpleTimeline(null); rootTimeline.cachedStartTime = (getTimer() * 0.001); rootFramesTimeline.cachedStartTime = rootFrame; rootTimeline.autoRemoveChildren = true; rootFramesTimeline.autoRemoveChildren = true; _shape.addEventListener(Event.ENTER_FRAME, updateAll, false, 0, true); if (overwriteManager == null){ overwriteManager = {mode:1, enabled:false}; }; } public static function killTweensOf(_arg1:Object, _arg2:Boolean=false):void{ var _local3:Array; var _local4:int; var _local5:Object; if ((_arg1 in masterList)){ _local3 = masterList[_arg1]; _local4 = _local3.length; _local5 = TweenLite; while (_local4--) { if (!_local5(_local3[_local4]).gc){ if (_arg2){ _local5(_local3[_local4]).complete(false, false); } else { _local5(_local3[_local4]).setEnabled(false, false); }; }; }; delete masterList[_arg1]; }; } public static function from(_arg1:Object, _arg2:Number, _arg3:Object):TweenLite{ _arg3.runBackwards = true; if (!("immediateRender" in _arg3)){ _arg3.immediateRender = true; }; return (new TweenLite(_arg1, _arg2, _arg3)); } protected static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (1 - (_arg1 / _arg4)); return ((1 - (_arg1 * _arg1))); } public static function delayedCall(_arg1:Number, _arg2:Function, _arg3:Array=null, _arg4:Boolean=false):TweenLite{ return (new TweenLite(_arg2, 0, {delay:_arg1, onComplete:_arg2, onCompleteParams:_arg3, immediateRender:false, useFrames:_arg4, overwrite:0})); } protected static function updateAll(_arg1:Event=null):void{ var _local5:Object; var _local6:Dictionary; var _local7:Object; var _local8:Array; var _local9:int; var _local10:Object; var _local2:Function = getTimer; var _local3:SimpleTimeline = rootTimeline; _local3.renderTime((((_local2() * 0.001) - _local3.cachedStartTime) * _local3.cachedTimeScale), false, false); rootFrame++; var _local4:SimpleTimeline = rootFramesTimeline; _local4.renderTime(((rootFrame - _local4.cachedStartTime) * _local4.cachedTimeScale), false, false); if (!(rootFrame % 60)){ _local5 = TweenLite; _local6 = masterList; for (_local7 in _local6) { _local8 = _local6[_local7]; _local9 = _local8.length; while (_local9--) { _local10 = _local5(_local8[_local9]); if (_local10.gc){ _local8.splice(_local9, 1); }; }; if (_local8.length == 0){ delete _local6[_local7]; }; }; }; } public static function to(_arg1:Object, _arg2:Number, _arg3:Object):TweenLite{ return (new TweenLite(_arg1, _arg2, _arg3)); } } }//package com.greensock
Section 40
//TweenMax (com.greensock.TweenMax) package com.greensock { import flash.events.*; import flash.display.*; import flash.utils.*; import com.greensock.core.*; import com.greensock.plugins.*; import com.greensock.events.*; public class TweenMax extends TweenLite implements IEventDispatcher { protected var _easeType:uint; public var yoyo:Boolean; protected var _easePower:uint; protected var _repeat:int;// = 0 protected var _cyclesComplete:uint;// = 0 protected var _dispatcher:EventDispatcher; protected var _hasUpdateListener:Boolean; protected var _repeatDelay:Number;// = 0 public static const version:Number = 11.133; private static var _overwriteMode:int = (OverwriteManager.enabled) ? OverwriteManager.mode : OverwriteManager.init(2); ; public static var killTweensOf:Function = TweenLite.killTweensOf; public static var killDelayedCallsTo:Function = TweenLite.killTweensOf; public function TweenMax(_arg1:Object, _arg2:Number, _arg3:Object){ super(_arg1, _arg2, _arg3); if (TweenLite.version < 11.1){ throw (new Error("TweenMax error! Please update your TweenLite class or try deleting your ASO files. TweenMax requires a more recent version. Download updates at http://www.TweenMax.com.")); }; this.yoyo = Boolean(this.vars.yoyo); _repeat = ((this.vars.repeat) || (0)); _repeatDelay = ((this.vars.repeatDelay) || (0)); this.cacheIsDirty = true; if (((((((((this.vars.onCompleteListener) || (this.vars.onUpdateListener))) || (this.vars.onStartListener))) || (this.vars.onRepeatListener))) || (this.vars.onReverseCompleteListener))){ initDispatcher(); if ((((_arg2 == 0)) && ((_delay == 0)))){ _dispatcher.dispatchEvent(new TweenEvent(TweenEvent.UPDATE)); _dispatcher.dispatchEvent(new TweenEvent(TweenEvent.COMPLETE)); }; }; if (((("timeScale" in this.vars)) && (!((this.target is TweenCore))))){ this.cachedTimeScale = this.vars.timeScale; }; } override public function renderTime(_arg1:Number, _arg2:Boolean=false, _arg3:Boolean=false):void{ var _local6:Boolean; var _local7:Boolean; var _local8:Boolean; var _local10:Number; var _local11:uint; var _local12:Number; var _local4:Number = (this.cacheIsDirty) ? this.totalDuration : this.cachedTotalDuration; var _local5:Number = this.cachedTime; if (_arg1 >= _local4){ this.cachedTotalTime = _local4; this.cachedTime = this.cachedDuration; this.ratio = 1; _local6 = true; if (this.cachedDuration == 0){ if ((((((_arg1 == 0)) || ((_rawPrevTime < 0)))) && (!((_rawPrevTime == _arg1))))){ _arg3 = true; }; _rawPrevTime = _arg1; }; } else { if (_arg1 <= 0){ if (_arg1 < 0){ this.active = false; if (this.cachedDuration == 0){ if (_rawPrevTime > 0){ _arg3 = true; _local6 = true; }; _rawPrevTime = _arg1; }; }; this.cachedTotalTime = (this.cachedTime = (this.ratio = 0)); if (((this.cachedReversed) && (!((_local5 == 0))))){ _local6 = true; }; } else { this.cachedTotalTime = (this.cachedTime = _arg1); _local8 = true; }; }; if (_repeat != 0){ _local10 = (this.cachedDuration + _repeatDelay); if (_local6){ if (((this.yoyo) && ((_repeat % 2)))){ this.cachedTime = (this.ratio = 0); }; } else { if (_arg1 > 0){ if (_cyclesComplete != (_cyclesComplete = int((this.cachedTotalTime / _local10)))){ _local7 = true; }; this.cachedTime = (((this.cachedTotalTime / _local10) - _cyclesComplete) * _local10); if (((this.yoyo) && ((_cyclesComplete % 2)))){ this.cachedTime = (this.cachedDuration - this.cachedTime); } else { if (this.cachedTime >= this.cachedDuration){ this.cachedTime = this.cachedDuration; this.ratio = 1; _local8 = false; }; }; if (this.cachedTime <= 0){ this.cachedTime = (this.ratio = 0); _local8 = false; }; }; }; }; if ((((_local5 == this.cachedTime)) && (!(_arg3)))){ return; }; if (!this.initted){ init(); }; if (((!(this.active)) && (!(this.cachedPaused)))){ this.active = true; }; if (_local8){ if (_easeType){ _local11 = _easePower; _local12 = (this.cachedTime / this.cachedDuration); if (_easeType == 2){ _local12 = (1 - _local12); this.ratio = _local12; while (_local11--) { this.ratio = (_local12 * this.ratio); }; this.ratio = (1 - this.ratio); } else { if (_easeType == 1){ this.ratio = _local12; while (_local11--) { this.ratio = (_local12 * this.ratio); }; } else { if (_local12 < 0.5){ _local12 = (_local12 * 2); this.ratio = _local12; while (_local11--) { this.ratio = (_local12 * this.ratio); }; this.ratio = (this.ratio * 0.5); } else { _local12 = ((1 - _local12) * 2); this.ratio = _local12; while (_local11--) { this.ratio = (_local12 * this.ratio); }; this.ratio = (1 - (0.5 * this.ratio)); }; }; }; } else { this.ratio = _ease(this.cachedTime, 0, 1, this.cachedDuration); }; }; if ((((((_local5 == 0)) && (!((this.cachedTotalTime == 0))))) && (!(_arg2)))){ if (this.vars.onStart){ this.vars.onStart.apply(null, this.vars.onStartParams); }; if (_dispatcher){ _dispatcher.dispatchEvent(new TweenEvent(TweenEvent.START)); }; }; var _local9:PropTween = this.cachedPT1; while (_local9) { _local9.target[_local9.property] = (_local9.start + (this.ratio * _local9.change)); _local9 = _local9.nextNode; }; if (((_hasUpdate) && (!(_arg2)))){ this.vars.onUpdate.apply(null, this.vars.onUpdateParams); }; if (((_hasUpdateListener) && (!(_arg2)))){ _dispatcher.dispatchEvent(new TweenEvent(TweenEvent.UPDATE)); }; if (_local6){ if (((_hasPlugins) && (this.cachedPT1))){ onPluginEvent("onComplete", this); }; complete(true, _arg2); } else { if (((_local7) && (!(_arg2)))){ if (this.vars.onRepeat){ this.vars.onRepeat.apply(null, this.vars.onRepeatParams); }; if (_dispatcher){ _dispatcher.dispatchEvent(new TweenEvent(TweenEvent.REPEAT)); }; }; }; } public function willTrigger(_arg1:String):Boolean{ return (((_dispatcher)==null) ? false : _dispatcher.willTrigger(_arg1)); } protected function insertPropTween(_arg1:Object, _arg2:String, _arg3:Number, _arg4, _arg5:String, _arg6:Boolean, _arg7:PropTween):PropTween{ var _local9:Array; var _local10:int; var _local8:PropTween = new PropTween(_arg1, _arg2, _arg3, ((typeof(_arg4))=="number") ? (_arg4 - _arg3) : Number(_arg4), _arg5, _arg6, _arg7); if (((_arg6) && ((_arg5 == "_MULTIPLE_")))){ _local9 = _arg1.overwriteProps; _local10 = _local9.length; while (_local10--) { this.propTweenLookup[_local9[_local10]] = _local8; }; } else { this.propTweenLookup[_arg5] = _local8; }; return (_local8); } override protected function init():void{ var _local1:TweenMax; var _local2:int; var _local3:String; var _local4:String; var _local5:Array; var _local6:Object; var _local7:PropTween; var _local8:PropTween; var _local9:int; if (this.vars.startAt){ this.vars.startAt.overwrite = 0; this.vars.startAt.immediateRender = true; _local1 = new TweenMax(this.target, 0, this.vars.startAt); }; super.init(); if ((_ease in fastEaseLookup)){ _easeType = fastEaseLookup[_ease][0]; _easePower = fastEaseLookup[_ease][1]; }; if (((!((this.vars.roundProps == null))) && (("roundProps" in TweenLite.plugins)))){ _local5 = this.vars.roundProps; _local9 = _local5.length; while (_local9--) { _local3 = _local5[_local9]; _local8 = this.cachedPT1; while (_local8) { if (_local8.name == _local3){ if (_local8.isPlugin){ _local8.target.round = true; } else { if (_local6 == null){ _local6 = new TweenLite.plugins.roundProps(); _local6.add(_local8.target, _local3, _local8.start, _local8.change); _hasPlugins = true; _local7 = insertPropTween(_local6, "changeFactor", 0, 1, "_MULTIPLE_", true, this.cachedPT1); this.cachedPT1 = _local7; } else { _local6.add(_local8.target, _local3, _local8.start, _local8.change); }; this.removePropTween(_local8); this.propTweenLookup[_local3] = _local7; }; } else { if (((((_local8.isPlugin) && ((_local8.name == "_MULTIPLE_")))) && (!(_local8.target.round)))){ _local4 = ((" " + _local8.target.overwriteProps.join(" ")) + " "); if (_local4.indexOf(((" " + _local3) + " ")) != -1){ _local8.target.round = true; }; }; }; _local8 = _local8.nextNode; }; }; }; } public function get totalProgress():Number{ return ((this.cachedTotalTime / this.totalDuration)); } public function set currentProgress(_arg1:Number):void{ if (_cyclesComplete == 0){ setTotalTime((this.duration * _arg1), false); } else { setTotalTime(((this.duration * _arg1) + (_cyclesComplete * this.cachedDuration)), false); }; } protected function adjustStartValues():void{ var _local1:Number; var _local2:PropTween; var _local3:Number; if (this.cachedTime != 0){ _local1 = (1 / (1 - this.ratio)); _local2 = this.cachedPT1; while (_local2) { if (!_local2.isPlugin){ _local3 = (_local2.start + _local2.change); _local2.change = ((_local3 - _local2.target[_local2.property]) * _local1); _local2.start = (_local3 - _local2.change); _local2 = _local2.nextNode; }; }; }; } public function get repeat():int{ return (_repeat); } public function set totalProgress(_arg1:Number):void{ setTotalTime((this.totalDuration * _arg1), false); } protected function removePropTween(_arg1:PropTween):Boolean{ if (_arg1.nextNode){ _arg1.nextNode.prevNode = _arg1.prevNode; }; if (_arg1.prevNode){ _arg1.prevNode.nextNode = _arg1.nextNode; } else { if (this.cachedPT1 == _arg1){ this.cachedPT1 = _arg1.nextNode; }; }; if (((_arg1.isPlugin) && (_arg1.target.onDisable))){ _arg1.target.onDisable(); if (_arg1.target.activeDisable){ return (true); }; }; return (false); } public function get repeatDelay():Number{ return (_repeatDelay); } protected function updateTo(_arg1:Object, _arg2:Boolean=true):void{ var _local5:String; var _local6:Object; var _local7:Boolean; var _local8:Object; var _local9:int; var _local3:PropTween = this.cachedPT1; var _local4:Number = this.cachedTotalTime; if (this.initted){ if (!_arg2){ this.totalTime = 0; }; killVars(_arg1, false); for (_local5 in _arg1) { if ((_local5 in _reservedProps)){ } else { if ((((_local5 in plugins)) && (new ((plugins[_local5] as Class)).onInitTween(this.target, _arg1[_local5], this)))){ _local8 = {}; _local9 = _local6.overwriteProps.length; while (_local9--) { _local8[_local6.overwriteProps[_local9]] = true; }; killVars(_local8, false); this.cachedPT1 = insertPropTween(_local6, "changeFactor", 0, 1, ((_local6.overwriteProps.length)==1) ? _local6.overwriteProps[0] : "_MULTIPLE_", true, this.cachedPT1); _hasPlugins = true; if (_local6.priority){ this.cachedPT1.priority = _local6.priority; _local7 = true; }; } else { this.cachedPT1 = insertPropTween(this.target, _local5, this.target[_local5], _arg1[_local5], _local5, false, this.cachedPT1); }; }; this.vars[_local5] = _arg1[_local5]; }; if (_local7){ onPluginEvent("onInit", this); }; if (((_arg2) && (this.cachedTotalTime))){ adjustStartValues(); }; } else { for (_local5 in _arg1) { this.vars[_local5] = _arg1[_local5]; }; }; } public function killProperties(_arg1:Array):void{ var _local2:Object = {}; var _local3:int = _arg1.length; while (_local3--) { _local2[_arg1[_local3]] = true; }; killVars(_local2); } public function set repeat(_arg1:int):void{ _repeat = _arg1; setDirtyCache(true); } override public function complete(_arg1:Boolean=false, _arg2:Boolean=false):void{ super.complete(_arg1, _arg2); if (((!(_arg2)) && (_dispatcher))){ if ((((this.cachedTotalTime == this.cachedTotalDuration)) && (!(this.cachedReversed)))){ _dispatcher.dispatchEvent(new TweenEvent(TweenEvent.COMPLETE)); } else { if (((this.cachedReversed) && ((this.cachedTotalTime == 0)))){ _dispatcher.dispatchEvent(new TweenEvent(TweenEvent.REVERSE_COMPLETE)); }; }; }; } override public function invalidate():void{ this.yoyo = Boolean((this.vars.yoyo == true)); _repeat = ((this.vars.repeat) || (0)); _repeatDelay = ((this.vars.repeatDelay) || (0)); _hasUpdateListener = false; if (((((!((this.vars.onCompleteListener == null))) || (!((this.vars.onUpdateListener == null))))) || (!((this.vars.onStartListener == null))))){ initDispatcher(); }; setDirtyCache(true); super.invalidate(); } public function dispatchEvent(_arg1:Event):Boolean{ return (((_dispatcher)==null) ? false : _dispatcher.dispatchEvent(_arg1)); } public function removeEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false):void{ if (_dispatcher){ _dispatcher.removeEventListener(_arg1, _arg2, _arg3); }; } public function setDestination(_arg1:String, _arg2, _arg3:Boolean=true):void{ var _local4:Object = {}; _local4[_arg1] = _arg2; updateTo(_local4, _arg3); } public function addEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false, _arg4:int=0, _arg5:Boolean=false):void{ if (_dispatcher == null){ initDispatcher(); }; if (_arg1 == TweenEvent.UPDATE){ _hasUpdateListener = true; }; _dispatcher.addEventListener(_arg1, _arg2, _arg3, _arg4, _arg5); } public function set repeatDelay(_arg1:Number):void{ _repeatDelay = _arg1; setDirtyCache(true); } override public function set currentTime(_arg1:Number):void{ if (_cyclesComplete == 0){ } else { if (((this.yoyo) && (((_cyclesComplete % 2) == 1)))){ _arg1 = ((this.duration - _arg1) + (_cyclesComplete * (this.cachedDuration + _repeatDelay))); } else { _arg1 = (_arg1 + (_cyclesComplete * (this.duration + _repeatDelay))); }; }; setTotalTime(_arg1, false); } public function get currentProgress():Number{ return ((this.cachedTime / this.duration)); } protected function initDispatcher():void{ if (_dispatcher == null){ _dispatcher = new EventDispatcher(this); }; if ((this.vars.onStartListener is Function)){ _dispatcher.addEventListener(TweenEvent.START, this.vars.onStartListener, false, 0, true); }; if ((this.vars.onUpdateListener is Function)){ _dispatcher.addEventListener(TweenEvent.UPDATE, this.vars.onUpdateListener, false, 0, true); _hasUpdateListener = true; }; if ((this.vars.onCompleteListener is Function)){ _dispatcher.addEventListener(TweenEvent.COMPLETE, this.vars.onCompleteListener, false, 0, true); }; if ((this.vars.onRepeatListener is Function)){ _dispatcher.addEventListener(TweenEvent.REPEAT, this.vars.onRepeatListener, false, 0, true); }; if ((this.vars.onReverseCompleteListener is Function)){ _dispatcher.addEventListener(TweenEvent.REVERSE_COMPLETE, this.vars.onReverseCompleteListener, false, 0, true); }; } override public function set totalDuration(_arg1:Number):void{ if (_repeat == -1){ return; }; this.duration = ((_arg1 - (_repeat * _repeatDelay)) / (_repeat + 1)); } public function hasEventListener(_arg1:String):Boolean{ return (((_dispatcher)==null) ? false : _dispatcher.hasEventListener(_arg1)); } override public function get totalDuration():Number{ if (this.cacheIsDirty){ this.cachedTotalDuration = ((_repeat)==-1) ? 999999999999 : ((this.cachedDuration * (_repeat + 1)) + (_repeatDelay * _repeat)); this.cacheIsDirty = false; }; return (this.cachedTotalDuration); } public function set timeScale(_arg1:Number):void{ if (_arg1 == 0){ _arg1 = 0.0001; }; var _local2:Number = (((_pauseTime) || ((_pauseTime == 0)))) ? _pauseTime : this.timeline.cachedTotalTime; this.cachedStartTime = (_local2 - (((_local2 - this.cachedStartTime) * this.cachedTimeScale) / _arg1)); this.cachedTimeScale = _arg1; setDirtyCache(false); } public function get timeScale():Number{ return (this.cachedTimeScale); } public static function set globalTimeScale(_arg1:Number):void{ if (_arg1 == 0){ _arg1 = 0.0001; }; if (TweenLite.rootTimeline == null){ TweenLite.to({}, 0, {}); }; var _local2:SimpleTimeline = TweenLite.rootTimeline; var _local3:Number = (getTimer() * 0.001); _local2.cachedStartTime = (_local3 - (((_local3 - _local2.cachedStartTime) * _local2.cachedTimeScale) / _arg1)); _local2 = TweenLite.rootFramesTimeline; _local3 = TweenLite.rootFrame; _local2.cachedStartTime = (_local3 - (((_local3 - _local2.cachedStartTime) * _local2.cachedTimeScale) / _arg1)); TweenLite.rootFramesTimeline.cachedTimeScale = (TweenLite.rootTimeline.cachedTimeScale = _arg1); } public static function fromTo(_arg1:Object, _arg2:Number, _arg3:Object, _arg4:Object):TweenMax{ _arg4.startAt = _arg3; if (_arg3.immediateRender){ _arg4.immediateRender = true; }; return (new TweenMax(_arg1, _arg2, _arg4)); } public static function allFromTo(_arg1:Array, _arg2:Number, _arg3:Object, _arg4:Object, _arg5:Number=0, _arg6:Function=null, _arg7:Array=null):Array{ _arg4.startAt = _arg3; if (_arg3.immediateRender){ _arg4.immediateRender = true; }; return (allTo(_arg1, _arg2, _arg4, _arg5, _arg6, _arg7)); } public static function pauseAll(_arg1:Boolean=true, _arg2:Boolean=true):void{ changePause(true, _arg1, _arg2); } public static function getTweensOf(_arg1:Object):Array{ var _local4:int; var _local5:uint; var _local2:Array = masterList[_arg1]; var _local3:Array = []; if (_local2){ _local4 = _local2.length; _local5 = 0; while (_local4--) { if (!_local2[_local4].gc){ var _temp1 = _local5; _local5 = (_local5 + 1); var _local6 = _temp1; _local3[_local6] = _local2[_local4]; }; }; }; return (_local3); } public static function get globalTimeScale():Number{ return (((TweenLite.rootTimeline)==null) ? 1 : TweenLite.rootTimeline.cachedTimeScale); } public static function killChildTweensOf(_arg1:DisplayObjectContainer, _arg2:Boolean=false):void{ var _local4:Object; var _local5:DisplayObjectContainer; var _local3:Array = getAllTweens(); var _local6:int = _local3.length; while (_local6--) { _local4 = _local3[_local6].target; if ((_local4 is DisplayObject)){ _local5 = _local4.parent; while (_local5) { if (_local5 == _arg1){ if (_arg2){ _local3[_local6].complete(false); } else { _local3[_local6].setEnabled(false, false); }; }; _local5 = _local5.parent; }; }; }; } public static function delayedCall(_arg1:Number, _arg2:Function, _arg3:Array=null, _arg4:Boolean=false):TweenMax{ return (new TweenMax(_arg2, 0, {delay:_arg1, onComplete:_arg2, onCompleteParams:_arg3, immediateRender:false, useFrames:_arg4, overwrite:0})); } public static function isTweening(_arg1:Object):Boolean{ var _local4:TweenLite; var _local2:Array = getTweensOf(_arg1); var _local3:int = _local2.length; while (_local3--) { _local4 = _local2[_local3]; if (((_local4.active) || ((((_local4.cachedStartTime == _local4.timeline.cachedTime)) && (_local4.timeline.active))))){ return (true); }; }; return (false); } public static function killAll(_arg1:Boolean=false, _arg2:Boolean=true, _arg3:Boolean=true):void{ var _local5:Boolean; var _local4:Array = getAllTweens(); var _local6:int = _local4.length; while (_local6--) { _local5 = (_local4[_local6].target == _local4[_local6].vars.onComplete); if ((((_local5 == _arg3)) || (!((_local5 == _arg2))))){ if (_arg1){ _local4[_local6].complete(false); } else { _local4[_local6].setEnabled(false, false); }; }; }; } private static function changePause(_arg1:Boolean, _arg2:Boolean=true, _arg3:Boolean=false):void{ var _local5:Boolean; var _local4:Array = getAllTweens(); var _local6:int = _local4.length; while (_local6--) { _local5 = (TweenLite(_local4[_local6]).target == TweenLite(_local4[_local6]).vars.onComplete); if ((((_local5 == _arg3)) || (!((_local5 == _arg2))))){ TweenCore(_local4[_local6]).paused = _arg1; }; }; } public static function from(_arg1:Object, _arg2:Number, _arg3:Object):TweenMax{ _arg3.runBackwards = true; if (!("immediateRender" in _arg3)){ _arg3.immediateRender = true; }; return (new TweenMax(_arg1, _arg2, _arg3)); } public static function allFrom(_arg1:Array, _arg2:Number, _arg3:Object, _arg4:Number=0, _arg5:Function=null, _arg6:Array=null):Array{ _arg3.runBackwards = true; if (!("immediateRender" in _arg3)){ _arg3.immediateRender = true; }; return (allTo(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6)); } public static function getAllTweens():Array{ var _local4:Array; var _local5:int; var _local1:Dictionary = masterList; var _local2:uint; var _local3:Array = []; for each (_local4 in _local1) { _local5 = _local4.length; while (_local5--) { if (!TweenLite(_local4[_local5]).gc){ var _temp1 = _local2; _local2 = (_local2 + 1); var _local8 = _temp1; _local3[_local8] = _local4[_local5]; }; }; }; return (_local3); } public static function resumeAll(_arg1:Boolean=true, _arg2:Boolean=true):void{ changePause(false, _arg1, _arg2); } public static function to(_arg1:Object, _arg2:Number, _arg3:Object):TweenMax{ return (new TweenMax(_arg1, _arg2, _arg3)); } public static function allTo(_arg1:Array, _arg2:Number, _arg3:Object, _arg4:Number=0, _arg5:Function=null, _arg6:Array=null):Array{ var i:int; var varsDup:Object; var p:String; var onCompleteProxy:Function; var onCompleteParamsProxy:Array; var targets = _arg1; var duration = _arg2; var vars = _arg3; var stagger = _arg4; var onCompleteAll = _arg5; var onCompleteAllParams = _arg6; var l:uint = targets.length; var a:Array = []; var curDelay:Number = ((vars.delay) || (0)); onCompleteProxy = vars.onComplete; onCompleteParamsProxy = vars.onCompleteParams; var lastIndex:int = ((stagger)<=0) ? 0 : (l - 1); i = 0; while (i < l) { varsDup = {}; for (p in vars) { varsDup[p] = vars[p]; }; varsDup.delay = curDelay; if ((((i == lastIndex)) && (!((onCompleteAll == null))))){ varsDup.onComplete = function ():void{ if (onCompleteProxy != null){ onCompleteProxy.apply(null, onCompleteParamsProxy); }; onCompleteAll.apply(null, onCompleteAllParams); }; }; a[a.length] = new TweenMax(targets[i], duration, varsDup); curDelay = (curDelay + stagger); i = (i + 1); }; return (a); } TweenPlugin.activate([AutoAlphaPlugin, EndArrayPlugin, FramePlugin, RemoveTintPlugin, TintPlugin, VisiblePlugin, VolumePlugin, BevelFilterPlugin, BezierPlugin, BezierThroughPlugin, BlurFilterPlugin, ColorMatrixFilterPlugin, ColorTransformPlugin, DropShadowFilterPlugin, FrameLabelPlugin, GlowFilterPlugin, HexColorsPlugin, RoundPropsPlugin, ShortRotationPlugin, {}]); } }//package com.greensock
Section 41
//Rndm (com.gskinner.utils.Rndm) package com.gskinner.utils { import flash.display.*; public class Rndm { protected var seedInvalid:Boolean;// = true protected var _seed:uint;// = 0 protected var _pointer:uint;// = 0 protected var bmpd:BitmapData; protected static var _instance:Rndm; public function Rndm(_arg1:uint=0){ _seed = _arg1; bmpd = new BitmapData(1000, 200); } public function set seed(_arg1:uint):void{ if (_arg1 != _seed){ seedInvalid = true; _pointer = 0; }; _seed = _arg1; } public function random():Number{ if (seedInvalid){ bmpd.noise(_seed, 0, 0xFF, (((1 | 2) | 4) | 8)); seedInvalid = false; }; _pointer = ((_pointer + 1) % 200000); return ((((bmpd.getPixel32((_pointer % 1000), ((_pointer / 1000) >> 0)) * 0.999999999999998) + 1E-15) / 4294967295)); } public function sign(_arg1:Number=0.5):int{ return (((random())<_arg1) ? 1 : -1); } public function boolean(_arg1:Number=0.5):Boolean{ return ((random() < _arg1)); } public function float(_arg1:Number, _arg2:Number=NaN):Number{ if (isNaN(_arg2)){ _arg2 = _arg1; _arg1 = 0; }; return (((random() * (_arg2 - _arg1)) + _arg1)); } public function bit(_arg1:Number=0.5):int{ return (((random())<_arg1) ? 1 : 0); } public function reset():void{ _pointer = 0; } public function get seed():uint{ return (_seed); } public function integer(_arg1:Number, _arg2:Number=NaN):int{ if (isNaN(_arg2)){ _arg2 = _arg1; _arg1 = 0; }; return (Math.floor(float(_arg1, _arg2))); } public function set pointer(_arg1:uint):void{ _pointer = _arg1; } public function get pointer():uint{ return (_pointer); } public static function random():Number{ return (instance.random()); } public static function get pointer():uint{ return (instance.pointer); } public static function set seed(_arg1:uint):void{ instance.seed = _arg1; } public static function bit(_arg1:Number=0.5):int{ return (instance.bit(_arg1)); } public static function boolean(_arg1:Number=0.5):Boolean{ return (instance.boolean(_arg1)); } public static function get seed():uint{ return (instance.seed); } public static function get instance():Rndm{ if (_instance == null){ _instance = new (Rndm); }; return (_instance); } public static function reset():void{ instance.reset(); } public static function set pointer(_arg1:uint):void{ instance.pointer = _arg1; } public static function float(_arg1:Number, _arg2:Number=NaN):Number{ return (instance.float(_arg1, _arg2)); } public static function sign(_arg1:Number=0.5):int{ return (instance.sign(_arg1)); } public static function integer(_arg1:Number, _arg2:Number=NaN):int{ return (instance.integer(_arg1, _arg2)); } } }//package com.gskinner.utils
Section 42
//SpriteMotion (de.aperto.display.SpriteMotion) package de.aperto.display { import flash.display.*; import de.aperto.utils.*; import flash.filters.*; public class SpriteMotion extends Sprite { private var _Math:Object; private var _qualitiy:int;// = 1 private var _motionBlur:BlurFilter; private var _softness:Number;// = 2 private var _offsetDiffX:Number;// = 0 private var _offsetDiffY:Number;// = 0 private var _useMotionBlur:Boolean;// = false private var _offsetX:Number;// = 0 private var _offsetY:Number;// = 0 private var _firstStart:Boolean; public function SpriteMotion(){ _Math = Math; _firstStart = true; super(); } private function __updateMotionBlurY():void{ if (!_useMotionBlur){ if (_motionBlur != null){ BitmapUtils.removeFilter(this, "flash.filters.BlurFilter"); _motionBlur = null; }; return; }; if (_motionBlur == null){ _motionBlur = new BlurFilter(0, 0, _qualitiy); }; if (_motionBlur.quality != _qualitiy){ _motionBlur.quality = _qualitiy; }; _offsetDiffY = _Math.abs(((_offsetY - this.y) / _softness)); if (_firstStart){ _firstStart = false; _offsetDiffY = 0; }; _motionBlur.blurY = _offsetDiffY; _offsetY = this.y; BitmapUtils.setNewFilter(this, _motionBlur, BlurFilter); } public function get motionSoftness():Number{ return (_softness); } private function __updateMotionBlurX():void{ if (!_useMotionBlur){ if (_motionBlur != null){ BitmapUtils.removeFilter(this, "flash.filters.BlurFilter"); _motionBlur = null; }; return; }; if (_motionBlur == null){ _motionBlur = new BlurFilter(0, 0, _qualitiy); }; if (_motionBlur.quality != _qualitiy){ _motionBlur.quality = _qualitiy; }; _offsetDiffX = _Math.abs(((_offsetX - this.x) / _softness)); if (_firstStart){ _firstStart = false; _offsetDiffX = 0; }; _motionBlur.blurX = _offsetDiffX; _offsetX = this.x; BitmapUtils.setNewFilter(this, _motionBlur, BlurFilter); } public function set motionSoftness(_arg1:Number):void{ _softness = _arg1; } override public function set x(_arg1:Number):void{ super.x = _arg1; __updateMotionBlurX(); } override public function set y(_arg1:Number):void{ super.y = _arg1; __updateMotionBlurY(); } public function set motionBlur(_arg1:Boolean):void{ _useMotionBlur = _arg1; if (((!((_motionBlur == null))) && (!(_useMotionBlur)))){ BitmapUtils.removeFilter(this, "flash.filters.BlurFilter"); _motionBlur = null; _offsetDiffY = (_offsetY = (_offsetDiffX = (_offsetX = 0))); _firstStart = true; }; } public function get motionBlur():Boolean{ return (_useMotionBlur); } public function set quality(_arg1:int):void{ _qualitiy = _arg1; } public function get quality():int{ return (_qualitiy); } } }//package de.aperto.display
Section 43
//AudioConnectionEvent (de.aperto.events.AudioConnectionEvent) package de.aperto.events { import flash.events.*; public class AudioConnectionEvent extends Event { public static const PLAYBACK_COMPLETE:String = "AudioConnectionEvent_AudioOnPlaybackComplete"; public static const SOUND_ON_CHANGED:String = "AudioConnectionEvent_SoundOnChanged"; public static const ON_PROGRESS:String = "AudioConnectionEvent_AudioStreamOnProgress"; public static const ID3_ON_LOAD:String = "AudioConnectionEvent_onID3Data"; public function AudioConnectionEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false){ super(_arg1, _arg2, _arg3); } } }//package de.aperto.events
Section 44
//BinaryLoaderEvent (de.aperto.events.BinaryLoaderEvent) package de.aperto.events { import flash.events.*; public class BinaryLoaderEvent extends Event { public var percent:Number; public var groupPercent:Number; public var assetId:Number; public var loadedContentAdress:String; public var imagePoolId; public var imageId; public var contentType:String; public var loadedContent; public static const ASSET_COMPLETE:String = "LoaderClassAssetComplete"; public static const ON_GROUP_PROGRESS:String = "LoaderClassGroupProgress"; public static const ON_ERROR:String = "LoaderClassProError"; public static const ON_PROGRESS:String = "LoaderClassProgress"; public static const GROUP_COMPLETE:String = "LoaderClassGroupComplete"; public static const ASSET_ON_ERROR:String = "LoaderClassAssetError"; public function BinaryLoaderEvent(_arg1:String, _arg2:Number=-1, _arg3=null, _arg4:String=null, _arg5:Number=0, _arg6:Number=0, _arg7=null, _arg8=null, _arg9:String=""){ assetId = _arg2; imagePoolId = _arg7; imageId = _arg8; loadedContent = _arg3; percent = _arg5; groupPercent = _arg6; loadedContentAdress = _arg4; contentType = _arg9; super(_arg1, false, false); } } }//package de.aperto.events
Section 45
//ContextMenuManagerEvent (de.aperto.events.ContextMenuManagerEvent) package de.aperto.events { import flash.events.*; import de.aperto.ui.*; public class ContextMenuManagerEvent extends Event { public var item:ContextMenuManagerItem; public static const MENU_ITEM_SELECT:String = "ContextMenuManagerEvent_ItemSelected"; public function ContextMenuManagerEvent(_arg1:String, _arg2:ContextMenuManagerItem){ item = _arg2; super(_arg1, false, false); } } }//package de.aperto.events
Section 46
//CostumEventDispatcher (de.aperto.events.CostumEventDispatcher) package de.aperto.events { public class CostumEventDispatcher { private var _callBackPoolArr:Array; public function CostumEventDispatcher():void{ _callBackPoolArr = []; super(); } private function __isInPool(_arg1, _arg2:Function):Boolean{ var _local3:Boolean; var _local4:Array = _callBackPoolArr.slice(); var _local5:int = _local4.length; var _local6:int; while (_local6 < _local5) { if ((((_local4[_local6].eventType == _arg1)) && ((_local4[_local6].callback == _arg2)))){ _local3 = true; break; }; _local6++; }; return (_local3); } public function removeEventListener(_arg1, _arg2:Function=null):void{ if ((((_arg2 == null)) || ((_arg1 == null)))){ return; }; if (!__isInPool(_arg1, _arg2)){ return; }; var _local3:int; while (_local3 < _callBackPoolArr.length) { if ((((_callBackPoolArr[_local3].eventType == _arg1)) && ((_callBackPoolArr[_local3].callback == _arg2)))){ _callBackPoolArr.splice(_callBackPoolArr.indexOf(_callBackPoolArr[_local3]), 1); }; _local3++; }; } public function dispatchCostumEvent(_arg1):void{ var _local4:Object; var _local5:int; var _local2:Array = _callBackPoolArr.slice(); var _local3:int = _local2.length; var _local6:int; while (_local6 < _local3) { _local4 = (_local2[_local6] as Object); if ((((_local4.eventType == _arg1)) && ((_local4.callback is Function)))){ (_local4.callback as Function)(); _local5++; }; _local6++; }; } public function addEventListener(_arg1, _arg2:Function=null):void{ if (_arg2 == null){ return; }; if (!__isInPool(_arg1, _arg2)){ _callBackPoolArr.push({eventType:_arg1, callback:_arg2}); }; } } }//package de.aperto.events
Section 47
//DocumentAssetLoaderEvent (de.aperto.events.DocumentAssetLoaderEvent) package de.aperto.events { import flash.events.*; public class DocumentAssetLoaderEvent extends Event { public var text:String;// = "" public var percent:Number; public static const ASSETS_ON_PROGRESS:String = "assetsOnLoadProgress"; public static const ASSETS_ON_ERROR:String = "assetsOnLoadError"; public static const ASSETS_ON_LOAD:String = "assetsOnLoadInit"; public function DocumentAssetLoaderEvent(_arg1:String, _arg2:Boolean=true, _arg3:Boolean=false, _arg4:Number=0, _arg5:String=""){ percent = _arg4; text = _arg5; super(_arg1, _arg2, _arg3); } } }//package de.aperto.events
Section 48
//LibraryManagerEvent (de.aperto.events.LibraryManagerEvent) package de.aperto.events { import flash.events.*; public class LibraryManagerEvent extends Event { public var text:String;// = "" public var percent:Number;// = 0 public static const COMPLETE:String = "LibraryManagerEvent_OnLoad"; public static const PROGRESS:String = "LibraryManagerEvent_OnProgress"; public static const IO_ERROR:String = "LibraryManagerEvent_OnError"; public function LibraryManagerEvent(_arg1:String, _arg2:Boolean=true, _arg3:Boolean=false, _arg4:Number=0, _arg5:String=""){ percent = _arg4; text = _arg5; super(_arg1, _arg2, _arg3); } } }//package de.aperto.events
Section 49
//XMLLoaderEvent (de.aperto.events.XMLLoaderEvent) package de.aperto.events { import flash.events.*; public class XMLLoaderEvent extends Event { public var text:String;// = "" public static const XML_ON_ERROR:String = "xmlOnLoadError"; public static const XML_ON_PROGRESS:String = "xmlOnLoadProgress"; public static const XML_ON_LOAD:String = "xmlOnLoadInit"; public function XMLLoaderEvent(_arg1:String, _arg2:Boolean=true, _arg3:Boolean=false, _arg4:String=""){ text = _arg4; super(_arg1, _arg2, _arg3); } } }//package de.aperto.events
Section 50
//BitmapDataManager (de.aperto.managers.BitmapDataManager) package de.aperto.managers { import flash.display.*; import nl.demonsters.debugger.*; public class BitmapDataManager { private var _pools:Object; private static var _instance:BitmapDataManager; public function BitmapDataManager(){ if (_instance){ throw (new Error("BitmapDataManager is a Singleton")); }; _instance = this; _pools = {}; } public function push(_arg1:BitmapData, _arg2:String, _arg3:String):void{ if (_arg1 == null){ throw (new Error("BitmapData darf nicht null sein")); }; if (_pools[_arg2] == null){ _pools[_arg2] = {}; }; if (_pools[_arg2][_arg3]){ (_pools[_arg2][_arg3] as BitmapData).dispose(); MonsterDebugger.trace(this, (((("BitmapData in pool " + _arg2) + " with id ") + _arg2) + " already exists! Flash will paste it")); }; _pools[_arg2][_arg3] = _arg1; } public function getBitmapData(_arg1:String, _arg2:String):BitmapData{ var _local3:Boolean; var _local4:Boolean; _local3 = !((_pools[_arg1] == null)); if (!_local3){ throw (new Error((("poolId " + _arg1) + " konnte nicht gefunden werden"))); }; _local4 = !((_pools[_arg1][_arg2] == null)); if (!_local4){ throw (new Error((((("imageId " + _arg2) + " im pool ") + _arg1) + " konnte nicht gefunden werden"))); }; return (_pools[_arg1][_arg2]); } public static function get Instance():BitmapDataManager{ return (((_instance) || (new (BitmapDataManager)))); } } }//package de.aperto.managers
Section 51
//ContextMenuManager (de.aperto.managers.ContextMenuManager) package de.aperto.managers { import flash.events.*; import de.aperto.events.*; import de.aperto.ui.*; import flash.ui.*; public class ContextMenuManager { private static var _defaultItems:ContextMenuBuiltInItems; private static var _contextMenu:ContextMenu; private static var _actionRoot:Object; private static var _pool:Array; private static function __removeDefaultItems():void{ _contextMenu.hideBuiltInItems(); _defaultItems = _contextMenu.builtInItems; _defaultItems.print = false; } public static function removeItem(_arg1:String):void{ var _local2:int; while (_local2 < _pool.length) { if ((_pool[_local2] as ContextMenuManagerItem).label === _arg1){ _pool.splice(_pool.indexOf(_pool[_local2]), 1); break; }; _local2++; }; } private static function __addCustomMenuItems():void{ var _local1:ContextMenuItem; var _local2:int; while (_local2 < _pool.length) { _local1 = new ContextMenuItem(_pool[_local2].label); _contextMenu.customItems[_local2] = _local1; _local1.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, __itemEventHandler); _local2++; }; } private static function __getItem(_arg1:String):ContextMenuManagerItem{ var _local2:ContextMenuManagerItem; var _local3:int = _pool.length; var _local4:int; while (_local4 < _local3) { if ((_pool[_local4].label as String) === _arg1){ _local2 = (_pool[_local4] as ContextMenuManagerItem); break; }; _local4++; }; return (_local2); } private static function __itemEventHandler(_arg1:ContextMenuEvent):void{ var _local2:ContextMenuItem = (_arg1.target as ContextMenuItem); var _local3:ContextMenuManagerItem = (__getItem(_local2.caption) as ContextMenuManagerItem); _local3.callback(new ContextMenuManagerEvent(ContextMenuManagerEvent.MENU_ITEM_SELECT, _local3)); } private static function __isInPool(_arg1:String):Boolean{ return (((__getItem(_arg1))!=null) ? true : false); } public static function replaceItemLabel(_arg1:String, _arg2:String):void{ var _local3:ContextMenuManagerItem = (__getItem(_arg1) as ContextMenuManagerItem); if (_local3 != null){ _local3.label = _arg2; }; } public static function init(_arg1):void{ _actionRoot = {}; _actionRoot = _arg1; _pool = []; __createContextMenu(); } private static function __createContextMenu():void{ _contextMenu = new ContextMenu(); _contextMenu.addEventListener(ContextMenuEvent.MENU_SELECT, __buildMenu); __removeDefaultItems(); _actionRoot.contextMenu = _contextMenu; } public static function addItem(_arg1:String, _arg2:Function, _arg3:Boolean=false):void{ var _local4:ContextMenuManagerItem; if (!__isInPool(_arg1)){ _local4 = new ContextMenuManagerItem(); _local4.label = _arg1; _local4.callback = _arg2; _pool.push(_local4); }; } private static function __buildMenu(_arg1:ContextMenuEvent):void{ __addCustomMenuItems(); } } }//package de.aperto.managers
Section 52
//CSSManager (de.aperto.managers.CSSManager) package de.aperto.managers { import flash.display.*; import flash.text.*; import nl.demonsters.debugger.*; import flash.system.*; import ru.etcs.utils.*; public class CSSManager { private var _fontsDomain:ApplicationDomain; private static var _instance:CSSManager; private static var _styleSheet:StyleSheet; public function CSSManager(){ if (_instance != null){ throw (new Error("CSSManager is a Singleton")); }; _instance = this; } public function initialize(_arg1:LoaderInfo, _arg2:StyleSheet):void{ _styleSheet = _arg2; _fontsDomain = _arg1.applicationDomain; registerFontlist(getFonts(_arg1)); } public function get styleSheet():StyleSheet{ return (_styleSheet); } public function registerFontlist(_arg1:Array):void{ var fontList = _arg1; var i:int; while (i < fontList.length) { try { Font.registerFont(fontList[i]); } catch(error:Error) { MonsterDebugger.trace(this, error); }; i = (i + 1); }; } public function registerSingleFont(_arg1:LoaderInfo, _arg2:String):void{ Font.registerFont((_fontsDomain.getDefinition(_arg2) as Class)); } public function getFontClass(_arg1:String):Class{ return ((_fontsDomain.getDefinition(_arg1) as Class)); } public function getFont(_arg1:String):Font{ var _local2:Class = getFontClass(_arg1); return ((new (_local2) as Font)); } public function getFonts(_arg1:LoaderInfo):Array{ var _local5:Object; var _local6:Object; var _local2:ApplicationDomain = _arg1.applicationDomain; var _local3:Array = getDefinitionNames(_arg1, false, true); var _local4:Array = []; MonsterDebugger.trace(this, "getFonts -->"); var _local7:int; while (_local7 < _local3.length) { _local5 = _local2.getDefinition(_local3[_local7]); _local6 = (new (_local5) as Font); if (_local6){ _local4.push(_local5); }; _local7++; }; return (_local4); } public function convertCssToTextFormat(_arg1:String):TextFormat{ var _local4:String; var _local5:String; var _local2:TextFormat = new TextFormat(); var _local3:Object = (_styleSheet.getStyle(String(("." + _arg1))) as Object); for (_local5 in _local3) { _local4 = _local3[_local5]; switch (_local5){ case "fontFamily": _local2.font = _local4; break; case "fontSize": _local2.size = _local4.substr(0, (_local4.length - 2)); break; case "fontWeight": _local2.bold = ((_local4 == "bold")) ? true : false; break; case "color": _local2.color = ("0x" + _local4.substr(1)); break; }; }; return (_local2); } public static function get Instance():CSSManager{ return (((_instance) || (new (CSSManager)))); } } }//package de.aperto.managers
Section 53
//EnterFrameManager (de.aperto.managers.EnterFrameManager) package de.aperto.managers { import flash.events.*; import flash.display.*; public class EnterFrameManager { private static var _shape:Shape = new Shape(); private static var _pool:Array = []; public static function addListener(_arg1:Function):void{ if (!__isInPool(_arg1)){ _pool.push(_arg1); if (_pool.length == 1){ _shape.addEventListener(Event.ENTER_FRAME, __enterFramehandler); }; }; } public static function removeListener(_arg1:Function):void{ if (!__isInPool(_arg1)){ return; }; var _local2:Array = _pool; _local2.splice(_local2.indexOf(_arg1), 1); if (_local2.length < 1){ _shape.removeEventListener(Event.ENTER_FRAME, __enterFramehandler); }; } private static function __isInPool(_arg1:Function):Boolean{ var _local2:Boolean; var _local3:Array = _pool; var _local4:int = _local3.length; var _local5:int; while (_local5 < _local4) { if ((_local3[_local5] as Function) == _arg1){ _local2 = true; break; }; _local5++; }; return (_local2); } private static function __enterFramehandler(_arg1:Event):void{ var _local4:Function; var _local2:Array = _pool; var _local3:int = _local2.length; var _local5:int = (_local3 - 1); while (_local5 > -1) { _local4 = (_local2[_local5] as Function); _local4(); _local5--; }; } } }//package de.aperto.managers
Section 54
//LabelManager (de.aperto.managers.LabelManager) package de.aperto.managers { public class LabelManager { private var mainObj:Object; private static var _instance:LabelManager; private static var _labelsObj:Object; public function LabelManager(){ if (_instance != null){ throw (new Error("LabelCenter is a Singleton")); }; _instance = this; } public function init(_arg1:XML):void{ _labelsObj = new Object(); mainObj = new Object(); var _local2:int; while (_local2 < _arg1.textNode.length()) { mainObj[_arg1.textNode[_local2].@id] = _arg1.textNode[_local2]; _local2++; }; } public function getString(_arg1:String):String{ if (!_arg1){ return ((("Invalid " + _arg1) + " labelID")); }; if (!mainObj[_arg1]){ return ((("Invalid " + _arg1) + " labelID")); }; return (unescape(mainObj[_arg1])); } public static function get Instance():LabelManager{ return (((_instance) || (new (LabelManager)))); } } }//package de.aperto.managers
Section 55
//LibraryManager (de.aperto.managers.LibraryManager) package de.aperto.managers { import flash.events.*; import de.aperto.events.*; import flash.display.*; import flash.net.*; import nl.demonsters.debugger.*; import flash.system.*; import ru.etcs.utils.*; public class LibraryManager extends EventDispatcher { private var _callback:Function; private var _appDomain:ApplicationDomain; private var _Math:Object; private var _loader:Loader; private var _percent:Number;// = 0 private var _pools:Object; private static var _instance:LibraryManager; public function LibraryManager(){ _Math = Math; super(); if (_instance != null){ throw (new Error("LibraryManager is a Singleton")); }; _instance = this; _pools = {}; _callback = __defaultEventHandler; } public function set eventHandler(_arg1:Function):void{ _callback = _arg1; } private function __push(_arg1:Object, _arg2:String):void{ if (_arg1 == null){ throw (new Error("Class darf nicht null sein")); }; if (_pools[_arg2] == null){ _pools[_arg2] = _arg1; }; } public function getClass(_arg1:String):Class{ var _local2:Boolean; _local2 = !((_pools[_arg1] == null)); if (!_local2){ throw (new Error((("Class " + _arg1) + " konnte nicht gefunden werden"))); }; return ((_pools[_arg1] as Class)); } private function __loaderEventHandler(_arg1:Event):void{ var _local2:ProgressEvent; switch (_arg1.type){ case Event.COMPLETE: __addLibrary(_loader.contentLoaderInfo); _callback(new LibraryManagerEvent(LibraryManagerEvent.COMPLETE, false, false, 100)); _callback = __defaultEventHandler; break; case ProgressEvent.PROGRESS: _local2 = (_arg1 as ProgressEvent); _percent = int((((int(((_local2.bytesLoaded * 0.0009765625) + 0.5)) / int(((_local2.bytesTotal * 0.0009765625) + 0.5))) * 100) + 0.5)); _callback(new LibraryManagerEvent(LibraryManagerEvent.PROGRESS, false, false, _percent)); break; case IOErrorEvent.IO_ERROR: _callback(new LibraryManagerEvent(LibraryManagerEvent.IO_ERROR, false, false, 0, _arg1.toString())); break; }; } private function __register(_arg1:Array):void{ var libElement:Class; var i:int; var list = _arg1; i = 0; while (i < list.length) { try { libElement = (__getClass(list[i]) as Class); __push(libElement, list[i]); } catch(error:Error) { MonsterDebugger.trace(this, ("ERROR - Element: " + list[i])); }; i = (i + 1); }; } private function __getClass(_arg1:String):Class{ return ((_appDomain.getDefinition(_arg1) as Class)); } public function interrupt():void{ if (_loader){ _loader.close(); _loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, __loaderEventHandler); _loader.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, __loaderEventHandler); _loader.contentLoaderInfo.removeEventListener(ProgressEvent.PROGRESS, __loaderEventHandler); _loader = null; }; } public function load(_arg1:String):void{ _percent = 0; _loader = new Loader(); _loader.contentLoaderInfo.addEventListener(Event.COMPLETE, __loaderEventHandler); _loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, __loaderEventHandler); _loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, __loaderEventHandler); _loader.load(new URLRequest(_arg1)); } private function __defaultEventHandler(_arg1:LibraryManagerEvent):void{ } public function getClassInstance(_arg1:String){ var _local2:Boolean; _local2 = !((_pools[_arg1] == null)); if (!_local2){ throw (new Error((("Class " + _arg1) + " konnte nicht gefunden werden"))); }; var _local3:Class = (_pools[_arg1] as Class); return (new (_local3)); } private function __addLibrary(_arg1:LoaderInfo):void{ _appDomain = _arg1.applicationDomain; __register(getDefinitionNames(_arg1, false, true)); } public static function get Instance():LibraryManager{ return (((_instance) || (new (LibraryManager)))); } } }//package de.aperto.managers
Section 56
//PoolManager (de.aperto.managers.PoolManager) package de.aperto.managers { import flash.display.*; public class PoolManager { private static var _instance:PoolManager; public function PoolManager(){ if (_instance != null){ throw (new Error("BitmapDataCenter is a Singleton")); }; } public function push(_arg1, _arg2:String, _arg3:String, _arg4:String):void{ var _local5:BitmapData; if (_arg4 == "application/x-shockwave-flash"){ SWFManager.Instance.push(_arg1, _arg2, _arg3); }; if (_arg4.search("image") > -1){ _local5 = (Bitmap(_arg1).bitmapData as BitmapData); BitmapDataManager.Instance.push(_local5, _arg2, _arg3); }; } public function getDisplayObject(_arg1:String, _arg2:String){ var displayObject:*; var poolId = _arg1; var id = _arg2; try { displayObject = SWFManager.Instance.getSWF(poolId, id); } catch(e:Error) { displayObject = new Bitmap(BitmapDataManager.Instance.getBitmapData(poolId, id), "auto", true); }; return (displayObject); } public static function get Instance():PoolManager{ return (((_instance) || (new (PoolManager)))); } } }//package de.aperto.managers
Section 57
//SoundManager (de.aperto.managers.SoundManager) package de.aperto.managers { import flash.events.*; import de.aperto.events.*; import flash.display.*; import de.aperto.net.audioconnection.*; import com.greensock.*; import flash.media.*; import flash.net.*; import nl.demonsters.debugger.*; import flash.system.*; import ru.etcs.utils.*; public class SoundManager extends EventDispatcher { private var _percent:Number;// = 0 private var _Math:Object; private var _audioConnection:AudioConnection; private var _libraryOnProgressCallback:Function; private var _allowSounds:Boolean;// = true private var _libraryLoader:Loader; private var _root:MovieClip; private var _audioConnectionOffsetVolume:Number;// = 1 private var _appDomain:ApplicationDomain; private var _pools:Object; private var _sounds:Array; private var _libraryOnLoadCallback:Function; private static var _instance:SoundManager; public function SoundManager(){ _Math = Math; super(); if (_instance != null){ throw (new Error("SoundManager is a Singleton")); }; _instance = this; _sounds = []; } private function __register(_arg1:Array):void{ var libElement:Class; var i:int; var list = _arg1; i = 0; while (i < list.length) { try { libElement = (__getClass(list[i]) as Class); __push(libElement, list[i]); } catch(error:Error) { MonsterDebugger.trace(this, ("ERROR - Element: " + list[i])); }; i = (i + 1); }; } public function init(_arg1:MovieClip):void{ _root = _arg1; } private function __removeSoundFromPool(_arg1:String):void{ var _local2:MovieClip; var _local3:int; while (_local3 < _sounds.length) { _local2 = (_sounds[_local3] as MovieClip); if (_local2.classId == _arg1){ TweenMax.killChildTweensOf(_local2); _local2.soundTransform = new SoundTransform(0); _local2.volume = 0; _sounds.splice(_sounds.indexOf(_sounds[_local3]), 1); _local2 = null; break; }; _local3++; }; } private function __getClass(_arg1:String):Class{ return ((_appDomain.getDefinition(_arg1) as Class)); } public function changeVolumeFrom(_arg1:String, _arg2:Number):void{ var _local3:MovieClip = __getSound(_arg1); if (_local3 == null){ return; }; _local3.volume = _arg2; if (_allowSounds){ TweenMax.to(_local3, 0.5, {volume:_arg2, overwrite:true}); }; } public function stopBackgroundMusic():void{ if (_audioConnection != null){ _audioConnection.volume = 0; }; } private function __getSound(_arg1:String):MovieClip{ var _local2:MovieClip; var _local3:int; while (_local3 < _sounds.length) { _local2 = (_sounds[_local3] as MovieClip); if (_local2.classId == _arg1){ break; }; _local3++; }; return (_local2); } private function __addLibrary(_arg1:LoaderInfo):void{ _appDomain = _arg1.applicationDomain; __register(getDefinitionNames(_arg1, false, true)); } private function __libraryLoaderEventHandler(_arg1:Event):void{ var _local2:ProgressEvent; switch (_arg1.type){ case Event.COMPLETE: __addLibrary(_libraryLoader.contentLoaderInfo); _libraryOnLoadCallback(true); _libraryOnLoadCallback = null; break; case ProgressEvent.PROGRESS: _local2 = (_arg1 as ProgressEvent); _percent = int((((int(((_local2.bytesLoaded * 0.0009765625) + 0.5)) / int(((_local2.bytesTotal * 0.0009765625) + 0.5))) * 100) + 0.5)); _libraryOnProgressCallback(_percent); break; case IOErrorEvent.IO_ERROR: _libraryOnLoadCallback(false, (_arg1 as IOErrorEvent).text); break; }; } public function stopSoundFromLibrary(_arg1:String):void{ var _local2:MovieClip; var _local3:int; while (_local3 < _sounds.length) { _local2 = (_sounds[_local3] as MovieClip); if (_local2.classId == _arg1){ if (((!((_local2.soundTransform == null))) && (!((_local2.soundTransform.volume == 0))))){ _local2.volume = 0; TweenMax.to(_local2, 0.5, {volume:0, overwrite:true}); }; break; }; _local3++; }; } public function getClass(_arg1:String):Class{ var _local2:Boolean; _local2 = !((_pools[_arg1] == null)); if (!_local2){ throw (new Error((("Class " + _arg1) + " konnte nicht gefunden werden"))); }; return ((_pools[_arg1] as Class)); } public function stopAllSoundsFromLibrary():void{ var _local1:MovieClip; var _local2:int; while (_local2 < _sounds.length) { _local1 = (_sounds[_local2] as MovieClip); TweenMax.to(_local1, 0.4, {volume:0, overwrite:true}); _local2++; }; } public function setBackgroundMusicVolume(_arg1:Number):void{ if (_audioConnection != null){ _audioConnectionOffsetVolume = _arg1; _audioConnection.volume = _audioConnectionOffsetVolume; }; } public function loadSound(_arg1:String):void{ if (!_allowSounds){ return; }; if (_audioConnection != null){ _audioConnection.close(); _audioConnection = null; }; _audioConnection = new AudioConnection(); _audioConnection.addEventListener(AudioConnectionEvent.ID3_ON_LOAD, __audioConnectionEventHandler); _audioConnection.addEventListener(AudioConnectionEvent.ON_PROGRESS, __audioConnectionEventHandler); _audioConnection.addEventListener(AudioConnectionEvent.PLAYBACK_COMPLETE, __audioConnectionEventHandler); _audioConnection.addEventListener(AudioConnectionEvent.PLAYBACK_COMPLETE, __audioConnectionEventHandler); _audioConnection.load(_arg1); } public function playAllSoundsAgainFromLibrary():void{ var _local1:MovieClip; var _local2:int; while (_local2 < _sounds.length) { _local1 = (_sounds[_local2] as MovieClip); TweenMax.to(_local1, 0.4, {volume:_local1.volume, overwrite:true}); _local2++; }; } private function __stopIfSoundIsPlaying(_arg1:String):MovieClip{ var _local2:MovieClip; var _local3:int; while (_local3 < _sounds.length) { _local2 = (_sounds[_local3] as MovieClip); if (_local2.classId == _arg1){ _local2.soundTransform = new SoundTransform(0); _local2.volume = 0; break; }; _local3++; }; return (_local2); } public function get audioConnection():AudioConnection{ return (_audioConnection); } public function playBackgroundMusicAgain():void{ if (_audioConnection != null){ _audioConnection.volume = 0; _audioConnection.seek(0); _audioConnection.volume = _audioConnectionOffsetVolume; }; } public function set allowSounds(_arg1:Boolean):void{ _allowSounds = _arg1; if (!_allowSounds){ stopAllSoundsFromLibrary(); } else { playAllSoundsAgainFromLibrary(); }; } private function __audioConnectionEventHandler(_arg1:AudioConnectionEvent):void{ switch (_arg1.type){ case AudioConnectionEvent.ID3_ON_LOAD: break; case AudioConnectionEvent.ON_PROGRESS: break; case AudioConnectionEvent.PLAYBACK_COMPLETE: _audioConnection.seek(0); break; case AudioConnectionEvent.SOUND_ON_CHANGED: if (_audioConnection.volume == 0){ _audioConnection.stop(); }; break; }; } public function interrupt():void{ if (_libraryLoader){ _libraryLoader.close(); _libraryLoader.contentLoaderInfo.removeEventListener(Event.COMPLETE, __libraryLoaderEventHandler); _libraryLoader.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, __libraryLoaderEventHandler); _libraryLoader.contentLoaderInfo.removeEventListener(ProgressEvent.PROGRESS, __libraryLoaderEventHandler); _libraryLoader = null; }; } public function get allowSounds():Boolean{ return (_allowSounds); } public function loadLibrary(_arg1:String, _arg2:Function, _arg3:Function):void{ _libraryOnLoadCallback = _arg2; _libraryOnProgressCallback = _arg3; _percent = 0; _libraryLoader = new Loader(); _libraryLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, __libraryLoaderEventHandler); _libraryLoader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, __libraryLoaderEventHandler); _libraryLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, __libraryLoaderEventHandler); _libraryLoader.load(new URLRequest(_arg1)); } public function playSoundFromLibrary(_arg1:String, _arg2:Number=1){ var sndMc:MovieClip; var classId = _arg1; var vol = _arg2; if (!_allowSounds){ return; }; if (_pools == null){ MonsterDebugger.trace(this, String((("Sound " + classId) + " nicht gefunden da _pools == null ist"))); return; }; __removeSoundFromPool(classId); try { sndMc = (new ((getClass(classId) as Class)) as MovieClip); } catch(e:Error) { return; }; sndMc.classId = classId; sndMc.volume = vol; _sounds.push(sndMc); sndMc.soundTransform = new SoundTransform(vol); return (sndMc); } public function getClassInstance(_arg1:String){ var _local2:Boolean; _local2 = !((_pools[_arg1] == null)); if (!_local2){ throw (new Error((("Class " + _arg1) + " konnte nicht gefunden werden"))); }; var _local3:Class = (_pools[_arg1] as Class); return (new (_local3)); } private function __push(_arg1:Object, _arg2:String):void{ if (_pools == null){ _pools = {}; }; if (_arg1 == null){ throw (new Error("Class darf nicht null sein")); }; if (_pools[_arg2] == null){ _pools[_arg2] = _arg1; }; } public static function get Instance():SoundManager{ return (((_instance) || (new (SoundManager)))); } } }//package de.aperto.managers
Section 58
//SWFManager (de.aperto.managers.SWFManager) package de.aperto.managers { import flash.display.*; public class SWFManager { private var mainObj:Object; private static var _instance:SWFManager; public function SWFManager(){ if (_instance != null){ throw (new Error("SWFManager is a Singleton")); }; } public function getSWF(_arg1:String, _arg2:String):DisplayObject{ var _local3:Boolean; var _local4:Boolean; _local3 = !((mainObj[_arg1] == null)); if (!_local3){ throw (new Error((("ERROR :: poolId --> " + _arg1) + " <-- konnte nicht gefunden werden"))); }; _local4 = !((mainObj[_arg1][_arg2] == null)); if (!_local4){ throw (new Error((((("ERROR :: imageId " + _arg2) + " im pool ") + _arg1) + " konnte nicht gefunden werden"))); }; return (mainObj[_arg1][_arg2]); } public function push(_arg1:DisplayObject, _arg2:String, _arg3:String):void{ if (_arg1 == null){ throw (new Error("ERROR :: DisplayObject darf nicht null sein")); }; if (mainObj == null){ mainObj = new Object(); }; if (mainObj[_arg2] == null){ mainObj[_arg2] = {}; }; mainObj[_arg2][_arg3] = _arg1; } public static function get Instance():SWFManager{ if (_instance == null){ _instance = new (SWFManager); }; return (_instance); } } }//package de.aperto.managers
Section 59
//XMLManager (de.aperto.managers.XMLManager) package de.aperto.managers { public class XMLManager { private static var _algoSettingsXML:XML; private static var _instance:XMLManager; private static var _logicXML:XML; public function XMLManager(){ if (_instance != null){ throw (new Error("XMLManager is a Singleton")); }; } public function get algoSettingsXML():XML{ return (_algoSettingsXML); } public function get logicXML():XML{ return (_logicXML); } public function set logicXML(_arg1:XML):void{ _logicXML = _arg1; } public function set algoSettingsXML(_arg1:XML):void{ _algoSettingsXML = _arg1; } public static function get Instance():XMLManager{ if (_instance == null){ _instance = new (XMLManager); }; return (_instance); } } }//package de.aperto.managers
Section 60
//AudioConnection (de.aperto.net.audioconnection.AudioConnection) package de.aperto.net.audioconnection { import flash.events.*; import de.aperto.events.*; import com.greensock.*; import flash.media.*; import flash.net.*; import nl.demonsters.debugger.*; public class AudioConnection extends EventDispatcher { private var _volume:Number;// = 1 private var _channel:SoundChannel; public var percent:Number; private var _position:Number; private var _snd:Sound; private var _sndPath:String; private var _duration:Number; private var _pause:Boolean;// = false private var _id3:ID3Info; public function stop():void{ if (_channel){ _channel.stop(); }; } public function get channel():SoundChannel{ return (_channel); } public function close():void{ if (_snd){ _snd = null; }; if (_channel){ _channel.stop(); _channel = null; }; } public function get time():Number{ return (_channel.position); } private function __id3Handler(_arg1:Event):void{ _id3 = _snd.id3; MonsterDebugger.trace(this, _id3); dispatchEvent(new AudioConnectionEvent(AudioConnectionEvent.ID3_ON_LOAD)); } private function __onPlaybackComplete(_arg1:Event):void{ MonsterDebugger.trace(this, "__onPlaybackComplete"); dispatchEvent(new AudioConnectionEvent(AudioConnectionEvent.PLAYBACK_COMPLETE)); } public function get sound():Sound{ return (_snd); } private function __ioErrorHandler(_arg1:IOErrorEvent):void{ MonsterDebugger.trace(this, _arg1.text); } public function get volume():Number{ return (_volume); } public function get duration():Number{ return (_snd.length); } private function __loadCompleteHandler(_arg1:Event):void{ MonsterDebugger.trace(this, "Sound komplett geladen"); } public function set pause(_arg1):void{ if (_arg1){ _position = _channel.position; }; if (_arg1){ _channel.stop(); _pause = true; } else { _channel = _snd.play(_position); _pause = false; }; } public function load(_arg1:String):void{ close(); _position = 0; _snd = new Sound(); _snd.addEventListener(Event.COMPLETE, __loadCompleteHandler); _snd.addEventListener(Event.ID3, __id3Handler); _snd.addEventListener(IOErrorEvent.IO_ERROR, __ioErrorHandler); _snd.addEventListener(ProgressEvent.PROGRESS, __progressHandler); _snd.load(new URLRequest(_arg1)); _channel = new SoundChannel(); _channel = _snd.play(); _channel.addEventListener(Event.SOUND_COMPLETE, __onPlaybackComplete); } public function set volume(_arg1:Number):void{ _volume = _arg1; TweenMax.to(_channel, 3, {volume:_volume, overwrite:true, onComplete:__volumeOnChanged}); } public function get pause():Boolean{ return (_pause); } public function seek(_arg1:Number):void{ _position = _arg1; _channel.stop(); _channel.addEventListener(Event.SOUND_COMPLETE, __onPlaybackComplete); _channel.soundTransform.volume = _volume; _channel = _snd.play(_arg1, 0, _channel.soundTransform); } private function __volumeOnChanged():void{ dispatchEvent(new AudioConnectionEvent(AudioConnectionEvent.SOUND_ON_CHANGED)); } private function __progressHandler(_arg1:ProgressEvent):void{ percent = ((_arg1.bytesLoaded / _arg1.bytesTotal) * 100); dispatchEvent(new AudioConnectionEvent(AudioConnectionEvent.ON_PROGRESS)); } public function get id3():ID3Info{ return (_id3); } } }//package de.aperto.net.audioconnection
Section 61
//BinaryLoader (de.aperto.net.BinaryLoader) package de.aperto.net { import flash.events.*; import de.aperto.events.*; import flash.display.*; import flash.net.*; import nl.demonsters.debugger.*; public class BinaryLoader extends EventDispatcher { private var _percent:Number; private var _Math:Object; private var request:URLRequest; private var _assetsDataArr:Array; private var _groupPercent:Number; private var _totalBytes:Number; private var _assetsCnt:Number; private var _interrupt:Boolean; public var onProgress:Boolean; private var info:LoaderInfo; private var _loader:Loader; private var _loadedBytes:Number; public function BinaryLoader(){ _Math = Math; onInterrupt(); } public function stop():void{ _interrupt = true; } public function onInterrupt():void{ if (_loader != null){ _loader.contentLoaderInfo.removeEventListener(ProgressEvent.PROGRESS, __onProgress); _loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, __completeHandler); _loader.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, __ioErrorHandler); }; _assetsCnt = 0; _assetsDataArr = []; onProgress = false; } private function __loadNextAsset():void{ if (_interrupt){ onInterrupt(); return; }; onProgress = true; _totalBytes = 0; _loadedBytes = 0; _percent = 0; _loader = new Loader(); _loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, __onProgress); _loader.contentLoaderInfo.addEventListener(Event.COMPLETE, __completeHandler); _loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, __ioErrorHandler); request = new URLRequest(_assetsDataArr[_assetsCnt].url); _loader.load(request); } public function push(_arg1:Object):void{ _assetsDataArr.push(_arg1); } private function __onProgress(_arg1:Event):void{ if (_interrupt){ onInterrupt(); return; }; info = LoaderInfo(_loader.contentLoaderInfo); _totalBytes = _Math.round((info.bytesTotal / 0x0400)); _loadedBytes = _Math.round((info.bytesLoaded / 0x0400)); _percent = _Math.round(((_loadedBytes / _totalBytes) * 100)); _groupPercent = _Math.min(100, ((_percent / (_assetsDataArr.length - 1)) + ((100 / (_assetsDataArr.length - 1)) * _assetsCnt))); dispatchEvent(new BinaryLoaderEvent(BinaryLoaderEvent.ON_PROGRESS, _assetsCnt, null, _assetsDataArr[_assetsCnt].url, _percent, 0)); dispatchEvent(new BinaryLoaderEvent(BinaryLoaderEvent.ON_GROUP_PROGRESS, -1, null, _assetsDataArr[_assetsCnt].url, _percent, _groupPercent)); } private function __ioErrorHandler(_arg1:IOErrorEvent):void{ MonsterDebugger.trace(this, "::: BinaryLoaderEvent ON IOErrorEvent :::"); MonsterDebugger.trace(this, _arg1.text); if (_interrupt){ onInterrupt(); return; }; onProgress = false; var _local2:String = _assetsDataArr[_assetsCnt].url; var _local3:* = _assetsDataArr[_assetsCnt].imageId; dispatchEvent(new BinaryLoaderEvent(BinaryLoaderEvent.ON_ERROR, _assetsCnt, null, _local2, 0, 0, "", _local3, "")); if (_assetsCnt == (_assetsDataArr.length - 1)){ dispatchEvent(new BinaryLoaderEvent(BinaryLoaderEvent.GROUP_COMPLETE, -1, null, null, 0, 100)); return; }; _assetsCnt++; MonsterDebugger.trace(this, ("TRY TO LOAD NEXT ASSET - COUNT: " + _assetsCnt)); __loadNextAsset(); } public function start():void{ if ((((_assetsDataArr == null)) || ((_assetsDataArr.length == 0)))){ __onAssetError(); return; }; __loadNextAsset(); } public function get numAssets():int{ if (_assetsDataArr == null){ return (0); }; return (_assetsDataArr.length); } private function __onAssetError():void{ MonsterDebugger.trace(this, "no assets to load - use pushObject?"); dispatchEvent(new BinaryLoaderEvent(BinaryLoaderEvent.ASSET_ON_ERROR)); } private function __completeHandler(_arg1:Event):void{ if (_interrupt){ onInterrupt(); return; }; onProgress = false; var _local2:* = _arg1.target.loader.content; var _local3:String = _assetsDataArr[_assetsCnt].url; var _local4:* = _assetsDataArr[_assetsCnt].imagePoolId; var _local5:* = _assetsDataArr[_assetsCnt].imageId; var _local6:String = _arg1.target.loader.contentLoaderInfo.contentType; dispatchEvent(new BinaryLoaderEvent(BinaryLoaderEvent.ASSET_COMPLETE, _assetsCnt, _local2, _local3, 0, 0, _local4, _local5, _local6)); if (_assetsCnt == (_assetsDataArr.length - 1)){ dispatchEvent(new BinaryLoaderEvent(BinaryLoaderEvent.GROUP_COMPLETE, -1, null, null, 0, 100)); return; }; _assetsCnt++; __loadNextAsset(); } } }//package de.aperto.net
Section 62
//DocumentAssetLoader (de.aperto.net.DocumentAssetLoader) package de.aperto.net { import flash.events.*; import de.aperto.events.*; import de.aperto.managers.*; import flash.display.*; import de.aperto.utils.*; import flash.text.*; import flash.net.*; import nl.demonsters.debugger.*; public class DocumentAssetLoader extends EventDispatcher { private var _cssPath:String;// = "includes/css/en.css" private var _swfRootPath:String;// = "includes/swf/" private var _xmlLoader:XMLLoader; private var _progress:Array; private var _progressStatus:int; private var _xmlRootPath:String;// = "includes/xml/" private var _currentAssetIt:int;// = 0 private var _labelXMLPath:String;// = "labels" private var _progressLabels:Array; private var _logicXML:XML; private var _lanuage:String;// = "en" public var percent:Number;// = 0 public var groupPercent:Number;// = 0 private var _xmlSuffix:String;// = "" private var _algoXMLPath:String;// = "algorithmsettings.xml" private var _assetCounter:Number;// = 0 private var _soundLibraryPath:String;// = "soundLibrary.swf" private var _assetsDataArr:Array; private var _labelXML:XML; private var _fontLibLoader:Loader; private var _guiLibraryPath:String;// = "guiLibrary.swf" private var _fontLibraryPath:String;// = "fontLibrary" private var _serverRoot:String;// = "" private var _swfSuffix:String;// = "" private var _poolLoader:BinaryLoader; private var _cssLoader:URLLoader; private var _progressRatios:Array; private var _logicXMLPath:String;// = "logic.xml" private var _stage:DisplayObject; public static const PROGRESS_XML:int = 1; public static const PROGRESS_GUI:int = 5; public static const PROGRESS_IMAGES:int = 2; public static const PROGRESS_STAGE:int = 0; public static const PROGRESS_SND:int = 4; public static const PROGRESS_FNT:int = 3; public function DocumentAssetLoader(_arg1:DisplayObject){ _progressRatios = [10, 10, 35, 15, 5, 25]; _progressLabels = ["stage", "xml", "images", "fonts", "sounds", "gui"]; _progress = [0, 0, 0, 0, 0, 0]; super(); _stage = _arg1; __checkFlashVars(); _assetsDataArr = new Array(); _assetsDataArr[0] = "stage"; _assetsDataArr[1] = _logicXMLPath; _assetsDataArr[2] = _labelXMLPath; _assetsDataArr[3] = _algoXMLPath; _assetCounter = 0; MonsterDebugger.trace(this, ("_lanuage: " + _lanuage)); __start(); } private function __finish():void{ dispatchEvent(new DocumentAssetLoaderEvent(DocumentAssetLoaderEvent.ASSETS_ON_PROGRESS, false, false, 100)); dispatchEvent(new DocumentAssetLoaderEvent(DocumentAssetLoaderEvent.ASSETS_ON_LOAD, false, false)); } private function __checkFlashVars():void{ var _local1:Object = new Object(); _local1 = _stage.loaderInfo.parameters; if (_local1.serverRoot){ _serverRoot = String((_local1.serverRoot + (_local1.serverProjectRoot) ? _local1.serverProjectRoot : "")); }; Develop.Instance.serverRoot = _serverRoot; if (_local1.language){ _lanuage = _local1.language; }; if (Develop.Instance.language){ _lanuage = Develop.Instance.language; }; _xmlSuffix = (("." + _lanuage) + ".xml"); _swfSuffix = (("." + _lanuage) + ".swf"); _xmlRootPath = (_serverRoot + _xmlRootPath); _swfRootPath = (_serverRoot + _swfRootPath); _logicXMLPath = (_xmlRootPath + _logicXMLPath); _labelXMLPath = (((_xmlRootPath + "content/") + _labelXMLPath) + _xmlSuffix); _algoXMLPath = ((_xmlRootPath + "content/") + _algoXMLPath); _soundLibraryPath = ((_swfRootPath + "") + _soundLibraryPath); _guiLibraryPath = ((_swfRootPath + "") + _guiLibraryPath); Develop.Instance.setOnlineState = ((_stage.loaderInfo.url.search("file") == 0)) ? false : true; Develop.Instance.language = _lanuage; } private function __loadNextXML():void{ if (!_xmlLoader){ _xmlLoader = new XMLLoader(_assetsDataArr[_assetCounter]); _xmlLoader.addEventListener(XMLLoaderEvent.XML_ON_LOAD, __xmlLoaderEventHandler); _xmlLoader.addEventListener(XMLLoaderEvent.XML_ON_PROGRESS, __xmlLoaderEventHandler); _xmlLoader.addEventListener(XMLLoaderEvent.XML_ON_ERROR, __xmlLoaderEventHandler); } else { _xmlLoader.path = _assetsDataArr[_assetCounter]; }; _xmlLoader.start(); } private function __cssLoaderEventHandler(_arg1:Event):void{ switch (_arg1.type){ case Event.COMPLETE: MonsterDebugger.trace(this, "CSS onLoad"); __loadFontLib(); break; case IOErrorEvent.IO_ERROR: MonsterDebugger.trace(this, "CSS loading failed"); break; }; } private function __loadFontLib():void{ _fontLibLoader = new Loader(); _fontLibLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, __fontLoaderEventHandler); _fontLibLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, __fontLoaderEventHandler); _fontLibLoader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, __fontLoaderEventHandler); _fontLibLoader.load(new URLRequest(_fontLibraryPath)); } private function __start():void{ if (_stage.loaderInfo.bytesTotal == _stage.loaderInfo.bytesLoaded){ _progress[PROGRESS_STAGE] = _progressRatios[PROGRESS_STAGE]; _assetCounter++; _currentAssetIt++; __loadNextXML(); } else { _stage.loaderInfo.addEventListener(ProgressEvent.PROGRESS, __stageOnProgress); _stage.loaderInfo.addEventListener(Event.COMPLETE, __stageOnLoad); }; __dispatchProgress(); } private function __stageOnLoad(_arg1:Event):void{ _assetCounter++; _currentAssetIt++; __loadNextXML(); } private function __poolLoaderEventHandler(_arg1:BinaryLoaderEvent):void{ switch (_arg1.type){ case BinaryLoaderEvent.ASSET_COMPLETE: PoolManager.Instance.push(_arg1.loadedContent, _arg1.imagePoolId, _arg1.imageId, _arg1.contentType); break; case BinaryLoaderEvent.GROUP_COMPLETE: __poolDataOnLoad(); break; case BinaryLoaderEvent.ON_GROUP_PROGRESS: _progress[PROGRESS_IMAGES] = ((_arg1.groupPercent / 100) * _progressRatios[PROGRESS_IMAGES]); __dispatchProgress(); break; case BinaryLoaderEvent.ON_ERROR: __handleError(("BinaryLoader ON_ERROR text = : " + _arg1.loadedContentAdress)); break; case BinaryLoaderEvent.ASSET_ON_ERROR: __handleError(("BinaryLoader ASSET_ON_ERROR text = : " + _arg1.toString())); break; }; } private function __xmlLoaderEventHandler(_arg1:XMLLoaderEvent):void{ var _local2:Number; switch (_arg1.type){ case XMLLoaderEvent.XML_ON_LOAD: MonsterDebugger.trace(this, ("XML_ON_LOAD - path: " + _arg1.target.path)); __sortXML(_arg1.target.path, _arg1.target.xml); if (_assetCounter < (_assetsDataArr.length - 1)){ _assetCounter++; __loadNextXML(); } else { _assetCounter++; _currentAssetIt++; __loadPoolImages(); }; break; case XMLLoaderEvent.XML_ON_PROGRESS: _local2 = ((int((((int(((_arg1.target.bytesLoaded * 0.0009765625) + 0.5)) / int(((_arg1.target.bytesTotal * 0.0009765625) + 0.5))) * 100) + 0.5)) / 100) * _progressRatios[PROGRESS_XML]); _progress[PROGRESS_XML] = _local2; __dispatchProgress(); break; case XMLLoaderEvent.XML_ON_ERROR: __handleError(((("XML ERROR text = : " + _arg1.target.path) + " / ") + _arg1.text)); break; }; } private function __dispatchProgress():void{ var percent:Number; percent = 0; _progress.forEach(function (_arg1:Number, _arg2:Number, _arg3:Number):void{ percent = (percent + _arg1); }); dispatchEvent(new DocumentAssetLoaderEvent(DocumentAssetLoaderEvent.ASSETS_ON_PROGRESS, false, false, percent, _progressLabels[_currentAssetIt])); } public function __loadPoolImages():void{ var _local2:int; var _local4:String; var _local5:String; var _local6:XML; var _local8:int; _poolLoader = new BinaryLoader(); var _local1:int = _logicXML.poolManager.pool.length(); var _local3:Object = {}; if (_local1 == 0){ __poolDataOnLoad(); return; }; var _local7:int; while (_local7 < _local1) { _local2 = _logicXML.poolManager.pool[_local7].item.length(); _local5 = _logicXML.poolManager.pool[_local7].@id; _local8 = 0; while (_local8 < _local2) { _local4 = _logicXML.poolManager.pool[_local7].item[_local8].@src; _local3 = new Object(); _local3.url = (Develop.Instance.serverRoot + _local4); _local3.imagePoolId = _local5; _local3.imageId = _logicXML.poolManager.pool[_local7].item[_local8].@id; _poolLoader.push(_local3); _local8++; }; _local7++; }; if (_poolLoader.numAssets == 0){ __poolDataOnLoad(); return; }; _poolLoader.addEventListener(BinaryLoaderEvent.ASSET_COMPLETE, __poolLoaderEventHandler); _poolLoader.addEventListener(BinaryLoaderEvent.GROUP_COMPLETE, __poolLoaderEventHandler); _poolLoader.addEventListener(BinaryLoaderEvent.ON_GROUP_PROGRESS, __poolLoaderEventHandler); _poolLoader.start(); } private function __fontLoaderEventHandler(_arg1:Event):void{ var _local2:StyleSheet; var _local3:ProgressEvent; switch (_arg1.type){ case Event.COMPLETE: MonsterDebugger.trace(this, "FontLib onLoad"); _local2 = new StyleSheet(); _local2.parseCSS(_cssLoader.data); CSSManager.Instance.initialize(_fontLibLoader.contentLoaderInfo, _local2); MonsterDebugger.trace(this, "CSS initialized"); _currentAssetIt++; __loadGuiLibrary(); break; case ProgressEvent.PROGRESS: _local3 = (_arg1 as ProgressEvent); _progress[PROGRESS_FNT] = ((int((((int(((_local3.bytesLoaded * 0.0009765625) + 0.5)) / int(((_local3.bytesTotal * 0.0009765625) + 0.5))) * 100) + 0.5)) / 100) * _progressRatios[PROGRESS_FNT]); __dispatchProgress(); break; case IOErrorEvent.IO_ERROR: MonsterDebugger.trace(this, "FontLib could not be loaded"); __loadSoundLib(); break; }; } private function __sortXML(_arg1:String, _arg2:XML):void{ switch (_arg1){ case _logicXMLPath: XMLManager.Instance.logicXML = _arg2; _logicXML = _arg2; break; case _labelXMLPath: LabelManager.Instance.init(_arg2); _labelXML = _arg2; _fontLibraryPath = (_serverRoot + _labelXML.fontLibrary.@src); _cssPath = (_serverRoot + _labelXML.css.@src); break; case _algoXMLPath: XMLManager.Instance.algoSettingsXML = _arg2; break; }; } private function __poolDataOnLoad():void{ _currentAssetIt++; __loadCSS(); } private function __soundLibraryOnProgressHandler(_arg1:Number):void{ _progress[PROGRESS_SND] = ((_arg1 / 100) * _progressRatios[PROGRESS_SND]); __dispatchProgress(); } private function __loadCSS():void{ _cssLoader = new URLLoader(); _cssLoader.addEventListener(Event.COMPLETE, __cssLoaderEventHandler); _cssLoader.addEventListener(IOErrorEvent.IO_ERROR, __cssLoaderEventHandler); _cssLoader.load(new URLRequest(_cssPath)); } private function __handleError(_arg1:String):void{ dispatchEvent(new DocumentAssetLoaderEvent(DocumentAssetLoaderEvent.ASSETS_ON_ERROR, false, false, 0, _arg1)); } private function __loadSoundLib():void{ SoundManager.Instance.loadLibrary(_soundLibraryPath, __soundLibraryOnLoadHandler, __soundLibraryOnProgressHandler); } private function __loadGuiLibrary():void{ MonsterDebugger.trace(this, ("Load GuiLibrary: " + _guiLibraryPath)); LibraryManager.Instance.eventHandler = __libraryManagerLoaderEventHandler; LibraryManager.Instance.load(_guiLibraryPath); } private function __stageOnProgress(_arg1:ProgressEvent):void{ _progress[PROGRESS_STAGE] = (((_arg1.bytesLoaded / _arg1.bytesTotal) / 100) * _progressRatios[PROGRESS_STAGE]); __dispatchProgress(); } private function __soundLibraryOnLoadHandler(_arg1:Boolean, _arg2:String=""):void{ if (_arg1){ MonsterDebugger.trace(this, "SoundLibrary OnLoad"); } else { MonsterDebugger.trace(this, _arg2); }; __finish(); } private function __libraryManagerLoaderEventHandler(_arg1:LibraryManagerEvent):void{ switch (_arg1.type){ case LibraryManagerEvent.COMPLETE: MonsterDebugger.trace(this, "GUI Library onLoad"); _currentAssetIt++; __loadSoundLib(); break; case LibraryManagerEvent.PROGRESS: _progress[PROGRESS_GUI] = ((_arg1.percent / 100) * _progressRatios[PROGRESS_GUI]); __dispatchProgress(); break; case LibraryManagerEvent.IO_ERROR: MonsterDebugger.trace(this, "GUI Library onError"); break; }; } } }//package de.aperto.net
Section 63
//XMLLoader (de.aperto.net.XMLLoader) package de.aperto.net { import flash.events.*; import de.aperto.events.*; import flash.net.*; import flash.xml.*; public class XMLLoader extends EventDispatcher { public var path:String; public var onProgress:Boolean; private var dataObj:Object; private var request:URLRequest; public var bytesLoaded:Number; private var loader:URLLoader; public var percent:Number; public var xml:XML; public var bytesTotal:Number; public function XMLLoader(_arg1:String):void{ path = _arg1; } private function xmlOnError(_arg1:IOErrorEvent):void{ onProgress = false; dispatchEvent(new XMLLoaderEvent(XMLLoaderEvent.XML_ON_ERROR, false, false, _arg1.toString())); } private function xmlOnProgress(_arg1:ProgressEvent):void{ bytesLoaded = _arg1.bytesLoaded; bytesTotal = _arg1.bytesTotal; percent = int((((int(((bytesLoaded * 0.0009765625) + 0.5)) / int(((bytesTotal * 0.0009765625) + 0.5))) * 100) + 0.5)); dispatchEvent(new XMLLoaderEvent(XMLLoaderEvent.XML_ON_PROGRESS)); } public function start():void{ onProgress = true; loader = new URLLoader(); request = new URLRequest(path); loader.addEventListener(Event.COMPLETE, xmlOnLoad); loader.addEventListener(ProgressEvent.PROGRESS, xmlOnProgress); loader.addEventListener(IOErrorEvent.IO_ERROR, xmlOnError); loader.load(request); } private function __parseCDATATags(_arg1:String):String{ var _local2:String = _arg1; _local2 = _local2.replace(/<CDATA>/g, "<![CDATA["); _local2 = _local2.replace(/<\/CDATA>/g, "]]>"); return (_local2); } public function interrupt():void{ if (loader){ onProgress = false; loader.close(); loader.removeEventListener(Event.COMPLETE, xmlOnLoad); loader.removeEventListener(ProgressEvent.PROGRESS, xmlOnProgress); loader.removeEventListener(IOErrorEvent.IO_ERROR, xmlOnError); }; } private function xmlOnLoad(_arg1:Event):void{ onProgress = false; var _local2:String = __parseCDATATags(String(_arg1.target.data)); XML.ignoreComments = true; XML.ignoreWhitespace = true; xml = new XML(_local2); dispatchEvent(new XMLLoaderEvent(XMLLoaderEvent.XML_ON_LOAD)); } } }//package de.aperto.net
Section 64
//CrazyTypewriter (de.aperto.text.effects.CrazyTypewriter) package de.aperto.text.effects { import flash.events.*; import de.aperto.managers.*; import flash.display.*; import flash.utils.*; import flash.text.*; public class CrazyTypewriter extends EventDispatcher { private var _alphabetString:String;// = "abcdefghijklmnopqrstuvwxyz+#§%&?ß" private var _Math:Object; private var _textfeld:TextField; private var rubishString:String; private var _replaceLetterTimer:Timer; private var _textLength:int;// = 0 private var abcString:String; private var _oriString:String;// = "" private var _tickerTimer:Timer; private var _font:String; private var _counter:int;// = 0 private var randomNum:Number; private var _fontSize:int;// = 12 private var _offsetTxtFmt:TextFormat; private var _textcolor:int; private var fld:TextField; private var c:int; private var abcLength:int; private var currentString:String; private var l:int; private var _effectSpeed:int; private var nextLetter:String; public function CrazyTypewriter(_arg1:TextField, _arg2:int){ _Math = Math; super(); _textfeld = _arg1; _oriString = _arg1.text; _offsetTxtFmt = (_arg1.getTextFormat() as TextFormat); _textLength = _oriString.length; _textcolor = (_offsetTxtFmt.color as int); _fontSize = (_offsetTxtFmt.size as int); _effectSpeed = _arg2; _font = _offsetTxtFmt.font; _textfeld.htmlText = ""; _textfeld.styleSheet = null; } public function stop():void{ __reset(); dispatchEvent(new Event(Event.CANCEL)); } private function __resetTimer():void{ if (_tickerTimer != null){ _tickerTimer.stop(); _tickerTimer.reset(); }; if (_replaceLetterTimer != null){ _replaceLetterTimer.stop(); _replaceLetterTimer.reset(); }; } private function __replaceLetterTimerEventHandler(_arg1:TimerEvent):void{ currentString = ""; rubishString = ""; abcString = _alphabetString; abcLength = abcString.length; l = _textLength; c = _counter; fld = _textfeld; currentString = _oriString.substr(0, c); currentString = (((((("<Font Size=\"" + _fontSize) + "\" color=\"") + _textcolor) + "\">") + currentString) + "</Font>"); var _local2:int = c; while (_local2 < l) { randomNum = _Math.floor((_Math.random() * abcLength)); nextLetter = abcString.charAt(randomNum); if (nextLetter){ rubishString = (rubishString + nextLetter); }; _local2++; }; currentString = (currentString + (((((("<Font Size=\"" + _fontSize) + "\" color=\"") + _textcolor) + "\">") + rubishString) + "</Font>")); _textfeld.htmlText = currentString; _textfeld.setTextFormat(_offsetTxtFmt); SoundManager.Instance.playSoundFromLibrary("TextEffect", 0.1); if (c >= l){ __onFinished(); }; } private function __onFinished():void{ __reset(); dispatchEvent(new Event(Event.COMPLETE)); } public function start():void{ __resetTimer(); _replaceLetterTimer = new Timer(5, 0); _replaceLetterTimer.addEventListener(TimerEvent.TIMER, __replaceLetterTimerEventHandler); _replaceLetterTimer.start(); _tickerTimer = new Timer(_effectSpeed, 0); _tickerTimer.addEventListener(TimerEvent.TIMER, __tickerTimerEventHandler); _tickerTimer.start(); } private function __tickerTimerEventHandler(_arg1:TimerEvent):void{ _counter++; } private function __reset():void{ _oriString = ""; _counter = 0; _textLength = 0; _tickerTimer.stop(); _replaceLetterTimer.stop(); } } }//package de.aperto.text.effects
Section 65
//CostumInputTextfield (de.aperto.text.CostumInputTextfield) package de.aperto.text { import flash.events.*; import de.aperto.managers.*; import flash.display.*; import flash.text.*; public class CostumInputTextfield extends Sprite { private var _defaultLabel:String;// = "" private var _defaultTextFormat:TextFormat; private var _tfd:TextField; public function CostumInputTextfield(_arg1:String="left", _arg2:Boolean=false, _arg3:String="normal", _arg4:String="default"){ _tfd = new TextField(); this.addChild(_tfd); _tfd.type = TextFieldType.INPUT; _tfd.multiline = false; _tfd.wordWrap = false; _tfd.embedFonts = true; _tfd.defaultTextFormat = (CSSManager.Instance.convertCssToTextFormat(_arg4) as TextFormat); _tfd.htmlText = "input"; _tfd.height = _tfd.textHeight; _tfd.htmlText = ""; _defaultTextFormat = (CSSManager.Instance.convertCssToTextFormat(_arg4) as TextFormat); _tfd.addEventListener(FocusEvent.FOCUS_IN, __textFieldEventHandler); _tfd.addEventListener(FocusEvent.FOCUS_OUT, __textFieldEventHandler); _tfd.addEventListener(Event.REMOVED_FROM_STAGE, __textFieldOnRemove); _tfd.addEventListener(Event.REMOVED, __textFieldOnRemove); } public function getTextFormat(_arg1:int=-1, _arg2:int=-1):TextFormat{ return (_tfd.getTextFormat(_arg1, _arg2)); } public function get wordWrap():Boolean{ return (_tfd.wordWrap); } public function get border():Boolean{ return (_tfd.border); } override public function get width():Number{ return (_tfd.width); } public function set restrict(_arg1):void{ _tfd.restrict = _arg1; } public function setSelection(_arg1:int, _arg2:int):void{ _tfd.setSelection(_arg1, _arg2); } public function setTextFormat(_arg1:TextFormat, _arg2:int=-1, _arg3:int=-1):void{ return (_tfd.setTextFormat(_arg1, _arg2, _arg3)); } override public function set height(_arg1:Number):void{ _tfd.height = _arg1; } private function __textFieldOnRemove(_arg1:Event):void{ this.removeEventListener(Event.ENTER_FRAME, __textFieldEnterFrameHandler); } override public function set width(_arg1:Number):void{ _tfd.width = _arg1; } public function get textHeight():Number{ return (_tfd.textHeight); } public function set antiAliasType(_arg1:String):void{ _tfd.antiAliasType = _arg1; } public function set border(_arg1:Boolean):void{ _tfd.border = _arg1; } public function get textWidth():Number{ return (_tfd.textWidth); } public function set text(_arg1:String):void{ _tfd.text = _arg1; } override public function get mouseEnabled():Boolean{ return (_tfd.mouseEnabled); } private function __textFieldEventHandler(_arg1:Event):void{ __updateTextFieldFormat(); if (_defaultLabel == ""){ return; }; switch (_arg1.type){ case TextEvent.TEXT_INPUT: break; case FocusEvent.FOCUS_IN: if (_tfd.text == _defaultLabel){ _tfd.text = ""; }; break; case FocusEvent.FOCUS_OUT: if (_tfd.text == ""){ _tfd.text = _defaultLabel; }; dispatchEvent(_arg1.clone()); break; }; __updateTextFieldFormat(); } public function set multiline(_arg1:Boolean):void{ _tfd.multiline = _arg1; } public function set mouseWheelEnabled(_arg1:Boolean):void{ _tfd.mouseWheelEnabled = _arg1; } override public function get height():Number{ return (_tfd.height); } private function __textFieldEnterFrameHandler(_arg1:Event):void{ __updateTextFieldFormat(); } public function get mouseWheelEnabled():Boolean{ return (_tfd.mouseWheelEnabled); } public function set textColor(_arg1:uint):void{ _tfd.textColor = _arg1; } public function set wordWrap(_arg1:Boolean):void{ _tfd.wordWrap = _arg1; } public function set htmlText(_arg1:String):void{ _tfd.htmlText = _arg1; } public function set maxChars(_arg1:int):void{ _tfd.maxChars; } public function get defaultLabel():String{ return (_defaultLabel); } public function get text():String{ return (_tfd.text); } public function set defaultLabel(_arg1:String):void{ _tfd.text = _arg1; _defaultLabel = _arg1; } public function get textColor():uint{ return (_tfd.textColor); } public function get antiAliasType():String{ return (_tfd.antiAliasType); } public function get htmlText():String{ return (_tfd.htmlText); } private function __updateTextFieldFormat():void{ _tfd.height = (_tfd.textHeight + 6); } public function get multiline():Boolean{ return (_tfd.multiline); } public function get length():int{ return (_tfd.length); } override public function set mouseEnabled(_arg1:Boolean):void{ _tfd.mouseEnabled = _arg1; } } }//package de.aperto.text
Section 66
//CostumTextfield (de.aperto.text.CostumTextfield) package de.aperto.text { import de.aperto.managers.*; import flash.text.*; public class CostumTextfield { public static function getCSSTextfield(_arg1:String="left", _arg2:Boolean=false, _arg3:Boolean=false, _arg4:Boolean=false, _arg5:String="normal", _arg6:Boolean=false):TextField{ var _local7:TextField = new TextField(); _local7.autoSize = _arg1; _local7.multiline = _arg4; _local7.wordWrap = _arg3; _local7.selectable = _arg2; _local7.antiAliasType = _arg5; _local7.mouseWheelEnabled = _arg6; _local7.styleSheet = CSSManager.Instance.styleSheet; _local7.embedFonts = true; return (_local7); } public static function getCSSInputTextfield(_arg1:String="left", _arg2:Boolean=false, _arg3:String="normal", _arg4:String="default"):TextField{ var _local5:TextField = getCSSTextfield(_arg1, true, true, _arg2, _arg3, true); _local5.htmlText = CSSMapper.map("input", _arg4); var _local6:TextFormat = _local5.getTextFormat(); var _local7:TextFormat = new TextFormat(); _local7.font = _local6.font; _local7.align = _arg1; _local7.size = _local6.size; _local7.color = _local6.color; _local7.bold = _local6.bold; _local5.styleSheet = null; _local5.type = TextFieldType.INPUT; _local5.autoSize = TextFieldAutoSize.NONE; _local5.mouseEnabled = true; _local5.selectable = true; _local5.width = 45; _local5.height = 15; _local5.setTextFormat(_local7); return (_local5); } } }//package de.aperto.text
Section 67
//CSSMapper (de.aperto.text.CSSMapper) package de.aperto.text { public class CSSMapper { public static function map(_arg1:String, _arg2:String="default"):String{ return ((((("<span class=\"" + _arg2) + "\">") + _arg1) + "</span>")); } } }//package de.aperto.text
Section 68
//MouseScroller (de.aperto.ui.mousescroller.MouseScroller) package de.aperto.ui.mousescroller { import flash.events.*; import de.aperto.managers.*; import flash.display.*; import flash.geom.*; import de.aperto.utils.*; public class MouseScroller extends Sprite { private var _container:Sprite; private var _motionBlurQuality:int;// = 3 private var _scrollContHeight:Number;// = 0 private var _Math:Object; private var _mask:Sprite; private var _toSmall:Boolean; private var _maskHeight:Number;// = 0 private var _scrollActiveSpeed:Number; private var _motionBlur:Boolean; private var _hitPoint:Point; private var _onUpdate:Boolean; private var _currY:Number;// = 0 private var _mouseIsOver:Boolean; private var _scrollContainer:Sprite; private var _scrollSpeed:Number;// = 4 public function MouseScroller(){ _scrollActiveSpeed = _scrollSpeed; super(); _Math = Math; _container = new Sprite(); this.addChild(_container); _mask = DrawUtils.getRect(50, 50); this.addChild(_mask); _container.mask = _mask; addEventListener(Event.ADDED_TO_STAGE, __addedToStage); addEventListener(Event.REMOVED_FROM_STAGE, __removedFromStage); } override public function set width(_arg1:Number):void{ _mask.width = _arg1; } private function __stopUpdate():void{ _onUpdate = false; EnterFrameManager.removeListener(__enterFrameHandler); } private function __removedFromStage(_arg1:Event):void{ removeEventListener(MouseEvent.MOUSE_MOVE, __mouseMoveHandler); EnterFrameManager.removeListener(__enterFrameHandler); } private function __resetCurrent():void{ DisplayUtils.removeDisplayObject(_scrollContainer); if (_scrollContainer != null){ _scrollContainer = null; }; } private function __addedToStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, __addedToStage); stage.addEventListener(MouseEvent.MOUSE_MOVE, __mouseMoveHandler); } override public function get width():Number{ return (_mask.width); } public function set speed(_arg1:Number):void{ _scrollSpeed = _arg1; } private function __runUpdate():void{ if (_onUpdate){ return; }; _onUpdate = true; EnterFrameManager.addListener(__enterFrameHandler); } public function addScrollContent(_arg1):void{ __resetCurrent(); _scrollContainer = new Sprite(); _scrollContainer.addChild(_arg1); _container.addChild(_scrollContainer); _scrollContHeight = _scrollContainer.height; _toSmall = (_scrollContHeight < _maskHeight); __runUpdate(); } override public function get height():Number{ return (_maskHeight); } override public function set height(_arg1:Number):void{ _maskHeight = _arg1; _mask.height = _maskHeight; _scrollContHeight = _scrollContainer.height; _toSmall = (_scrollContHeight < _maskHeight); __runUpdate(); } private function __mouseMoveHandler(_arg1:Event):void{ if (_toSmall){ return; }; _hitPoint = localToGlobal(new Point(mouseX, mouseY)); _mouseIsOver = _mask.hitTestPoint(_hitPoint.x, _hitPoint.y, false); if (_mouseIsOver){ __runUpdate(); }; } private function __enterFrameHandler():void{ _currY = 0; if (((_mouseIsOver) && (!(_toSmall)))){ _currY = -(int((((mouseY / _maskHeight) * (_scrollContHeight - _maskHeight)) + 0.5))); _scrollActiveSpeed = _scrollSpeed; } else { _scrollActiveSpeed = 15; }; _scrollContainer.y = (_scrollContainer.y + ((_currY - _scrollContainer.y) / _scrollActiveSpeed)); if ((((_Math.abs((_Math.abs(_currY) - _Math.abs(_scrollContainer.y))) < 0.001)) && (!(_mouseIsOver)))){ __stopUpdate(); }; } } }//package de.aperto.ui.mousescroller
Section 69
//ContextMenuManagerItem (de.aperto.ui.ContextMenuManagerItem) package de.aperto.ui { public class ContextMenuManagerItem { private var _callback:Function; private var _label:String; public function set callback(_arg1:Function):void{ _callback = _arg1; } public function get label():String{ return (_label); } public function get callback():Function{ return (_callback); } public function set label(_arg1:String):void{ _label = _arg1; } } }//package de.aperto.ui
Section 70
//BitmapUtils (de.aperto.utils.BitmapUtils) package de.aperto.utils { import flash.display.*; import flash.utils.*; import flash.geom.*; import flash.filters.*; public class BitmapUtils { public static function addShadow(_arg1, _arg2:Number=10, _arg3:Number=10, _arg4:Number=5, _arg5:Number=1, _arg6:Number=0.5, _arg7:Number=90, _arg8:int=0, _arg9:Boolean=false):void{ var _local10:DropShadowFilter = new DropShadowFilter(_arg4, _arg7, _arg8, _arg6, _arg2, _arg3, 1, _arg5, _arg9, false, false); setNewFilter(_arg1, _local10, DropShadowFilter); } public static function getSpriteByBitmapSlit(_arg1, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number):Sprite{ var _local6:Sprite = new Sprite(); var _local7:Matrix = new Matrix(); _local7.translate(_arg4, _arg5); var _local8:BitmapData = new BitmapData(_arg2, _arg3, true, 0); _local8.draw(_arg1, _local7); var _local9:Bitmap = new Bitmap(_local8, "auto", false); _local6.addChild(_local9); return (_local6); } public static function setARGBComponent(_arg1:uint, _arg2:uint, _arg3:uint):uint{ _arg3 = (_arg3 & 0xFF); var _local4:uint = ((3 - _arg1) * 8); var _local5:uint = (0xFF << _local4); _arg2 = (_arg2 & ~(_local5)); var _local6:uint = (_arg3 << _local4); return ((_arg2 + _local6)); } public static function addBlur(_arg1, _arg2:Number=10, _arg3:Number=10, _arg4:Number=1):void{ setNewFilter(_arg1, new BlurFilter(_arg2, _arg3, _arg4), BlurFilter); } public static function getARGBComponent(_arg1:uint, _arg2:uint):uint{ var _local3:uint = ((3 - _arg1) * 8); var _local4:uint = (0xFF << _local3); var _local5:uint = (((_arg2 & _local4) >> _local3) & 0xFF); return (_local5); } public static function resizeBitmapData(_arg1:BitmapData, _arg2:Number, _arg3:Number, _arg4:Boolean=false):BitmapData{ if ((((((_arg1 == null)) || ((_arg2 == 0)))) || ((_arg3 == 0)))){ return (_arg1); }; var _local5:Matrix = new Matrix(); _local5.scale((((100 / _arg1.width) * _arg2) / 100), (((100 / _arg1.height) * _arg3) / 100)); var _local6:BitmapData = new BitmapData(_arg2, _arg3, true, 0); _local6.draw(_arg1, _local5, null, null, null, _arg4); _arg1.dispose(); return (_local6); } public static function addGlow(_arg1, _arg2:Number=10, _arg3:Number=10, _arg4:Number=5, _arg5:Number=1, _arg6:Number=0.5, _arg7:uint=0xFFFFFF, _arg8:Boolean=false, _arg9:Boolean=false):void{ var _local10:GlowFilter = new GlowFilter(_arg7, _arg6, _arg2, _arg3, 1, _arg5, _arg8, _arg9); setNewFilter(_arg1, _local10, GlowFilter); } public static function getBitmapData(_arg1, _arg2:Number, _arg3:Number, _arg4:Boolean=true, _arg5:uint=0, _arg6:Boolean=true):BitmapData{ if ((((((_arg1 == null)) || ((_arg2 < 1)))) || ((_arg3 < 1)))){ return (new BitmapData(1, 1, true, 0)); }; var _local7:BitmapData = new BitmapData(_arg2, _arg3, _arg4, _arg5); _local7.draw(_arg1, null, null, null, null, _arg6); return (_local7); } public static function convertRGBToARGB(_arg1:uint, _arg2:uint):uint{ var _local3:uint; _local3 = (_local3 + (_arg2 << 24)); _local3 = (_local3 + _arg1); return (_local3); } public static function setNewFilter(_arg1, _arg2, _arg3):void{ var _local4:Array = _arg1.filters; _local4[getFilterPosition(_arg1, _arg3)] = _arg2; _arg1.filters = _local4; } public static function getFilterPosition(_arg1:DisplayObject, _arg2):int{ var _local3:uint; while (_local3 < _arg1.filters.length) { if ((_arg1.filters[_local3] is _arg2)){ return (_local3); }; _local3++; }; return (_arg1.filters.length); } public static function reverseBitmapData(_arg1:BitmapData, _arg2:String="x"):BitmapData{ var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; if (_arg1 == null){ return (new BitmapData(50, 50, false, 0xFF0000)); }; if (_arg2 == "x"){ _local3 = -1; _local4 = 1; _local5 = _arg1.width; _local6 = 0; } else { _local3 = 1; _local4 = -1; _local5 = 0; _local6 = _arg1.height; }; var _local7:Matrix = new Matrix(); _local7.scale(_local3, _local4); _local7.translate(_local5, _local6); var _local8:BitmapData = new BitmapData(_arg1.width, _arg1.height, true, 0); _local8.draw(_arg1, _local7); _arg1.dispose(); return (_local8); } public static function removeFilter(_arg1, _arg2:String):void{ var _local3:Class = (getDefinitionByName(_arg2) as Class); _arg1.filters = removeFilterFromPosition(_arg1.filters, getFilterPosition(_arg1, _local3)); } public static function getBlurBitmapData(_arg1:BitmapData, _arg2:Number, _arg3:Number, _arg4:Number):BitmapData{ var _local5:Sprite = new Sprite(); _local5.addChild(new Bitmap(_arg1, "auto", true)); addBlur(_local5, _arg2, _arg3, _arg4); var _local6:BitmapData = getBitmapData(_local5, _local5.width, _local5.height); _local5 = null; return (_local6); } public static function removeFilterFromPosition(_arg1:Array, _arg2:int):Array{ var _local3:Array = new Array(); var _local4:uint; while (_local4 < _arg1.length) { if (_local4 != _arg2){ _local3.push(_arg1[_local4]); }; _local4++; }; return (_local3); } } }//package de.aperto.utils
Section 71
//Develop (de.aperto.utils.Develop) package de.aperto.utils { public class Develop { private static var _serverRoot:String = ""; private static var _labelXMLPath:String; private static var _instance:Develop; private static var _debug:Boolean; private static var _isOnline:Boolean; private static var _logicXMLPath:String; private static var _language:String; public function Develop(){ if (_instance != null){ throw (new Error("Develop is a Singleton")); }; } public function get serverRoot():String{ return (_serverRoot); } public function set debug(_arg1:Boolean):void{ _debug = _arg1; } public function get labelXMLPath():String{ return (_labelXMLPath); } public function set serverRoot(_arg1:String):void{ _serverRoot = _arg1; } public function set labelXMLPath(_arg1:String):void{ _labelXMLPath = _arg1; } public function projectIsOnline():Boolean{ return (_isOnline); } public function set language(_arg1:String):void{ _language = _arg1; } public function get language():String{ return (_language); } public function get debug():Boolean{ return (_debug); } public function set logicXMLPath(_arg1:String):void{ _logicXMLPath = _arg1; } public function get logicXMLPath():String{ return (_logicXMLPath); } public function set setOnlineState(_arg1:Boolean):void{ _isOnline = _arg1; } public static function get Instance():Develop{ if (_instance == null){ _instance = new (Develop); }; return (_instance); } } }//package de.aperto.utils
Section 72
//DisplayUtils (de.aperto.utils.DisplayUtils) package de.aperto.utils { import flash.display.*; import flash.geom.*; import flash.filters.*; public class DisplayUtils { public static function swapChildToTop(_arg1):void{ if (((((!(_arg1)) || (!(_arg1.parent)))) || (!(_arg1.name)))){ return; }; var _local2:DisplayObject = _arg1.parent.getChildByName(_arg1.name); var _local3:uint = (_arg1.parent.numChildren - 1); _arg1.parent.setChildIndex(_local2, _local3); } public static function scaleProportional(_arg1, _arg2:Number, _arg3:Number=0):void{ var _local4:Number = (_arg1.height / _arg1.width); var _local5:Number = _arg2; var _local6:Number = (_arg2 * _local4); if ((((_arg3 > 0)) && ((_local6 < _arg3)))){ _local4 = (_arg1.width / _arg1.height); _local6 = _arg3; _local5 = (_arg3 * _local4); }; _arg1.width = _local5; _arg1.height = _local6; } public static function isMouseHit(_arg1):Boolean{ return (_arg1.hitTestPoint(_arg1.parent.mouseX, _arg1.parent.mouseY)); } public static function globalize(_arg1):Object{ var _local2:Point = new Point(_arg1.x, _arg1.y); return (_arg1.parent.localToGlobal(_local2)); } public static function localize(_arg1):Object{ var _local2:Point = new Point(_arg1.x, _arg1.y); return (_arg1.parent.globalToLocal(_local2)); } public static function scaleChildProportionalToStage(_arg1, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number):void{ var _local6:Number = (_arg1.height / _arg1.width); var _local7:Number = (_arg1.width / _arg1.height); if ((((_arg2 > _arg4)) || ((_arg3 > _arg5)))){ _arg1.height = (((_arg3 / _arg2))<_local6) ? (_local6 * _arg2) : _arg3; _arg1.width = (((_arg2 / _arg3))<_local7) ? (_local7 * _arg3) : _arg2; }; if ((((_arg2 <= _arg4)) && ((_arg1.width > _arg4)))){ _arg1.height = (((_arg3 / _arg2))<_local6) ? (_local6 * _arg2) : _arg3; _arg1.width = (((_arg2 / _arg3))<_local7) ? (_local7 * _arg3) : _arg2; }; if ((((_arg3 <= _arg5)) && ((_arg1.height > _arg5)))){ _arg1.height = (((_arg3 / _arg2))<_local6) ? (_local6 * _arg2) : _arg3; _arg1.width = (((_arg2 / _arg3))<_local7) ? (_local7 * _arg3) : _arg2; }; } public static function removeDisplayObject(_arg1):void{ if (((((!(_arg1)) || (!(_arg1.parent)))) || (!(_arg1.name)))){ return; }; var _local2:DisplayObject = _arg1.parent.getChildByName(_arg1.name); if (_local2){ _arg1.parent.removeChild(_local2); }; if (_local2){ _local2 = null; }; if (_arg1){ _arg1 = null; }; } public static function swapChildToBottom(_arg1):void{ if (((((!(_arg1)) || (!(_arg1.parent)))) || (!(_arg1.name)))){ return; }; var _local2:DisplayObject = _arg1.parent.getChildByName(_arg1.name); var _local3:uint = (_arg1.parent.numChildren - _arg1.parent.numChildren); _arg1.parent.setChildIndex(_local2, _local3); } } }//package de.aperto.utils
Section 73
//DrawUtils (de.aperto.utils.DrawUtils) package de.aperto.utils { import flash.display.*; import flash.geom.*; public class DrawUtils { public static function getGradientRect(_arg1:Number, _arg2:Number, _arg3:Number=0, _arg4:Number=0, _arg5:Number=1, _arg6:Number=1):Sprite{ var _local7:Sprite = new Sprite(); var _local8:Shape = new Shape(); var _local9:String = GradientType.LINEAR; var _local10:Array = [_arg3, _arg4]; var _local11:Array = [_arg5, _arg6]; var _local12:Array = [0, 0xFF]; var _local13:Matrix = new Matrix(); _local13.createGradientBox(_arg1, _arg2, 1.569, 0, 0); var _local14:String = SpreadMethod.PAD; _local8.graphics.beginGradientFill(_local9, _local10, _local11, _local12, _local13, _local14); _local8.graphics.drawRect(0, 0, _arg1, _arg2); _local8.graphics.endFill(); _local7.addChild(_local8); return (_local7); } public static function getRoundRect(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=0, _arg6:Number=0, _arg7:Number=0, _arg8:Boolean=false):Sprite{ var _local9:Sprite = new Sprite(); var _local10:Shape = new Shape(); _local10.graphics.beginFill(_arg5, (_arg8) ? 0 : 1); if (_arg7 > 0){ _local10.graphics.lineStyle(_arg7, _arg6, 1, false, "none"); }; _local10.graphics.drawRoundRect(0, 0, _arg1, _arg2, _arg3, _arg4); _local10.graphics.endFill(); _local9.addChild(_local10); return (_local9); } public static function getArrow(_arg1:Number=5, _arg2:Number=0, _arg3:Number=0):Sprite{ var _local4:Sprite = new Sprite(); _local4.graphics.lineStyle(_arg3, _arg2, 1, false); _local4.graphics.beginFill(_arg2); _local4.graphics.lineTo(_arg1, _arg1); _local4.graphics.lineTo(0, (_arg1 * 2)); _local4.graphics.lineTo(_arg1, _arg1); _local4.graphics.lineTo(0, 0); _local4.graphics.endFill(); return (_local4); } public static function getCircle(_arg1:Number, _arg2:Number=0, _arg3:Number=0, _arg4:Number=0):Sprite{ var _local5:Sprite = new Sprite(); var _local6:Shape = new Shape(); if (_arg4 > 0){ _local6.graphics.lineStyle(_arg4, _arg3, 1, false, "none"); }; _local6.graphics.beginFill(_arg2); _local6.graphics.drawCircle(0, 0, _arg1); _local6.graphics.endFill(); _local5.addChild(_local6); return (_local5); } public static function getRect(_arg1:Number, _arg2:Number, _arg3:Number=0, _arg4:Number=0, _arg5:Number=0, _arg6:BitmapData=null):Sprite{ var _local7:Sprite = new Sprite(); if (_arg5 > 0){ _local7.graphics.lineStyle(_arg5, _arg4, 1, false, "none"); }; if (_arg6 != null){ _local7.graphics.beginBitmapFill(_arg6, null, true, false); } else { _local7.graphics.beginFill(_arg3); }; _local7.graphics.drawRect(0, 0, _arg1, _arg2); _local7.graphics.endFill(); return (_local7); } public static function getSplineLine(_arg1:Number=20, _arg2:Number=0, _arg3:Number=0xFFFFFF, _arg4:Number=1, _arg5:Number=1):Sprite{ var _local6:Sprite = new Sprite(); var _local7:Sprite = getRect(1, _arg1, _arg2); _local6.addChild(_local7); _local7.alpha = _arg4; _local7 = getRect(1, _arg1, _arg3); _local6.addChild(_local7); _local7.x = 1; _local7.alpha = _arg5; return (_local6); } public static function getGradientRoundRect(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number, _arg8:Number):Sprite{ var _local9:Sprite = new Sprite(); var _local10:Shape = new Shape(); var _local11:String = GradientType.LINEAR; var _local12:Array = [_arg5, _arg6]; var _local13:Array = [_arg7, _arg8]; var _local14:Array = [0, 0xFF]; var _local15:Matrix = new Matrix(); _local15.createGradientBox(_arg1, _arg2, 1.569, 0, 0); var _local16:String = SpreadMethod.PAD; _local10.graphics.beginGradientFill(_local11, _local12, _local13, _local14, _local15, _local16); _local10.graphics.drawRoundRect(0, 0, _arg1, _arg2, _arg3, _arg4); _local10.graphics.endFill(); _local9.addChild(_local10); return (_local9); } public static function getGradientCircle(_arg1:Number=10, _arg2:Number=0, _arg3:Number=0, _arg4:Number=1, _arg5:Number=1, _arg6:Number=0, _arg7:Number=0):Sprite{ var _local8:Sprite = new Sprite(); var _local9:Shape = new Shape(); var _local10:String = GradientType.LINEAR; var _local11:Array = [_arg2, _arg3]; var _local12:Array = [_arg4, _arg5]; var _local13:Array = [0, 0xFF]; var _local14:Matrix = new Matrix(); _local14.createGradientBox(_arg1, _arg1, 1.569, 0, 0); if (_arg7 > 0){ _local9.graphics.lineStyle(_arg7, _arg6, 1, false, "none"); }; var _local15:String = SpreadMethod.PAD; _local9.graphics.beginGradientFill(_local10, _local11, _local12, _local13, _local14, _local15); _local9.graphics.drawCircle(0, 0, _arg1); _local9.graphics.endFill(); _local8.addChild(_local9); return (_local8); } } }//package de.aperto.utils
Section 74
//RequestUtils (de.aperto.utils.RequestUtils) package de.aperto.utils { import flash.net.*; import flash.external.*; public class RequestUtils { public static function newWindow(_arg1:String, _arg2:String):void{ navigateToURL(new URLRequest(_arg1), _arg2); } public static function newSiemensRequest(_arg1:XML){ var _local2:String = (_arg1.hasOwnProperty("url")) ? _arg1.url : _arg1; var _local3:String = _arg1.@target; var _local4:int = Math.round(int(_arg1.@width)); var _local5:int = Math.round(int(_arg1.@height)); switch (_local3){ case "flash": return (_local3); case "popup": newPopup(_local2, _local4, _local5); break; case "div": switchSWF(_arg1); break; default: newWindow(_local2, _local3); break; }; } public static function newPopup(_arg1:String, _arg2:Number=500, _arg3:Number=400):void{ var _local4:URLRequest = new URLRequest((((((("javascript:window.open('" + _arg1) + "', 'popup', 'height=") + _arg3) + ", width=") + _arg2) + "'); void(0);")); navigateToURL(_local4, "_self"); } public static function switchSWF(_arg1:XML):void{ var _local2:Object = new Object(); var _local3:int = _arg1.link.param.length(); var _local4:int; while (_local4 < _local3) { _local2[String(_arg1.link.param[_local4].@key)] = String(_arg1.link.param[_local4]); _local4++; }; if (ExternalInterface.available){ ExternalInterface.call("switchSWF", _local2); }; } public static function isValideEMailAdress(_arg1:String):Boolean{ return ((_arg1.search("@") > 0)); } } }//package de.aperto.utils
Section 75
//DocumentBase (de.aperto.DocumentBase) package de.aperto { import flash.events.*; import de.aperto.events.*; import de.aperto.managers.*; import flash.display.*; import nl.demonsters.debugger.*; import de.aperto.net.*; public class DocumentBase extends MovieClip { private var _debugger:MonsterDebugger; private var _loader:DocumentAssetLoader; public function DocumentBase(){ if (stage != null){ SoundManager.Instance.init((this.root as MovieClip)); __initDebugger(); loadStageAndAssets(); } else { addEventListener(Event.ADDED_TO_STAGE, __addedToStage); }; } private function __initDebugger():void{ _debugger = new MonsterDebugger(this); MonsterDebugger.clearTraces(); } private function __loaderEventHandler(_arg1:DocumentAssetLoaderEvent):void{ switch (_arg1.type){ case DocumentAssetLoaderEvent.ASSETS_ON_LOAD: __init(); break; case DocumentAssetLoaderEvent.ASSETS_ON_PROGRESS: __stageOnProgress(_arg1.percent); break; case DocumentAssetLoaderEvent.ASSETS_ON_ERROR: MonsterDebugger.trace(this, "DocumentAssetLoaderEvent.ASSETS_ON_ERROR"); MonsterDebugger.trace(this, _arg1.text); break; }; } protected function __stageOnProgress(_arg1:Number):void{ } private function __addedToStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, __addedToStage); SoundManager.Instance.init((this.root as MovieClip)); __initDebugger(); loadStageAndAssets(); } protected function loadStageAndAssets():void{ if (_loader){ _loader.removeEventListener(DocumentAssetLoaderEvent.ASSETS_ON_LOAD, __loaderEventHandler); _loader.removeEventListener(DocumentAssetLoaderEvent.ASSETS_ON_PROGRESS, __loaderEventHandler); _loader.removeEventListener(DocumentAssetLoaderEvent.ASSETS_ON_ERROR, __loaderEventHandler); _loader = null; }; _loader = new DocumentAssetLoader(this); _loader.addEventListener(DocumentAssetLoaderEvent.ASSETS_ON_LOAD, __loaderEventHandler); _loader.addEventListener(DocumentAssetLoaderEvent.ASSETS_ON_PROGRESS, __loaderEventHandler); _loader.addEventListener(DocumentAssetLoaderEvent.ASSETS_ON_ERROR, __loaderEventHandler); } protected function __init():void{ } } }//package de.aperto
Section 76
//AlgorithmEvents (eu.ecb.economia.data.algorithm.AlgorithmEvents) package eu.ecb.economia.data.algorithm { import com.gskinner.utils.*; public class AlgorithmEvents { private var sc_ev:RealMatrix; private var np_ev_r:RealMatrix; private var nr:int; private var id_ev_r:Array; private var name_ev_c:Array; private var np_ev_c:RealMatrix; private var ut_ev:RealMatrix; private var T:int; private var tn_ev:int; private var deter_ev:int; private var name_ev_r:Array; private var rho_ev_c:RealMatrix; private var pass_flood:Boolean; private var time_ev:RealMatrix; private var _math:Object; private var w_up:int; private var _algorithm:GameAlgorithm; private var year_ev:RealMatrix; private var D_ev_c:RealMatrix; private var id_ev_c:Array; private var tn_ev_game:int; public function AlgorithmEvents(_arg1:GameAlgorithm){ var _local2:int; var _local3:int; var _local9:Number; var _local10:Array; var _local11:Number; var _local12:int; var _local14:int; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; _math = Math; super(); _algorithm = _arg1; nr = _algorithm.nr; T = _algorithm.T; tn_ev_game = _algorithm.tn_ev_game; tn_ev_game = _algorithm.tn_ev_game; D_ev_c = _algorithm.D_ev_c; rho_ev_c = _algorithm.rho_ev_c; name_ev_c = _algorithm.name_ev_c; id_ev_c = _algorithm.id_ev_c; np_ev_c = _algorithm.np_ev_c; tn_ev = _algorithm.tn_ev; deter_ev = _algorithm.deter_ev; sc_ev = _algorithm.sc_ev; w_up = _algorithm.w_up; year_ev = _algorithm.year_ev; pass_flood = _algorithm.pass_flood; this.ut_ev = new RealMatrix(nr, int((T + np_ev_c.max())), 0); this.time_ev = new RealMatrix(tn_ev_game, 1, 0); this.name_ev_r = new Array(tn_ev_game); this.id_ev_r = new Array(tn_ev_game); this.np_ev_r = new RealMatrix(tn_ev_game, 1, 0); var _local4:RealMatrix = D_ev_c; var _local5:RealMatrix = rho_ev_c; var _local6:Array = name_ev_c; var _local7:Array = id_ev_c; var _local8:RealMatrix = np_ev_c; D_ev_c = D_ev_c.getMatrix(0, (D_ev_c.getRowDimension() - 1), 2, (tn_ev - 1)); rho_ev_c = rho_ev_c.getMatrix(2, (tn_ev - 1), 0, 0); np_ev_c = np_ev_c.getMatrix(2, (tn_ev - 1), 0, 0); name_ev_c = removeElm(name_ev_c, 0); name_ev_c = removeElm(name_ev_c, 0); id_ev_c = removeElm(id_ev_c, 0); id_ev_c = removeElm(id_ev_c, 0); if (deter_ev == 0){ _local14 = 2; while (_local14 < tn_ev) { _local9 = (1 / (tn_ev - _local14)); _local10 = new Array(); _local2 = 1; while (true) { if ((_local9 * _local2) >= 1){ _local10.push(1); break; }; _local10.push((_local9 * _local2)); _local2++; }; _local11 = Rndm.random(); _local2 = 0; while (_local2 < _local10.length) { _local10[_local2] = ((_local10[_local2] > _local11)) ? 1 : 0; _local2++; }; _local10 = cumsum(_local10); _local12 = _local10.indexOf(1); _local5.set(_local14, 0, rho_ev_c.get(_local12, 0)); _local8.set(_local14, 0, np_ev_c.get(_local12, 0)); _local6[_local14] = name_ev_c[_local12]; _local7[_local14] = id_ev_c[_local12]; _local2 = 0; while (_local2 < _local4.getRowDimension()) { _local4.set(_local2, _local14, D_ev_c.get(_local2, _local12)); _local2++; }; np_ev_c.removeRow(_local12); rho_ev_c.removeRow(_local12); name_ev_c = removeElm(name_ev_c, _local12); id_ev_c = removeElm(id_ev_c, _local12); D_ev_c.removeColumn(_local12); _local14++; }; }; var _local13:int; while (_local13 < tn_ev_game) { _local15 = Rndm.random(); if (_local15 <= 0.25){ time_ev.set(_local13, 0, (w_up + (year_ev.get(_local13, 0) * 4))); _local2 = 0; while (_local2 < ut_ev.getRowDimension()) { ut_ev.set(_local2, time_ev.get(_local13, 0), _local4.get(_local2, (_local13 + 2))); _local2++; }; _local16 = _local5.get((_local13 + 2), 0); _local17 = _local8.get((_local13 + 2), 0); name_ev_r[_local13] = _local6[(_local13 + 2)]; id_ev_r[_local13] = _local7[(_local13 + 2)]; np_ev_r.set(_local13, 0, _local8.get((_local13 + 2), 0)); } else { if ((((_local15 > 0.25)) && ((_local15 <= 0.5)))){ time_ev.set(_local13, 0, ((w_up + (year_ev.get(_local13, 0) * 4)) + 1)); _local2 = 0; while (_local2 < ut_ev.getRowDimension()) { ut_ev.set(_local2, time_ev.get(_local13, 0), _local4.get(_local2, (_local13 + 2))); _local2++; }; _local16 = _local5.get((_local13 + 2), 0); _local17 = _local8.get((_local13 + 2), 0); name_ev_r[_local13] = _local6[(_local13 + 2)]; id_ev_r[_local13] = _local7[(_local13 + 2)]; np_ev_r.set(_local13, 0, _local8.get((_local13 + 2), 0)); } else { if ((((_local15 > 0.5)) && ((_local15 <= 0.75)))){ time_ev.set(_local13, 0, ((w_up + (year_ev.get(_local13, 0) * 4)) + 2)); _local2 = 0; while (_local2 < ut_ev.getRowDimension()) { ut_ev.set(_local2, time_ev.get(_local13, 0), _local4.get(_local2, (_local13 + 2))); _local2++; }; _local16 = _local5.get((_local13 + 2), 0); _local17 = _local8.get((_local13 + 2), 0); name_ev_r[_local13] = _local6[(_local13 + 2)]; id_ev_r[_local13] = _local7[(_local13 + 2)]; np_ev_r.set(_local13, 0, _local8.get((_local13 + 2), 0)); } else { time_ev.set(_local13, 0, ((w_up + (year_ev.get(_local13, 0) * 4)) + 3)); _local19 = Rndm.random(); if ((((_local19 < 0.75)) && (!(pass_flood)))){ _local20 = Rndm.random(); if (_local20 < 0.5){ _local2 = 0; while (_local2 < ut_ev.getRowDimension()) { ut_ev.set(_local2, time_ev.get(_local13, 0), _local4.get(_local2, 0)); _local2++; }; _local16 = _local5.get(0, 0); _local17 = _local8.get(0, 0); name_ev_r[_local13] = _local6[0]; id_ev_r[_local13] = _local7[0]; np_ev_r.set(_local13, 0, _local8.get(0, 0)); } else { _local2 = 0; while (_local2 < ut_ev.getRowDimension()) { ut_ev.set(_local2, time_ev.get(_local13, 0), _local4.get(_local2, 1)); _local2++; }; _local16 = _local5.get(1, 0); _local17 = _local8.get(1, 0); name_ev_r[_local13] = _local6[1]; id_ev_r[_local13] = _local7[1]; np_ev_r.set(_local13, 0, _local8.get(1, 0)); }; pass_flood = true; } else { _local2 = 0; while (_local2 < ut_ev.getRowDimension()) { ut_ev.set(_local2, time_ev.get(_local13, 0), _local4.get(_local2, (_local13 + 2))); _local2++; }; _local16 = _local5.get((_local13 + 2), 0); _local17 = _local8.get((_local13 + 2), 0); name_ev_r[_local13] = _local6[(_local13 + 2)]; id_ev_r[_local13] = _local7[(_local13 + 2)]; np_ev_r.set(_local13, 0, _local8.get((_local13 + 2), 0)); }; }; }; }; _local18 = 0; _local18 = time_ev.get(_local13, 0); while (_local18 < ((time_ev.get(_local13, 0) + _local17) - 1)) { _local2 = 0; while (_local2 < ut_ev.getRowDimension()) { ut_ev.set(_local2, (_local18 + 1), (_local16 * ut_ev.get(_local2, _local18))); _local2++; }; _local18++; }; _local13++; }; _algorithm.ut_ev = ut_ev; _algorithm.time_ev = time_ev; _algorithm.name_ev = name_ev_r; _algorithm.id_ev = id_ev_r; _algorithm.np_ev = np_ev_r; } private function removeElm(_arg1:Array, _arg2:int):Array{ var _local4:int; var _local3:int; var _local5:Array = new Array((_arg1.length - 1)); _local4 = 0; while (_local4 < (_arg1.length - 1)) { if (_local4 == _arg2){ _local3++; }; _local5[_local4] = _arg1[(_local4 + _local3)]; _local4++; }; return (_local5); } private function cumsum(_arg1:Array):Array{ var _local3:int; var _local4:int; var _local5:int; var _local2:Array = new Array(_arg1.length); var _local6:int = _arg1.length; _local3 = 0; while (_local3 < _local6) { _local5 = 0; _local4 = 0; while (_local4 <= _local3) { _local5 = (_local5 + _arg1[_local4]); _local4++; }; _local2[_local3] = _local5; _local3++; }; return (_local2); } } }//package eu.ecb.economia.data.algorithm
Section 77
//AlgorithmFeedback (eu.ecb.economia.data.algorithm.AlgorithmFeedback) package eu.ecb.economia.data.algorithm { import flash.events.*; public class AlgorithmFeedback extends EventDispatcher { private var col:int; public var idents:Array; public var headl_2:int; private var Mat_y_ch:Array; private var c_ev:int; private var i_max:Number; private var m_min:Array; private var Mat_ev:Array; private var m_max:Array; private var int_i_col:Array; private var Mat_m_ch:Array; private var un:RealMatrix; private var int_u:Array; private var ident_pi:int; private var has_event:int; private var Mat_u:Array; private var x_obs:RealMatrix; public var headl_1:int; private var event_max:Number; private var int_y_ch:Array; private var int_m_ch:Array; private var int_pi:Array; private var sp_thres:RealMatrix; public var headl_3:int; private var press:XML; private var proj_ev:int; private var T:int; private var id_ev:Array; public var feed_1:int; private var Mat_pi:Array; private var row:int; private var np_ev:RealMatrix; private var ident_y_ch:int; private var time_ev:RealMatrix; private var team:XML; private var ident_m_ch:int; private var _math:Object; private var ident_i:int; private var ident_u:int; public var RANDs:Array; private var ident_ev:int; private var Mat_int:Array; public var feed_2:int; private var t:int; private var _algorithm:GameAlgorithm; private var T_fdb:int; private var int_i_row:Array; private var i_min:Number; public function AlgorithmFeedback(_arg1:GameAlgorithm){ _math = Math; RANDs = []; super(); _algorithm = _arg1; T = _algorithm.T; x_obs = _algorithm.x_obs; un = _algorithm.un; t = _algorithm.t; Mat_pi = _algorithm.Mat_pi; Mat_m_ch = _algorithm.Mat_m_ch; Mat_y_ch = _algorithm.Mat_y_ch; Mat_u = _algorithm.Mat_u; Mat_int = _algorithm.Mat_int; Mat_ev = _algorithm.Mat_ev; event_max = _algorithm.event_max; sp_thres = _algorithm.sp_thres; i_min = _algorithm.i_min; i_max = _algorithm.i_max; m_min = _algorithm.m_min; m_max = _algorithm.m_max; int_pi = _algorithm.int_pi; int_m_ch = _algorithm.int_m_ch; int_y_ch = _algorithm.int_y_ch; int_i_col = _algorithm.int_i_col; int_i_row = _algorithm.int_i_row; int_u = _algorithm.int_u; T_fdb = _algorithm.T_fdb; time_ev = _algorithm.time_ev; np_ev = _algorithm.np_ev; id_ev = _algorithm.id_ev; team = _algorithm.team; press = _algorithm.press; } public function calculateFeedback():void{ var x:int; var y:int; var state_prob:Number; _algorithm.NewsPaperMessages = []; _algorithm.MemberMessages = []; t = _algorithm.t; c_ev = _algorithm.c_ev; proj_ev = _algorithm.proj_ev; has_event = _algorithm.has_event; RANDs = []; if (has_event == 1){ ident_ev = Mat_ev[(id_ev[c_ev] - 1)][(t - time_ev.get(c_ev, 0))]; } else { ident_ev = 2001; }; x = 0; while (x < int_pi.length) { if ((((x_obs.get(0, (t - T_fdb)) >= int_pi[x])) && ((x_obs.get(0, (t - T_fdb)) < int_pi[(x + 1)])))){ row = x; }; if ((((x_obs.get(0, t) >= int_pi[x])) && ((x_obs.get(0, t) < int_pi[(x + 1)])))){ col = x; }; x = (x + 1); }; ident_pi = Mat_pi[row][col]; x = 0; while (x < int_i_row.length) { if ((((x_obs.get(4, (t - T_fdb)) >= int_i_row[x])) && ((x_obs.get(4, (t - T_fdb)) <= int_i_row[(x + 1)])))){ row = x; break; }; x = (x + 1); }; x = 0; while (x < int_i_col.length) { if (((((x_obs.get(4, t) - x_obs.get(4, (t - T_fdb))) > int_i_col[x])) && (((x_obs.get(4, t) - x_obs.get(4, (t - T_fdb))) <= int_i_col[(x + 1)])))){ col = x; break; }; x = (x + 1); }; ident_i = Mat_int[row][col]; x = 0; while (x < int_m_ch.length) { if ((((x_obs.get(2, (t - T_fdb)) >= int_m_ch[x])) && ((x_obs.get(2, (t - T_fdb)) < int_m_ch[(x + 1)])))){ row = x; }; if ((((x_obs.get(2, t) >= int_m_ch[x])) && ((x_obs.get(2, t) < int_m_ch[(x + 1)])))){ col = x; }; x = (x + 1); }; ident_m_ch = Mat_m_ch[row][col]; x = 0; while (x < int_y_ch.length) { if ((((x_obs.get(1, (t - T_fdb)) >= int_y_ch[x])) && ((x_obs.get(1, (t - T_fdb)) < int_y_ch[(x + 1)])))){ row = x; }; if ((((x_obs.get(1, t) >= int_y_ch[x])) && ((x_obs.get(1, t) < int_y_ch[(x + 1)])))){ col = x; }; x = (x + 1); }; ident_y_ch = Mat_y_ch[row][col]; x = 0; while (x < int_u.length) { if (un.get(0, (t - T_fdb)) < int_u[0]){ row = 0; } else { if ((((un.get(0, (t - T_fdb)) >= int_u[x])) && ((un.get(0, (t - T_fdb)) < int_u[(x + 1)])))){ row = x; }; }; if (un.get(0, t) < int_u[0]){ col = 0; } else { if ((((un.get(0, t) >= int_u[x])) && ((un.get(0, t) < int_u[(x + 1)])))){ col = x; }; }; x = (x + 1); }; ident_u = Mat_u[row][col]; idents = [ident_pi, ident_u, ident_m_ch, ident_y_ch, ident_i, ident_ev]; idents.sort(function (_arg1, _arg2){ return ((_arg1 - _arg2)); }); x = 0; var w:int; var feedb_Array:Array = sp_thres.getMatrix(0, 0, 0, (sp_thres.getColumnDimension() - 1)).getArray()[0]; var headl_Array:Array = sp_thres.getMatrix(1, 1, 0, (sp_thres.getColumnDimension() - 1)).getArray()[0]; if (idents[0] <= event_max){ feed_1 = idents[0]; } else { while (x == 0) { state_prob = _math.random(); y = 1; while (y < 6) { if ((((sum(feedb_Array, 0, (y - 1)) < state_prob)) && ((state_prob <= sum(feedb_Array, 0, y))))){ feed_1 = idents[(y - 1)]; }; y = (y + 1); }; if ((((feed_1 < i_min)) || ((feed_1 > i_max)))){ x = 1; }; }; }; w = 0; while (w == 0) { x = 0; while (x == 0) { state_prob = _math.random(); y = 1; while (y < 6) { if ((((sum(feedb_Array, 0, (y - 1)) < state_prob)) && ((state_prob <= sum(feedb_Array, 0, y))))){ feed_2 = idents[(y - 1)]; }; y = (y + 1); }; if ((((feed_2 < i_min)) || ((feed_2 > i_max)))){ x = 1; }; }; if (feed_2 !== feed_1){ w = 1; }; }; x = 0; if (idents[0] <= event_max){ headl_1 = idents[0]; } else { while (x == 0) { state_prob = _math.random(); y = 1; while (y < 6) { if ((((sum(headl_Array, 0, (y - 1)) < state_prob)) && ((state_prob <= sum(headl_Array, 0, y))))){ headl_1 = idents[(y - 1)]; }; y = (y + 1); }; if ((((((((headl_1 < m_min[0])) || ((headl_1 > m_max[0])))) && ((((headl_1 < m_min[1])) || ((headl_1 > m_max[1])))))) && ((((headl_1 < m_min[2])) || ((headl_1 > m_max[2])))))){ x = 1; }; }; }; w = 0; while (w == 0) { x = 0; while (x == 0) { state_prob = _math.random(); y = 1; while (y < 6) { if ((((sum(headl_Array, 0, (y - 1)) < state_prob)) && ((state_prob <= sum(headl_Array, 0, y))))){ headl_2 = idents[(y - 1)]; }; y = (y + 1); }; if ((((((((headl_2 < m_min[0])) || ((headl_2 > m_max[0])))) && ((((headl_2 < m_min[1])) || ((headl_2 > m_max[1])))))) && ((((headl_2 < m_min[2])) || ((headl_2 > m_max[2])))))){ x = 1; }; }; if (headl_2 !== headl_1){ w = 1; }; }; w = 0; while (w == 0) { x = 0; while (x == 0) { state_prob = _math.random(); y = 1; while (y < 6) { if ((((sum(headl_Array, 0, (y - 1)) < state_prob)) && ((state_prob <= sum(headl_Array, 0, y))))){ headl_3 = idents[(y - 1)]; }; y = (y + 1); }; if ((((((((headl_3 < m_min[0])) || ((headl_3 > m_max[0])))) && ((((headl_3 < m_min[1])) || ((headl_3 > m_max[1])))))) && ((((headl_3 < m_min[2])) || ((headl_3 > m_max[2])))))){ x = 1; }; }; if (((!((headl_3 === headl_1))) && (!((headl_3 === headl_2))))){ w = 1; }; }; calcMemberMessage(feed_1); calcMemberMessage(feed_2); calcNewsPaperMessage(headl_1, 1); calcNewsPaperMessage(headl_2, 1); calcNewsPaperMessage(headl_3, 2); } private function sum(_arg1:Array, _arg2:int, _arg3:int):Number{ var _local4:int; var _local5:Number = 0; while (_arg2 < _arg3) { _local5 = (_local5 + _arg1[_arg2]); _arg2++; }; return (_local5); } private function calcNewsPaperMessage(_arg1:int, _arg2:int):void{ var _local3:int; var _local4:int; var _local5:int; var _local6:int; var _local7:XML; if (press === null){ return; }; var _local8:int = press.papers.length(); _local3 = 0; while (_local3 < _local8) { if (press.papers[_local3].@id == _arg1){ _local6 = 0; _local7 = press.papers[_local3]; _local5 = parseInt(String(((_math.random() * _local7.children().length()) - 1)), 10); while ((((((((typeof(_local7.paper[_local5]) == "undefined")) || ((_local7.paper[_local5].length() == 0)))) || (!((_local7.paper[_local5].attribute("type") == _arg2))))) && ((_local6 < 10)))) { _local5 = parseInt(String(((_math.random() * _local7.children().length()) - 1)), 10); _local6++; }; if (_local6 === 10){ _local4 = 0; while (_local4 < _local7.children().length()) { if (_local7.paper[_local4].attribute("type") == _arg2){ _local5 = _local4; }; _local4++; }; }; if (((!((_local7 == null))) && (_local7.paper[_local5]))){ RANDs.push(((((("NewsPaper: ID - " + _local7.paper[_local5].@id) + " type - ") + _local7.paper[_local5].attribute("type")) + " RAND - ") + _local5)); _algorithm.NewsPaperMessages.push(_local7.paper[_local5]); break; } else { calcNewsPaperMessage(_arg1, ((_arg2)===1) ? 2 : 1); break; }; }; _local3++; }; } private function calcMemberMessage(_arg1:int):void{ var _local2:int; var _local3:int; var _local4:int; var _local5:XML; var _local7:int; if (team === null){ return; }; var _local6:int = team.messages.length(); _local2 = 0; while (_local2 < _local6) { if (team.messages[_local2].@id == _arg1){ _local3 = 0; _local5 = team.messages[_local2]; _local4 = parseInt(String((_math.random() * _local5.children().length())), 10); while ((((((((typeof(_local5.member[_local4]) == "undefined")) || ((_local5.member[_local4].length() == 0)))) || (((!((_algorithm.MemberMessages.length === 0))) && ((_algorithm.MemberMessages[0].attribute("id") == _local5.member[_local4].attribute("id"))))))) && ((_local3 < 20)))) { _local4 = parseInt(String((_math.random() * _local5.children().length())), 10); _local3++; }; if (((!((_local5 == null))) && (_local5.member[_local4]))){ RANDs.push(((("Member: ID - " + _local5.member[_local4].@id) + " RAND - ") + _local4)); _algorithm.MemberMessages.push(_local5.member[_local4]); break; }; }; _local2++; }; } } }//package eu.ecb.economia.data.algorithm
Section 78
//AlgorithmPerformance (eu.ecb.economia.data.algorithm.AlgorithmPerformance) package eu.ecb.economia.data.algorithm { public class AlgorithmPerformance { public var pi_std_overall:Number; private var pi_av_win:int; private var b_w:Number; public var star_one:int; public var pi_av_ind_overall:Number; public var P_tot:Array; private var b1:Number; private var b2:Number; private var b3:Number; private var b4:Number; private var perform_text_pi_e:int; private var b6:Number; private var pi_test:Number; private var a_w:Number; private var b5:Number; private var pi:RealMatrix; private var bonus:int; public var getcup:int; private var Pi_av:RealMatrix; public var amountAwards:int; private var c2:Number; private var c1:Number; public var P_ind_pic:Array; private var c3:Number; public var pi_av:Number; private var points_all:Array; public var pi_av_overall:Number; public var game_exit:int; public var perform_text_pi_std:int; public var F1_ind:Number; private var S:int; private var T:int; public var P:Array; public var W2_ind:Number; private var T1:Array; private var T3:Array; private var T2:Array; private var perf_checker:int; public var perform_text_pi:int; private var perform_no:RealMatrix; private var pi_perf:RealMatrix; private var P_ind:Array; public var star_three:int; private var t:int; private var bonus_all:Array; private var pi_std_star:Number; public var pi_std_ind:Number; public var pi_std_ind_overall:Number; private var b_up:Number; private var c_w:Number; private var perform_no_pic:RealMatrix; public var F1:Number; public var F2:Number; public var gotlastPerformance:Boolean; private var pi_av_thres:Array; private var x_obs:RealMatrix; public var W1:Number; public var W2:Number; private var pi_std_thres:Array; public var F2_ind:Number; private var pi_star:Number; private var pi_av_calc:int; public var pi_av_ind:Number; public var pi_std:Number; public var star_two:int; public var W1_ind:Number; private var points:int; private var _math:Object; private var a1:Number; private var a2:Number; public var perform_headline:int; private var a4:Number; private var a5:Number; private var bonus_check:Array; private var a3:Number; public var star_four:int; private var a6:Number; private var b_low:Number; private var _algorithm:GameAlgorithm; public function AlgorithmPerformance(_arg1:GameAlgorithm){ var _local2:int; _math = Math; super(); _algorithm = _arg1; S = _algorithm.w_up; pi_star = _algorithm.pi_star; P = _algorithm.P; P_ind = _algorithm.P_ind; P_ind_pic = _algorithm.P_ind_pic; P_tot = _algorithm.P_tot; T = _algorithm.T; bonus_check = _algorithm.bonus_check; star_one = _algorithm.star_one; star_two = _algorithm.star_two; star_three = _algorithm.star_three; star_four = _algorithm.star_four; perform_headline = _algorithm.perform_headline; perform_text_pi = _algorithm.perform_text_pi; perform_text_pi_std = _algorithm.perform_text_pi_std; perform_text_pi_e = _algorithm.perform_text_pi_e; getcup = _algorithm.getcup; game_exit = _algorithm.game_exit; pi_av_calc = _algorithm.pi_av_calc; pi_av_win = _algorithm.pi_av_win; b_low = _algorithm.b_low; b_up = _algorithm.b_up; pi_std_star = _algorithm.pi_std_star; a1 = _algorithm.a1; a2 = _algorithm.a2; a3 = _algorithm.a3; a4 = _algorithm.a4; a5 = _algorithm.a5; a6 = _algorithm.a6; b1 = _algorithm.b1; b2 = _algorithm.b2; b3 = _algorithm.b3; b4 = _algorithm.b4; b5 = _algorithm.b5; b6 = _algorithm.b6; c1 = _algorithm.c1; c2 = _algorithm.c2; c3 = _algorithm.c3; a_w = _algorithm.a_w; b_w = _algorithm.b_w; c_w = _algorithm.c_w; W1 = _algorithm.W1; W2 = _algorithm.W2; T1 = _algorithm.T1; T2 = _algorithm.T2; T3 = _algorithm.T3; perform_no = _algorithm.perform_no; perform_no_pic = _algorithm.perform_no_pic; pi_test = _algorithm.pi_test; points_all = _algorithm.points_all; bonus_all = _algorithm.bonus_all; pi_av_thres = _algorithm.pi_av_thres; pi_std_thres = _algorithm.pi_std_thres; perf_checker = _algorithm.perf_checker; gotlastPerformance = false; W1_ind = _algorithm.W1; W2_ind = _algorithm.W2; Pi_av = new RealMatrix(1, T, 0); _local2 = 0; while (_local2 < P_tot.length) { P_tot[_local2] = 0; _local2++; }; _local2 = 0; while (_local2 < bonus_check.length) { bonus_check[_local2] = 0; _local2++; }; } public function calculate():void{ var _local2:int; var _local3:int; x_obs = _algorithm.x_obs; t = _algorithm.t; var _local1 = ((((t - S) + 1) % 8) == 0); pi = x_obs.getMatrix(0, 0, 0, (x_obs.getColumnDimension() - 1)).transpose(); pi = pi.times(0.01); if (perf_checker == 1){ pi = new RealMatrix(T, 1, pi_test); }; pi_perf = RealMatrix.constructWithCopy(pi.getArray()); if ((((t >= (S - 1))) && ((t < (S + 7))))){ _local2 = (t - 7); while (_local2 < (S + 1)) { pi_perf.set(_local2, 0, pi_star); _local2++; }; }; if ((((t >= S)) && ((t < (S + 8))))){ points = points_all[0]; bonus = bonus_all[0]; } else { if ((((t >= (S + 8))) && ((t < (S + (2 * 8)))))){ points = points_all[1]; bonus = bonus_all[1]; } else { if ((((t >= (S + (2 * 8)))) && ((t < (S + (3 * 8)))))){ points = points_all[2]; bonus = bonus_all[2]; } else { if ((((t >= (S + (3 * 8)))) && ((t < (S + (4 * 8)))))){ points = points_all[3]; bonus = bonus_all[3]; }; }; }; }; pi_av = 0; pi_std = 0; pi_av_ind = 0; pi_std_ind = 0; if (pi_av_calc == 1){ _local2 = ((t - S) + 1); while (_local2--) { pi_av = (pi_av + pi_perf.get((t - _local2), 0)); pi_av_ind = (pi_av_ind + pi.get((t - _local2), 0)); }; if (((t - S) + 1) === 0){ pi_av = pi_star; pi_av_ind = pi.get(0, 0); } else { pi_av = (pi_av / ((t - S) + 1)); pi_av_ind = (pi_av_ind / ((t - S) + 1)); }; Pi_av.set(0, t, pi_av); _local2 = ((t - S) + 1); while (_local2--) { pi_std = (pi_std + _math.pow((pi_perf.get((t - _local2), 0) - pi_av), 2)); pi_std_ind = (pi_std_ind + _math.pow((pi.get((t - _local2), 0) - pi_av_ind), 2)); }; if (((t - S) + 1) === 0){ pi_std = 0; pi_std_ind = 0; } else { pi_std = (pi_std / ((t - S) + 1)); pi_std_ind = (pi_std_ind / ((t - S) + 1)); }; pi_std = _math.sqrt(pi_std); pi_std_ind = _math.sqrt(pi_std_ind); } else { _local2 = pi_av_win; while (_local2--) { pi_av = (pi_av + pi_perf.get((t - _local2), 0)); pi_av_ind = (pi_av_ind + pi.get((t - _local2), 0)); }; pi_av = (pi_av / pi_av_win); pi_av_ind = (pi_av_ind / pi_av_win); Pi_av.set(0, t, pi_av); _local2 = pi_av_win; while (_local2--) { pi_std = (pi_std + _math.pow((pi_perf.get((t - _local2), 0) - pi_av), 2)); pi_std_ind = (pi_std_ind + _math.pow((pi.get((t - _local2), 0) - pi_av_ind), 2)); }; pi_std = (pi_std / pi_av_win); pi_std_ind = (pi_std_ind / pi_av_win); pi_std = _math.sqrt(pi_std); pi_std_ind = _math.sqrt(pi_std_ind); }; if (gotlastPerformance){ pi_av_overall = 0; pi_av_ind_overall = 0; pi_std_overall = 0; pi_std_ind_overall = 0; _local2 = 32; while (_local2--) { pi_av_overall = (pi_av_overall + pi_perf.get((t - _local2), 0)); pi_av_ind_overall = (pi_av_ind_overall + pi.get((t - _local2), 0)); }; pi_av_overall = (pi_av_overall / 32); pi_av_ind_overall = (pi_av_ind_overall / 32); _local2 = 32; while (_local2--) { pi_std_overall = (pi_std_overall + _math.pow((pi_perf.get((t - _local2), 0) - pi_av_overall), 2)); pi_std_ind_overall = (pi_std_ind_overall + _math.pow((pi.get((t - _local2), 0) - pi_av_ind_overall), 2)); }; pi_std_overall = (pi_std_overall / 32); pi_std_ind_overall = (pi_std_ind_overall / 32); pi_std_overall = _math.sqrt(pi_std_overall); pi_std_ind_overall = _math.sqrt(pi_std_ind_overall); pi_av = pi_av_overall; pi_std = pi_std_overall; pi_av_ind = pi_av_ind_overall; pi_std_ind = pi_std_ind_overall; }; W2 = (_algorithm.W2 + (a_w * _math.exp((b_w * _math.exp(((c_w * pi_std) * 100)))))); W2_ind = (_algorithm.W2 + (a_w * _math.exp((b_w * _math.exp(((c_w * pi_std_ind) * 100)))))); W1 = (1 - W2); W1_ind = (1 - W2_ind); if ((((b_low < (pi_av - pi_star))) && (((pi_av - pi_star) <= b_up)))){ F1 = 1; } else { if ((pi_av - pi_star) <= b_low){ F1 = (1 / (((1 + (a1 * _math.pow(_math.abs((pi_av - pi_star)), b1))) + (a2 * _math.pow(_math.abs((pi_av - pi_star)), b2))) * c1)); } else { if ((pi_av - pi_star) > b_up){ F1 = (1 / (((1 + (a3 * _math.pow(_math.abs((pi_av - pi_star)), b3))) + (a4 * _math.pow(_math.abs((pi_av - pi_star)), b4))) * c2)); }; }; }; if (pi_std <= pi_std_star){ F2 = 1; } else { if (pi_std > pi_std_star){ F2 = (1 / (((1 + (a5 * _math.pow(_math.abs(pi_std), b5))) + (a6 * _math.pow(_math.abs(pi_std), b6))) * c3)); }; }; if ((((b_low < (pi_av_ind - pi_star))) && (((pi_av_ind - pi_star) <= b_up)))){ F1_ind = 1; } else { if ((pi_av_ind - pi_star) <= b_low){ F1_ind = (1 / (((1 + (a1 * _math.pow(_math.abs((pi_av_ind - pi_star)), b1))) + (a2 * _math.pow(_math.abs((pi_av_ind - pi_star)), b2))) * c1)); } else { if ((pi_av_ind - pi_star) > b_up){ F1_ind = (1 / (((1 + (a3 * _math.pow(_math.abs((pi_av_ind - pi_star)), b3))) + (a4 * _math.pow(_math.abs((pi_av_ind - pi_star)), b4))) * c2)); }; }; }; if (pi_std_ind <= pi_std_star){ F2_ind = 1; } else { if (pi_std_ind > pi_std_star){ F2_ind = (1 / (((1 + (a5 * _math.pow(_math.abs(pi_std_ind), b5))) + (a6 * _math.pow(_math.abs(pi_std_ind), b6))) * c3)); }; }; if (_local1){ if ((((((((pi_av > T1[1])) && ((pi_av <= T1[2])))) && ((pi_std <= T2[1])))) || ((((((pi_av > T1[0])) && ((pi_av <= T1[3])))) && ((pi_std <= T2[0])))))){ bonus_check[t] = 1; amountAwards = ((((t == ((S + 8) - 1))) && (!(gotlastPerformance)))) ? (amountAwards + 1) : amountAwards; amountAwards = ((((t == ((S + (2 * 8)) - 1))) && (!(gotlastPerformance)))) ? (amountAwards + 1) : amountAwards; amountAwards = ((((t == ((S + (3 * 8)) - 1))) && (!(gotlastPerformance)))) ? (amountAwards + 1) : amountAwards; amountAwards = ((((t == ((S + (4 * 8)) - 1))) && (!(gotlastPerformance)))) ? (amountAwards + 1) : amountAwards; if (t == ((S + 8) - 1)){ star_one = 1; } else { if (t == ((S + (2 * 8)) - 1)){ star_two = 1; } else { if (t == ((S + (3 * 8)) - 1)){ star_three = 1; } else { if (t == ((S + (4 * 8)) - 1)){ star_four = 1; }; }; }; }; }; }; if (t == (S - 1)){ P[t] = 0; } else { P[t] = (parseInt(String((((W1 * F1) + (W2 * F2)) * points)), 10) + (bonus * bonus_check[t])); }; P_tot[t] = (P_tot[(t - 1)] + P[t]); if (pi_av_ind <= pi_av_thres[0]){ perform_text_pi = 1; } else { if ((((pi_av_ind <= pi_av_thres[1])) && ((pi_av_ind > pi_av_thres[0])))){ perform_text_pi = 2; } else { if ((((pi_av_ind <= pi_av_thres[2])) && ((pi_av_ind > pi_av_thres[1])))){ perform_text_pi = 3; } else { if ((((pi_av_ind <= pi_av_thres[3])) && ((pi_av_ind > pi_av_thres[2])))){ perform_text_pi = 4; } else { if ((((pi_av_ind <= pi_av_thres[4])) && ((pi_av_ind > pi_av_thres[3])))){ perform_text_pi = 5; } else { if ((((pi_av_ind <= pi_av_thres[5])) && ((pi_av_ind > pi_av_thres[4])))){ perform_text_pi = 6; } else { if ((((pi_av_ind <= pi_av_thres[6])) && ((pi_av_ind > pi_av_thres[5])))){ perform_text_pi = 7; } else { if ((((pi_av_ind <= pi_av_thres[7])) && ((pi_av_ind > pi_av_thres[6])))){ perform_text_pi = 8; } else { if ((((pi_av_ind <= pi_av_thres[8])) && ((pi_av_ind > pi_av_thres[7])))){ perform_text_pi = 9; } else { if ((((pi_av_ind <= pi_av_thres[9])) && ((pi_av_ind > pi_av_thres[8])))){ perform_text_pi = 10; } else { if ((((pi_av_ind <= pi_av_thres[10])) && ((pi_av_ind > pi_av_thres[9])))){ perform_text_pi = 11; } else { if ((((pi_av_ind <= pi_av_thres[11])) && ((pi_av_ind > pi_av_thres[10])))){ perform_text_pi = 12; } else { if (pi_av_ind > pi_av_thres[11]){ perform_text_pi = 13; }; }; }; }; }; }; }; }; }; }; }; }; }; if (pi_std_ind <= pi_std_thres[0]){ perform_text_pi_std = 1; } else { if ((((pi_std_ind > pi_std_thres[0])) && ((pi_std_ind <= pi_std_thres[1])))){ perform_text_pi_std = 2; } else { if ((((pi_std_ind > pi_std_thres[1])) && ((pi_std_ind <= pi_std_thres[2])))){ perform_text_pi_std = 3; } else { if ((((pi_std_ind > pi_std_thres[2])) && ((pi_std_ind <= pi_std_thres[3])))){ perform_text_pi_std = 4; } else { if ((((pi_std_ind > pi_std_thres[3])) && ((pi_std_ind <= pi_std_thres[4])))){ perform_text_pi_std = 5; } else { if ((((pi_std_ind > pi_std_thres[4])) && ((pi_std_ind <= pi_std_thres[5])))){ perform_text_pi_std = 6; } else { if (pi_std_ind > pi_std_thres[5]){ perform_text_pi_std = 7; }; }; }; }; }; }; }; perform_headline = perform_no.get((perform_text_pi - 1), (perform_text_pi_std - 1)); P_ind_pic[t] = perform_no_pic.get((perform_text_pi - 1), (perform_text_pi_std - 1)); if ((((t == (T - 1))) && (gotlastPerformance))){ if (amountAwards == 4){ getcup = 1; perform_headline = 6; } else { if (amountAwards == 3){ getcup = 0; perform_headline = 7; } else { if (amountAwards == 2){ getcup = 0; perform_headline = 8; } else { if (amountAwards == 1){ getcup = 0; perform_headline = 9; } else { getcup = 0; perform_headline = 10; }; }; }; }; }; if ((((t == (T - 1))) && (!(gotlastPerformance)))){ gotlastPerformance = true; }; if ((((((((((((Pi_av.get(0, t) <= T3[0])) || ((Pi_av.get(0, t) >= T3[1])))) && ((((Pi_av.get(0, (t - 1)) <= T3[0])) || ((Pi_av.get(0, (t - 1)) >= T3[1])))))) && ((((Pi_av.get(0, (t - 2)) <= T3[0])) || ((Pi_av.get(0, (t - 2)) >= T3[1])))))) && ((((Pi_av.get(0, (t - 3)) <= T3[0])) || ((Pi_av.get(0, (t - 3)) >= T3[1])))))) && ((((Pi_av.get(0, (t - 4)) <= T3[0])) || ((Pi_av.get(0, (t - 4)) >= T3[1])))))){ game_exit = ((pi_av)>0) ? 1 : 0; perform_headline = ((pi_av)>0) ? 11 : 12; }; } } }//package eu.ecb.economia.data.algorithm
Section 79
//AlgorithmProjections (eu.ecb.economia.data.algorithm.AlgorithmProjections) package eu.ecb.economia.data.algorithm { public class AlgorithmProjections { private var sd_proj:RealMatrix; public var x_proj_obs:RealMatrix; private var D_ex:RealMatrix; public var dy_obs_de:RealMatrix; private var n_ci_v:int; private var inf_ss:Number; private var initialcalc:Boolean; public var inf_lb:RealMatrix; public var inf_m:RealMatrix; public var inf_hb:RealMatrix; private var inf_obs:RealMatrix; private var covy_yt_1:RealMatrix; private var B_S:RealMatrix; public var eps:RealMatrix; public var inf_diff:Array; private var prod_growth:Number; private var n_bf:int; private var x_obs:RealMatrix; public var inf_obs_de:RealMatrix; private var n_simul_proj:int; private var A:RealMatrix; private var B:RealMatrix; private var C:RealMatrix; private var D:RealMatrix; private var ann_val:int; private var nr:int; public var sd_proj_obs:RealMatrix; public var dy_m:RealMatrix; private var proj_ev:int; private var np_ev:Number; private var dy_obs:RealMatrix; private var rho_exp:int; private var coll_var:RealMatrix; private var ci_v:Array; public var eps_ev:RealMatrix; private var ci_l:Number; public var dy_hb:RealMatrix; private var _math:Object; private var T_proj:int; private var n_obs_proj:int; public var dy_diff:Array; private var _algorithm:GameAlgorithm; private var name_var_proj_obs:Array; public var dy_lb:RealMatrix; public var ci_proj_b:Number; private var pm:ParkMiller; private var per_val:int; public function AlgorithmProjections(_arg1:GameAlgorithm){ _math = Math; super(); _algorithm = _arg1; this.A = _algorithm.A; this.B = _algorithm.B; this.C = _algorithm.C; this.D = _algorithm.D; this.D_ex = _algorithm.D_ex; this.proj_ev = _algorithm.proj_ev; this.np_ev = _algorithm.np_ev.get(_algorithm.c_ev, 0); this.nr = _algorithm.nr; this.T_proj = _algorithm.T_proj; this.n_bf = _algorithm.n_bf; this.inf_ss = _algorithm.inf_ss; this.n_simul_proj = _algorithm.n_simul_proj; this.ann_val = _algorithm.ann_val; this.per_val = _algorithm.per_val; this.prod_growth = _algorithm.prod_growth; this.ci_l = _algorithm.ci_l; this.ci_v = _algorithm.ci_v; this.n_ci_v = _algorithm.n_ci_v; this.n_obs_proj = _algorithm.n_obs_proj; this.name_var_proj_obs = _algorithm.name_var_proj_obs; this.rho_exp = _algorithm.rho_exp; pm = _algorithm.pm; eps = new RealMatrix(nr, T_proj, 0); sd_proj = new RealMatrix(nr, T_proj, 0); covy_yt_1 = new RealMatrix(1, T_proj, 0); x_proj_obs = new RealMatrix(2, (T_proj + 1), 0); ci_proj_b = _algorithm.ci_proj_b; initialcalc = false; inf_obs = new RealMatrix(2, T_proj); dy_obs = new RealMatrix(2, T_proj); } public function calc(_arg1:RealMatrix, _arg2:Number, _arg3:RealMatrix, _arg4:RealMatrix, _arg5:Boolean):void{ var _local6:int; var _local7:int; var _local8:int; var _local9:RealMatrix; var _local11:RealMatrix; var _local12:RealMatrix; var _local13:RealMatrix; var _local14:RealMatrix; var _local15:RealMatrix; inf_diff = []; dy_diff = []; this.A = _algorithm.A; this.B = _algorithm.B; this.C = _algorithm.C; this.D = _algorithm.D; this.D_ex = _algorithm.D_ex; this.x_obs = _algorithm.x_obs.getMatrix(0, (_algorithm.x_obs.getRowDimension() - 1), (_algorithm.t - _algorithm.n_bf), (_algorithm.t - 1)); this.eps_ev = _arg3; this.proj_ev = _algorithm.proj_ev; var _local10:RealMatrix = new RealMatrix(nr, (((T_proj + 1) - np_ev) + eps_ev.getColumnDimension()), 0); sd_proj_obs = new RealMatrix(2, T_proj, 0); B_S = RealMatrix.identity(nr, nr); coll_var = new RealMatrix(nr, nr, 0); _local6 = 0; while (_local6 < eps_ev.getRowDimension()) { _local7 = 0; while (_local7 < eps_ev.getColumnDimension()) { _local10.set(_local6, _local7, eps_ev.get(_local6, _local7)); _local7++; }; _local6++; }; eps_ev = _local10; if (!initialcalc){ _local7 = 0; while (_local7 < T_proj) { _local9 = B_S.timesMatrix(D); _local9 = B_S.timesMatrix(D).timesMatrix(_local9.transpose()); coll_var = coll_var.plus(_local9); _local6 = 0; while (_local6 < sd_proj.getRowDimension()) { sd_proj.set(_local6, _local7, _math.sqrt(coll_var.get(_local6, _local6))); _local6++; }; B_S = B_S.timesMatrix(B); covy_yt_1.set(0, _local7, coll_var.get(0, 4)); _local7++; }; _local6 = 0; while (_local6 < sd_proj_obs.getColumnDimension()) { sd_proj_obs.set(0, _local6, (sd_proj.get(1, _local6) * ann_val)); sd_proj_obs.set(1, _local6, _math.sqrt((((_math.pow(sd_proj.get(0, _local6), 2) + _math.pow(sd_proj.get(4, _local6), 2)) - (2 * covy_yt_1.get(0, _local6))) * _math.pow(per_val, 2)))); _local6++; }; inf_obs_de = new RealMatrix(2, T_proj); dy_obs_de = new RealMatrix(2, T_proj); _local6 = 0; while (_local6 < T_proj) { inf_obs_de.set(0, _local6, (sd_proj_obs.get(0, _local6) * -(ci_proj_b))); inf_obs_de.set(1, _local6, (sd_proj_obs.get(0, _local6) * ci_proj_b)); dy_obs_de.set(0, _local6, (sd_proj_obs.get(1, _local6) * -(ci_proj_b))); dy_obs_de.set(1, _local6, (sd_proj_obs.get(1, _local6) * ci_proj_b)); _local6++; }; }; var _local16:RealMatrix = new RealMatrix(nr, (T_proj + 1), 0); _local6 = 0; while (_local6 < nr) { _local16.set(_local6, 0, _arg1.get(_local6, (_arg1.getColumnDimension() - 1))); _local6++; }; _local7 = 1; while (_local7 < (T_proj + 1)) { _local12 = B.timesMatrix(_local16.getMatrix(0, (_local16.getRowDimension() - 1), (_local7 - 1), (_local7 - 1))); _local13 = C.times(_arg2); _local14 = D_ex.timesMatrix(_arg4); _local15 = eps_ev.getMatrix(0, (eps_ev.getRowDimension() - 1), _local7, _local7).times(proj_ev); _local11 = A.plus(_local12.plus(_local13.plus(_local14.plus(_local15)))); _arg4.times(rho_exp); _local6 = 0; while (_local6 < _local16.getRowDimension()) { _local16.set(_local6, _local7, _local11.get(_local6, 0)); _local6++; }; _local7++; }; _local16 = _local16.getMatrix(0, (_local16.getRowDimension() - 1), 1, T_proj); _local6 = 0; while (_local6 < _local16.getColumnDimension()) { x_proj_obs.set(0, _local6, ((_local16.get(1, _local6) + inf_ss) * ann_val)); x_proj_obs.set(1, _local6, (((_local16.get(0, _local6) - _local16.get(4, _local6)) + prod_growth) * per_val)); _local6++; }; _local6 = 0; while (_local6 <= T_proj) { inf_obs.set(0, _local6, (x_proj_obs.get(0, _local6) + inf_obs_de.get(0, _local6))); inf_obs.set(1, _local6, (x_proj_obs.get(0, _local6) + inf_obs_de.get(1, _local6))); dy_obs.set(0, _local6, (x_proj_obs.get(1, _local6) + dy_obs_de.get(0, _local6))); dy_obs.set(1, _local6, (x_proj_obs.get(1, _local6) + dy_obs_de.get(1, _local6))); inf_diff.push(_math.abs(inf_obs_de.get(1, _local6))); dy_diff.push(_math.abs(dy_obs_de.get(1, _local6))); _local6++; }; inf_m = new RealMatrix(1, (x_obs.getColumnDimension() + x_proj_obs.getColumnDimension()), 0); dy_m = new RealMatrix(1, (x_obs.getColumnDimension() + x_proj_obs.getColumnDimension()), 0); inf_lb = new RealMatrix(1, (x_obs.getColumnDimension() + inf_obs.getColumnDimension()), 0); inf_hb = new RealMatrix(1, inf_lb.getColumnDimension(), 0); dy_lb = new RealMatrix(1, (x_obs.getColumnDimension() + dy_obs.getColumnDimension()), 0); dy_hb = new RealMatrix(1, dy_lb.getColumnDimension(), 0); _local6 = 0; while (_local6 < x_obs.getColumnDimension()) { inf_m.set(0, _local6, x_obs.get(0, _local6)); inf_lb.set(0, _local6, x_obs.get(0, _local6)); inf_hb.set(0, _local6, x_obs.get(0, _local6)); dy_m.set(0, _local6, x_obs.get(1, _local6)); dy_lb.set(0, _local6, x_obs.get(1, _local6)); dy_hb.set(0, _local6, x_obs.get(1, _local6)); _local6++; }; _local7 = 0; while (_local7 < x_proj_obs.getColumnDimension()) { inf_m.set(0, (_local7 + x_obs.getColumnDimension()), x_proj_obs.get(0, _local7)); dy_m.set(0, (_local7 + x_obs.getColumnDimension()), x_proj_obs.get(1, _local7)); inf_lb.set(0, (_local7 + x_obs.getColumnDimension()), inf_obs.get(0, _local7)); inf_hb.set(0, (_local7 + x_obs.getColumnDimension()), inf_obs.get(1, _local7)); dy_lb.set(0, (_local7 + x_obs.getColumnDimension()), dy_obs.get(0, _local7)); dy_hb.set(0, (_local7 + x_obs.getColumnDimension()), dy_obs.get(1, _local7)); _local7++; }; inf_m = inf_m.getMatrix(0, (inf_m.getRowDimension() - 1), 2, 11); inf_lb = inf_lb.getMatrix(0, (inf_lb.getRowDimension() - 1), 2, 11); inf_hb = inf_hb.getMatrix(0, (inf_hb.getRowDimension() - 1), 2, 11); dy_m = dy_m.getMatrix(0, (dy_m.getRowDimension() - 1), 2, 11); dy_lb = dy_lb.getMatrix(0, (dy_lb.getRowDimension() - 1), 2, 11); dy_hb = dy_hb.getMatrix(0, (dy_hb.getRowDimension() - 1), 2, 11); } } }//package eu.ecb.economia.data.algorithm
Section 80
//GameAlgorithm (eu.ecb.economia.data.algorithm.GameAlgorithm) package eu.ecb.economia.data.algorithm { import flash.events.*; import de.aperto.managers.*; import flash.net.*; import com.gskinner.utils.*; import eu.ecb.economia.utils.*; import com.carlcalderon.arthropod.*; public class GameAlgorithm extends EventDispatcher { private var sv_ev:Number; public var n_ci_v:int; private var CP_Proj:int; public var b2:Number; public var b3:Number; public var b4:Number; private var phi_inf:Number; public var b6:Number; public var b1:Number; public var xml:XML; public var a_w:Number; public var Mat_ev:Array; private var sv_fig:int; public var b5:Number; public var int_u:Array; public var c3:Number; private var int_r:RealMatrix; public var c1:Number; public var c2:Number; private var ut_un:RealMatrix; public var int_y_ch:Array; public var perform_text_pi_e:int; public var A:RealMatrix; public var B:RealMatrix; public var C:RealMatrix; public var D:RealMatrix; public var points_all:Array; public var int_pi:Array; public var np_ev:RealMatrix; public var press:XML; public var T:int; public var P:Array; public var int_i_col:Array; public var P_ind_pic:Array; public var perf_checker:int; public var T_proj:int; public var name_var_proj_obs:Array; public var Mat_int:Array; public var t:int; private var w:Number; private var x:RealMatrix; public var i_max:Number; public var tn_ev:int; public var perform_no_pic:RealMatrix; public var pi_av_thres:Array; public var np_ev_c:RealMatrix; public var int_i_row:Array; public var has_event:int; public var x_obs:RealMatrix; private var th_inf_exp1:int; private var th_inf_exp2:int; private var th_inf_exp3:int; private var th_inf_exp4:int; private var zeta_i:Number; private var sigma_ex1:Number; private var sigma_ex2:Number; private var sigma_ex3:Number; private var sigma_ex4:Number; private var zeta_y:Number; public var proj_ev:int; public var pi_star:Number; private var sigma_y:Number; private var phi1:Number; private var phi2:Number; private var sigma_dm:Number; public var P_tot:Array; public var bonus_check:Array; public var perform_headline:int; public var id_ev_c:Array; private var xss:RealMatrix; public var per_val:int; public var T_fdb:int; private var algoProjection:AlgorithmProjections; private var sigma_exp:Number; public var sc_ev:RealMatrix; public var Mat_m_ch:Array; private var phi_m:Number; private var phi_y:Number; public var Mat_u:Array; public var sp_thres:RealMatrix; public var game_exit:int; private var algoEvents:AlgorithmEvents; private var r_ss:Number; public var deter_ev:int; public var Mat_pi:Array; private var alpha:Number; public var star_three:int; private var rho_e1:Number; private var rho_e2:Number; private var rho_e3:Number; private var rho_e4:Number; private var rho_e5:Number; private var rho_e6:Number; private var rho_e7:Number; private var rho_e8:Number; public var bonus_all:Array; public var i_min:Number; private var epst_ex:RealMatrix; private var F_obs:RealMatrix; public var name_ev_c:Array; private var sc_sd0:Number; private var sc_sd1:Number; private var sc_sd2:Number; private var sc_sd3:Number; private var sc_sd4:Number; private var sc_sd5:Number; private var sc_sd6:Number; private var sc_sd7:Number; private var sc_sd8:Number; private var rho_ex3:Number; private var rho_ex2:Number; private var rho_ex4:Number; private var np_ev1:int; private var np_ev3:int; private var np_ev5:int; private var np_ev6:int; private var np_ev7:int; private var np_ev8:int; private var np_ev2:int; public var Mat_y_ch:Array; private var np_ev4:int; private var rho_ex1:Number; public var n_bf:int; private var nd:int; private var np:int; public var nr:int; private var ns:int; private var un_ss:Number; public var pi_std_thres:Array; private var nobs:int; public var randomSeed:int; public var rho_exp:Number; public var pi_av_win:int; public var b_low:Number; public var ci_proj_b:Number; public var tn_ev_game:int; public var pm:ParkMiller; private var lambda_y:Number; private var gama1:Number; private var gama2:Number; public var x_obs_lim:RealMatrix; private var E_obs:RealMatrix; private var lambda_un:Number; public var c_ev:int; private var av_out_growth:RealMatrix; private var sigma:Number; public var MemberMessages:Array; private var name_var_obs:Array; public var event_max:Number; public var pass_flood:Boolean; public var perform_text_pi_std:int; private var ut_ex:RealMatrix; public var id_ev:Array; public var ut_ev:RealMatrix; public var T1:Array; public var T2:Array; public var T3:Array; private var dataArr:Array; public var pi_std_star:Number; public var team:XML; public var m_max:Array; public var D_ex:RealMatrix; public var un:RealMatrix; private var year_ev1:int; private var year_ev2:int; private var ut:RealMatrix; private var year_ev3:int; private var sc_sd:RealMatrix; private var F_i:RealMatrix; public var W1:Number; public var W2:Number; private var x_proj:RealMatrix; public var NewsPaperMessages:Array; private var sigma_inf:Number; private var v_ss:Number; private var D_e11:Number; private var D_e12:Number; private var D_e13:Number; public var ci_l:Number; public var ci_v:Array; public var star_two:int; public var name_ev:Array; private var D_e21:Number; private var D_e23:Number; private var D_e22:Number; private var sigma_un:Number; private var phi_m1:Number; public var star_four:int; private var algoFeedback:AlgorithmFeedback; private var D_e31:Number; private var D_e32:Number; private var D_e33:Number; public var pi_test:Number; public var star_one:int; private var E_obsi:RealMatrix; private var D_e41:Number; private var D_e43:Number; private var D_e42:Number; private var sc_ev1:Number; private var sc_ev2:Number; private var sc_ev3:Number; private var D_l:Array; public var getcup:int; private var D_e52:Number; private var fdataArr:Array; private var D_e51:Number; private var simul_proj:int; private var D_e53:Number; private var startDate:Object; public var perform_no:RealMatrix; public var w_up:int; private var D_e61:Number; private var D_e62:Number; private var D_e63:Number; public var perform_text_pi:int; public var D_ev_c:RealMatrix; private var np_proj_off:Number; public var time_ev:RealMatrix; public var P_ind:Array; public var m_min:Array; public var inf_ss:Number; private var D_e73:Number; public var onInit:Boolean; private var D_e71:Number; private var D_e72:Number; public var b_up:Number; private var th_inf_exp_lb:int; public var c_w:Number; private var D_e81:Number; private var D_e83:Number; private var D_e82:Number; public var prod_growth:Number; public var n_simul_proj:int; private var F_obsi:RealMatrix; public var ann_val:int; public var int_m_ch:Array; private var lambda:Number; public var pi_av_calc:int; public var rho_ev_c:RealMatrix; private var algoPerformance:AlgorithmPerformance; public var b_w:Number; private var _math:Object; public var un_lim:RealMatrix; public var n_obs_proj:int; public var a1:Number; public var a4:Number; public var a5:Number; public var a6:Number; public var a2:Number; public var a3:Number; public var year_ev:RealMatrix; public function GameAlgorithm(){ xml = XML(XMLManager.Instance.algoSettingsXML); _math = Math; startDate = {quarter:0, year:2010}; super(); __defineMembers(); } private function __getCurrentQuarter(_arg1:int):String{ var _local2:Object = {quarter:startDate.quarter, year:startDate.year}; _local2.quarter = (_local2.quarter + (_arg1 % 4)); _local2.year = (_local2.year + parseInt(String((_arg1 / 4)), 10)); _local2.year = (_local2.year - (w_up % 4)); return (((("0" + _local2.quarter) + "/") + _local2.year)); } public function get amountAwards():int{ return (algoPerformance.amountAwards); } public function currentKeyInterestRate():Number{ return (x_obs.get(4, (t - 1))); } public function set currentPress(_arg1:XML):void{ press = _arg1; } public function calcNextQuarterForecast(_arg1:int=8, _arg2:Number=200, _arg3:Boolean=false):void{ var _local4:String; var _local6:Number; var _local7:RealMatrix; if (_arg1 > T_proj){ _arg1 = T_proj; }; fdataArr = new Array(_arg1); if (t >= w_up){ if (_arg2 == 200){ _local6 = int_r.get(0, (t - 1)); } else { _local6 = ((_arg2 / ann_val) - r_ss); }; _local7 = x.getMatrix(0, (x.getRowDimension() - 1), (t - n_bf), (t - 1)); algoProjection.calc(_local7, _local6, ut_ev.getMatrix(0, (ut_ev.getRowDimension() - 1), (t - 1), (((t - 1) + np_ev.get(c_ev, 0)) - 1)), ut_ex.getMatrix(0, (ut_ex.getRowDimension() - 1), (t - 1), (t - 1)), _arg3); }; var _local5:int; while (_local5 < _arg1) { _local4 = __getCurrentQuarter((t + _local5)); fdataArr[_local5] = [{name:"Key Interest Rate", date:_local4, filterId:0, value:0, fixed:false, current:false, diff:0, render:false}, {name:"Inflation Rate", date:_local4, filterId:1, value:algoProjection.x_proj_obs.get(0, _local5), fixed:false, current:false, diff:algoProjection.inf_diff[_local5], render:true}, {name:"GDP Growth", date:_local4, filterId:2, value:algoProjection.x_proj_obs.get(1, _local5), fixed:false, current:false, diff:algoProjection.dy_diff[_local5], render:true}, {name:"Money Growth", date:_local4, filterId:3, value:0, fixed:false, current:false, diff:0, render:false}, {name:"Unemployment", date:_local4, filterId:4, value:0, fixed:false, current:false, diff:0, render:false}]; _local5++; }; } public function getEvent():int{ if (has_event == 1){ return (id_ev[c_ev]); }; return (-1); } public function init():void{ var _local1:int; var _local2:int; A.set(0, 0, (_math.pow(sigma, -1) * inf_ss)); A.set(1, 0, (lambda * v_ss)); B.set(0, 0, gama1); B.set(0, 1, (_math.pow(sigma, -1) * w)); B.set(0, 4, gama2); B.set(1, 1, (((alpha * w) + 1) - alpha)); B.set(1, 2, ((1 - alpha) + lambda)); B.set(1, 3, (alpha - 1)); B.set(2, 0, (phi2 * zeta_y)); B.set(2, 2, ((1 + phi1) - phi2)); B.set(2, 3, -(phi1)); B.set(3, 2, 1); B.set(4, 0, 1); C.set(0, 0, _math.pow(-(sigma), -1)); C.set(2, 0, (-(phi2) * zeta_i)); F_i.set(0, 0, phi_y); F_i.set(0, 1, phi_inf); F_i.set(0, 2, phi_m); F_i.set(0, 3, phi_m1); F_i.set(0, 4, phi_y); sc_sd.set(0, 0, sc_sd0); sc_sd.set(0, 1, sc_sd1); sc_sd.set(0, 2, sc_sd2); sc_sd.set(0, 3, sc_sd3); sc_sd.set(0, 4, sc_sd4); sc_sd.set(0, 5, sc_sd5); sc_sd.set(0, 6, sc_sd6); sc_sd.set(0, 7, sc_sd7); sc_sd.set(0, 8, sc_sd8); D.set(0, 0, sigma_y); D.set(1, 1, sigma_inf); D.set(2, 2, sigma_dm); _local1 = sc_sd.getColumnDimension(); while (_local1--) { D_l[_local1] = D.times(sc_sd.get(0, _local1)); }; D = D_l[nd]; E_obs.set(0, 0, (ann_val * inf_ss)); E_obs.set(1, 0, (per_val * prod_growth)); E_obs.set(2, 0, ((ann_val * inf_ss) + (ann_val * prod_growth))); E_obsi.set(4, 0, (ann_val * r_ss)); F_obs.set(0, 1, ann_val); F_obs.set(1, 0, per_val); F_obs.set(1, 4, -(per_val)); F_obs.set(2, 1, ann_val); F_obs.set(2, 2, ann_val); F_obs.set(2, 3, -(ann_val)); F_obs.set(3, 2, 1); F_obsi.set(4, 0, ann_val); D_ex.set(0, 0, _math.pow(sigma, -1)); D_ex.set(1, 0, alpha); year_ev.set(0, 0, year_ev1); year_ev.set(1, 0, year_ev2); year_ev.set(2, 0, year_ev3); D_ev_c.set(0, 0, D_e11); D_ev_c.set(1, 0, D_e12); D_ev_c.set(2, 0, D_e13); D_ev_c.set(0, 1, D_e21); D_ev_c.set(1, 1, D_e22); D_ev_c.set(2, 1, D_e23); D_ev_c.set(0, 2, D_e31); D_ev_c.set(1, 2, D_e32); D_ev_c.set(2, 2, D_e33); D_ev_c.set(0, 3, D_e41); D_ev_c.set(1, 3, D_e42); D_ev_c.set(2, 3, D_e43); D_ev_c.set(0, 4, D_e51); D_ev_c.set(1, 4, D_e52); D_ev_c.set(2, 4, D_e53); D_ev_c.set(0, 5, D_e61); D_ev_c.set(1, 5, D_e62); D_ev_c.set(2, 5, D_e63); D_ev_c.set(0, 6, D_e71); D_ev_c.set(1, 6, D_e72); D_ev_c.set(2, 6, D_e73); D_ev_c.set(0, 7, D_e81); D_ev_c.set(1, 7, D_e82); D_ev_c.set(2, 7, D_e83); rho_ev_c.set(0, 0, rho_e1); rho_ev_c.set(1, 0, rho_e2); rho_ev_c.set(2, 0, rho_e3); rho_ev_c.set(3, 0, rho_e4); rho_ev_c.set(4, 0, rho_e5); rho_ev_c.set(5, 0, rho_e6); rho_ev_c.set(6, 0, rho_e7); rho_ev_c.set(7, 0, rho_e8); np_ev_c.set(0, 0, np_ev1); np_ev_c.set(1, 0, np_ev2); np_ev_c.set(2, 0, np_ev3); np_ev_c.set(3, 0, np_ev4); np_ev_c.set(4, 0, np_ev5); np_ev_c.set(5, 0, np_ev6); np_ev_c.set(6, 0, np_ev7); np_ev_c.set(7, 0, np_ev8); sc_ev.set(0, 0, sc_ev1); sc_ev.set(1, 0, sc_ev2); sc_ev.set(2, 0, sc_ev3); _local1 = 0; while (_local1 < nr) { _local2 = 0; while (_local2 < T) { ut.set(_local1, _local2, pm.standardNormal()); if (_local1 == 0){ ut_un.set(_local1, _local2, (pm.standardNormal() * sigma_un)); epst_ex.set(_local1, _local2, pm.standardNormal()); }; _local2++; }; _local1++; }; if (algoEvents == null){ algoEvents = new AlgorithmEvents(this); }; algoPerformance = new AlgorithmPerformance(this); algoFeedback = new AlgorithmFeedback(this); np_proj_off = ((time_ev.get(c_ev, 0) - 1) + np_ev.get(c_ev, 0)); var _local3:RealMatrix = RealMatrix.identity(nr, nr); var _local4:RealMatrix = new RealMatrix(nr, nr, 0); var _local5:RealMatrix = new RealMatrix(nr, nr, 0); _local1 = 0; while (_local1 < nr) { _local2 = 0; while (_local2 < nr) { _local4.set(_local1, _local2, C.get(_local1, 0)); _local5.set(_local2, _local1, F_i.get(0, _local1)); _local2++; }; _local1++; }; var _local6:RealMatrix = _local5; var _local7:RealMatrix = _local4; _local6 = _local7.times(_local6); _local7 = _local3.minus(B); _local7 = _local7.minus(_local6); _local7 = _local7.inverse(); _local6 = A.plus(C.times(inf_ss)); xss = _local7.timesMatrix(_local6); _local1 = 0; while (_local1 < x.getRowDimension()) { x.set(_local1, 0, xss.get(_local1, 0)); _local1++; }; var _local8:RealMatrix = xss; int_r.set(0, 0, F_i.timesMatrix(_local8).get(0, 0)); var _local9:RealMatrix = new RealMatrix(nr, 1, 1); _local1 = 0; while (_local1 < nr) { _local9.set(_local1, 0, pm.standardNormal()); _local1++; }; _local8 = _local8.plus(D.timesMatrix(_local9)); var _local10:RealMatrix = F_obs.timesMatrix(_local8); var _local11:RealMatrix = F_obsi.times(int_r.get(0, 0)); var _local12:RealMatrix = E_obs.plus(_local10.plus(E_obsi.plus(_local11))); _local1 = 0; while (_local1 < x.getRowDimension()) { x.set(_local1, 0, _local8.get(_local1, 0)); _local1++; }; _local1 = 0; while (_local1 < x_obs.getRowDimension()) { x_obs.set(_local1, 0, _local12.get(_local1, 0)); _local1++; }; _local1 = 0; while (_local1 < un.getRowDimension()) { un.set(_local1, 0, ((un_ss + (lambda_y * x.get(4, 0))) + ut_un.get(_local1, 0))); _local1++; }; algoProjection = new AlgorithmProjections(this); var _local13:String = __getCurrentQuarter(t); dataArr.push([{name:"Key Interest Rate", date:_local13, filterId:0, value:x_obs.get(4, t), fixed:true, current:true, render:true}, {name:"Inflation Rate", date:_local13, filterId:1, value:x_obs.get(0, t), fixed:true, current:true, render:true}, {name:"GDP Growth", date:_local13, filterId:2, value:x_obs.get(1, t), fixed:true, current:true, render:true}, {name:"Money Growth", date:_local13, filterId:3, value:x_obs.get(2, t), fixed:true, current:true, render:true}, {name:"Unemployment", date:_local13, filterId:4, value:un.get(0, t), fixed:true, current:true, render:true}]); t = 1; do { calcNextQuarter(); } while (t < w_up); onInit = true; } public function reset():void{ __defineMembers(); init(); } private function checkForLimitation():void{ var _local1:int; var _local2:int = x_obs.getRowDimension(); var _local3:int; while (_local1 < _local2) { if (x_obs.get(_local1, t) < x_obs_lim.get(_local1, 0)){ x_obs.set(_local1, t, x_obs_lim.get(_local1, 0)); _local3 = 1; } else { if (x_obs.get(_local1, t) > x_obs_lim.get(_local1, 1)){ x_obs.set(_local1, t, x_obs_lim.get(_local1, 1)); _local3 = 1; }; }; _local1++; }; if (un.get(0, t) < un_lim.get(0, 0)){ un.set(0, t, un_lim.get(0, 0)); } else { if (un.get(0, t) > un_lim.get(0, 1)){ un.set(0, t, un_lim.get(0, 1)); }; }; if (_local3 == 1){ x.set(0, t, (((x_obs.get(1, t) - (per_val * prod_growth)) + (per_val * x.get(4, t))) / per_val)); x.set(1, t, ((x_obs.get(0, t) - (ann_val * inf_ss)) / ann_val)); x.set(2, t, (((((x_obs.get(2, t) + (ann_val * x.get(3, t))) - (ann_val * x.get(1, t))) - (ann_val * inf_ss)) - (ann_val * prod_growth)) / ann_val)); }; } public function get OverallPerformance():Object{ t--; algoPerformance.calculate(); return (getPerformance()); } public function getAwardArray():Array{ return ([algoPerformance.star_one, algoPerformance.star_two, algoPerformance.star_three, algoPerformance.star_four]); } public function get economicRawData():Object{ return ({KeyInterestRate:x_obs.get(4, (t - 1)), InflationRate:x_obs.get(0, (t - 1)), GDPGrowth:x_obs.get(1, (t - 1)), MoneyGrowth:x_obs.get(2, (t - 1)), Unemployment:un.get(0, (t - 1))}); } private function transformVarsToString():URLVariables{ var _local1:URLVariables = new URLVariables(); _local1["t"] = t; _local1["kir"] = x_obs.get(4, t); _local1["pi"] = x_obs.get(0, t); _local1["GDP Growth"] = x_obs.get(1, t); _local1["Money Growth"] = x_obs.get(2, t); _local1["un"] = un.get(0, t); _local1["ut_ex"] = ut_ex.toFormattedString(); _local1["ut_ev"] = ut_ev.toFormattedString(); _local1[("x" + t)] = x.getMatrix(0, (x.getRowDimension() - 1), t, t).toFormattedString(); _local1["ut"] = ut.toFormattedString(); if (t == 0){ _local1["epst_ex"] = epst_ex.toFormattedString(); _local1["ut_un"] = ut_un.toFormattedString(); _local1["xss"] = xss.toFormattedString(); _local1["A"] = A.toFormattedString(); _local1["B"] = B.toFormattedString(); _local1["C"] = C.toFormattedString(); _local1["D"] = D.toFormattedString(); _local1["D_ex"] = D_ex.toFormattedString(); _local1["c1"] = c1; _local1["c2"] = c2; _local1["c3"] = c3; }; if (t >= w_up){ _local1["event_state"] = has_event; _local1["event_time"] = time_ev.toFormattedString(); _local1["event_lasts"] = np_ev.toFormattedString(); _local1["event_name"] = name_ev.toString(); _local1["event_id"] = id_ev.toString(); _local1["Feedback"] = algoFeedback.idents.toString(); _local1["feed_1"] = algoFeedback.feed_1; _local1["feed_2"] = algoFeedback.feed_2; _local1["headl_1"] = algoFeedback.headl_1; _local1["headl_2"] = algoFeedback.headl_2; _local1["headl_3"] = algoFeedback.headl_3; _local1["RANDs"] = algoFeedback.RANDs.toString(); }; return (_local1); } public function setup(_arg1:int, _arg2:int):void{ startDate.quarter = _arg1; startDate.year = (_arg2 - (w_up / 4)); } public function calcNextQuarter(_arg1:Number=200):void{ var _local3:int; var _local4:int; var _local5:int; var _local17:Array; var _local19:int; var _local26:int; var _local27:Number; var _local2:Number = 0; var _local6:int; if (_arg1 === 200){ int_r.set(0, t, (inf_ss + F_i.timesMatrix(x.getMatrix(0, (nr - 1), (t - 1), (t - 1))).get(0, 0))); if (int_r.get(0, t) < -(r_ss)){ int_r.set(0, t, -(r_ss)); }; } else { int_r.set(0, t, ((_arg1 / ann_val) - r_ss)); if (((t - w_up) - (1 % 4)) == 0){ nd = (nd + 1); D = D_l[nd]; }; if (t == (time_ev.get(c_ev, 0) - 1)){ np_proj_off = (time_ev.get(c_ev, 0) + np_ev.get(c_ev, 0)); proj_ev = 1; }; if (t == time_ev.get(c_ev, 0)){ has_event = 1; }; if (t == np_proj_off){ if ((c_ev + 1) < tn_ev_game){ c_ev++; }; proj_ev = 0; has_event = 0; }; _local2 = x_obs.get(0, (t - 1)); if (_local2 < th_inf_exp1){ rho_exp = rho_ex1; sigma_exp = sigma_ex1; _local6 = 1; } else { if ((((_local2 >= th_inf_exp1)) && ((_local2 < th_inf_exp2)))){ rho_exp = rho_ex2; sigma_exp = sigma_ex2; _local6 = 1; } else { if ((((_local2 >= th_inf_exp3)) && ((_local2 < th_inf_exp4)))){ rho_exp = rho_ex3; sigma_exp = sigma_ex3; _local6 = 0; } else { if (_local2 >= th_inf_exp4){ rho_exp = rho_ex4; sigma_exp = sigma_ex4; _local6 = 0; } else { rho_exp = 0; sigma_exp = 0; }; }; }; }; if (sigma_exp != 0){ if ((((_local6 == 1)) && ((th_inf_exp_lb == 1)))){ _local3 = 0; while (_local3 < ut_ex.getRowDimension()) { ut_ex.set(_local3, t, ((rho_exp * ut_ex.get(_local3, (t - 1))) + (sigma_exp * _math.abs(epst_ex.get(_local3, t))))); _local3++; }; } else { _local3 = 0; while (_local3 < ut_ex.getRowDimension()) { ut_ex.set(_local3, t, ((rho_exp * ut_ex.get(_local3, (t - 1))) + (sigma_exp * epst_ex.get(_local3, t)))); _local3++; }; }; }; }; var _local7:RealMatrix = x.getMatrix(0, (nr - 1), (t - 1), (t - 1)); var _local8:RealMatrix = ut.getMatrix(0, (nr - 1), t, t); var _local9:RealMatrix = ut_ex.getMatrix(0, 0, t, t); var _local10:RealMatrix = ut_ev.getMatrix(0, (nr - 1), t, t); var _local11:RealMatrix = B.timesMatrix(_local7); var _local12:RealMatrix = C.times(int_r.get(0, (t - 1))); var _local13:RealMatrix = D.timesMatrix(_local8); var _local14:RealMatrix = D_ex.timesMatrix(_local9); var _local15:RealMatrix = A.plus(_local11.plus(_local12.plus(_local13.plus(_local14.plus(_local10))))); _local3 = 0; while (_local3 < nr) { x.set(_local3, t, _local15.get(_local3, 0)); _local3++; }; var _local16:Array = x.getArray(); var _local18:int = _local16.length; var _local20 = ""; Debug.log(":: calculate ::"); var _local21:int; while (_local21 < _local18) { _local20 = (_local21.toString() + ": "); _local17 = _local16[_local21]; _local19 = _local17.length; _local26 = 0; while (_local26 < _local19) { _local20 = (_local20 + (String(_local17[_local26]) + ", ")); _local26++; }; Debug.log(_local20); _local21++; }; un.set(0, t, (((un_ss + (lambda_un * (un.get(0, (t - 1)) - un_ss))) + (lambda_y * x.get(4, t))) + ut_un.get(0, t))); var _local22:RealMatrix = F_obs.timesMatrix(_local15); var _local23:RealMatrix = F_obsi.times(int_r.get(0, t)); var _local24:RealMatrix = E_obs.plus(_local22.plus(E_obsi.plus(_local23))); _local3 = 0; while (_local3 < nobs) { x_obs.set(_local3, t, _local24.get(_local3, 0)); _local3++; }; checkForLimitation(); if (t >= (w_up - 1)){ algoPerformance.calculate(); algoFeedback.calculateFeedback(); }; if (t > 3){ _local27 = 0; _local3 = (t - 3); while (_local3 <= t) { _local27 = (_local27 + x_obs.get(1, _local3)); _local3++; }; _local27 = (_local27 / 4); av_out_growth.set(0, t, _local27); }; _local5 = dataArr[(t - 1)].length; _local3 = 0; while (_local3 < _local5) { dataArr[(t - 1)][_local3].current = false; _local3++; }; var _local25:String = __getCurrentQuarter(t); x_obs.set(4, t, (_math.round((x_obs.get(4, t) * 4)) / 4)); dataArr.push([{name:"Key Interest Rate", date:_local25, filterId:0, value:x_obs.get(4, t), fixed:true, current:true, diff:0, render:true}, {name:"Inflation Rate", date:_local25, filterId:1, value:x_obs.get(0, t), fixed:true, current:true, diff:0, render:true}, {name:"GDP Growth", date:_local25, filterId:2, value:x_obs.get(1, t), fixed:true, current:true, diff:0, render:true}, {name:"Money Growth", date:_local25, filterId:3, value:x_obs.get(2, t), fixed:true, current:true, diff:0, render:true}, {name:"Unemployment", date:_local25, filterId:4, value:un.get(0, t), fixed:true, current:true, diff:0, render:true}]); t++; } public function getForecastData():Array{ return (fdataArr); } public function set currentTeam(_arg1:XML):void{ team = _arg1; } private function __defineMembers():void{ var _local1:int; if (algoEvents){ algoEvents = null; }; if (algoPerformance){ algoPerformance = null; }; if (algoFeedback){ algoFeedback = null; }; randomSeed = parseInt(xml.randomSeed.@____v); w_up = parseInt(xml.w_up.@____v); T = parseInt(xml.T.@____v); np = parseInt(xml.np.@____v); T_proj = parseInt(xml.T_proj.@____v); CP_Proj = parseInt(xml.CP_Proj.@____v); simul_proj = parseInt(xml.simul_proj.@____v); n_simul_proj = parseInt(xml.n_simul_proj.@____v); ann_val = parseInt(xml.ann_val.@____v); per_val = parseInt(xml.per_val.@____v); n_bf = parseInt(xml.n_bf.@____v); ci_l = parseFloat(xml.ci_l.@____v); ci_v = GameUtils.translateStringToArray(xml.ci_v.@____v, ",", "Number"); n_ci_v = ci_v.length; n_obs_proj = parseInt(xml.n_obs_proj.@____v); sv_fig = parseInt(xml.sv_fig.@____v); gama1 = parseFloat(xml.gama1.@____v); gama2 = parseFloat(xml.gama2.@____v); sigma = _math.pow(parseFloat(xml.sigma.@____v1), parseFloat(xml.sigma.@____v2)); alpha = parseFloat(xml.alpha.@____v); w = parseFloat(xml.w.@____v); lambda = parseFloat(xml.lambda.@____v); phi1 = parseFloat(xml.phi1.@____v); phi2 = parseFloat(xml.phi2.@____v); zeta_y = parseFloat(xml.zeta_y.@____v); zeta_i = parseFloat(xml.zeta_i.@____v); lambda_un = parseFloat(xml.lambda_un.@____v); lambda_y = parseFloat(xml.lambda_y.@____v); sigma_y = (parseFloat(xml.sigma_y.@____v) / per_val); sigma_inf = (parseFloat(xml.sigma_inf.@____v) / ann_val); sigma_dm = (parseFloat(xml.sigma_dm.@____v) / ann_val); sigma_un = parseFloat(xml.sigma_un.@____v); sc_sd0 = parseFloat(xml.sc_sd1.@____v); sc_sd1 = parseFloat(xml.sc_sd1.@____v); sc_sd2 = parseFloat(xml.sc_sd2.@____v); sc_sd3 = parseFloat(xml.sc_sd3.@____v); sc_sd4 = parseFloat(xml.sc_sd4.@____v); sc_sd5 = parseFloat(xml.sc_sd5.@____v); sc_sd6 = parseFloat(xml.sc_sd6.@____v); sc_sd7 = parseFloat(xml.sc_sd7.@____v); sc_sd8 = parseFloat(xml.sc_sd8.@____v); inf_ss = (parseFloat(xml.inf_ss.@____v) / ann_val); r_ss = (parseFloat(xml.r_ss.@____v) / ann_val); un_ss = parseFloat(xml.un_ss.@____v); prod_growth = ((parseFloat(xml.prod_growth.@____v1) * parseFloat(xml.prod_growth.@____v2)) / per_val); v_ss = (zeta_i * inf_ss); nr = parseInt(xml.nr.@____v); nobs = parseInt(xml.nobs.@____v); ns = parseInt(xml.ns.@____v); tn_ev = parseInt(xml.tn_ev.@____v); tn_ev_game = parseInt(xml.tn_ev_game.@____v); deter_ev = parseInt(xml.deter_ev.@____v); pass_flood = ((xml.pass_flood.@____v == "true")) ? true : false; rho_exp = 0; sigma_exp = 0; rho_e1 = parseFloat(xml.rho_e1.@____v); rho_e2 = parseFloat(xml.rho_e2.@____v); rho_e3 = parseFloat(xml.rho_e3.@____v); rho_e4 = parseFloat(xml.rho_e4.@____v); rho_e5 = parseFloat(xml.rho_e5.@____v); rho_e6 = parseFloat(xml.rho_e6.@____v); rho_e7 = parseFloat(xml.rho_e7.@____v); rho_e8 = parseFloat(xml.rho_e8.@____v); np_ev1 = parseInt(xml.np_ev1.@____v); np_ev2 = parseInt(xml.np_ev2.@____v); np_ev3 = parseInt(xml.np_ev3.@____v); np_ev4 = parseInt(xml.np_ev4.@____v); np_ev5 = parseInt(xml.np_ev5.@____v); np_ev6 = parseInt(xml.np_ev6.@____v); np_ev7 = parseInt(xml.np_ev7.@____v); np_ev8 = parseInt(xml.np_ev8.@____v); year_ev1 = parseInt(xml.year_ev1.@____v); year_ev2 = parseInt(xml.year_ev2.@____v); year_ev3 = parseInt(xml.year_ev3.@____v); sc_ev1 = parseFloat(xml.sc_ev1.@____v); sc_ev2 = parseFloat(xml.sc_ev2.@____v); sc_ev3 = parseFloat(xml.sc_ev3.@____v); sv_ev = parseFloat(xml.sv_ev.@____v); x_obs_lim = new RealMatrix([GameUtils.translateStringToArray(xml.x_obs_lim.@____v1, ",", "Number"), GameUtils.translateStringToArray(xml.x_obs_lim.@____v2, ",", "Number"), GameUtils.translateStringToArray(xml.x_obs_lim.@____v3, ",", "Number"), GameUtils.translateStringToArray(xml.x_obs_lim.@____v4, ",", "Number"), GameUtils.translateStringToArray(xml.x_obs_lim.@____v5, ",", "Number")]); un_lim = new RealMatrix([GameUtils.translateStringToArray(xml.un_lim.@____v, ",", "Number")]); D_e11 = ((parseFloat(xml.D_e11.@____v) * sigma_y) * sv_ev); D_e12 = ((parseFloat(xml.D_e12.@____v) * sigma_inf) * sv_ev); D_e13 = (parseFloat(xml.D_e13.@____v) * sv_ev); D_e21 = ((parseFloat(xml.D_e21.@____v) * sigma_y) * sv_ev); D_e22 = ((parseFloat(xml.D_e22.@____v) * sigma_inf) * sv_ev); D_e23 = (parseFloat(xml.D_e23.@____v) * sv_ev); D_e31 = ((parseFloat(xml.D_e31.@____v) * sigma_y) * sv_ev); D_e32 = ((parseFloat(xml.D_e32.@____v) * sigma_inf) * sv_ev); D_e33 = (parseFloat(xml.D_e33.@____v) * sv_ev); D_e41 = ((parseFloat(xml.D_e41.@____v) * sigma_y) * sv_ev); D_e42 = ((parseFloat(xml.D_e42.@____v) * sigma_inf) * sv_ev); D_e43 = (parseFloat(xml.D_e43.@____v) * sv_ev); D_e51 = ((parseFloat(xml.D_e51.@____v) * sigma_y) * sv_ev); D_e52 = ((parseFloat(xml.D_e52.@____v) * sigma_inf) * sv_ev); D_e53 = ((parseFloat(xml.D_e53.@____v) * sigma_dm) * sv_ev); D_e61 = ((parseFloat(xml.D_e61.@____v) * sigma_y) * sv_ev); D_e62 = ((parseFloat(xml.D_e62.@____v) * sigma_inf) * sv_ev); D_e63 = ((parseFloat(xml.D_e63.@____v) * sigma_dm) * sv_ev); D_e71 = ((parseFloat(xml.D_e71.@____v) * sigma_y) * sv_ev); D_e72 = ((parseFloat(xml.D_e72.@____v) * sigma_inf) * sv_ev); D_e73 = (parseFloat(xml.D_e73.@____v) * sv_ev); D_e81 = ((parseFloat(xml.D_e81.@____v) * sigma_y) * sv_ev); D_e82 = ((parseFloat(xml.D_e82.@____v) * sigma_inf) * sv_ev); D_e83 = (parseFloat(xml.D_e83.@____v) * sv_ev); th_inf_exp_lb = parseInt(xml.th_inf_exp_lb.@____v); th_inf_exp1 = parseInt(xml.th_inf_exp1.@____v); th_inf_exp2 = parseInt(xml.th_inf_exp2.@____v); th_inf_exp3 = parseInt(xml.th_inf_exp3.@____v); th_inf_exp4 = parseInt(xml.th_inf_exp4.@____v); rho_ex1 = parseFloat(xml.rho_ex1.@____v); rho_ex2 = parseFloat(xml.rho_ex2.@____v); rho_ex3 = parseFloat(xml.rho_ex3.@____v); rho_ex4 = parseFloat(xml.rho_ex4.@____v); sigma_ex1 = parseFloat(xml.sigma_ex1.@____v); sigma_ex2 = parseFloat(xml.sigma_ex2.@____v); sigma_ex3 = parseFloat(xml.sigma_ex3.@____v); sigma_ex4 = parseFloat(xml.sigma_ex4.@____v); phi_y = parseFloat(xml.phi_y.@____v); phi_inf = parseFloat(xml.phi_inf.@____v); phi_m = parseFloat(xml.phi_m.@____v); phi_m1 = -(phi_m); ci_proj_b = parseFloat(xml.ci_proj_b.@____v); name_var_obs = GameUtils.translateStringToArray(xml.name_var_obs.@____v, ",", "String"); name_var_proj_obs = GameUtils.translateStringToArray(xml.name_var_proj_obs.@____v, ",", "String"); name_ev_c = GameUtils.translateStringToArray(xml.name_ev_c.@____v, ",", "String"); id_ev_c = GameUtils.translateStringToArray(xml.id_ev_c.@____v, ",", "int"); pi_star = ((inf_ss * ann_val) / 100); pi_av_calc = parseInt(xml.pi_av_calc.@____v); pi_av_win = parseInt(xml.pi_av_win.@____v); b_low = parseFloat(xml.b_low.@____v); b_up = parseFloat(xml.b_up.@____v); pi_std_star = parseFloat(xml.pi_std_star.@____v); a1 = parseFloat(xml.a1.@____v); a2 = parseFloat(xml.a2.@____v); a3 = parseFloat(xml.a3.@____v); a4 = parseFloat(xml.a4.@____v); a5 = parseFloat(xml.a5.@____v); a6 = parseFloat(xml.a6.@____v); b1 = parseFloat(xml.b1.@____v); b2 = parseFloat(xml.b2.@____v); b3 = parseFloat(xml.b3.@____v); b4 = parseFloat(xml.b4.@____v); b5 = parseFloat(xml.b5.@____v); b6 = parseFloat(xml.b6.@____v); a_w = parseFloat(xml.a_w.@____v); b_w = parseFloat(xml.b_w.@____v); c_w = parseFloat(xml.c_w.@____v); c1 = (1 / ((1 + (a1 * _math.pow(_math.abs(b_low), b1))) + (a2 * _math.pow(_math.abs(b_low), b2)))); c2 = (1 / ((1 + (a3 * _math.pow(_math.abs(b_up), b3))) + (a4 * _math.pow(_math.abs(b_up), b4)))); c3 = (1 / ((1 + (a5 * _math.pow(_math.abs(pi_std_star), b5))) + (a6 * _math.pow(_math.abs(pi_std_star), b6)))); W1 = parseFloat(xml.W1.@____v); W2 = (1 - W1); T1 = GameUtils.translateStringToArray(xml.T1.@____v, ",", "Number"); T2 = GameUtils.translateStringToArray(xml.T2.@____v, ",", "Number"); T3 = GameUtils.translateStringToArray(xml.T3.@____v, ",", "Number"); points_all = GameUtils.translateStringToArray(xml.points_all.@____v, ",", "Number"); bonus_all = GameUtils.translateStringToArray(xml.bonus_all.@____v, ",", "Number"); pi_av_thres = GameUtils.translateStringToArray(xml.pi_av_thres.@____v, ",", "Number"); pi_std_thres = GameUtils.translateStringToArray(xml.pi_std_thres.@____v, ",", "Number"); perf_checker = parseInt(xml.perf_checker.@____v); pi_test = parseFloat(xml.pi_test.@____v); perform_no = new RealMatrix([GameUtils.translateStringToArray(xml.perform_no.@____v1, ",", "Number"), GameUtils.translateStringToArray(xml.perform_no.@____v2, ",", "Number"), GameUtils.translateStringToArray(xml.perform_no.@____v3, ",", "Number"), GameUtils.translateStringToArray(xml.perform_no.@____v4, ",", "Number"), GameUtils.translateStringToArray(xml.perform_no.@____v5, ",", "Number"), GameUtils.translateStringToArray(xml.perform_no.@____v6, ",", "Number"), GameUtils.translateStringToArray(xml.perform_no.@____v7, ",", "Number"), GameUtils.translateStringToArray(xml.perform_no.@____v8, ",", "Number"), GameUtils.translateStringToArray(xml.perform_no.@____v9, ",", "Number"), GameUtils.translateStringToArray(xml.perform_no.@____v10, ",", "Number"), GameUtils.translateStringToArray(xml.perform_no.@____v11, ",", "Number"), GameUtils.translateStringToArray(xml.perform_no.@____v12, ",", "Number"), GameUtils.translateStringToArray(xml.perform_no.@____v13, ",", "Number")]); perform_no_pic = new RealMatrix([GameUtils.translateStringToArray(xml.perform_no_pic.@____v1, ",", "Number"), GameUtils.translateStringToArray(xml.perform_no_pic.@____v2, ",", "Number"), GameUtils.translateStringToArray(xml.perform_no_pic.@____v3, ",", "Number"), GameUtils.translateStringToArray(xml.perform_no_pic.@____v4, ",", "Number"), GameUtils.translateStringToArray(xml.perform_no_pic.@____v5, ",", "Number"), GameUtils.translateStringToArray(xml.perform_no_pic.@____v6, ",", "Number"), GameUtils.translateStringToArray(xml.perform_no_pic.@____v7, ",", "Number"), GameUtils.translateStringToArray(xml.perform_no_pic.@____v8, ",", "Number"), GameUtils.translateStringToArray(xml.perform_no_pic.@____v9, ",", "Number"), GameUtils.translateStringToArray(xml.perform_no_pic.@____v10, ",", "Number"), GameUtils.translateStringToArray(xml.perform_no_pic.@____v11, ",", "Number"), GameUtils.translateStringToArray(xml.perform_no_pic.@____v12, ",", "Number"), GameUtils.translateStringToArray(xml.perform_no_pic.@____v13, ",", "Number")]); Mat_ev = [GameUtils.translateStringToArray(xml.Mat_ev.@____v1, ",", "Number"), GameUtils.translateStringToArray(xml.Mat_ev.@____v2, ",", "Number"), GameUtils.translateStringToArray(xml.Mat_ev.@____v3, ",", "Number"), GameUtils.translateStringToArray(xml.Mat_ev.@____v4, ",", "Number"), GameUtils.translateStringToArray(xml.Mat_ev.@____v5, ",", "Number"), GameUtils.translateStringToArray(xml.Mat_ev.@____v6, ",", "Number"), GameUtils.translateStringToArray(xml.Mat_ev.@____v7, ",", "Number"), GameUtils.translateStringToArray(xml.Mat_ev.@____v8, ",", "Number")]; Mat_int = [GameUtils.translateStringToArray(xml.Mat_int.@____v1, ",", "Number"), GameUtils.translateStringToArray(xml.Mat_int.@____v2, ",", "Number"), GameUtils.translateStringToArray(xml.Mat_int.@____v3, ",", "Number"), GameUtils.translateStringToArray(xml.Mat_int.@____v4, ",", "Number"), GameUtils.translateStringToArray(xml.Mat_int.@____v5, ",", "Number"), GameUtils.translateStringToArray(xml.Mat_int.@____v6, ",", "Number")]; Mat_pi = [GameUtils.translateStringToArray(xml.Mat_pi.@____v1, ",", "Number"), GameUtils.translateStringToArray(xml.Mat_pi.@____v2, ",", "Number"), GameUtils.translateStringToArray(xml.Mat_pi.@____v3, ",", "Number"), GameUtils.translateStringToArray(xml.Mat_pi.@____v4, ",", "Number"), GameUtils.translateStringToArray(xml.Mat_pi.@____v5, ",", "Number"), GameUtils.translateStringToArray(xml.Mat_pi.@____v6, ",", "Number"), GameUtils.translateStringToArray(xml.Mat_pi.@____v7, ",", "Number"), GameUtils.translateStringToArray(xml.Mat_pi.@____v8, ",", "Number"), GameUtils.translateStringToArray(xml.Mat_pi.@____v9, ",", "Number")]; Mat_u = [GameUtils.translateStringToArray(xml.Mat_u.@____v1, ",", "Number"), GameUtils.translateStringToArray(xml.Mat_u.@____v2, ",", "Number"), GameUtils.translateStringToArray(xml.Mat_u.@____v3, ",", "Number"), GameUtils.translateStringToArray(xml.Mat_u.@____v4, ",", "Number"), GameUtils.translateStringToArray(xml.Mat_u.@____v5, ",", "Number")]; Mat_m_ch = [GameUtils.translateStringToArray(xml.Mat_m_ch.@____v1, ",", "Number"), GameUtils.translateStringToArray(xml.Mat_m_ch.@____v2, ",", "Number"), GameUtils.translateStringToArray(xml.Mat_m_ch.@____v3, ",", "Number"), GameUtils.translateStringToArray(xml.Mat_m_ch.@____v4, ",", "Number"), GameUtils.translateStringToArray(xml.Mat_m_ch.@____v5, ",", "Number"), GameUtils.translateStringToArray(xml.Mat_m_ch.@____v6, ",", "Number"), GameUtils.translateStringToArray(xml.Mat_m_ch.@____v7, ",", "Number")]; Mat_y_ch = [GameUtils.translateStringToArray(xml.Mat_y_ch.@____v1, ",", "Number"), GameUtils.translateStringToArray(xml.Mat_y_ch.@____v2, ",", "Number"), GameUtils.translateStringToArray(xml.Mat_y_ch.@____v3, ",", "Number"), GameUtils.translateStringToArray(xml.Mat_y_ch.@____v4, ",", "Number"), GameUtils.translateStringToArray(xml.Mat_y_ch.@____v5, ",", "Number"), GameUtils.translateStringToArray(xml.Mat_y_ch.@____v6, ",", "Number"), GameUtils.translateStringToArray(xml.Mat_y_ch.@____v7, ",", "Number"), GameUtils.translateStringToArray(xml.Mat_y_ch.@____v8, ",", "Number")]; event_max = parseFloat(xml.event_max.@____v); sp_thres = new RealMatrix([GameUtils.translateStringToArray(xml.sp_thres.@____v1, ",", "Number"), GameUtils.translateStringToArray(xml.sp_thres.@____v2, ",", "Number")]); i_min = parseInt(xml.i_min.@____v); i_max = parseInt(xml.i_max.@____v); m_min = GameUtils.translateStringToArray(xml.m_min.@____v, ",", "Number"); m_max = GameUtils.translateStringToArray(xml.m_max.@____v, ",", "Number"); int_pi = GameUtils.translateStringToArray(xml.int_pi.@____v, ",", "Number"); int_y_ch = GameUtils.translateStringToArray(xml.int_y_ch.@____v, ",", "Number"); int_m_ch = GameUtils.translateStringToArray(xml.int_m_ch.@____v, ",", "Number"); int_u = GameUtils.translateStringToArray(xml.int_u.@____v, ",", "Number"); int_i_row = GameUtils.translateStringToArray(xml.int_i_row.@____v, ",", "Number"); int_i_col = GameUtils.translateStringToArray(xml.int_i_col.@____v, ",", "Number"); T_fdb = parseInt(xml.T_fdb.@____v); nd = parseInt(xml.nd.@____v); c_ev = parseInt(xml.c_ev.@____v); proj_ev = parseInt(xml.proj_ev.@____v); has_event = 0; np_proj_off = 0; A = new RealMatrix(nr, parseFloat(xml.A.@____v2), parseFloat(xml.A.@____v3)); B = new RealMatrix(nr, nr, parseFloat(xml.B.@____v3)); C = new RealMatrix(nr, parseFloat(xml.C.@____v2), parseFloat(xml.C.@____v3)); D = new RealMatrix(nr, nr, parseFloat(xml.D.@____v3)); E_obs = new RealMatrix(nobs, parseFloat(xml.E_obs.@____v2), parseFloat(xml.E_obs.@____v3)); F_obs = new RealMatrix(nobs, nr, parseFloat(xml.F_obs.@____v3)); E_obsi = new RealMatrix(nobs, parseFloat(xml.E_obsi.@____v2), parseFloat(xml.E_obsi.@____v3)); F_obsi = new RealMatrix(nobs, parseFloat(xml.F_obsi.@____v2), parseFloat(xml.F_obsi.@____v3)); D_ex = new RealMatrix(nr, parseFloat(xml.D_ex.@____v2), parseFloat(xml.D_ex.@____v3)); D_ev_c = new RealMatrix(nr, tn_ev, parseFloat(xml.D_ev_c.@____v3)); F_i = new RealMatrix(parseFloat(xml.F_i.@____v1), nr, parseFloat(xml.F_i.@____v3)); un = new RealMatrix(parseFloat(xml.un.@____v1), T, parseFloat(xml.un.@____v3)); ut = new RealMatrix(nr, T, parseFloat(xml.ut.@____v3)); ut_un = new RealMatrix(parseFloat(xml.ut_un.@____v1), T, parseFloat(xml.ut_un.@____v3)); ut_ex = new RealMatrix(parseFloat(xml.ut_ex.@____v1), T, parseFloat(xml.ut_ex.@____v3)); int_r = new RealMatrix(parseFloat(xml.int_r.@____v1), T, parseFloat(xml.int_r.@____v3)); x = new RealMatrix(nr, T, parseFloat(xml.x.@____v3)); x_obs = new RealMatrix(nobs, T, parseFloat(xml.x_obs.@____v3)); x_proj = new RealMatrix(nr, T, parseFloat(xml.x_proj.@____v3)); epst_ex = new RealMatrix(parseFloat(xml.epst_ex.@____v1), T, parseFloat(xml.epst_ex.@____v3)); av_out_growth = new RealMatrix(parseFloat(xml.av_out_growth.@____v1), T, parseFloat(xml.av_out_growth.@____v3)); sc_sd = new RealMatrix(parseFloat(xml.sc_sd.@____v1), parseFloat(xml.sc_sd.@____v2), parseFloat(xml.sc_sd.@____v3)); year_ev = new RealMatrix(tn_ev, parseFloat(xml.year_ev.@____v2), parseFloat(xml.year_ev.@____v3)); np_ev_c = new RealMatrix(tn_ev, parseFloat(xml.np_ev_c.@____v2), parseFloat(xml.np_ev_c.@____v3)); rho_ev_c = new RealMatrix(tn_ev, parseFloat(xml.rho_ev_c.@____v2), parseFloat(xml.rho_ev_c.@____v3)); sc_ev = new RealMatrix(tn_ev_game, parseFloat(xml.sc_ev.@____v2), parseFloat(xml.sc_ev.@____v3)); D_l = new Array(sc_sd.getColumnDimension()); P = new Array(T); P_ind = new Array(T); P_ind_pic = new Array(T); P_tot = new Array(T); bonus_check = new Array(T); star_one = 0; star_two = 0; star_three = 0; star_four = 0; perform_headline = 0; perform_text_pi = 0; perform_text_pi_e = 0; perform_text_pi_std = 0; getcup = 0; game_exit = -1; if (randomSeed != 0){ _local1 = randomSeed; Rndm.seed = _local1; } else { _local1 = (_math.random() * parseInt(xml.pm.@____v1, 10)); Rndm.seed = _local1; }; pm = new ParkMiller(_local1); MemberMessages = []; NewsPaperMessages = []; t = parseInt(xml.t.@____v); dataArr = []; fdataArr = []; } public function getPerformance():Object{ return ({stars:[algoPerformance.star_one, algoPerformance.star_two, algoPerformance.star_three, algoPerformance.star_four], points:algoPerformance.P_tot[(algoPerformance.gotlastPerformance) ? t : (t - 1)], inflAverage:(algoPerformance.pi_av * 100), indicator:algoPerformance.P_ind_pic[(t - 1)], perform_headline:algoPerformance.perform_headline, perform_pi:algoPerformance.perform_text_pi, perform_vol:algoPerformance.perform_text_pi_std, cup:algoPerformance.getcup, exit:algoPerformance.game_exit}); } public function getEconomicData():Array{ return (dataArr); } } }//package eu.ecb.economia.data.algorithm
Section 81
//Maths (eu.ecb.economia.data.algorithm.Maths) package eu.ecb.economia.data.algorithm { public class Maths { public static function hypot(_arg1:Number, _arg2:Number):Number{ var _local4:Number; var _local3:Object = Math; if (_local3.abs(_arg1) > _local3.abs(_arg2)){ _local4 = (_arg2 / _arg1); _local4 = (_local3.abs(_arg1) * _local3.sqrt((1 + (_local4 * _local4)))); } else { if (_arg2 != 0){ _local4 = (_arg1 / _arg2); _local4 = (_local3.abs(_arg2) * _local3.sqrt((1 + (_local4 * _local4)))); } else { _local4 = 0; }; }; return (_local4); } } }//package eu.ecb.economia.data.algorithm
Section 82
//ParkMiller (eu.ecb.economia.data.algorithm.ParkMiller) package eu.ecb.economia.data.algorithm { public class ParkMiller { private var cache:Number; private var ready:Boolean; private var _math:Object; private var s:int; public function ParkMiller(_arg1:uint=1){ _math = Math; super(); s = ((_arg1 > 0)) ? (_arg1 % 2147483647) : 1; } public function set seed(_arg1:uint):void{ ready = false; s = ((_arg1 > 0)) ? (_arg1 % 2147483647) : 1; } public function standardNormal():Number{ var _local1:Number; var _local2:Number; var _local3:Number; if (ready){ ready = false; return (cache); }; do { _local1 = (((s = ((s * 16807) % 2147483647)) / 1073741823.5) - 1); _local2 = (((s = ((s * 16807) % 2147483647)) / 1073741823.5) - 1); _local3 = ((_local1 * _local1) + (_local2 * _local2)); } while ((((_local3 >= 1)) || (!(_local3)))); _local3 = _math.sqrt(((-2 * _math.log(_local3)) / _local3)); ready = true; cache = (_local1 * _local3); return ((_local2 * _local3)); } public function get seed():uint{ ready = false; return (s); } public function uniform():Number{ return (((s = ((s * 16807) % 2147483647)) / 2147483647)); } public function bernoulli(_arg1:Number=0.5):Boolean{ return (((s = ((s * 16807) % 2147483647)) < (_arg1 * 2147483647))); } } }//package eu.ecb.economia.data.algorithm
Section 83
//QRDecomposition (eu.ecb.economia.data.algorithm.QRDecomposition) package eu.ecb.economia.data.algorithm { public class QRDecomposition { private var QR:Array; private var _maths:Object; private var m:int; private var n:int; private var Rdiag:Array; public function QRDecomposition(_arg1:RealMatrix){ var _local2:int; var _local3:int; var _local4:Number; var _local5:Number; _maths = Maths; super(); QR = _arg1.getArrayCopy(); m = _arg1.getRowDimension(); n = _arg1.getColumnDimension(); Rdiag = new Array(n); var _local6:int; while (_local6 < n) { _local4 = 0; _local2 = _local6; while (_local2 < m) { _local4 = _maths.hypot(_local4, QR[_local2][_local6]); _local2++; }; if (_local4 != 0){ if (QR[_local6][_local6] < 0){ _local4 = -(_local4); }; _local2 = _local6; while (_local2 < m) { QR[_local2][_local6] = (QR[_local2][_local6] / _local4); _local2++; }; QR[_local6][_local6] = (QR[_local6][_local6] + 1); _local3 = (_local6 + 1); while (_local3 < n) { _local5 = 0; _local2 = _local6; while (_local2 < m) { _local5 = (_local5 + (QR[_local2][_local6] * QR[_local2][_local3])); _local2++; }; _local5 = (-(_local5) / QR[_local6][_local6]); _local2 = _local6; while (_local2 < m) { QR[_local2][_local3] = (QR[_local2][_local3] + (_local5 * QR[_local2][_local6])); _local2++; }; _local3++; }; }; Rdiag[_local6] = -(_local4); _local6++; }; } public function getR():RealMatrix{ var _local3:int; var _local1:RealMatrix = new RealMatrix(n, n); var _local2:Array = _local1.getArray(); var _local4:int; while (_local4 < n) { _local3 = 0; while (_local3 < n) { if (_local4 < _local3){ _local2[_local4][_local3] = QR[_local4][_local3]; } else { if (_local4 == _local3){ _local2[_local4][_local3] = Rdiag[_local4]; } else { _local2[_local4][_local3] = 0; }; }; _local3++; }; _local4++; }; return (_local1); } public function isFullRank():Boolean{ var _local1:int; while (_local1 < n) { if (Rdiag[_local1] == 0){ return (false); }; _local1++; }; return (true); } public function getH():RealMatrix{ var _local3:int; var _local1:RealMatrix = new RealMatrix(m, n); var _local2:Array = _local1.getArray(); var _local4:int; while (_local4 < m) { _local3 = 0; while (_local3 < n) { if (_local4 >= _local3){ _local2[_local4][_local3] = QR[_local4][_local3]; } else { _local2[_local4][_local3] = 0; }; _local3++; }; _local4++; }; return (_local1); } public function getQ():RealMatrix{ var _local3:int; var _local4:int; var _local5:int; var _local6:Number; var _local1:RealMatrix = new RealMatrix(m, n); var _local2:Array = _local1.getArray(); _local4 = (n - 1); while (_local4 >= 0) { _local3 = 0; while (_local3 < m) { _local2[_local3][_local4] = 0; _local3++; }; _local2[_local4][_local4] = 1; _local5 = _local4; while (_local5 < n) { if (QR[_local4][_local4] != 0){ _local6 = 0; _local3 = _local4; while (_local3 < m) { _local6 = (_local6 + (QR[_local3][_local4] * _local2[_local3][_local5])); _local3++; }; _local6 = (-(_local6) / QR[_local4][_local4]); _local3 = _local4; while (_local3 < m) { _local2[_local3][_local5] = (_local2[_local3][_local5] + (_local6 * QR[_local3][_local4])); _local3++; }; }; _local5++; }; _local4--; }; return (_local1); } public function solve(_arg1:RealMatrix):RealMatrix{ var _local4:int; var _local5:int; var _local6:int; var _local7:Number; if (_arg1.getRowDimension() != m){ throw (new Error("Matrix row dimensions must agree.")); }; if (!this.isFullRank()){ throw (new Error("Matrix is rank deficient.")); }; var _local2:int = _arg1.getColumnDimension(); var _local3:Array = _arg1.getArrayCopy(); _local4 = 0; while (_local4 < n) { _local5 = 0; while (_local5 < _local2) { _local7 = 0; _local6 = _local4; while (_local6 < m) { _local7 = (_local7 + (QR[_local6][_local4] * _local3[_local6][_local5])); _local6++; }; _local7 = (-(_local7) / QR[_local4][_local4]); _local6 = _local4; while (_local6 < m) { _local3[_local6][_local5] = (_local3[_local6][_local5] + (_local7 * QR[_local6][_local4])); _local6++; }; _local5++; }; _local4++; }; _local4 = (n - 1); while (_local4 >= 0) { _local5 = 0; while (_local5 < _local2) { _local3[_local4][_local5] = (_local3[_local4][_local5] / Rdiag[_local4]); _local5++; }; _local6 = 0; while (_local6 < _local4) { _local5 = 0; while (_local5 < _local2) { _local3[_local6][_local5] = (_local3[_local6][_local5] - (_local3[_local4][_local5] * QR[_local6][_local4])); _local5++; }; _local6++; }; _local4--; }; return (new RealMatrix(_local3, n, _local2).getMatrix(0, (n - 1), 0, (_local2 - 1))); } } }//package eu.ecb.economia.data.algorithm
Section 84
//RealMatrix (eu.ecb.economia.data.algorithm.RealMatrix) package eu.ecb.economia.data.algorithm { public class RealMatrix { private var A:Array; private var _math:Object; private var _maths:Object; private var m:int; private var n:int; public function RealMatrix(_arg1, _arg2:int=0, _arg3:Number=NaN){ var _local4:int; var _local5:int; _math = Math; _maths = Maths; super(); if ((_arg1 is Array)){ m = _arg1.length; n = _arg1[0].length; _local4 = 0; while (_local4 < m) { if (_arg1[_local4].length != n){ throw (new Error("All rows must have the same length.")); }; _local4++; }; this.A = _arg1; return; }; m = _arg1; n = _arg2; A = new Array(m); _local4 = 0; while (_local4 < m) { A[_local4] = new Array(n); _local4++; }; if (!isNaN(_arg3)){ _local4 = 0; while (_local4 < m) { _local5 = 0; while (_local5 < n) { A[_local4][_local5] = _arg3; _local5++; }; _local4++; }; }; } public function getColumnPackedCopy():Array{ var _local2:int; var _local1:Array = new Array((m * n)); var _local3:int; while (_local3 < m) { _local2 = 0; while (_local2 < n) { _local1[(_local3 + (_local2 * m))] = A[_local3][_local2]; _local2++; }; _local3++; }; return (_local1); } public function getColumnDimension():int{ return (n); } public function normInf():Number{ var _local2:int; var _local3:Number; var _local1:Number = 0; var _local4:int; while (_local4 < m) { _local3 = 0; _local2 = 0; while (_local2 < n) { _local3 = (_local3 + Math.abs(A[_local4][_local2])); _local2++; }; _local1 = Math.max(_local1, _local3); _local4++; }; return (_local1); } public function normF():Number{ var _local2:int; var _local1:Number = 0; var _local3:int; while (_local3 < m) { _local2 = 0; while (_local2 < n) { _local1 = Maths.hypot(_local1, A[_local3][_local2]); _local2++; }; _local3++; }; return (_local1); } public function arrayTimesEquals(_arg1:RealMatrix):RealMatrix{ var _local2:int; checkMatrixDimensions(_arg1); var _local3:int; while (_local3 < m) { _local2 = 0; while (_local2 < n) { A[_local3][_local2] = (A[_local3][_local2] * _arg1.A[_local3][_local2]); _local2++; }; _local3++; }; return (this); } private function checkMatrixDimensions(_arg1:RealMatrix):void{ if (((!((_arg1.m == m))) || (!((_arg1.n == n))))){ throw (new Error("Matrix dimensions must agree.")); }; } public function arrayLeftDivide(_arg1:RealMatrix):RealMatrix{ var _local4:int; checkMatrixDimensions(_arg1); var _local2:RealMatrix = new RealMatrix(m, n); var _local3:Array = _local2.getArray(); var _local5:int; while (_local5 < m) { _local4 = 0; while (_local4 < n) { _local3[_local5][_local4] = (_arg1.A[_local5][_local4] / A[_local5][_local4]); _local4++; }; _local5++; }; return (_local2); } public function plus(_arg1:RealMatrix):RealMatrix{ var _local4:int; checkMatrixDimensions(_arg1); var _local2:RealMatrix = new RealMatrix(m, n); var _local3:Array = _local2.getArray(); var _local5:int; while (_local5 < m) { _local4 = 0; while (_local4 < n) { _local3[_local5][_local4] = (A[_local5][_local4] + _arg1.A[_local5][_local4]); _local4++; }; _local5++; }; return (_local2); } public function uminus():RealMatrix{ var _local3:int; var _local1:RealMatrix = new RealMatrix(m, n); var _local2:Array = _local1.getArray(); var _local4:int; while (_local4 < m) { _local3 = 0; while (_local3 < n) { _local2[_local4][_local3] = -(A[_local4][_local3]); _local3++; }; _local4++; }; return (_local1); } public function arrayRightDivide(_arg1:RealMatrix):RealMatrix{ var _local3:int; checkMatrixDimensions(_arg1); var _local2:RealMatrix = new RealMatrix(m, n); var _local4:Array = _local2.getArray(); var _local5:int; while (_local5 < m) { _local3 = 0; while (_local3 < n) { _local4[_local5][_local3] = (A[_local5][_local3] / _arg1.A[_local5][_local3]); _local3++; }; _local5++; }; return (_local2); } public function sort():void{ A.sort(); } public function qr():QRDecomposition{ return (new QRDecomposition(this)); } public function getRowDimension():int{ return (m); } public function getArray():Array{ return (A); } public function timesEquals(_arg1:Number):RealMatrix{ var _local2:int; var _local3:int; while (_local3 < m) { _local2 = 0; while (_local2 < n) { A[_local3][_local2] = (_arg1 * A[_local3][_local2]); _local2++; }; _local3++; }; return (this); } public function timesMatrix(_arg1:RealMatrix):RealMatrix{ var _local5:Array; var _local6:Number; var _local7:int; var _local8:int; if (_arg1.m != n){ throw (new Error("Matrix inner dimensions must agree.")); }; var _local2:RealMatrix = new RealMatrix(m, _arg1.n); var _local3:Array = _local2.getArray(); var _local4:Array = new Array(n); var _local9:int; while (_local9 < _arg1.n) { _local7 = 0; while (_local7 < n) { _local4[_local7] = _arg1.A[_local7][_local9]; _local7++; }; _local8 = 0; while (_local8 < m) { _local5 = A[_local8]; _local6 = 0; _local7 = 0; while (_local7 < n) { _local6 = (_local6 + (_local5[_local7] * _local4[_local7])); _local7++; }; _local3[_local8][_local9] = _local6; _local8++; }; _local9++; }; return (_local2); } public function cond():Number{ return (new SingularValueDecomposition(this).cond()); } public function rank():int{ return (new SingularValueDecomposition(this).rank()); } public function inverse():RealMatrix{ return (solve(identity(m, m))); } public function removeRow(_arg1:int):void{ var _local4:int; var _local2:Array = new Array((A.length - 1)); var _local3:int; _local4 = 0; while (_local4 < (m - 1)) { if (_local4 == _arg1){ _local3++; }; _local2[_local4] = A[(_local4 + _local3)]; _local4++; }; m--; A = _local2; } public function getMatrix(_arg1:int, _arg2:int, _arg3:int, _arg4:int):RealMatrix{ var _local8:int; var _local5:RealMatrix = new RealMatrix(((_arg2 - _arg1) + 1), ((_arg4 - _arg3) + 1)); var _local6:Array = _local5.getArray(); var _local7:int = _arg1; while (_local7 <= _arg2) { _local8 = _arg3; while (_local8 <= _arg4) { _local6[(_local7 - _arg1)][(_local8 - _arg3)] = A[_local7][_local8]; _local8++; }; _local7++; }; return (_local5); } public function getArrayCopy():Array{ var _local2:int; var _local1:Array = new Array(m); var _local3:int; while (_local3 < m) { _local1[_local3] = new Array(n); _local2 = 0; while (_local2 < n) { _local1[_local3][_local2] = A[_local3][_local2]; _local2++; }; _local3++; }; return (_local1); } public function transpose():RealMatrix{ var _local3:int; var _local1:RealMatrix = new RealMatrix(n, m); var _local2:Array = _local1.getArray(); var _local4:int; while (_local4 < m) { _local3 = 0; while (_local3 < n) { _local2[_local3][_local4] = A[_local4][_local3]; _local3++; }; _local4++; }; return (_local1); } public function solveTranspose(_arg1:RealMatrix):RealMatrix{ return (transpose().solve(_arg1.transpose())); } public function solve(_arg1:RealMatrix):RealMatrix{ return (new QRDecomposition(this).solve(_arg1)); } public function trace():Number{ var _local1:Number = 0; var _local2:int; while (_local2 < Math.min(m, n)) { _local1 = (_local1 + A[_local2][_local2]); _local2++; }; return (_local1); } public function times(_arg1):RealMatrix{ var _local2:int; var _local3:int; var _local6:RealMatrix; var _local7:Array; var _local8:Array; if ((_arg1 is RealMatrix)){ _local6 = new RealMatrix(m, n); _local7 = _local6.getArray(); _local8 = _arg1.getArray(); _local2 = 0; while (_local2 < m) { _local3 = 0; while (_local3 < n) { _local7[_local2][_local3] = (_local8[_local2][_local3] * A[_local2][_local3]); _local3++; }; _local2++; }; return (_local6); }; var _local4:RealMatrix = new RealMatrix(m, n); var _local5:Array = _local4.getArray(); _local2 = 0; while (_local2 < m) { _local3 = 0; while (_local3 < n) { _local5[_local2][_local3] = (_arg1 * A[_local2][_local3]); _local3++; }; _local2++; }; return (_local4); } public function arrayLeftDivideEquals(_arg1:RealMatrix):RealMatrix{ var _local2:int; checkMatrixDimensions(_arg1); var _local3:int; while (_local3 < m) { _local2 = 0; while (_local2 < n) { A[_local3][_local2] = (_arg1.A[_local3][_local2] / A[_local3][_local2]); _local2++; }; _local3++; }; return (this); } public function minusEquals(_arg1:RealMatrix):RealMatrix{ var _local2:int; checkMatrixDimensions(_arg1); var _local3:int; while (_local3 < m) { _local2 = 0; while (_local2 < n) { A[_local3][_local2] = (A[_local3][_local2] - _arg1.A[_local3][_local2]); _local2++; }; _local3++; }; return (this); } public function getRowPackedCopy():Array{ var _local2:int; var _local1:Array = new Array((m * n)); var _local3:int; while (_local3 < m) { _local2 = 0; while (_local2 < n) { _local1[((_local3 * n) + _local2)] = A[_local3][_local2]; _local2++; }; _local3++; }; return (_local1); } public function get(_arg1:int, _arg2:int):Number{ return (A[_arg1][_arg2]); } public function svd():SingularValueDecomposition{ return (new SingularValueDecomposition(this)); } public function set(_arg1:int, _arg2:int, _arg3:Number):void{ A[_arg1][_arg2] = _arg3; } public function max():Number{ var _local3:int; var _local1:Number = A[0][0]; var _local2:int; while (_local2 < m) { _local3 = 0; while (_local3 < n) { _local1 = ((A[_local2][_local3])>_local1) ? A[_local2][_local3] : _local1; _local3++; }; _local2++; }; return (_local1); } public function minus(_arg1:RealMatrix):RealMatrix{ var _local4:int; checkMatrixDimensions(_arg1); var _local2:RealMatrix = new RealMatrix(m, n); var _local3:Array = _local2.getArray(); var _local5:int; while (_local5 < m) { _local4 = 0; while (_local4 < n) { _local3[_local5][_local4] = (A[_local5][_local4] - _arg1.A[_local5][_local4]); _local4++; }; _local5++; }; return (_local2); } public function toFormattedString():String{ var _local1:int; var _local2:int; var _local3 = ""; var _local4:Number = 0; _local1 = 0; while (_local1 <= m) { _local3 = (_local3 + "\n"); if (_local1 === 0){ _local3 = (_local3 + " "); } else { if (_local1 < 100){ _local3 = (_local3 + " "); }; if (_local1 < 10){ _local3 = (_local3 + " "); }; _local3 = (_local3 + (("" + _local1) + " ")); }; _local2 = 0; while (_local2 <= n) { if ((((_local1 == 0)) && ((_local2 < n)))){ if ((_local2 + 1) < 100){ _local3 = (_local3 + " "); }; if ((_local2 + 1) < 10){ _local3 = (_local3 + " "); }; _local3 = (_local3 + ((" " + (_local2 + 1)) + " ")); }; if ((((_local1 >= 1)) && ((_local2 >= 1)))){ if (A[(_local1 - 1)][(_local2 - 1)] < 1000){ _local3 = (_local3 + " "); }; if (A[(_local1 - 1)][(_local2 - 1)] < 100){ _local3 = (_local3 + " "); }; if (A[(_local1 - 1)][(_local2 - 1)] < 10){ _local3 = (_local3 + " "); }; if (A[(_local1 - 1)][(_local2 - 1)] >= 0){ _local3 = (_local3 + " "); }; _local3 = (_local3 + (A[(_local1 - 1)][(_local2 - 1)].toFixed(16) + " ")); }; _local2++; }; _local1++; }; return (_local3); } public function toString():String{ var _local1:int; var _local2:int; var _local3 = ""; _local1 = 0; while (_local1 < m) { _local3 = (_local3 + "\n"); _local2 = 0; while (_local2 < n) { _local3 = (_local3 + (A[_local1][_local2] + " ")); _local2++; }; _local1++; }; return (_local3); } public function arrayTimes(_arg1:RealMatrix):RealMatrix{ var _local4:int; checkMatrixDimensions(_arg1); var _local2:RealMatrix = new RealMatrix(m, n); var _local3:Array = _local2.getArray(); var _local5:int; while (_local5 < m) { _local4 = 0; while (_local4 < n) { _local3[_local5][_local4] = (A[_local5][_local4] * _arg1.A[_local5][_local4]); _local4++; }; _local5++; }; return (_local2); } public function norm1():Number{ var _local2:int; var _local3:Number; var _local1:Number = 0; var _local4:int; while (_local4 < n) { _local3 = 0; _local2 = 0; while (_local2 < m) { _local3 = (_local3 + Math.abs(A[_local2][_local4])); _local2++; }; _local1 = Math.max(_local1, _local3); _local4++; }; return (_local1); } public function norm2():Number{ return (new SingularValueDecomposition(this).norm2()); } public function plusEquals(_arg1:RealMatrix):RealMatrix{ var _local2:int; checkMatrixDimensions(_arg1); var _local3:int; while (_local3 < m) { _local2 = 0; while (_local2 < n) { A[_local3][_local2] = (A[_local3][_local2] + _arg1.A[_local3][_local2]); _local2++; }; _local3++; }; return (this); } public function removeColumn(_arg1:int):void{ var _local4:int; var _local5:int; var _local2:Array = new Array(A.length); var _local3:int; _local4 = 0; while (_local4 < m) { _local3 = 0; _local2[_local4] = new Array((A[0].length - 1)); _local5 = 0; while (_local5 < (n - 1)) { if (_local5 == _arg1){ _local3++; }; _local2[_local4][_local5] = A[_local4][(_local5 + _local3)]; _local5++; }; _local4++; }; n--; A = _local2; } public function arrayRightDivideEquals(_arg1:RealMatrix):RealMatrix{ var _local2:int; checkMatrixDimensions(_arg1); var _local3:int; while (_local3 < m) { _local2 = 0; while (_local2 < n) { A[_local3][_local2] = (A[_local3][_local2] / _arg1.A[_local3][_local2]); _local2++; }; _local3++; }; return (this); } public static function constructWithCopy(_arg1:Array):RealMatrix{ var _local6:int; var _local2:int = _arg1.length; var _local3:int = _arg1[0].length; var _local4:RealMatrix = new RealMatrix(_local2, _local3); var _local5:Array = _local4.getArray(); var _local7:int; while (_local7 < _local2) { if (_arg1[_local7].length != _local3){ throw (new Error("All rows must have the same length.")); }; _local6 = 0; while (_local6 < _local3) { _local5[_local7][_local6] = _arg1[_local7][_local6]; _local6++; }; _local7++; }; return (_local4); } public static function random(_arg1:int, _arg2:int):RealMatrix{ var _local6:int; var _local3:Object = Math; var _local4:RealMatrix = new RealMatrix(_arg1, _arg2); var _local5:Array = _local4.getArray(); var _local7:int; while (_local7 < _arg1) { _local6 = 0; while (_local6 < _arg2) { _local5[_local7][_local6] = _local3.random(); _local6++; }; _local7++; }; return (_local4); } public static function identity(_arg1:int, _arg2:int):RealMatrix{ var _local5:int; var _local3:RealMatrix = new RealMatrix(_arg1, _arg2); var _local4:Array = _local3.getArray(); var _local6:int; while (_local6 < _arg1) { _local5 = 0; while (_local5 < _arg2) { _local4[_local6][_local5] = ((_local6 == _local5)) ? 1 : 0; _local5++; }; _local6++; }; return (_local3); } } }//package eu.ecb.economia.data.algorithm
Section 85
//SingularValueDecomposition (eu.ecb.economia.data.algorithm.SingularValueDecomposition) package eu.ecb.economia.data.algorithm { public class SingularValueDecomposition { private var _math:Object; private var m:int; private var s:Array; private var U:Array; private var V:Array; private var _maths:Object; private var n:int; public function SingularValueDecomposition(_arg1:RealMatrix){ var _local2:int; var _local5:int; var _local12:int; var _local13:Number; var _local20:int; var _local21:Number; var _local22:Number; var _local23:int; var _local26:Number; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; var _local37:Number; _math = Math; _maths = Maths; super(); var _local3:Array = _arg1.getArrayCopy(); m = _arg1.getRowDimension(); n = _arg1.getColumnDimension(); var _local4:int = _math.min(m, n); s = new Array(_math.min((m + 1), n)); U = new Array(m); _local5 = 0; while (_local5 < U.length) { U[_local5] = new Array(_local4); _local5++; }; V = new Array(n); _local5 = 0; while (_local5 < V.length) { V[_local5] = new Array(m); _local5++; }; var _local6:Array = new Array(n); var _local7:Array = new Array(m); var _local8:Boolean; var _local9:Boolean; var _local10:int = _math.min((m - 1), n); var _local11:int = _math.max(0, _math.min((n - 2), m)); var _local14:int; while (_local14 < _math.max(_local10, _local11)) { if (_local14 < _local10){ s[_local14] = 0; _local5 = _local14; while (_local5 < m) { s[_local14] = _maths.hypot(s[_local14], _local3[_local5][_local14]); _local5++; }; if (s[_local14] != 0){ if (_local3[_local14][_local14] < 0){ s[_local14] = -(s[_local14]); }; _local5 = _local14; while (_local5 < m) { _local3[_local5][_local14] = (_local3[_local5][_local14] / s[_local14]); _local5++; }; _local3[_local14][_local14] = (_local3[_local14][_local14] + 1); }; s[_local14] = -(s[_local14]); }; _local12 = (_local14 + 1); while (_local12 < n) { if ((((_local14 < _local10)) && (!((s[_local14] == 0))))){ _local13 = 0; _local5 = _local14; while (_local5 < m) { _local13 = (_local13 + (_local3[_local5][_local14] * _local3[_local5][_local12])); _local5++; }; _local13 = (-(_local13) / _local3[_local14][_local14]); _local5 = _local14; while (_local5 < m) { _local3[_local5][_local12] = (_local3[_local5][_local12] + (_local13 * _local3[_local5][_local14])); _local5++; }; }; _local6[_local12] = _local3[_local14][_local12]; _local12++; }; if (((_local8) && ((_local14 < _local10)))){ _local5 = _local14; while (_local5 < m) { U[_local5][_local14] = _local3[_local5][_local14]; _local5++; }; }; if (_local14 < _local11){ _local6[_local14] = 0; _local5 = (_local14 + 1); while (_local5 < n) { _local6[_local14] = _maths.hypot(_local6[_local14], _local6[_local5]); _local5++; }; if (_local6[_local14] != 0){ if (_local6[(_local14 + 1)] < 0){ _local6[_local14] = -(_local6[_local14]); }; _local5 = (_local14 + 1); while (_local5 < n) { _local6[_local5] = (_local6[_local5] / _local6[_local14]); _local5++; }; _local6[(_local14 + 1)] = (_local6[(_local14 + 1)] + 1); }; _local6[_local14] = -(_local6[_local14]); if (((((_local14 + 1) < m)) && (!((_local6[_local14] == 0))))){ _local5 = (_local14 + 1); while (_local5 < m) { _local7[_local5] = 0; _local5++; }; _local12 = (_local14 + 1); while (_local12 < n) { _local5 = (_local14 + 1); while (_local5 < m) { _local7[_local5] = (_local7[_local5] + (_local6[_local12] * _local3[_local5][_local12])); _local5++; }; _local12++; }; _local12 = (_local14 + 1); while (_local12 < n) { _local13 = (-(_local6[_local12]) / _local6[(_local14 + 1)]); _local5 = (_local14 + 1); while (_local5 < m) { _local3[_local5][_local12] = (_local3[_local5][_local12] + (_local13 * _local7[_local5])); _local5++; }; _local12++; }; }; if (_local9){ _local5 = (_local14 + 1); while (_local5 < n) { V[_local5][_local14] = _local6[_local5]; _local5++; }; }; }; _local14++; }; var _local15:int = _math.min(n, (m + 1)); if (_local10 < n){ s[_local10] = _local3[_local10][_local10]; }; if (m < _local15){ s[(_local15 - 1)] = 0; }; if ((_local11 + 1) < _local15){ _local6[_local11] = _local3[_local11][(_local15 - 1)]; }; _local6[(_local15 - 1)] = 0; if (_local8){ _local12 = _local10; while (_local12 < _local4) { _local5 = 0; while (_local5 < m) { U[_local5][_local12] = 0; _local5++; }; U[_local12][_local12] = 1; _local12++; }; _local14 = (_local10 - 1); while (_local14 >= 0) { if (s[_local14] != 0){ _local12 = (_local14 + 1); while (_local12 < _local4) { _local13 = 0; _local5 = _local14; while (_local5 < m) { _local13 = (_local13 + (U[_local5][_local14] * U[_local5][_local12])); _local5++; }; _local13 = (-(_local13) / U[_local14][_local14]); _local5 = _local14; while (_local5 < m) { U[_local5][_local12] = (U[_local5][_local12] + (_local13 * U[_local5][_local14])); _local5++; }; _local12++; }; _local5 = _local14; while (_local5 < m) { U[_local5][_local14] = -(U[_local5][_local14]); _local5++; }; U[_local14][_local14] = (1 + U[_local14][_local14]); _local5 = 0; while (_local5 < (_local14 - 1)) { U[_local5][_local14] = 0; _local5++; }; } else { _local5 = 0; while (_local5 < m) { U[_local5][_local14] = 0; _local5++; }; U[_local14][_local14] = 1; }; _local14--; }; }; if (_local9){ _local14 = (n - 1); while (_local14 >= 0) { if ((((_local14 < _local11)) && (!((_local6[_local14] == 0))))){ _local12 = (_local14 + 1); while (_local12 < _local4) { _local13 = 0; _local5 = (_local14 + 1); while (_local5 < n) { _local13 = (_local13 + (V[_local5][_local14] * V[_local5][_local12])); _local5++; }; _local13 = (-(_local13) / V[(_local14 + 1)][_local14]); _local5 = (_local14 + 1); while (_local5 < n) { V[_local5][_local12] = (V[_local5][_local12] + (_local13 * V[_local5][_local14])); _local5++; }; _local12++; }; }; _local5 = 0; while (_local5 < n) { V[_local5][_local14] = 0; _local5++; }; V[_local14][_local14] = 1; _local14--; }; }; var _local16:int = (_local15 - 1); var _local17:int; var _local18:Number = _math.pow(2, -52); var _local19:Number = _math.pow(2, -966); var _local24:int; var _local25:Boolean; while (_local15 > 0) { _local14 = (_local15 - 2); while (_local14 >= -1) { if (_local25){ trace(("k: " + _local14)); }; if (_local14 == -1){ break; }; if (_math.abs(_local6[_local14]) <= (_local19 + (_local18 * (_math.abs(s[_local14]) + _math.abs(s[(_local14 + 1)]))))){ _local6[_local14] = 0; break; } else { if (_local25){ trace(((("e[k]: " + _math.abs(_local6[_local14])) + " sth: ") + (_local19 + (_local18 * (_math.abs(s[_local14]) + _math.abs(s[(_local14 + 1)])))))); }; }; _local14--; }; if (_local14 == (_local15 - 2)){ _local23 = 4; } else { _local20 = (_local15 - 1); while (_local20 >= _local14) { if (_local20 == _local14){ break; }; _local21 = (((_local20)!=_local15) ? _math.abs(_local6[_local20]) : 0 + ((_local20)!=(_local14 + 1)) ? _math.abs(_local6[(_local20 - 1)]) : 0); if (_math.abs(s[_local20]) <= (_local19 + (_local18 * _local21))){ s[_local20] = 0; break; }; _local20--; }; if (_local20 == _local14){ _local23 = 3; } else { if (_local20 == (_local15 - 1)){ _local23 = 1; } else { _local23 = 2; _local14 = _local20; }; }; }; _local14++; switch (_local23){ case 1: _local22 = _local6[(_local15 - 2)]; _local6[(_local15 - 2)] = 0; _local12 = (_local15 - 2); while (_local12 >= _local14) { _local13 = _maths.hypot(s[_local12], _local22); _local26 = (s[_local12] / _local13); _local27 = (_local22 / _local13); s[_local12] = _local13; if (_local12 != _local14){ _local22 = (-(_local27) * _local6[(_local12 - 1)]); _local6[(_local12 - 1)] = (_local26 * _local6[(_local12 - 1)]); }; if (_local9){ _local5 = 0; while (_local5 < n) { _local13 = ((_local26 * V[_local5][_local12]) + (_local27 * V[_local5][(_local15 - 1)])); V[_local5][(_local15 - 1)] = ((-(_local27) * V[_local5][_local12]) + (_local26 * V[_local5][(_local15 - 1)])); V[_local5][_local12] = _local13; _local5++; }; }; _local12--; }; break; case 2: _local22 = _local6[(_local14 - 1)]; _local6[(_local14 - 1)] = 0; _local12 = _local14; while (_local12 < _local15) { _local21 = _maths.hypot(s[_local12], _local22); _local26 = (s[_local12] / _local21); _local27 = (_local22 / _local21); s[_local12] = _local21; _local22 = (-(_local27) * _local6[_local12]); _local6[_local12] = (_local26 * _local6[_local12]); if (_local8){ _local5 = 0; while (_local5 < m) { _local21 = ((_local26 * U[_local5][_local12]) + (_local27 * U[_local5][(_local14 - 1)])); U[_local5][(_local14 - 1)] = ((-(_local27) * U[_local5][_local12]) + (_local26 * U[_local5][(_local14 - 1)])); U[_local5][_local12] = _local21; _local5++; }; }; _local12++; }; break; case 3: _local28 = _math.max(_math.max(_math.max(_math.max(_math.abs(s[(_local15 - 1)]), _math.abs(s[(_local15 - 2)])), _math.abs(_local6[(_local15 - 2)])), _math.abs(s[_local14])), _math.abs(_local6[_local14])); _local29 = (s[(_local15 - 1)] / _local28); _local30 = (s[(_local15 - 2)] / _local28); _local31 = (_local6[(_local15 - 2)] / _local28); _local32 = (s[_local14] / _local28); _local33 = (_local6[_local14] / _local28); _local34 = ((((_local30 + _local29) * (_local30 - _local29)) + (_local31 * _local31)) / 2); _local35 = ((_local29 * _local31) * (_local29 * _local31)); _local36 = 0; if (((!((_local34 == 0))) || (!((_local35 == 0))))){ _local36 = _math.sqrt(((_local34 * _local34) + _local35)); if (_local34 < 0){ _local36 = -(_local36); }; _local36 = (_local35 / (_local34 + _local36)); }; _local22 = (((_local32 + _local29) * (_local32 - _local29)) + _local36); _local37 = (_local32 * _local33); _local12 = _local14; while (_local12 < (_local15 - 1)) { _local21 = _maths.hypot(_local22, _local37); _local26 = (_local22 / _local21); _local27 = (_local37 / _local21); if (_local12 != _local14){ _local6[(_local12 - 1)] = _local21; }; _local22 = ((_local26 * s[_local12]) + (_local27 * _local6[_local12])); _local6[_local12] = ((_local26 * _local6[_local12]) - (_local27 * s[_local12])); _local37 = (_local27 * s[(_local12 + 1)]); s[(_local12 + 1)] = (_local26 * s[(_local12 + 1)]); if (_local9){ _local5 = 0; while (_local5 < n) { _local21 = ((_local26 * V[_local5][_local12]) + (_local27 * V[_local5][(_local12 + 1)])); V[_local5][(_local12 + 1)] = ((-(_local27) * V[_local5][_local12]) + (_local26 * V[_local5][(_local12 + 1)])); V[_local5][_local12] = _local21; _local5++; }; }; _local21 = _maths.hypot(_local22, _local37); _local26 = (_local22 / _local21); _local27 = (_local37 / _local21); s[_local12] = _local21; _local22 = ((_local26 * _local6[_local12]) + (_local27 * s[(_local12 + 1)])); s[(_local12 + 1)] = ((-(_local27) * _local6[_local12]) + (_local26 * s[(_local12 + 1)])); _local37 = (_local27 * _local6[(_local12 + 1)]); _local6[(_local12 + 1)] = (_local26 * _local6[(_local12 + 1)]); if (((_local8) && ((_local12 < (m - 1))))){ _local5 = 0; while (_local5 < m) { _local21 = ((_local26 * U[_local5][_local12]) + (_local27 * U[_local5][(_local12 + 1)])); U[_local5][(_local12 + 1)] = ((-(_local27) * U[_local5][_local12]) + (_local26 * U[_local5][(_local12 + 1)])); U[_local5][_local12] = _local21; _local5++; }; }; _local12++; }; _local6[(_local15 - 2)] = _local22; _local17 = (_local17 + 1); break; case 4: if (s[_local14] <= 0){ s[_local14] = ((s[_local14] < 0)) ? -(s[_local14]) : 0; if (_local9){ _local5 = 0; while (_local5 <= _local16) { V[_local5][_local14] = -(V[_local5][_local14]); _local5++; }; }; }; while (_local14 < _local16) { if (s[_local14] >= s[(_local14 + 1)]){ break; }; _local21 = s[_local14]; s[_local14] = s[(_local14 + 1)]; s[(_local14 + 1)] = _local21; if (((_local9) && ((_local14 < (n - 1))))){ _local5 = 0; while (_local5 < n) { _local21 = V[_local5][(_local14 + 1)]; V[_local5][(_local14 + 1)] = V[_local5][_local14]; V[_local5][_local14] = _local21; _local5++; }; }; if (((_local8) && ((_local14 < (m - 1))))){ _local5 = 0; while (_local5 < m) { _local21 = U[_local5][(_local14 + 1)]; U[_local5][(_local14 + 1)] = U[_local5][_local14]; U[_local5][_local14] = _local21; _local5++; }; }; _local14++; }; _local17 = 0; _local15--; break; }; }; } public function getV():RealMatrix{ return (new RealMatrix(V, n, n)); } public function getS():RealMatrix{ var _local3:int; var _local1:RealMatrix = new RealMatrix(n, n); var _local2:Array = _local1.getArray(); var _local4:int; while (_local4 < n) { _local3 = 0; while (_local3 < n) { _local2[_local4][_local3] = 0; _local3++; }; _local2[_local4][_local4] = this.s[_local4]; _local4++; }; return (_local1); } public function norm2():Number{ return (s[0]); } public function cond():Number{ return ((s[0] / s[(_math.min(m, n) - 1)])); } public function getSingularValues():Array{ return (s); } public function rank():int{ var _local1:Number = _math.pow(2, -52); var _local2:Number = ((_math.max(m, n) * s[0]) * _local1); var _local3:int; var _local4:int; while (_local4 < s.length) { if (s[_local4] > _local2){ _local3++; }; _local4++; }; return (_local3); } public function getU():RealMatrix{ return (new RealMatrix(U, m, _math.min((m + 1), n))); } } }//package eu.ecb.economia.data.algorithm
Section 86
//GameDataPool (eu.ecb.economia.data.GameDataPool) package eu.ecb.economia.data { import flash.events.*; import de.aperto.managers.*; import de.aperto.utils.*; import eu.ecb.economia.data.algorithm.*; import flash.net.*; import com.adobe.serialization.json.*; import nl.demonsters.debugger.*; import eu.ecb.economia.*; import eu.ecb.economia.net.*; public class GameDataPool { private var _xmlProgressCallback:Function; private var _amountAwards:int; private var _currentQuarter:int; private var _userage:String; public var userWriteInHighscore:Boolean; public var settings:GameDataSettings; private var _awardArr:Array; private var _templateTeamMessageID:int; private var _ratesArr:Array; private var _loader:URLLoader; private var _username:String; private var _xmlOnLoadCallback:Function; private var _settingsXML:XML; private var _templateXMLData:Object; private var _amountPlayersInHighscore:Number; private var _economicDataArr:Array; private var _economicDataForecastArr:Array; private var _multigraphboxIsOpen:Boolean; private var _gameImagesOnLoad:Boolean; private var _pressDataArr:Array; private var _awardWinningAtCurrentQuarter:Boolean; private var _teamDataArr:Array; private var _userPlaceInHighscoreList:Number; private var _currentGameShocks:Array; private var _currentYear:int; private var _templatePressMessageID:int; private var __onTheRocks:Array; private var _gameAlgorithm:GameAlgorithm; private var _gamePerformance:Object; private var _xmlLoadHandlerArr:Array; public var onPerformenceCheck:Boolean; public var uuid:String; public var showMapInfoLayer:Boolean; private var _keyInterestRate:Number;// = 0 private var _multigraphboxLastActiveFilter:Array; private var _gameOverTemplateToBeOnDisplayed:Boolean; public function GameDataPool(_arg1:GameAlgorithm){ _templateXMLData = {}; __onTheRocks = [["K", "h", "G", "o", "k"], ["7", "u", "p", "M", "m", "e", "3"]]; super(); settings = new GameDataSettings(); _gameAlgorithm = _arg1; reset(); } public function getEconomicRawData():Object{ return (_gameAlgorithm.economicRawData); } public function get allQuarters():int{ return ((currentQuarter + ((currentYear - 1) * 4))); } public function get gameImagesOnLoad():Boolean{ return (_gameImagesOnLoad); } public function getUUID():void{ var _local1:String = gameSettingsXML.highscoreSendAndLoadUri.@src.toString(); if (!_local1){ return; }; if (!_loader){ _loader = new URLLoader(); }; var _local2:URLRequest = new URLRequest(); _local2.url = ((_local1 + "?callFunction=getUuid&cachekiller=") + Math.round((Math.random() * 1000000000))); _local2.method = URLRequestMethod.POST; _loader.addEventListener(Event.COMPLETE, getUUIDCompleteHandler); _loader.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); _loader.load(_local2); } public function set gameImagesOnLoad(_arg1:Boolean):void{ _gameImagesOnLoad = _arg1; } public function set pressDataArr(_arg1:Array):void{ _pressDataArr = _arg1; } public function get keyInterestRate():Number{ return (_keyInterestRate); } public function get templateTeamMessageID():int{ return (_templateTeamMessageID); } public function get userPlaceInHighscoreList():Number{ return (_userPlaceInHighscoreList); } public function get multigraphboxIsOpen():Boolean{ return (_multigraphboxIsOpen); } public function get teamDataArr():Array{ return (_teamDataArr); } public function get economicData():Array{ return (_economicDataArr); } public function set awardWinningAtCurrentQuarter(_arg1:Boolean):void{ _awardWinningAtCurrentQuarter = _arg1; } public function set gameSettingsXML(_arg1:XML):void{ _settingsXML = _arg1; if (settings == null){ settings = new GameDataSettings(); }; settings.termInOffice = parseInt(_settingsXML.termInOffice.@val); settings.gameStartYear = parseInt(_settingsXML.gameStartYear.@val); settings.amountAwards = parseInt(_settingsXML.amountAwards.@val); settings.currentKeyInterestRate = parseFloat(_settingsXML.currentKeyInterestRate.@val); } public function reset():void{ _currentYear = Defaults.BEGINNING_GAME_YEAR; _currentQuarter = 1; keyInterestRate = settings.currentKeyInterestRate; _economicDataArr = []; _economicDataForecastArr = []; _userPlaceInHighscoreList = 0; _amountPlayersInHighscore = 0; _amountAwards = 0; _awardArr = []; _pressDataArr = []; _teamDataArr = []; _ratesArr = []; _templatePressMessageID = 1; _templateTeamMessageID = -1; _currentGameShocks = [-1, -1]; _multigraphboxLastActiveFilter = []; _gamePerformance = {cup:0, exit:-1, indicator:0, inflAverage:0, perform_headline:0, perform_pi:0, perform_vol:0, points:0}; showMapInfoLayer = true; userWriteInHighscore = false; gameOverTemplateToBeOnDisplayed = false; } public function get gameOverTemplateToBeOnDisplayed():Boolean{ return (_gameOverTemplateToBeOnDisplayed); } public function set keyInterestRate(_arg1:Number):void{ _keyInterestRate = _arg1; } public function get userage():String{ return (_userage); } private function __xmlDataOnLoad(_arg1:XML, _arg2:String=""):void{ var _local4:String; var _local5:String; var _local3:Array = _xmlLoadHandlerArr; MonsterDebugger.trace(null, _arg1, 0xFF00); var _local6:int; while (_local6 < _local3.length) { _local4 = _local3[_local6].url; _local5 = _local3[_local6].type; if (_local4 == _arg2){ _templateXMLData[_local5] = _arg1; _local3.splice(_local3.indexOf(_local3[_local6]), 1); if (_local5 == "team"){ _gameAlgorithm.currentTeam = _arg1; }; if (_local5 == "press"){ _gameAlgorithm.currentPress = _arg1; }; }; _local6++; }; _xmlLoadHandlerArr = _local3; if ((((_local3.length == 0)) && (!((_xmlOnLoadCallback == null))))){ _xmlOnLoadCallback(); }; } public function get currentYear():int{ return (_currentYear); } public function set gameOverTemplateToBeOnDisplayed(_arg1:Boolean):void{ _gameOverTemplateToBeOnDisplayed = _arg1; } public function get economicDataForecast():Array{ return (_economicDataForecastArr); } public function set multigraphboxIsOpen(_arg1:Boolean):void{ _multigraphboxIsOpen = _arg1; } public function set amountAwards(_arg1:int):void{ _amountAwards = _arg1; } public function set templateTeamMessageID(_arg1:int):void{ _templateTeamMessageID = _arg1; } public function get rhinozeros():String{ var _local1 = ""; var _local2:Array = (__onTheRocks[1] as Array).slice(); _local2.reverse(); var _local3:int; while (_local3 < _local2.length) { _local1 = (_local1 + _local2[_local3]); _local3++; }; return (_local1); } public function get amountAwards():int{ return (_amountAwards); } public function set userPlaceInHighscoreList(_arg1:Number):void{ _userPlaceInHighscoreList = _arg1; } private function ioErrorHandler(_arg1:IOErrorEvent):void{ _loader.removeEventListener(Event.COMPLETE, getUUIDCompleteHandler); _loader.removeEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); } public function get xmlData():Object{ return (_templateXMLData); } public function set teamDataArr(_arg1:Array):void{ _teamDataArr = _arg1; } public function set economicData(_arg1:Array):void{ _economicDataArr = _arg1; } public function get templatePressMessageID():int{ return (_templatePressMessageID); } public function getAverageInflationRate():Number{ return (_gameAlgorithm.getPerformance().inflAverage); } private function getUUIDCompleteHandler(_arg1:Event):void{ _loader.removeEventListener(Event.COMPLETE, getUUIDCompleteHandler); _loader.removeEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); var _local2:Object = JSON.decode(_arg1.target.data); if (((_local2) && (_local2.uuid))){ uuid = (_local2.uuid as String); } else { uuid = "-1"; }; } public function set awardArr(_arg1:Array):void{ _awardArr = _arg1; } public function get galapagos():String{ var _local1 = ""; var _local2:Array = (__onTheRocks[0] as Array).slice(); _local2.reverse(); var _local3:int; while (_local3 < _local2.length) { _local1 = (_local1 + _local2[_local3]); _local3++; }; return (_local1); } public function get pressDataArr():Array{ return (_pressDataArr); } public function get awardWinningAtCurrentQuarter():Boolean{ return (_awardWinningAtCurrentQuarter); } public function get gameSettingsXML():XML{ return (_settingsXML); } public function set userage(_arg1:String):void{ _userage = _arg1; } public function set currentYear(_arg1:int):void{ _currentYear = _arg1; } public function set currentGameShock(_arg1:int):void{ _currentGameShocks.push(_arg1); } public function set username(_arg1:String):void{ _username = _arg1; } public function set economicDataForecast(_arg1:Array):void{ _economicDataForecastArr = _arg1; } public function loadGameXMLFiles(_arg1:Function, _arg2:Function):void{ var _local4:Object; var _local5:String; var _local6:int; _xmlOnLoadCallback = _arg1; _xmlProgressCallback = _arg2; _templateXMLData = {}; var _local3:Array = []; var _local7:int = gameSettingsXML.templates.template.length(); var _local8:XML = XML(gameSettingsXML.templates); var _local9 = (("." + Develop.Instance.language) + ".xml"); _local6 = 0; while (_local6 < _local7) { _local5 = String(((Develop.Instance.serverRoot + _local8.template[_local6].@src) + _local9)); _local3.push({url:_local5, type:_local8.template[_local6].@type}); _local6++; }; _local6 = 0; while (_local6 < _local3.length) { DataLoader.loadXML(_local3[_local6].url, __xmlDataOnLoad, __xmlOnProgress, true); _local6++; }; _xmlLoadHandlerArr = _local3; } public function set gamePerformance(_arg1:Object):void{ _gamePerformance = _arg1; } private function __xmlOnProgress(_arg1:Number, _arg2:String=""):void{ if (_xmlProgressCallback != null){ _xmlProgressCallback(_arg1); }; } public function get awardArr():Array{ return (_awardArr); } public function get username():String{ return (_username); } public function getEconomicDataForecast(_arg1:int=1):Array{ _gameAlgorithm.calcNextQuarterForecast(_arg1, _keyInterestRate); return ((_gameAlgorithm.getForecastData() as Array)); } public function set multigraphboxLastActiveFilter(_arg1:Array):void{ _multigraphboxLastActiveFilter = _arg1; } public function get gamePerformance():Object{ return (_gamePerformance); } public function set amountPlayersInHighscore(_arg1:Number):void{ _amountPlayersInHighscore = _arg1; } public function setGameFilters(_arg1:XML):void{ var _local2:Object; _ratesArr = []; var _local3:int = _arg1.filter.length(); var _local4:int; while (_local4 < _local3) { _local2 = {}; _local2.description = LabelManager.Instance.getString(_arg1.filter[_local4].@labelId); _local2.filterId = parseInt(_arg1.filter[_local4].@filterId); _local2.filterColor = parseInt(_arg1.filter[_local4].@filterColor); _ratesArr[_local2.id] = _local2; _local4++; }; } public function set currentQuarter(_arg1:int):void{ _currentQuarter = _arg1; } public function get amountPlayersInHighscore():Number{ return (_amountPlayersInHighscore); } public function set templatePressMessageID(_arg1:int):void{ _templatePressMessageID = _arg1; } public function get currentQuarter():int{ return (_currentQuarter); } public function get multigraphboxLastActiveFilter():Array{ return (_multigraphboxLastActiveFilter); } public function get currentGameShocks():Array{ return (_currentGameShocks); } } }//package eu.ecb.economia.data
Section 87
//GameDataSettings (eu.ecb.economia.data.GameDataSettings) package eu.ecb.economia.data { public class GameDataSettings { public var currentKeyInterestRate:Number; public var termInOffice:int; public var maxQuarters:int; public var gameStartYear:int; public var amountAwards:int; } }//package eu.ecb.economia.data
Section 88
//HighscoreEvent (eu.ecb.economia.events.templates.highscore.HighscoreEvent) package eu.ecb.economia.events.templates.highscore { import flash.events.*; public class HighscoreEvent extends Event { public static const LIST_ON_CLEAR:String = "PaperEvent_ListOnClear"; public function HighscoreEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false){ super(_arg1, _arg2, _arg3); } } }//package eu.ecb.economia.events.templates.highscore
Section 89
//MapEvent (eu.ecb.economia.events.templates.map.MapEvent) package eu.ecb.economia.events.templates.map { import flash.events.*; public class MapEvent extends Event { public static const ON_NEW_SHOCK:String = "MapEvent_OnNewShock"; public function MapEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false){ super(_arg1, _arg2, _arg3); } } }//package eu.ecb.economia.events.templates.map
Section 90
//PaperEvent (eu.ecb.economia.events.templates.press.PaperEvent) package eu.ecb.economia.events.templates.press { import flash.events.*; public class PaperEvent extends Event { public static const ON_REMOVE:String = "PaperEvent_OnRemove"; public static const INIT:String = "PaperEvent_Init"; public static const MOUSE_OUT:String = "PaperEvent_MouseOut"; public static const MOUSE_OVER:String = "PaperEvent_MouseOver"; public function PaperEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false){ super(_arg1, _arg2, _arg3); } } }//package eu.ecb.economia.events.templates.press
Section 91
//ButtonEvent (eu.ecb.economia.events.ButtonEvent) package eu.ecb.economia.events { import flash.events.*; public class ButtonEvent extends Event { public static const MOUSE_OUT:String = "NavigationEvent_ButtonOnMouseOut"; public static const MOUSE_UP:String = "NavigationEvent_ButtonOnMouseUp"; public static const CLICK:String = "NavigationEvent_ButtonOnClick"; public static const MOUSE_DOWN:String = "NavigationEvent_ButtonOnMouseDown"; public static const MOUSE_OVER:String = "NavigationEvent_ButtonOnMouseOver"; public function ButtonEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false){ super(_arg1, _arg2, _arg3); } } }//package eu.ecb.economia.events
Section 92
//GameEvent (eu.ecb.economia.events.GameEvent) package eu.ecb.economia.events { import flash.events.*; public class GameEvent extends Event { public var percent:int; public static const ON_NEXT_QUARTER:int = 1; public static const READY:String = "GameEvent_ready"; public static const NEW_AWARD:int = 115; public static const SLIDER_UP:int = 112; public static const ON_PROGRESS:String = "GameEvent_progress"; public static const SLIDER_DOWN:int = 111; public static const DATA_ON_LOAD:String = "GameEvent_dataOnLoad"; public static const TIME_FOR_PERFORMENCE_CHECK:int = 116; public static const SLIDER_ARROW_BUTTON_UP:int = 114; public static const SLIDER_MOVE:int = 113; public static const ON_SLIDE:int = 2; public function GameEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false, _arg4:int=0){ percent = _arg4; super(_arg1, _arg2, _arg3); } } }//package eu.ecb.economia.events
Section 93
//GraphboxEvent (eu.ecb.economia.events.GraphboxEvent) package eu.ecb.economia.events { import flash.events.*; public class GraphboxEvent extends Event { public static const MULTI_ON_SHRINK:String = "GraphboxEvent_MultiOnShrink"; public static const MULTI_ON_EXPAND:String = "GraphboxEvent_MultiOnExpand"; public static const MULTI_ON_UPDATE:String = "GraphboxEvent_MultiOnUpdate"; public static const MULTI_ON_CHANGE:String = "GraphboxEvent_MultiOnChange"; public function GraphboxEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false){ super(_arg1, _arg2, _arg3); } } }//package eu.ecb.economia.events
Section 94
//NavigationBarEvent (eu.ecb.economia.events.NavigationBarEvent) package eu.ecb.economia.events { import flash.events.*; public class NavigationBarEvent extends Event { public var buttonId:int; public static const NAV_BUTTON_ON_CLICK:String = "NavigationBarEvent_NavButtonOnClick"; public static const BIG_BUTTON_ON_CLICK:String = "NavigationBarEvent_BigButtonOnClick"; public function NavigationBarEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false, _arg4:int=-1){ buttonId = _arg4; super(_arg1, _arg2, _arg3); } } }//package eu.ecb.economia.events
Section 95
//TemplateControllerEvent (eu.ecb.economia.events.TemplateControllerEvent) package eu.ecb.economia.events { import flash.events.*; public class TemplateControllerEvent extends Event { public static const PAGE_ON_INIT:String = "TemplateControllerEvent_PageOnInit"; public static const PAGE_ON_CHANGE:String = "TemplateControllerEvent_PageOnChange"; public static const PAGE_ON_XML_ON_LOAD:String = "TemplateControllerEvent_PageXMLOnLoad"; public static const PAGE_ON_XML_ERROR:String = "TemplateControllerEvent_PageOnXMLError"; public static const PAGE_ON_REMOVE:String = "TemplateControllerEvent_PageOnRemove"; public static const PAGE_ON_UPDATE:String = "TemplateControllerEvent_PageOnUpdate"; public function TemplateControllerEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false){ super(_arg1, _arg2, _arg3); } } }//package eu.ecb.economia.events
Section 96
//TemplateEvent (eu.ecb.economia.events.TemplateEvent) package eu.ecb.economia.events { import flash.events.*; public class TemplateEvent extends Event { public static const ON_CHANGE:String = "TemplateEvent_OnChange"; public static const ON_REMOVE:String = "TemplateEvent_OnRemove"; public static const ON_UPDATE:String = "TemplateEvent_OnUpdate"; public static const INIT:String = "TemplateEvent_Init"; public function TemplateEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false){ super(_arg1, _arg2, _arg3); } } }//package eu.ecb.economia.events
Section 97
//MainView (eu.ecb.economia.game.mainview.MainView) package eu.ecb.economia.game.mainview { import flash.events.*; import flash.display.*; import eu.ecb.economia.game.*; import eu.ecb.economia.templates.*; import de.aperto.utils.*; import eu.ecb.economia.*; public class MainView extends Sprite { private var _ground:Sprite; private var _mask:Sprite; private var _templateControllerContainer:Sprite; private var _game:Game; private var _templateController:TemplateController; public function MainView(){ addEventListener(Event.ADDED_TO_STAGE, __addedOnStage); } public function getTemplateController():TemplateController{ return (_templateController); } override public function get height():Number{ return (Defaults.GAME_STAGE_HEIGHT); } private function __addGround():void{ _ground = DrawUtils.getRect(Defaults.GAME_STAGE_WIDTH, Defaults.GAME_STAGE_HEIGHT, 0xEAEAEA); this.addChild(_ground); } private function __addMask():void{ _mask = DrawUtils.getRect(Defaults.GAME_STAGE_WIDTH, Defaults.GAME_STAGE_HEIGHT); this.addChild(_mask); _templateControllerContainer.mask = _mask; } public function init(_arg1:Game):void{ _game = _arg1; __addGround(); __addTemplateController(); __addMask(); } private function __addTemplateController():void{ _templateControllerContainer = new Sprite(); this.addChild(_templateControllerContainer); _templateController = new TemplateController(); _templateControllerContainer.addChild(_templateController); _templateController.setup(_game); } override public function get width():Number{ return (Defaults.GAME_STAGE_WIDTH); } private function __addedOnStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, __addedOnStage); } } }//package eu.ecb.economia.game.mainview
Section 98
//MainNavigation (eu.ecb.economia.game.navigationbar.mainnavigation.MainNavigation) package eu.ecb.economia.game.navigationbar.mainnavigation { import flash.events.*; import eu.ecb.economia.events.*; import de.aperto.managers.*; import flash.display.*; import eu.ecb.economia.game.navigationbar.*; import de.aperto.utils.*; import eu.ecb.economia.ui.buttons.*; import eu.ecb.economia.*; import eu.ecb.economia.ui.buttons.mainnavbutton.*; public class MainNavigation extends Sprite { private var _itemsArr:Array; private var _amountItems:int; private var _itemContainer:Sprite; private var _xml:XML; private var _itemContainerMask:Sprite; public function MainNavigation(){ _xml = XML(XMLManager.Instance.logicXML.navigationbar.mainnavigation); addEventListener(Event.ADDED_TO_STAGE, __addedOnStage); } private function __addContainer():void{ _itemContainer = new Sprite(); this.addChild(_itemContainer); } private function __addButtons():void{ var _local1:Button; _amountItems = _xml.item.length(); _itemsArr = []; var _local2:Number = int(((Defaults.GAME_BANDEROLE_WIDTH / _amountItems) + 0.5)); var _local3:Number = 0; var _local4:Number = 0; var _local5:Number = 0; var _local6:int; while (_local6 < _amountItems) { _local1 = new MainNavButton(XML(_xml.item[_local6]), (_local6 > 0)); _local1.id = _local6; _local1.templateId = parseInt(_xml.item[_local6].@templateId); _local1.width = _local2; _local1.height = NavigationBarSettings.MAINNAVBUTTON_HEIGHT; _local1.x = _local3; _local1.y = _local4; _local1.alertId = parseInt(_xml.item[_local6].@alertId); _local3 = (_local3 + (_local1.width + _local5)); _local1.addEventListener(ButtonEvent.CLICK, __buttonEventHandler); _itemsArr[_local6] = _local1; _itemContainer.addChild(_local1); _local6++; }; } public function getActiveButton():Button{ var _local1:Button; var _local2:int; while (_local2 < _itemsArr.length) { _local1 = (_itemsArr[_local2] as Button); if (_local1.isActive){ break; }; _local2++; }; return (_local1); } private function __buttonEventHandler(_arg1:ButtonEvent):void{ switch (_arg1.type){ case ButtonEvent.CLICK: break; }; } override public function get height():Number{ return (NavigationBarSettings.MAINNAVBUTTON_HEIGHT); } public function get itemsArray():Array{ return (_itemsArr); } public function setActiveButton(_arg1:int):void{ (_itemsArr[_arg1] as Button).isActive = true; } private function __addedOnStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, __addedOnStage); __addContainer(); __addButtons(); } } }//package eu.ecb.economia.game.navigationbar.mainnavigation
Section 99
//SliderBar (eu.ecb.economia.game.navigationbar.sliderbar.SliderBar) package eu.ecb.economia.game.navigationbar.sliderbar { import flash.events.*; import de.aperto.managers.*; import flash.display.*; import eu.ecb.economia.modules.*; public class SliderBar extends Sprite { private var _slider:Slider; private var _sliderTimeLine:Bitmap; private var _updateCallback:Function; public function SliderBar(_arg1:Function){ _updateCallback = _arg1; this.visible = false; this.alpha = 0; addEventListener(Event.ADDED_TO_STAGE, __addedOnStage); } public function hide():void{ this.visible = false; } private function __onHide():void{ this.visible = false; } private function __addTimeLine():void{ var _local1:BitmapData = new (LibraryManager.Instance.getClass("SliderTimeLine") as Class)(0, 0); _sliderTimeLine = new Bitmap(_local1, "auto", true); this.addChild(_sliderTimeLine); } public function update(_arg1:Number):void{ _slider.update(_arg1); } private function __addSlider():void{ _slider = new Slider(_updateCallback); this.addChild(_slider); } public function get value():Number{ return (_slider.value); } private function __onShow():void{ } public function show():void{ this.visible = true; this.alpha = 1; } private function __addedOnStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, __addedOnStage); __addTimeLine(); __addSlider(); } } }//package eu.ecb.economia.game.navigationbar.sliderbar
Section 100
//SubNavigation (eu.ecb.economia.game.navigationbar.subnavigation.SubNavigation) package eu.ecb.economia.game.navigationbar.subnavigation { import flash.events.*; import eu.ecb.economia.events.*; import de.aperto.managers.*; import flash.display.*; import com.greensock.*; import de.aperto.utils.*; import eu.ecb.economia.ui.buttons.*; import eu.ecb.economia.*; import com.greensock.easing.*; import eu.ecb.economia.ui.buttons.subnavbutton.*; public class SubNavigation extends Sprite { private var _itemsArr:Array; private var _amountItems:int; private var _itemContainer:Sprite; private var _index:int; private var _xml:XML; private var _itemContainerMask:Sprite; public function SubNavigation(_arg1:int){ this.visible = false; _xml = XML(XMLManager.Instance.logicXML.navigationbar.subnavigation); _index = _arg1; addEventListener(Event.ADDED_TO_STAGE, __addedOnStage); } public function setActiveButton(_arg1:int):void{ (_itemsArr[_arg1] as Button).isActive = true; } private function __addContainer():void{ _itemContainer = new Sprite(); this.addChild(_itemContainer); } private function __addButtons():void{ var _local1:Button; _amountItems = _xml.item.length(); _itemsArr = []; var _local2:Number = int(((Defaults.GAME_BANDEROLE_WIDTH / _amountItems) + 0.5)); var _local3:Number = 0; var _local4:Number = 0; var _local5:Number = 0; var _local6:int; while (_local6 < _amountItems) { _local1 = new SubNavButton(XML(_xml.item[_local6])); _itemContainer.addChild(_local1); _local1.id = _index; _local1.templateId = parseInt(_xml.item[_local6].@templateId); _local1.x = _local3; _local1.y = _local4; _local1.alertId = parseInt(_xml.item[_local6].@alertId); _local3 = (_local3 + (_local1.width + _local5)); _local1.addEventListener(ButtonEvent.CLICK, __buttonEventHandler); _itemsArr[_local6] = _local1; _index++; _local6++; }; } public function getActiveButton():Button{ var _local1:Button; var _local2:int; while (_local2 < _itemsArr.length) { _local1 = (_itemsArr[_local2] as Button); if (_local1.isActive){ break; }; _local2++; }; return (_local1); } private function __buttonEventHandler(_arg1:ButtonEvent):void{ switch (_arg1.type){ case ButtonEvent.CLICK: break; }; } public function get itemsArray():Array{ return (_itemsArr); } public function show():void{ this.visible = true; TweenMax.to(this, 20, {y:this.y, useFrames:true, overwrite:true, ease:Emotion.strongInSoftOut}); this.y = (this.y - this.height); } private function __addedOnStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, __addedOnStage); __addContainer(); __addButtons(); } } }//package eu.ecb.economia.game.navigationbar.subnavigation
Section 101
//NavigationBar (eu.ecb.economia.game.navigationbar.NavigationBar) package eu.ecb.economia.game.navigationbar { import flash.events.*; import eu.ecb.economia.events.*; import de.aperto.managers.*; import flash.display.*; import com.greensock.*; import eu.ecb.economia.game.*; import eu.ecb.economia.templates.*; import de.aperto.utils.*; import eu.ecb.economia.manager.*; import eu.ecb.economia.ui.buttons.*; import eu.ecb.economia.*; import com.greensock.easing.*; import eu.ecb.economia.ui.buttons.bigbluebutton.*; import eu.ecb.economia.ui.buttons.autopilotbutton.*; import eu.ecb.economia.game.navigationbar.mainnavigation.*; import eu.ecb.economia.ui.buttons.iconbutton.*; import eu.ecb.economia.game.navigationbar.sliderbar.*; import eu.ecb.economia.game.navigationbar.subnavigation.*; import eu.ecb.economia.ui.buttons.mainnavbutton.*; public class NavigationBar extends Sprite { private var _container:Sprite; private var _startNewGameBtn:BigBlueSimpleButton; private var _navigationOnShow:Boolean; private var _gameBrain:GameBrain; private var __shareBtnClickHandler:Function; private var _firstStart:Boolean;// = true private var __highscoreBtnClickHandler:Function; private var _autopilotButton:AutopilotButton; private var _learnMoreBtn:BigBlueSimpleButton; private var __blueButtonClickTempCallback:Function; private var _sendMailBtn:BigBlueSimpleButton; private var _banderole:Sprite; private var _mask:Sprite; private var _mainNavigation:MainNavigation; private var _bigBlueButton:BigBlueButton; private var _buttonArr:Array; private var _templateController:TemplateController; private var _gameDataPool:Object; private var _shareBtn:IconButton; private var _waitingInPipeLineBtn:Button; private var _highscoreBtn:IconButton; private var _sliderBar:SliderBar; private var _subNavigation:SubNavigation; private var _maskContainer:Sprite; private var _activeBtn:Button; public function NavigationBar(){ this.alpha = 0; addEventListener(Event.ADDED_TO_STAGE, __addedOnStage); } private function __addHighscoreButton():void{ var _local1:BitmapData = (new (LibraryManager.Instance.getClass("IconHighscoreButton") as Class)(0, 0) as BitmapData); _highscoreBtn = new IconButton(LabelManager.Instance.getString("registerHighscoreButton"), _local1); _container.addChild(_highscoreBtn); _highscoreBtn.x = ((Defaults.GAME_STAGE_WIDTH * 0.5) + 5); _highscoreBtn.y = (((((Defaults.APPLICATION_HEIGHT - Defaults.GAME_STAGE_HEIGHT) - Defaults.GAME_TOPVIEW_HEIGHT) - Math.abs(_banderole.y)) * 0.5) - (_highscoreBtn.height * 0.5)); } private function __addSendMailBtn():void{ _sendMailBtn = new BigBlueSimpleButton(LabelManager.Instance.getString("sendMailButton")); _container.addChild(_sendMailBtn); _sendMailBtn.x = (Defaults.GAME_STAGE_BORDERSPACE + 5); _sendMailBtn.y = (((((Defaults.APPLICATION_HEIGHT - Defaults.GAME_STAGE_HEIGHT) - Defaults.GAME_TOPVIEW_HEIGHT) - Math.abs(_banderole.y)) * 0.5) - (_sendMailBtn.height * 0.5)); } private function __addBanderole():void{ _banderole = new Sprite(); _maskContainer.addChild(_banderole); var _local1:Bitmap = new Bitmap((new (LibraryManager.Instance.getClass("BaderoleLeftCorner") as Class)(0, 0) as BitmapData), "auto", true); _banderole.addChild(_local1); _local1.y = -1; var _local2:Bitmap = new Bitmap((new (LibraryManager.Instance.getClass("BaderoleMiddle") as Class)(0, 0) as BitmapData), "auto", true); _banderole.addChild(_local2); var _local3:Bitmap = new Bitmap((new (LibraryManager.Instance.getClass("BaderoleRightCorner") as Class)(0, 0) as BitmapData), "auto", true); _banderole.addChild(_local3); _local2.x = _local1.width; _local2.width = (Defaults.GAME_BANDEROLE_WIDTH - (_local1.width + _local3.width)); _local3.x = (_local2.x + _local2.width); var _local4:Sprite = DrawUtils.getRect(Defaults.GAME_BANDEROLE_WIDTH, 50, 0xEEEEEE); _banderole.addChild(_local4); _local4.y = ((_local2.y + _local2.height) - 1); _banderole.y = -10; } private function __addSlider():void{ _sliderBar = new SliderBar(__sliderBarUpdateCallback); _container.addChild(_sliderBar); _sliderBar.x = 25; _sliderBar.y = 35; _sliderBar.update(_gameDataPool.settings.currentKeyInterestRate); } public function init(_arg1:Game):void{ _gameBrain = _arg1.getGameBrain(); _templateController = _arg1.getMainView().getTemplateController(); _gameDataPool = _gameBrain.getGameDataPool(); _container = new Sprite(); this.addChild(_container); _maskContainer = new Sprite(); _container.addChild(_maskContainer); __addMask(); __addBanderole(); __addMainNavigation(); __addSubNavigation(); __setButtonArray(); __addBigBlueButton(); __addSlider(); __addAutoPilotButton(); __addStartNewGameBtn(); __addLearnMoreButton(); __addHighscoreButton(); __addShareButton(); __addSendMailBtn(); TweenMax.to(this, 20, {alpha:1, y:this.y, useFrames:true, overwrite:true, ease:Emotion.singleBounceEaseOut}); this.y = (this.y - 10); } private function __resetButtons():void{ var _local1:int; while (_local1 < _buttonArr.length) { (_buttonArr[_local1] as Button).isActive = false; _local1++; }; } private function __showMainNavi(_arg1):void{ var _local2:Boolean; var _local3:Function; if (((_arg1) && ((_arg1 is Function)))){ _local3 = (_arg1 as Function); _local2 = true; }; if (((_arg1) && ((_arg1 is Boolean)))){ _local2 = true; _local3 = null; }; var _local4:Number = (_local2) ? 80 : 100; var _local5:Number = (_local2) ? -80 : -20; var _local6:int = (_local2) ? 50 : 15; var _local7:int = (_local2) ? 20 : 20; TweenMax.to(_container, _local7, {y:_local5, useFrames:true, overwrite:true, ease:Emotion.strongInSoftOut}); TweenMax.to(_mainNavigation, _local6, {y:_local4, useFrames:true, overwrite:true, onComplete:_local3, ease:Emotion.strongInSoftOut}); if (_navigationOnShow != _local2){ SoundManager.Instance.playSoundFromLibrary("MainNaviOnHide"); }; _navigationOnShow = _local2; } public function hideButtonDot(_arg1:int):void{ var _local2:MainNavButton = (getButtonByTemplateId(_arg1) as MainNavButton); if (_local2 != null){ _local2.hideDot(); }; } private function __showSendMailBtn(_arg1):void{ if (!_arg1){ _sendMailBtn.hide(); }; if ((_arg1 is Function)){ _sendMailBtn.show(); _sendMailBtn.addEventListener(ButtonEvent.CLICK, (_arg1 as Function)); }; } private function __addedOnStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, __addedOnStage); } private function __addBigBlueButton():void{ _bigBlueButton = new BigBlueButton(LabelManager.Instance.getString("startBigBlueButtonLabel")); _container.addChild(_bigBlueButton); _bigBlueButton.addEventListener(ButtonEvent.CLICK, __bigBlueButtonEventHandler); _bigBlueButton.x = ((_mask.x + _mask.width) + 1); _bigBlueButton.y = 10; } public function updateSliderBar():void{ _sliderBar.update(_gameDataPool.keyInterestRate); } private function __alertWindowOnClose(_arg1:Boolean):void{ if (_arg1){ _activeBtn = _waitingInPipeLineBtn; dispatchEvent(new NavigationBarEvent(NavigationBarEvent.NAV_BUTTON_ON_CLICK, false, false, _activeBtn.templateId)); _waitingInPipeLineBtn = null; }; } private function __showStartNewGameBtn(_arg1:Boolean):void{ if (_arg1){ _startNewGameBtn.show(); } else { _startNewGameBtn.hide(); }; } public function getButtonByTemplateId(_arg1:int):Button{ var _local2:Button; var _local3:int; while (_local3 < _buttonArr.length) { _local2 = (_buttonArr[_local3] as Button); if (_local2.templateId == _arg1){ break; }; _local3++; }; return (_local2); } private function __navigationButtonEventHandler(_arg1:Event):void{ var _local2:Button = (_arg1.target as Button); switch (_arg1.type){ case ButtonEvent.CLICK: __openTemplate(_local2); break; }; } public function showButtonDot(_arg1:int):void{ var _local2:MainNavButton = (getButtonByTemplateId(_arg1) as MainNavButton); _local2.showDot(); } private function __startNewGameBtnClickHandler(_arg1:ButtonEvent):void{ _templateController.addTemplate(Defaults.GAMELOADER_TEMPLATE_ID); } private function __showSlider(_arg1:Boolean):void{ if (_arg1){ _sliderBar.show(); } else { _sliderBar.hide(); }; } public function changeState(_arg1:Object):void{ __blueButtonClickTempCallback = null; __blueButtonClickTempCallback = _arg1.bluebuttonCallback; if (_arg1.slider != undefined){ __showSlider(_arg1.slider); }; __showBlueButton(_arg1.bluebutton); if (_arg1.navi != undefined){ __showMainNavi(_arg1.navi); }; if (_arg1.autopilot != undefined){ __showAutopilotButton(_arg1.autopilot); }; __showLearnMoreButton(_arg1.learnMoreButton); if (_arg1.startNewGameButton != undefined){ __showStartNewGameBtn(_arg1.startNewGameButton); } else { __showStartNewGameBtn(false); }; __showRegisterHighscoreButton(_arg1.highscoreButton); __showShareButton(_arg1.shareButton); __showSendMailBtn(_arg1.sendMailButton); } private function __showLearnMoreButton(_arg1):void{ if (!_arg1){ _learnMoreBtn.hide(); }; if ((_arg1 is Function)){ _learnMoreBtn.show(); _learnMoreBtn.addEventListener(ButtonEvent.CLICK, (_arg1 as Function)); }; } private function __showRegisterHighscoreButton(_arg1):void{ if (!_arg1){ _highscoreBtn.hide(); }; if ((_arg1 is Function)){ _highscoreBtn.show(); _highscoreBtn.addEventListener(ButtonEvent.CLICK, (_arg1 as Function)); }; } private function __addMainNavigation():void{ _mainNavigation = new MainNavigation(); _maskContainer.addChild(_mainNavigation); _mainNavigation.y = _mainNavigation.height; _mainNavigation.cacheAsBitmap = true; _mainNavigation.addEventListener(ButtonEvent.CLICK, __navigationButtonEventHandler); } public function reset():void{ hideAllButtonDots(); _sliderBar.update(_gameDataPool.keyInterestRate); } private function __addLearnMoreButton():void{ _learnMoreBtn = new BigBlueSimpleButton(LabelManager.Instance.getString("learnMoreButton")); _container.addChild(_learnMoreBtn); _learnMoreBtn.x = ((_startNewGameBtn.x + _startNewGameBtn.width) + 20); _learnMoreBtn.y = (((((Defaults.APPLICATION_HEIGHT - Defaults.GAME_STAGE_HEIGHT) - Defaults.GAME_TOPVIEW_HEIGHT) - Math.abs(_banderole.y)) * 0.5) - (_learnMoreBtn.height * 0.5)); } private function __addStartNewGameBtn():void{ _startNewGameBtn = new BigBlueSimpleButton(LabelManager.Instance.getString("startNewGameButton")); _container.addChild(_startNewGameBtn); _startNewGameBtn.addEventListener(ButtonEvent.CLICK, __startNewGameBtnClickHandler); _startNewGameBtn.x = (Defaults.GAME_STAGE_BORDERSPACE + 5); _startNewGameBtn.y = (((((Defaults.APPLICATION_HEIGHT - Defaults.GAME_STAGE_HEIGHT) - Defaults.GAME_TOPVIEW_HEIGHT) - Math.abs(_banderole.y)) * 0.5) - (_startNewGameBtn.height * 0.5)); } private function __openTemplate(_arg1:Button):void{ if ((((_arg1.alertId > -1)) && (_gameBrain.gameIsRunning))){ _waitingInPipeLineBtn = _arg1; __showAlertWindow(_arg1.alertId); } else { _activeBtn = _arg1; dispatchEvent(new NavigationBarEvent(NavigationBarEvent.NAV_BUTTON_ON_CLICK, false, false, _activeBtn.templateId)); }; } private function __addMask():void{ _mask = DrawUtils.getRoundRect((Defaults.GAME_BANDEROLE_WIDTH - 3), Defaults.GAME_BANDEROLE_MAX_HEIGHT, 10, 10, 0xFF0000); this.addChild(_mask); _mask.x = (_container.x + 1); _mask.y = ((_container.y + NavigationBarSettings.MAINNAVBUTTON_HEIGHT) - _mask.height); _maskContainer.mask = _mask; } public function setActiveButton(_arg1:int):void{ var _local2:Button; __resetButtons(); if (_arg1 < 0){ return; }; var _local3:int; while (_local3 < _buttonArr.length) { _local2 = (_buttonArr[_local3] as Button); if (_local2.templateId == _arg1){ break; }; _local3++; }; if (_local2){ _local2.isActive = true; _activeBtn = _local2; }; } private function __showShareButton(_arg1):void{ if (!_arg1){ _shareBtn.hide(); }; if ((_arg1 is Function)){ _shareBtn.show(); _shareBtn.addEventListener(ButtonEvent.CLICK, (_arg1 as Function)); }; } private function __showAlertWindow(_arg1:int):void{ var _local2:Object = {}; _local2.width = 400; _local2.onCloseCallback = __alertWindowOnClose; _local2.okButtonLabel = LabelManager.Instance.getString("alertWindowOkButton"); _local2.cancelButtonLabel = LabelManager.Instance.getString("alertWindowCancelButton"); _local2.copy = LabelManager.Instance.getString(String(("alertWindow_copy_" + _arg1))); AlertManager.add(_local2); } private function __addSubNavigation():void{ _subNavigation = new SubNavigation(_mainNavigation.itemsArray.length); this.addChild(_subNavigation); var _local1:int = int((((Defaults.GAME_STAGE_WIDTH + Math.abs(((Defaults.GAME_STAGE_WIDTH - Defaults.GAME_BANDEROLE_WIDTH) * 0.5))) - _subNavigation.width) + 0.5)); _subNavigation.x = _local1; _subNavigation.y = (_mask.y + _mask.height); _subNavigation.cacheAsBitmap = true; _subNavigation.addEventListener(ButtonEvent.CLICK, __navigationButtonEventHandler); _subNavigation.show(); } private function __addAutoPilotButton():void{ _autopilotButton = new AutopilotButton(); _container.addChild(_autopilotButton); _autopilotButton.x = 45; _autopilotButton.y = 20; } private function __setBanderole(_arg1:Number, _arg2:Function=null):void{ TweenMax.to(_banderole, 25, {y:_arg1, useFrames:true, overwrite:true, ease:Strong.easeInOut, onComplete:_arg2}); } private function __setButtonArray():void{ _buttonArr = []; var _local1:int; while (_local1 < _mainNavigation.itemsArray.length) { _buttonArr.push(_mainNavigation.itemsArray[_local1]); _local1++; }; _local1 = 0; while (_local1 < _subNavigation.itemsArray.length) { _buttonArr.push(_subNavigation.itemsArray[_local1]); _local1++; }; } private function __showBlueButton(_arg1):void{ if (!_arg1){ _bigBlueButton.hide(); return; }; var _local2:String = (_arg1 as String); if (_local2 != null){ _bigBlueButton.update(_local2); _bigBlueButton.show(); } else { _bigBlueButton.hide(__bigBlueButtonOnHide); }; } private function __showAutopilotButton(_arg1:Boolean):void{ if (_arg1){ _autopilotButton.show(); } else { _autopilotButton.hide(); }; } private function __sliderBarUpdateCallback(_arg1:int):void{ _gameDataPool.keyInterestRate = _sliderBar.value; _gameBrain.sliderOnMoveHandler(_arg1); } private function __navigationOnReady():void{ } private function __bigBlueButtonEventHandler(_arg1:ButtonEvent):void{ if (__blueButtonClickTempCallback != null){ __blueButtonClickTempCallback(); return; }; dispatchEvent(new NavigationBarEvent(NavigationBarEvent.BIG_BUTTON_ON_CLICK, false, false, -1)); } private function __bigBlueButtonOnHide():void{ __setBanderole(69); } public function hideAllButtonDots():void{ var _local1:Button; var _local2:int; while (_local2 < _buttonArr.length) { _local1 = _buttonArr[_local2]; if ((_local1 is MainNavButton)){ (_local1 as MainNavButton).hideDot(); }; _local2++; }; } private function __addShareButton():void{ var _local1:BitmapData = (new (LibraryManager.Instance.getClass("IconMail") as Class)(0, 0) as BitmapData); _shareBtn = new IconButton(LabelManager.Instance.getString("shareResultsButton"), _local1); _container.addChild(_shareBtn); _shareBtn.x = ((_highscoreBtn.x + _highscoreBtn.width) + 20); _shareBtn.y = (((((Defaults.APPLICATION_HEIGHT - Defaults.GAME_STAGE_HEIGHT) - Defaults.GAME_TOPVIEW_HEIGHT) - Math.abs(_banderole.y)) * 0.5) - (_shareBtn.height * 0.5)); } } }//package eu.ecb.economia.game.navigationbar
Section 102
//NavigationBarSettings (eu.ecb.economia.game.navigationbar.NavigationBarSettings) package eu.ecb.economia.game.navigationbar { public class NavigationBarSettings { public static const SUBNAVBUTTON_BORDERSPACE_Y:int = 3; public static const SUBNAVBUTTON_BORDERSPACE_X:int = 5; public static const MAINNAVBUTTON_HEIGHT:int = 60; } }//package eu.ecb.economia.game.navigationbar
Section 103
//TopView (eu.ecb.economia.game.topview.TopView) package eu.ecb.economia.game.topview { import flash.events.*; import eu.ecb.economia.events.*; import de.aperto.managers.*; import flash.display.*; import com.greensock.*; import eu.ecb.economia.game.*; import eu.ecb.economia.templates.*; import de.aperto.utils.*; import flash.text.*; import eu.ecb.economia.manager.*; import eu.ecb.economia.data.*; import eu.ecb.economia.*; import com.greensock.easing.*; import eu.ecb.economia.ui.successbar.*; import eu.ecb.economia.ui.calendarbar.*; import eu.ecb.economia.ui.awardbar.*; import eu.ecb.economia.ui.buttons.soundbutton.*; import eu.ecb.economia.ui.buttons.onecharakterbutton.*; import de.aperto.text.*; public class TopView extends Sprite { private var _gameBrain:GameBrain; private var _ground:Sprite; private var _hBOldX:Number;// = 0 private var _successBar:SuccessBar; private var _calendarBar:CalendarBar; private var _shadow:Sprite; private var _hBNewX:Number;// = 0 private var _awardBar:AwardBar; private var _gameDataPool:GameDataPool; private var _templateController:TemplateController; private var _soundButton:SoundButton; private var _helpMessageLayerOnShow:Boolean; private var _messageLayer:MovieClip; private var _helpButton:OneCharakterButton; private var _hBDiffX:Number;// = 0 public function TopView():void{ this.alpha = 0; addEventListener(Event.ADDED_TO_STAGE, __addedOnStage); } private function __gameOnNextQuarterHandler():void{ _calendarBar.update(_gameDataPool.currentYear, _gameDataPool.currentQuarter, _gameDataPool.allQuarters); _successBar.update(_gameDataPool.gamePerformance.indicator); } public function __templateControllerEventHandler(_arg1:TemplateControllerEvent):void{ switch (_arg1.type){ case TemplateControllerEvent.PAGE_ON_CHANGE: __hideHelpMessageLayer(); break; case TemplateControllerEvent.PAGE_ON_UPDATE: __hideHelpMessageLayer(); break; }; } private function __showMessageLayer(_arg1:String):void{ _messageLayer = new MovieClip(); this.addChild(_messageLayer); _messageLayer.y = 80; var _local2:Sprite = new Sprite(); _messageLayer.addChild(_local2); BitmapUtils.addShadow(_local2, 20, 20, 10, 3, 0.35); var _local3 = 20; var _local4:TextField = CostumTextfield.getCSSTextfield("left", false, false, true, "normal"); _local2.addChild(_local4); _local4.htmlText = CSSMapper.map(unescape(_arg1), "toolTipCopy"); _local4.x = (_local3 * 0.5); _local4.y = (_local3 * 0.5); if (_local4.width > Defaults.TOPTOOLTIP_MAX_TEXTFIELD_WIDTH){ _local4.wordWrap = true; _local4.width = Defaults.TOPTOOLTIP_MAX_TEXTFIELD_WIDTH; }; var _local5:Sprite = DrawUtils.getRoundRect((_local4.width + _local3), (_local4.height + _local3), 10, 10, 0xFFFFFF); _local2.addChild(_local5); DisplayUtils.swapChildToBottom(_local5); var _local6:Number = 30; var _local7:Number = 15; var _local8:Sprite = new Sprite(); _local2.addChild(_local8); _local8.graphics.beginFill(0xFFFFFF); _local8.graphics.lineTo((_local6 * 0.5), -(_local7)); _local8.graphics.lineTo(_local6, 0); _local8.graphics.lineTo(0, 0); _local8.graphics.endFill(); _local8.x = ((_local5.width * 0.5) - (_local8.width * 0.5)); DisplayUtils.swapChildToBottom(_local8); _local2.alpha = 0; _local2.x = -((_local5.width * 0.5)); TweenMax.to(_local2, 0.15, {alpha:1, delay:0.3, ease:Strong.easeOut}); EnterFrameManager.addListener(__messageLayerEnterFrameHandler); } private function __gameOnNewAward():void{ _awardBar.updateAwards(_gameDataPool.awardArr); } public function init(_arg1:Game, _arg2:TemplateController):void{ _gameBrain = _arg1.getGameBrain(); _gameDataPool = _gameBrain.getGameDataPool(); _templateController = _arg2; _templateController.addEventListener(TemplateControllerEvent.PAGE_ON_CHANGE, __templateControllerEventHandler); _templateController.addEventListener(TemplateControllerEvent.PAGE_ON_UPDATE, __templateControllerEventHandler); __addGround(); __addShadow(); __addSuccessBar(); __addAwardBar(); __addCalendarBar(); __addHelpButton(); __addSoundButton(); _gameBrain.addListener(GameEvent.ON_NEXT_QUARTER, __gameOnNextQuarterHandler); _gameBrain.addListener(GameEvent.NEW_AWARD, __gameOnNewAward); _helpButton.addEventListener(MouseEvent.MOUSE_OVER, __modulMouseEventHandler); _calendarBar.addEventListener(MouseEvent.MOUSE_OVER, __modulMouseEventHandler); _awardBar.addEventListener(MouseEvent.MOUSE_OVER, __modulMouseEventHandler); _successBar.addEventListener(MouseEvent.MOUSE_OVER, __modulMouseEventHandler); _soundButton.addEventListener(MouseEvent.MOUSE_OVER, __modulMouseEventHandler); _helpButton.mouseChildren = false; _calendarBar.mouseChildren = false; _awardBar.mouseChildren = false; _successBar.mouseChildren = false; _soundButton.mouseChildren = false; TweenMax.to(this, 20, {alpha:1, y:this.y, useFrames:true, overwrite:true, ease:Emotion.singleBounceEaseOut}); this.y = (this.y + 10); } private function __removeMessageLayer():void{ EnterFrameManager.removeListener(__messageLayerEnterFrameHandler); if (_messageLayer == null){ return; }; var src:Sprite = _messageLayer; TweenMax.to(src, 0.2, {alpha:0, ease:Strong.easeOut, onCompleteParams:[src], onComplete:function (_arg1):void{ DisplayUtils.removeDisplayObject(_arg1); _arg1 = null; }}); } private function __stageMouseEventHandler(_arg1:MouseEvent):void{ switch (_arg1.type){ case MouseEvent.MOUSE_DOWN: break; }; } private function __addedOnStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, __addedOnStage); stage.addEventListener(MouseEvent.MOUSE_DOWN, __stageMouseEventHandler); } private function __addSoundButton():void{ _soundButton = new SoundButton(); this.addChild(_soundButton); _soundButton.tint(SoundManager.Instance.allowSounds); _soundButton.addEventListener(ButtonEvent.CLICK, __soundButtonEventHandler); _soundButton.x = ((_helpButton.x + _helpButton.width) + 20); _soundButton.y = _helpButton.y; } private function __helpButtonEventHandler(_arg1:ButtonEvent):void{ switch (_arg1.type){ case ButtonEvent.CLICK: if (!_helpMessageLayerOnShow){ __showHelpMessage(); } else { __hideHelpMessageLayer(); }; break; }; } override public function get height():Number{ return (Defaults.GAME_TOPVIEW_HEIGHT); } private function __addGround():void{ _ground = DrawUtils.getRect(Defaults.GAME_STAGE_WIDTH, Defaults.GAME_TOPVIEW_HEIGHT, 0xFEFEFE); this.addChild(_ground); } private function __hideHelpMessageLayer():void{ _helpMessageLayerOnShow = false; MessageManager.Instance.remove(this); } private function __soundButtonEventHandler(_arg1:ButtonEvent):void{ switch (_arg1.type){ case ButtonEvent.CLICK: SoundManager.Instance.allowSounds = !(SoundManager.Instance.allowSounds); _soundButton.tint(SoundManager.Instance.allowSounds); if (!_gameBrain.gameIsRunning){ if (SoundManager.Instance.allowSounds){ SoundManager.Instance.setBackgroundMusicVolume(1); } else { SoundManager.Instance.setBackgroundMusicVolume(0); }; }; break; }; } private function __addSuccessBar():void{ _successBar = new SuccessBar(); this.addChild(_successBar); _successBar.x = (Defaults.GAME_STAGE_WIDTH - (_successBar.width + Defaults.GAME_TOPVIEW_ITEMS_SPACE)); _successBar.y = ((Defaults.GAME_TOPVIEW_HEIGHT * 0.5) - (_successBar.height * 0.5)); _successBar.update(1); } private function __gameSliderOnUpHandler():void{ _successBar.update(0.6); } private function __addShadow():void{ _shadow = new Sprite(); this.addChild(_shadow); var _local1:int = Defaults.GAME_STAGE_WIDTH; var _local2:int = int(((Defaults.GAME_TOPVIEW_HEIGHT * 0.5) + 0.5)); _shadow.graphics.beginFill(0); _shadow.graphics.lineTo(_local1, 0); _shadow.graphics.lineTo(_local1, _local2); _shadow.graphics.lineTo((_local1 * 0.5), (_local2 + 7)); _shadow.graphics.lineTo(0, _local2); _shadow.graphics.lineTo(0, 0); _shadow.graphics.endFill(); _shadow.y = (_ground.height - (_shadow.height + 2)); DisplayUtils.swapChildToBottom(_shadow); BitmapUtils.addShadow(_shadow, 8, 8, 2, 3, 0.3); } override public function get width():Number{ return (Defaults.GAME_STAGE_WIDTH); } public function update():void{ _successBar.update(_gameDataPool.gamePerformance.indicator); } private function __messageLayerEnterFrameHandler():void{ _hBOldX = _messageLayer.x; _messageLayer.x = (_messageLayer.x + (((this.mouseX - _messageLayer.x) * 0.5) + _hBDiffX)); _hBNewX = _messageLayer.x; _hBDiffX = ((_hBNewX - _hBOldX) / 2.2); if ((((((((this.mouseY < 0)) || ((this.mouseY > 50)))) || ((this.mouseX < _helpButton.x)))) || ((this.mouseX > _ground.width)))){ __removeMessageLayer(); }; } public function reset():void{ _calendarBar.reset(); _successBar.reset(); _awardBar.reset(); } private function __helpMessageOnClose():void{ _helpMessageLayerOnShow = false; } private function __modulMouseEventHandler(_arg1:MouseEvent):void{ __removeMessageLayer(); var _local2:XML = XML(_gameDataPool.gameSettingsXML.tooltips.topview); if ((_arg1.target is OneCharakterButton)){ __showMessageLayer(LabelManager.Instance.getString(_local2.helpButton.@labelId)); }; if ((_arg1.target is SoundButton)){ __showMessageLayer(LabelManager.Instance.getString(_local2.soundButton.@labelId)); }; if ((_arg1.target is AwardBar)){ __showMessageLayer(LabelManager.Instance.getString(_local2.awardBar.@labelId)); }; if ((_arg1.target is CalendarBar)){ __showMessageLayer(LabelManager.Instance.getString(_local2.calendarBar.@labelId)); }; if ((_arg1.target is SuccessBar)){ __showMessageLayer(LabelManager.Instance.getString(_local2.successBar.@labelId)); }; } private function __addAwardBar():void{ _awardBar = new AwardBar(_gameDataPool.settings.gameStartYear, _gameDataPool.settings.amountAwards); this.addChild(_awardBar); _awardBar.x = (_successBar.x - (_awardBar.width + Defaults.GAME_TOPVIEW_ITEMS_SPACE)); _awardBar.y = ((Defaults.GAME_TOPVIEW_HEIGHT * 0.5) - (_awardBar.height * 0.5)); } private function __showHelpMessage():void{ _helpMessageLayerOnShow = true; var _local1:String = LabelManager.Instance.getString("gameHelpLayer"); var _local2:int = (_helpButton.x + (_helpButton.width * 0.5)); var _local3:int = (Defaults.GAME_TOPVIEW_HEIGHT + 30); MessageManager.Instance.add({target:this, type:"helpMessage", copy:_local1, x:_local2, y:_local3, closeBtn:true, closeCallback:__helpMessageOnClose}); } private function __addCalendarBar():void{ _calendarBar = new CalendarBar(_gameDataPool.settings.gameStartYear, _gameDataPool.settings.termInOffice); this.addChild(_calendarBar); _calendarBar.x = (_awardBar.x - (_calendarBar.width + Defaults.GAME_TOPVIEW_ITEMS_SPACE)); _calendarBar.y = ((Defaults.GAME_TOPVIEW_HEIGHT * 0.5) - (_calendarBar.height * 0.5)); } private function __addHelpButton():void{ _helpButton = new OneCharakterButton("?"); this.addChild(_helpButton); _helpButton.x = (_calendarBar.x - (_helpButton.width + 75)); _helpButton.y = ((Defaults.GAME_TOPVIEW_HEIGHT * 0.5) - (_helpButton.height * 0.5)); } } }//package eu.ecb.economia.game.topview
Section 104
//Game (eu.ecb.economia.game.Game) package eu.ecb.economia.game { import flash.events.*; import eu.ecb.economia.events.*; import de.aperto.managers.*; import flash.display.*; import eu.ecb.economia.game.navigationbar.*; import eu.ecb.economia.game.mainview.*; import eu.ecb.economia.game.topview.*; import eu.ecb.economia.templates.*; import de.aperto.utils.*; import eu.ecb.economia.manager.*; import eu.ecb.economia.data.*; import eu.ecb.economia.ui.buttons.*; import nl.demonsters.debugger.*; import eu.ecb.economia.*; import eu.ecb.economia.utils.*; import eu.ecb.economia.ui.buttons.closebutton.*; import eu.ecb.economia.net.*; import flash.external.*; public class Game extends Sprite { private var _masterCloseButton:Button; private var _templateController:TemplateController; private var _gameDataPool:GameDataPool; private var _topView:TopView; private var _gameLogo:GameLogo; private var _mainView:MainView; private var _navigationBar:NavigationBar; private var _gameBrain:GameBrain; public function Game(){ addEventListener(Event.ADDED_TO_STAGE, __addedOnStage); } override public function get width():Number{ return (Defaults.GAME_STAGE_WIDTH); } private function __addMasterCloseButton():void{ _masterCloseButton = new CloseButton(); this.addChild(_masterCloseButton); _masterCloseButton.addEventListener(MouseEvent.CLICK, __masterCloseButtonEventHandler); _masterCloseButton.x = Defaults.GAME_STAGE_WIDTH; _masterCloseButton.visible = (String(_gameDataPool.gameSettingsXML.externalCloseCallback.@func).length > 0); } private function __masterCloseButtonEventHandler(_arg1:MouseEvent):void{ __callExternalCloseMethode(); } private function __addTopView():void{ _topView = new TopView(); this.addChild(_topView); } private function __addGameLogo():void{ _gameLogo = new GameLogo(); this.addChild(_gameLogo); } private function __addMainView():void{ _mainView = new MainView(); this.addChild(_mainView); _mainView.y = Defaults.GAME_TOPVIEW_HEIGHT; } private function __callExternalCloseMethode():void{ var _local1:String = _gameDataPool.gameSettingsXML.externalCloseCallback.@func; if (((ExternalInterface.available) && (_local1))){ ExternalInterface.call(_local1); }; } private function __addedOnStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, __addedOnStage); _gameBrain = new GameBrain(); _gameDataPool = _gameBrain.getGameDataPool(); __loadGameMasterXML(); } override public function get height():Number{ return (Defaults.GAME_STAGE_HEIGHT); } private function __gameMasterXMLOnLoad(_arg1:XML):void{ if (_arg1 == null){ MonsterDebugger.trace(this, "Unable to load GameSettings XML"); throw (new Error("Unable to load GameSettings XML")); }; _gameDataPool.gameSettingsXML = _arg1; _gameDataPool.setGameFilters(XML(_arg1.gameFilters)); dispatchEvent(new GameEvent(GameEvent.DATA_ON_LOAD)); } public function getNavigationBar():NavigationBar{ return (_navigationBar); } public function getTopView():TopView{ return (_topView); } private function __loadGameMasterXML():void{ var _local1:String = String((Develop.Instance.serverRoot + "includes/xml/gamesettings.xml")); DataLoader.loadXML(_local1, __gameMasterXMLOnLoad, __gameMasterXMLOnProgress); } private function __addNavigationBar():void{ _navigationBar = new NavigationBar(); this.addChild(_navigationBar); _navigationBar.addEventListener(NavigationBarEvent.BIG_BUTTON_ON_CLICK, __navigationBarEventHandler); _navigationBar.addEventListener(NavigationBarEvent.NAV_BUTTON_ON_CLICK, __navigationBarEventHandler); _navigationBar.x = -(int((Math.abs(((_mainView.width - Defaults.GAME_BANDEROLE_WIDTH) * 0.5)) + 0.5))); _navigationBar.y = (_mainView.y + _mainView.height); } private function __navigationBarEventHandler(_arg1:NavigationBarEvent):void{ switch (_arg1.type){ case NavigationBarEvent.BIG_BUTTON_ON_CLICK: _gameBrain.bigBlueButtonOnClickHandler(); break; case NavigationBarEvent.NAV_BUTTON_ON_CLICK: _templateController.addTemplate(_arg1.buttonId); break; }; } public function getMainView():MainView{ return (_mainView); } public function getGameBrain():GameBrain{ return (_gameBrain); } public function initGameElements():void{ _gameBrain.setup(); GraphboxUtils.setup(this); GameUtils.setup(this); __addMainView(); __addTopView(); __addNavigationBar(); _mainView.init(this); _topView.init(this, _mainView.getTemplateController()); _navigationBar.init(this); _templateController = _mainView.getTemplateController(); DisplayUtils.swapChildToTop(_navigationBar); DisplayUtils.swapChildToTop(_topView); __addGameLogo(); __addMasterCloseButton(); MessageManager.Instance.setup(this); ToolTipManager.setup(root); FormManager.setup(this); AlertManager.setup(this); _gameBrain.navigationBar = _navigationBar; _gameBrain.topView = _topView; _templateController.addTemplate(Defaults.START_TEMPLATE_ID); _gameBrain.templateController = _templateController; SoundManager.Instance.playSoundFromLibrary("GameOnBuilding"); dispatchEvent(new GameEvent(GameEvent.READY)); } public function getTemplateController():TemplateController{ return (_templateController); } private function __gameMasterXMLOnProgress(_arg1:Number):void{ dispatchEvent(new GameEvent(GameEvent.ON_PROGRESS, false, false, _arg1)); } } }//package eu.ecb.economia.game
Section 105
//GameBrain (eu.ecb.economia.game.GameBrain) package eu.ecb.economia.game { import flash.events.*; import de.aperto.events.*; import eu.ecb.economia.events.*; import de.aperto.managers.*; import flash.utils.*; import eu.ecb.economia.game.navigationbar.*; import eu.ecb.economia.game.topview.*; import eu.ecb.economia.templates.*; import eu.ecb.economia.data.algorithm.*; import eu.ecb.economia.data.*; import nl.demonsters.debugger.*; import eu.ecb.economia.*; public class GameBrain extends CostumEventDispatcher { private var _clickTimer:Timer; private var _gameOnOver:Boolean;// = true private var _maxQuarters:int; private var _currentAwardIndex:int; private var _currentQuarter:int; private var _templateController:TemplateController; private var _gameDataPool:GameDataPool; private var _onLastInterval:Boolean; public var topView:TopView; private var _gameAlgorithm:GameAlgorithm; public var navigationBar:NavigationBar; public function GameBrain(){ _gameAlgorithm = new GameAlgorithm(); _gameDataPool = new GameDataPool(_gameAlgorithm); __setClickTimer(); } private function __clickTimeEventHandler(_arg1:TimerEvent):void{ } private function __runLastInterval():void{ _onLastInterval = true; navigationBar.hideAllButtonDots(); __hustleGameAlgorithm(); if (_gameDataPool.gamePerformance.exit > -1){ __onGameover(); return; }; navigationBar.changeState({slider:false, bluebutton:LabelManager.Instance.getString("lastIntervalBigBlueButtonLabel"), bluebuttonCallback:__lastIntervalBluebuttonCallback, navi:false, subnavi:true, autopilot:false}); __checkPerformence(); dispatchCostumEvent(GameEvent.ON_NEXT_QUARTER); } private function __onGameover():void{ MonsterDebugger.trace(this, "::: GAME OVER :::"); _gameOnOver = true; SoundManager.Instance.stopAllSoundsFromLibrary(); var _local1:Timer = new Timer(3000, 1); _local1.addEventListener(TimerEvent.TIMER_COMPLETE, __onTimerAfterGameOver); _local1.start(); _gameDataPool.gamePerformance = _gameAlgorithm.OverallPerformance; _templateController.addTemplate(Defaults.GAMEOVER_TEMPLATE_ID, null); } private function __onTimerAfterGameOver(_arg1:TimerEvent):void{ SoundManager.Instance.playBackgroundMusicAgain(); } public function bigBlueButtonOnClickHandler():void{ MonsterDebugger.trace(null, ((("bigBlueButtonOnClickHandler: " + _gameDataPool.allQuarters) + " max:") + _maxQuarters)); if (_gameDataPool.allQuarters == _maxQuarters){ __runLastInterval(); } else { __runNextInterval(); }; } public function set templateController(_arg1:TemplateController):void{ _templateController = _arg1; } public function get gameIsRunning():Boolean{ return (!(_gameOnOver)); } public function removeListener(_arg1, _arg2:Function=null):void{ removeEventListener(_arg1, _arg2); } private function __hustleGameAlgorithm():void{ _gameAlgorithm.calcNextQuarter(_gameDataPool.keyInterestRate); _gameDataPool.economicData = _gameAlgorithm.getEconomicData(); _gameDataPool.economicDataForecast = _gameAlgorithm.getForecastData(); _gameDataPool.currentGameShock = _gameAlgorithm.getEvent(); _gameDataPool.gamePerformance = _gameAlgorithm.getPerformance(); _gameDataPool.teamDataArr = _gameAlgorithm.MemberMessages.slice(); _gameDataPool.pressDataArr = _gameAlgorithm.NewsPaperMessages.slice(); SoundManager.Instance.playSoundFromLibrary("OK_BUTTON"); } public function addListener(_arg1, _arg2:Function=null):void{ addEventListener(_arg1, _arg2); } private function __runNextInterval():void{ if (_clickTimer.running){ return; }; navigationBar.hideAllButtonDots(); var _local1:int = _gameDataPool.currentQuarter; _local1++; if (_local1 > 4){ _gameDataPool.currentQuarter = 1; _gameDataPool.currentYear++; } else { _gameDataPool.currentQuarter = _local1; }; __hustleGameAlgorithm(); if (_gameDataPool.gamePerformance.exit > -1){ MonsterDebugger.trace(null, ("GameBrain-->__runNextInterval: " + _gameDataPool.gamePerformance.exit)); __onGameover(); return; }; if (_gameDataPool.teamDataArr.length > 0){ navigationBar.showButtonDot(Defaults.TEAM_TEMPLATE_ID); }; if (_gameDataPool.pressDataArr.length > 0){ navigationBar.showButtonDot(Defaults.PRESS_TEMPLATE_ID); }; __checkPerformence(); dispatchCostumEvent(GameEvent.ON_NEXT_QUARTER); __setClickTimer(); } public function getGameAlgorithm():GameAlgorithm{ return (_gameAlgorithm); } private function __checkPerformence():void{ var _local1:Boolean; _gameDataPool.awardWinningAtCurrentQuarter = false; switch (_gameDataPool.currentYear){ case 3: _local1 = true; break; case 5: _local1 = true; break; case 7: _local1 = true; break; case 9: _local1 = true; break; }; _gameDataPool.awardArr = _gameAlgorithm.getAwardArray(); if (_gameAlgorithm.amountAwards > _currentAwardIndex){ _gameDataPool.awardWinningAtCurrentQuarter = true; dispatchCostumEvent(GameEvent.NEW_AWARD); }; _currentAwardIndex = _gameAlgorithm.amountAwards; _gameDataPool.amountAwards = _currentAwardIndex; if (((_local1) && ((_gameDataPool.currentQuarter == 1)))){ _gameDataPool.onPerformenceCheck = true; dispatchCostumEvent(GameEvent.TIME_FOR_PERFORMENCE_CHECK); } else { _gameDataPool.onPerformenceCheck = false; }; if (_onLastInterval){ _gameDataPool.onPerformenceCheck = true; }; } private function __lastIntervalBluebuttonCallback():void{ MonsterDebugger.trace(null, ("GameBrain-->__lastIntervalBluebuttonCallback->exitCode: " + _gameDataPool.gamePerformance.exit)); __onGameover(); } public function startNewGame():void{ resetGameData(); _gameOnOver = false; MonsterDebugger.trace(this, "::: INIT GAMEALGORITHM :::"); if (!_gameAlgorithm.onInit){ _gameAlgorithm.init(); }; _gameDataPool.economicData = _gameAlgorithm.getEconomicData(); _gameDataPool.economicDataForecast = _gameAlgorithm.getForecastData(); _gameDataPool.gamePerformance = _gameAlgorithm.getPerformance(); _gameDataPool.teamDataArr = _gameAlgorithm.MemberMessages.slice(); _gameDataPool.pressDataArr = _gameAlgorithm.NewsPaperMessages.slice(); _gameDataPool.keyInterestRate = _gameAlgorithm.currentKeyInterestRate(); _gameDataPool.getUUID(); MonsterDebugger.trace(this, "::: START NEW GAME :::"); topView.update(); navigationBar.updateSliderBar(); if (!_templateController.sliderTemplatesAdded){ _templateController.addSliderTemplates(XMLManager.Instance.logicXML); }; _templateController.addTemplate(Defaults.MAP_TEMPLATE_ID); if (_gameDataPool.teamDataArr.length > 0){ navigationBar.showButtonDot(Defaults.TEAM_TEMPLATE_ID); }; if (_gameDataPool.pressDataArr.length > 0){ navigationBar.showButtonDot(Defaults.PRESS_TEMPLATE_ID); }; } public function getGameDataPool():GameDataPool{ return (_gameDataPool); } public function currentKeyInterestRate():Number{ return (_gameAlgorithm.currentKeyInterestRate()); } public function sliderOnMoveHandler(_arg1:int):void{ dispatchCostumEvent(_arg1); } public function resetGameData():void{ MonsterDebugger.trace(this, "::: RESET DATA :::"); _gameOnOver = true; _onLastInterval = false; _gameDataPool.onPerformenceCheck = false; if (_gameDataPool.xmlData){ _gameAlgorithm.reset(); }; _gameDataPool.reset(); topView.reset(); navigationBar.reset(); if (_templateController){ _templateController.resetSliderTemplates(); }; SoundManager.Instance.stopAllSoundsFromLibrary(); } private function __hustleGameAlgorithmWithTryAndCatch():void{ try { _gameAlgorithm.calcNextQuarter(_gameDataPool.keyInterestRate); } catch(e:Error) { MonsterDebugger.trace(null, "_gameAlgorithm.calcNextQuarter()", 0xFF0000); MonsterDebugger.trace(null, e, 0xFF0000); }; try { _gameDataPool.economicData = _gameAlgorithm.getEconomicData(); } catch(e:Error) { MonsterDebugger.trace(null, "_gameAlgorithm.getEconomicData()", 0xFF0000); MonsterDebugger.trace(null, e, 0xFF0000); }; try { _gameDataPool.economicDataForecast = _gameAlgorithm.getForecastData(); } catch(e:Error) { MonsterDebugger.trace(null, "_gameAlgorithm.getForecastData()", 0xFF0000); MonsterDebugger.trace(null, e, 0xFF0000); }; try { _gameDataPool.currentGameShock = _gameAlgorithm.getEvent(); } catch(e:Error) { MonsterDebugger.trace(null, "_gameAlgorithm.getEvent()", 0xFF0000); MonsterDebugger.trace(null, e, 0xFF0000); }; try { _gameDataPool.gamePerformance = _gameAlgorithm.getPerformance(); } catch(e:Error) { MonsterDebugger.trace(null, "_gameAlgorithm.getPerformance()", 0xFF0000); MonsterDebugger.trace(null, e, 0xFF0000); }; try { _gameDataPool.teamDataArr = _gameAlgorithm.MemberMessages.slice(); } catch(e:Error) { MonsterDebugger.trace(null, "_gameAlgorithm.MemberMessages()", 0xFF0000); MonsterDebugger.trace(null, e, 0xFF0000); }; try { _gameDataPool.pressDataArr = _gameAlgorithm.NewsPaperMessages.slice(); } catch(e:Error) { MonsterDebugger.trace(null, "_gameAlgorithm.NewsPaperMessages()", 0xFF0000); MonsterDebugger.trace(null, e, 0xFF0000); }; } public function setup():void{ _maxQuarters = (_gameDataPool.settings.termInOffice * 4); _gameAlgorithm.setup(1, _gameDataPool.settings.gameStartYear); dispatchCostumEvent(GameEvent.ON_NEXT_QUARTER); } private function __setClickTimer():void{ if (_clickTimer == null){ _clickTimer = new Timer(Defaults.MAX_CLICK_TIME, 1); _clickTimer.addEventListener(TimerEvent.TIMER_COMPLETE, __clickTimeEventHandler); }; _clickTimer.reset(); _clickTimer.start(); } } }//package eu.ecb.economia.game
Section 106
//GameLogo (eu.ecb.economia.game.GameLogo) package eu.ecb.economia.game { import flash.events.*; import de.aperto.managers.*; import flash.display.*; import eu.ecb.economia.utils.*; public class GameLogo extends Sprite { private var _container:Sprite; public function GameLogo(){ addEventListener(Event.ADDED_TO_STAGE, __addedOnStage); } private function __addLogo():void{ var _local1:Bitmap = new Bitmap(BitmapDataManager.Instance.getBitmapData("images", "GameLogo"), "auto", true); _container.addChild(_local1); var _local2:Bitmap = GameUtils.getLogoClaim(LabelManager.Instance.getString("gameLogoClaimBanner"), 11, false); _container.addChild(_local2); _local2.x = (((_local1.width * 0.5) - (_local2.width * 0.5)) - 5); _local2.y = 48; } private function __addedOnStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, __addedOnStage); this.x = -7; this.y = -10; _container = new Sprite(); this.addChild(_container); __addLogo(); } } }//package eu.ecb.economia.game
Section 107
//AlertManager (eu.ecb.economia.manager.AlertManager) package eu.ecb.economia.manager { import eu.ecb.economia.events.*; import flash.display.*; import com.greensock.*; import de.aperto.utils.*; import flash.text.*; import eu.ecb.economia.*; import com.greensock.easing.*; import eu.ecb.economia.ui.buttons.closebutton.*; import eu.ecb.economia.ui.buttons.bigbluebutton.*; import de.aperto.text.*; public class AlertManager { private static var _masterContainer:Sprite; private static var _container:Sprite; private static var _data:Object; private static var _messageTfd:TextField; private static var _actionRoot; private static var _containerCopy:Bitmap; private static var _ground:Sprite; private static var _value:Boolean; private static var _borderSpace:int = 30; private static var _onCloseCallback:Function; public static function remove():void{ if (_masterContainer){ TweenMax.to(_masterContainer, 10, {alpha:0, scaleX:0.98, scaleY:0.98, onComplete:__onHide, overwrite:true, useFrames:true, ease:Strong.easeOut}); }; } private static function __addButtons():void{ var _local1:BigBlueSimpleButton = new BigBlueSimpleButton(_data.okButtonLabel); _container.addChild(_local1); _local1.x = _borderSpace; _local1.y = ((_messageTfd.y + _messageTfd.height) + _borderSpace); _local1.addEventListener(ButtonEvent.CLICK, __buttonEventHandler); _local1.show(); _local1.id = 1; var _local2:BigBlueSimpleButton = new BigBlueSimpleButton(_data.cancelButtonLabel); _container.addChild(_local2); _local2.addEventListener(ButtonEvent.CLICK, __buttonEventHandler); _local2.show(); _local2.id = -1; _local2.x = (_data.width - (_local2.width + _borderSpace)); _local2.y = _local1.y; } private static function __addCloseButton():void{ var _local1:CloseButton = new CloseButton(); _container.addChild(_local1); _local1.x = _ground.width; _local1.addEventListener(ButtonEvent.CLICK, __closeButtonEventHandler); } private static function __buttonEventHandler(_arg1:ButtonEvent):void{ _value = (((_arg1.target as BigBlueSimpleButton).id == 1)) ? true : false; remove(); } private static function __addMessageText():void{ _messageTfd = (CostumTextfield.getCSSTextfield("left", false, false, true) as TextField); _container.addChild(_messageTfd); _messageTfd.x = _borderSpace; _messageTfd.y = _borderSpace; _messageTfd.htmlText = CSSMapper.map(unescape(_data.copy), "alertLayerCopy"); } private static function __closeButtonEventHandler(_arg1:ButtonEvent):void{ _value = false; remove(); } private static function __onShow():void{ } public static function add(_arg1:Object):void{ if (_arg1 == null){ return; }; if (_masterContainer != null){ DisplayUtils.removeDisplayObject(_masterContainer); _masterContainer = null; }; _data = _arg1; _onCloseCallback = _data.onCloseCallback; _masterContainer = new Sprite(); _actionRoot.addChild(_masterContainer); _masterContainer.alpha = 0; _masterContainer.x = (Defaults.GAME_STAGE_WIDTH * 0.5); _masterContainer.y = (Defaults.GAME_STAGE_HEIGHT * 0.5); _masterContainer.cacheAsBitmap = true; BitmapUtils.addShadow(_masterContainer, 30, 30, 25, 3, 0.4); _container = new Sprite(); _masterContainer.addChild(_container); __addMessageText(); __addButtons(); __addGround(); __addCloseButton(); _container.x = (-(_container.width) * 0.5); _container.y = (-(_container.height) * 0.5); TweenMax.to(_masterContainer, 10, {alpha:1, scaleX:1, scaleY:1, onComplete:__onShow, overwrite:true, useFrames:true, ease:Strong.easeOut}); _masterContainer.scaleX = (_masterContainer.scaleY = 0.98); } private static function __addGround():void{ _ground = DrawUtils.getRoundRect(_data.width, (_container.height + (_borderSpace * 2)), 20, 20, 0xFFFFFF); _container.addChild(_ground); DisplayUtils.swapChildToBottom(_ground); } private static function __onHide():void{ DisplayUtils.removeDisplayObject(_masterContainer); if (_masterContainer){ _masterContainer = null; }; if (_onCloseCallback != null){ _onCloseCallback(_value); }; } public static function setup(_arg1):void{ _actionRoot = _arg1; } } }//package eu.ecb.economia.manager
Section 108
//FormManager (eu.ecb.economia.manager.FormManager) package eu.ecb.economia.manager { import eu.ecb.economia.events.*; import flash.display.*; import com.greensock.*; import de.aperto.utils.*; import flash.text.*; import eu.ecb.economia.*; import com.greensock.easing.*; import eu.ecb.economia.ui.buttons.closebutton.*; import eu.ecb.economia.ui.buttons.bigbluebutton.*; import de.aperto.text.*; public class FormManager { private static var _masterContainer:Sprite; private static var _container:Sprite; private static var _data:Object; private static var _onSendCallback:Function; private static var _actionRoot; private static var _containerCopy:Bitmap; private static var _headline:TextField; private static var _inputContainer:Sprite; private static var _borderSpace:int = 30; private static function __getTextFieldData():Array{ var _local2:CostumInputTextfield; var _local1:Array = _data.form; var _local3:int; while (_local3 < _local1.length) { _local2 = (_local1[_local3].textfield as CostumInputTextfield); _local1[_local3].input = _local2.text; _local3++; }; return (_local1); } private static function __addInputs():void{ var _local1:Sprite; var _local2:CostumInputTextfield; var _local3:TextField; _inputContainer = new Sprite(); _container.addChild(_inputContainer); _inputContainer.x = _borderSpace; _inputContainer.y = ((_headline.y + _headline.height) + _borderSpace); var _local4:Number = 0; var _local5:Number = 0; var _local6:Number = 0; var _local7 = 20; var _local8:Array = _data.form; var _local9:int = _local8.length; var _local10:int; while (_local10 < _local9) { _local2 = new CostumInputTextfield("left", false, "normal", "startFormLayerInput"); _inputContainer.addChild(_local2); _local2.defaultLabel = _local8[_local10].label; _local2.wordWrap = false; _local2.restrict = _local8[_local10].restrict; if (_local8[_local10].maxChars != null){ _local2.maxChars = _local8[_local10].maxChars; }; _local8[_local10].textfield = _local2; _local4 = ((_local8[_local10].width)!="auto") ? _local8[_local10].width : (_local2.textWidth + 10); _local2.width = _local4; _local5 = ((_local8[_local10].width)!="auto") ? ((_local4 + 10) - _borderSpace) : (_local4 + 10); _local1 = DrawUtils.getRoundRect((_local4 + 10), (_local2.height + 20), 5, 5, 0xFFFFFF, 0, 0); _inputContainer.addChild(_local1); BitmapUtils.addShadow(_local1, 2, 2, 2, 3, 0.4, 45, 0, true); DisplayUtils.swapChildToBottom(_local1); _local1.y = _local6; _local2.x = 5; _local2.y = ((_local6 + (_local1.height * 0.5)) - (_local2.height * 0.5)); _local3 = CostumTextfield.getCSSTextfield("left", false, true, true); _inputContainer.addChild(_local3); _local3.htmlText = CSSMapper.map(unescape(_local8[_local10].altText), "startFormLayerAlternativeCopy"); _local3.x = 5; _local3.y = ((_local1.y + _local1.height) + 5); _local3.width = (_local4 - _borderSpace); _local6 = (_local6 + ((_local1.height + _local3.height) + _local7)); _local10++; }; } public static function setup(_arg1):void{ _actionRoot = _arg1; } private static function __addCloseButton():void{ var _local1:CloseButton = new CloseButton(); _container.addChild(_local1); _local1.x = _data.width; _local1.addEventListener(ButtonEvent.CLICK, __closeButtonEventHandler); } public static function remove():void{ if (_masterContainer){ TweenMax.to(_masterContainer, 10, {alpha:0, scaleX:0.98, scaleY:0.98, onComplete:__onHide, overwrite:true, useFrames:true, ease:Strong.easeOut}); }; } private static function __closeButtonEventHandler(_arg1:ButtonEvent):void{ _onSendCallback = null; remove(); } private static function __onShow():void{ } public static function add(_arg1:Object):void{ if (_arg1 == null){ return; }; if (_masterContainer != null){ DisplayUtils.removeDisplayObject(_masterContainer); _masterContainer = null; }; _data = _arg1; _masterContainer = new Sprite(); _actionRoot.addChild(_masterContainer); _masterContainer.alpha = 0; _masterContainer.x = (Defaults.GAME_STAGE_WIDTH * 0.5); _masterContainer.y = (Defaults.GAME_STAGE_HEIGHT * 0.5); _masterContainer.cacheAsBitmap = true; BitmapUtils.addShadow(_masterContainer, 30, 30, 25, 3, 0.4); _container = new Sprite(); _masterContainer.addChild(_container); __addHeadline(); __addInputs(); __addSubmitButton(); __addGround(); if (_data.closeButton){ __addCloseButton(); }; _container.x = (-(_container.width) * 0.5); _container.y = (-(_container.height) * 0.5); TweenMax.to(_masterContainer, 15, {alpha:1, scaleX:1, scaleY:1, onComplete:__onShow, overwrite:true, useFrames:true, ease:Strong.easeOut}); _masterContainer.scaleX = (_masterContainer.scaleY = 0.98); } private static function __addSubmitButton():void{ if (!_data.submitButton){ return; }; _onSendCallback = _data.submitButton.onSendCallback; var _local1:BigBlueSimpleButton = new BigBlueSimpleButton(String(_data.submitButton.label)); _container.addChild(_local1); _local1.x = (_data.width - (_local1.width + (_borderSpace * 0.5))); _local1.y = (_data.height - (_local1.height + (_borderSpace * 0.5))); _local1.addEventListener(ButtonEvent.CLICK, __submitButtonEventHandler); _local1.show(); } private static function __addGround():void{ var _local1:Sprite = DrawUtils.getRoundRect(_data.width, _data.height, 20, 20, 0xFFFFFF); _container.addChild(_local1); DisplayUtils.swapChildToBottom(_local1); } private static function __onHide():void{ DisplayUtils.removeDisplayObject(_masterContainer); if (_masterContainer){ _masterContainer = null; }; if (_onSendCallback != null){ _onSendCallback(__getTextFieldData()); }; } private static function __addHeadline():void{ _headline = (CostumTextfield.getCSSTextfield("left", false, false, true) as TextField); _container.addChild(_headline); _headline.x = _borderSpace; _headline.y = _borderSpace; _headline.htmlText = CSSMapper.map(unescape(_data.headline), "startFormLayerHeadline"); } private static function __submitButtonEventHandler(_arg1:ButtonEvent):void{ remove(); } } }//package eu.ecb.economia.manager
Section 109
//MessageManager (eu.ecb.economia.manager.MessageManager) package eu.ecb.economia.manager { import flash.events.*; import eu.ecb.economia.events.*; import flash.display.*; import com.greensock.*; import de.aperto.utils.*; import flash.text.*; import eu.ecb.economia.*; import com.greensock.easing.*; import eu.ecb.economia.utils.*; import eu.ecb.economia.ui.buttons.closebutton.*; import de.aperto.text.*; public class MessageManager { private var _layerBackupArr:Array; private var _currentLayer:MovieClip; private var _actionRoot; private static var _instance:MessageManager; public function MessageManager(){ if (_instance){ throw (new Error("MessageManager is a Singleton")); }; _instance = this; } public function add(_arg1:Object):void{ if (_arg1 == null){ return; }; switch (_arg1.type){ case "memberMessage": __buildMemberMessageLayer(_arg1); break; case "multiMessage": __buildMultiMessageLayer(_arg1); break; case "helpMessage": __buildHelpMessageLayer(_arg1); break; }; } public function remove(_arg1):void{ var _local2:MovieClip = __getLayer(_arg1); if (_local2 != null){ _reset(_local2); }; } public function getCurrentLayer():MovieClip{ return (_currentLayer); } private function __onHide(_arg1:MovieClip):void{ if (_arg1.closeCallback != null){ _arg1.closeCallback(); }; DisplayUtils.removeDisplayObject(_arg1); if (_arg1){ _arg1 = null; }; _layerBackupArr.splice(_layerBackupArr.indexOf(_arg1), 1); } private function __closeButtonEventHandler(_arg1:ButtonEvent):void{ _reset((_arg1.target as CloseButton).mySource); } private function __textFieldLinkEventHandler(_arg1:TextEvent):void{ _reset((_arg1.target.parent.parent as MovieClip)); GameUtils.textRequest(_arg1.text); } private function _reset(_arg1:MovieClip):void{ if (_arg1 != null){ TweenMax.to(_arg1, 5, {alpha:0, onComplete:__onHide, overwrite:true, useFrames:true, ease:Strong.easeOut, onCompleteParams:[_arg1]}); }; } private function __buildMemberMessageLayer(_arg1:Object):void{ var _local12:Boolean; var _local22:BitmapData; var _local2:* = _arg1.target; var _local3:String = unescape(_arg1.headline); var _local4:String = unescape(_arg1.copy); var _local5:Number = _arg1.x; var _local6:Number = _arg1.y; var _local7:Function = (_arg1.closeCallback as Function); var _local8:Number = 0; var _local9:Number = 0; var _local10:Number = 30; var _local11:Number = 40; var _local13:MovieClip = new MovieClip(); _actionRoot.addChild(_local13); _currentLayer = _local13; _local13.x = _local5; _local13.y = _local6; _local13.target = _local2; _local13.cacheAsBitmap = true; BitmapUtils.addShadow(_local13, 30, 30, 25, 3, 0.4); var _local14:Sprite = new Sprite(); _local13.addChild(_local14); var _local15:Sprite = new Sprite(); _local14.addChild(_local15); var _local16:TextField = CostumTextfield.getCSSTextfield("left", false, true, true, "normal"); _local15.addChild(_local16); _local16.width = Defaults.MESSAGELAYER_MAX_TEXTFIELD_WIDTH; _local16.htmlText = CSSMapper.map(_local3, "messageLayerHeadline"); _local16.addEventListener(TextEvent.LINK, __textFieldLinkEventHandler); var _local17:TextField = CostumTextfield.getCSSTextfield("left", false, true, true, "normal"); _local15.addChild(_local17); _local17.width = Defaults.MESSAGELAYER_MAX_TEXTFIELD_WIDTH; _local17.htmlText = CSSMapper.map(_local4, "messageLayerCopy"); _local17.y = ((_local16.y + _local16.height) + 5); _local17.addEventListener(TextEvent.LINK, __textFieldLinkEventHandler); _local8 = (_local15.width + (_local10 * 2)); _local9 = (_local15.height + (_local10 * 2)); var _local18:Sprite = new Sprite(); _local14.addChild(_local18); _local18.alpha = 0.9; var _local19:Sprite = new Sprite(); _local18.addChild(_local19); _local19.graphics.beginFill(0xFFFFFF, 1); _local19.graphics.lineTo(_local11, (_local11 * 0.5)); _local19.graphics.lineTo(0, _local11); _local19.graphics.lineTo(0, 0); _local19.graphics.endFill(); _local19.y = (-(_local11) * 0.5); _local19.x = -(_local11); var _local20:Sprite = DrawUtils.getRoundRect(_local8, _local9, 20, 20, 0xFFFFFF); _local18.addChild(_local20); _local20.x = (_local19.x - _local8); _local20.y = (_local19.y - _local10); var _local21:CloseButton = new CloseButton(); _local14.addChild(_local21); _local21.y = -((_local10 + (_local11 * 0.5))); _local21.addEventListener(ButtonEvent.CLICK, __closeButtonEventHandler); _local13.closeCallback = _local7; _local21.mySource = _local13; DisplayUtils.swapChildToTop(_local15); _local15.y = (_local20.y + _local10); if (((_local13.x + _local8) + _local11) < Defaults.GAME_STAGE_WIDTH){ _local18.scaleX = -1; _local15.x = ((_local18.x + _local11) + _local10); _local21.x = _local18.width; _local12 = true; } else { _local15.x = (_local20.x + _local10); _local21.x = -((_local8 + _local11)); }; _local13.master = _local14; _layerBackupArr.push(_local13); _local13.alpha = 0; TweenMax.to(_local13, 30, {alpha:1, x:_local13.x, overwrite:true, useFrames:true, ease:Strong.easeOut, onComplete:__onShow, onCompleteParams:[_local13]}); _local13.x = (_local12) ? (_local13.x + 5) : (_local13.x - 5); } private function __arrowVectorOnUpdate(_arg1:Object):void{ DisplayUtils.removeDisplayObject(_arg1.target.arrow); if (_arg1.target.arrow != null){ _arg1.target.arrow = null; }; var _local2:Sprite = new Sprite(); _arg1.container.addChild(_local2); _local2.graphics.beginFill(0xFFFFFF); _local2.graphics.lineTo(_arg1.vector.x, _arg1.vector.y); _local2.graphics.lineTo(_arg1.beginnX, _arg1.beginn1); _local2.graphics.lineTo(_arg1.beginnX, _arg1.beginn2); _local2.graphics.lineTo(_arg1.vector.x, _arg1.vector.y); _local2.graphics.endFill(); (_arg1.target as MovieClip).arrow = _local2; } private function __buildMultiMessageLayer(_arg1:Object):void{ var _local13:Sprite; var _local14:TextField; var _local15:TextField; var _local16:Sprite; var _local17:Sprite; var _local22:Sprite; var _local23:Sprite; var _local2:* = _arg1.target; var _local3:Function = (_arg1.closeCallback as Function); var _local4:Number = 0; var _local5:Number = 0; var _local6:Number = 30; var _local7:MovieClip = new MovieClip(); _actionRoot.addChild(_local7); _currentLayer = _local7; _local7.x = _arg1.x; _local7.y = _arg1.y; _local7.target = _local2; _local7.cacheAsBitmap = true; var _local8:Array = _arg1.msgDataArr; var _local9:int = _local8.length; if (_local9 == 0){ return; }; var _local10:Sprite = new Sprite(); _local7.addChild(_local10); var _local11:Sprite = new Sprite(); _local10.addChild(_local11); var _local12:Sprite = new Sprite(); _local10.addChild(_local12); _local12.x = _local6; _local12.y = _local6; var _local18:Number = 0; var _local19:int; while (_local19 < _local9) { _local13 = new Sprite(); _local12.addChild(_local13); _local13.y = _local18; _local14 = CostumTextfield.getCSSTextfield("left", false, true, true, "normal"); _local13.addChild(_local14); _local14.width = Defaults.MESSAGELAYER_MAX_TEXTFIELD_WIDTH; _local14.htmlText = CSSMapper.map(unescape(_local8[_local19].headline), "messageLayerHeadline"); _local14.addEventListener(TextEvent.LINK, __textFieldLinkEventHandler); _local15 = CostumTextfield.getCSSTextfield("left", false, true, true, "normal"); _local13.addChild(_local15); _local15.width = Defaults.MESSAGELAYER_MAX_TEXTFIELD_WIDTH; _local15.htmlText = CSSMapper.map(unescape(_local8[_local19].copy), "messageLayerCopy"); _local15.y = ((_local14.y + _local14.height) + 5); _local15.addEventListener(TextEvent.LINK, __textFieldLinkEventHandler); _local18 = (_local18 + (_local13.height + 30)); if (_local19 < (_local9 - 1)){ _local16 = new Sprite(); _local12.addChild(_local16); _local16.y = (_local18 - 10); _local22 = DrawUtils.getRect(Defaults.MESSAGELAYER_MAX_TEXTFIELD_WIDTH, 1, 11119276); _local16.addChild(_local22); _local23 = DrawUtils.getRect(Defaults.MESSAGELAYER_MAX_TEXTFIELD_WIDTH, 1, 0xFFFFFF); _local16.addChild(_local23); _local23.y = 1; }; _local17 = new Sprite(); _local11.addChild(_local17); _local17.graphics.beginFill(0xFFFFFF); _local17.graphics.lineTo(_local8[_local19].x, _local8[_local19].y); _local17.graphics.lineTo(0, (_local13.y + _local6)); _local17.graphics.lineTo(0, ((_local13.y + _local6) + 40)); _local17.graphics.lineTo(_local8[_local19].x, _local8[_local19].y); _local17.graphics.endFill(); _local19++; }; _local4 = (_local12.width + (_local6 * 2)); _local5 = (_local12.height + (_local6 * 2)); var _local20:Sprite = DrawUtils.getRoundRect(_local4, _local5, 20, 20, 0xFFFFFF); _local11.addChild(_local20); _local20.alpha = 0.99; var _local21:CloseButton = new CloseButton(); _local10.addChild(_local21); _local21.addEventListener(ButtonEvent.CLICK, __closeButtonEventHandler); _local7.closeCallback = _local3; _local21.mySource = _local7; _local21.x = _local20.width; _layerBackupArr.push(_local7); DisplayUtils.swapChildToTop(_local12); BitmapUtils.addShadow(_local11, 30, 30, 25, 3, 0.4); _local7.alpha = 0; TweenMax.to(_local7, 20, {alpha:1, x:_local7.x, overwrite:true, useFrames:true, ease:Strong.easeOut, onComplete:__onShow, onCompleteParams:[_local7]}); _local7.x = (_local7.x - 5); } private function __buildHelpMessageLayer(_arg1:Object):void{ var _local2:* = _arg1.target; var _local3:Function = (_arg1.closeCallback as Function); var _local4:Number = 0; var _local5:Number = 0; var _local6:Number = 30; var _local7:MovieClip = new MovieClip(); _actionRoot.addChild(_local7); _currentLayer = _local7; _local7.x = _arg1.x; _local7.y = _arg1.y; _local7.target = _local2; _local7.cacheAsBitmap = true; var _local8:Sprite = new Sprite(); _local7.addChild(_local8); var _local9:Sprite = new Sprite(); _local8.addChild(_local9); var _local10:Sprite = new Sprite(); _local8.addChild(_local10); _local10.x = _local6; _local10.y = _local6; var _local11:TextField = CostumTextfield.getCSSTextfield("left", false, true, true, "normal"); _local10.addChild(_local11); _local11.width = Defaults.HELPMESSAGELAYER_MAX_TEXTFIELD_WIDTH; _local11.htmlText = CSSMapper.map(unescape(_arg1.copy), "messageLayerCopy"); _local11.addEventListener(TextEvent.LINK, __textFieldLinkEventHandler); _local4 = (_local10.width + (_local6 * 2)); _local5 = (_local10.height + (_local6 * 2)); var _local12:Sprite = DrawUtils.getRoundRect(_local4, _local5, 20, 20, 0xFFFFFF); _local9.addChild(_local12); var _local13:Sprite = new Sprite(); _local9.addChild(_local13); _local13.graphics.beginFill(0xFFFFFF); _local13.graphics.lineTo(20, -20); _local13.graphics.lineTo(40, 0); _local13.graphics.lineTo(0, 0); _local13.graphics.endFill(); _local13.x = ((_local12.width * 0.5) - (_local13.width * 0.5)); var _local14:CloseButton = new CloseButton(); _local8.addChild(_local14); _local14.addEventListener(ButtonEvent.CLICK, __closeButtonEventHandler); _local7.closeCallback = _local3; _local14.mySource = _local7; _local14.x = _local12.width; _layerBackupArr.push(_local7); DisplayUtils.swapChildToTop(_local10); BitmapUtils.addShadow(_local9, 30, 30, 25, 3, 0.4); _local7.alpha = 0; _local7.x = (_local7.x - (_local7.width * 0.5)); TweenMax.to(_local7, 15, {alpha:1, y:_local7.y, overwrite:true, useFrames:true, ease:Emotion.singleBounceEaseOut, onComplete:__onShow, onCompleteParams:[_local7]}); _local7.y = (_local7.y - 35); } private function __getLayer(_arg1):MovieClip{ var _local2:MovieClip; var _local3:Array = _layerBackupArr; var _local4:int = _local3.length; var _local5:int; while (_local5 < _local4) { _local2 = _local3[_local5]; if (_local2.target == _arg1){ break; }; _local5++; }; return (_local2); } private function __onShow(_arg1:MovieClip):void{ } public function setup(_arg1):void{ _actionRoot = _arg1; _layerBackupArr = []; } public static function get Instance():MessageManager{ return (((_instance) || (new (MessageManager)))); } } }//package eu.ecb.economia.manager
Section 110
//ToolTipManager (eu.ecb.economia.manager.ToolTipManager) package eu.ecb.economia.manager { import flash.events.*; import de.aperto.managers.*; import flash.display.*; import flash.utils.*; import com.greensock.*; import de.aperto.utils.*; import flash.text.*; import de.aperto.display.*; import com.greensock.easing.*; import eu.ecb.economia.utils.*; import de.aperto.text.*; public class ToolTipManager { private static var _timer:Timer; private static var _Math:Object; private static var _hoverBanner:SpriteMotion; private static var _actionRoot; private static var _bannerHeight:int = 80; private static var _tfdCopyBmp:Bitmap; private static var _arrowSize:int = 5; private static var _bannerBorderSpace:int = 10; private static var _tfd:TextField; private static var _bannerWidth:int = 220; private static var _mouseMotion:Boolean; private static var _mouseIsOut:Boolean; public static function hide():void{ _reset(); } private static function __enterFrameHandler():void{ _hoverBanner.x = (_hoverBanner.x + (((_actionRoot.mouseX - (_hoverBanner.width * 0.5)) - _hoverBanner.x) * 0.5)); _hoverBanner.y = (_hoverBanner.y + (((_actionRoot.mouseY - (_hoverBanner.height + 10)) - _hoverBanner.y) * 0.5)); } public static function textColor(_arg1:int):void{ if (_tfd){ _tfd.textColor = _arg1; }; if (_tfdCopyBmp){ TweenMax.to(_tfdCopyBmp, 0.1, {tint:_arg1, useFrames:false, overwrite:true}); }; } public static function __actionRootEventHandler(_arg1:MouseEvent):void{ switch (_arg1.type){ case MouseEvent.MOUSE_DOWN: if (((!((_hoverBanner == null))) && (!(DisplayUtils.isMouseHit(_hoverBanner))))){ _reset(); }; break; }; } private static function __addBanner(_arg1:String, _arg2:Boolean, _arg3:Number, _arg4:Number):void{ DisplayUtils.removeDisplayObject(_hoverBanner); if (_hoverBanner != null){ _hoverBanner = null; }; _tfd = CostumTextfield.getCSSTextfield("left", false, false, true, "normal"); _tfd.htmlText = CSSMapper.map(unescape(_arg1), "toolTipCopy"); var _local5:BitmapData = BitmapUtils.getBitmapData(_tfd, _tfd.width, _tfd.height, true, 0, true); _hoverBanner = new SpriteMotion(); _actionRoot.addChild(_hoverBanner); _hoverBanner.motionBlur = _arg2; _bannerWidth = (_local5.width + (_bannerBorderSpace * 2)); _bannerHeight = (_local5.height + _bannerBorderSpace); _hoverBanner.graphics.beginFill(0xFFFFFF, 0.9); _hoverBanner.graphics.moveTo(0, 0); _hoverBanner.graphics.lineTo(_bannerWidth, 0); _hoverBanner.graphics.lineTo(_bannerWidth, _bannerHeight); _hoverBanner.graphics.lineTo(((_bannerWidth * 0.5) + _arrowSize), _bannerHeight); _hoverBanner.graphics.lineTo((_bannerWidth * 0.5), (_bannerHeight + _arrowSize)); _hoverBanner.graphics.lineTo(((_bannerWidth * 0.5) - _arrowSize), _bannerHeight); _hoverBanner.graphics.lineTo(0, _bannerHeight); _hoverBanner.graphics.lineTo(0, 0); _hoverBanner.graphics.endFill(); if (_arg2){ _tfdCopyBmp = new Bitmap(_local5, "auto", true); _tfdCopyBmp.x = _bannerBorderSpace; _tfdCopyBmp.y = (_bannerBorderSpace * 0.5); _hoverBanner.addChild(_tfdCopyBmp); _tfd = null; } else { _tfd.x = _bannerBorderSpace; _tfd.y = (_bannerBorderSpace * 0.5); _hoverBanner.addChild(_tfd); _tfd.addEventListener(TextEvent.LINK, __textFieldLinkEventHandler); }; var _local6:Number = (_arg2) ? _actionRoot.mouseX : _arg3; var _local7:Number = (_arg2) ? _actionRoot.mouseY : _arg4; _hoverBanner.x = (_local6 - (_hoverBanner.width * 0.5)); _hoverBanner.y = (_local7 - (_hoverBanner.height + 10)); BitmapUtils.addShadow(_hoverBanner, 30, 30, 25, 3, 0.4); _hoverBanner.alpha = 0; TweenMax.to(_hoverBanner, 20, {alpha:1, useFrames:true, ease:Strong.easeOut}); } private static function _reset():void{ EnterFrameManager.removeListener(__enterFrameHandler); _mouseIsOut = false; __resetTimer(); if (_hoverBanner != null){ DisplayUtils.removeDisplayObject(_tfdCopyBmp); if (_tfdCopyBmp){ _tfdCopyBmp = null; }; DisplayUtils.removeDisplayObject(_hoverBanner); if (_hoverBanner){ _hoverBanner = null; }; }; } private static function __timerEventHandler(_arg1:TimerEvent):void{ if (DisplayUtils.isMouseHit(_hoverBanner)){ __runTimer(); } else { _reset(); }; } private static function __runTimer():void{ __resetTimer(); _timer = new Timer(1500, 1); _timer.addEventListener(TimerEvent.TIMER_COMPLETE, __timerEventHandler); _timer.start(); } public static function mouseIsOut():void{ _mouseIsOut = true; if (!_mouseMotion){ __runTimer(); }; } private static function __resetTimer():void{ if (_timer != null){ _timer.stop(); _timer = null; }; } public static function moveTo(_arg1:Number, _arg2:Number, _arg3:Number=1):void{ TweenMax.to(_hoverBanner, _arg3, {x:_arg1, y:_arg2, useFrames:false, ease:Strong.easeInOut}); } public static function addText(_arg1:String, _arg2:Boolean=true, _arg3:Number=0, _arg4:Number=0):void{ if (!_arg1){ _reset(); return; }; _mouseMotion = _arg2; _reset(); __addBanner(_arg1, _mouseMotion, _arg3, _arg4); if (_mouseMotion){ EnterFrameManager.addListener(__enterFrameHandler); }; } public static function __textFieldLinkEventHandler(_arg1:TextEvent):void{ _reset(); GameUtils.textRequest(_arg1.text); } public static function setup(_arg1):void{ _actionRoot = _arg1; _actionRoot.addEventListener(MouseEvent.MOUSE_DOWN, __actionRootEventHandler); _Math = Math; } } }//package eu.ecb.economia.manager
Section 111
//GamePreloader (eu.ecb.economia.modules.GamePreloader) package eu.ecb.economia.modules { import flash.events.*; import de.aperto.managers.*; import flash.display.*; import flash.utils.*; import com.greensock.*; import de.aperto.utils.*; import com.greensock.easing.*; public class GamePreloader extends Sprite { private var _onShowCallback:Function; private var _container:Sprite; private var _onHideCallback:Function; private var _timer:Timer; private var _mask:Sprite; private var _amountDotLines:int;// = 5 private var _onFinished:Boolean; private var _dotCounter:int; private var _onFinishCallback:Function; private var _amountDots:int; private var _dotsArr:Array; private var _amountDotsInLine:int;// = 3 public function GamePreloader(_arg1:Function, _arg2:Function, _arg3:Function){ _onShowCallback = _arg1; _onHideCallback = _arg2; _onFinishCallback = _arg3; addEventListener(Event.ADDED_TO_STAGE, __addedToStage); } private function __addedToStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, __addedToStage); _container = new Sprite(); this.addChild(_container); __addDots(); _mask = DrawUtils.getRect(_container.width, 10); this.addChild(_mask); _mask.y = -5; _mask.x = -5; _mask.scaleX = 0; _mask.alpha = 0; } public function __showDots():void{ var _local2:int; var _local3:Sprite; var _local4:MovieClip; var _local5:Sprite; var _local6:int; var _local8:int; var _local1:int = _dotsArr.length; _amountDots = 0; _dotCounter = 0; var _local7:int; while (_local7 < _local1) { _local3 = (_dotsArr[_local7] as Sprite); _local2 = _dotsArr[_local7].dots.length; _amountDots = (_amountDots + _local2); _local8 = 0; while (_local8 < _local2) { _local4 = (_dotsArr[_local7].dots[_local8] as MovieClip); _local6 = Math.max(15, int(((Math.random() * 30) + 0.5))); TweenMax.to(_local4, _local6, {y:_local4.y, alpha:1, useFrames:true, onComplete:__dotOnShow, ease:Emotion.singleBounceEaseOut}); _local4.y = ((Math.random() * 200) - 200); _local8++; }; _local5 = _dotsArr[_local7].line; TweenMax.to(_local5, 18, {width:_local5.width, useFrames:true, ease:Strong.easeOut}); _local5.width = 1; _local7++; }; } private function __dotOnHide():void{ _dotCounter++; if (_dotCounter == _amountDots){ this.visible = false; _onHideCallback(); }; } public function __hideDots():void{ var _local2:int; var _local3:Sprite; var _local4:MovieClip; var _local5:Sprite; var _local6:int; var _local7:Number; var _local9:int; var _local1:int = _dotsArr.length; _amountDots = 0; _dotCounter = 0; var _local8:int; while (_local8 < _local1) { _local3 = (_dotsArr[_local8] as Sprite); _local2 = _dotsArr[_local8].dots.length; _amountDots = (_amountDots + _local2); _local9 = 0; while (_local9 < _local2) { _local4 = (_dotsArr[_local8].dots[_local9] as MovieClip); _local6 = Math.max(10, int(((Math.random() * 30) + 0.5))); _local7 = (_local4.y + (Math.random() * 100)); TweenMax.to(_local4, _local6, {y:_local7, alpha:0, useFrames:true, onComplete:__dotOnHide, ease:Strong.easeInOut}); _local9++; }; _local5 = _dotsArr[_local8].line; TweenMax.to(_local5, 12, {width:0, y:_local7, useFrames:true, ease:Strong.easeOut}); _local8++; }; } private function __dotOnShow():void{ _dotCounter++; if (_dotCounter == _amountDots){ _dotCounter = 0; _onShowCallback(); }; } private function __dotShowColorOnComplete(_arg1:MovieClip):void{ _arg1.onShowFinished = true; } private function __checkDotHit():void{ var _local2:int; var _local3:MovieClip; var _local5:int; var _local1:int = _dotsArr.length; var _local4:int; while (_local4 < _local1) { _local2 = _dotsArr[_local4].dots.length; _local5 = 0; while (_local5 < _local2) { _local3 = (_dotsArr[_local4].dots[_local5] as MovieClip); if (((_local3.hitTestObject(_mask)) && (!(_local3.onShow)))){ _local3.onShow = true; SoundManager.Instance.playSoundFromLibrary("GameLoaderDotEffect", 0.3); TweenMax.to(_local3.colorClip, 20, {scaleX:1, scaleY:1, useFrames:true, ease:Strong.easeOut, onComplete:__dotShowColorOnComplete, onCompleteParams:[_local3]}); }; _local5++; }; _local4++; }; } private function __addDots():void{ var _local1:Array; var _local2:Object; var _local3:Sprite; var _local4:MovieClip; var _local5:Sprite; var _local6:Sprite; var _local7:Sprite; var _local13:uint; var _local16:int; _dotsArr = []; var _local8:int = _amountDotLines; var _local9:int = _amountDotsInLine; var _local10:Number = 14; var _local11:Number = 0; var _local12:Number = 0; var _local14:XML = XMLManager.Instance.logicXML; var _local15:int; while (_local15 < _local8) { _local3 = new Sprite(); _container.addChild(_local3); _local13 = parseInt(_local14.gamePreloader.dotColor[_local15].@val); _local1 = []; _local11 = 0; _local16 = 0; while (_local16 < _local9) { _local4 = new MovieClip(); _local3.addChild(_local4); _local4.alpha = 0; _local4.x = _local11; _local4.cacheAsBitmap = true; _local5 = DrawUtils.getCircle(7, 0xFFFFFF); _local4.addChild(_local5); _local6 = DrawUtils.getCircle(5, _local13); _local4.addChild(_local6); _local6.scaleX = (_local6.scaleY = 0); _local4.colorClip = _local6; _local4.onShow = false; _local4.onShowFinished = false; BitmapUtils.addShadow(_local4, 3, 3, 0, 3); _local11 = (_local11 + 19); _local1[_local16] = _local4; _local16++; }; _local7 = DrawUtils.getRect((_local3.width - _local4.width), 2, 0xFFFFFF); _local3.addChild(_local7); DisplayUtils.swapChildToBottom(_local7); BitmapUtils.addShadow(_local7, 3, 3, 0, 3); _local3.x = _local10; _local10 = (_local10 + 65); _local2 = {dots:_local1, line:_local7}; _dotsArr[_local15] = _local2; _local15++; }; } public function hide():void{ __hideDots(); } private function __isDotsColorClipsOnShow():Boolean{ var _local3:int; var _local4:MovieClip; var _local6:int; var _local1:Boolean; var _local2:int = _dotsArr.length; var _local5:int; while (_local5 < _local2) { _local3 = _dotsArr[_local5].dots.length; _local6 = 0; while (_local6 < _local3) { _local4 = (_dotsArr[_local5].dots[_local6] as MovieClip); if (!_local4.onShowFinished){ _local1 = false; break; }; _local6++; }; if (!_local1){ break; }; _local5++; }; return (_local1); } public function updatePercent(_arg1:Number):void{ _mask.scaleX = (_mask.scaleX + (((_arg1 / 100) - _mask.scaleX) / 7)); __checkDotHit(); if ((((((_mask.scaleX > 0.999)) && (!(_onFinished)))) && (__isDotsColorClipsOnShow()))){ _onFinished = true; _onFinishCallback(); }; } public function show():void{ __showDots(); } } }//package eu.ecb.economia.modules
Section 112
//MultiGraphbox (eu.ecb.economia.modules.MultiGraphbox) package eu.ecb.economia.modules { import flash.events.*; import eu.ecb.economia.events.*; import de.aperto.managers.*; import flash.display.*; import de.aperto.utils.*; import flash.text.*; import eu.ecb.economia.data.*; import eu.ecb.economia.*; import de.aperto.display.*; import eu.ecb.economia.utils.*; import de.aperto.text.*; import eu.ecb.economia.ui.buttons.graphbox.*; public class MultiGraphbox extends SingleGraphbox { private var _heigth:Number;// = 375 private var _width:Number;// = 370 private var _gridButtonContainer:SpriteMotion; private var _boxOnExpand:Boolean; private var _filterButtonsArr:Array; private var _timeDescriptionTfd:TextField; private var _onUpdate:Boolean; private var _gameDataPool:GameDataPool; private var _isOpen:Boolean; private var _gridButton:GraphboxGridButton; private var _filterButtonsContainer:Sprite; public function MultiGraphbox(_arg1:Array, _arg2:GameDataPool){ economicData = _arg1; _gameDataPool = _arg2; super(economicData, 0, 0, Defaults.MULTI_GRAPHBOX_MAX_VISIBLE_BOXES); currentVisibleBoxes = Defaults.MULTI_GRAPHBOX_VISIBLE_BOXES_SHRINK; maxVisibleBoxes = Defaults.MULTI_GRAPHBOX_MAX_VISIBLE_BOXES; graphBoxGroundWidth = Defaults.MULTI_GRAPHBOX_DEFAULT_WIDTH; graphBoxGroundHeight = Defaults.MULTI_GRAPHBOX_DEFAULT_HEIGHT; isMultiGraphbox = true; } private function __filterbuttonEventHandler(_arg1:ButtonEvent):void{ var _local2:MultiGraphFilterButton = (_arg1.target as MultiGraphFilterButton); switch (_arg1.type){ case ButtonEvent.CLICK: _local2.select = !(_local2.select); setGraphboxFilter(_local2.filterId); renderLines(); __updateFilterButtonStates(); break; }; } override protected function __addedToStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, __addedToStage); addEventListener(Event.REMOVED_FROM_STAGE, __removedFromStage); addGround(); addHeadline(LabelManager.Instance.getString("multiGraphboxHeadline")); __addFilterbuttons(); __addGrid(); __addZoomButtons(); updateGraphboxMask(graphBoxGroundWidth, Defaults.MULTI_GRAPHBOX_BOX_HEIGHT); __updateViewPort(); } public function maxi():void{ if (!_isOpen){ SoundManager.Instance.playSoundFromLibrary("MultiGraphboxOnMaxi"); }; _isOpen = true; _gameDataPool.multigraphboxIsOpen = true; _gridButton.rotateArrow(_isOpen); currentVisibleBoxes = Defaults.MULTI_GRAPHBOX_VISIBLE_BOXES_EXPAND; __updateViewPort(); } private function __addFilterbuttons():void{ var _local5:int; var _local6:String; var _local7:int; var _local10:MultiGraphFilterButton; if (_filterButtonsContainer != null){ DisplayUtils.removeDisplayObject(_filterButtonsContainer); _filterButtonsContainer = null; }; graphBoxGroundHeight; _filterButtonsContainer = new Sprite(); this.addChild(_filterButtonsContainer); _filterButtonsContainer.x = 15; _filterButtonsArr = []; var _local1:Number = 0; var _local2:Number = 0; var _local3 = 3; var _local4 = 10; var _local8:XML = XML(_gameDataPool.gameSettingsXML.economicDataFilter); var _local9:int = _local8.filter.length(); var _local11:Array = __getLastFilterButtonValues(); var _local12:int; while (_local12 < _local9) { _local5 = parseInt(_local8.filter[_local12].@filterId); _local7 = GraphboxUtils.getFilterObjectById(_local5).filterColor; _local6 = GraphboxUtils.getFilterObjectById(_local5).description; _local10 = new MultiGraphFilterButton(_local6, _local7); _filterButtonsContainer.addChild(_local10); _local10.id = _local12; _local10.select = Boolean((_local8.filter[_local12].@select == "1")); _local10.lock = Boolean((_local8.filter[_local12].@locked == "1")); _local10.filterId = _local5; if (_local10.select){ setGraphboxFilter(_local5); }; _local10.x = _local1; _local10.y = _local2; _local2 = (_local2 + (_local10.height + _local3)); if (_local12 == 2){ _local1 = (_local1 + (_local10.width + _local4)); _local2 = (_local10.height + _local3); }; _local10.addEventListener(ButtonEvent.CLICK, __filterbuttonEventHandler); _filterButtonsArr[_local12] = _local10; _local12++; }; var _local13:Number = Math.abs((graphBoxGroundHeight - (Defaults.MULTI_GRAPHBOX_BOX_HEIGHT - (graphboxHeadline.y + graphboxHeadline.height)))); _filterButtonsContainer.y = (((graphboxHeadline.y + graphboxHeadline.height) + (Defaults.MULTI_GRAPHBOX_BOX_HEIGHT - 33)) + ((_local13 * 0.5) - (_filterButtonsContainer.height * 0.5))); if (_gameDataPool.multigraphboxLastActiveFilter.length > 0){ __setStatesToFilterButtons(); }; __updateFilterbuttonValues(); } override public function update(_arg1:Array):void{ if (economicData.length == _arg1.length){ return; }; _ecoOffsetData = _arg1.slice(); _onUpdate = true; updateGraphbox(_arg1); economicData = _arg1; __updateViewPort(); } private function __updateFilterbuttonValues():void{ var _local1:MultiGraphFilterButton; var _local2:Array = __getLastFilterButtonValues(); var _local3:int = _filterButtonsArr.length; var _local4:int; while (_local4 < _local3) { _local1 = (_filterButtonsArr[_local4] as MultiGraphFilterButton); _local1.value = _local2[_local4]; _local4++; }; } override public function updateForeCastData(_arg1:Array):void{ updateValuesOfForecastBoxes(_arg1); _ecoOffsetData = _arg1.slice(); __updatePixelRange(_currentZoomFactor); } override protected function __updateViewPort():void{ var _local1:int = int(((_isOpen) ? 500 : 370 + 0.5)); var _local2:int = int((graphBoxGroundHeight + 0.5)); setNewGroundScale(_local1, _local2); updateSingleBoxes(_local1, Defaults.MULTI_GRAPHBOX_BOX_HEIGHT); renderLines(); __updateFilterbuttonValues(); __updatePixelRange(_currentZoomFactor); } override public function set width(_arg1:Number):void{ } override protected function __groundOnUpdate():void{ DisplayUtils.swapChildToTop(_gridButton); _gridButtonContainer.x = _ground.width; updateGraphboxMask(_ground.width, Defaults.MULTI_GRAPHBOX_BOX_HEIGHT); } public function mini():void{ if (_isOpen){ SoundManager.Instance.playSoundFromLibrary("MultiGraphboxOnMini"); }; _isOpen = false; _gameDataPool.multigraphboxIsOpen = false; _gridButton.rotateArrow(_isOpen); currentVisibleBoxes = Defaults.MULTI_GRAPHBOX_VISIBLE_BOXES_SHRINK; __updateViewPort(); } private function __getLastFilterButtonValues():Array{ var _local3:Number; var _local1:Array = []; var _local2:int = economicData[1].length; var _local4:int; while (_local4 < _local2) { _local3 = economicData[1][_local4].value; _local1[_local4] = _local3; _local4++; }; return (_local1); } public function get isOpen():Boolean{ return (_isOpen); } override public function get height():Number{ return (graphBoxGroundHeight); } override protected function graphboxOnUpdate():void{ if (_onUpdate){ _onUpdate = false; dispatchEvent(new GraphboxEvent(GraphboxEvent.MULTI_ON_UPDATE)); }; } public function set isOpen(_arg1:Boolean):void{ _isOpen = _arg1; } private function __setStatesToFilterButtons():void{ var _local3:MultiGraphFilterButton; var _local4:Object; var _local7:int; var _local1:Array = _gameDataPool.multigraphboxLastActiveFilter; var _local2:int = _local1.length; if (_local2 == 0){ return; }; var _local5:int = _filterButtonsArr.length; var _local6:int; while (_local6 < _local5) { _local3 = (_filterButtonsArr[_local6] as MultiGraphFilterButton); _local7 = 0; while (_local7 < _local2) { _local4 = _local1[_local7]; if (_local4.btnId == _local3.id){ if (_local4.select != _local3.select){ setGraphboxFilter(_local3.filterId); }; _local3.select = _local4.select; }; _local7++; }; _local6++; }; renderLines(); } override protected function __addZoomButtons():void{ _zoomButtonsContainer = new Sprite(); _gridButtonContainer.addChild(_zoomButtonsContainer); __initZoomButtons(); _zoomButtonsContainer.x = -((_zoomButtonsContainer.width + graphboxBorderSpace)); _zoomButtonsContainer.y = 7; } override public function set height(_arg1:Number):void{ } private function __graphboxGridButtonEventHandler(_arg1:ButtonEvent):void{ var _local2:String; switch (_arg1.type){ case ButtonEvent.CLICK: _isOpen = !(_isOpen); if (_isOpen){ maxi(); _local2 = GraphboxEvent.MULTI_ON_EXPAND; } else { mini(); _local2 = GraphboxEvent.MULTI_ON_SHRINK; }; dispatchEvent(new GraphboxEvent(_local2)); break; }; } private function __addGrid():void{ _gridButtonContainer = new SpriteMotion(); this.addChild(_gridButtonContainer); _gridButtonContainer.x = _ground.width; _gridButtonContainer.motionBlur = true; _gridButtonContainer.quality = 3; _gridButton = new GraphboxGridButton(); _gridButtonContainer.addChild(_gridButton); _gridButton.height = _ground.height; _gridButton.addEventListener(ButtonEvent.CLICK, __graphboxGridButtonEventHandler); _timeDescriptionTfd = CostumTextfield.getCSSTextfield(); _gridButtonContainer.addChild(_timeDescriptionTfd); _timeDescriptionTfd.htmlText = CSSMapper.map(LabelManager.Instance.getString("multiGraphboxTimeDescriptionLabel"), "graphboxTimeDescription"); _timeDescriptionTfd.x = (_gridButton.x - (_timeDescriptionTfd.width + graphboxBorderSpace)); _timeDescriptionTfd.cacheAsBitmap = true; _timeDescriptionTfd.y = 280; } private function __updateFilterButtonStates():void{ var _local2:MultiGraphFilterButton; var _local1:Array = []; var _local3:int = _filterButtonsArr.length; var _local4:int; while (_local4 < _local3) { _local2 = (_filterButtonsArr[_local4] as MultiGraphFilterButton); _local1[_local4] = {btnId:_local2.id, select:_local2.select}; _local4++; }; _gameDataPool.multigraphboxLastActiveFilter = _local1; } override public function get width():Number{ return (graphBoxGroundWidth); } } }//package eu.ecb.economia.modules
Section 113
//SingleGraphbox (eu.ecb.economia.modules.SingleGraphbox) package eu.ecb.economia.modules { import flash.events.*; import eu.ecb.economia.events.*; import de.aperto.managers.*; import flash.display.*; import flash.utils.*; import com.greensock.*; import flash.geom.*; import de.aperto.utils.*; import flash.text.*; import eu.ecb.economia.manager.*; import eu.ecb.economia.*; import com.greensock.easing.*; import eu.ecb.economia.utils.*; import de.aperto.text.*; import eu.ecb.economia.ui.graphbox.*; public class SingleGraphbox extends Graphbox { public var amountForecastBoxes:int;// = 1 protected var _maxZoomFactor:Number; private var _updateDelayTimer:Timer; protected var graphBoxGroundWidth:int; protected var _ground:Sprite; public var tooltipLabelId:String; public var filterId:int; protected var graphBoxGroundHeight:int; protected var _ecoOffsetData:Array; protected var _offsetZoomFactor:Number; protected var _zoomButtonsContainer:Sprite; protected var _currentZoomFactor:Number;// = 15 protected var _zoomValue:Number;// = 2 private var _showLoupe:Boolean;// = true public var boxLabel:String; private var _subLabel:TextField; private var _numLabel:TextField; protected var _minZoomFactor:Number;// = 1 public function SingleGraphbox(_arg1:Array, _arg2:Number=0, _arg3:Number=0, _arg4:int=4){ _offsetZoomFactor = _currentZoomFactor; _maxZoomFactor = _currentZoomFactor; economicData = _arg1; _ecoOffsetData = _arg1.slice(); if (_arg2 > 0){ graphBoxGroundWidth = _arg2; }; if (_arg3 > 0){ graphBoxGroundHeight = _arg3; }; currentVisibleBoxes = _arg4; maxVisibleBoxes = _arg4; super(economicData); addEventListener(Event.ADDED_TO_STAGE, __addedToStage); } protected function __groundOnUpdateFinish():void{ } protected function __addedToStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, __addedToStage); addEventListener(Event.REMOVED_FROM_STAGE, __removedFromStage); _updateDelayTimer = new Timer(1000, 1); _updateDelayTimer.addEventListener(TimerEvent.TIMER_COMPLETE, __updateViewPortDelayTimer); addGround(); addHeadline(boxLabel); __addInfoButton(); __addZoomButtons(); updateGraphboxMask(graphBoxGroundWidth, Defaults.SINGLE_GRAPHBOX_BOX_HEIGHT); updateSingleBoxes(graphBoxGroundWidth, Defaults.SINGLE_GRAPHBOX_BOX_HEIGHT); setGraphboxFilter(filterId); __updateViewPort(); } protected function __getMaxPixelRange():Number{ var _local1:Number = __getMaxPercents(); var _local2:Number = int((Math.max(1, Math.abs((_maxZoomFactor - ((_maxZoomFactor / 100) * _local1)))) + 0.5)); var _local3:Number = _maxZoomFactor; if (_local1 > 6){ _local3 = 9; }; if (_local1 > 10){ _local3 = 8; }; if (_local1 > 15){ _local3 = 7; }; if (_local1 > 20){ _local3 = 2; }; if (_local1 > 30){ _local3 = 2; }; if (_local1 > 60){ _local3 = 1; }; return (_local3); } protected function addGround():void{ _ground = DrawUtils.getRoundRect(graphBoxGroundWidth, graphBoxGroundHeight, Defaults.GRAPHBOX_ROUNDCORNER_VAL, Defaults.GRAPHBOX_ROUNDCORNER_VAL, 0xFFFFFF); this.addChild(_ground); _ground.alpha = 0.8; _ground.scale9Grid = new Rectangle(10, 10, (graphBoxGroundWidth - 20), (graphBoxGroundHeight - 20)); DisplayUtils.swapChildToBottom(_ground); } protected function __updateViewPort():void{ updateSingleBoxes(graphBoxGroundWidth, Defaults.SINGLE_GRAPHBOX_BOX_HEIGHT); renderLines(); __updatePixelRange(_currentZoomFactor); } override public function set width(_arg1:Number):void{ } protected function addHeadline(_arg1:String):void{ graphboxHeadline = CostumTextfield.getCSSTextfield(); this.addChild(graphboxHeadline); graphboxHeadline.htmlText = CSSMapper.map(_arg1.toUpperCase(), "graphboxHeadline"); graphboxHeadline.x = 15; graphboxHeadline.y = 10; } public function set showLoupe(_arg1:Boolean):void{ _showLoupe = _arg1; _zoomButtonsContainer.visible = _showLoupe; } private function __addInfoButton():void{ GameUtils.getInfoButton(this, ((graphboxHeadline.x + graphboxHeadline.textWidth) + 15), 20, filterId, __infoButtonEventHandler); } protected function __initZoomButtons():void{ var _local1:MovieClip = (new ((LibraryManager.Instance.getClass("LupePlus") as Class)) as MovieClip); _zoomButtonsContainer.addChild(_local1); _local1.addEventListener(MouseEvent.CLICK, __zoomButtonsContainerEventHandler); _local1.addEventListener(MouseEvent.MOUSE_OVER, __zoomButtonsContainerEventHandler); _local1.addEventListener(MouseEvent.MOUSE_OUT, __zoomButtonsContainerEventHandler); _local1.mouseChildren = false; _local1.buttonMode = true; _local1.id = 0; _local1.stop(); var _local2:MovieClip = (new ((LibraryManager.Instance.getClass("LupeMinus") as Class)) as MovieClip); _zoomButtonsContainer.addChild(_local2); _local2.addEventListener(MouseEvent.CLICK, __zoomButtonsContainerEventHandler); _local2.addEventListener(MouseEvent.MOUSE_OVER, __zoomButtonsContainerEventHandler); _local2.addEventListener(MouseEvent.MOUSE_OUT, __zoomButtonsContainerEventHandler); _local2.x = (_local1.x + (_local1.width + 5)); _local2.mouseChildren = false; _local2.buttonMode = true; _local2.y = _local1.y; _local2.id = 1; _local2.stop(); } protected function __groundOnUpdate():void{ } protected function __addZoomButtons():void{ _zoomButtonsContainer = new Sprite(); this.addChild(_zoomButtonsContainer); __initZoomButtons(); _zoomButtonsContainer.x = (graphBoxGroundWidth - (_zoomButtonsContainer.width + graphboxBorderSpace)); _zoomButtonsContainer.y = 7; } protected function __zoomButtonsContainerEventHandler(_arg1:MouseEvent):void{ var _local2:MovieClip = (_arg1.target as MovieClip); _local2.gotoAndStop(_arg1.type); switch (_arg1.type){ case MouseEvent.CLICK: __updatePixelRange(((_local2.id == 0)) ? __getMinPixelRange() : __getMaxPixelRange()); break; }; } protected function setNewGroundScale(_arg1:Number, _arg2:Number):void{ TweenMax.to(_ground, 20, {width:_arg1, height:_arg2, useFrames:true, overwrite:true, onUpdate:__groundOnUpdate, onComplete:__groundOnUpdateFinish, ease:Emotion.singleBounceEaseOut}); } public function update(_arg1:Array):void{ if (economicData.length == _arg1.length){ return; }; _ecoOffsetData = _arg1.slice(); updateGraphbox(_arg1); economicData = _arg1; __updateViewPort(); __runUpdateDelayTimer(); } public function get showLoupe():Boolean{ return (_showLoupe); } public function updateForeCastData(_arg1:Array):void{ _ecoOffsetData = _arg1.slice(); __updatePixelRange(_currentZoomFactor); updateValuesOfForecastBoxes(_ecoOffsetData); __updateViewPort(); __runUpdateDelayTimer(); } private function __infoButtonEventHandler(_arg1:ButtonEvent):void{ switch (_arg1.type){ case ButtonEvent.MOUSE_OVER: ToolTipManager.addText(LabelManager.Instance.getString(tooltipLabelId)); break; case ButtonEvent.MOUSE_OUT: ToolTipManager.hide(); break; }; } protected function __removedFromStage(_arg1:Event):void{ TweenMax.killChildTweensOf(this); } protected function __updatePixelRange(_arg1:Number):void{ if (!_showLoupe){ _zoomButtonsContainer.visible = _showLoupe; return; }; this.pixelPercentRange = _arg1; _currentZoomFactor = _arg1; var _local2:Number = __getMaxPercents(); _zoomButtonsContainer.visible = (_local2 > 10); if (((!(_zoomButtonsContainer.visible)) && (!((_currentZoomFactor == __getMinPixelRange()))))){ _currentZoomFactor = __getMinPixelRange(); __updateViewPort(); }; } private function __updateViewPortDelayTimer(_arg1:TimerEvent):void{ __updateViewPort(); } private function __runUpdateDelayTimer():void{ _updateDelayTimer.reset(); _updateDelayTimer.start(); } protected function __getMinPixelRange():Number{ return (_maxZoomFactor); } protected function __getMaxPercents():Number{ var _local2:int; var _local3:int; var _local5:int; var _local6:int; var _local7:int; var _local1:int = ((_ecoOffsetData.length > maxVisibleBoxes)) ? maxVisibleBoxes : _ecoOffsetData.length; var _local4:Boolean; var _local8:Number = 0; var _local9:Number = 0; var _local10:Number = 0; var _local11:Number = 0; var _local12:Number = 0; _local5 = 0; while (_local5 < _local1) { _local2 = _ecoOffsetData[_local5].length; _local6 = 0; while (_local6 < _local2) { _local3 = activeGraphboxFilters.length; _local7 = 0; while (_local7 < _local3) { if (activeGraphboxFilters[_local7] == _ecoOffsetData[_local5][_local6].filterId){ _local9 = Math.abs(_ecoOffsetData[_local5][_local6].value); _local8 = _ecoOffsetData[_local5][_local6].value; _local11 = ((_local8 > 0)) ? _local8 : _local11; _local10 = ((_local10 < _local9)) ? _local9 : _local10; _local12 = ((_local12 > _local8)) ? _local8 : _local12; }; _local7++; }; _local6++; }; _local5++; }; if (_local11 > 10){ _local10 = 11; }; if (_local11 > 14){ _local10 = 16; }; if (_local11 > 17){ _local10 = 21; }; if (_local11 > 20){ _local10 = 31; }; if (_local11 > 25){ _local10 = 61; }; if (_local12 < -3){ _local10 = 11; }; if (_local12 < -6){ _local10 = 16; }; if (_local12 < -10){ _local10 = 21; }; if (_local12 < -30){ _local10 = 61; }; return (_local10); } } }//package eu.ecb.economia.modules
Section 114
//Slider (eu.ecb.economia.modules.Slider) package eu.ecb.economia.modules { import flash.events.*; import eu.ecb.economia.events.*; import de.aperto.managers.*; import flash.display.*; import flash.geom.*; import de.aperto.utils.*; import flash.text.*; import eu.ecb.economia.*; import de.aperto.display.*; import de.aperto.text.*; import eu.ecb.economia.ui.buttons.sliderbutton.*; import eu.ecb.economia.ui.*; public class Slider extends Sprite { private var _percent:Number;// = 0 private var _Math:Object; private var _sliderLoupeOffsetX:Number;// = 0 private var _sliderLoupeX:Number;// = 0 private var _sliderLoupeOutOfRange:Boolean; private var _sliderLoupe:SpriteMotion; private var _arrowLeft:ArrowLeft; private var _mouseIsDown:Boolean; private var _offsetPercent:Number;// = 0 private var _sliderWidth:Number; private var _arrowRight:ArrowRight; private var _sliderLoupeNumLineX:Number;// = 0 private var _updateCallback:Function; private var _sliderButton:Dragger; private var _amountStacksToNextNumber:int;// = 4 private var _timeLineZoomWidth:Number; private var _scrollWidth:Number; private var _sliderContainer:SpriteMotion; private var _sliderLoupeDeceleration:Number;// = 6 private var _loupeZoomFactor:int;// = 6 private var _sliderLoupeNumLine:SpriteMotion; private var _sliderContOffsetX:Number;// = 0 private var _numberPanel:SliderNumberPanel; private var _timeLineWidth:Number;// = 840 private var _sliderLoupeNumLineMask:Sprite; public function Slider(_arg1:Function){ _Math = Math; _updateCallback = _arg1; addEventListener(Event.ADDED_TO_STAGE, __addedOnStage); } private function __stopUpdate():void{ EnterFrameManager.removeListener(__sliderUpdateEventHandler); _sliderLoupe.motionBlur = (_sliderLoupeNumLine.motionBlur = false); _sliderLoupe.motionBlur = (_sliderLoupeNumLine.motionBlur = true); } private function __updateNumberPanel():void{ var _local1:Number = ((Defaults.SLIDER_MAX_PERCENT / 100) * _percent); _numberPanel.update(_local1); } private function __setPositions():void{ _sliderButton.x = _Math.round(((_arrowLeft.x + _arrowLeft.width) - 11)); _arrowRight.x = _Math.round(((_sliderButton.x + _sliderButton.width) - 8)); _numberPanel.x = (_sliderButton.x + ((_sliderButton.width * 0.5) - (_numberPanel.width * 0.5))); _numberPanel.y = -((_numberPanel.height - 20)); } private function __stageEventHandler(_arg1:Event):void{ switch (_arg1.type){ case MouseEvent.MOUSE_UP: _sliderContainer.stopDrag(); _mouseIsDown = false; break; }; } private function __addArrowButtons():void{ _arrowLeft = new ArrowLeft(); _sliderContainer.addChild(_arrowLeft); _arrowLeft.addEventListener(ButtonEvent.CLICK, __arrowButtonEventHandler); _arrowRight = new ArrowRight(); _sliderContainer.addChild(_arrowRight); _arrowRight.addEventListener(ButtonEvent.CLICK, __arrowButtonEventHandler); } private function __addedOnStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, __addedOnStage); _sliderContainer = new SpriteMotion(); this.addChild(_sliderContainer); _sliderContainer.y = -3; _sliderContainer.motionBlur = false; _sliderContainer.motionSoftness = 1; _sliderContainer.quality = 3; __addNumberPanel(); __addSliderButton(); __addArrowButtons(); __setPositions(); _sliderWidth = _sliderContainer.width; _scrollWidth = (_timeLineWidth - _sliderWidth); __addSliderLoupe(); __addSliderLoupeNumLine(); DisplayUtils.swapChildToTop(_sliderContainer); stage.addEventListener(MouseEvent.MOUSE_UP, __stageEventHandler); } private function __arrowButtonEventHandler(_arg1:Event):void{ var _local4:Number; var _local2:Number = _percent; var _local3:Number = 0; switch (_arg1.type){ case ButtonEvent.CLICK: if ((_arg1.target is ArrowLeft)){ _local3 = -1; }; if ((_arg1.target is ArrowRight)){ _local3 = 1; }; _percent = _Math.max(0, (_percent + _local3)); _local4 = _Math.max(0, _Math.min(_scrollWidth, __getSliderXByPercent())); _sliderContainer.x = _local4; __updateNumberPanel(); __updateSliderLoupe(true); if (_local2 != _percent){ _updateCallback(GameEvent.SLIDER_ARROW_BUTTON_UP); }; break; }; } private function __getSliderXByPercent():Number{ return (((_scrollWidth / 100) * _percent)); } private function __addNumberPanel():void{ _numberPanel = new SliderNumberPanel(); _sliderContainer.addChild(_numberPanel); } private function __sliderButtonEventHandler(_arg1:Event):void{ switch (_arg1.type){ case ButtonEvent.MOUSE_DOWN: _mouseIsDown = true; _updateCallback(GameEvent.SLIDER_DOWN); _sliderContainer.startDrag(false, new Rectangle(0, -3, _scrollWidth, 0)); __runUpdate(); break; case ButtonEvent.MOUSE_UP: _mouseIsDown = false; _updateCallback(GameEvent.SLIDER_UP); _sliderContainer.stopDrag(); break; }; } public function update(_arg1:Number):void{ _percent = (_arg1 * _amountStacksToNextNumber); _sliderContainer.x = _Math.max(0, _Math.min(_scrollWidth, __getSliderXByPercent())); __updateNumberPanel(); __updateSliderLoupe(true); } private function __addSliderButton():void{ _sliderButton = new Dragger(); _sliderContainer.addChild(_sliderButton); _sliderButton.addEventListener(ButtonEvent.MOUSE_DOWN, __sliderButtonEventHandler); _sliderButton.addEventListener(ButtonEvent.MOUSE_UP, __sliderButtonEventHandler); } private function __addSliderLoupe():void{ _sliderLoupe = new SpriteMotion(); this.addChild(_sliderLoupe); _sliderLoupe.motionBlur = true; _sliderLoupe.quality = 3; _sliderLoupe.motionSoftness = 1; var _local1:BitmapData = new (LibraryManager.Instance.getClass("SliderLupe") as Class)(0, 0); var _local2:Bitmap = new Bitmap(_local1, "auto", true); _sliderLoupe.addChild(_local2); BitmapUtils.addShadow(_local2, 5, 5, 2, 3, 0.3, 90); _sliderLoupe.y = -26; var _local3:Sprite = DrawUtils.getRoundRect(_sliderLoupe.width, _sliderLoupe.height, 10, 10, 0xEEEEEE); _sliderLoupe.addChild(_local3); DisplayUtils.swapChildToBottom(_local3); } private function __sliderUpdateEventHandler():void{ _percent = __getPercent(); __updateNumberPanel(); __updateSliderLoupe(); if (_offsetPercent != _percent){ _offsetPercent = _percent; _updateCallback(GameEvent.SLIDER_MOVE); }; if (((!(_mouseIsDown)) && ((_Math.abs((_sliderContOffsetX - _sliderLoupe.x)) < 0.5)))){ __stopUpdate(); }; } private function __runUpdate():void{ EnterFrameManager.addListener(__sliderUpdateEventHandler); } private function __getPercent():Number{ var _local1:Number = ((100 / _scrollWidth) * _sliderContainer.x); var _local2:String = _local1.toFixed(2); return (parseFloat(_local2)); } public function get value():Number{ return (_numberPanel.value); } private function __addSliderLoupeNumLine():void{ var _local3:Sprite; var _local4:TextField; var _local9:int; _sliderLoupeNumLineMask = DrawUtils.getRect(_sliderLoupe.width, _sliderLoupe.height, 0xFF0000); this.addChild(_sliderLoupeNumLineMask); _sliderLoupeNumLineMask.y = _sliderLoupe.y; _sliderLoupeNumLine = new SpriteMotion(); this.addChild(_sliderLoupeNumLine); _sliderLoupeNumLine.motionBlur = true; _timeLineZoomWidth = (_timeLineWidth * _loupeZoomFactor); var _local1:Sprite = DrawUtils.getGradientRect(_timeLineZoomWidth, 6, 0x333333, 0x999999, 1, 1); _sliderLoupeNumLine.addChild(_local1); _sliderLoupeNumLine.y = ((_sliderLoupe.y + (_sliderLoupe.height * 0.5)) - (_sliderLoupeNumLine.height * 0.5)); _sliderLoupeNumLine.mask = _sliderLoupeNumLineMask; var _local2:Sprite = new Sprite(); _sliderLoupeNumLine.addChild(_local2); DisplayUtils.swapChildToBottom(_local2); var _local5:Number = 0; var _local6:Number = 0; var _local7:Number = -3; var _local8:int; while (_local8 < (Defaults.SLIDER_MAX_PERCENT + 1)) { if (_local8 < Defaults.SLIDER_MAX_PERCENT){ _local9 = 0; while (_local9 < _amountStacksToNextNumber) { _local3 = DrawUtils.getGradientRect(2, 13, 0x333333, 0x999999); _local2.addChild(_local3); _local3.x = _local5; _local3.y = _local7; _local5 = (_local5 + (_timeLineZoomWidth / (Defaults.SLIDER_MAX_PERCENT * _amountStacksToNextNumber))); _local9++; }; }; _local4 = (CostumTextfield.getCSSTextfield() as TextField); _local2.addChild(_local4); _local4.htmlText = CSSMapper.map(_local8.toString(), "sliderTimelineZoomNumber"); _local4.x = (_local6 - (_local4.width * 0.5)); _local4.y = 9; _local6 = (_local6 + (_timeLineZoomWidth / Defaults.SLIDER_MAX_PERCENT)); _local8++; }; _local3 = DrawUtils.getGradientRect(2, 13, 0x333333, 0x999999); _local2.addChild(_local3); _local3.x = _local5; _local3.y = _local7; } private function __updateSliderLoupe(_arg1:Boolean=false):void{ _sliderContOffsetX = ((_sliderContainer.x - (_sliderLoupe.width * 0.5)) + (_sliderContainer.width * 0.5)); _sliderLoupeNumLineX = (-(((((_timeLineWidth - (_sliderWidth * 0.5)) * _loupeZoomFactor) / 106) * _percent)) + (_sliderWidth * 0.5)); if (_arg1){ _sliderLoupe.x = _Math.min((_timeLineWidth - _sliderLoupe.width), _Math.max(0, _sliderContOffsetX)); _sliderLoupeNumLineMask.x = _sliderLoupe.x; _sliderLoupeNumLine.motionBlur = false; _sliderLoupeNumLine.x = _sliderLoupeNumLineX; _sliderLoupeNumLine.motionBlur = true; return; }; _sliderLoupeX = (_sliderLoupeX + ((_sliderContOffsetX - _sliderLoupeX) / _sliderLoupeDeceleration)); _sliderLoupeX = _Math.min((_timeLineWidth - _sliderLoupe.width), _Math.max(0, _sliderLoupeX)); _sliderLoupe.x = _sliderLoupeX; _sliderLoupeNumLineMask.x = _sliderLoupe.x; _sliderLoupeNumLine.x = (_sliderLoupeNumLine.x + (int(((_sliderLoupeNumLineX - _sliderLoupeNumLine.x) + 0.5)) / _sliderLoupeDeceleration)); } } }//package eu.ecb.economia.modules
Section 115
//StagePreloader (eu.ecb.economia.modules.StagePreloader) package eu.ecb.economia.modules { import flash.events.*; import flash.display.*; import flash.utils.*; import com.greensock.*; import de.aperto.utils.*; import de.aperto.display.*; import com.greensock.easing.*; public class StagePreloader extends Sprite { private var _container:Sprite; public var percent:int; private var _timer:Timer; private var _dotsCircleRadius:int;// = 7 private var _spinnerDotsArr:Array; private var _currentOffsetDotId:int; private var _amountDots:int;// = 8 private var _activeDot:SpriteMotion; private var _spinnerHideCallback:Function; private var _currentDotId:int;// = -1 private var _dotSize:int;// = 2 private var _spinnerOnShow:Boolean; private var _circleCnt:int; private var _spinnerMustDie:Boolean; public function StagePreloader(){ addEventListener(Event.ADDED_TO_STAGE, __addedToStage); } private function __addedToStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, __addedToStage); addEventListener(Event.REMOVED_FROM_STAGE, __removedFromStage); stage.addEventListener(Event.RESIZE, __stageEventHandler); _container = new Sprite(); this.addChild(_container); __showSpinner(); } private function __stageEventHandler(_arg1:Event):void{ __stageOnResize(); } private function __runTimer():void{ _timer = new Timer(30); _timer.addEventListener(TimerEvent.TIMER, __timerEventHandler); _timer.start(); } private function __removedFromStage(_arg1:Event):void{ removeEventListener(Event.REMOVED_FROM_STAGE, __removedFromStage); removeEventListener(Event.RESIZE, __stageEventHandler); } private function __timerEventHandler(_arg1:TimerEvent):void{ var _local2:Sprite; var _local3:Sprite; _currentOffsetDotId = (int((((percent / 100) * _amountDots) + 0.5)) - 1); while (_currentDotId < _currentOffsetDotId) { _currentDotId++; _activeDot = (_spinnerDotsArr[_currentDotId] as SpriteMotion); _local2 = DrawUtils.getCircle(_dotSize, 0xFF00); _activeDot.addChild(_local2); _local2.alpha = 0.3; }; switch (_arg1.type){ case TimerEvent.TIMER: _local3 = (_spinnerDotsArr[_circleCnt] as Sprite); _local3.alpha = 1; TweenMax.to(_local3, 15, {alpha:0.35, useFrames:true, overwrite:true, ease:Strong.easeOut}); _circleCnt++; if (_circleCnt > (_spinnerDotsArr.length - 1)){ _circleCnt = 0; }; break; }; } private function __bubblesOnShow():void{ if (_spinnerMustDie){ hideSpinner(_spinnerHideCallback); }; } private function __bubblesOnHide():void{ DisplayUtils.removeDisplayObject(_container); if (_container != null){ _container = null; }; if (_timer){ _timer.stop(); _timer.reset(); _timer = null; }; if (_spinnerHideCallback != null){ _spinnerHideCallback(); _spinnerHideCallback = null; }; } private function __stageOnResize():void{ if (_container == null){ return; }; _container.x = (stage.stageWidth * 0.5); _container.y = (stage.stageHeight * 0.5); } private function __addDots():void{ var _local1:SpriteMotion; var _local2:Sprite; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; _spinnerDotsArr = []; var _local8 = 100; var _local9:int; while (_local9 < _amountDots) { _local1 = new SpriteMotion(); _container.addChild(_local1); _local1.motionBlur = true; _local1.alpha = 0; _local2 = DrawUtils.getCircle(_dotSize, 0xFFFFFF); _local1.addChild(_local2); _local3 = (((360 / _amountDots) * _local9) * (Math.PI / 180)); _local6 = (_dotsCircleRadius * Math.cos(_local3)); _local7 = (_dotsCircleRadius * Math.sin(_local3)); _local1.x = _local6; _local1.y = _local7; _spinnerDotsArr[_local9] = _local1; _local9++; }; _container.rotation = 0; _container.scaleX = (_container.scaleY = 0); _container.cacheAsBitmap = true; TweenMax.to(_container, 50, {rotation:-355, scaleX:1, scaleY:1, useFrames:true, overwrite:true, onComplete:__bubblesOnShow, ease:Strong.easeOut}); BitmapUtils.addShadow(_container, 7, 7, 0, 3, 0.5, 90, 0xFFFFFF); } public function hideSpinner(_arg1:Function):void{ _spinnerHideCallback = _arg1; TweenMax.to(_container, 30, {alpha:0, rotation:180, scaleX:3, scaleY:3, useFrames:true, overwrite:true, onComplete:__bubblesOnHide, ease:Strong.easeInOut}); } public function __showSpinner():void{ __addDots(); __runTimer(); __stageOnResize(); } } }//package eu.ecb.economia.modules
Section 116
//ExternalCall (eu.ecb.economia.net.externalcall.ExternalCall) package eu.ecb.economia.net.externalcall { import flash.events.*; import de.aperto.utils.*; import flash.net.*; import nl.demonsters.debugger.*; public class ExternalCall { public static var LOCAL_SENDMAIL_URL:String = "http://localhost/projects/Aperto/Clients/ecb/Monetary%20Policy/trunk/flash/bin/includes/sendToFriend.php"; public static var LOCAL_HIGHSCORE_URL:String = "http://localhost/projects/Aperto/Clients/ecb/Monetary%20Policy/trunk/flash/bin/includes/highscore.php"; public static var LOCAL_RANKING_URL:String = "http://localhost/projects/Aperto/Clients/ecb/Monetary%20Policy/trunk/flash/bin/includes/highscore.php"; public static function getHighscoreList(_arg1:Function, _arg2:Number, _arg3:Number, _arg4:String, _arg5:String=""):void{ var _local6:Array = []; _local6.push({k:"callFunction", v:"getHighscore"}); _local6.push({k:"from", v:_arg2}); _local6.push({k:"to", v:_arg3}); _local6.push({k:"md5", v:_arg4}); __callDataBase(_local6, _arg1, (Develop.Instance.projectIsOnline()) ? _arg5 : LOCAL_HIGHSCORE_URL); } public static function setHighscore(_arg1:Function, _arg2:String, _arg3:String, _arg4:int, _arg5:Number, _arg6:int, _arg7:Number, _arg8:String, _arg9:String="", _arg10:String=""):void{ var _local11:Array = []; _local11[0] = {k:"name", v:_arg2}; _local11[1] = {k:"age", v:_arg3}; _local11[2] = {k:"award", v:_arg4}; _local11[3] = {k:"inflation", v:_arg5}; _local11[4] = {k:"quarter", v:_arg6}; _local11[5] = {k:"score", v:_arg7}; _local11[6] = {k:"md5", v:_arg8}; _local11[7] = {k:"callFunction", v:"setHighscore"}; _local11[8] = {k:"uuid", v:_arg10}; __callDataBase(_local11, _arg1, (Develop.Instance.projectIsOnline()) ? _arg9 : LOCAL_RANKING_URL); } private static function __testHandler(_arg1:Event):void{ var _local2:IOErrorEvent; switch (_arg1.type){ case Event.COMPLETE: MonsterDebugger.trace(null, "COMPLETE"); MonsterDebugger.trace(null, _arg1.target); MonsterDebugger.trace(null, _arg1.target.data); break; case IOErrorEvent.IO_ERROR: _local2 = (_arg1 as IOErrorEvent); MonsterDebugger.trace(null, "IOErrorEvent"); MonsterDebugger.trace(null, _local2.text); break; }; } public static function getUserRanking(_arg1:Function, _arg2:Number, _arg3:String, _arg4:String=""):void{ var _local5:Array = []; _local5.push({k:"callFunction", v:"getRanking"}); _local5.push({k:"score", v:_arg2}); _local5.push({k:"md5", v:_arg3}); __callDataBase(_local5, _arg1, (Develop.Instance.projectIsOnline()) ? _arg4 : LOCAL_RANKING_URL); } private static function __callDataBase(_arg1:Array, _arg2:Function, _arg3:String):void{ var variablesData = _arg1; var callback = _arg2; var url = _arg3; if (callback == null){ return; }; var loader:URLLoader = new URLLoader(); var request:URLRequest = new URLRequest(); var variables:URLVariables = new URLVariables(); var i:int; while (i < variablesData.length) { variables[variablesData[i].k] = variablesData[i].v; i = (i + 1); }; request.url = ((url + "?") + variables); request.method = URLRequestMethod.POST; MonsterDebugger.trace(null, ((("url: " + url) + "?") + variables)); MonsterDebugger.trace(null, variables); MonsterDebugger.trace(null, variablesData); loader.addEventListener(Event.COMPLETE, function (_arg1:Event):void{ callback(_arg1.target.data); }); loader.addEventListener(IOErrorEvent.IO_ERROR, function (_arg1:Event):void{ callback(_arg1); }); loader.load(request); } public static function sendMail(_arg1:Function, _arg2:Array, _arg3:String):void{ var _local4:Array = []; var _local5:int; while (_local5 < _arg2.length) { _local4.push({k:_arg2[_local5].key, v:_arg2[_local5].value}); _local5++; }; __callDataBase(_local4, _arg1, (Develop.Instance.projectIsOnline()) ? (Develop.Instance.serverRoot + _arg3) : LOCAL_SENDMAIL_URL); } } }//package eu.ecb.economia.net.externalcall
Section 117
//DataLoader (eu.ecb.economia.net.DataLoader) package eu.ecb.economia.net { import flash.events.*; import de.aperto.events.*; import nl.demonsters.debugger.*; import de.aperto.net.*; public class DataLoader { private static var _xmlLoader:XMLLoader; private static var _binaryLoader:BinaryLoader; private static var _dataContainer:Array; private static function __loadNextMediaFile():void{ var _local1:String = __getNextLoaderURL("media"); if (_local1 != null){ __loadMediaData(_local1); }; } private static function __loadMediaData(_arg1:String):void{ if (((!((_binaryLoader == null))) && (_binaryLoader.onProgress))){ return; }; _binaryLoader = new BinaryLoader(); _binaryLoader.addEventListener(BinaryLoaderEvent.ASSET_COMPLETE, __mediaLoaderEventHandler); _binaryLoader.addEventListener(BinaryLoaderEvent.ON_ERROR, __mediaLoaderEventHandler); if (__getAssetObject(_arg1).progressCallback != null){ _binaryLoader.addEventListener(BinaryLoaderEvent.ON_PROGRESS, __mediaLoaderEventHandler); }; _binaryLoader.push({url:_arg1}); _binaryLoader.start(); } private static function __removeCallback(_arg1:String):void{ var _local2:Array = []; var _local3:Array = _dataContainer.slice(); var _local4:int; while (_local4 < _local3.length) { if (_local3[_local4].url == _arg1){ _local3.splice(_local3.indexOf(_local3[_local4]), 1); }; _local4++; }; _dataContainer = _local3; } private static function __mediaLoaderEventHandler(_arg1:BinaryLoaderEvent):void{ var _local2:Object; var _local3:Function; var _local4:Function; _local2 = __getAssetObject(_arg1.loadedContentAdress); switch (_arg1.type){ case BinaryLoaderEvent.ASSET_COMPLETE: _local3 = (_local2.callback as Function); if (_local3 != null){ if (_local2.returnURL){ _local3(_arg1.loadedContent, _local2.url); } else { _local3(_arg1.loadedContent); }; __removeCallback(_arg1.loadedContentAdress); }; __loadNextMediaFile(); break; case BinaryLoaderEvent.ON_PROGRESS: _local4 = (_local2.progressCallback as Function); if (_local4 != null){ if (_local2.returnURL){ _local4(_arg1.percent, _local2.url); } else { _local4(_arg1.percent); }; }; break; case BinaryLoaderEvent.ON_ERROR: MonsterDebugger.trace(null, _arg1); MonsterDebugger.trace(null, ("DataLoader.ON_ERROR - url: " + _arg1.loadedContentAdress)); __removeCallback(_arg1.loadedContentAdress); __loadNextMediaFile(); break; }; } public static function loadXML(_arg1:String, _arg2:Function, _arg3:Function=null, _arg4:Boolean=false):void{ if (_arg2 == null){ return; }; if (_dataContainer == null){ _dataContainer = []; }; _dataContainer.push({url:_arg1, callback:_arg2, progressCallback:_arg3, returnURL:_arg4, type:"xml"}); __loadXMLData(_arg1); } private static function __getNextLoaderURL(_arg1:String):String{ var _local2:String; var _local3:Array = _dataContainer; var _local4:int; while (_local4 < _local3.length) { if (_local3[_local4].type == _arg1){ _local2 = _local3[_local4].url; break; }; _local4++; }; return (_local2); } private static function __getAssetObject(_arg1:String):Object{ var _local2:Object = {}; var _local3:Array = _dataContainer; var _local4:int; while (_local4 < _local3.length) { if (_local3[_local4].url == _arg1){ _local2 = _local3[_local4]; break; }; _local4++; }; return (_local2); } private static function __xmlLoaderEventHandler(_arg1:XMLLoaderEvent):void{ var _local2:Object; var _local3:Function; var _local4:String; var _local5:Function; _local2 = __getAssetObject(_arg1.target.path); switch (_arg1.type){ case XMLLoaderEvent.XML_ON_LOAD: _local3 = (_local2.callback as Function); if (_local3 != null){ if (_local2.returnURL){ _local3(XML(_arg1.target.xml), _local2.url); } else { _local3(XML(_arg1.target.xml)); }; __removeCallback(_arg1.target.path); }; _local4 = __getNextLoaderURL("xml"); if (_local4 != null){ __loadXMLData(_local4); }; break; case XMLLoaderEvent.XML_ON_PROGRESS: _local5 = (_local2.progressCallback as Function); if (_local5 != null){ if (_local2.returnURL){ _local5(_arg1.target.percent, _local2.url); } else { _local5(0); }; }; break; case XMLLoaderEvent.XML_ON_ERROR: MonsterDebugger.trace(null, ("__xmlLoaderEventHandler->XML_ON_ERROR: " + _arg1)); break; }; } private static function __loadXMLData(_arg1:String):void{ if (((!((_xmlLoader == null))) && (_xmlLoader.onProgress))){ return; }; _xmlLoader = new XMLLoader(_arg1); _xmlLoader.addEventListener(XMLLoaderEvent.XML_ON_LOAD, __xmlLoaderEventHandler); _xmlLoader.addEventListener(XMLLoaderEvent.XML_ON_ERROR, __xmlLoaderEventHandler); if (__getAssetObject(_arg1).progressCallback != null){ _xmlLoader.addEventListener(XMLLoaderEvent.XML_ON_PROGRESS, __xmlLoaderEventHandler); }; _xmlLoader.start(); } public static function loadMedia(_arg1:String, _arg2:Function, _arg3:Function=null, _arg4:Boolean=false):void{ if (_arg2 == null){ return; }; if (_dataContainer == null){ _dataContainer = []; }; _dataContainer.push({url:_arg1, callback:_arg2, progressCallback:_arg3, returnURL:_arg4, type:"media"}); __loadMediaData(_arg1); } } }//package eu.ecb.economia.net
Section 118
//Disclaimer (eu.ecb.economia.templates.disclaimer.Disclaimer) package eu.ecb.economia.templates.disclaimer { import flash.events.*; import eu.ecb.economia.events.*; import de.aperto.managers.*; import flash.display.*; import com.greensock.*; import eu.ecb.economia.templates.*; import de.aperto.utils.*; import flash.text.*; import nl.demonsters.debugger.*; import eu.ecb.economia.*; import com.greensock.easing.*; import eu.ecb.economia.net.*; import de.aperto.text.*; import de.aperto.ui.mousescroller.*; public class Disclaimer extends Template implements TemplateInterface { private var _onLoadCnt:int; private var _tfdCopy:TextField; private var _tfdContainer:Sprite; private var _pageXML:XML; private var _peopleImagePath:String; private var _backgroundMapImagePath:String; private var _ground:Sprite; private var _tfdHeadline:TextField; private var _mapBmp:Bitmap; private var _imagesContainer:Sprite; private var _peopleBmp:Bitmap; private function __imageOnLoad(_arg1:Bitmap, _arg2:String):void{ _onLoadCnt++; switch (_arg2){ case _backgroundMapImagePath: _mapBmp = _arg1; _imagesContainer.addChild(_mapBmp); _mapBmp.x = ((_ground.x + _ground.width) - _mapBmp.width); _mapBmp.y = (((_ground.y + _ground.height) * 0.5) - (_mapBmp.height * 0.5)); DisplayUtils.swapChildToBottom(_mapBmp); break; case _peopleImagePath: _peopleBmp = _arg1; _imagesContainer.addChild(_peopleBmp); _peopleBmp.x = ((_ground.x + _ground.width) - (_peopleBmp.width + 50)); _peopleBmp.y = (Defaults.GAME_STAGE_HEIGHT - _peopleBmp.height); DisplayUtils.swapChildToTop(_peopleBmp); break; }; if (_onLoadCnt == 2){ __imagesOnLoad(); }; } override public function remove():void{ TweenMax.to(this, 5, {alpha:0, useFrames:true, onComplete:__onRemove, ease:Strong.easeOut}); } private function __bluebuttonCallback():void{ templateController.addTemplate(templateController.lastTemplateId); } private function __addCopy():void{ var _local1:MouseScroller = new MouseScroller(); _tfdContainer.addChild(_local1); var _local2:String = LabelManager.Instance.getString("disclaimerCopy"); _tfdCopy = CostumTextfield.getCSSTextfield("left", false, true, true); _tfdCopy.width = 400; _tfdCopy.htmlText = CSSMapper.map(_local2, "disclaimerCopy"); _local1.y = ((_tfdHeadline.y + _tfdHeadline.height) + 20); _local1.addScrollContent(_tfdCopy); _local1.width = _tfdCopy.width; _local1.height = 250; } override public function hide():void{ } private function __imagesOnLoad():void{ _tfdContainer = new Sprite(); this.addChild(_tfdContainer); __addHeadline(); __addCopy(); _tfdContainer.x = (Defaults.GAME_STAGE_BORDERSPACE * 3); _tfdContainer.y = (Defaults.GAME_STAGE_BORDERSPACE * 3); } override public function show():void{ this.alpha = 1; } override public function update():void{ __templateOnUpdate(); } override public function addedToStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, addedToStage); navigationBar.changeState({slider:false, bluebutton:LabelManager.Instance.getString("disclaimerBigBlueButtonLabel"), bluebuttonCallback:__bluebuttonCallback, navi:false, subnavi:true, autopilot:false}); __addGround(); if (gameDataPool.xmlData.disclaimer){ _pageXML = XML(gameDataPool.xmlData.disclaimer); __addImages(); } else { __loadXML(); }; } private function __templateOnUpdate():void{ dispatchEvent(new TemplateEvent(TemplateEvent.ON_UPDATE)); } private function __removeEvents():void{ } private function __addGround():void{ var _local1:Number = (Defaults.GAME_STAGE_WIDTH - (Defaults.GAME_STAGE_BORDERSPACE * 2)); var _local2:Number = Defaults.GAME_STAGE_HEIGHT; _ground = DrawUtils.getRoundRect(_local1, _local2, 20, 20, 0xFFFFFF); this.addChild(_ground); _ground.x = Defaults.GAME_STAGE_BORDERSPACE; _ground.y = Defaults.GAME_STAGE_BORDERSPACE; BitmapUtils.addShadow(_ground, 30, 30, 25, 3, 0.4); } private function __loadXML():void{ var _local1:String = String((((Develop.Instance.serverRoot + "includes/xml/content/templates/disclaimer.") + Develop.Instance.language) + ".xml")); DataLoader.loadXML(_local1, __xmlOnLoad); } private function __onRemove():void{ __removeEvents(); dispatchEvent(new TemplateEvent(TemplateEvent.ON_REMOVE)); } private function __addHeadline():void{ var _local1:String = LabelManager.Instance.getString("disclaimerHeadline"); _tfdHeadline = CostumTextfield.getCSSTextfield("left", false, false, true); _tfdContainer.addChild(_tfdHeadline); _tfdHeadline.width = 400; _tfdHeadline.htmlText = CSSMapper.map(_local1, "disclaimerHeadline"); } private function __templateOnShow():void{ dispatchEvent(new TemplateEvent(TemplateEvent.INIT)); } private function __addImages():void{ _imagesContainer = new Sprite(); this.addChild(_imagesContainer); _backgroundMapImagePath = String((Develop.Instance.serverRoot + _pageXML.backgroundMapImage.@src)); DataLoader.loadMedia(_backgroundMapImagePath, __imageOnLoad, null, true); _peopleImagePath = String((Develop.Instance.serverRoot + _pageXML.peopleImage.@src)); DataLoader.loadMedia(_peopleImagePath, __imageOnLoad, null, true); } private function __xmlOnLoad(_arg1:XML):void{ if (_arg1 == null){ MonsterDebugger.trace(this, "Unable to load disclaimer XML"); throw (new Error("Unable to load disclaimer XML")); }; gameDataPool.xmlData.disclaimer = _arg1; _pageXML = _arg1; __addImages(); } } }//package eu.ecb.economia.templates.disclaimer
Section 119
//Forecast (eu.ecb.economia.templates.forecast.Forecast) package eu.ecb.economia.templates.forecast { import flash.events.*; import eu.ecb.economia.events.*; import de.aperto.managers.*; import flash.display.*; import flash.utils.*; import com.greensock.*; import eu.ecb.economia.templates.*; import de.aperto.utils.*; import flash.text.*; import eu.ecb.economia.modules.*; import nl.demonsters.debugger.*; import eu.ecb.economia.*; import com.greensock.easing.*; import eu.ecb.economia.utils.*; import de.aperto.text.*; public class Forecast extends Template implements TemplateInterface { private var _container:Sprite; private var _needsUpdate:Boolean; private var _graphboxArr:Array; private var _ground:Sprite; private var _updateTimer:Timer; private var _singleGraphbox:SingleGraphbox; private var _timer:Timer; private var _pageXML:XML; private var _tfdLoader:TextField; private var _tfdHeadline:TextField; private function __addLoaderText():void{ if (_tfdLoader){ __deleteLoaderText(); }; var _local1:String = LabelManager.Instance.getString("forecastLoaderLabel"); _tfdLoader = CostumTextfield.getCSSTextfield("left", false, false, true); this.addChild(_tfdLoader); _tfdLoader.htmlText = CSSMapper.map(_local1, "forecastLoader"); _tfdLoader.x = ((Defaults.GAME_STAGE_WIDTH * 0.5) - (_tfdLoader.width * 0.5)); _tfdLoader.y = ((Defaults.GAME_STAGE_HEIGHT * 0.5) - (_tfdLoader.height * 0.5)); } override public function onFront():void{ __deleteSingleGraphboxes(); __addSingleGraphboxes(); __showGraphboxes(); __deleteLoaderText(); gameBrain.addListener(GameEvent.ON_NEXT_QUARTER, __onNextQuarter); gameBrain.addListener(GameEvent.SLIDER_UP, __keyInterestRateOnChange); gameBrain.addListener(GameEvent.SLIDER_ARROW_BUTTON_UP, __keyInterestRateOnChange); } private function __templateOnUpdate():void{ dispatchEvent(new TemplateEvent(TemplateEvent.ON_UPDATE)); } override public function remove():void{ if (_timer){ _timer.stop(); }; TweenMax.to(this, 5, {alpha:0, useFrames:true, onComplete:__onRemove, ease:Strong.easeOut}); } private function __build():void{ _container = new Sprite(); this.addChild(_container); __addHeadline(); __addLoaderText(); } private function __removeEvents():void{ gameBrain.removeListener(GameEvent.ON_NEXT_QUARTER, __onNextQuarter); gameBrain.removeListener(GameEvent.SLIDER_UP, __keyInterestRateOnChange); gameBrain.removeListener(GameEvent.SLIDER_ARROW_BUTTON_UP, __keyInterestRateOnChange); } override public function set isActive(_arg1:Boolean):void{ _isActive = _arg1; __removeEvents(); __deleteLoaderText(); if (_isActive){ _pageXML = XML(gameDataPool.xmlData.forecast); navigationBar.changeState({slider:true, bluebutton:LabelManager.Instance.getString("forecastBigBlueButtonLabel"), bluebuttonCallback:__bluebuttonCallback, navi:true, subnavi:true, autopilot:false}); if (_container == null){ __build(); __addLoaderText(); } else { __addLoaderText(); }; } else { __deleteSingleGraphboxes(); }; } override public function addedToStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, addedToStage); addEventListener(Event.REMOVED_FROM_STAGE, __removedFromStage); _graphboxArr = []; __addGround(); __build(); } private function __addGround():void{ _ground = DrawUtils.getGradientRect(Defaults.GAME_STAGE_WIDTH, Defaults.GAME_STAGE_HEIGHT, 0xFFFFFF, 9808298); this.addChild(_ground); } private function __onRemove():void{ __removeEvents(); dispatchEvent(new TemplateEvent(TemplateEvent.ON_REMOVE)); } private function __updateGraphboxes():void{ if (_updateTimer != null){ _updateTimer.stop(); _updateTimer.reset(); _updateTimer = null; }; var _local1:SingleGraphbox = (_graphboxArr[0] as SingleGraphbox); _local1.update(__getEconomicData(_local1.amountForecastBoxes).slice()); _updateTimer = new Timer(250, (_graphboxArr.length - 1)); _updateTimer.addEventListener(TimerEvent.TIMER, __graphboxesUpdateTimerEventHandler); _updateTimer.start(); } private function __addHeadline():void{ var _local1:String = unescape(_pageXML.headline); _tfdHeadline = CostumTextfield.getCSSTextfield("left", false, false, true); _container.addChild(_tfdHeadline); _tfdHeadline.htmlText = CSSMapper.map(_local1, "forecastHeadline"); _tfdHeadline.x = Defaults.GAME_STAGE_BORDERSPACE; _tfdHeadline.y = 30; } private function __getSingleGraphbox(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Array, _arg6:int, _arg7:String, _arg8:int):SingleGraphbox{ var _local9:SingleGraphbox = new SingleGraphbox(_arg5, _arg3, _arg4, _arg8); _local9.filterId = _arg6; _local9.tooltipLabelId = _arg7; _local9.boxLabel = GraphboxUtils.getFilterObjectById(_arg6).description; _local9.x = _arg1; _local9.y = _arg2; return (_local9); } private function __deleteSingleGraphboxes():void{ var _local2:SingleGraphbox; var _local1:int = _graphboxArr.length; var _local3:int; while (_local3 < _local1) { _local2 = (_graphboxArr[_local3] as SingleGraphbox); DisplayUtils.removeDisplayObject(_local2); _local2 = null; _local3++; }; _graphboxArr = new Array(); } private function __deleteLoaderText():void{ if (_tfdLoader == null){ return; }; DisplayUtils.removeDisplayObject(_tfdLoader); _tfdLoader = null; } override public function reset():void{ DisplayUtils.removeDisplayObject(_container); if (_container != null){ _container = null; }; __deleteLoaderText(); } private function __bluebuttonCallback():void{ templateController.addTemplate(Defaults.MAP_TEMPLATE_ID, {calculate:true}); } private function __removedFromStage(_arg1:Event):void{ if (_container){ DisplayUtils.removeDisplayObject(_container); _container = null; }; __deleteLoaderText(); __removeEvents(); } private function __timerEventHandler(_arg1:TimerEvent):void{ var _local2:SingleGraphbox; switch (_arg1.type){ case TimerEvent.TIMER: _local2 = (_graphboxArr[(_arg1.target.currentCount - 1)] as SingleGraphbox); TweenMax.to(_local2, 15, {x:_local2.x, alpha:1, useFrames:true, ease:Strong.easeOut}); _local2.x = (_local2.x + 5); break; case TimerEvent.TIMER_COMPLETE: break; }; } override public function update():void{ _pageXML = XML(gameDataPool.xmlData.forecast); DisplayUtils.removeDisplayObject(_container); if (_container != null){ _container = null; }; __build(); __templateOnUpdate(); } override public function hide():void{ } private function __getEconomicData(_arg1:int=0):Array{ if (_arg1 == 0){ MonsterDebugger.trace(null, gameDataPool.economicData.slice()); return (gameDataPool.economicData.slice().reverse()); }; var _local2:Array = gameDataPool.getEconomicDataForecast(_arg1).slice(); var _local3:Array = gameDataPool.economicData.slice(); var _local4:int; while (_local4 < _local2.length) { _local3.push(_local2[_local4]); _local4++; }; _local3.reverse(); return (_local3.slice()); } private function __keyInterestRateOnChange():void{ __updateGraphboxes(); } private function __graphboxesUpdateTimerEventHandler(_arg1:TimerEvent):void{ var _local2:SingleGraphbox = (_graphboxArr[_arg1.target.currentCount] as SingleGraphbox); if (_local2.amountForecastBoxes > 0){ _local2.updateForeCastData(__getEconomicForecastData(_local2.amountForecastBoxes)); }; } private function __getToolTipLabelId(_arg1:int):String{ var _local2:int = gameDataPool.gameSettingsXML.gameFilters.filter.length(); var _local3 = ""; var _local4:int; while (_local4 < _local2) { if (_arg1 == _pageXML.graphboxes.box[_local4].@filterId){ _local3 = gameDataPool.gameSettingsXML.gameFilters.filter[_local4].@toolTipLabelId; break; }; _local4++; }; return (_local3); } private function __showGraphboxes():void{ _timer = new Timer(50, _graphboxArr.length); _timer.addEventListener(TimerEvent.TIMER, __timerEventHandler); _timer.addEventListener(TimerEvent.TIMER_COMPLETE, __timerEventHandler); _timer.start(); } private function __getEconomicForecastData(_arg1:int):Array{ var _local2:Array = gameDataPool.getEconomicDataForecast(_arg1).slice(); return (_local2.reverse()); } private function __addSingleGraphboxes():void{ var _local2:SingleGraphbox; var _local7:int; var _local8:int; var _local9:String; var _local12:Array; _graphboxArr = []; var _local1:int = _pageXML.graphboxes.box.length(); var _local3:int = Defaults.GAME_STAGE_BORDERSPACE; var _local4:Number = _local3; var _local5:Number = 100; var _local6 = 10; var _local10:Number = (((Defaults.GAME_STAGE_WIDTH - (_local3 * 2)) - (_local6 * (_local1 - 1))) / _local1); var _local11:Number = Defaults.SINGLE_GRAPHBOX_DEFAULT_HEIGHT; var _local13:int; while (_local13 < _local1) { _local12 = __getEconomicData(parseInt(_pageXML.graphboxes.box[_local13].@amountForecastBoxes.toString())).slice(); _local7 = _pageXML.graphboxes.box[_local13].@filterId.toString(); _local9 = __getToolTipLabelId(_local7); _local8 = parseInt(_pageXML.graphboxes.box[_local13].@amountBoxes.toString()); _local2 = __getSingleGraphbox(_local4, _local5, _local10, _local11, _local12, _local7, _local9, _local8); _container.addChild(_local2); _local2.alpha = 0; _local2.showLoupe = ((_pageXML.graphboxes.box[_local13].loupe.toString() == "1")) ? true : false; _local2.optimalSolutionLine = ((_pageXML.graphboxes.box[_local13].@optimalSolutionLine.toString() == "1")) ? true : false; _local2.amountForecastBoxes = parseInt(_pageXML.graphboxes.box[_local13].@amountForecastBoxes.toString()); _local4 = (_local4 + (_local10 + _local6)); _graphboxArr[_local13] = _local2; _local13++; }; } private function __templateOnShow():void{ dispatchEvent(new TemplateEvent(TemplateEvent.INIT)); } private function __onNextQuarter():void{ __updateGraphboxes(); } } }//package eu.ecb.economia.templates.forecast
Section 120
//GameLoader (eu.ecb.economia.templates.gameloader.GameLoader) package eu.ecb.economia.templates.gameloader { import flash.events.*; import de.aperto.events.*; import eu.ecb.economia.events.*; import de.aperto.managers.*; import flash.display.*; import flash.utils.*; import com.greensock.*; import eu.ecb.economia.templates.*; import de.aperto.utils.*; import flash.text.*; import eu.ecb.economia.modules.*; import nl.demonsters.debugger.*; import de.aperto.net.*; import eu.ecb.economia.*; import com.greensock.easing.*; import de.aperto.text.*; import de.aperto.text.effects.*; public class GameLoader extends Template implements TemplateInterface { private var _currentTextId:int; private var _Math:Object; private var _currentTextOnChange:Boolean; private var _gamePreloader:GamePreloader; private var _ground:Sprite; private var _groupPercent:Number;// = 0 private var _logicXML:XML; private var _currentTextOffsetId:int; private var _timer:Timer; private var _xmlPercent:Number;// = 0 private var _imagePercent:Number;// = 0 private var _pageXML:XML; private var _statusLabelsArr:Array; private var _tfdEffect:CrazyTypewriter; private var _tfdHeadline:TextField; private var _statusLabelsContainer:Sprite; public function GameLoader(){ _Math = Math; super(); } private function __templateOnUpdate():void{ dispatchEvent(new TemplateEvent(TemplateEvent.ON_UPDATE)); } private function __dataOnLoad():void{ _groupPercent = 100; } override public function remove():void{ if (_timer){ _timer.stop(); }; TweenMax.to(this, 5, {alpha:0, useFrames:true, onComplete:__onRemove, ease:Strong.easeOut}); } private function __removeEvents():void{ if (_tfdEffect){ _tfdEffect.stop(); }; } private function __poolLoaderEventHandler(_arg1:BinaryLoaderEvent):void{ switch (_arg1.type){ case BinaryLoaderEvent.ASSET_COMPLETE: PoolManager.Instance.push(_arg1.loadedContent, _arg1.imagePoolId, _arg1.imageId, _arg1.contentType); break; case BinaryLoaderEvent.GROUP_COMPLETE: gameDataPool.gameImagesOnLoad = true; __dataOnLoad(); break; case BinaryLoaderEvent.ON_GROUP_PROGRESS: _imagePercent = _arg1.groupPercent; _groupPercent = _Math.min(100, ((_xmlPercent * 0.5) + (_imagePercent * 0.5))); break; case BinaryLoaderEvent.ON_ERROR: MonsterDebugger.trace(this, "!!! GameLoader - PoolLoader ON_ERROR!!!"); break; case BinaryLoaderEvent.ASSET_ON_ERROR: MonsterDebugger.trace(this, "!!! GameLoader - PoolLoader ASSET_ON_ERROR!!!"); break; }; } public function __loadPoolImages():void{ var _local4:int; var _local6:String; var _local7:String; var _local9:int; var _local1:BinaryLoader = new BinaryLoader(); var _local2:XML = (gameDataPool.gameSettingsXML as XML); var _local3:int = _local2.poolManager.pool.length(); var _local5:Object = {}; if (_local3 == 0){ __dataOnLoad(); return; }; var _local8:int; while (_local8 < _local3) { _local4 = _local2.poolManager.pool[_local8].item.length(); _local7 = _local2.poolManager.pool[_local8].@id; _local9 = 0; while (_local9 < _local4) { _local6 = _local2.poolManager.pool[_local8].item[_local9].@src; _local5 = new Object(); _local5.url = (Develop.Instance.serverRoot + _local6); _local5.imagePoolId = _local7; _local5.imageId = _local2.poolManager.pool[_local8].item[_local9].@id; _local1.push(_local5); _local9++; }; _local8++; }; if (_local1.numAssets == 0){ __dataOnLoad(); return; }; _local1.addEventListener(BinaryLoaderEvent.ASSET_COMPLETE, __poolLoaderEventHandler); _local1.addEventListener(BinaryLoaderEvent.GROUP_COMPLETE, __poolLoaderEventHandler); _local1.addEventListener(BinaryLoaderEvent.ON_GROUP_PROGRESS, __poolLoaderEventHandler); _local1.start(); } override public function addedToStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, addedToStage); _pageXML = XML(gameDataPool.gameSettingsXML.gameloader); navigationBar.changeState({slider:false, navi:false, subnavi:true, autopilot:false}); gameBrain.resetGameData(); __addGround(); _logicXML = XMLManager.Instance.logicXML; __addHeadline(LabelManager.Instance.getString(_pageXML.headline.@labelId)); SoundManager.Instance.stopBackgroundMusic(); } private function __addGround():void{ _ground = DrawUtils.getGradientRect(Defaults.GAME_STAGE_WIDTH, Defaults.GAME_STAGE_HEIGHT, 0xFFFFFF, 9808298); this.addChild(_ground); } private function __onRemove():void{ __removeEvents(); dispatchEvent(new TemplateEvent(TemplateEvent.ON_REMOVE)); } private function __gamePreloaderOnHide():void{ __runGame(); } private function __addHeadline(_arg1:String):void{ _tfdHeadline = CostumTextfield.getCSSTextfield("left", false, false, false); this.addChild(_tfdHeadline); _arg1 = CSSMapper.map(_arg1, "gameLoaderHeadline"); _tfdHeadline.htmlText = _arg1; _tfdHeadline.x = ((Defaults.GAME_STAGE_WIDTH * 0.5) - (_tfdHeadline.width * 0.5)); _tfdHeadline.y = ((Defaults.GAME_STAGE_HEIGHT * 0.5) - (_tfdHeadline.height + 20)); _tfdEffect = new CrazyTypewriter(_tfdHeadline, 15); _tfdEffect.addEventListener(Event.COMPLETE, __headlineOnShow); _tfdEffect.start(); } private function __timerHideEventHandler(_arg1:TimerEvent):void{ switch (_arg1.target.currentCount){ case 1: TweenMax.to(_tfdHeadline, 15, {y:(_tfdHeadline.y + 10), alpha:0, useFrames:true, ease:Strong.easeInOut}); TweenMax.to(_statusLabelsContainer, 13, {y:(_statusLabelsContainer.y + 10), alpha:0, useFrames:true, ease:Strong.easeInOut}); break; case 2: _gamePreloader.hide(); break; }; } private function __loadXMLData():void{ gameDataPool.loadGameXMLFiles(__xmlDataOnLoad, __xmlOnProgress); } private function __runGame():void{ gameBrain.startNewGame(); } private function __xmlOnProgress(_arg1:Number):void{ _xmlPercent = _Math.min(100, ((_arg1 > _xmlPercent)) ? _arg1 : _xmlPercent); _groupPercent = _Math.min(50, (_xmlPercent * 0.5)); } private function __gamePreloaderOnFinished():void{ EnterFrameManager.removeListener(__updateEnterFrameHandler); __runTimer(70, __timerHideEventHandler); } private function __headlineOnShow(_arg1:Event):void{ __runTimer(20, __timerShowEventHandler); } private function __runTimer(_arg1:int, _arg2:Function):void{ _timer = new Timer(_arg1, 2); _timer.addEventListener(TimerEvent.TIMER, _arg2); _timer.start(); } private function __xmlDataOnLoad():void{ if (!gameDataPool.gameImagesOnLoad){ __loadPoolImages(); } else { __dataOnLoad(); }; } override public function update():void{ __templateOnUpdate(); } private function __addGamePreloader():void{ _gamePreloader = new GamePreloader(__gamePreloaderOnShow, __gamePreloaderOnHide, __gamePreloaderOnFinished); this.addChild(_gamePreloader); _gamePreloader.x = ((Defaults.GAME_STAGE_WIDTH * 0.5) - (_gamePreloader.width * 0.5)); _gamePreloader.y = ((Defaults.GAME_STAGE_HEIGHT * 0.5) + _gamePreloader.height); _gamePreloader.show(); } private function __updatestatusTextFieldLabel():void{ _currentTextOffsetId = int((((_groupPercent / 100) * 4) + 0.5)); if (_currentTextOffsetId != _currentTextId){ _currentTextOnChange = true; _currentTextId = _currentTextOffsetId; __changeStatusLabel(); }; } private function __updateEnterFrameHandler():void{ _gamePreloader.updatePercent(_groupPercent); __updatestatusTextFieldLabel(); } private function __gamePreloaderOnShow():void{ EnterFrameManager.addListener(__updateEnterFrameHandler); __loadXMLData(); } private function __timerShowEventHandler(_arg1:TimerEvent):void{ switch (_arg1.target.currentCount){ case 1: __addStatusTextField(); break; case 2: __addGamePreloader(); break; }; } private function __templateOnShow():void{ dispatchEvent(new TemplateEvent(TemplateEvent.INIT)); } private function __changeStatusLabel():void{ var _local2:TextField; var _local1:int = _statusLabelsArr.length; var _local3:int; while (_local3 < _local1) { _local2 = (_statusLabelsArr[_local3] as TextField); if ((((((_local2.alpha > 0)) && (!((_local3 == _currentTextId))))) && ((_currentTextId < _local1)))){ TweenMax.to(_local2, 20, {alpha:0, x:-20, useFrames:true, overwrite:true, ease:Strong.easeInOut}); }; _local3++; }; _local2 = (_statusLabelsArr[_currentTextId] as TextField); _local2.x = 20; TweenMax.to(_local2, 20, {alpha:1, x:0, useFrames:true, overwrite:true, ease:Strong.easeInOut}); } private function __addStatusTextField():void{ var _local2:TextField; var _local3:String; _statusLabelsContainer = new Sprite(); this.addChild(_statusLabelsContainer); var _local1:int = _logicXML.gamePreloader.statusLabels.label.length(); _statusLabelsArr = []; var _local4:int; while (_local4 < _local1) { _local2 = (CostumTextfield.getCSSTextfield() as TextField); _statusLabelsContainer.addChild(_local2); _local3 = LabelManager.Instance.getString(_logicXML.gamePreloader.statusLabels.label[_local4].@labelId); _local2.htmlText = CSSMapper.map(_local3, "gameLoaderStatusLabel"); _local2.alpha = ((_local4 > 0)) ? 0 : 1; _local2.cacheAsBitmap = true; _statusLabelsArr[_local4] = _local2; _local4++; }; _statusLabelsContainer.x = _tfdHeadline.x; _statusLabelsContainer.y = (_tfdHeadline.y + _tfdHeadline.height); } override public function hide():void{ } } }//package eu.ecb.economia.templates.gameloader
Section 121
//GameOver (eu.ecb.economia.templates.gameover.GameOver) package eu.ecb.economia.templates.gameover { import flash.events.*; import eu.ecb.economia.events.*; import de.aperto.managers.*; import flash.display.*; import flash.utils.*; import com.greensock.*; import eu.ecb.economia.templates.*; import de.aperto.utils.*; import flash.text.*; import eu.ecb.economia.manager.*; import eu.ecb.economia.ui.buttons.*; import eu.ecb.economia.templates.press.papers.*; import eu.ecb.economia.events.templates.press.*; import com.adobe.serialization.json.*; import nl.demonsters.debugger.*; import eu.ecb.economia.*; import de.aperto.display.*; import com.greensock.easing.*; import eu.ecb.economia.utils.*; import eu.ecb.economia.net.*; import de.aperto.text.*; import eu.ecb.economia.ui.buttons.simplebutton.*; import eu.ecb.economia.text.*; import eu.ecb.economia.net.externalcall.*; import com.adobe.crypto.*; public class GameOver extends Template implements TemplateInterface { private var _tfdCopy:TextField; private var _borderTop:int;// = 30 private var USERAGE_ID:String;// = "inputAge" private var DEFAULT_USERAGE:String; private var USERNAME_ID:String;// = "inputName" private var _params:Object; private var _ground:Sprite; private var _bgImageCont:Sprite; private var DEFAULT_USERNAME:String; private var _performenceData:Object; private var _timer:Timer; private var _pageXML:XML; private var _tfdHeadline:TextField; private var _highscoreBtn:SimpleButton; private var _resultBox:Sprite; private var _borderLeft:int;// = 30 private static var TEXTFIELD_WIDTH:int = 350; public function GameOver(){ DEFAULT_USERNAME = LabelManager.Instance.getString("highscoreInputDefaultName"); DEFAULT_USERAGE = LabelManager.Instance.getString("highscoreInputDefaultUserage"); super(); } private function __shareButtonEventHandler(_arg1:ButtonEvent):void{ templateController.addTemplate(Defaults.SHARE_TEMPLATE_ID); } private function __formManagerOnInput(_arg1:Array):void{ var _local2:int; var _local3:String = gameDataPool.galapagos; var _local4 = ""; var _local5 = ""; var _local6:int = gameDataPool.amountAwards; var _local7:Number = gameDataPool.getAverageInflationRate(); var _local8:int = gameDataPool.allQuarters; var _local9:Number = gameDataPool.gamePerformance.points; MonsterDebugger.trace(this, gameDataPool.gamePerformance); var _local10:int; while (_local10 < _arg1.length) { switch (_arg1[_local10].id){ case USERNAME_ID: _local4 = ((_arg1[_local10].input)!=DEFAULT_USERNAME) ? _arg1[_local10].input : ""; if (_local4 == ""){ _local2++; }; break; case USERAGE_ID: _local5 = ((_arg1[_local10].input)!=USERAGE_ID) ? _arg1[_local10].input : ""; break; }; _local10++; }; var _local11:String = MD5.hash(String((((((((_local3 + _local4) + _local5) + _local6) + _local7) + _local8) + _local9) + gameDataPool.uuid))); if (_local2 > 0){ MonsterDebugger.trace(this, "<--- FORM ERROR --->"); return; }; var _local12:String = gameDataPool.gameSettingsXML.highscoreSendAndLoadUri.@src.toString(); ExternalCall.setHighscore(__externalCallSetHighscoreEventHandler, _local4, _local5, _local6, _local7, _local8, _local9, _local11, _local12, gameDataPool.uuid); } private function __getImage():Sprite{ var image:MovieClip; var xml:XML; var paper:Paper3; var cupCont:SpriteMotion; var bmp:Bitmap; var cont:Sprite = new Sprite(); if (_performenceData.exit > -1){ switch (_performenceData.exit){ case 0: xml = XML(_pageXML.exit.inflationDown.paper); break; case 1: xml = XML(_pageXML.exit.inflationUp.paper); break; }; paper = new Paper3(xml); cont.addChild(paper); paper.addEventListener(PaperEvent.INIT, function (_arg1:Event):void{ paper.showQuick(); }); paper.x = (paper.width * 0.5); paper.y = (paper.height * 0.5); return (cont); }; if (_performenceData.cup == 1){ cupCont = new SpriteMotion(); cont.addChild(cupCont); cupCont.motionBlur = true; cupCont.quality = 3; bmp = new Bitmap((new (LibraryManager.Instance.getClass("Pokal") as Class)(0, 0) as BitmapData), "auto", true); cupCont.addChild(bmp); TweenMax.to(bmp, 12, {y:0, alpha:1, useFrames:true, overwrite:true, ease:Strong.easeIn, onComplete:function ():void{ TweenMax.to(bmp, 5, {y:(bmp.y - 3), useFrames:true, onComplete:function ():void{ TweenMax.to(bmp, 3, {y:0, useFrames:true, onComplete:function ():void{ cupCont.motionBlur = false; }}); }}); }}); bmp.y = -200; bmp.alpha = 0; return (cont); }; var len = 4; var lines = 2; var space = 20; var xpos:Number = 0; var ypos:Number = 0; var speed = 20; var i:int; while (i < len) { image = (new ((LibraryManager.Instance.getClass("BigStar") as Class)) as MovieClip); cont.addChild(image); image.x = ((i % lines) * (image.width + space)); image.y = (Math.floor(((i % len) / lines)) * (image.height + space)); image.alpha = 0; image.id = (i + 1); TweenMax.to(image, (speed + (i * 5)), {alpha:1, y:image.y, useFrames:true, delay:i, overwrite:true, ease:Strong.easeOut, onComplete:__bigStarOnFadeIn, onCompleteParams:[image]}); image.y = (image.y + 30); i = (i + 1); }; return (cont); } private function __addSplineLine(_arg1, _arg2:Number, _arg3:Number):Sprite{ var _local4:Sprite = DrawUtils.getRect(TEXTFIELD_WIDTH, 1, 0x999999); _arg1.addChild(_local4); _local4.x = _arg2; _local4.y = _arg3; return (_local4); } private function __templateOnUpdate():void{ dispatchEvent(new TemplateEvent(TemplateEvent.ON_UPDATE)); } override public function remove():void{ if (_timer){ _timer.stop(); }; TweenMax.to(this, 5, {alpha:0, useFrames:true, onComplete:__onRemove, ease:Strong.easeOut}); } private function __build():void{ __addBackgroundImage(); _performenceData = gameDataPool.gamePerformance; MonsterDebugger.trace(this, ("exitCode:" + _performenceData.exit)); __addResultBox(); __addImage(); if (gameDataPool.gameOverTemplateToBeOnDisplayed){ return; }; if (_performenceData.exit < 0){ GameUtils.playIntermediateFeedbackSound(_performenceData.perform_headline, false); }; if (_performenceData.exit > -1){ SoundManager.Instance.playSoundFromLibrary("GameOver"); }; gameDataPool.gameOverTemplateToBeOnDisplayed = true; } private function __formManagerOnHide():void{ } override public function show():void{ } private function __templateOnShow():void{ dispatchEvent(new TemplateEvent(TemplateEvent.INIT)); } private function __highscoreButtonEventHandler(_arg1:ButtonEvent):void{ var _local2:Button = (_arg1.target as Button); switch (_arg1.type){ case ButtonEvent.CLICK: templateController.addTemplate(Defaults.HIGHSCORE_TEMPLATE_ID); break; }; } private function __addImage():void{ MonsterDebugger.trace(this, ("gameDataPool.amountAwards: " + gameDataPool.amountAwards)); var _local1:Sprite = __getImage(); this.addChild(_local1); _local1.x = ((_performenceData.cup == 1)) ? 550 : 550; _local1.y = ((_performenceData.cup == 1)) ? 80 : 80; } private function __removeEvents():void{ } override public function addedToStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, addedToStage); _pageXML = XML(gameDataPool.xmlData.gameover); var _local2:Function = (gameDataPool.userWriteInHighscore) ? null : __registerHighscoreButtonEventHandler; navigationBar.changeState({slider:false, navi:false, bluebutton:false, subnavi:true, autopilot:false, startNewGameButton:true, learnMoreButton:__learnMoreButtonEventHandler, highscoreButton:_local2, shareButton:__shareButtonEventHandler}); __addGround(); } private function __externalCallSetHighscoreEventHandler(_arg1):void{ var json:Object; var userRank:int; var data = _arg1; MonsterDebugger.trace(this, "__externalCallSetHighscoreEventHandler -->"); MonsterDebugger.trace(this, data); try { json = JSON.decode(data); userRank = json.rank; } catch(e:Error) { userRank = -1; }; MonsterDebugger.trace(this, json); MonsterDebugger.trace(this, "<--"); if (((((!((json == null))) && (json.status))) && ((json.status == 0)))){ MonsterDebugger.trace(this, json); MonsterDebugger.trace(this, "!!! Highscore could not save"); }; gameDataPool.userWriteInHighscore = true; templateController.addTemplate(Defaults.HIGHSCORE_TEMPLATE_ID, {rank:userRank}); } private function __addGround():void{ var w:Number = (Defaults.GAME_STAGE_WIDTH - (Defaults.GAME_STAGE_BORDERSPACE * 2)); var h:Number = Defaults.GAME_STAGE_HEIGHT; _ground = DrawUtils.getRoundRect(w, h, 20, 20, 0xFFFFFF); this.addChild(_ground); _ground.x = Defaults.GAME_STAGE_BORDERSPACE; _ground.y = Defaults.GAME_STAGE_BORDERSPACE; BitmapUtils.addShadow(_ground, 30, 30, 25, 3, 0.4); TweenMax.to(_ground, 15, {y:_ground.y, alpha:1, useFrames:true, ease:Emotion.strongInSoftOut, onComplete:function ():void{ __build(); }}); _ground.y = (_ground.y + 30); _ground.alpha = 0; } private function __onRemove():void{ __removeEvents(); dispatchEvent(new TemplateEvent(TemplateEvent.ON_REMOVE)); } private function __addTextfield(_arg1, _arg2:String, _arg3:String, _arg4:Boolean=true, _arg5:Boolean=true):TextField{ var _local6:TextField = CostumTextfield.getCSSTextfield("left", false, _arg4, _arg5); _local6.htmlText = CSSMapper.map(_arg2, _arg3); _local6.width = TEXTFIELD_WIDTH; _arg1.addChild(_local6); return (_local6); } private function __addResultBox():void{ var tfd:TextField; var tfdValue:TextField; var str:String; var color:uint; var item:*; var speed:int; var len:int; var i:int; _resultBox = new Sprite(); this.addChild(_resultBox); _resultBox.x = (Defaults.GAME_STAGE_BORDERSPACE * 2); _resultBox.y = Defaults.GAME_STAGE_BORDERSPACE; var animationArr:Array = []; var lineSpace = 10; var offsetY:int; var xml:XML = XML(gameDataPool.gameSettingsXML.performenceFeedback); str = LabelManager.Instance.getString(XML(xml.string.(@id == _performenceData.perform_headline)).@headlineId); color = parseInt(XML(xml.string.(@id == _performenceData.perform_headline)).@headlineTextColor); tfd = __addTextfield(_resultBox, str, "gameoverHeadline"); tfd.y = _borderTop; tfd.textColor = color; animationArr.push(tfd); offsetY = ((tfd.y + tfd.height) + (lineSpace * 2)); str = LabelManager.Instance.getString(XML(xml.string.(@id == _performenceData.perform_headline)).@copyId); str = (str + "<br/>"); str = (str + LabelManager.Instance.getString(XML(xml.inflationDescription.string.(@id == _performenceData.perform_pi)).@labelId)); tfd = __addTextfield(_resultBox, str, "gameoverCopy"); tfd.y = offsetY; animationArr.push(tfd); offsetY = ((tfd.y + tfd.height) + (lineSpace * 2)); str = LabelManager.Instance.getString("performenceResultLineDescription"); tfd = __addTextfield(_resultBox, str, "performenceResultLineDescription"); tfd.y = offsetY; animationArr.push(tfd); offsetY = ((tfd.y + tfd.height) + (lineSpace * 2)); animationArr.push(__addSplineLine(_resultBox, tfd.x, ((tfd.y + tfd.height) + lineSpace))); str = ((LabelManager.Instance.getString("gameoverResultBoxPoints") + " ") + StringMapper.mapNumber(_performenceData.points)); tfd = __addTextfield(_resultBox, str, "gameoverResultBoxPoints"); tfd.y = offsetY; animationArr.push(tfd); offsetY = ((tfd.y + tfd.height) + (lineSpace * 2)); animationArr.push(__addSplineLine(_resultBox, tfd.x, ((tfd.y + tfd.height) + lineSpace))); str = LabelManager.Instance.getString("performenceResultLine1"); tfd = __addTextfield(_resultBox, str, "performenceResultLine", false, false); tfd.y = offsetY; animationArr.push(tfd); animationArr.push(GameUtils.getInfoButton(_resultBox, (tfd.textWidth + 15), (offsetY + 5), 0, __infoButtonEventHandler)); str = String(StringMapper.mapPercent(gameDataPool.getAverageInflationRate())); color = parseInt(XML(xml.inflationDescription.string.(@id == _performenceData.perform_pi)).@copyTextColor); tfdValue = __addTextfield(_resultBox, str, "performenceResultLine", false, false); tfdValue.x = ((tfd.x + tfd.textWidth) + 30); tfdValue.y = tfd.y; tfdValue.textColor = color; animationArr.push(tfdValue); offsetY = (tfd.y + tfd.height); str = LabelManager.Instance.getString("performenceResultLine2"); tfd = __addTextfield(_resultBox, str, "performenceResultLine", false, false); tfd.y = offsetY; animationArr.push(tfd); animationArr.push(GameUtils.getInfoButton(_resultBox, (tfd.textWidth + 15), (offsetY + 5), 1, __infoButtonEventHandler)); str = LabelManager.Instance.getString(XML(xml.volatilityDescription.string.(@id == _performenceData.perform_vol)).@labelId); color = parseInt(XML(xml.volatilityDescription.string.(@id == _performenceData.perform_vol)).@copyTextColor); tfdValue = __addTextfield(_resultBox, str, "performenceResultLine", false, false); tfdValue.x = ((tfd.x + tfd.textWidth) + 30); tfdValue.y = tfd.y; tfdValue.textColor = color; animationArr.push(tfdValue); speed = 10; len = animationArr.length; i = 0; while (i < len) { item = animationArr[i]; item.alpha = 0; TweenMax.to(item, (speed + (i * 5)), {alpha:1, y:item.y, useFrames:true, delay:i, overwrite:true, ease:Strong.easeOut}); item.y = (item.y + 20); i = (i + 1); }; } private function __backgroundImageOnLoad(_arg1:Bitmap):void{ var _local2:Bitmap = _arg1; _bgImageCont.addChild(_local2); _local2.x = (Defaults.GAME_STAGE_WIDTH - (_local2.width + Defaults.GAME_STAGE_BORDERSPACE)); _local2.y = ((Defaults.GAME_STAGE_HEIGHT * 0.5) - (_local2.height * 0.5)); _local2.alpha = 0; TweenMax.to(_local2, 20, {alpha:1, useFrames:true, ease:Strong.easeOut}); } private function __bigStarOnFadeIn(_arg1:MovieClip):void{ if (_arg1.id <= gameDataPool.amountAwards){ _arg1.gotoAndPlay("show"); }; } private function __addDotSplineLines():void{ var _local1:BitmapData = new (LibraryManager.Instance.getClass("lineRaster") as Class)(0, 0); _local1.floodFill(0, 0, BitmapUtils.convertRGBToARGB(0x666666, 0xFF)); var _local2:Sprite = DrawUtils.getRect(400, 1, 0, 0, 0, _local1); this.addChild(_local2); _local2.x = _resultBox.x; _local2.y = (Defaults.GAME_STAGE_HEIGHT - 30); _local2 = DrawUtils.getRect(400, 1, 0, 0, 0, _local1); this.addChild(_local2); _local2.x = (Defaults.GAME_STAGE_WIDTH * 0.5); _local2.y = (Defaults.GAME_STAGE_HEIGHT - 30); var _local3:String = LabelManager.Instance.getString("gameoverFooterCopy1"); var _local4:TextField = __addTextfield(this, _local3, "gameoverFooterCopy"); _local4.x = _resultBox.x; _local4.y = (_local2.y - _local4.height); _local3 = LabelManager.Instance.getString("gameoverFooterCopy2"); _local4 = __addTextfield(this, _local3, "gameoverFooterCopy"); _local4.x = _local2.x; _local4.y = (_local2.y - _local4.height); } private function __externalCallUserRankEventHandler(_arg1):void{ if (!Develop.Instance.projectIsOnline()){ MonsterDebugger.trace(this, "Will not load the userranking because flash is offline-->"); __build(); return; }; MonsterDebugger.trace(this, "__externalCallUserRankEventHandler -->"); MonsterDebugger.trace(this, _arg1); var _local2:Object = JSON.decode(_arg1); MonsterDebugger.trace(this, _local2); if (((_local2.status) && ((_local2.status == 0)))){ MonsterDebugger.trace(this, "!!! UserRanking could not load"); }; MonsterDebugger.trace(this, "<--"); __build(); } override public function hide():void{ } private function __addBackgroundImage():void{ _bgImageCont = new Sprite(); this.addChild(_bgImageCont); var _local1:String = String((Develop.Instance.serverRoot + _pageXML.backgroundMapImage.@src)); DataLoader.loadMedia(_local1, __backgroundImageOnLoad); } private function __getColorByXMLNode(_arg1:XML, _arg2:int):uint{ var _local3:int = _arg1.color.length(); var _local4:uint; var _local5:int; while (_local5 < _local3) { if (parseInt(_arg1.color[_local5].@id) == _arg2){ _local4 = parseInt(_arg1.color[_local5].@val); break; }; _local5++; }; return (_local4); } private function __infoButtonEventHandler(_arg1:ButtonEvent):void{ var _local2:Button; var _local3:Number; var _local4:Number; var _local5:String; _local2 = (_arg1.target as Button); switch (_arg1.type){ case ButtonEvent.MOUSE_OVER: _local3 = DisplayUtils.globalize(_local2).x; _local4 = DisplayUtils.globalize(_local2).y; if (_local2.id == 0){ _local5 = LabelManager.Instance.getString(gameDataPool.gameSettingsXML.tooltips.inflationrate.@labelId); }; if (_local2.id == 1){ _local5 = LabelManager.Instance.getString(gameDataPool.gameSettingsXML.tooltips.fluctuation.@labelId); }; ToolTipManager.addText(_local5, false, _local3, _local4); break; case ButtonEvent.MOUSE_OUT: ToolTipManager.mouseIsOut(); break; }; } private function __addHighscoreForm():void{ var _local1:Object = {}; _local1.width = 450; _local1.height = 300; _local1.headline = LabelManager.Instance.getString("highscoreFormularHeadline"); _local1.onHide = __formManagerOnHide; _local1.closeButton = true; var _local2:String = LabelManager.Instance.getString("gameoverHighscoreFormSendButton"); _local1.submitButton = {label:_local2, onSendCallback:__formManagerOnInput}; var _local3:String = DEFAULT_USERNAME; var _local4:String = DEFAULT_USERAGE; if (gameDataPool.username){ _local3 = gameDataPool.username; }; if (gameDataPool.userage){ _local4 = gameDataPool.userage; }; _local1.form = [{label:_local3, altText:"", id:USERNAME_ID, width:375, restrict:null, maxChars:null}, {label:_local4, altText:"", id:USERAGE_ID, width:"auto", restrict:"0123456789", maxChars:3}]; FormManager.add(_local1); } private function __learnMoreButtonEventHandler(_arg1:ButtonEvent):void{ templateController.addTemplate(Defaults.LEARNMORE_TEMPLATE_ID); } override public function update():void{ __templateOnUpdate(); } private function __registerHighscoreButtonEventHandler(_arg1:ButtonEvent):void{ if (gameDataPool.userWriteInHighscore){ return; }; __addHighscoreForm(); } private function __getStringByXMLNode(_arg1:XML, _arg2:int):String{ var _local3:int = _arg1.string.length(); var _local4 = ""; var _local5:int; while (_local5 < _local3) { if (parseInt(_arg1.string[_local5].@id) == _arg2){ _local4 = LabelManager.Instance.getString(_arg1.string[_local5].@labelId); break; }; _local5++; }; return (_local4); } } }//package eu.ecb.economia.templates.gameover
Section 122
//GlossaryContent (eu.ecb.economia.templates.glossary.glossarycontent.GlossaryContent) package eu.ecb.economia.templates.glossary.glossarycontent { import flash.events.*; import flash.display.*; import flash.utils.*; import de.aperto.utils.*; public class GlossaryContent extends Sprite { private var _container:Sprite; private var _timer:Timer; private var _glossaryTextLayer:GlossaryTextLayer; private var _glossaryContentNavigation:GlossaryContentNavigation; private var _glossaryImageColumn:GlossaryImageColumn; public var navigationId:int; private var _xml:XML; public var contentId:int; public function GlossaryContent(_arg1:XML){ _xml = _arg1; addEventListener(Event.ADDED_TO_STAGE, __addedToStage); } private function __addedToStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, __addedToStage); __addNavigation(); __addGlossaryTextLayer(); __addGlossaryImageColumn(); } private function __addGlossaryTextLayer():void{ _glossaryTextLayer = new GlossaryTextLayer(); this.addChild(_glossaryTextLayer); _glossaryTextLayer.addEventListener(Event.COMPLETE, __glossaryTextLayerEventHandler); _glossaryTextLayer.x = ((_glossaryContentNavigation.x + _glossaryContentNavigation.width) + 30); } public function update(_arg1:int, _arg2:int):void{ this.navigationId = _arg1; this.contentId = _arg2; if (((!(_xml.block[_arg1])) || (!(_xml.block[_arg1].item[_arg2])))){ return; }; _glossaryContentNavigation.update(XML(_xml.block[_arg1]), _arg2); _glossaryTextLayer.update(XML(_xml.block[_arg1].item[_arg2])); _glossaryImageColumn.update(XML(_xml.block[_arg1].item[_arg2])); } private function __navigationEventHandler(_arg1:Event):void{ switch (_arg1.type){ case Event.CHANGE: contentId = _glossaryContentNavigation.activeButtonId; _glossaryContentNavigation.updateActiveButton(contentId); _glossaryTextLayer.update(XML(_xml.block[navigationId].item[contentId])); _glossaryImageColumn.update(XML(_xml.block[navigationId].item[contentId])); break; }; } private function __addGlossaryImageColumn():void{ _glossaryImageColumn = new GlossaryImageColumn(); this.addChild(_glossaryImageColumn); _glossaryImageColumn.x = ((_glossaryTextLayer.x + _glossaryTextLayer.width) + 30); } private function __addNavigation():void{ _glossaryContentNavigation = new GlossaryContentNavigation(); this.addChild(_glossaryContentNavigation); _glossaryContentNavigation.addEventListener(Event.CHANGE, __navigationEventHandler); } private function __glossaryTextLayerEventHandler(_arg1:Event):void{ } } }//package eu.ecb.economia.templates.glossary.glossarycontent
Section 123
//GlossaryContentNavigation (eu.ecb.economia.templates.glossary.glossarycontent.GlossaryContentNavigation) package eu.ecb.economia.templates.glossary.glossarycontent { import flash.events.*; import eu.ecb.economia.events.*; import flash.display.*; import flash.utils.*; import com.greensock.*; import de.aperto.utils.*; import eu.ecb.economia.*; import com.greensock.easing.*; import eu.ecb.economia.ui.buttons.glossary.*; public class GlossaryContentNavigation extends Sprite { private var _container:Sprite; private var _navItemsArr:Array; private var _timer:Timer; public var activeButtonId:int;// = -1 private var _xml:XML; public function GlossaryContentNavigation(){ addEventListener(Event.ADDED_TO_STAGE, __addedToStage); } private function __addButtons():void{ var _local2:int; var _local3:int; var _local5:String; var _local6:GlossaryContentNavigationButton; if (_container){ DisplayUtils.removeDisplayObject(_container); _container = null; }; _container = new Sprite(); this.addChild(_container); var _local1:int = _xml.item.length(); var _local4 = 10; _navItemsArr = []; var _local7:int; while (_local7 < _local1) { _local5 = String(_xml.item[_local7].btnLabel); _local6 = new GlossaryContentNavigationButton(_local5); _container.addChild(_local6); _local6.id = _local7; _local6.x = _local2; _local6.y = _local3; _local3 = (_local3 + int(((_local6.height + _local4) + 0.5))); _local6.addEventListener(ButtonEvent.CLICK, __buttonEventHandler); _navItemsArr[_local7] = _local6; _local7++; }; } public function updateActiveButton(_arg1:int):void{ __setActiveItem(_arg1); } private function __addedToStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, __addedToStage); } private function __buttonEventHandler(_arg1:ButtonEvent):void{ var _local2:GlossaryContentNavigationButton = (_arg1.target as GlossaryContentNavigationButton); switch (_arg1.type){ case ButtonEvent.CLICK: __setActiveItem(_local2.id); dispatchEvent(new Event(Event.CHANGE)); break; }; } public function update(_arg1:XML, _arg2:int):void{ _xml = _arg1; this.activeButtonId = _arg2; __addButtons(); __setActiveItem(_arg2); } private function __showItems():void{ _timer = new Timer(40, _navItemsArr.length); _timer.addEventListener(TimerEvent.TIMER, __timerEventHandler); _timer.addEventListener(TimerEvent.TIMER_COMPLETE, __timerEventHandler); _timer.start(); } private function __timerEventHandler(_arg1:TimerEvent):void{ var _local2:GlossaryContentNavigationButton; switch (_arg1.type){ case TimerEvent.TIMER: _local2 = (_navItemsArr[(_arg1.target.currentCount - 1)] as GlossaryContentNavigationButton); TweenMax.to(_local2, 25, {x:_local2.x, alpha:1, useFrames:true, ease:Strong.easeOut}); _local2.x = (_local2.x + 10); break; case TimerEvent.TIMER_COMPLETE: break; }; } private function __setActiveItem(_arg1:int):void{ if (activeButtonId > -1){ _navItemsArr[activeButtonId].select = false; }; activeButtonId = _arg1; _navItemsArr[activeButtonId].select = true; } override public function get width():Number{ return (Defaults.GLOSSARY_CONTENT_NAVIGATION_WIDTH); } } }//package eu.ecb.economia.templates.glossary.glossarycontent
Section 124
//GlossaryImageColumn (eu.ecb.economia.templates.glossary.glossarycontent.GlossaryImageColumn) package eu.ecb.economia.templates.glossary.glossarycontent { import flash.events.*; import flash.display.*; import flash.utils.*; import com.greensock.*; import de.aperto.utils.*; import eu.ecb.economia.*; import com.greensock.easing.*; import eu.ecb.economia.net.*; public class GlossaryImageColumn extends Sprite { private var _container:Sprite; private var _timer:Timer; private var _imgMaxHeight:int;// = 105 private var _imgMaxWidth:int;// = 160 private var _ground:Sprite; private var _len:int; private var _xml:XML; private var _imgArr:Array; public function GlossaryImageColumn(){ _imgArr = []; addEventListener(Event.ADDED_TO_STAGE, __addedToStage); } private function __imageOnLoad(_arg1:Bitmap):void{ var _local2 = 3; var _local3:MovieClip = new MovieClip(); this.addChild(_local3); _local3.alpha = 0; _local3.id = _imgArr.length; _imgArr.push(_local3); var _local4:Sprite = DrawUtils.getRoundRect((_imgMaxWidth + (_local2 * 2)), (_imgMaxHeight + (_local2 * 2)), Defaults.GLOSSARY_CONTENT_CORNER_ROUND, Defaults.GLOSSARY_CONTENT_CORNER_ROUND, 0xFFFFFF); _local3.addChild(_local4); _local3.ground = _local4; var _local5:DisplayObject = _local3.addChild(_arg1); DisplayUtils.scaleProportional(_local5, _imgMaxWidth, _imgMaxHeight); _local5.x = _local2; _local5.y = _local2; var _local6:Sprite = DrawUtils.getRoundRect(_imgMaxWidth, _imgMaxHeight, Defaults.GLOSSARY_CONTENT_CORNER_ROUND, Defaults.GLOSSARY_CONTENT_CORNER_ROUND, 0xFFFFFF); _local3.addChild(_local6); _local5.mask = _local6; _local6.x = _local5.x; _local6.y = _local5.y; _local3.y = ((_imgArr[(_len - 1)])!=null) ? ((_imgArr[(_len - 1)].y + _imgArr[(_len - 1)].ground.height) + (_local2 * 2)) : 0; if (_xml.img.length() == _imgArr.length){ __showNextImage(_imgArr[0]); }; } private function __addedToStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, __addedToStage); } private function __hideNextImage(_arg1:MovieClip):void{ if (_arg1 == null){ __imagesOnHide(); return; }; var _local2:MovieClip = _imgArr[(_arg1.id - 1)]; TweenMax.to(_arg1, 5, {y:(_arg1.y - 3), alpha:0, useFrames:true, overwrite:true, onComplete:__hideNextImage, ease:Strong.easeOut, onCompleteParams:[_local2]}); _imgArr.splice(_imgArr.indexOf(_arg1), 1); } public function update(_arg1:XML):void{ _xml = _arg1; _len = _xml.img.length(); __hideNextImage(_imgArr[(_imgArr.length - 1)]); } private function __showNextImage(_arg1:MovieClip):void{ if (_arg1 == null){ __imagesOnShow(); return; }; var _local2:MovieClip = _imgArr[(_arg1.id + 1)]; TweenMax.to(_arg1, 10, {y:_arg1.y, alpha:1, useFrames:true, overwrite:true, onComplete:__showNextImage, ease:Emotion.strongInSoftOut, onCompleteParams:[_local2]}); _arg1.y = (_arg1.y + 7); } private function __imagesOnShow():void{ } private function __imagesOnHide():void{ __loadImages(); } private function __loadImages():void{ var _local1:int; while (_local1 < _len) { DataLoader.loadMedia(_xml.img[_local1].@src, __imageOnLoad); _local1++; }; } } }//package eu.ecb.economia.templates.glossary.glossarycontent
Section 125
//GlossaryTextLayer (eu.ecb.economia.templates.glossary.glossarycontent.GlossaryTextLayer) package eu.ecb.economia.templates.glossary.glossarycontent { import flash.events.*; import flash.display.*; import flash.utils.*; import com.greensock.*; import de.aperto.utils.*; import flash.text.*; import eu.ecb.economia.*; import com.greensock.easing.*; import eu.ecb.economia.utils.*; import de.aperto.text.*; import de.aperto.ui.mousescroller.*; import eu.ecb.economia.text.*; public class GlossaryTextLayer extends Sprite { private var _xBorderSpace:int;// = 20 private var _container:Sprite; private var _timer:Timer; private var _tfdCopy:TextField; private var _mask:Sprite; private var _xml:XML; private var _yBorderSpace:int;// = 20 private var _ground:Sprite; private var _tfdHeadline:TextField; public function GlossaryTextLayer(){ addEventListener(Event.ADDED_TO_STAGE, __addedToStage); } private function __addedToStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, __addedToStage); __addGround(); } override public function get width():Number{ return (Defaults.GLOSSARY_CONTENT_TEXTLAYER_WIDTH); } public function update(_arg1:XML):void{ _xml = _arg1; __hideText(); } private function __addGround():void{ _ground = DrawUtils.getRoundRect(520, 270, Defaults.GLOSSARY_CONTENT_CORNER_ROUND, Defaults.GLOSSARY_CONTENT_CORNER_ROUND, 0xFFFFFF); this.addChild(_ground); } private function __textOnShow():void{ dispatchEvent(new Event(Event.COMPLETE)); } private function __textOnHide():void{ __addTextFields(); } private function __hideText():void{ if (_mask == null){ __addTextFields(); return; }; TweenMax.to(_container, 15, {alpha:0, y:(_container.y + 3), useFrames:true, onComplete:__textOnHide, overwrite:true, ease:Strong.easeOut}); TweenMax.to(_mask, 10, {scaleY:0, useFrames:true, overwrite:true, ease:Strong.easeOut}); } private function __addTextFields():void{ if (_container){ DisplayUtils.removeDisplayObject(_container); _container = null; DisplayUtils.removeDisplayObject(_mask); _mask = null; }; _container = new Sprite(); this.addChild(_container); _container.x = _xBorderSpace; _container.y = _yBorderSpace; var _local1:MouseScroller = new MouseScroller(); _container.addChild(_local1); var _local2:Sprite = new Sprite(); _tfdHeadline = __getTextField(StringMapper.mapCopyText(_xml.headline), "glossaryContentHeadline"); _local2.addChild(_tfdHeadline); _tfdCopy = __getTextField(StringMapper.mapCopyText(_xml.copy), "glossaryContentCopy"); _local2.addChild(_tfdCopy); _tfdCopy.x = _tfdHeadline.x; _tfdCopy.y = ((_tfdHeadline.y + _tfdHeadline.height) + 10); _local1.addScrollContent(_local2); _local1.width = _local2.width; _local1.height = (_ground.height - (_yBorderSpace * 2)); _mask = DrawUtils.getRect(_ground.width, _ground.height); this.addChild(_mask); _container.mask = _mask; TweenMax.to(_mask, 20, {scaleY:1, useFrames:true, overwrite:true, onComplete:__textOnShow, ease:Strong.easeInOut}); _mask.scaleY = 0; } private function __getTextField(_arg1:String, _arg2:String):TextField{ var _local3:TextField = CostumTextfield.getCSSTextfield("left", false, true, true); _local3.width = (Defaults.GLOSSARY_CONTENT_TEXTLAYER_WIDTH - (_xBorderSpace * 2)); _local3.htmlText = CSSMapper.map(unescape(_arg1), _arg2); _local3.addEventListener(TextEvent.LINK, __textFieldLinkEventHandler); return (_local3); } private function __textFieldLinkEventHandler(_arg1:TextEvent):void{ GameUtils.textRequest(_arg1.text); } } }//package eu.ecb.economia.templates.glossary.glossarycontent
Section 126
//Glossary (eu.ecb.economia.templates.glossary.Glossary) package eu.ecb.economia.templates.glossary { import flash.events.*; import eu.ecb.economia.events.*; import de.aperto.managers.*; import flash.display.*; import flash.utils.*; import com.greensock.*; import eu.ecb.economia.templates.*; import de.aperto.utils.*; import flash.text.*; import eu.ecb.economia.*; import com.greensock.easing.*; import de.aperto.text.*; import eu.ecb.economia.templates.glossary.glossarycontent.*; import eu.ecb.economia.text.*; public class Glossary extends Template implements TemplateInterface { private var _container:Sprite; private var _glossaryContent:GlossaryContent; private var _timer:Timer; private var _pageXML:XML; private var _ground:Sprite; private var _tfdHeadline:TextField; private var _glossaryNavigation:GlossaryNavigation; override public function onFront():void{ } private function __bluebuttonCallback():void{ templateController.addTemplate(templateController.lastTemplateId); } private function __removedFromStage(_arg1:Event):void{ if (_container){ DisplayUtils.removeDisplayObject(_container); _container = null; }; __removeEvents(); } private function __build():void{ var _local1:int; var _local2:int; _container = new Sprite(); this.addChild(_container); __addHeadline(); __addNavigation(); __addGlossaryContent(); if (this.params != null){ _local1 = this.params.page; _local2 = this.params.subpage; }; _glossaryNavigation.update(_local1); _glossaryContent.update(_local1, _local2); } override public function update():void{ _pageXML = XML(gameDataPool.xmlData.glossary); DisplayUtils.removeDisplayObject(_container); if (_container != null){ _container = null; }; __build(); __templateOnUpdate(); } override public function remove():void{ if (_timer){ _timer.stop(); }; TweenMax.to(this, 5, {alpha:0, useFrames:true, onComplete:__onRemove, ease:Strong.easeOut}); } private function __removeEvents():void{ } override public function show():void{ this.alpha = 0; TweenMax.to(this, 15, {alpha:1, useFrames:true, ease:Strong.easeOut}); } override public function set isActive(_arg1:Boolean):void{ var _local2:String; _isActive = _arg1; if (((((!((this.params == null))) && (!((_glossaryContent == null))))) && (!((_glossaryNavigation == null))))){ _glossaryNavigation.update(this.params.page); _glossaryContent.update(this.params.page, this.params.subpage); }; if (_isActive){ _pageXML = XML(gameDataPool.xmlData.glossary); _local2 = LabelManager.Instance.getString("glossaryBigBlueButtonLabel"); navigationBar.changeState({slider:false, bluebutton:_local2, bluebuttonCallback:__bluebuttonCallback, navi:true, subnavi:true, autopilot:false}); } else { __removeEvents(); }; } override public function addedToStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, addedToStage); addEventListener(Event.REMOVED_FROM_STAGE, __removedFromStage); __addGround(); __build(); } override public function hide():void{ } private function __addGround():void{ _ground = DrawUtils.getGradientRect(Defaults.GAME_STAGE_WIDTH, Defaults.GAME_STAGE_HEIGHT, 0xFFFFFF, 9808298); this.addChild(_ground); } private function __glossaryNavigationEventHandler(_arg1:Event):void{ switch (_arg1.type){ case Event.CHANGE: _glossaryContent.update(_glossaryNavigation.activeButtonId, 0); break; }; } private function __onRemove():void{ __removeEvents(); dispatchEvent(new TemplateEvent(TemplateEvent.ON_REMOVE)); } private function __glossaryContentEventHandler(_arg1:Event):void{ switch (_arg1.type){ case Event.CHANGE: break; }; } private function __templateOnUpdate():void{ dispatchEvent(new TemplateEvent(TemplateEvent.ON_UPDATE)); } private function __addHeadline():void{ var _local1:String = StringMapper.mapCopyText(_pageXML.headline); _tfdHeadline = CostumTextfield.getCSSTextfield("left", false, false, true); _container.addChild(_tfdHeadline); _tfdHeadline.htmlText = CSSMapper.map(_local1, "glossaryHeadline"); _tfdHeadline.x = Defaults.GAME_STAGE_BORDERSPACE; _tfdHeadline.y = Defaults.GAME_STAGE_BORDERSPACE; } private function __templateOnShow():void{ dispatchEvent(new TemplateEvent(TemplateEvent.INIT)); } private function __addGlossaryContent():void{ _glossaryContent = new GlossaryContent(_pageXML); _container.addChild(_glossaryContent); _glossaryContent.x = _glossaryNavigation.x; _glossaryContent.y = ((_glossaryNavigation.y + _glossaryNavigation.height) + 30); } private function __addNavigation():void{ _glossaryNavigation = new GlossaryNavigation(XML(_pageXML.navigation)); _container.addChild(_glossaryNavigation); _glossaryNavigation.x = _tfdHeadline.x; _glossaryNavigation.y = ((_tfdHeadline.y + _tfdHeadline.height) + 20); _glossaryNavigation.addEventListener(Event.CHANGE, __glossaryNavigationEventHandler); } } }//package eu.ecb.economia.templates.glossary
Section 127
//GlossaryNavigation (eu.ecb.economia.templates.glossary.GlossaryNavigation) package eu.ecb.economia.templates.glossary { import flash.events.*; import eu.ecb.economia.events.*; import flash.display.*; import flash.utils.*; import com.greensock.*; import de.aperto.utils.*; import com.greensock.easing.*; import eu.ecb.economia.ui.buttons.glossary.*; public class GlossaryNavigation extends Sprite { private var _container:Sprite; private var _navItemsArr:Array; private var _timer:Timer; public var activeButtonId:int;// = -1 private var _xml:XML; public function GlossaryNavigation(_arg1:XML){ _xml = _arg1; addEventListener(Event.ADDED_TO_STAGE, __addedToStage); } private function __addButtons():void{ var _local2:int; var _local3:int; var _local5:String; var _local6:GlossaryNavigationButton; _container = new Sprite(); this.addChild(_container); var _local1:int = _xml.item.length(); var _local4 = 20; _navItemsArr = []; var _local7:int; while (_local7 < _local1) { _local5 = _xml.item[_local7]; _local6 = new GlossaryNavigationButton(_local5); _container.addChild(_local6); _local6.id = _local7; _local6.x = _local2; _local6.y = _local3; _local6.alpha = 0; _local2 = (_local2 + int(((_local6.width + _local4) + 0.5))); _local6.addEventListener(ButtonEvent.CLICK, __navigationButtonEventHandler); _navItemsArr[_local7] = _local6; _local7++; }; } private function __addedToStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, __addedToStage); __addButtons(); __showItems(); } public function update(_arg1:int):void{ __setActiveItem(_arg1); } private function __showItems():void{ _timer = new Timer(40, _navItemsArr.length); _timer.addEventListener(TimerEvent.TIMER, __timerEventHandler); _timer.addEventListener(TimerEvent.TIMER_COMPLETE, __timerEventHandler); _timer.start(); } private function __timerEventHandler(_arg1:TimerEvent):void{ var _local2:GlossaryNavigationButton; switch (_arg1.type){ case TimerEvent.TIMER: _local2 = (_navItemsArr[(_arg1.target.currentCount - 1)] as GlossaryNavigationButton); TweenMax.to(_local2, 25, {x:_local2.x, alpha:1, useFrames:true, ease:Strong.easeOut}); _local2.x = (_local2.x + 10); break; case TimerEvent.TIMER_COMPLETE: break; }; } private function __navigationButtonEventHandler(_arg1:ButtonEvent):void{ var _local2:GlossaryNavigationButton = (_arg1.target as GlossaryNavigationButton); if (_local2.select){ return; }; switch (_arg1.type){ case ButtonEvent.CLICK: __setActiveItem(_local2.id); dispatchEvent(new Event(Event.CHANGE)); break; }; } private function __setActiveItem(_arg1:int):void{ if (activeButtonId > -1){ _navItemsArr[activeButtonId].select = false; }; activeButtonId = _arg1; _navItemsArr[activeButtonId].select = true; } } }//package eu.ecb.economia.templates.glossary
Section 128
//Highscore (eu.ecb.economia.templates.highscore.Highscore) package eu.ecb.economia.templates.highscore { import flash.events.*; import eu.ecb.economia.events.*; import de.aperto.managers.*; import flash.display.*; import flash.utils.*; import com.greensock.*; import eu.ecb.economia.templates.*; import de.aperto.utils.*; import flash.text.*; import eu.ecb.economia.events.templates.highscore.*; import com.adobe.serialization.json.*; import nl.demonsters.debugger.*; import eu.ecb.economia.*; import com.greensock.easing.*; import eu.ecb.economia.net.*; import de.aperto.text.*; import eu.ecb.economia.net.externalcall.*; import com.adobe.crypto.*; public class Highscore extends Template implements TemplateInterface { private var _timer:Timer; private var _itemsPerPage:int; private var _data:Object; private var _pageXML:XML; private var _externLinkTfd:TextField; private var _highscoreUserList:HighscoreUserList; private var _navigationIndex:int; private var _tfdHeadline:TextField; private var _ground:Sprite; private var _tfdHeadlineAdditional:TextField; private var _currPageIndex:int; private var _navigation:HighscoreNavigation; private function __getData():void{ var _local1:String = gameDataPool.galapagos; var _local2:int = (_navigationIndex * (_itemsPerPage + 1)); var _local3:int = (_local2 + _itemsPerPage); MonsterDebugger.trace(this, ((("load Highscoredata / from " + _local2) + " to ") + _local3)); var _local4:String = MD5.hash(String(((_local1 + _local2.toString()) + _local3.toString()))); var _local5:String = gameDataPool.gameSettingsXML.highscoreSendAndLoadUri.@src.toString(); ExternalCall.getHighscoreList(__externalCallEventHandler, _local2, _local3, _local4, _local5); } private function __showError(_arg1:String):void{ _tfdHeadline.htmlText = CSSMapper.map(_arg1, "highscoreHeadline"); _tfdHeadlineAdditional.visible = false; } private function __templateOnShow():void{ dispatchEvent(new TemplateEvent(TemplateEvent.INIT)); } override public function remove():void{ if (_timer){ _timer.stop(); }; TweenMax.to(this, 5, {alpha:0, useFrames:true, onComplete:__onRemove, ease:Strong.easeOut}); } private function __bluebuttonCallback():void{ templateController.addTemplate(templateController.lastTemplateId); } private function __removeHighscoreUserList():void{ if (_highscoreUserList != null){ _highscoreUserList.remove(); }; } private function __addExternLink():void{ var _local1:String = LabelManager.Instance.getString("highscoreExternlink"); _externLinkTfd = CostumTextfield.getCSSTextfield("left", false, false, true); this.addChild(_externLinkTfd); _externLinkTfd.htmlText = CSSMapper.map(_local1, "highscoreExternlink"); _externLinkTfd.x = (Defaults.GAME_STAGE_WIDTH - ((_externLinkTfd.width + Defaults.GAME_STAGE_BORDERSPACE) + 30)); _externLinkTfd.y = (Defaults.GAME_STAGE_HEIGHT - (Defaults.GAME_STAGE_BORDERSPACE + _externLinkTfd.height)); } private function __updateNavigation():void{ if (_navigation != null){ _navigation.update(_navigationIndex); return; }; _navigation = new HighscoreNavigation(_data.results, _data.amountUsers); this.addChild(_navigation); _navigation.x = (Defaults.GAME_STAGE_WIDTH - (_navigation.width + 55)); _navigation.y = ((_tfdHeadline.y + _tfdHeadline.height) + 20); _navigation.addEventListener(Event.CHANGE, __navigationEventHandler); _navigation.update(_navigationIndex); } private function __externalCallEventHandler(_arg1):void{ var json:Object; var data = _arg1; MonsterDebugger.trace(this, "HIGHSCORE DATA EVENTHANDLER ---> "); MonsterDebugger.trace(this, data); if (((!((data == null))) && ((data is IOErrorEvent)))){ MonsterDebugger.trace(this, "!!! Unable to load highscorelist"); MonsterDebugger.trace(this, (data as IOErrorEvent).text); __showError(LabelManager.Instance.getString("highscoreHeadlineFailed")); return; }; try { json = JSON.decode(data); } catch(e:Error) { }; if (json == null){ MonsterDebugger.trace(this, "!!! Could data not convert to JSON"); __showError(LabelManager.Instance.getString("highscoreHeadlineFailed")); return; }; if (((json.status) && ((json.status == 0)))){ MonsterDebugger.trace(this, "!!! Could not load highscorelist"); __showError(LabelManager.Instance.getString("highscoreHeadlineFailed")); return; }; _data = json; MonsterDebugger.trace(this, "HighscoredataEventHandler -->"); MonsterDebugger.trace(this, _data); __updateNavigation(); __updateHighscoreUserList(); } override public function addedToStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, addedToStage); navigationBar.changeState({slider:false, bluebutton:LabelManager.Instance.getString("highscoreBigBlueButtonLabel"), bluebuttonCallback:__bluebuttonCallback, navi:false, subnavi:true, autopilot:false}); if (gameDataPool.xmlData.highscore){ _pageXML = XML(gameDataPool.xmlData.highscore); __xmlOnLoad(_pageXML); } else { __loadXML(); }; } private function __addGround():void{ _ground = DrawUtils.getGradientRect(Defaults.GAME_STAGE_WIDTH, Defaults.GAME_STAGE_HEIGHT, 0xFFFFFF, 0xFFFFFF); this.addChild(_ground); } private function __highscoreUserListEventHandler(_arg1:HighscoreEvent):void{ switch (_arg1.type){ case HighscoreEvent.LIST_ON_CLEAR: DisplayUtils.removeDisplayObject(_highscoreUserList); if (_highscoreUserList != null){ _highscoreUserList = null; }; __getData(); break; }; } private function __onRemove():void{ __removeEvents(); dispatchEvent(new TemplateEvent(TemplateEvent.ON_REMOVE)); } private function __navigationEventHandler(_arg1:Event):void{ switch (_arg1.type){ case Event.CHANGE: _data = null; _navigationIndex = _navigation.activeButtonId; _currPageIndex = _navigationIndex; __removeHighscoreUserList(); break; }; } private function __removeEvents():void{ } override public function hide():void{ } private function __updateHighscoreUserList():void{ if (_data == null){ return; }; if (_highscoreUserList != null){ DisplayUtils.removeDisplayObject(_highscoreUserList); if (_highscoreUserList != null){ _highscoreUserList = null; }; return; }; _highscoreUserList = new HighscoreUserList(_data.results, _navigationIndex, gameDataPool); this.addChild(_highscoreUserList); _highscoreUserList.x = ((Defaults.GAME_STAGE_WIDTH * 0.5) - (_highscoreUserList.width * 0.5)); _highscoreUserList.y = ((_navigation.y + _navigation.height) + 35); _highscoreUserList.addEventListener(HighscoreEvent.LIST_ON_CLEAR, __highscoreUserListEventHandler); } private function __loadXML():void{ var _local1:String = String((((Develop.Instance.serverRoot + "includes/xml/content/templates/highscore.") + Develop.Instance.language) + ".xml")); DataLoader.loadXML(_local1, __xmlOnLoad); } private function __addHeadline():void{ var _local1:String = LabelManager.Instance.getString("highscoreHeadline"); _tfdHeadline = CostumTextfield.getCSSTextfield("left", false, false, true); this.addChild(_tfdHeadline); _tfdHeadline.htmlText = CSSMapper.map(_local1, "highscoreHeadline"); _tfdHeadline.x = Defaults.GAME_STAGE_BORDERSPACE; _tfdHeadline.y = Defaults.GAME_STAGE_BORDERSPACE; _local1 = LabelManager.Instance.getString("highscoreHeadlineAdditional"); _tfdHeadlineAdditional = CostumTextfield.getCSSTextfield("left", false, false, true); this.addChild(_tfdHeadlineAdditional); _tfdHeadlineAdditional.htmlText = CSSMapper.map(_local1, "highscoreHeadlineAdditional"); _tfdHeadlineAdditional.x = ((_tfdHeadline.x + _tfdHeadline.width) + 5); _tfdHeadlineAdditional.y = ((_tfdHeadline.y + (_tfdHeadline.height * 0.5)) - (_tfdHeadlineAdditional.height * 0.5)); } override public function update():void{ __templateOnUpdate(); } private function __templateOnUpdate():void{ dispatchEvent(new TemplateEvent(TemplateEvent.ON_UPDATE)); } private function __xmlOnLoad(_arg1:XML):void{ if (_arg1 == null){ MonsterDebugger.trace(this, "Unable to load disclaimer XML"); throw (new Error("Unable to load disclaimer XML")); }; gameDataPool.xmlData.highscore = _arg1; _navigationIndex = 0; _currPageIndex = 0; _itemsPerPage = (Defaults.HIGHSCORE_ITEMS_PER_PAGE - 1); __addGround(); __addHeadline(); __addExternLink(); __getData(); } } }//package eu.ecb.economia.templates.highscore
Section 129
//HighscoreNavigation (eu.ecb.economia.templates.highscore.HighscoreNavigation) package eu.ecb.economia.templates.highscore { import flash.events.*; import eu.ecb.economia.events.*; import flash.display.*; import flash.utils.*; import com.greensock.*; import de.aperto.utils.*; import eu.ecb.economia.*; import com.greensock.easing.*; import eu.ecb.economia.ui.buttons.highscore.*; public class HighscoreNavigation extends Sprite { private var _container:Sprite; private var _navItemsArr:Array; private var _json:Array; private var _amountUserInDatabase:int; private var _amountPages:int; public var activeButtonId:int;// = -1 private var _timer:Timer; public function HighscoreNavigation(_arg1:Array, _arg2:int){ _json = _arg1; _amountUserInDatabase = _arg2; addEventListener(Event.ADDED_TO_STAGE, __addedToStage); } private function __addedToStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, __addedToStage); _amountPages = Math.ceil((_amountUserInDatabase / Defaults.HIGHSCORE_ITEMS_PER_PAGE)); _amountPages = Math.min(_amountPages, 13); if (_amountPages == 0){ return; }; __addButtons(); __addArrows(); __showItems(); } private function __addButtons():void{ var _local1:int; var _local2:int; var _local4:String; var _local5:HighscoreNavigationButton; _container = new Sprite(); this.addChild(_container); var _local3 = 9; var _local6 = 1; var _local7:int = Defaults.HIGHSCORE_ITEMS_PER_PAGE; var _local8:int = _amountUserInDatabase; _navItemsArr = []; var _local9:int; while (_local9 < _amountPages) { _local4 = String(((_local6 + " - ") + _local7)); _local5 = new HighscoreNavigationButton(_local4); _container.addChild(_local5); _local5.id = _local9; _local5.x = _local1; _local5.y = _local2; _local5.alpha = 0; _local1 = (_local1 + int(((_local5.width + _local3) + 0.5))); _local5.addEventListener(ButtonEvent.CLICK, __navigationButtonEventHandler); _navItemsArr[_local9] = _local5; _local6 = (_local6 + Defaults.HIGHSCORE_ITEMS_PER_PAGE); _local7 = (_local7 + Defaults.HIGHSCORE_ITEMS_PER_PAGE); _local7 = Math.min(_local7, _local8); _local9++; }; } public function update(_arg1:int):void{ __setActiveItem(_arg1); } private function __addArrows():void{ } private function __navigationButtonEventHandler(_arg1:ButtonEvent):void{ var _local2:HighscoreNavigationButton = (_arg1.target as HighscoreNavigationButton); if (_local2.select){ return; }; switch (_arg1.type){ case ButtonEvent.CLICK: __setActiveItem(_local2.id); dispatchEvent(new Event(Event.CHANGE)); break; }; } private function __timerEventHandler(_arg1:TimerEvent):void{ var _local2:HighscoreNavigationButton; switch (_arg1.type){ case TimerEvent.TIMER: _local2 = (_navItemsArr[(_arg1.target.currentCount - 1)] as HighscoreNavigationButton); TweenMax.to(_local2, 25, {x:_local2.x, alpha:1, useFrames:true, ease:Strong.easeOut}); _local2.x = (_local2.x + 10); break; case TimerEvent.TIMER_COMPLETE: break; }; } private function __setActiveItem(_arg1:int):void{ if (activeButtonId > -1){ _navItemsArr[activeButtonId].select = false; }; activeButtonId = _arg1; _navItemsArr[activeButtonId].select = true; } private function __showItems():void{ _timer = new Timer(40, _navItemsArr.length); _timer.addEventListener(TimerEvent.TIMER, __timerEventHandler); _timer.addEventListener(TimerEvent.TIMER_COMPLETE, __timerEventHandler); _timer.start(); } } }//package eu.ecb.economia.templates.highscore
Section 130
//HighscoreUserList (eu.ecb.economia.templates.highscore.HighscoreUserList) package eu.ecb.economia.templates.highscore { import flash.events.*; import flash.display.*; import flash.utils.*; import com.greensock.*; import de.aperto.utils.*; import eu.ecb.economia.data.*; import eu.ecb.economia.events.templates.highscore.*; import eu.ecb.economia.*; import com.greensock.easing.*; import eu.ecb.economia.ui.highscore.*; public class HighscoreUserList extends Sprite { private var _itemsArr:Array; private var _container:Sprite; private var _timer:Timer; private var _onRemove:Boolean; private var _pageIndex:int; private var _json:Array; private var _gameDataPool:GameDataPool; private var _removeCounter:int; public function HighscoreUserList(_arg1:Array, _arg2:int, _arg3:GameDataPool){ _json = _arg1; _pageIndex = _arg2; _gameDataPool = _arg3; __addItems(); addEventListener(Event.ADDED_TO_STAGE, __addedToStage); } private function __runTimer():void{ if (_timer != null){ _timer.reset(); _timer.start(); return; }; var _local1:int = (_onRemove) ? 10 : 25; _timer = new Timer(_local1, _itemsArr.length); _timer.addEventListener(TimerEvent.TIMER, __timerEventHandler); _timer.start(); } private function __addedToStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, __addedToStage); __runTimer(); } public function remove():void{ _onRemove = true; __runTimer(); } private function __timerEventHandler(_arg1:TimerEvent):void{ var _local2:HighscoreListItem; var _local3:Function; var _local4:int; var _local5:int; var _local6:Number; var _local7:Number; var _local8:Function; switch (_arg1.type){ case TimerEvent.TIMER: _local2 = (_itemsArr[(_arg1.target.currentCount - 1)] as HighscoreListItem); _local3 = (_onRemove) ? Strong.easeIn : Emotion.strongInSoftOut; _local4 = (_onRemove) ? 5 : 30; _local5 = (_onRemove) ? -10 : 0; _local6 = (_onRemove) ? (_local2.x - 5) : _local2.x; _local7 = (_onRemove) ? 0 : 1; _local8 = (_onRemove) ? __itemOnRemove : null; TweenMax.to(_local2, _local4, {x:_local6, alpha:_local7, overwrite:true, useFrames:true, ease:_local3, onComplete:_local8}); if (!_onRemove){ _local2.x = (_local2.x + 5); }; break; }; } private function __itemOnRemove():void{ _removeCounter++; if (_removeCounter == _itemsArr.length){ dispatchEvent(new HighscoreEvent(HighscoreEvent.LIST_ON_CLEAR)); }; } private function __addItems():void{ var _local6:HighscoreListItem; _container = new Sprite(); this.addChild(_container); var _local1:int = _json.length; var _local2 = 20; var _local3 = 3; var _local4 = 3; var _local5:int = Defaults.HIGHSCORE_ITEMS_PER_PAGE; _itemsArr = []; var _local7:int; while (_local7 < _local1) { _json[_local7].rank = (((_pageIndex * _local5) + _local7) + 1); _local6 = new HighscoreListItem(_json[_local7], _gameDataPool); _container.addChild(_local6); _local6.x = ((_local7 % _local3) * (_local6.width + _local2)); _local6.y = (Math.floor(((_local7 % _local1) / _local4)) * (_local6.height + _local2)); _local6.alpha = 0; _itemsArr[_local7] = _local6; _local7++; }; } } }//package eu.ecb.economia.templates.highscore
Section 131
//Language (eu.ecb.economia.templates.language.Language) package eu.ecb.economia.templates.language { import flash.events.*; import eu.ecb.economia.events.*; import de.aperto.managers.*; import flash.display.*; import com.greensock.*; import eu.ecb.economia.templates.*; import de.aperto.utils.*; import flash.text.*; import nl.demonsters.debugger.*; import eu.ecb.economia.*; import com.greensock.easing.*; import eu.ecb.economia.net.*; import eu.ecb.economia.ui.buttons.bigbluebutton.*; import de.aperto.text.*; import eu.ecb.economia.ui.buttons.radiotextbutton.*; public class Language extends Template implements TemplateInterface { private var _btnArr:Array; private var _pageXML:XML; private var _buttonsContainer:Sprite; private var _ground:Sprite; private var _tfdHeadline:TextField; private var _activeBtnId:int; private var _setButton:BigBlueSimpleButton; private function __buttonsContainerOnSet():void{ __addSetButton(); } private function __addHeadline():void{ _tfdHeadline = CostumTextfield.getCSSTextfield("left", false, false, true); this.addChild(_tfdHeadline); _tfdHeadline.htmlText = CSSMapper.map(_pageXML.headline, "languageHeadline"); _tfdHeadline.x = _buttonsContainer.x; _tfdHeadline.y = (_buttonsContainer.y - (_tfdHeadline.height + 30)); } private function __bluebuttonCallback():void{ templateController.addTemplate(templateController.lastTemplateId); } override public function remove():void{ TweenMax.to(this, 0.1, {alpha:0, useFrames:false, onComplete:__onRemove, ease:Strong.easeOut}); } private function __buttonClickHandler(_arg1:ButtonEvent):void{ MonsterDebugger.trace(this, "btn.click"); var _local2:RadioTextButton = (_arg1.target as RadioTextButton); _local2.checked = true; _activeBtnId = _local2.id; __resetButtonsCheck(_local2.id); } private function __build():void{ var _local1:Sprite; var _local2:RadioTextButton; var _local5:int; var _local10:String; _buttonsContainer = new Sprite(); this.addChild(_buttonsContainer); _btnArr = []; var _local3:int = _pageXML.languages.language.length(); var _local4 = 5; var _local6 = 20; var _local7:Number = 0; var _local8:Number = 0; var _local9:Number = 35; var _local11:int; while (_local11 < _local3) { if (Math.floor(((_local11 % _local3) / _local4)) == _local5){ if (_local1){ _local7 = (_local7 + (_local1.width + _local9)); }; _local1 = new Sprite(); _buttonsContainer.addChild(_local1); _local1.x = _local7; _local1.y = _local8; _local5++; }; _local10 = _pageXML.languages.language[_local11]; _local2 = new RadioTextButton(_local10); _local1.addChild(_local2); _local2.id = _local11; _local2.x = 0; _local2.y = ((_local11 % _local4) * (_local2.height + _local6)); if (_pageXML.languages.language[_local11].@countryCode == Develop.Instance.language){ _local2.checked = true; _activeBtnId = _local11; }; _local2.addEventListener(ButtonEvent.CLICK, __buttonClickHandler); _btnArr.push(_local2); _local11++; }; _buttonsContainer.x = int((((Defaults.GAME_STAGE_WIDTH * 0.5) - (_buttonsContainer.width * 0.5)) + 0.5)); _buttonsContainer.y = int((((Defaults.GAME_STAGE_HEIGHT * 0.5) - (_buttonsContainer.height * 0.5)) + 0.5)); __addHeadline(); _local11 = 0; while (_local11 < _local3) { _local2 = (_btnArr[_local11] as RadioTextButton); TweenMax.to(_local2, 10, {x:_local2.x, y:_local2.y, alpha:1, useFrames:true, delay:_local11, ease:Strong.easeOut}); _local2.x = 0; _local2.y = 0; _local2.alpha = 0; _local11++; }; TweenMax.to(_buttonsContainer, 30, {x:_buttonsContainer.x, useFrames:true, onComplete:__buttonsContainerOnSet, ease:Strong.easeOut}); _buttonsContainer.x = (Defaults.GAME_STAGE_WIDTH * 0.5); } private function __setButtonClickHandler(_arg1:ButtonEvent):void{ var _local2:String = _pageXML.languages.language[_activeBtnId].@countryCode; MonsterDebugger.trace(this, ((("current language: " + Develop.Instance.language) + " | new language: ") + _local2)); if (Develop.Instance.language == _local2){ return; }; Develop.Instance.language = _local2; MonsterDebugger.trace(this, ("Develop.Instance.language: " + Develop.Instance.language)); var _local3:Economia = (root as Economia); _local3.reload(); } override public function update():void{ __templateOnUpdate(); } override public function hide():void{ } private function __resetButtonsCheck(_arg1:int):void{ var _local3:RadioTextButton; var _local2:int; while (_local2 < _btnArr.length) { _local3 = (_btnArr[_local2] as RadioTextButton); if (_local3.id != _arg1){ _local3.checked = false; }; _local2++; }; } override public function addedToStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, addedToStage); navigationBar.changeState({slider:false, bluebutton:LabelManager.Instance.getString("languageBigBlueButtonLabel"), bluebuttonCallback:__bluebuttonCallback, navi:false, subnavi:true, autopilot:false}); __addGround(); if (gameDataPool.xmlData.language){ _pageXML = XML(gameDataPool.xmlData.language); __build(); } else { __loadXML(); }; } private function __addGround():void{ _ground = DrawUtils.getGradientRect(Defaults.GAME_STAGE_WIDTH, Defaults.GAME_STAGE_HEIGHT, 0xFFFFFF, 9808298); this.addChild(_ground); } private function __removeEvents():void{ } private function __templateOnUpdate():void{ dispatchEvent(new TemplateEvent(TemplateEvent.ON_UPDATE)); } private function __loadXML():void{ var _local1:String = String((((Develop.Instance.serverRoot + "includes/xml/content/templates/language.") + Develop.Instance.language) + ".xml")); DataLoader.loadXML(_local1, __xmlOnLoad); } private function __templateOnShow():void{ dispatchEvent(new TemplateEvent(TemplateEvent.INIT)); } private function __addSetButton():void{ _setButton = new BigBlueSimpleButton(_pageXML.setButton); this.addChild(_setButton); _setButton.addEventListener(ButtonEvent.CLICK, __setButtonClickHandler); _setButton.x = _buttonsContainer.x; _setButton.y = ((_buttonsContainer.y + _buttonsContainer.height) + 35); _setButton.show(); TweenMax.to(_setButton, 15, {y:_setButton.y, useFrames:true, ease:Emotion.singleBounceEaseOut}); _setButton.y = (_setButton.y - 25); } private function __onRemove():void{ __removeEvents(); dispatchEvent(new TemplateEvent(TemplateEvent.ON_REMOVE)); } private function __xmlOnLoad(_arg1:XML):void{ if (_arg1 == null){ MonsterDebugger.trace(this, "Unable to load Language XML"); throw (new Error("Unable to load Learn More XML")); }; gameDataPool.xmlData.language = _arg1; _pageXML = _arg1; __build(); } } }//package eu.ecb.economia.templates.language
Section 132
//LearnMore (eu.ecb.economia.templates.learnmore.LearnMore) package eu.ecb.economia.templates.learnmore { import flash.events.*; import eu.ecb.economia.events.*; import de.aperto.managers.*; import flash.display.*; import com.greensock.*; import eu.ecb.economia.templates.*; import de.aperto.utils.*; import flash.text.*; import nl.demonsters.debugger.*; import eu.ecb.economia.*; import com.greensock.easing.*; import eu.ecb.economia.net.*; import de.aperto.text.*; import de.aperto.ui.mousescroller.*; public class LearnMore extends Template implements TemplateInterface { private var _onLoadCnt:int; private var _tfdCopy:TextField; private var _tfdContainer:Sprite; private var _pageXML:XML; private var _peopleImagePath:String; private var _backgroundMapImagePath:String; private var _ground:Sprite; private var _tfdHeadline:TextField; private var _mapBmp:Bitmap; private var _imagesContainer:Sprite; private var _peopleBmp:Bitmap; private function __imageOnLoad(_arg1:Bitmap, _arg2:String):void{ _onLoadCnt++; switch (_arg2){ case _backgroundMapImagePath: _mapBmp = _arg1; _imagesContainer.addChild(_mapBmp); _mapBmp.x = ((_ground.x + _ground.width) - _mapBmp.width); _mapBmp.y = (((_ground.y + _ground.height) * 0.5) - (_mapBmp.height * 0.5)); DisplayUtils.swapChildToBottom(_mapBmp); break; case _peopleImagePath: _peopleBmp = _arg1; _imagesContainer.addChild(_peopleBmp); _peopleBmp.x = ((_ground.x + _ground.width) - (_peopleBmp.width + 50)); _peopleBmp.y = (Defaults.GAME_STAGE_HEIGHT - _peopleBmp.height); DisplayUtils.swapChildToTop(_peopleBmp); break; }; if (_onLoadCnt == 2){ __imagesOnLoad(); }; } override public function remove():void{ TweenMax.to(this, 5, {alpha:0, useFrames:true, onComplete:__onRemove, ease:Strong.easeOut}); } private function __bluebuttonCallback():void{ templateController.addTemplate(templateController.lastTemplateId); } private function __addCopy():void{ var _local1:MouseScroller = new MouseScroller(); _tfdContainer.addChild(_local1); var _local2:String = LabelManager.Instance.getString("learnMoreCopy"); _tfdCopy = CostumTextfield.getCSSTextfield("left", false, true, true); _tfdCopy.width = 400; _tfdCopy.htmlText = CSSMapper.map(_local2, "learnMoreCopy"); _local1.y = ((_tfdHeadline.y + _tfdHeadline.height) + 20); _local1.addScrollContent(_tfdCopy); _local1.width = _tfdCopy.width; _local1.height = 250; } override public function hide():void{ } private function __imagesOnLoad():void{ _tfdContainer = new Sprite(); this.addChild(_tfdContainer); __addHeadline(); __addCopy(); _tfdContainer.x = (Defaults.GAME_STAGE_BORDERSPACE * 3); _tfdContainer.y = (Defaults.GAME_STAGE_BORDERSPACE * 3); } override public function show():void{ this.alpha = 1; } override public function update():void{ __templateOnUpdate(); } override public function addedToStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, addedToStage); navigationBar.changeState({slider:false, bluebutton:LabelManager.Instance.getString("learnMoreBigBlueButtonLabel"), bluebuttonCallback:__bluebuttonCallback, navi:false, subnavi:true, autopilot:false}); __addGround(); if (gameDataPool.xmlData.learnmore){ _pageXML = XML(gameDataPool.xmlData.learnmore); __addImages(); } else { __loadXML(); }; } private function __templateOnUpdate():void{ dispatchEvent(new TemplateEvent(TemplateEvent.ON_UPDATE)); } private function __removeEvents():void{ } private function __addGround():void{ var _local1:Number = (Defaults.GAME_STAGE_WIDTH - (Defaults.GAME_STAGE_BORDERSPACE * 2)); var _local2:Number = Defaults.GAME_STAGE_HEIGHT; _ground = DrawUtils.getRoundRect(_local1, _local2, 20, 20, 0xFFFFFF); this.addChild(_ground); _ground.x = Defaults.GAME_STAGE_BORDERSPACE; _ground.y = Defaults.GAME_STAGE_BORDERSPACE; BitmapUtils.addShadow(_ground, 30, 30, 25, 3, 0.4); } private function __loadXML():void{ var _local1:String = String((((Develop.Instance.serverRoot + "includes/xml/content/templates/learnmore.") + Develop.Instance.language) + ".xml")); DataLoader.loadXML(_local1, __xmlOnLoad); } private function __onRemove():void{ __removeEvents(); dispatchEvent(new TemplateEvent(TemplateEvent.ON_REMOVE)); } private function __addHeadline():void{ var _local1:String = LabelManager.Instance.getString("learnMoreHeadline"); _tfdHeadline = CostumTextfield.getCSSTextfield("left", false, false, true); _tfdContainer.addChild(_tfdHeadline); _tfdHeadline.width = 400; _tfdHeadline.htmlText = CSSMapper.map(_local1, "learnMoreHeadline"); } private function __templateOnShow():void{ dispatchEvent(new TemplateEvent(TemplateEvent.INIT)); } private function __addImages():void{ _imagesContainer = new Sprite(); this.addChild(_imagesContainer); _backgroundMapImagePath = String((Develop.Instance.serverRoot + _pageXML.backgroundMapImage.@src)); DataLoader.loadMedia(_backgroundMapImagePath, __imageOnLoad, null, true); _peopleImagePath = String((Develop.Instance.serverRoot + _pageXML.peopleImage.@src)); DataLoader.loadMedia(_peopleImagePath, __imageOnLoad, null, true); } private function __xmlOnLoad(_arg1:XML):void{ if (_arg1 == null){ MonsterDebugger.trace(this, "Unable to load Learn More XML"); throw (new Error("Unable to load Learn More XML")); }; gameDataPool.xmlData.learnmore = _arg1; _pageXML = _arg1; __addImages(); } } }//package eu.ecb.economia.templates.learnmore
Section 133
//Landscape (eu.ecb.economia.templates.map.landscape.Landscape) package eu.ecb.economia.templates.map.landscape { import flash.events.*; import eu.ecb.economia.events.*; import de.aperto.managers.*; import flash.display.*; import com.greensock.*; import eu.ecb.economia.game.*; import de.aperto.utils.*; import eu.ecb.economia.data.*; import eu.ecb.economia.*; public class Landscape extends Sprite { private var _container:Sprite; private var _gameBrain:GameBrain; private var _gameDataPool:GameDataPool; private var _sessonsArr:Array; public function Landscape(_arg1:Game){ _gameBrain = _arg1.getGameBrain(); _gameDataPool = _gameBrain.getGameDataPool(); addEventListener(Event.ADDED_TO_STAGE, __addedToStage); } private function __addedToStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, __addedToStage); addEventListener(Event.REMOVED_FROM_STAGE, __removedFromStage); _gameBrain.addListener(GameEvent.ON_NEXT_QUARTER, __gameOnNextQuarter); _container = new Sprite(); this.addChild(_container); _container.x = (Defaults.GAME_STAGE_WIDTH - Defaults.MAP_DEFAULT_WIDTH); _container.y = (Defaults.GAME_STAGE_HEIGHT - Defaults.MAP_DEFAULT_HEIGHT); __addMap(); __addSeasons(); } private function __gameOnNextQuarter():void{ __showNextSeason(_gameDataPool.currentQuarter); } private function __getImage(_arg1:String):Bitmap{ var _local2:BitmapData = BitmapDataManager.Instance.getBitmapData("map", _arg1); return (new Bitmap(_local2, "auto", true)); } private function __addSeasons():void{ _sessonsArr = ["empty"]; _sessonsArr.push(_container.addChild(__getImage("WinterSpring"))); _sessonsArr.push(_container.addChild(__getImage("SpringSummer"))); _sessonsArr.push(_container.addChild(__getImage("SummerFall"))); _sessonsArr.push(_container.addChild(__getImage("FallWinter"))); var _local1 = 1; while (_local1 < _sessonsArr.length) { _sessonsArr[_local1].alpha = 0; _local1++; }; _sessonsArr[_gameDataPool.currentQuarter].alpha = 1; } private function __removedFromStage(_arg1:Event):void{ switch (_arg1.type){ case Event.REMOVED_FROM_STAGE: __removeEvents(); break; }; } private function __showNextSeason(_arg1:int):void{ var _local2:Bitmap; var _local3 = 1; while (_local3 < _sessonsArr.length) { _local2 = (_sessonsArr[_local3] as Bitmap); TweenMax.to(_local2, 300, {alpha:((_local3 == _arg1)) ? 1 : 0, useFrames:true, overwrite:true}); _local3++; }; } private function __addMap():void{ var _local1:BitmapData = BitmapDataManager.Instance.getBitmapData("map", "DefaultMap"); var _local2:Bitmap = new Bitmap(_local1, "auto", true); _container.addChild(_local2); } private function __removeEvents():void{ _gameBrain.removeListener(GameEvent.ON_NEXT_QUARTER, __gameOnNextQuarter); } } }//package eu.ecb.economia.templates.map.landscape
Section 134
//PerformenceLayer (eu.ecb.economia.templates.map.performencelayer.PerformenceLayer) package eu.ecb.economia.templates.map.performencelayer { import flash.events.*; import eu.ecb.economia.events.*; import de.aperto.managers.*; import flash.display.*; import com.greensock.*; import de.aperto.utils.*; import flash.text.*; import eu.ecb.economia.manager.*; import eu.ecb.economia.data.*; import eu.ecb.economia.ui.buttons.*; import com.greensock.easing.*; import eu.ecb.economia.utils.*; import eu.ecb.economia.ui.buttons.closebutton.*; import de.aperto.text.*; import eu.ecb.economia.text.*; public class PerformenceLayer extends Sprite { private var _container:Sprite; private var _height:int;// = 350 private var _width:int;// = 450 private var _gameDataPool:GameDataPool; private var _textFieldWidth:int; private var _ground:Sprite; private var _currentIntermediateFeedbackSoundId:String; private var _performenceData:Object; private var _borderSpace:int;// = 15 public function PerformenceLayer(_arg1:GameDataPool){ _textFieldWidth = (_width - (_borderSpace * 2)); super(); _gameDataPool = _arg1; _performenceData = _gameDataPool.gamePerformance; addEventListener(Event.ADDED_TO_STAGE, __addedToStage); } private function __addedToStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, __addedToStage); this.alpha = 0; _container = new Sprite(); this.addChild(_container); __addGround(); __buildLayer(); __addCloseButton(); _container.x = (-(_container.width) * 0.5); _container.y = (-(_container.height) * 0.5); this.scaleX = (this.scaleY = 0.98); TweenMax.to(this, 10, {alpha:1, scaleX:1, scaleY:1, overwrite:true, useFrames:true, onComplete:__layerOnShow, ease:Strong.easeOut}); SoundManager.Instance.playSoundFromLibrary("IntermediateResult"); } private function __addCloseButton():void{ var _local1:CloseButton = new CloseButton(); _container.addChild(_local1); _local1.x = _width; _local1.addEventListener(ButtonEvent.CLICK, __closeButtonEventHandler); } private function __getStringByXMLNode(_arg1:XML, _arg2:int):String{ var _local3:int = _arg1.string.length(); var _local4 = ""; var _local5:int; while (_local5 < _local3) { if (parseInt(_arg1.string[_local5].@id) == _arg2){ _local4 = LabelManager.Instance.getString(_arg1.string[_local5].@labelId); break; }; _local5++; }; return (_local4); } public function remove():void{ if (_currentIntermediateFeedbackSoundId){ SoundManager.Instance.stopSoundFromLibrary(_currentIntermediateFeedbackSoundId); }; SoundManager.Instance.stopSoundFromLibrary("IntermediateResult"); TweenMax.to(this, 10, {alpha:0, scaleX:0.98, scaleY:0.98, onComplete:__onRemove, overwrite:true, useFrames:true, ease:Strong.easeOut}); } private function __layerOnShow():void{ _currentIntermediateFeedbackSoundId = GameUtils.playIntermediateFeedbackSound(_performenceData.perform_headline); } private function __infoButtonEventHandler(_arg1:ButtonEvent):void{ var _local2:Button; var _local3:Number; var _local4:Number; var _local5:String; _local2 = (_arg1.target as Button); switch (_arg1.type){ case ButtonEvent.MOUSE_OVER: _local3 = DisplayUtils.globalize(_local2).x; _local4 = DisplayUtils.globalize(_local2).y; if (_local2.id == 0){ _local5 = LabelManager.Instance.getString(_gameDataPool.gameSettingsXML.tooltips.inflationrate.@labelId); }; if (_local2.id == 1){ _local5 = LabelManager.Instance.getString(_gameDataPool.gameSettingsXML.tooltips.fluctuation.@labelId); }; ToolTipManager.addText(_local5, false, _local3, _local4); break; case ButtonEvent.MOUSE_OUT: ToolTipManager.mouseIsOut(); break; }; } private function __addSplineLine(_arg1, _arg2:Number, _arg3:Number):void{ var _local4:Sprite = DrawUtils.getRect(_textFieldWidth, 1, 0x999999); _arg1.addChild(_local4); _local4.x = 0; _local4.y = _arg3; } private function __closeButtonEventHandler(_arg1:ButtonEvent):void{ remove(); } private function __getXMLChild(_arg1:XML, _arg2:int):XML{ var _local4:XML; var _local3:int = _arg1.length(); var _local5:int; while (_local5 < _local3) { if (parseInt(_arg1.string[_local5].@id) == _arg2){ _local4 = XML(_arg1.string[_local5]); break; }; _local5++; }; return (_local4); } private function __getColorByXMLNode(_arg1:XML, _arg2:int):uint{ var _local3:int = _arg1.color.length(); var _local4:uint; var _local5:int; while (_local5 < _local3) { if (parseInt(_arg1.color[_local5].@id) == _arg2){ _local4 = parseInt(_arg1.color[_local5].@val); break; }; _local5++; }; return (_local4); } private function __buildLayer():void{ var tfd:TextField; var tfdValue:TextField; var str:String; var color:uint; var image:MovieClip; var lineSpace = 10; var offsetY:int; var textContainer:Sprite = new Sprite(); _container.addChild(textContainer); var headerCont:Sprite = new Sprite(); textContainer.addChild(headerCont); var xml:XML = XML(_gameDataPool.gameSettingsXML.performenceFeedback); str = LabelManager.Instance.getString(XML(xml.string.(@id == _performenceData.perform_headline)).@headlineId); color = parseInt(XML(xml.string.(@id == _performenceData.perform_headline)).@headlineTextColor); tfd = CostumTextfield.getCSSTextfield("left", false, true, true, "normal"); headerCont.addChild(tfd); tfd.width = _textFieldWidth; tfd.htmlText = CSSMapper.map(str, "performenceLayerHeadline"); tfd.textColor = color; offsetY = ((tfd.y + tfd.height) + lineSpace); if (_gameDataPool.awardWinningAtCurrentQuarter){ image = (new ((LibraryManager.Instance.getClass("BigStar") as Class)) as MovieClip); headerCont.addChild(image); image.gotoAndPlay("show"); image.y = offsetY; image.x = ((_width * 0.5) - (image.width * 0.5)); offsetY = (image.y + image.height); }; var footerCont:Sprite = new Sprite(); textContainer.addChild(footerCont); offsetY = 0; str = LabelManager.Instance.getString(XML(xml.string.(@id == _performenceData.perform_headline)).@copyId); tfd = __addTextfield(footerCont, str, "performenceLayerCopy"); tfd.width = _textFieldWidth; tfd.y = offsetY; offsetY = ((tfd.y + tfd.height) + (lineSpace * 2)); str = LabelManager.Instance.getString("performenceResultLineDescription"); tfd = __addTextfield(footerCont, str, "performenceResultLineDescription", false, false); tfd.y = offsetY; offsetY = ((tfd.y + tfd.height) + lineSpace); __addSplineLine(footerCont, tfd.x, (tfd.y + tfd.height)); str = LabelManager.Instance.getString("performenceResultLine1"); tfd = __addTextfield(footerCont, str, "performenceResultLine", false, false); tfd.y = offsetY; GameUtils.getInfoButton(footerCont, (tfd.textWidth + 15), (offsetY + 5), 0, __infoButtonEventHandler); str = String(StringMapper.mapPercent(_gameDataPool.getAverageInflationRate())); color = parseInt(XML(xml.inflationDescription.string.(@id == _performenceData.perform_pi)).@copyTextColor); tfdValue = __addTextfield(footerCont, str, "performenceResultLine", false, false); tfdValue.x = ((tfd.x + tfd.textWidth) + 30); tfdValue.y = tfd.y; tfdValue.textColor = color; offsetY = (tfd.y + tfd.height); str = LabelManager.Instance.getString("performenceResultLine2"); tfd = __addTextfield(footerCont, str, "performenceResultLine", false, false); tfd.y = offsetY; GameUtils.getInfoButton(footerCont, (tfd.textWidth + 15), (offsetY + 5), 1, __infoButtonEventHandler); str = LabelManager.Instance.getString(XML(xml.volatilityDescription.string.(@id == _performenceData.perform_vol)).@labelId); color = parseInt(XML(xml.volatilityDescription.string.(@id == _performenceData.perform_vol)).@copyTextColor); tfdValue = __addTextfield(footerCont, str, "performenceResultLine", false, false); tfdValue.x = ((tfd.x + tfd.textWidth) + 30); tfdValue.y = tfd.y; tfdValue.textColor = color; footerCont.y = (_height - (footerCont.height + (_borderSpace * 2))); textContainer.x = _borderSpace; textContainer.y = _borderSpace; } private function __addGround():void{ _ground = DrawUtils.getRoundRect(_width, _height, 20, 20, 0xFFFFFF); _container.addChild(_ground); BitmapUtils.addShadow(_ground, 30, 30, 25, 3, 0.4); } private function __onRemove():void{ dispatchEvent(new Event(Event.CLOSE)); } private function __addTextfield(_arg1, _arg2:String, _arg3:String, _arg4:Boolean=true, _arg5:Boolean=true):TextField{ var _local6:TextField = CostumTextfield.getCSSTextfield("left", false, _arg4, _arg5); _local6.htmlText = CSSMapper.map(_arg2, _arg3); _arg1.addChild(_local6); return (_local6); } } }//package eu.ecb.economia.templates.map.performencelayer
Section 135
//Shock (eu.ecb.economia.templates.map.shock.Shock) package eu.ecb.economia.templates.map.shock { import flash.events.*; import de.aperto.managers.*; import flash.display.*; import com.greensock.*; import de.aperto.utils.*; import eu.ecb.economia.events.templates.map.*; import eu.ecb.economia.*; import com.greensock.easing.*; import eu.ecb.economia.net.*; public class Shock extends Sprite { private var _currShockId:int;// = -1 private var _shockIsMini:Boolean; private var _xml:XML; private var _lastShockId:int;// = -1 private var _shockLayer:ShockLayer; private var _currImageArr:Array; private var _shockMap:ShockMap; public function Shock(){ addEventListener(Event.ADDED_TO_STAGE, __addedToStage); } private function __imageOnLoad(_arg1:Bitmap, _arg2:String):void{ _currImageArr.push({bmp:_arg1}); if (_currImageArr.length == 3){ __createNewShock(); }; } private function __addedToStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, __addedToStage); addEventListener(Event.REMOVED_FROM_STAGE, __removedFromStage); } public function update(_arg1:Array):void{ __stopAllEventSounds(); _currShockId = _arg1[(_arg1.length - 1)]; _lastShockId = _arg1[(_arg1.length - 2)]; if (_currShockId < 0){ __resetShock(null); return; }; if (((((!((_shockLayer == null))) && ((_currShockId == _lastShockId)))) && (_shockIsMini))){ return; }; if (((((!((_shockLayer == null))) && ((_currShockId == _lastShockId)))) && (!(_shockIsMini)))){ __emasculateShock(); return; }; __resetShock(__loadImages); SoundManager.Instance.playSoundFromLibrary(__getSoundId(_currShockId)); } public function reset():void{ __stopAllEventSounds(); TweenMax.to(_shockMap, 15, {alpha:0, useFrames:true, overwrite:true, ease:Strong.easeOut}); TweenMax.to(_shockLayer, 15, {alpha:0, useFrames:true, overwrite:true, ease:Strong.easeOut}); } private function __removedFromStage(_arg1:Event):void{ switch (_arg1.type){ case Event.REMOVED_FROM_STAGE: __removeEvents(); __stopAllEventSounds(); break; }; } private function __addLayer():void{ DisplayUtils.removeDisplayObject(_shockLayer); if (_shockLayer != null){ _shockLayer = null; }; var _local1:XML = __getShockXML(_currShockId); _shockLayer = new ShockLayer(_currImageArr[0].bmp, unescape(_local1.headline), unescape(_local1.copy)); this.addChild(_shockLayer); _shockLayer.x = (_shockMap.x + (_shockMap.width * 0.5)); _shockLayer.y = (_shockMap.y + (_shockMap.height * 0.5)); _shockLayer.maxiX = _shockLayer.x; _shockLayer.maxiY = _shockLayer.y; _shockLayer.miniX = (_shockMap.x + (_shockMap.width - (_shockLayer.width + 15))); _shockLayer.miniY = (Defaults.GAME_TOPVIEW_HEIGHT + 65); if (_currShockId == _lastShockId){ _shockLayer.minimize(); } else { _shockLayer.maximize(); }; } private function __addMap():void{ DisplayUtils.removeDisplayObject(_shockMap); if (_shockMap != null){ _shockMap = null; }; _shockMap = new ShockMap(_currImageArr[1].bmp, _currImageArr[2].bmp); this.addChild(_shockMap); _shockMap.x = (Defaults.GAME_STAGE_WIDTH - Defaults.MAP_DEFAULT_WIDTH); _shockMap.y = (Defaults.GAME_STAGE_HEIGHT - Defaults.MAP_DEFAULT_HEIGHT); TweenMax.to(_shockMap, 15, {alpha:1, y:_shockMap.y, useFrames:true, overwrite:true, ease:Strong.easeOut, onComplete:__addLayer}); _shockMap.y = (_shockMap.y - 3); _shockMap.alpha = 0; } private function __removeEvents():void{ } private function __createNewShock():void{ __addMap(); dispatchEvent(new MapEvent(MapEvent.ON_NEW_SHOCK)); } private function __stopAllEventSounds():void{ var _local2:String; var _local1:int = _xml.shock.length(); var _local3:int; while (_local3 < _local1) { _local2 = _xml.shock[_local3].sound.@id; SoundManager.Instance.stopSoundFromLibrary(_local2); _local3++; }; } private function __loadImages():void{ DisplayUtils.removeDisplayObject(_shockMap); if (_shockMap){ _shockMap = null; }; var _local1:XML = __getShockXML(_currShockId); _currImageArr = []; var _local2:String = String((_xml.iconPath.@path + _local1.icon.img.@src)); var _local3:String = String((_xml.mapPath.@path + _local1.map.img[0].@src)); var _local4:String = String((_xml.mapPath.@path + _local1.map.img[1].@src)); DataLoader.loadMedia((Develop.Instance.serverRoot + _local2), __imageOnLoad, null, true); DataLoader.loadMedia((Develop.Instance.serverRoot + _local3), __imageOnLoad, null, true); DataLoader.loadMedia((Develop.Instance.serverRoot + _local4), __imageOnLoad, null, true); } private function __getShockXML(_arg1:int):XML{ var _local2:XML; var _local3:int = _xml.shock.length(); var _local4:int; while (_local4 < _local3) { if (_xml.shock[_local4].@id == _arg1){ _local2 = XML(_xml.shock[_local4]); break; }; _local4++; }; return (_local2); } private function __emasculateShock():void{ _shockIsMini = true; if (_shockLayer){ _shockLayer.minimize(); }; _shockMap.next(); } private function __getSoundId(_arg1:int):String{ var _local2:String; var _local3:XML; var _local4:int = _xml.shock.length(); var _local5:int; while (_local5 < _local4) { if (_xml.shock[_local5].@id == _arg1){ _local2 = _xml.shock[_local5].sound.@id; break; }; _local5++; }; return (_local2); } private function __resetShock(_arg1:Function):void{ if (_arg1 == null){ if (_shockLayer != null){ _shockLayer.remove(null); }; if (_shockMap != null){ _shockMap.remove(null); }; _shockIsMini = false; return; }; if (_shockLayer != null){ _shockLayer.remove(null); }; if (_shockMap != null){ _shockMap.remove(_arg1); } else { _arg1(); }; } public function set xml(_arg1:XML):void{ _xml = _arg1; __stopAllEventSounds(); } } }//package eu.ecb.economia.templates.map.shock
Section 136
//ShockLayer (eu.ecb.economia.templates.map.shock.ShockLayer) package eu.ecb.economia.templates.map.shock { import flash.events.*; import flash.display.*; import com.greensock.*; import flash.geom.*; import de.aperto.utils.*; import flash.text.*; import eu.ecb.economia.*; import de.aperto.display.*; import com.greensock.easing.*; import de.aperto.text.*; public class ShockLayer extends Sprite { private var _container:Sprite; private var _groundMaxWidth:int; private var _iconBmp:Bitmap; private var _groundMinHeight:int; private var _groundMaxHeight:int; private var _headlineMini:Sprite; private var _ground:Sprite; private var _headline:Sprite; private var _copyStr:String; private var _width:int;// = 300 private var _textFieldContainer:Sprite; public var onMini:Boolean; private var _icon:SpriteMotion; private var _groundMinWidth:int; private var _copy:Sprite; public var miniX:int; public var miniY:int; public var maxiX:int; public var maxiY:int; private var _borderSpace:int;// = 25 private var _headlineStr:String; public function ShockLayer(_arg1:Bitmap, _arg2:String, _arg3:String){ _iconBmp = _arg1; _headlineStr = _arg2; _copyStr = _arg3; _width = Defaults.MAP_SHOCK_LAYER_WIDTH; __addContainer(); __addTextFields(); __addGround(); DisplayUtils.swapChildToBottom(_ground); _ground.x = (-(_ground.width) * 0.5); _ground.y = (-(_ground.height) * 0.5); _textFieldContainer.x = _ground.x; _textFieldContainer.y = _ground.y; _groundMaxHeight = _ground.height; _groundMinWidth = (_headlineMini.width + _borderSpace); _groundMinHeight = (_headlineMini.height + _borderSpace); addEventListener(Event.ADDED_TO_STAGE, __addedToStage); } private function __addedToStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, __addedToStage); } public function remove(_arg1:Function):void{ TweenMax.to(this, 10, {alpha:0, useFrames:true, overwrite:true, ease:Strong.easeOut, onComplete:_arg1}); } private function __getTextFieldAsBitmap(_arg1:String, _arg2:String, _arg3:Number):Bitmap{ var _local4:TextField = CostumTextfield.getCSSTextfield("left", false, true, true, "normal"); _local4.width = _arg3; _local4.htmlText = CSSMapper.map(_arg1, _arg2); return (new Bitmap(BitmapUtils.getBitmapData(_local4, _local4.width, _local4.height, true, 0, true), "auto", true)); } public function minimize():void{ onMini = true; _headline.visible = (_copy.visible = false); _headlineMini.visible = true; _icon.visible = false; BitmapUtils.addShadow(_ground, 10, 10, 5, 3, 0.4); TweenMax.to(_ground, 15, {width:_groundMinWidth, height:_groundMinHeight, useFrames:true, overwrite:true, ease:Strong.easeOut}); TweenMax.to(this, 15, {x:miniX, y:miniY, useFrames:true, overwrite:true, ease:Strong.easeOut, onComplete:__addIcon}); } private function __addGround():void{ _ground = DrawUtils.getRoundRect((_textFieldContainer.width + (_borderSpace * 2)), (_textFieldContainer.height + (_borderSpace * 2)), 20, 20, 0xFFFFFF); _container.addChild(_ground); _ground.scale9Grid = new Rectangle(15, 15, (_ground.width - 30), (_ground.height - 30)); _ground.alpha = 0.9; BitmapUtils.addShadow(_ground, 15, 15, 10, 3, 0.4); _groundMaxWidth = _ground.width; _groundMaxHeight = _ground.height; } private function __addContainer():void{ _container = new Sprite(); this.addChild(_container); _container.addEventListener(MouseEvent.CLICK, __containerClickHandler); _container.mouseChildren = false; _container.buttonMode = true; } override public function get width():Number{ return ((_width * 0.5)); } private function __containerClickHandler(_arg1:MouseEvent):void{ if (onMini){ maximize(); } else { minimize(); }; } public function maximize():void{ onMini = false; _headline.visible = (_copy.visible = true); _headlineMini.visible = false; if (_icon){ _icon.visible = false; }; TweenMax.to(_ground, 15, {width:_groundMaxWidth, height:_groundMaxHeight, useFrames:true, overwrite:true, ease:Strong.easeOut}); TweenMax.to(this, 10, {x:maxiX, y:maxiY, useFrames:true, overwrite:true, onComplete:__addIcon}); } private function __addTextFields():void{ _textFieldContainer = new Sprite(); _container.addChild(_textFieldContainer); _headline = new Sprite(); _textFieldContainer.addChild(_headline); _headline.addChild(__getTextFieldAsBitmap(_headlineStr, "mapShockLayerHeadline", (_width - (_borderSpace * 2)))); _headline.x = _borderSpace; _headline.y = _borderSpace; _headlineMini = new Sprite(); _textFieldContainer.addChild(_headlineMini); _headlineMini.addChild(__getTextFieldAsBitmap(_headlineStr, "mapShockLayerHeadlineMini", Defaults.MAP_SHOCK_LAYER_MINI_WIDTH)); _headlineMini.x = (_borderSpace * 0.5); _headlineMini.y = (_borderSpace * 0.5); _headlineMini.visible = false; _copy = new Sprite(); _textFieldContainer.addChild(_copy); _copy.addChild(__getTextFieldAsBitmap(_copyStr, "mapShockLayerCopy", (_width - (_borderSpace * 2)))); _copy.x = _borderSpace; _copy.y = ((_headline.y + _headline.height) + 5); } private function __addIcon():void{ DisplayUtils.removeDisplayObject(_icon); if (_icon){ _icon = null; }; _icon = new SpriteMotion(); _container.addChild(_icon); _icon.motionBlur = true; _icon.quality = 3; _icon.alpha = 0; _icon.addChild(_iconBmp); _iconBmp.x = (-(_iconBmp.width) * 0.5); _iconBmp.y = (-(_iconBmp.height) * 0.5); _icon.x = _ground.x; _icon.y = _ground.y; var _local1:Number = (onMini) ? 0.6 : 1; TweenMax.to(_icon, 20, {alpha:1, y:_icon.y, scaleX:_local1, scaleY:_local1, useFrames:true, overwrite:true, ease:Emotion.singleBounceEaseOut}); _icon.y = (_icon.y - 50); } } }//package eu.ecb.economia.templates.map.shock
Section 137
//ShockMap (eu.ecb.economia.templates.map.shock.ShockMap) package eu.ecb.economia.templates.map.shock { import flash.events.*; import flash.display.*; import com.greensock.*; import com.greensock.easing.*; public class ShockMap extends Sprite { private var _container:Sprite; private var _bmp1:Bitmap; private var _bmp2:Bitmap; public function ShockMap(_arg1:Bitmap, _arg2:Bitmap){ _bmp1 = _arg1; _bmp2 = _arg2; addEventListener(Event.ADDED_TO_STAGE, __addedToStage); } public function remove(_arg1:Function):void{ TweenMax.to(this, 10, {alpha:0, useFrames:true, overwrite:true, ease:Strong.easeOut, onComplete:_arg1}); } public function next():void{ TweenMax.to(_bmp1, 10, {alpha:0, useFrames:true, overwrite:true, ease:Strong.easeOut}); TweenMax.to(_bmp2, 10, {alpha:1, useFrames:true, overwrite:true, ease:Strong.easeOut}); } private function __addedToStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, __addedToStage); __addMaps(); } private function __addMaps():void{ _container = new Sprite(); this.addChild(_container); _container.addChild(_bmp1); _container.addChild(_bmp2); _bmp2.alpha = 0; } } }//package eu.ecb.economia.templates.map.shock
Section 138
//Map (eu.ecb.economia.templates.map.Map) package eu.ecb.economia.templates.map { import flash.events.*; import eu.ecb.economia.events.*; import de.aperto.managers.*; import flash.display.*; import com.greensock.*; import eu.ecb.economia.templates.*; import de.aperto.utils.*; import eu.ecb.economia.manager.*; import eu.ecb.economia.events.templates.map.*; import eu.ecb.economia.modules.*; import eu.ecb.economia.*; import com.greensock.easing.*; import eu.ecb.economia.templates.map.shock.*; import eu.ecb.economia.templates.map.landscape.*; import eu.ecb.economia.templates.map.performencelayer.*; public class Map extends Template implements TemplateInterface { private var _performenceLayerOnShow:Boolean; private var _container:Sprite; private var _multiGraphbox:MultiGraphbox; private var _shock:Shock; private var _ground:Sprite; private var _infoLayerOnRemove:Boolean; private var _landscape:Landscape; private var _graphboxOnUpdate:Boolean; private var _pageXML:XML; private var _performenceLayer:PerformenceLayer; private function __infoMessageLayerOnClose():void{ } private function __addMapShock():void{ _shock = new Shock(); _container.addChild(_shock); _shock.addEventListener(MapEvent.ON_NEW_SHOCK, __shockEventHandler); } private function __removePerformenceLayer():void{ _performenceLayerOnShow = false; if (_performenceLayer != null){ _performenceLayer.remove(); }; } override public function onFront():void{ _shock.xml = _pageXML; if (gameDataPool.showMapInfoLayer){ _infoLayerOnRemove = false; }; if (_multiGraphbox == null){ __addMultiGraphbox(); } else { _multiGraphbox.update(__getEconomicData()); }; if (gameDataPool.onPerformenceCheck){ __checkPerformenceLayer(); } else { __removePerformenceLayer(); }; if (((gameDataPool.onPerformenceCheck) && (!(_performenceLayerOnShow)))){ TweenMax.to(_container, 1, {x:_container.x, useFrames:false, onComplete:__addPerformenceLayer}); }; } private function __build():void{ _container = new Sprite(); this.addChild(_container); __addLandscape(); __addMapShock(); __addMultiGraphbox(); } private function __templateOnUpdate():void{ dispatchEvent(new TemplateEvent(TemplateEvent.ON_UPDATE)); } override public function remove():void{ __removeInfoMessageLayer(); TweenMax.to(this, 2, {alpha:0, useFrames:true, onComplete:__onRemove, ease:Strong.easeOut}); } private function __onPerformenceCheck():void{ __removeInfoMessageLayer(); } private function __onNextQuarter():void{ _multiGraphbox.update(__getEconomicData()); __removeInfoMessageLayer(); } private function __removeEvents():void{ gameBrain.removeListener(GameEvent.ON_NEXT_QUARTER, __onNextQuarter); gameBrain.removeListener(GameEvent.SLIDER_UP, __keyInterestRateOnChange); gameBrain.removeListener(GameEvent.SLIDER_ARROW_BUTTON_UP, __keyInterestRateOnChange); } override public function set isActive(_arg1:Boolean):void{ _isActive = _arg1; __removeEvents(); if (_isActive){ _pageXML = XML(gameDataPool.xmlData.map); navigationBar.changeState({slider:true, bluebutton:LabelManager.Instance.getString("mapBigBlueButtonLabel"), navi:__mainNavigationOnShow, subnavi:true, autopilot:false}); if (((((!((params == null))) && (!((params.calculate == undefined))))) && (params.calculate))){ gameBrain.bigBlueButtonOnClickHandler(); }; gameBrain.addListener(GameEvent.ON_NEXT_QUARTER, __onNextQuarter); gameBrain.addListener(GameEvent.SLIDER_UP, __keyInterestRateOnChange); gameBrain.addListener(GameEvent.SLIDER_ARROW_BUTTON_UP, __keyInterestRateOnChange); gameBrain.addListener(GameEvent.TIME_FOR_PERFORMENCE_CHECK, __onPerformenceCheck); }; } private function __addGround():void{ _ground = new Sprite(); this.addChild(_ground); _ground.addChild(new Bitmap(BitmapDataManager.Instance.getBitmapData("map", "DefaultMapBackground"), "auto", true)); } override public function addedToStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, addedToStage); addEventListener(Event.REMOVED_FROM_STAGE, __removedFromStage); __addGround(); __build(); } private function __multiGraphboxEventHandler(_arg1:GraphboxEvent):void{ switch (_arg1.type){ case GraphboxEvent.MULTI_ON_CHANGE: break; case GraphboxEvent.MULTI_ON_EXPAND: break; case GraphboxEvent.MULTI_ON_SHRINK: break; case GraphboxEvent.MULTI_ON_UPDATE: _shock.update(gameDataPool.currentGameShocks); if (gameDataPool.onPerformenceCheck){ __addPerformenceLayer(); } else { __removePerformenceLayer(); }; break; }; } private function __shockEventHandler(_arg1:MapEvent):void{ switch (_arg1.type){ case MapEvent.ON_NEW_SHOCK: if (_multiGraphbox.isOpen){ _multiGraphbox.mini(); }; break; }; } private function __addInfoMessageLayer():void{ gameDataPool.showMapInfoLayer = false; var _local1:int = parseInt(_pageXML.infolayer.@x); var _local2:int = parseInt(_pageXML.infolayer.@y); var _local3:int = _pageXML.infolayer.message.length(); var _local4:Array = []; var _local5:Object = {}; var _local6:int; while (_local6 < _local3) { _local5 = []; _local5.headline = LabelManager.Instance.getString(_pageXML.infolayer.message[_local6].headline.@labelId.toString()); _local5.copy = LabelManager.Instance.getString(_pageXML.infolayer.message[_local6].copy.@labelId.toString()); _local5.x = _pageXML.infolayer.message[_local6].@x; _local5.y = _pageXML.infolayer.message[_local6].@y; _local4[_local6] = _local5; _local6++; }; MessageManager.Instance.add({target:_container, type:"multiMessage", msgDataArr:_local4, x:_local1, y:_local2, closeBtn:true, closeCallback:__infoMessageLayerOnClose}); } private function __onRemove():void{ __removeEvents(); dispatchEvent(new TemplateEvent(TemplateEvent.ON_REMOVE)); } private function __checkPerformenceLayer():void{ if (((gameDataPool.onPerformenceCheck) && (!(_performenceLayerOnShow)))){ if (_performenceLayer != null){ DisplayUtils.removeDisplayObject(_performenceLayer); _performenceLayer = null; }; __addPerformenceLayer(); }; } override public function reset():void{ if (_multiGraphbox != null){ DisplayUtils.removeDisplayObject(_multiGraphbox); _multiGraphbox = null; }; if (_shock){ _shock.update(gameDataPool.currentGameShocks); }; __removePerformenceLayer(); } override public function hide():void{ } private function __removedFromStage(_arg1:Event):void{ if (_container){ DisplayUtils.removeDisplayObject(_container); _container = null; }; __removeEvents(); } private function __addMultiGraphbox():void{ var _local1:Array = __getEconomicData(); if (_local1.length == 0){ return; }; _multiGraphbox = new MultiGraphbox(_local1, gameDataPool); _container.addChild(_multiGraphbox); _multiGraphbox.x = Defaults.GAME_STAGE_BORDERSPACE; _multiGraphbox.y = 38; _multiGraphbox.addEventListener(GraphboxEvent.MULTI_ON_EXPAND, __multiGraphboxEventHandler); _multiGraphbox.addEventListener(GraphboxEvent.MULTI_ON_SHRINK, __multiGraphboxEventHandler); _multiGraphbox.addEventListener(GraphboxEvent.MULTI_ON_CHANGE, __multiGraphboxEventHandler); _multiGraphbox.addEventListener(GraphboxEvent.MULTI_ON_UPDATE, __multiGraphboxEventHandler); if (gameDataPool.multigraphboxIsOpen){ _multiGraphbox.maxi(); }; } private function __performenceLayerOnRemove():void{ DisplayUtils.removeDisplayObject(_performenceLayer); _performenceLayer = null; } private function __keyInterestRateOnChange():void{ _multiGraphbox.updateForeCastData(__getEconomicForecastData()); __removeInfoMessageLayer(); } private function __removeInfoMessageLayer():void{ if (!_infoLayerOnRemove){ _infoLayerOnRemove = true; MessageManager.Instance.remove(_container); }; } override public function update():void{ _pageXML = XML(gameDataPool.xmlData.map); _shock.xml = _pageXML; _shock.update(gameDataPool.currentGameShocks); if (Develop.Instance.debug){ _performenceLayerOnShow = false; }; __checkPerformenceLayer(); __templateOnUpdate(); } private function __addPerformenceLayer():void{ if (_performenceLayerOnShow){ return; }; _performenceLayerOnShow = true; _performenceLayer = new PerformenceLayer(gameDataPool); this.addChild(_performenceLayer); _performenceLayer.addEventListener(Event.CLOSE, __performenceLayerEventHandler); _performenceLayer.x = (Defaults.GAME_STAGE_WIDTH - ((_performenceLayer.width * 0.5) + Defaults.GAME_STAGE_BORDERSPACE)); _performenceLayer.y = (_multiGraphbox.y + (_multiGraphbox.height * 0.5)); if (_multiGraphbox.isOpen){ _multiGraphbox.mini(); }; } private function __mainNavigationOnShow():void{ if (gameDataPool.showMapInfoLayer){ __addInfoMessageLayer(); } else { _infoLayerOnRemove = true; }; } private function __performenceLayerEventHandler(_arg1:Event):void{ switch (_arg1.type){ case Event.CLOSE: __performenceLayerOnRemove(); break; }; } private function __getEconomicForecastData():Array{ var _local1:Array = gameDataPool.getEconomicDataForecast(3).slice(); return ([_local1[(_local1.length - 1)]]); } private function __templateOnShow():void{ dispatchEvent(new TemplateEvent(TemplateEvent.INIT)); } private function __getEconomicData():Array{ var _local1:Array = __getEconomicForecastData(); var _local2:Array = gameDataPool.economicData.slice(); _local2.push(_local1[(_local1.length - 1)]); _local2.reverse(); return (_local2.slice()); } private function __addLandscape():void{ _landscape = new Landscape(game); _container.addChild(_landscape); } } }//package eu.ecb.economia.templates.map
Section 139
//Paper (eu.ecb.economia.templates.press.papers.Paper) package eu.ecb.economia.templates.press.papers { import flash.events.*; import flash.display.*; import com.greensock.*; import de.aperto.utils.*; import flash.net.*; import eu.ecb.economia.events.templates.press.*; import de.aperto.display.*; import com.greensock.easing.*; public class Paper extends SpriteMotion { protected var _container:Sprite; protected var _img:Bitmap; protected var _spaces:Number; protected var _headlineContainer:Sprite; public var onInit:Boolean; protected var _layoutHeight:Number; protected var _copy:Sprite; protected var xml:XML; public var id:int; public var xpos:Number; public var ypos:Number; protected var _layoutWidth:Number; protected var _layoutContainer:Sprite; public function Paper(_arg1:XML){ this.xml = _arg1; this.visible = false; addEventListener(Event.ADDED_TO_STAGE, __addedToStage); } protected function __addEvents():void{ this.addEventListener(MouseEvent.MOUSE_OVER, __mouseEventHandler); this.addEventListener(MouseEvent.MOUSE_OUT, __mouseEventHandler); this.addEventListener(MouseEvent.MOUSE_DOWN, __mouseEventHandler); this.addEventListener(MouseEvent.MOUSE_UP, __mouseEventHandler); this.addEventListener(MouseEvent.CLICK, __mouseEventHandler); this.mouseChildren = false; this.buttonMode = true; } protected function __addedToStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, __addedToStage); var _local2:Loader = new Loader(); _local2.contentLoaderInfo.addEventListener(Event.COMPLETE, __imageLoaderEventHandler); _local2.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, __imageLoaderEventHandler); _local2.load(new URLRequest((Develop.Instance.serverRoot + xml.img.@src))); __addEvents(); } public function remove():void{ this.motionBlur = false; TweenMax.to(this, 30, {y:(this.y + 500), scaleX:0.85, scaleY:0.85, rotation:(50 - (Math.random() * 100)), onComplete:__onRemove, overwrite:true, useFrames:true, ease:Strong.easeIn}); } protected function __builtPaper():void{ } private function __onShow2():void{ this.onInit = true; } public function show():void{ var _local1:int = Math.max(20, Math.min(25, (Math.random() * 100))); TweenMax.to(this, _local1, {y:this.y, scaleX:1, scaleY:1, rotation:this.rotation, onComplete:__onShow1, overwrite:true, useFrames:true, ease:Strong.easeIn}); this.y = -650; this.scaleX = (this.scaleY = 1.5); this.rotation = (50 - (Math.random() * 100)); this.visible = true; this.motionBlur = false; this.quality = 1; this.motionSoftness = 5; } private function __onShow1():void{ this.motionBlur = false; TweenMax.to(this, 35, {y:(this.y + 3), overwrite:true, onComplete:__onShow2, useFrames:true, ease:Strong.easeOut}); } protected function __imageLoaderEventHandler(_arg1:Event):void{ switch (_arg1.type){ case Event.COMPLETE: _img = _arg1.target.loader.content; __builtPaper(); break; case IOErrorEvent.IO_ERROR: _img = __getDummyImage(); __builtPaper(); break; }; } protected function __getDummyImage():Bitmap{ return (new Bitmap(new BitmapData(260, 174, false, 0x666666))); } private function __onRemove():void{ this.visible = false; dispatchEvent(new PaperEvent(PaperEvent.ON_REMOVE)); } protected function __mouseEventHandler(_arg1:MouseEvent):void{ switch (_arg1.type){ case MouseEvent.MOUSE_OVER: dispatchEvent(new PaperEvent(PaperEvent.MOUSE_OVER)); break; case MouseEvent.MOUSE_OUT: dispatchEvent(new PaperEvent(PaperEvent.MOUSE_OUT)); break; case MouseEvent.MOUSE_DOWN: break; case MouseEvent.MOUSE_UP: break; case MouseEvent.CLICK: break; }; } public function showQuick():void{ this.scaleX = (this.scaleY = 1); this.visible = true; this.motionBlur = false; } } }//package eu.ecb.economia.templates.press.papers
Section 140
//Paper1 (eu.ecb.economia.templates.press.papers.Paper1) package eu.ecb.economia.templates.press.papers { import de.aperto.managers.*; import flash.display.*; import de.aperto.utils.*; import flash.text.*; import eu.ecb.economia.events.templates.press.*; import eu.ecb.economia.utils.*; import de.aperto.text.*; public class Paper1 extends Paper { public function Paper1(_arg1:XML){ super(_arg1); _layoutWidth = 330; _layoutHeight = 320; _spaces = 10; } private function __addDummyText():void{ var _local6:Bitmap; var _local1:int = (_layoutHeight - ((_img.y + _img.height) + _spaces)); var _local2:int = (_img.height - 20); var _local3:Sprite = DrawUtils.getRect(65, _local2); _layoutContainer.addChild(_local3); _local3.alpha = 0.7; _local3.x = _headlineContainer.x; _local3.y = (_headlineContainer.y + _headlineContainer.height); var _local4:TextField = CostumTextfield.getCSSTextfield("left", false, true, true, "advanced", true); _local4.width = _local3.width; _local4.htmlText = CSSMapper.map(GameUtils.getDummyString(0), "pressPaper1ImageLayerCopy"); BitmapUtils.addBlur(_local4, 1.2, 1.2, 3); _local6 = new Bitmap(BitmapUtils.getBitmapData(_local4, _local4.textWidth, _local3.height, true, 0, true), "auto", true); _layoutContainer.addChild(_local6); _local6.x = _headlineContainer.x; _local6.y = (_headlineContainer.y + _headlineContainer.height); var _local5:Sprite = new Sprite(); _layoutContainer.addChild(_local5); _local5.x = _img.x; _local5.y = ((_img.y + _img.height) + _spaces); _local4 = CostumTextfield.getCSSTextfield("left", false, true, true, "advanced", true); _local4.width = _img.width; _local4.htmlText = CSSMapper.map(GameUtils.getDummyString(0), "pressPaper1Copy"); BitmapUtils.addBlur(_local4, 1.2, 1.2, 3); _local6 = new Bitmap(BitmapUtils.getBitmapData(_local4, _local4.textWidth, _local1, true, 0, true), "auto", true); _local5.addChild(_local6); } private function __addHeadline():void{ _headlineContainer = new Sprite(); _layoutContainer.addChild(_headlineContainer); var _local1:Sprite = DrawUtils.getGradientRect(300, 50, 12739171, 9460312); _headlineContainer.addChild(_local1); var _local2:TextField = CostumTextfield.getCSSTextfield("left", false, true, true); _local2.width = 270; _local2.htmlText = CSSMapper.map(String(xml.headline), "pressPaper1Headline"); var _local3:Bitmap = new Bitmap(BitmapUtils.getBitmapData(_local2, _local2.textWidth, _local2.height, true, 0, true), "auto", true); _headlineContainer.addChild(_local3); _local3.x = 5; _local1.width = (_local3.width + 10); _local1.height = (_local3.height + 10); var _local4:Number = (_headlineContainer.width / _headlineContainer.height); _headlineContainer.width = _layoutWidth; _headlineContainer.height = (_layoutWidth / _local4); } override public function get width():Number{ return (340); } override public function get height():Number{ return (380); } private function __addPaper():void{ var _local1:MovieClip = (new ((LibraryManager.Instance.getClass("NewsPaper") as Class)) as MovieClip); _container.addChild(_local1); _local1.gotoAndStop(1); } override protected function __builtPaper():void{ _copy = new Sprite(); this.addChild(_copy); _container = new Sprite(); this.addChild(_container); __addPaper(); _layoutContainer = new Sprite(); _container.addChild(_layoutContainer); _layoutContainer.x = 25; _layoutContainer.y = 45; __addHeadline(); _layoutContainer.addChild(_img); DisplayUtils.swapChildToTop(_headlineContainer); var _local1:Number = _layoutWidth; DisplayUtils.scaleProportional(_img, _local1); _img.y = ((_headlineContainer.y + _headlineContainer.height) - 20); __addDummyText(); var _local2:Sprite = DrawUtils.getRect((_container.width - 45), (_container.height - 40)); _container.addChild(_local2); _local2.x = ((_container.width - _local2.width) - 17); _local2.y = ((_container.height - _local2.height) - 12); DisplayUtils.swapChildToBottom(_local2); BitmapUtils.addShadow(_local2, 7, 7, 5, 3, 0.5, 90); var _local3:Bitmap = new Bitmap(BitmapUtils.getBitmapData(_container, (_container.width + 10), (_container.height + 10), true, 0, true), "auto", true); _copy.addChild(_local3); _local3.x = (-(_local3.width) * 0.5); _local3.y = (-(_local3.height) * 0.5); DisplayUtils.removeDisplayObject(_container); _container = null; dispatchEvent(new PaperEvent(PaperEvent.INIT)); } } }//package eu.ecb.economia.templates.press.papers
Section 141
//Paper2 (eu.ecb.economia.templates.press.papers.Paper2) package eu.ecb.economia.templates.press.papers { import de.aperto.managers.*; import flash.display.*; import de.aperto.utils.*; import flash.text.*; import eu.ecb.economia.events.templates.press.*; import eu.ecb.economia.utils.*; import de.aperto.text.*; public class Paper2 extends Paper { private var _map:Bitmap; public function Paper2(_arg1:XML){ super(_arg1); _layoutWidth = 290; _layoutHeight = 345; _spaces = 10; } private function __addMap():void{ _map = new Bitmap((new (LibraryManager.Instance.getClass("PaperMap") as Class)(0, 0) as BitmapData), "auto", true); _layoutContainer.addChild(_map); } private function __addDummyText():void{ var _local1:int = (_layoutHeight - ((_img.y + _img.height) + _spaces)); var _local2:Sprite = new Sprite(); _layoutContainer.addChild(_local2); _local2.x = _img.x; _local2.y = ((_img.y + _img.height) + _spaces); var _local3:TextField = CostumTextfield.getCSSTextfield("left", false, true, true, "advanced", true); _local3.width = 90; _local3.htmlText = CSSMapper.map(GameUtils.getDummyString(0), "pressPaper2Copy"); BitmapUtils.addBlur(_local3, 1.2, 1.2, 3); var _local4:Bitmap = new Bitmap(BitmapUtils.getBitmapData(_local3, _local3.textWidth, _local1, true, 0, true), "auto", true); _local2.addChild(_local4); _local3 = CostumTextfield.getCSSTextfield("left", false, true, true, "advanced", true); _local3.width = 90; _local3.htmlText = CSSMapper.map(GameUtils.getDummyString(1), "pressPaper2Copy"); BitmapUtils.addBlur(_local3, 1.2, 1.2, 3); _local4 = new Bitmap(BitmapUtils.getBitmapData(_local3, _local3.textWidth, _local1, true, 0, true), "auto", true); _local2.addChild(_local4); _local4.x = 90; _local3 = CostumTextfield.getCSSTextfield("left", false, true, true, "advanced", true); _local3.width = 100; _local3.htmlText = CSSMapper.map(GameUtils.getDummyString(2), "pressPaper2Copy"); BitmapUtils.addBlur(_local3, 1.2, 1.2, 3); _local4 = new Bitmap(BitmapUtils.getBitmapData(_local3, _local3.textWidth, (_local1 + 10), true, 0, true), "auto", true); _local2.addChild(_local4); _local4.y = -10; _local4.x = 190; } private function __addHeadline():void{ _headlineContainer = new Sprite(); _layoutContainer.addChild(_headlineContainer); var _local1:Sprite = DrawUtils.getRect(100, 50, 4084117); _headlineContainer.addChild(_local1); var _local2:TextField = CostumTextfield.getCSSTextfield("left", false, true, true); _local2.width = 270; _local2.htmlText = CSSMapper.map(String(xml.headline), "pressPaper2Headline"); var _local3:Bitmap = new Bitmap(BitmapUtils.getBitmapData(_local2, _local2.textWidth, _local2.height, true, 0, true), "auto", true); _headlineContainer.addChild(_local3); _local3.x = 5; _local1.width = (_local3.width + 10); _local1.height = (_local3.height + 10); var _local4:Number = (_headlineContainer.width / _headlineContainer.height); _headlineContainer.width = _layoutWidth; _headlineContainer.height = (_layoutWidth / _local4); } override public function get width():Number{ return (335); } override public function get height():Number{ return (380); } private function __addPaper():void{ var _local1:MovieClip = (new ((LibraryManager.Instance.getClass("NewsPaper") as Class)) as MovieClip); _container.addChild(_local1); _local1.gotoAndStop(2); } override protected function __builtPaper():void{ _copy = new Sprite(); this.addChild(_copy); _container = new Sprite(); this.addChild(_container); __addPaper(); _layoutContainer = new Sprite(); _container.addChild(_layoutContainer); _layoutContainer.x = 35; _layoutContainer.y = 45; __addHeadline(); _layoutContainer.addChild(_img); __addMap(); var _local1:Number = (_layoutWidth - (_map.width + _spaces)); DisplayUtils.scaleProportional(_img, _local1); _img.y = ((_headlineContainer.y + _headlineContainer.height) + _spaces); _map.x = ((_img.x + _img.width) + _spaces); _map.y = ((_headlineContainer.y + _headlineContainer.height) + _spaces); __addDummyText(); var _local2:Sprite = DrawUtils.getRect((_container.width - 30), (_container.height - 30)); _container.addChild(_local2); _local2.x = ((_container.width - _local2.width) - 12); _local2.y = ((_container.height - _local2.height) - 9); DisplayUtils.swapChildToBottom(_local2); BitmapUtils.addShadow(_local2, 7, 7, 5, 3, 0.5, 90); var _local3:Bitmap = new Bitmap(BitmapUtils.getBitmapData(_container, (_container.width + 10), (_container.height + 10), true, 0, true), "auto", true); _copy.addChild(_local3); _local3.x = (-(_local3.width) * 0.5); _local3.y = (-(_local3.height) * 0.5); DisplayUtils.removeDisplayObject(_container); _container = null; dispatchEvent(new PaperEvent(PaperEvent.INIT)); } } }//package eu.ecb.economia.templates.press.papers
Section 142
//Paper3 (eu.ecb.economia.templates.press.papers.Paper3) package eu.ecb.economia.templates.press.papers { import de.aperto.managers.*; import flash.display.*; import de.aperto.utils.*; import flash.text.*; import eu.ecb.economia.events.templates.press.*; import eu.ecb.economia.utils.*; import de.aperto.text.*; public class Paper3 extends Paper { public function Paper3(_arg1:XML){ super(_arg1); _layoutWidth = 290; _layoutHeight = 345; _spaces = 10; } private function __addDummyText():void{ var _local1:int = (_layoutHeight - ((_img.y + _img.height) + _spaces)); var _local2:Sprite = new Sprite(); _layoutContainer.addChild(_local2); _local2.x = _img.x; _local2.y = ((_img.y + _img.height) + _spaces); var _local3:TextField = CostumTextfield.getCSSTextfield("left", false, true, true, "advanced", true); _local3.width = 90; _local3.htmlText = CSSMapper.map(GameUtils.getDummyString(0), "pressPaper3Copy"); BitmapUtils.addBlur(_local3, 1.2, 1.2, 3); var _local4:Bitmap = new Bitmap(BitmapUtils.getBitmapData(_local3, _local3.textWidth, _local1, true, 0, true), "auto", true); _local2.addChild(_local4); _local3 = CostumTextfield.getCSSTextfield("left", false, true, true, "advanced", true); _local3.width = 90; _local3.htmlText = CSSMapper.map(GameUtils.getDummyString(1), "pressPaper3Copy"); BitmapUtils.addBlur(_local3, 1.2, 1.2, 3); _local4 = new Bitmap(BitmapUtils.getBitmapData(_local3, _local3.textWidth, _local1, true, 0, true), "auto", true); _local2.addChild(_local4); _local4.x = 90; _local3 = CostumTextfield.getCSSTextfield("left", false, true, true, "advanced", true); _local3.width = 100; _local3.htmlText = CSSMapper.map(GameUtils.getDummyString(2), "pressPaper2Copy"); BitmapUtils.addBlur(_local3, 1.2, 1.2, 3); _local4 = new Bitmap(BitmapUtils.getBitmapData(_local3, _local3.textWidth, (_layoutHeight - (_headlineContainer.y + _headlineContainer.height)), true, 0, true), "auto", true); _layoutContainer.addChild(_local4); _local4.y = _img.y; _local4.x = 190; } private function __addHeadline():void{ _headlineContainer = new Sprite(); _layoutContainer.addChild(_headlineContainer); var _local1:Sprite = DrawUtils.getRect(100, 50, 4084117); _headlineContainer.addChild(_local1); _local1.alpha = 0; var _local2:TextField = CostumTextfield.getCSSTextfield("left", false, true, true); _local2.width = 270; _local2.htmlText = CSSMapper.map(String(xml.headline), "pressPaper3Headline"); var _local3:Bitmap = new Bitmap(BitmapUtils.getBitmapData(_local2, _local2.textWidth, _local2.height, true, 0, true), "auto", true); _headlineContainer.addChild(_local3); _local3.x = 0; _local1.width = (_local3.width + 10); _local1.height = (_local3.height + 10); var _local4:Number = (_headlineContainer.width / _headlineContainer.height); _headlineContainer.width = _layoutWidth; _headlineContainer.height = (_layoutWidth / _local4); } override public function get width():Number{ return (335); } override public function get height():Number{ return (380); } private function __addPaper():void{ var _local1:MovieClip = (new ((LibraryManager.Instance.getClass("NewsPaper") as Class)) as MovieClip); _container.addChild(_local1); _local1.gotoAndStop(2); } override protected function __builtPaper():void{ _copy = new Sprite(); this.addChild(_copy); _container = new Sprite(); this.addChild(_container); __addPaper(); _layoutContainer = new Sprite(); _container.addChild(_layoutContainer); _layoutContainer.x = 35; _layoutContainer.y = 45; __addHeadline(); _layoutContainer.addChild(_img); DisplayUtils.scaleProportional(_img, 175); _img.y = (_headlineContainer.y + _headlineContainer.height); __addDummyText(); var _local1:Sprite = DrawUtils.getRect((_container.width - 30), (_container.height - 30)); _container.addChild(_local1); _local1.x = ((_container.width - _local1.width) - 12); _local1.y = ((_container.height - _local1.height) - 9); DisplayUtils.swapChildToBottom(_local1); BitmapUtils.addShadow(_local1, 7, 7, 5, 3, 0.5, 90); var _local2:Bitmap = new Bitmap(BitmapUtils.getBitmapData(_container, (_container.width + 10), (_container.height + 10), true, 0, true), "auto", true); _copy.addChild(_local2); _local2.x = (-(_local2.width) * 0.5); _local2.y = (-(_local2.height) * 0.5); DisplayUtils.removeDisplayObject(_container); _container = null; dispatchEvent(new PaperEvent(PaperEvent.INIT)); } } }//package eu.ecb.economia.templates.press.papers
Section 143
//Press (eu.ecb.economia.templates.press.Press) package eu.ecb.economia.templates.press { import flash.events.*; import eu.ecb.economia.events.*; import de.aperto.managers.*; import flash.display.*; import com.greensock.*; import eu.ecb.economia.templates.*; import de.aperto.utils.*; import flash.text.*; import eu.ecb.economia.templates.press.papers.*; import eu.ecb.economia.events.templates.press.*; import nl.demonsters.debugger.*; import eu.ecb.economia.*; import com.greensock.easing.*; import de.aperto.text.*; public class Press extends Template implements TemplateInterface { private var _container:Sprite; private var removeCnt:int; private var _needsUpdate:Boolean; private var _paperArr:Array; private var _paperCont:Sprite; private var _tfdHeadline:TextField; private var _paperContMask:Sprite; private var _ground:Sprite; private var _pressDataArr:Array; public function Press(){ _paperArr = []; super(); } private function __addPapers():void{ var paper:Paper; var paperXML:XML; var id:int; var type:int; var len:int = _pressDataArr.length; var cont:Sprite = new Sprite(); _paperCont.addChild(cont); cont.x = ((len < 4)) ? 180 : 180; cont.y = 230; cont.alpha = 0; _paperArr = []; var i:int; for (;i < len;(i = (i + 1))) { paperXML = XML(_pressDataArr[i]); id = parseInt(paperXML.@id); type = parseInt(paperXML.@type); //unresolved jump var _slot1 = e; MonsterDebugger.trace(this, _slot1); continue; switch (type){ case 1: paper = new Paper1(paperXML); break; case 2: paper = new Paper2(paperXML); break; case 3: paper = new Paper3(paperXML); break; }; if (paper){ __addPaperEvent(paper); cont.addChild(paper); _paperArr.push(paper); }; }; if (_paperArr.length > 0){ __sortPapersOnStage(cont); } else { __addHeadline(); }; } private function __addPaperEvent(_arg1:Paper):void{ _arg1.addEventListener(PaperEvent.ON_REMOVE, __paperEventHandler); _arg1.addEventListener(PaperEvent.INIT, __paperEventHandler); _arg1.addEventListener(PaperEvent.MOUSE_OVER, __paperEventHandler); _arg1.addEventListener(PaperEvent.MOUSE_OUT, __paperEventHandler); } private function __bluebuttonCallback():void{ templateController.addTemplate(templateController.lastTemplateId); } override public function remove():void{ TweenMax.to(this, 10, {alpha:0, useFrames:true, onComplete:__onRemove, ease:Strong.easeOut}); } private function __build():void{ _pressDataArr = gameDataPool.pressDataArr.slice(); _container = new Sprite(); this.addChild(_container); _paperCont = new Sprite(); _container.addChild(_paperCont); _paperContMask = DrawUtils.getRect(Defaults.GAME_STAGE_WIDTH, Defaults.GAME_STAGE_HEIGHT); _container.addChild(_paperContMask); _paperCont.mask = _paperContMask; __addPapers(); } private function __removeHeadline():void{ if (_tfdHeadline == null){ return; }; DisplayUtils.removeDisplayObject(_tfdHeadline); _tfdHeadline = null; } override public function onFront():void{ if (_needsUpdate){ __updatePapers(); }; } private function __sortPapersOnStage(_arg1:Sprite):void{ var _local2:Paper; var _local3:Number = 0; var _local4:Number = 0; var _local5:Number = (Math.random() * 5); var _local6:Number = 0; var _local7:int = _paperArr.length; var _local8 = 3; var _local9 = -20; var _local10 = -150; var _local11:int; while (_local11 < _local7) { _local2 = (_paperArr[_local11] as Paper); _local2.x = ((_local11 % _local8) * (_local2.width + _local9)); _local2.y = (Math.floor(((_local11 % _local7) / _local8)) * (_local2.height + _local10)); _local2.id = _local11; _local2.xpos = _local2.x; _local2.ypos = _local2.y; _local3 = (_local3 + _local2.width); _local2.rotation = _local5; _local5 = ((Math.random() * 5) - _local5); _local11++; }; _local6 = _local3; SoundManager.Instance.playSoundFromLibrary("PaperFallin"); TweenMax.to(_arg1, 25, {alpha:1, useFrames:true, ease:Strong.easeOut}); } private function __removedFromStage(_arg1:Event):void{ if (_container){ DisplayUtils.removeDisplayObject(_container); _container = null; }; __removeEvents(); } private function __paperEventHandler(_arg1:PaperEvent):void{ var _local2:Paper = (_arg1.target as Paper); switch (_arg1.type){ case PaperEvent.INIT: _local2.show(); break; case PaperEvent.ON_REMOVE: DisplayUtils.removeDisplayObject(_local2); _local2 = null; break; case PaperEvent.MOUSE_OVER: __setPaperFree(_local2.id); break; case PaperEvent.MOUSE_OUT: __setPapersToOriginalPosition(); break; }; } private function __setPapersToOriginalPosition():void{ var _local1:Paper; var _local2 = 30; var _local3:Function = Emotion.singleBounceEaseOut; var _local4:int; while (_local4 < _paperArr.length) { _local1 = (_paperArr[_local4] as Paper); if (_local1.onInit){ TweenMax.to(_local1, _local2, {x:_local1.xpos, y:_local1.ypos, useFrames:true, overwrite:true, ease:_local3}); }; _local4++; }; } override public function set isActive(_arg1:Boolean):void{ _isActive = _arg1; if (_isActive){ navigationBar.changeState({slider:false, bluebutton:LabelManager.Instance.getString("pressBigBlueButtonLabel"), bluebuttonCallback:__bluebuttonCallback, navi:true, subnavi:true, autopilot:false}); } else { __removeHeadline(); }; } override public function update():void{ __updatePapers(); __templateOnUpdate(); } override public function addedToStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, addedToStage); addEventListener(Event.ADDED_TO_STAGE, __removedFromStage); __addGround(); __build(); gameBrain.addListener(GameEvent.ON_NEXT_QUARTER, __gameOnNextQuarter); } override public function hide():void{ } private function __addGround():void{ _ground = DrawUtils.getGradientRect(Defaults.GAME_STAGE_WIDTH, Defaults.GAME_STAGE_HEIGHT, 0xFFFFFF, 9808298); this.addChild(_ground); } private function __onRemove():void{ __removeEvents(); dispatchEvent(new TemplateEvent(TemplateEvent.ON_REMOVE)); } private function __removeEvents():void{ gameBrain.removeListener(GameEvent.ON_NEXT_QUARTER, __gameOnNextQuarter); } private function __updatePapers():void{ _pressDataArr = gameDataPool.pressDataArr.slice(); __removeHeadline(); __removePapers(); __addPapers(); _needsUpdate = false; } override public function reset():void{ _needsUpdate = true; __removePapers(); } private function __removePapers():void{ var _local2:Paper; if ((((_paperArr == null)) || ((_paperArr.length == 0)))){ return; }; var _local1:Array = _paperArr.slice(); var _local3:int; while (_local3 < _local1.length) { _local2 = (_paperArr[_local3] as Paper); _local2.remove(); _local3++; }; } private function __getRandomNum():int{ return (int(((30 - (Math.random() * 100)) + 0.5))); } private function __addHeadline():void{ var _local1:String = LabelManager.Instance.getString("pressNoPapersHeadline"); _tfdHeadline = CostumTextfield.getCSSTextfield("left", false, false, true); this.addChild(_tfdHeadline); _tfdHeadline.htmlText = CSSMapper.map(_local1, "pressNoPapersHeadline"); _tfdHeadline.x = ((Defaults.GAME_STAGE_WIDTH * 0.5) - (_tfdHeadline.width * 0.5)); _tfdHeadline.y = (((Defaults.GAME_STAGE_HEIGHT * 0.5) - (_tfdHeadline.height * 0.5)) - _tfdHeadline.height); } private function __setPaperFree(_arg1:int):void{ var _local5:Paper; var _local6:Paper; var _local2 = 30; var _local3:Function = Emotion.singleBounceEaseOut; var _local4:Paper = (_paperArr[_arg1] as Paper); if (((!((_local4 == null))) && (_local4.onInit))){ TweenMax.to(_local4, _local2, {x:_local4.xpos, y:_local4.ypos, useFrames:true, ease:Strong.easeOut}); }; if (((!(((_paperArr[(_arg1 - 1)] as Paper) == null))) && ((_arg1 < 3)))){ _local5 = (_paperArr[(_arg1 - 1)] as Paper); if (_local5.onInit){ TweenMax.to(_local5, _local2, {x:(_local5.xpos - 40), y:(_local5.ypos + 10), useFrames:true, ease:_local3}); }; }; if (_arg1 == 2){ return; }; if ((_paperArr[(_arg1 + 1)] as Paper) != null){ _local6 = (_paperArr[(_arg1 + 1)] as Paper); if (_local6.onInit){ TweenMax.to(_local6, _local2, {x:(_local6.xpos + 40), y:(_local6.ypos + 10), useFrames:true, ease:_local3}); }; }; } private function __gameOnNextQuarter():void{ _needsUpdate = true; } private function __templateOnUpdate():void{ dispatchEvent(new TemplateEvent(TemplateEvent.ON_UPDATE)); } private function __templateOnShow():void{ dispatchEvent(new TemplateEvent(TemplateEvent.INIT)); } } }//package eu.ecb.economia.templates.press
Section 144
//Share (eu.ecb.economia.templates.share.Share) package eu.ecb.economia.templates.share { import flash.events.*; import eu.ecb.economia.events.*; import de.aperto.managers.*; import flash.display.*; import com.greensock.*; import eu.ecb.economia.templates.*; import de.aperto.utils.*; import flash.text.*; import com.adobe.serialization.json.*; import nl.demonsters.debugger.*; import eu.ecb.economia.*; import com.greensock.easing.*; import eu.ecb.economia.net.*; import eu.ecb.economia.ui.buttons.iconbutton.*; import de.aperto.text.*; public class Share extends Template implements TemplateInterface { private var _formContainerContainer:Sprite; private var _formContainerContainerMask:Sprite; private var _backgroundMapImagePath:String; private var _peopleImagePath:String; private var _ground:Sprite; private var _mapBmp:Bitmap; private var _imagesContainer:Sprite; private var _sendToFriendBtn:IconButton; private var _onLoadCnt:int; private var _pageXML:XML; private var _shareFormular:ShareFormular; private var _tfd:TextField; private var _facebookBtn:IconButton; private var _peopleBmp:Bitmap; private function __addButtons():void{ var _local1:BitmapData = (new (LibraryManager.Instance.getClass("IconFacebook") as Class)(0, 0) as BitmapData); _facebookBtn = new IconButton(LabelManager.Instance.getString("facebookButton"), _local1); this.addChild(_facebookBtn); _facebookBtn.addEventListener(ButtonEvent.CLICK, __facebookBtnClickHandler); _facebookBtn.x = _tfd.x; _facebookBtn.show(); _local1 = (new (LibraryManager.Instance.getClass("IconMail") as Class)(0, 0) as BitmapData); _sendToFriendBtn = new IconButton(LabelManager.Instance.getString("sendToFriendButton"), _local1); this.addChild(_sendToFriendBtn); _sendToFriendBtn.addEventListener(ButtonEvent.CLICK, __sendToFriendBtnClickHandler); _sendToFriendBtn.x = ((_facebookBtn.x + _facebookBtn.width) + 20); _sendToFriendBtn.show(); var _local2:Number = (Defaults.GAME_STAGE_HEIGHT - 150); TweenMax.to(_facebookBtn, 25, {y:_local2, alpha:1, useFrames:true, ease:Emotion.strongInSoftOut}); TweenMax.to(_sendToFriendBtn, 35, {y:_local2, alpha:1, useFrames:true, ease:Emotion.strongInSoftOut}); _facebookBtn.y = (_local2 + 10); _sendToFriendBtn.y = (_local2 + 10); _facebookBtn.alpha = (_sendToFriendBtn.alpha = 0); } private function __templateOnUpdate():void{ dispatchEvent(new TemplateEvent(TemplateEvent.ON_UPDATE)); } override public function remove():void{ TweenMax.to(this, 5, {alpha:0, useFrames:true, onComplete:__onRemove, ease:Strong.easeOut}); } private function __addTextField():void{ var _local1:String = LabelManager.Instance.getString("shareHeadlineNormal"); _tfd = CostumTextfield.getCSSTextfield("left", false, false, true); this.addChild(_tfd); __updateTextField(_local1); _tfd.x = (Defaults.GAME_STAGE_BORDERSPACE * 2); _tfd.y = (Defaults.GAME_STAGE_BORDERSPACE * 2); } private function __hideForm():void{ _shareFormular.hide(); var _local1:Number = (Defaults.GAME_STAGE_HEIGHT - 150); TweenMax.to(_facebookBtn, 25, {y:_local1, useFrames:true, ease:Emotion.singleBounceEaseOut}); TweenMax.to(_sendToFriendBtn, 35, {y:_local1, useFrames:true, ease:Emotion.singleBounceEaseOut}); navigationBar.changeState({slider:false, bluebutton:LabelManager.Instance.getString("shareBigBlueButtonLabel"), bluebuttonCallback:__bluebuttonCallback, navi:false, subnavi:true}); } private function __sendMailButtonClickHandler(_arg1:ButtonEvent):void{ _shareFormular.send(); } private function __removeEvents():void{ } private function __facebookBtnClickHandler(_arg1:ButtonEvent):void{ var _local4:String; var _local5:String; var _local2:String = _pageXML.facebook.url.@src; var _local3:int = _pageXML.facebook.params.param.length(); _local2 = (_local2 + ((_local3 > 0)) ? encodeURI("?") : ""); var _local6:int; while (_local6 < _local3) { _local4 = _pageXML.facebook.params.param[_local6].@key; _local5 = _pageXML.facebook.params.param[_local6].@value; _local2 = (_local2 + ((encodeURI(_local4) + "=") + encodeURI(_local5))); _local2 = (_local2 + ((_local6 < (_local3 - 1))) ? encodeURI("&") : ""); _local6++; }; MonsterDebugger.trace(this, "SHARE URL -->"); MonsterDebugger.trace(this, _local2); RequestUtils.newPopup(_local2, parseInt(_pageXML.facebook.popup.@width), parseInt(_pageXML.facebook.popup.@height)); } private function __addImages():void{ _imagesContainer = new Sprite(); this.addChild(_imagesContainer); _backgroundMapImagePath = String((Develop.Instance.serverRoot + _pageXML.backgroundMapImage.@src)); DataLoader.loadMedia(_backgroundMapImagePath, __imageOnLoad, null, true); _peopleImagePath = String((Develop.Instance.serverRoot + _pageXML.peopleImage.@src)); DataLoader.loadMedia(_peopleImagePath, __imageOnLoad, null, true); } override public function addedToStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, addedToStage); _pageXML = XML(gameDataPool.xmlData.share); navigationBar.changeState({slider:false, bluebutton:LabelManager.Instance.getString("shareBigBlueButtonLabel"), bluebuttonCallback:__bluebuttonCallback, navi:false, subnavi:true, autopilot:false}); __addGround(); __addImages(); } private function __updateTextField(_arg1:String):void{ _tfd.htmlText = CSSMapper.map(_arg1, "highscoreShareHeadline"); } private function __addFormular():void{ _shareFormular = new ShareFormular(XML(_pageXML.formular), __shareFormularEventHandler, gameDataPool); this.addChild(_shareFormular); _shareFormular.addEventListener(Event.COMPLETE, __shareFormularEventHandler); _shareFormular.addEventListener(IOErrorEvent.IO_ERROR, __shareFormularEventHandler); _shareFormular.x = _tfd.x; _shareFormular.y = ((_tfd.y + _tfd.height) + 20); } private function __addGround():void{ var _local1:Number = (Defaults.GAME_STAGE_WIDTH - (Defaults.GAME_STAGE_BORDERSPACE * 2)); var _local2:Number = Defaults.GAME_STAGE_HEIGHT; _ground = DrawUtils.getRoundRect(_local1, _local2, 20, 20, 0xFFFFFF); this.addChild(_ground); _ground.x = Defaults.GAME_STAGE_BORDERSPACE; _ground.y = Defaults.GAME_STAGE_BORDERSPACE; BitmapUtils.addShadow(_ground, 30, 30, 25, 3, 0.4); } private function __onRemove():void{ __removeEvents(); dispatchEvent(new TemplateEvent(TemplateEvent.ON_REMOVE)); } private function __imageOnLoad(_arg1:Bitmap, _arg2:String):void{ _onLoadCnt++; switch (_arg2){ case _backgroundMapImagePath: _mapBmp = _arg1; _imagesContainer.addChild(_mapBmp); _mapBmp.x = ((_ground.x + _ground.width) - _mapBmp.width); _mapBmp.y = (((_ground.y + _ground.height) * 0.5) - (_mapBmp.height * 0.5)); DisplayUtils.swapChildToBottom(_mapBmp); break; case _peopleImagePath: _peopleBmp = _arg1; _imagesContainer.addChild(_peopleBmp); _peopleBmp.x = ((_ground.x + _ground.width) - (_peopleBmp.width + 50)); _peopleBmp.y = (Defaults.GAME_STAGE_HEIGHT - _peopleBmp.height); DisplayUtils.swapChildToTop(_peopleBmp); break; }; if (_onLoadCnt == 2){ __imagesOnLoad(); }; } private function __showForm():void{ _shareFormular.show(); var _local1:Number = Defaults.GAME_STAGE_HEIGHT; TweenMax.to(_facebookBtn, 25, {y:_local1, useFrames:true, ease:Strong.easeInOut}); TweenMax.to(_sendToFriendBtn, 35, {y:_local1, useFrames:true, ease:Strong.easeInOut}); navigationBar.changeState({slider:false, bluebutton:LabelManager.Instance.getString("shareBigBlueButtonLabel"), bluebuttonCallback:__bluebuttonCallback, navi:false, sendMailButton:__sendMailButtonClickHandler, subnavi:true}); } private function __bluebuttonCallback():void{ templateController.addTemplate(templateController.lastTemplateId); } override public function update():void{ __templateOnUpdate(); } override public function hide():void{ } private function __shareFormularEventHandler(_arg1):void{ var json:Object; var msgLabelId:String; var data = _arg1; MonsterDebugger.trace(this, "__shareFormularEventHandler -->"); MonsterDebugger.trace(this, data); MonsterDebugger.trace(this, "<--"); try { json = JSON.decode(data); } catch(e:Error) { msgLabelId = "shareHeadlineOnError"; }; if (((!((json == null))) && ((json.status == 1)))){ msgLabelId = "shareHeadlineOnSend"; } else { msgLabelId = "shareHeadlineOnError"; }; __updateTextField(LabelManager.Instance.getString(msgLabelId)); __hideForm(); } private function __imagesOnLoad():void{ __addTextField(); __addFormular(); __addButtons(); } private function __sendToFriendBtnClickHandler(_arg1:ButtonEvent):void{ __showForm(); } private function __templateOnShow():void{ dispatchEvent(new TemplateEvent(TemplateEvent.INIT)); } override public function show():void{ this.alpha = 1; } } }//package eu.ecb.economia.templates.share
Section 145
//ShareFormular (eu.ecb.economia.templates.share.ShareFormular) package eu.ecb.economia.templates.share { import flash.events.*; import de.aperto.managers.*; import flash.display.*; import com.greensock.*; import de.aperto.utils.*; import flash.text.*; import eu.ecb.economia.data.*; import nl.demonsters.debugger.*; import com.greensock.easing.*; import de.aperto.text.*; import eu.ecb.economia.ui.buttons.checkbox.*; import eu.ecb.economia.net.externalcall.*; import com.adobe.crypto.*; public class ShareFormular extends Sprite { private var _container:Sprite; private var _mask:Sprite; private var _inputData:Array; private var _xml:XML; private var _checkbox:Checkbox; private var _onDataCallback:Function; private var gameDataPool:GameDataPool; public function ShareFormular(_arg1:XML, _arg2:Function, _arg3:GameDataPool){ _xml = _arg1; _onDataCallback = _arg2; this.gameDataPool = _arg3; this.visible = false; addEventListener(Event.ADDED_TO_STAGE, __addedToStage); } private function __addedToStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, __addedToStage); __addFormular(); } public function send():void{ if (!__validateForm()){ return; }; MonsterDebugger.trace(this, "---- START TOO SEND MAIL ----"); var _local1:String = gameDataPool.rhinozeros; var _local2:String = _xml.sendUrl.@src; var _local3:Array = _inputData.slice(); var _local4:String = _local1; _local3.push({key:_xml.subject.@key.toString(), value:LabelManager.Instance.getString(_xml.subject.@labelId)}); _local3.push({key:_xml.mailHeader.@key.toString(), value:LabelManager.Instance.getString(_xml.mailHeader.@labelId)}); _local3.push({key:_xml.mailContent.@key.toString(), value:LabelManager.Instance.getString(_xml.mailContent.@labelId)}); _local3.push({key:_xml.mailfooterRow1.@key.toString(), value:LabelManager.Instance.getString(_xml.mailfooterRow1.@labelId)}); _local3.push({key:_xml.mailfooterRow2.@key.toString(), value:LabelManager.Instance.getString(_xml.mailfooterRow2.@labelId)}); _local3.push({key:_xml.gameUrl.@key.toString(), value:_xml.gameUrl.@src}); _local3.push({key:"language", value:Develop.Instance.language}); var _local5:int; while (_local5 < _local3.length) { _local4 = (_local4 + (("" + _local3[_local5].value) + "").toString()); _local5++; }; MonsterDebugger.trace(this, ("md5 : " + _local4)); _local4 = MD5.hash(_local4); MonsterDebugger.trace(this, ("md5.hash : " + _local4)); _local3.push({key:"md5", value:_local4}); MonsterDebugger.trace(this, "---- SEND MAIL"); MonsterDebugger.trace(this, ("SALT: " + _local1)); ExternalCall.sendMail(_onDataCallback, _local3, _local2); } public function hide():void{ TweenMax.to(_mask, 35, {scaleY:0, useFrames:true, ease:Strong.easeInOut}); } private function __addInputs():void{ var _local1:Sprite; var _local2:Sprite; var _local3:CostumInputTextfield; var _local4:TextField; var _local9:String; var _local10:String; var _local11:String; var _local12:Boolean; _inputData = []; var _local5:Number = 400; var _local6:Number = 0; var _local7 = 20; var _local8:int = _xml.input.length(); var _local13:int; while (_local13 < _local8) { _local11 = _xml.input[_local13].@key; _local12 = ((_xml.input[_local13].@duty == "1")) ? true : false; _local9 = (LabelManager.Instance.getString(_xml.input[_local13].@labelId) + String((_local12) ? "*" : "")); _local10 = LabelManager.Instance.getString(_xml.input[_local13].@descriptionLabelId); _local3 = new CostumInputTextfield("left", false, "normal", "gameoverFormLayerInput"); _container.addChild(_local3); _local3.width = _local5; _local3.defaultLabel = _local9; _local1 = DrawUtils.getRoundRect((_local5 + 10), (_local3.height + 20), 5, 5, 0xFFFFFF, 0, 0); _local2 = DrawUtils.getRoundRect((_local5 + 10), (_local3.height + 20), 5, 5, 0xFF0000, 0, 0); _local2.alpha = 0; _container.addChild(_local1); _container.addChild(_local2); BitmapUtils.addShadow(_local1, 2, 2, 2, 3, 0.4, 45, 0, true); DisplayUtils.swapChildToBottom(_local2); DisplayUtils.swapChildToBottom(_local1); _local1.y = (_local2.y = _local6); _local3.x = 5; _local3.y = (((_local6 + (_local1.height * 0.5)) - (_local3.height * 0.5)) - 5); _local4 = (CostumTextfield.getCSSTextfield("left", false, true, true) as TextField); _container.addChild(_local4); _local4.width = _local5; _local4.htmlText = CSSMapper.map(_local10, "gameoverFormLayerInputDescription"); _local4.x = 5; _local4.y = ((_local1.y + _local1.height) + 5); _local6 = (_local6 + ((_local1.height + _local4.height) + _local7)); _inputData[_local13] = {tfd:_local3, key:_local11, value:"", duty:_local12, errorGround:_local2, type:"input"}; _local13++; }; } private function __addDescriptionText():void{ var _local1:String = LabelManager.Instance.getString(_xml.descriptionCopy.@labelId); var _local2:TextField = (CostumTextfield.getCSSTextfield("left", false, true, true) as TextField); _container.addChild(_local2); _local2.width = 400; _local2.htmlText = CSSMapper.map(_local1, "gameoverFormLayerDescriptionCopy"); _local2.x = _checkbox.x; _local2.y = ((_checkbox.y + _checkbox.height) + 35); } private function __validateForm():Boolean{ var _local2:Object; var _local3:String; var _local4:String; var _local5:String; var _local6:Sprite; __resetErrors(); var _local1:Array = []; var _local7:Number = 0; var _local8:int; while (_local8 < _inputData.length) { _local2 = _inputData[_local8]; _local3 = (_local2.tfd as CostumInputTextfield).text; _local2.value = _local3; _local5 = (_local2.tfd as CostumInputTextfield).defaultLabel; _local6 = (_local2.errorGround as Sprite); _local4 = _local2.key; _local7 = 0; if (((_local2.duty) && ((_local2.type == "input")))){ if (_local3 === _local5){ _local7 = 0.3; _local1.push(true); }; if (_local4 == "email"){ if (!RequestUtils.isValideEMailAdress(_local3)){ _local7 = 0.3; _local1.push(true); }; }; }; if (_local7 > 0){ TweenMax.to(_local6, 25, {alpha:_local7, useFrames:true, ease:Strong.easeOut}); }; _local8++; }; return ((_local1.length == 0)); } private function __addCheckbox():void{ var _local1:Number = (_container.height + 35); _checkbox = new Checkbox(); _container.addChild(_checkbox); _checkbox.y = _local1; _checkbox.visible = false; } public function __onHide():void{ this.visible = false; } private function __addFormular():void{ _container = new Sprite(); this.addChild(_container); __addInputs(); __addCheckbox(); __addDescriptionText(); _mask = DrawUtils.getRect((_container.width + 20), (_container.height + 10)); this.addChild(_mask); _mask.x = (_container.x - 10); _container.mask = _mask; _mask.scaleY = 0; } private function __resetErrors():void{ var _local1:int; while (_local1 < _inputData.length) { TweenMax.to(_inputData[_local1].errorGround, 15, {alpha:0, useFrames:true, ease:Strong.easeOut}); _local1++; }; } public function show():void{ this.visible = true; TweenMax.to(_mask, 35, {scaleY:1, useFrames:true, ease:Strong.easeInOut}); } } }//package eu.ecb.economia.templates.share
Section 146
//Start (eu.ecb.economia.templates.start.Start) package eu.ecb.economia.templates.start { import flash.events.*; import eu.ecb.economia.events.*; import de.aperto.managers.*; import flash.display.*; import com.greensock.*; import eu.ecb.economia.templates.*; import de.aperto.utils.*; import eu.ecb.economia.manager.*; import eu.ecb.economia.*; import com.greensock.easing.*; import eu.ecb.economia.utils.*; public class Start extends Template implements TemplateInterface { private var _imageContainer:Sprite; private var USERAGE_ID:String;// = "inputAge" private var USERNAME_ALTTEXT:String; private var DEFAULT_USERAGE:String; private var USERNAME_ID:String;// = "inputName" private var _ground:Sprite; private var DEFAULT_USERNAME:String; public function Start(){ USERNAME_ALTTEXT = LabelManager.Instance.getString("startLayerDefaultUsernameAlternativeText"); DEFAULT_USERNAME = LabelManager.Instance.getString("startLayerInputDefaultName"); DEFAULT_USERAGE = LabelManager.Instance.getString("startLayerInputDefaultUserage"); super(); } private function __formManagerOnError():void{ } override public function remove():void{ TweenMax.to(this, 0.1, {alpha:0, useFrames:false, onComplete:__onRemove, ease:Strong.easeOut}); } private function __formManagerOnSend(_arg1:Array):void{ var _local2:int; while (_local2 < _arg1.length) { switch (_arg1[_local2].id){ case USERNAME_ID: if (_arg1[_local2].input != DEFAULT_USERNAME){ gameDataPool.username = _arg1[_local2].input; }; break; case USERAGE_ID: if (_arg1[_local2].input != DEFAULT_USERAGE){ gameDataPool.userage = _arg1[_local2].input; }; break; }; _local2++; }; __runGame(); } private function __formManagerOnHide():void{ __runGame(); } private function __addLogoClaim():void{ var _local1:Bitmap = GameUtils.getLogoClaim(LabelManager.Instance.getString("gameLogoClaimStart"), 43, true); _imageContainer.addChild(_local1); _local1.x = ((Defaults.GAME_STAGE_WIDTH * 0.5) - (_local1.width * 0.5)); _local1.y = 125; } override public function update():void{ __templateOnUpdate(); } private function __imageOnHide():void{ if (gameDataPool.username != null){ __runGame(); } else { __addForm(); }; } private function __bluebuttonOnClick():void{ navigationBar.changeState({slider:false, navi:false, subnavi:true, autopilot:false}); TweenMax.to(_imageContainer, 10, {alpha:0, onComplete:__imageOnHide, overwrite:true, useFrames:true, ease:Strong.easeInOut}); } override public function show():void{ } override public function addedToStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, addedToStage); navigationBar.changeState({slider:false, bluebutton:LabelManager.Instance.getString("startBigBlueButtonLabel"), bluebuttonCallback:__bluebuttonOnClick, navi:false, subnavi:true, autopilot:false}); __addGround(); __addBackgrondImage(); __addLogoClaim(); if (SoundManager.Instance.audioConnection == null){ SoundManager.Instance.loadSound(String((Develop.Instance.serverRoot + XMLManager.Instance.logicXML.backgroundMusicPath.@src.toString()))); }; } private function __addForm():void{ var _local1:Object = {}; _local1.width = 450; _local1.height = 330; _local1.headline = LabelManager.Instance.getString("startLayerHeadline"); _local1.onHide = __formManagerOnHide; var _local2:String = LabelManager.Instance.getString("startFormButton"); _local1.submitButton = {label:_local2, onSendCallback:__formManagerOnSend, onErrorCallback:__formManagerOnError}; _local1.form = [{label:DEFAULT_USERNAME, altText:USERNAME_ALTTEXT, id:USERNAME_ID, width:375, restrict:null, maxChars:null}, {label:DEFAULT_USERAGE, altText:"", id:USERAGE_ID, width:"auto", restrict:"0123456789", maxChars:3}]; FormManager.add(_local1); dispatchEvent(new TemplateEvent(TemplateEvent.ON_UPDATE)); } private function __addBackgrondImage():void{ _imageContainer = new Sprite(); this.addChild(_imageContainer); var _local1:Bitmap = new Bitmap(BitmapDataManager.Instance.getBitmapData("images", "gameStartscreen"), "auto", true); _imageContainer.addChild(_local1); _local1.alpha = 0; TweenMax.to(_local1, 55, {alpha:1, useFrames:true, overwrite:true, ease:Strong.easeOut}); } private function __onRemove():void{ __removeEvents(); dispatchEvent(new TemplateEvent(TemplateEvent.ON_REMOVE)); } private function __templateOnUpdate():void{ dispatchEvent(new TemplateEvent(TemplateEvent.ON_UPDATE)); } private function __addGround():void{ _ground = DrawUtils.getGradientRect(Defaults.GAME_STAGE_WIDTH, Defaults.GAME_STAGE_HEIGHT, 0xFFFFFF, 9808298); this.addChild(_ground); } private function __removeEvents():void{ } private function __templateOnShow():void{ dispatchEvent(new TemplateEvent(TemplateEvent.INIT)); } override public function hide():void{ } private function __runGame():void{ FormManager.remove(); templateController.addTemplate(Defaults.GAMELOADER_TEMPLATE_ID); } } }//package eu.ecb.economia.templates.start
Section 147
//Member (eu.ecb.economia.templates.team.charakters.member.Member) package eu.ecb.economia.templates.team.charakters.member { import flash.events.*; import de.aperto.managers.*; import flash.display.*; import com.greensock.*; import de.aperto.utils.*; import flash.text.*; import eu.ecb.economia.manager.*; import net.badimon.five3D.display.*; import com.greensock.easing.*; import de.aperto.text.*; public class Member extends Sprite { private var _imageContainer:Sprite; private var _onHideCallback:Function; private var _optionalCont:Sprite; private var _image1:Sprite; private var _image2:Sprite; private var _msgCopy:String; private var _xml:XML; public var id:int; private var _username:String; private var _msgHeadline:String; private var _scene3D:Scene3D; private var _viewId:int; public function Member(_arg1:XML, _arg2:String){ _xml = _arg1; _username = _arg2; this.visible = false; addEventListener(Event.ADDED_TO_STAGE, __addedToStage); } public function hide(_arg1:Function=null):void{ if (!_imageContainer.visible){ if (((!((_arg1 == null))) && ((_arg1 is Function)))){ _arg1(); }; return; }; _onHideCallback = _arg1; MessageManager.Instance.remove(this); TweenMax.to(_imageContainer, 35, {alpha:0, scaleX:1.1, scaleY:1.1, onComplete:__onHide, useFrames:true, overwrite:true, ease:Strong.easeOut}); } private function __addedToStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, __addedToStage); __addImages(); } public function show(_arg1:int, _arg2:String, _arg3:String):void{ _viewId = _arg1; _msgHeadline = _arg2; _msgCopy = _arg3; this.visible = true; _image1.visible = ((_arg1 == 1)) ? true : false; _image2.visible = ((_arg1 == 1)) ? false : true; _imageContainer.alpha = 0; __addImageOptions(); TweenMax.to(_imageContainer, 45, {alpha:1, scaleX:1, scaleY:1, onComplete:__onShow, useFrames:true, overwrite:true, ease:Strong.easeOut}); _imageContainer.scaleX = (_imageContainer.scaleY = 1.1); } private function __imageOnClick(_arg1:MouseEvent):void{ dispatchEvent(new Event(Event.CLOSE)); } private function __messageLayerOnClose():void{ dispatchEvent(new Event(Event.CLOSE)); } private function __addImages():void{ var _local2:Bitmap; _imageContainer = new Sprite(); this.addChild(_imageContainer); _imageContainer.alpha = 0; _imageContainer.addEventListener(MouseEvent.CLICK, __imageOnClick); var _local1:Sprite = new Sprite(); _imageContainer.addChild(_local1); _image1 = new Sprite(); _local1.addChild(_image1); _local2 = new Bitmap(BitmapDataManager.Instance.getBitmapData("team_charakters", _xml.@imgViewId1), "auto", true); _image1.addChild(_local2); _image1.x = (-(_image1.width) * 0.5); _image1.y = (-(_image1.height) * 0.5); _image2 = new Sprite(); _local1.addChild(_image2); _local2 = new Bitmap(BitmapDataManager.Instance.getBitmapData("team_charakters", _xml.@imgViewId2), "auto", true); _image2.addChild(_local2); _image2.x = (-(_image2.width) * 0.5); _image2.y = (-(_image2.height) * 0.5); _imageContainer.x = (_local1.width * 0.5); _imageContainer.y = (_local1.height * 0.5); } private function __onShow():void{ __addMessageLayer(); } private function __onHide():void{ this.visible = false; _image1.visible = (_image2.visible = false); if (((!((_onHideCallback == null))) && ((_onHideCallback is Function)))){ _onHideCallback(); }; } private function __addImageOptions():void{ var _local1:TextField; var _local2:BitmapData; var _local3:Bitmap3D; if (_optionalCont){ DisplayUtils.removeDisplayObject(_optionalCont); _optionalCont = null; }; _optionalCont = new Sprite(); _imageContainer.addChild(_optionalCont); if (id == 8){ _scene3D = new Scene3D(true); _optionalCont.addChild(_scene3D); _local1 = CostumTextfield.getCSSTextfield("center", false, true, true); _local1.htmlText = CSSMapper.map(_username, "mapYesManImageUserName"); _local1.width = 145; _local2 = BitmapUtils.getBitmapData(_local1, _local1.width, (_local1.height + 10), true, 0, true); _local3 = new Bitmap3D(_local2, true, 3, 3); _scene3D.addChild(_local3); if (_viewId == 1){ _optionalCont.x = -155; _optionalCont.y = 80; _local3.rotationX = 0; _local3.rotationY = 5; _local3.rotationZ = 16; } else { _optionalCont.x = 75; _optionalCont.y = 140; _local3.rotationX = 0; _local3.rotationY = -5; _local3.rotationZ = -23; }; }; } private function __addMessageLayer():void{ var _local1:Number = ((_viewId == 1)) ? parseInt(_xml.@x1) : parseInt(_xml.@x2); var _local2:Number = 200; MessageManager.Instance.add({target:this, type:"memberMessage", headline:_msgHeadline, copy:_msgCopy, x:_local1, y:_local2, closeBtn:true, closeCallback:__messageLayerOnClose}); } } }//package eu.ecb.economia.templates.team.charakters.member
Section 148
//Charakters (eu.ecb.economia.templates.team.charakters.Charakters) package eu.ecb.economia.templates.team.charakters { import flash.events.*; import flash.display.*; import de.aperto.utils.*; import eu.ecb.economia.templates.team.charakters.member.*; public class Charakters extends Sprite { private var _container:Sprite; private var _itemArr:Array; private var _onResetCallback:Function; private var _membersToHide:int; private var _xml:XML; private var _username:String; private var _membersOnHide:int; public function Charakters(_arg1:String){ _username = _arg1; addEventListener(Event.ADDED_TO_STAGE, __addedToStage); } private function __addedToStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, __addedToStage); addEventListener(Event.REMOVED_FROM_STAGE, __removedFromStage); _container = new Sprite(); this.addChild(_container); __addMembers(); } private function __removedFromStage(_arg1:Event):void{ switch (_arg1.type){ case Event.REMOVED_FROM_STAGE: __removeEvents(); break; }; } private function __showMember(_arg1:XML):void{ if (_arg1 == null){ return; }; __hideMembers(); var _local2:Member = (__getMember(parseInt(_arg1.@id)) as Member); _local2.show(parseInt(_arg1.@view), unescape(_arg1.headline), unescape(_arg1.copy)); } private function __addMembers():void{ var _local2:Member; var _local3:Sprite; var _local4:DisplayObject; var _local5:DisplayObject; _itemArr = []; var _local1:int = _xml.members.member.length(); var _local6:int; while (_local6 < _local1) { _local2 = new Member(XML(_xml.members.member[_local6]), _username); _container.addChild(_local2); _local2.id = parseInt(_xml.members.member[_local6].@id); _local2.addEventListener(Event.CLOSE, __memberEventHandler); _itemArr.push(_local2); _local6++; }; } private function __memberOnHide():void{ _membersOnHide++; if (_membersOnHide == (_membersToHide - 1)){ _membersToHide = 0; _membersOnHide = 0; if (((!((_onResetCallback == null))) && ((_onResetCallback is Function)))){ _onResetCallback(); }; }; } private function __removeEvents():void{ } private function __hideMembers():void{ var _local1:Member; _membersToHide = _itemArr.length; var _local2:int; while (_local2 < _membersToHide) { _local1 = _itemArr[_local2]; if (!_local1.visible){ __memberOnHide(); } else { _local1.hide(__memberOnHide); }; _local2++; }; } public function reset(_arg1:Function=null):void{ _onResetCallback = _arg1; __hideMembers(); } private function __memberEventHandler(_arg1:Event):void{ var _local2:Member = (_arg1.target as Member); switch (_arg1.type){ case Event.CLOSE: _local2.hide(); dispatchEvent(new Event(Event.CLOSE)); break; }; } private function __getMember(_arg1:int):Member{ var _local2:Member; var _local3:int; while (_local3 < _itemArr.length) { _local2 = _itemArr[_local3]; if (_local2.id == _arg1){ break; }; _local3++; }; return (_local2); } public function set xml(_arg1:XML):void{ _xml = _arg1; } public function showMember(_arg1:XML):void{ __showMember(_arg1); } } }//package eu.ecb.economia.templates.team.charakters
Section 149
//TeamOverview (eu.ecb.economia.templates.team.overview.TeamOverview) package eu.ecb.economia.templates.team.overview { import flash.events.*; import eu.ecb.economia.events.*; import de.aperto.managers.*; import flash.display.*; import com.greensock.*; import de.aperto.utils.*; import eu.ecb.economia.*; import com.greensock.easing.*; import eu.ecb.economia.ui.buttons.membermarker.*; public class TeamOverview extends Sprite { private var _container:Sprite; private var _markerArr:Array; private var _xml:XML; private var _memberHitArr:Array; private var _markerCont:Sprite; private var _base:MovieClip; public var activeMemberXML:XML; private var _messageArr:Array; public function TeamOverview(){ _markerArr = []; _memberHitArr = []; super(); addEventListener(Event.ADDED_TO_STAGE, __addedToStage); } private function __addedToStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, __addedToStage); _container = new Sprite(); this.addChild(_container); _container.x = (Defaults.GAME_STAGE_WIDTH * 0.5); _container.y = (Defaults.GAME_STAGE_HEIGHT * 0.5); __addGround(); __addMarker(); } private function __getMemberXML(_arg1:int):XML{ var _local2:XML; var _local5:XML; var _local6:MemberMarker; var _local7:int; var _local8:int; var _local3:int = _messageArr.length; var _local4:int = _markerArr.length; _local7 = 0; while (_local7 < _local3) { _local5 = XML(_messageArr[_local7]); _local8 = 0; while (_local8 < _local4) { if (parseInt(_local5.@id) == _arg1){ _local2 = _local5; }; _local8++; }; _local7++; }; return (_local2); } public function update(_arg1:Array):void{ _messageArr = _arg1; __updateMarker(); } private function __updateMarker():void{ var _local3:XML; var _local4:MemberMarker; var _local5:MovieClip; var _local6:int; var _local7:int; var _local8:int; var _local1:int = _messageArr.length; var _local2:int = _markerArr.length; _local6 = 0; while (_local6 < _local2) { ((_markerArr[_local6] as MemberMarker).memberHit as MovieClip).visible = false; _local6++; }; _local6 = 0; while (_local6 < _local1) { _local3 = XML(_messageArr[_local6]); _local7 = 0; while (_local7 < _local2) { _local4 = (_markerArr[_local7] as MemberMarker); _local4.isSelect = (parseInt(_local3.@id) == _local4.id); if (_local4.isSelect){ _local4.show(); _local4.memberHit.visible = true; } else { _local4.hide(); }; _local7++; }; _local6++; }; if (_local1 < 1){ __resetMarkers(); }; } public function remove(_arg1:Function):void{ if (_arg1 != null){ __resetMarkers(true); } else { __resetMarkers(); }; TweenMax.to(_container, 2, {alpha:0, scaleX:1.1, scaleY:1.1, useFrames:true, onComplete:_arg1, overwrite:true, ease:Strong.easeOut}); } private function __resetMarkers(_arg1:Boolean=false):void{ var _local2:MemberMarker; var _local4:int; _local4 = 0; while (_local4 < _memberHitArr.length) { _memberHitArr[_local4].visible = false; _local4++; }; if (_arg1){ DisplayUtils.removeDisplayObject(_markerCont); if (_markerCont){ _markerCont = null; }; return; }; var _local3:int = _markerArr.length; _local4 = 0; while (_local4 < _local3) { _local2 = (_markerArr[_local4] as MemberMarker); _local2.isSelect = false; _local2.hide(); _local4++; }; } public function hide():void{ TweenMax.to(_container, 35, {scaleX:1, scaleY:1, useFrames:true, overwrite:true, ease:Strong.easeOut}); } private function __addMarker():void{ var _local3:MemberMarker; var _local4:MovieClip; _markerCont = new Sprite(); this.addChild(_markerCont); var _local1:XML = XML(_xml.members); var _local2:int = _local1.member.length(); var _local5:int; while (_local5 < _local2) { _local3 = new MemberMarker(); _markerCont.addChild(_local3); _local3.id = parseInt(_local1.member[_local5].@id); _local3.x = parseInt(_local1.member[_local5].@markerX); _local3.y = parseInt(_local1.member[_local5].@markerY); _local3.addEventListener(ButtonEvent.CLICK, __memberClickHandler); _markerArr.push(_local3); _local4 = (_base[String(("hit" + _local3.id))] as MovieClip); _local4.addEventListener(MouseEvent.CLICK, __memberClickHandler); _local4.id = _local3.id; _local4.buttonMode = true; _local4.marker = _local3; _local3.memberHit = _local4; _local5++; }; } private function __addGround():void{ _base = (new ((LibraryManager.Instance.getClass("TeamOverview") as Class)) as MovieClip); _container.addChild(_base); _base.x = (-(Defaults.GAME_STAGE_WIDTH) * 0.5); _base.y = (-(Defaults.GAME_STAGE_HEIGHT) * 0.5); } public function resetMarkers():void{ __resetMarkers(false); } public function set xml(_arg1:XML):void{ _xml = _arg1; } private function __memberClickHandler(_arg1:Event):void{ activeMemberXML = __getMemberXML(_arg1.target.id); if ((_arg1.target is MovieClip)){ (_arg1.target as MovieClip).marker.read = true; }; dispatchEvent(new Event(Event.CHANGE)); } public function show():void{ TweenMax.to(_container, 45, {scaleX:1.1, scaleY:1.1, useFrames:true, overwrite:true, ease:Strong.easeOut}); } } }//package eu.ecb.economia.templates.team.overview
Section 150
//Team (eu.ecb.economia.templates.team.Team) package eu.ecb.economia.templates.team { import flash.events.*; import eu.ecb.economia.events.*; import de.aperto.managers.*; import flash.display.*; import eu.ecb.economia.templates.*; import de.aperto.utils.*; import eu.ecb.economia.*; import eu.ecb.economia.templates.team.overview.*; import eu.ecb.economia.templates.team.charakters.*; public class Team extends Template implements TemplateInterface { private var _container:Sprite; private var _needsUpdate:Boolean; private var _mask:Sprite; private var _pageXML:XML; private var _overview:TeamOverview; private var _charakters:Charakters; override public function onFront():void{ if (_needsUpdate){ _charakters.reset(); _overview.update(gameDataPool.teamDataArr); _needsUpdate = false; }; } private function __build():void{ _container = new Sprite(); this.addChild(_container); _mask = DrawUtils.getRect(Defaults.GAME_STAGE_WIDTH, Defaults.GAME_STAGE_HEIGHT); this.addChild(_mask); _container.mask = _mask; _pageXML = XML(gameDataPool.xmlData.team); __addOverview(); __addCharakters(); } override public function reset():void{ _needsUpdate = true; if (_overview){ _overview.update(new Array(0)); }; } private function __overviewEventHandler(_arg1:Event):void{ switch (_arg1.type){ case Event.CHANGE: _overview.hide(); _charakters.showMember(_overview.activeMemberXML); break; }; } private function __bluebuttonCallback():void{ templateController.addTemplate(templateController.lastTemplateId); } private function __removedFromStage(_arg1:Event):void{ if (_container){ DisplayUtils.removeDisplayObject(_container); _container = null; }; __removeEvents(); } override public function remove():void{ if (_charakters != null){ _charakters.reset(__charaktersOnReset); }; } private function __removeEvents():void{ gameBrain.removeListener(GameEvent.ON_NEXT_QUARTER, __onNextQuarter); } private function __addOverview():void{ _overview = new TeamOverview(); _overview.xml = _pageXML; _container.addChild(_overview); _overview.addEventListener(Event.CHANGE, __overviewEventHandler); _overview.update(gameDataPool.teamDataArr); } private function __addCharakters():void{ _charakters = new Charakters(((gameDataPool.username)!=null) ? gameDataPool.username : "you"); _charakters.xml = _pageXML; _container.addChild(_charakters); _charakters.addEventListener(Event.CLOSE, __charaktersEventHandler); } override public function addedToStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, addedToStage); addEventListener(Event.REMOVED_FROM_STAGE, __removedFromStage); __build(); gameBrain.addListener(GameEvent.ON_NEXT_QUARTER, __onNextQuarter); } private function __charaktersEventHandler(_arg1:Event):void{ switch (_arg1.type){ case Event.CLOSE: _overview.show(); break; }; } override public function set isActive(_arg1:Boolean):void{ _isActive = _arg1; if (_isActive){ _pageXML = XML(gameDataPool.xmlData.team); navigationBar.changeState({slider:false, bluebutton:LabelManager.Instance.getString("teamBigBlueButtonLabel"), bluebuttonCallback:__bluebuttonCallback, navi:true, subnavi:true, autopilot:false}); }; } private function __onRemove():void{ __removeEvents(); dispatchEvent(new TemplateEvent(TemplateEvent.ON_REMOVE)); } override public function update():void{ _pageXML = XML(gameDataPool.xmlData.team); _charakters.xml = _pageXML; _charakters.reset(); _overview.xml = _pageXML; _overview.update(gameDataPool.teamDataArr); __templateOnUpdate(); } override public function hide():void{ } private function __templateOnShow():void{ dispatchEvent(new TemplateEvent(TemplateEvent.INIT)); } private function __onNextQuarter():void{ _needsUpdate = true; } private function __templateOnUpdate():void{ dispatchEvent(new TemplateEvent(TemplateEvent.ON_UPDATE)); } private function __charaktersOnReset():void{ if (_overview != null){ _overview.remove(__onRemove); }; } } }//package eu.ecb.economia.templates.team
Section 151
//Template (eu.ecb.economia.templates.Template) package eu.ecb.economia.templates { import flash.events.*; import flash.display.*; import com.greensock.*; import eu.ecb.economia.game.*; import eu.ecb.economia.game.navigationbar.*; import eu.ecb.economia.game.mainview.*; import eu.ecb.economia.game.topview.*; import eu.ecb.economia.data.*; import eu.ecb.economia.*; import com.greensock.easing.*; public class Template extends Sprite { public var isSliderTemplate:Boolean; public var params:Object; public var xml:XML; protected var topView:TopView; public var id:int; protected var navigationBar:NavigationBar; protected var gameBrain:GameBrain; protected var _isActive:Boolean; public var game:Game; protected var templateController:TemplateController; protected var gameDataPool:GameDataPool; protected var mainView:MainView; public function Template(){ addEventListener(Event.ADDED_TO_STAGE, addedToStage); } public function hide():void{ } public function remove():void{ } public function update():void{ } public function reset():void{ } public function get isActive():Boolean{ return (_isActive); } public function onFront():void{ } public function show():void{ this.alpha = 0; TweenMax.to(this, 25, {alpha:1, useFrames:true, ease:Strong.easeOut}); } public function set isActive(_arg1:Boolean):void{ } public function addedToStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, addedToStage); } override public function get height():Number{ return (Defaults.GAME_STAGE_HEIGHT); } override public function get width():Number{ return (Defaults.GAME_STAGE_WIDTH); } public function setGame(_arg1:Game):void{ game = _arg1; gameBrain = game.getGameBrain(); gameDataPool = gameBrain.getGameDataPool(); navigationBar = game.getNavigationBar(); mainView = game.getMainView(); topView = game.getTopView(); } public function setTemplateController(_arg1:TemplateController):void{ templateController = _arg1; } } }//package eu.ecb.economia.templates
Section 152
//TemplateBitmap (eu.ecb.economia.templates.TemplateBitmap) package eu.ecb.economia.templates { import flash.events.*; import flash.display.*; import de.aperto.utils.*; import flash.filters.*; public class TemplateBitmap extends Sprite { private var _qualitiy:Number;// = 1 private var _motionBlur:BlurFilter; private var _currentX:Number;// = 0 private var _BitmapUtilsRemoveFilter:Function; private var _offsetDiffX:Number;// = 0 private var _image:Bitmap; private var _offsetX:Number;// = 0 private var _MathAbs:Function; private var _firstStart:Boolean;// = true private var _BitmapUtilsSetNewFilter:Function; private var _softnessX:Number;// = 0.01 public function TemplateBitmap(_arg1:BitmapData){ _MathAbs = Math.abs; _BitmapUtilsSetNewFilter = BitmapUtils.setNewFilter; _BitmapUtilsRemoveFilter = BitmapUtils.removeFilter; super(); _image = new Bitmap(_arg1, "auto", true); this.addChild(_image); addEventListener(Event.ADDED_TO_STAGE, addedToStage); } public function setContainerX(_arg1:Number):void{ _currentX = _arg1; __updateMotionBlurX(); } private function __updateMotionBlurX():void{ if (_motionBlur == null){ _motionBlur = new BlurFilter(0, 0, _qualitiy); }; _offsetDiffX = _MathAbs(((_offsetX - _currentX) * _softnessX)); if (_firstStart){ _firstStart = false; _offsetDiffX = 0; }; _motionBlur.blurX = _offsetDiffX; _offsetX = _currentX; _BitmapUtilsSetNewFilter(_image, _motionBlur, BlurFilter); } public function addedToStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, addedToStage); } } }//package eu.ecb.economia.templates
Section 153
//TemplateController (eu.ecb.economia.templates.TemplateController) package eu.ecb.economia.templates { import eu.ecb.economia.events.*; import de.aperto.managers.*; import flash.display.*; import com.greensock.*; import eu.ecb.economia.game.*; import de.aperto.utils.*; import eu.ecb.economia.manager.*; import nl.demonsters.debugger.*; import eu.ecb.economia.*; import com.greensock.easing.*; import eu.ecb.economia.templates.learnmore.*; import eu.ecb.economia.templates.map.*; import eu.ecb.economia.templates.start.*; import eu.ecb.economia.templates.share.*; import eu.ecb.economia.templates.gameloader.*; import eu.ecb.economia.templates.disclaimer.*; import eu.ecb.economia.templates.press.*; import eu.ecb.economia.templates.team.*; import eu.ecb.economia.templates.glossary.*; import eu.ecb.economia.templates.forecast.*; import eu.ecb.economia.templates.language.*; import eu.ecb.economia.templates.highscore.*; import eu.ecb.economia.templates.gameover.*; public class TemplateController extends Sprite { private var _lastTemplateIndex:int;// = -999 private var _templatesArr:Array; public var sliderTemplatesAdded:Boolean; private var _sliderTemplatesArr:Array; private var _game:Game; private var _xml:XML; private var _sliderContainer:Sprite; private var _params:Object; private var _amountSliderTemplateBitmaps:int; private var _sliderContainerCopy:Sprite; private var _templatesBitmapsArr:Array; private var _activeTemplateId:int; public function TemplateController(){ _activeTemplateId = _lastTemplateIndex; super(); _templatesArr = []; _sliderTemplatesArr = []; __addSliderContainer(); } private function __getSliderTemplateIndex(_arg1:int):int{ var _local2:int; var _local3:Template; var _local4:int = _sliderTemplatesArr.length; var _local5:int; while (_local5 < _local4) { _local3 = (_sliderTemplatesArr[_local5] as Template); _local2 = _local5; if (_local3.id == _arg1){ break; }; _local5++; }; return (_local5); } private function __removeOldTemplate(_arg1:int):void{ var _local2:Template = (__getTemplate(_arg1) as Template); if (_local2 == null){ return; }; if (_local2.isSliderTemplate){ _local2.isActive = false; return; }; _local2.remove(); } public function resetSliderTemplates():void{ var _local2:Template; var _local1:int = _sliderTemplatesArr.length; var _local3:int; while (_local3 < _local1) { _local2 = (_sliderTemplatesArr[_local3] as Template); if (_local2 != null){ _local2.reset(); }; _local3++; }; _activeTemplateId = _lastTemplateIndex; __setSliderTemplatesVisible(false); _sliderContainer.x = (-(Defaults.GAME_STAGE_WIDTH) * 2); } private function __sliderOnFinish(_arg1:Template):void{ __removeSliderContentCopy(); __setSliderTemplatesVisible(false); _arg1.visible = true; _arg1.onFront(); } private function __isOnewayTemplate(_arg1:int):Boolean{ var _local2:Boolean; switch (_arg1){ case Defaults.HIGHSCORE_TEMPLATE_ID: _local2 = true; break; case Defaults.SHARE_TEMPLATE_ID: _local2 = true; break; case Defaults.GLOSSARY_TEMPLATE_ID: _local2 = true; break; case Defaults.LEARNMORE_TEMPLATE_ID: _local2 = true; break; case Defaults.LANUAGE_TEMPLATE_ID: _local2 = true; break; case Defaults.DISCLAIMER_TEMPLATE_ID: _local2 = true; break; case Defaults.PRESS_TEMPLATE_ID: _local2 = true; break; case Defaults.TEAM_TEMPLATE_ID: _local2 = true; break; }; return (_local2); } public function template(_arg1:int):Template{ return ((__getTemplate(_arg1) as Template)); } private function __templateEventHandler(_arg1:TemplateEvent):void{ var _local2:Template = (_arg1.target as Template); switch (_arg1.type){ case TemplateEvent.INIT: break; case TemplateEvent.ON_UPDATE: break; case TemplateEvent.ON_CHANGE: dispatchEvent(new TemplateControllerEvent(TemplateControllerEvent.PAGE_ON_CHANGE, true, true)); break; case TemplateEvent.ON_REMOVE: _templatesArr.splice(_templatesArr.indexOf(_local2), 1); TweenMax.killChildTweensOf(_local2); DisplayUtils.removeDisplayObject(_local2); _local2 = null; break; }; } private function __setSliderTemplatesVisible(_arg1:Boolean):void{ var _local2:Template; var _local3:int = _sliderTemplatesArr.length; var _local4:int; while (_local4 < _local3) { _local2 = (_sliderTemplatesArr[_local4] as Template); _local2.visible = _arg1; _local4++; }; } public function updateCurrentTemplate():void{ var _local1:Template = (__getTemplate(_activeTemplateId) as Template); if (_local1 != null){ _local1.update(); }; } private function __addSliderContainer():void{ if (_sliderContainer){ DisplayUtils.removeDisplayObject(_sliderContainer); _sliderContainer = null; }; _sliderContainer = new Sprite(); this.addChild(_sliderContainer); } private function __getNewTemplateInstance(_arg1:int):Template{ var _local2:Template; switch (_arg1){ case Defaults.HIGHSCORE_TEMPLATE_ID: _local2 = new Highscore(); break; case Defaults.START_TEMPLATE_ID: _local2 = new Start(); break; case Defaults.GAMEOVER_TEMPLATE_ID: _local2 = new GameOver(); break; case Defaults.GAMELOADER_TEMPLATE_ID: _local2 = new GameLoader(); break; case Defaults.SHARE_TEMPLATE_ID: _local2 = new Share(); break; case Defaults.FORECAST_TEMPLATE_ID: _local2 = new Forecast(); break; case Defaults.TEAM_TEMPLATE_ID: _local2 = new Team(); break; case Defaults.MAP_TEMPLATE_ID: _local2 = new Map(); break; case Defaults.PRESS_TEMPLATE_ID: _local2 = new Press(); break; case Defaults.GLOSSARY_TEMPLATE_ID: _local2 = new Glossary(); break; case Defaults.LEARNMORE_TEMPLATE_ID: _local2 = new LearnMore(); break; case Defaults.LANUAGE_TEMPLATE_ID: _local2 = new Language(); break; case Defaults.DISCLAIMER_TEMPLATE_ID: _local2 = new Disclaimer(); break; default: _local2 = new Start(); break; }; _local2.id = _arg1; _local2.setGame(_game); _local2.setTemplateController(this); _local2.addEventListener(TemplateEvent.INIT, __templateEventHandler); _local2.addEventListener(TemplateEvent.ON_UPDATE, __templateEventHandler); _local2.addEventListener(TemplateEvent.ON_CHANGE, __templateEventHandler); _local2.addEventListener(TemplateEvent.ON_REMOVE, __templateEventHandler); _templatesArr.push(_local2); return (_local2); } private function __getTemplate(_arg1:int):Template{ var _local2:Template; var _local3:int = _templatesArr.length; var _local4:int; while (_local4 < _local3) { if ((_templatesArr[_local4] as Template).id == _arg1){ _local2 = (_templatesArr[_local4] as Template); break; }; _local4++; }; return (_local2); } private function __removeSliderContentCopy():void{ if (_sliderContainerCopy){ DisplayUtils.removeDisplayObject(_sliderContainerCopy); _sliderContainerCopy = null; }; } public function get lastTemplateId():int{ return (_lastTemplateIndex); } private function __createSliderContentCopy():void{ var _local1:TemplateBitmap; var _local2:Template; __removeSliderContentCopy(); _sliderContainerCopy = new Sprite(); _sliderContainer.addChild(_sliderContainerCopy); var _local3:int = _templatesArr.length; var _local4:int = Defaults.GAME_STAGE_WIDTH; var _local5:int = Defaults.GAME_STAGE_HEIGHT; _templatesBitmapsArr = []; var _local6:int; while (_local6 < _local3) { _local2 = (_templatesArr[_local6] as Template); if (_local2.stage != null){ _local1 = new TemplateBitmap(BitmapUtils.getBitmapData(_local2, _local4, _local5, true, 0, true)); _sliderContainerCopy.addChild(_local1); _local1.x = (Defaults.GAME_STAGE_WIDTH * _local6); _templatesBitmapsArr.push(_local1); }; _local6++; }; _amountSliderTemplateBitmaps = _templatesBitmapsArr.length; } public function get templateId():int{ return (_activeTemplateId); } public function addTemplate(_arg1:int, _arg2:Object=null):void{ var _local3:Template; if (_activeTemplateId == _arg1){ MonsterDebugger.trace(this, "::::::::: SAME TEMPLATE - UPDATE ? :::::::::"); MonsterDebugger.trace(this, ((("new: " + _arg1) + " - old: ") + _activeTemplateId)); if (_arg1 == Defaults.GLOSSARY_TEMPLATE_ID){ _local3 = __getTemplate(_arg1); _local3.params = _arg2; _local3.update(); }; return; }; if (!__isOnewayTemplate(_arg1)){ _lastTemplateIndex = _arg1; }; __removeOldTemplate(_activeTemplateId); __setSliderTemplatesVisible(false); _activeTemplateId = _arg1; _params = _arg2; _local3 = (__getTemplate(_arg1) as Template); if (_local3 == null){ _local3 = __getNewTemplateInstance(_arg1); }; _local3.params = {}; if (_params){ _local3.params = _params; }; SoundManager.Instance.stopAllSoundsFromLibrary(); _local3.isActive = true; if (_local3.stage == null){ if (_local3.isSliderTemplate){ _sliderContainer.addChild(_local3); } else { this.addChild(_local3); }; }; DisplayUtils.swapChildToTop(_local3); _game.getNavigationBar().setActiveButton(_local3.id); _game.getNavigationBar().hideButtonDot(_local3.id); dispatchEvent(new TemplateControllerEvent(TemplateControllerEvent.PAGE_ON_CHANGE, true, true)); if (!_local3.isSliderTemplate){ return; }; if (_activeTemplateId == Defaults.GAMEOVER_TEMPLATE_ID){ return; }; __setSliderTemplatesVisible(true); DisplayUtils.swapChildToTop(_sliderContainer); var _local4:int = __getSliderTemplateIndex(_arg1); var _local5:int = (-(_local4) * Defaults.GAME_STAGE_WIDTH); __createSliderContentCopy(); __setSliderTemplatesVisible(false); TweenMax.to(_sliderContainer, 0.85, {x:_local5, useFrames:false, ease:Emotion.strongInSoftOut, onComplete:__sliderOnFinish, onCompleteParams:[_local3]}); FormManager.remove(); } public function setup(_arg1:Game):void{ _game = _arg1; } public function addSliderTemplates(_arg1:XML):void{ var _local3:Template; var _local4:int; sliderTemplatesAdded = true; _xml = _arg1; var _local2:int = _xml.navigationbar.mainnavigation.item.length(); var _local5:int; while (_local5 < _local2) { _local3 = __getNewTemplateInstance(parseInt(_xml.navigationbar.mainnavigation.item[_local5].@templateId)); _local3.x = _local4; _local3.isSliderTemplate = true; _local4 = (_local4 + _local3.width); _sliderTemplatesArr[_local5] = _local3; _local5++; }; _sliderContainer.x = (-(Defaults.GAME_STAGE_WIDTH) * 2); } } }//package eu.ecb.economia.templates
Section 154
//TemplateInterface (eu.ecb.economia.templates.TemplateInterface) package eu.ecb.economia.templates { public interface TemplateInterface { function update():void; function hide():void; function remove():void; function show():void; } }//package eu.ecb.economia.templates
Section 155
//StringMapper (eu.ecb.economia.text.StringMapper) package eu.ecb.economia.text { import de.aperto.utils.*; public class StringMapper { public static function getPercentSpaceSeperator():String{ var _local1:String; var _local2:String = Develop.Instance.language; switch (_local2){ case "bg": _local1 = " "; break; case "cs": _local1 = " "; break; case "da": _local1 = " "; break; case "de": _local1 = " "; break; case "lv": _local1 = " "; break; case "fi": _local1 = " "; break; case "fr": _local1 = " "; break; case "lt": _local1 = " "; break; case "fi": _local1 = " "; break; case "sk": _local1 = " "; break; case "sv": _local1 = " "; break; default: _local1 = ""; break; }; return (_local1); } public static function mapNumber(_arg1:Number=1):String{ var _local2:String = _arg1.toString(); var _local3 = ""; var _local4:String = Develop.Instance.language; if (_arg1 > 100000){ return (_local2); }; if ((((((((((((_local4 == "nl")) || ((_local4 == "sl")))) || ((_local4 == "da")))) || ((_local4 == "it")))) || ((_local4 == "el")))) || ((_local4 == "mt")))){ if ((((_arg1 >= 1000)) && ((_arg1 < 10000)))){ _local2 = ((_local2.slice(0, 1) + ".") + _local2.slice(1, _local2.length)); }; if ((((_arg1 >= 10000)) && ((_arg1 < 100000)))){ _local2 = ((_local2.slice(0, 2) + ".") + _local2.slice(2, _local2.length)); }; if (_arg1 >= 100000){ _local2 = ((_local2.slice(0, 3) + ".") + _local2.slice(3, _local2.length)); }; }; if ((((((((((((((((((((((((_local4 == "de")) || ((_local4 == "fi")))) || ((_local4 == "fr")))) || ((_local4 == "lt")))) || ((_local4 == "pl")))) || ((_local4 == "ro")))) || ((_local4 == "sk")))) || ((_local4 == "en")))) || ((_local4 == "cs")))) || ((_local4 == "es")))) || ((_local4 == "pt")))) || ((_local4 == "sv")))){ if ((((_arg1 >= 1000)) && ((_arg1 < 10000)))){ _local2 = ((_local2.slice(0, 1) + " ") + _local2.slice(1, _local2.length)); }; if ((((_arg1 >= 10000)) && ((_arg1 < 100000)))){ _local2 = ((_local2.slice(0, 2) + " ") + _local2.slice(2, _local2.length)); }; if (_arg1 >= 100000){ _local2 = ((_local2.slice(0, 3) + " ") + _local2.slice(3, _local2.length)); }; }; if ((((((((_local4 == "bg")) || ((_local4 == "lv")))) || ((_local4 == "et")))) || ((_local4 == "hu")))){ if ((((_arg1 >= 10000)) && ((_arg1 < 100000)))){ _local2 = ((_local2.slice(0, 2) + " ") + _local2.slice(2, _local2.length)); }; if (_arg1 >= 100000){ _local2 = ((_local2.slice(0, 3) + " ") + _local2.slice(3, _local2.length)); }; }; return (_local2); } public static function getNumberDecimalSeperator():String{ var _local1:String; var _local2:String = Develop.Instance.language; switch (_local2){ case "da": _local1 = "."; break; case "el": _local1 = "."; break; case "es": _local1 = "."; break; case "el": _local1 = "."; break; case "it": _local1 = "."; break; case "mt": _local1 = ","; break; case "nl": _local1 = "."; break; case "sl": _local1 = "."; break; default: _local1 = " "; break; }; return (_local1); } public static function mapPercent(_arg1:Number=1, _arg2:Boolean=true):String{ var _local3:String = _arg1.toFixed(2); var _local4:Array = _local3.split("."); var _local5:String = _local4[0]; var _local6:String = ((_local4.length > 1)) ? _local4[1] : "00"; return (((((_local5 + getPercentDecimalSeperator()) + _local6) + getPercentSpaceSeperator()) + (_arg2) ? "%" : "")); } public static function mapDate(_arg1:String="01.1999"):String{ return (_arg1); } public static function mapCDATATags(_arg1:String):String{ var _local2:String = _arg1; _local2 = _local2.replace(/<CDATA>/g, "<![CDATA["); _local2 = _local2.replace(/<\/CDATA>/g, "]]>"); return (_local2); } public static function mapDynamicPoints(_arg1:String, _arg2:Array):String{ var _local3:String = _arg1; var _local4:int = _arg2.length; var _local5:int; while (_local5 < _local4) { _local3 = _local3.replace(new RegExp(_arg2[_local5][0]), _arg2[_local5][1]); _local5++; }; return (_local3); } public static function mapCopyText(_arg1:String="defaultCopyText"):String{ return (_arg1); } public static function getPercentDecimalSeperator():String{ var _local1:String; var _local2:String = Develop.Instance.language; switch (_local2){ case "mt": _local1 = "."; break; case "en": _local1 = "."; break; default: _local1 = ","; break; }; return (_local1); } } }//package eu.ecb.economia.text
Section 156
//AwardBar (eu.ecb.economia.ui.awardbar.AwardBar) package eu.ecb.economia.ui.awardbar { import flash.events.*; import de.aperto.managers.*; import flash.display.*; import de.aperto.utils.*; import nl.demonsters.debugger.*; public class AwardBar extends Sprite { private var _ground:Sprite; private var _currentAwardIndex:int; private var _amountAwards:int; private var _gameStartYear:int; private var _itemArr:Array; private var _shadow:Sprite; public function AwardBar(_arg1:int, _arg2:int){ _gameStartYear = _arg1; _amountAwards = _arg2; addEventListener(Event.ADDED_TO_STAGE, __addedToStage); } private function __addItems():void{ var _local2:MovieClip; var _local3:int; var _local4:int; var _local1:int = _amountAwards; var _local5 = 3; var _local6:int = _gameStartYear; _itemArr = []; var _local7:int; while (_local7 < _local1) { _local2 = new ((LibraryManager.Instance.getClass("Stern") as Class)); this.addChild(_local2); _local2.x = _local3; _local2.y = _local4; _local2.stop(); _local3 = (_local3 + int(((_local2.width + _local5) + 0.5))); _itemArr[_local7] = _local2; _local7++; }; } private function __addedToStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, __addedToStage); __addItems(); __addGround(); } private function __addGround():void{ _ground = DrawUtils.getRect(this.width, this.height); this.addChild(_ground); _ground.alpha = 0; DisplayUtils.swapChildToBottom(_ground); } private function __resetAwards():void{ var _local1:MovieClip; var _local2:int; while (_local2 < _itemArr.length) { _local1 = (_itemArr[_local2] as MovieClip); if (_local1.currentFrame != 1){ _local1.gotoAndPlay("hide"); }; _local2++; }; } public function reset():void{ __resetAwards(); } public function updateAwards(_arg1:Array):void{ var _local2:MovieClip; MonsterDebugger.trace(this, _arg1); var _local3:int; while (_local3 < _arg1.length) { _local2 = (_itemArr[_local3] as MovieClip); if ((((_arg1[_local3] == 1)) && ((_local2.currentFrame == 1)))){ _local2.gotoAndPlay("show"); }; _local3++; }; } } }//package eu.ecb.economia.ui.awardbar
Section 157
//AutopilotButton (eu.ecb.economia.ui.buttons.autopilotbutton.AutopilotButton) package eu.ecb.economia.ui.buttons.autopilotbutton { import flash.events.*; import de.aperto.managers.*; import flash.display.*; import com.greensock.*; import de.aperto.utils.*; import flash.text.*; import eu.ecb.economia.ui.buttons.*; import com.greensock.easing.*; import de.aperto.text.*; public class AutopilotButton extends Button { private var _iconHover:Sprite; private var _labelHover:TextField; private var _xSpace:int;// = 20 private var _labelContainer:Sprite; private var _ground:Sprite; private var _icon:Sprite; private var _label:TextField; private var _groundHover:Sprite; private var _ySpace:int;// = 3 public function AutopilotButton(){ this.visible = false; } public function hide():void{ } override protected function __addedToStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, __addedToStage); __addLabel(); __addGround(); __addIcon(); DisplayUtils.swapChildToBottom(_ground); __addEvents(); } private function __addIcon():void{ _icon = new Sprite(); this.addChild(_icon); var _local1:BitmapData = (new (LibraryManager.Instance.getClass("IconAutopilot") as Class)(0, 0) as BitmapData); _icon.addChild(new Bitmap(_local1, "auto", true)); _icon.x = -((_icon.width * 0.5)); _icon.y = ((_ground.height * 0.5) - (_icon.height * 0.5)); _iconHover = new Sprite(); this.addChild(_iconHover); _iconHover.alpha = 0; _local1 = (new (LibraryManager.Instance.getClass("IconAutopilotHover") as Class)(0, 0) as BitmapData); _iconHover.addChild(new Bitmap(_local1, "auto", true)); _iconHover.x = _icon.x; _iconHover.y = _icon.y; BitmapUtils.addShadow(_icon, 3, 3, 2, 3, 0.5); } private function __onShow():void{ } override protected function __setHover(_arg1:Boolean):void{ var _local2:Number = (_arg1) ? 15 : 40; var _local3:Function = (_arg1) ? Strong.easeOut : Strong.easeInOut; TweenMax.to(_label, _local2, {alpha:(_arg1) ? 0 : 1, useFrames:true, overwrite:true, ease:_local3}); TweenMax.to(_labelHover, _local2, {alpha:(_arg1) ? 1 : 0, useFrames:true, overwrite:true, ease:_local3}); TweenMax.to(_groundHover, _local2, {alpha:(_arg1) ? 1 : 0, useFrames:true, overwrite:true, ease:_local3}); TweenMax.to(_iconHover, _local2, {alpha:(_arg1) ? 1 : 0, useFrames:true, overwrite:true, ease:_local3}); } private function __addGround():void{ var _local1 = 12; _ground = DrawUtils.getRoundRect((_labelContainer.width + (_xSpace * 2)), (_labelContainer.height + (_ySpace * 2)), _local1, _local1, 0xF0F0F0); this.addChild(_ground); var _local2:Sprite = DrawUtils.getGradientRoundRect((_ground.width - 1), (_ground.height * 0.5), _local1, _local1, 0, 0, 0.01, 0.5); _ground.addChild(_local2); _local2.y = (_ground.height - (_local2.height + 1)); _groundHover = DrawUtils.getGradientRoundRect((_ground.width - 1), (_ground.height * 0.5), _local1, _local1, 0, 0, 0, 0.15); this.addChild(_groundHover); _groundHover.y = _local2.y; _groundHover.alpha = 0; BitmapUtils.addShadow(_ground, 4, 4, 1, 3, 0.45); } private function __onHide():void{ this.visible = false; } private function __addLabel():void{ _labelContainer = new Sprite(); this.addChild(_labelContainer); _labelContainer.x = _xSpace; _labelContainer.y = _ySpace; var _local1:String = String(LabelManager.Instance.getString("buttonAutopilot")); _label = (CostumTextfield.getCSSTextfield() as TextField); _labelContainer.addChild(_label); _label.htmlText = CSSMapper.map(_local1, "buttonAutopilot"); _labelHover = (CostumTextfield.getCSSTextfield() as TextField); _labelContainer.addChild(_labelHover); _labelHover.htmlText = CSSMapper.map(_local1, "buttonAutopilotHover"); _labelHover.alpha = 0; } public function show():void{ } } }//package eu.ecb.economia.ui.buttons.autopilotbutton
Section 158
//BigBlueButton (eu.ecb.economia.ui.buttons.bigbluebutton.BigBlueButton) package eu.ecb.economia.ui.buttons.bigbluebutton { import flash.events.*; import de.aperto.managers.*; import flash.display.*; import com.greensock.*; import de.aperto.utils.*; import flash.text.*; import eu.ecb.economia.ui.buttons.*; import com.greensock.easing.*; import de.aperto.text.*; public class BigBlueButton extends Button { private var _container:Sprite; private var _tfdHover:TextField; private var _tfd:TextField; private var _end:Bitmap; private var _endOffsetXSpace:int;// = 8 private var _onUpdate:Boolean; private var _begin:Bitmap; private var _middle:Bitmap; public function BigBlueButton(_arg1:String){ _container = new Sprite(); this.addChild(_container); __addLabel(_arg1); __addElements(); DisplayUtils.swapChildToTop(_tfd); DisplayUtils.swapChildToTop(_tfdHover); } override protected function __addedToStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, __addedToStage); _container.x = -((_container.width - _endOffsetXSpace)); __addEvents(); } private function __getBmD(_arg1:String):BitmapData{ return (new (LibraryManager.Instance.getClass(_arg1) as Class)(0, 0)); } public function show(_arg1:Function=null):void{ this.mouseEnabled = true; TweenMax.to(this, 20, {alpha:1, useFrames:true, overwrite:true, onComplete:_arg1, ease:Strong.easeOut}); } public function update(_arg1:String):void{ _onUpdate = true; this.mouseEnabled = !(_onUpdate); var _local2:Number = 0.3; var _local3:Number = _tfd.width; __addLabel(_arg1); _tfd.alpha = 0; _middle.width = _tfd.width; _end.x = (_middle.x + _middle.width); var _local4:Number = -((_container.width - _endOffsetXSpace)); _middle.width = _local3; _end.x = ((_middle.x + _middle.width) - 0.3); TweenMax.to(_middle, 20, {width:_tfd.width, useFrames:true, overwrite:true, onUpdate:__tweenOnUpdate, ease:Strong.easeOut}); TweenMax.to(_container, 20, {x:_local4, useFrames:true, overwrite:true, onComplete:__tweenOnFinish, ease:Strong.easeOut}); } public function hide(_arg1:Function=null):void{ this.mouseEnabled = false; TweenMax.to(this, 20, {alpha:0, useFrames:true, overwrite:true, onComplete:_arg1, ease:Strong.easeOut}); } private function __tweenOnUpdate():void{ _end.x = (_middle.x + _middle.width); } private function __addElements():void{ _begin = new Bitmap(__getBmD("BigBlueButtonBegin"), "auto", true); _middle = new Bitmap(__getBmD("BigBlueButtonMiddle"), "auto", true); _end = new Bitmap(__getBmD("BigBlueButtonEnd"), "auto", true); _middle.x = ((_begin.x + _begin.width) - 0.2); _middle.width = _tfd.width; _end.x = (_middle.x + _middle.width); _container.addChild(_begin); _container.addChild(_middle); _container.addChild(_end); } override protected function __setHover(_arg1:Boolean):void{ if (_onUpdate){ return; }; TweenMax.to(_tfd, 20, {alpha:(_arg1) ? 0 : 1, useFrames:true, overwrite:true, ease:Strong.easeOut}); TweenMax.to(_tfdHover, 20, {alpha:(_arg1) ? 1 : 0, useFrames:true, overwrite:true, ease:Strong.easeOut}); } private function __addLabel(_arg1:String):void{ if (_tfd){ DisplayUtils.removeDisplayObject(_tfd); DisplayUtils.removeDisplayObject(_tfdHover); _tfd = null; _tfdHover = null; }; _tfd = CostumTextfield.getCSSTextfield("left"); _container.addChild(_tfd); _tfd.htmlText = CSSMapper.map(_arg1, "bigBlueButton"); _tfd.x = 50; _tfd.y = int(((28 - (_tfd.height * 0.5)) + 0.5)); _tfdHover = CostumTextfield.getCSSTextfield("left"); _container.addChild(_tfdHover); _tfdHover.htmlText = CSSMapper.map(_arg1, "bigBlueButtonHover"); _tfdHover.x = _tfd.x; _tfdHover.y = _tfd.y; _tfdHover.alpha = 0; } private function __tweenOnFinish():void{ _onUpdate = false; this.mouseEnabled = !(_onUpdate); TweenMax.to(_tfd, 20, {alpha:1, useFrames:true, overwrite:true, ease:Strong.easeOut}); } } }//package eu.ecb.economia.ui.buttons.bigbluebutton
Section 159
//BigBlueSimpleButton (eu.ecb.economia.ui.buttons.bigbluebutton.BigBlueSimpleButton) package eu.ecb.economia.ui.buttons.bigbluebutton { import flash.events.*; import flash.display.*; import com.greensock.*; import de.aperto.utils.*; import flash.text.*; import eu.ecb.economia.ui.buttons.*; import com.greensock.easing.*; import de.aperto.text.*; public class BigBlueSimpleButton extends Button { private var _ySpace:int;// = 3 private var _ground:Sprite; private var _labelHover:TextField; private var _xSpace:int;// = 30 private var _labelContainer:Sprite; private var _label:TextField; private var _groundHover:Sprite; private var _labelStr:String; public function BigBlueSimpleButton(_arg1:String){ _labelStr = _arg1; this.visible = false; this.alpha = 0; } override protected function __setHover(_arg1:Boolean):void{ var _local2:Number = 15; var _local3:Function = Strong.easeOut; TweenMax.to(_label, _local2, {alpha:(_arg1) ? 0 : 1, useFrames:true, overwrite:true, ease:_local3}); TweenMax.to(_labelHover, _local2, {alpha:(_arg1) ? 1 : 0, useFrames:true, overwrite:true, ease:_local3}); TweenMax.to(_groundHover, _local2, {alpha:(_arg1) ? 1 : 0, useFrames:true, overwrite:true, ease:_local3}); } override protected function __addedToStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, __addedToStage); __addLabel(); __addGround(); DisplayUtils.swapChildToBottom(_ground); __addEvents(); } private function __addGround():void{ var _local1 = 12; _ground = DrawUtils.getRoundRect((_labelContainer.width + (_xSpace * 2)), (_labelContainer.height + (_ySpace * 2)), _local1, _local1, 792912); this.addChild(_ground); var _local2:Sprite = DrawUtils.getGradientRoundRect(_ground.width, (_ground.height * 0.5), _local1, _local1, 0xFFFFFF, 0xFFFFFF, 0.5, 0.01); _ground.addChild(_local2); _groundHover = DrawUtils.getGradientRoundRect(_ground.width, (_ground.height * 0.5), _local1, _local1, 0, 0, 0, 0.15); this.addChild(_groundHover); _groundHover.y = _local2.y; _groundHover.alpha = 0; BitmapUtils.addShadow(_ground, 4, 4, 1, 3, 0.45); } public function hide():void{ this.visible = false; } private function __addLabel():void{ _labelContainer = new Sprite(); this.addChild(_labelContainer); _labelContainer.x = _xSpace; _labelContainer.y = (_ySpace - 2); _label = (CostumTextfield.getCSSTextfield("left", false, false, true) as TextField); _labelContainer.addChild(_label); _label.htmlText = CSSMapper.map(_labelStr, "simpleBigBlueButton"); _labelHover = (CostumTextfield.getCSSTextfield("left", false, false, true) as TextField); _labelContainer.addChild(_labelHover); _labelHover.htmlText = CSSMapper.map(_labelStr, "simpleBigBlueButtonHover"); _labelHover.alpha = 0; } private function __onShow():void{ } private function __onHide():void{ this.visible = false; } public function show():void{ this.visible = true; this.alpha = 1; } } }//package eu.ecb.economia.ui.buttons.bigbluebutton
Section 160
//Checkbox (eu.ecb.economia.ui.buttons.checkbox.Checkbox) package eu.ecb.economia.ui.buttons.checkbox { import flash.events.*; import flash.display.*; import com.greensock.*; import de.aperto.utils.*; import eu.ecb.economia.ui.buttons.*; import com.greensock.easing.*; public class Checkbox extends Button { protected var checkbox:Sprite; public var mySource; private var _checked:Boolean; private var _arrow:Sprite; private var _ground:Sprite; private var _arrowMask:Sprite; public function Checkbox(){ checkbox = new Sprite(); this.addChild(checkbox); __addGround(); __addArrow(); super(); } override protected function __setHover(_arg1:Boolean):void{ } public function get checked():Boolean{ return (_checked); } private function __addGround():void{ var _local1 = 10; var _local2 = 17; _ground = DrawUtils.getRoundRect(_local2, _local2, _local1, _local1, 0xFFFFFF); checkbox.addChild(_ground); var _local3:Sprite = DrawUtils.getGradientRoundRect((_ground.width - 1), (_ground.height * 0.5), _local1, _local1, 0xE2E2E2, 0xE2E2E2, 0, 1); _ground.addChild(_local3); _local3.y = (_ground.height - (_local3.height + 1)); var _local4:Sprite = DrawUtils.getRoundRect(_local2, _local2, _local1, _local1, 0xFFFFFF, 0xD3D3D3, 1, true); checkbox.addChild(_local4); BitmapUtils.addShadow(_ground, 4, 4, 2, 3, 0.45, 45); } override protected function __addedToStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, __addedToStage); __addEvents(); } override protected function __mouseEventHandler(_arg1:MouseEvent):void{ if (_isActive){ return; }; switch (_arg1.type){ case MouseEvent.MOUSE_OVER: break; case MouseEvent.MOUSE_OUT: break; case MouseEvent.MOUSE_DOWN: break; case MouseEvent.MOUSE_UP: break; case MouseEvent.CLICK: checked = !(_checked); break; }; } private function __addArrow():void{ _arrow = new Sprite(); checkbox.addChild(_arrow); _arrow.x = 3; _arrow.y = 4; var _local1:Sprite = DrawUtils.getRoundRect((_ground.width * 0.5), 3, 3, 3, 0xCC00); _arrow.addChild(_local1); _local1.rotation = 45; _local1 = DrawUtils.getRoundRect(_ground.width, 3, 3, 3, 0xCC00); _local1.rotation = -55; _local1.x = ((_ground.width * 0.5) - 6); _local1.y = ((_ground.width * 0.5) - 1); _arrow.addChild(_local1); _arrowMask = DrawUtils.getRect(_ground.width, _ground.width); checkbox.addChild(_arrowMask); _arrow.mask = _arrowMask; _arrowMask.scaleX = 0; } public function set checked(_arg1:Boolean):void{ _checked = _arg1; TweenMax.to(_arrowMask, 20, {scaleX:(_checked) ? 1 : 0, useFrames:true, overwrite:true, ease:Strong.easeOut}); } override protected function __soundOverHandler(_arg1:MouseEvent):void{ } } }//package eu.ecb.economia.ui.buttons.checkbox
Section 161
//CloseButton (eu.ecb.economia.ui.buttons.closebutton.CloseButton) package eu.ecb.economia.ui.buttons.closebutton { import flash.events.*; import flash.display.*; import com.greensock.*; import de.aperto.utils.*; import eu.ecb.economia.ui.buttons.*; import com.greensock.easing.*; public class CloseButton extends Button { private var _outlineStrength:int; private var _ground:Sprite; public var mySource; private var _radius:int; private var _closeBtnCross:Sprite; public function CloseButton(_arg1:Number=13, _arg2:Number=3){ _radius = _arg1; _outlineStrength = _arg2; __addGround(); __addCross(); } override protected function __setHover(_arg1:Boolean):void{ TweenMax.to(_closeBtnCross, 15, {rotation:(_arg1) ? 90 : 0, useFrames:true, overwrite:true, ease:Strong.easeOut}); } override protected function __addedToStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, __addedToStage); __addEvents(); } private function __addGround():void{ _ground = DrawUtils.getGradientCircle(_radius, 0x464646, 0, 1, 1, 0xFFFFFF, _outlineStrength); this.addChild(_ground); } override protected function __soundOverHandler(_arg1:MouseEvent):void{ } override protected function __soundClickHandler(_arg1:MouseEvent):void{ } private function __addCross():void{ _closeBtnCross = new Sprite(); this.addChild(_closeBtnCross); var _local1:Sprite = DrawUtils.getRoundRect(14, 3, 3, 3, 0xFFFFFF); _local1.rotation = 45; _local1.x = -4; _local1.y = -6; _closeBtnCross.addChild(_local1); _local1 = DrawUtils.getRoundRect(14, 3, 3, 3, 0xFFFFFF); _local1.x = -6; _local1.y = 4; _local1.rotation = -45; _closeBtnCross.addChild(_local1); } } }//package eu.ecb.economia.ui.buttons.closebutton
Section 162
//GlossaryContentNavigationButton (eu.ecb.economia.ui.buttons.glossary.GlossaryContentNavigationButton) package eu.ecb.economia.ui.buttons.glossary { import flash.events.*; import flash.display.*; import com.greensock.*; import de.aperto.utils.*; import flash.text.*; import eu.ecb.economia.ui.buttons.*; import eu.ecb.economia.*; import com.greensock.easing.*; import de.aperto.text.*; public class GlossaryContentNavigationButton extends Button { private var _xBorderSpace:int;// = 10 private var _groundSelect:Sprite; private var _height:int;// = 30 private var _labelHover:TextField; private var _isSelected:Boolean; private var _labelSelect:TextField; private var _labelContainer:Sprite; private var _width:int;// = 170 private var _yBorderSpace:int;// = 3 private var _color:uint;// = 0x666666 private var _ground:Sprite; private var _label:TextField; private var _groundHover:Sprite; public function GlossaryContentNavigationButton(_arg1:String){ __addLabel(_arg1); __addGround(); DisplayUtils.swapChildToTop(_labelContainer); } override protected function __addedToStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, __addedToStage); __addEvents(); } override protected function __setHover(_arg1:Boolean):void{ if (_isSelected){ return; }; var _local2:Number = (_arg1) ? 10 : 15; var _local3:Function = (_arg1) ? Strong.easeOut : Strong.easeOut; TweenMax.to(_groundHover, _local2, {alpha:(_arg1) ? 0.15 : 0, useFrames:true, overwrite:true, ease:_local3}); } override protected function __soundOverHandler(_arg1:MouseEvent):void{ } private function __addGround():void{ var _local1:int = Defaults.GLOSSARY_CONTENT_CORNER_ROUND; _ground = __getGlossyRoundGround(_width, _height, _local1); this.addChild(_ground); _groundHover = DrawUtils.getRoundRect(_ground.width, _ground.height, _local1, _local1, 0); this.addChild(_groundHover); _groundHover.alpha = 0; _groundSelect = new Sprite(); this.addChild(_groundSelect); var _local2:Sprite = DrawUtils.getRect(_ground.width, _ground.height, _color); _groundSelect.addChild(_local2); _local2.y = (-(_local2.height) * 0.5); _groundSelect.y = (_local2.height * 0.5); _groundSelect.scaleY = 0; BitmapUtils.addShadow(_groundSelect, 6, 6, 4, 3, 0.5, 45, 0, true); var _local3:Sprite = DrawUtils.getRoundRect(_ground.width, _ground.height, _local1, _local1); this.addChild(_local3); _groundSelect.mask = _local3; BitmapUtils.addShadow(_ground, 1, 1, 2, 3, 0.3, 70); } private function __getGlossyRoundGround(_arg1:Number, _arg2:Number, _arg3:int):Sprite{ var _local4:Sprite = new Sprite(); var _local5:Sprite = new Sprite(); _local4.addChild(_local5); var _local6:Sprite = DrawUtils.getRoundRect(_arg1, _arg2, _arg3, _arg3, 0xFFFFFF); _local5.addChild(_local6); var _local7:Sprite = DrawUtils.getRect(_arg1, _arg2); _local5.addChild(_local7); _local6.mask = _local7; _local7.alpha = 0; _local6 = DrawUtils.getRoundRect(_arg1, _arg2, _arg3, _arg3, 0xEDEDED); _local5.addChild(_local6); _local7 = DrawUtils.getRect(_arg1, (_arg2 * 0.5)); _local5.addChild(_local7); _local6.mask = _local7; _local7.y = (_arg2 * 0.5); return (_local5); } private function __getTextField(_arg1:String, _arg2:String):TextField{ var _local3:TextField = (CostumTextfield.getCSSTextfield("left", false, false, true, "normal") as TextField); _local3.htmlText = CSSMapper.map(_arg1, _arg2); return (_local3); } public function set select(_arg1:Boolean):void{ _isSelected = _arg1; var _local2:Number = (_arg1) ? 25 : 35; var _local3:Function = (_arg1) ? Strong.easeInOut : Emotion.strongInSoftOut; TweenMax.to(_groundSelect, 15, {scaleY:(_isSelected) ? 1 : 0, alpha:(_isSelected) ? 1 : 0, useFrames:true, overwrite:true, ease:Emotion.strongInSoftOut}); TweenMax.to(_labelSelect, 15, {alpha:(_arg1) ? 1 : 0, useFrames:true, overwrite:true, ease:Strong.easeOut}); TweenMax.to(_label, 15, {alpha:(_arg1) ? 0 : 1, useFrames:true, overwrite:true, ease:Strong.easeOut}); TweenMax.to(_labelHover, 15, {alpha:(_arg1) ? 0 : 1, useFrames:true, overwrite:true, ease:Strong.easeOut}); _groundHover.alpha = (_arg1) ? 0.15 : 0; var _local4:Number = (_arg1) ? 0.1 : 0.3; BitmapUtils.addShadow(_ground, 1, 1, 2, 3, _local4, 70); } private function __addLabel(_arg1:String):void{ _labelContainer = new Sprite(); this.addChild(_labelContainer); _labelContainer.x = _xBorderSpace; _label = (_labelContainer.addChild(__getTextField(_arg1, "glossaryContentNavigationButton")) as TextField); (_labelSelect = (_labelContainer.addChild(__getTextField(_arg1, "glossaryContentNavigationButtonSelect")) as TextField)).alpha = 0; (_labelHover = (_labelContainer.addChild(__getTextField(_arg1, "glossaryContentNavigationButtonHover")) as TextField)).alpha = 0; var _local2:Number = (_labelContainer.height + (_yBorderSpace * 2)); if (_local2 > (_height - (_yBorderSpace * 2))){ _height = _local2; }; _labelContainer.y = ((_height * 0.5) - (_labelContainer.height * 0.5)); } public function get select():Boolean{ return (_isSelected); } } }//package eu.ecb.economia.ui.buttons.glossary
Section 163
//GlossaryNavigationButton (eu.ecb.economia.ui.buttons.glossary.GlossaryNavigationButton) package eu.ecb.economia.ui.buttons.glossary { import flash.events.*; import flash.display.*; import com.greensock.*; import de.aperto.utils.*; import flash.text.*; import eu.ecb.economia.ui.buttons.*; import com.greensock.easing.*; import de.aperto.text.*; public class GlossaryNavigationButton extends Button { private var _xBorderSpace:int;// = 15 private var _groundSelect:Sprite; private var _labelHover:TextField; private var _isSelected:Boolean; private var _labelSelect:TextField; private var _labelContainer:Sprite; private var _width:int;// = 60 private var _yBorderSpace:int;// = 1 private var _color:uint;// = 0x666666 private var _ground:Sprite; private var _label:TextField; private var _groundHover:Sprite; public function GlossaryNavigationButton(_arg1:String){ __addLabel(_arg1); __addGround(); DisplayUtils.swapChildToTop(_labelContainer); } override protected function __addedToStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, __addedToStage); __addEvents(); } override protected function __setHover(_arg1:Boolean):void{ if (_isSelected){ return; }; var _local2:Number = (_arg1) ? 10 : 15; var _local3:Function = (_arg1) ? Strong.easeOut : Strong.easeOut; TweenMax.to(_groundHover, _local2, {alpha:(_arg1) ? 0.15 : 0, useFrames:true, overwrite:true, ease:_local3}); } override protected function __soundOverHandler(_arg1:MouseEvent):void{ } private function __addGround():void{ var _local1 = 20; _ground = __getGlossyRoundGround(_width, (_labelContainer.height + (_yBorderSpace * 2)), _local1); this.addChild(_ground); _groundHover = DrawUtils.getRoundRect(_ground.width, _ground.height, _local1, _local1, 0); this.addChild(_groundHover); _groundHover.alpha = 0; _groundSelect = new Sprite(); this.addChild(_groundSelect); var _local2:Sprite = DrawUtils.getRect(_ground.width, _ground.height, _color); _groundSelect.addChild(_local2); _local2.y = (-(_local2.height) * 0.5); _groundSelect.y = (_local2.height * 0.5); _groundSelect.scaleY = 0; BitmapUtils.addShadow(_groundSelect, 6, 6, 4, 3, 0.5, 45, 0, true); var _local3:Sprite = DrawUtils.getRoundRect(_ground.width, _ground.height, _local1, _local1); this.addChild(_local3); _groundSelect.mask = _local3; BitmapUtils.addShadow(_ground, 1, 1, 2, 3, 0.3, 70); } private function __getGlossyRoundGround(_arg1:Number, _arg2:Number, _arg3:int):Sprite{ var _local4:Sprite = new Sprite(); var _local5:Sprite = new Sprite(); _local4.addChild(_local5); var _local6:Sprite = DrawUtils.getRoundRect(_arg1, _arg2, _arg3, _arg3, 0xFFFFFF); _local5.addChild(_local6); var _local7:Sprite = DrawUtils.getRect(_arg1, _arg2); _local5.addChild(_local7); _local6.mask = _local7; _local7.alpha = 0; _local6 = DrawUtils.getRoundRect(_arg1, _arg2, _arg3, _arg3, 0xEDEDED); _local5.addChild(_local6); _local7 = DrawUtils.getRect(_arg1, (_arg2 * 0.5)); _local5.addChild(_local7); _local6.mask = _local7; _local7.y = (_arg2 * 0.5); return (_local5); } private function __getTextField(_arg1:String, _arg2:String):TextField{ var _local3:TextField = (CostumTextfield.getCSSTextfield("left", false, false, false, "normal") as TextField); _local3.htmlText = CSSMapper.map(_arg1, _arg2); return (_local3); } public function set select(_arg1:Boolean):void{ _isSelected = _arg1; var _local2:Number = (_arg1) ? 25 : 35; var _local3:Function = (_arg1) ? Strong.easeInOut : Emotion.strongInSoftOut; TweenMax.to(_groundSelect, 15, {scaleY:(_isSelected) ? 1 : 0, alpha:(_isSelected) ? 1 : 0, useFrames:true, overwrite:true, ease:Emotion.strongInSoftOut}); TweenMax.to(_labelSelect, 15, {alpha:(_arg1) ? 1 : 0, useFrames:true, overwrite:true, ease:Strong.easeOut}); TweenMax.to(_label, 15, {alpha:(_arg1) ? 0 : 1, useFrames:true, overwrite:true, ease:Strong.easeOut}); TweenMax.to(_labelHover, 15, {alpha:(_arg1) ? 0 : 1, useFrames:true, overwrite:true, ease:Strong.easeOut}); _groundHover.alpha = (_arg1) ? 0.15 : 0; var _local4:Number = (_arg1) ? 0.1 : 0.3; BitmapUtils.addShadow(_ground, 1, 1, 2, 3, _local4, 70); } private function __addLabel(_arg1:String):void{ _labelContainer = new Sprite(); this.addChild(_labelContainer); _labelContainer.x = _xBorderSpace; _labelContainer.y = _yBorderSpace; _label = (_labelContainer.addChild(__getTextField(_arg1, "glossaryNavigationButton")) as TextField); (_labelSelect = (_labelContainer.addChild(__getTextField(_arg1, "glossaryNavigationButtonSelect")) as TextField)).alpha = 0; (_labelHover = (_labelContainer.addChild(__getTextField(_arg1, "glossaryNavigationButtonHover")) as TextField)).alpha = 0; _width = (_labelContainer.width + (_xBorderSpace * 2)); } public function get select():Boolean{ return (_isSelected); } } }//package eu.ecb.economia.ui.buttons.glossary
Section 164
//GraphboxDotButton (eu.ecb.economia.ui.buttons.graphbox.GraphboxDotButton) package eu.ecb.economia.ui.buttons.graphbox { import flash.events.*; import flash.display.*; import com.greensock.*; import de.aperto.utils.*; import eu.ecb.economia.manager.*; import eu.ecb.economia.ui.buttons.*; import com.greensock.easing.*; import eu.ecb.economia.text.*; public class GraphboxDotButton extends Button { private var _masterContainer:Sprite; private var _y:Number;// = 0 private var _container:Sprite; private var _x:Number;// = 0 private var _colorGround:Sprite; private var _cornerVal:int;// = 15 private var _allowRender:Boolean;// = true private var _Math:Object; private var _normHeight:int;// = 15 private var _isSelect:Boolean; public var filterId:int; private var _height:int; private var _width:int; private var _whiteGround:Sprite; private var _hit:Sprite; private var _color:uint;// = 0xFFFFFF private var _diff:Number;// = 0 public var renderLinesCallback:Function; private var _value:Number;// = 0 private var _normWidth:int;// = 15 private var _borderSpace:int;// = 3 public function GraphboxDotButton(){ _width = _normWidth; _height = _normHeight; super(); visible = false; alpha = 0; _Math = Math; _masterContainer = new Sprite(); this.addChild(_masterContainer); } override protected function __addedToStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, __addedToStage); __addHit(); __addDot(); __addEvents(); BitmapUtils.addShadow(this, 7, 7, 0, 2, 0.3, 90); this.buttonMode = false; } public function get diff():Number{ return (_diff); } override public function set y(_arg1:Number):void{ if (_Math.abs((_Math.abs(_arg1) - _Math.abs(_masterContainer.y))) < 5){ _masterContainer.y = _arg1; if (renderLinesCallback != null){ renderLinesCallback(); }; } else { TweenMax.to(_masterContainer, 15, {y:_arg1, useFrames:true, onUpdate:__yOnUpdate, overwrite:true, ease:Strong.easeOut}); }; } override public function get y():Number{ return (_masterContainer.y); } private function __addHit():void{ _hit = DrawUtils.getRect(_width, _height); _masterContainer.addChild(_hit); _hit.alpha = 0; _hit.x = (-(_hit.width) * 0.5); } override public function set width(_arg1:Number):void{ _width = (_normWidth + _arg1); } public function set diff(_arg1:Number):void{ _diff = _arg1; } private function __onHide():void{ this.visible = false; } override public function get height():Number{ return (_hit.height); } private function __hitOnUpdateComplete():void{ if (renderLinesCallback != null){ renderLinesCallback(); }; } override protected function __mouseEventHandler(_arg1:MouseEvent):void{ if (((!(_allowRender)) || ((this.alpha == 0)))){ this.visible = false; return; }; switch (_arg1.type){ case MouseEvent.MOUSE_OVER: ToolTipManager.addText(__getToolTipLabel()); ToolTipManager.textColor(color); break; case MouseEvent.MOUSE_OUT: ToolTipManager.hide(); break; }; } private function __getRoundRect(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=0, _arg6:Number=0, _arg7:Number=0, _arg8:Boolean=false):Sprite{ var _local9:Sprite = new Sprite(); _local9.graphics.beginFill(_arg5, (_arg8) ? 0 : 1); if (_arg7 > 0){ _local9.graphics.lineStyle(_arg7, _arg6, 1, false, "none"); }; _local9.graphics.drawRoundRect(0, 0, _arg1, _arg2, _arg3, _arg4); _local9.graphics.endFill(); return (_local9); } public function get allowRender():Boolean{ return (_allowRender); } private function __yOnUpdate():void{ if (renderLinesCallback != null){ renderLinesCallback(); }; } public function hide():void{ _isSelect = false; TweenMax.to(this, 15, {alpha:0, useFrames:true, onUpdate:__onHide, overwrite:true, ease:Strong.easeOut}); } public function set color(_arg1:uint):void{ _color = _arg1; TweenMax.to(_colorGround, 20, {tint:_color, useFrames:true, overwrite:true}); } override public function set height(_arg1:Number):void{ _height = (_normHeight + _arg1); var _local2:Function = ((Math.abs((_hit.height - _height)) < 1)) ? null : __hitOnUpdateComplete; TweenMax.to(_hit, 20, {height:_height, useFrames:true, onUpdate:__hitOnUpdate, onComplete:_local2, overwrite:true, ease:Strong.easeOut}); } public function setInitYPosition(_arg1:Number):void{ _masterContainer.y = _arg1; } override public function get width():Number{ return (_hit.width); } private function __addDot():void{ if (_container){ DisplayUtils.removeDisplayObject(_container); _container = null; }; if (!_allowRender){ return; }; _container = new Sprite(); _masterContainer.addChild(_container); _whiteGround = new Sprite(); _container.addChild(_whiteGround); var _local1:Sprite = __getRoundRect(_hit.width, _hit.height, _cornerVal, _cornerVal, 0xFFFFFF); _whiteGround.addChild(_local1); _colorGround = new Sprite(); _container.addChild(_colorGround); _local1 = __getRoundRect((_hit.width - (_borderSpace * 2)), (_hit.height - (_borderSpace * 2)), _cornerVal, _cornerVal, _color); _colorGround.addChild(_local1); _local1.x = _borderSpace; _local1.y = _borderSpace; _hit.y = (-(_hit.height) * 0.5); _container.x = (-(_hit.width) * 0.5); _container.y = (-(_hit.height) * 0.5); } private function __hitOnUpdate():void{ __addDot(); } public function reset():void{ _height = _normHeight; var _local1:Function = ((Math.abs((_hit.height - _height)) < 1)) ? null : __hitOnUpdateComplete; TweenMax.to(_hit, 15, {height:_height, useFrames:true, onUpdate:__hitOnUpdate, onComplete:_local1, overwrite:true, ease:Strong.easeOut}); } public function set value(_arg1:Number):void{ _value = _arg1; } public function get color():uint{ return (_color); } private function __getToolTipLabel():String{ var _local1:String; var _local2:Number; var _local3:Number; if (_diff > 0){ _local2 = (_value - _diff); _local3 = (_value + _diff); _local1 = String(((StringMapper.mapPercent(_local2, false) + " – ") + StringMapper.mapPercent(_local3))); } else { _local1 = StringMapper.mapPercent(_value); }; return (String((("<b>" + _local1) + "</b>"))); } public function get value():Number{ return (_value); } public function set select(_arg1:Boolean):void{ _isSelect = _arg1; } public function get select():Boolean{ return (_isSelect); } public function show():void{ if (!_allowRender){ return; }; this.visible = true; _isSelect = true; TweenMax.to(this, 15, {alpha:1, useFrames:true, overwrite:true, ease:Strong.easeOut}); } public function set allowRender(_arg1:Boolean):void{ _allowRender = _arg1; this.visible = _allowRender; } } }//package eu.ecb.economia.ui.buttons.graphbox
Section 165
//GraphboxGridButton (eu.ecb.economia.ui.buttons.graphbox.GraphboxGridButton) package eu.ecb.economia.ui.buttons.graphbox { import flash.events.*; import eu.ecb.economia.events.*; import flash.display.*; import com.greensock.*; import de.aperto.utils.*; import eu.ecb.economia.ui.buttons.*; import eu.ecb.economia.*; import com.greensock.easing.*; public class GraphboxGridButton extends Button { private var _height:int;// = 350 private var _line:Sprite; private var _arrowIcon:Sprite; private var _btnWidth:int;// = 50 private var _btnHeight:int;// = 30 private var _arrowBtn:Sprite; private var _isOpen:Boolean; override protected function __addedToStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, __addedToStage); __addArrowButton(); __addLine(); __addEvents(); } override public function set height(_arg1:Number):void{ _height = int((_arg1 + 0.5)); __addLine(); } private function __addLine():void{ if (_line){ DisplayUtils.removeDisplayObject(_line); _line = null; }; _line = __getGlossyRoundGround(15, _height, Defaults.GRAPHBOX_ROUNDCORNER_VAL); this.addChild(_line); _line.x = -(((Defaults.GRAPHBOX_ROUNDCORNER_VAL * 0.5) + 3)); BitmapUtils.addShadow(_line, 2, 2, 0, 3, 0.2, 0, 0); _arrowBtn.y = ((_height * 0.5) - (_arrowBtn.height * 0.5)); } override protected function __setHover(_arg1:Boolean):void{ } private function __addArrowButton():void{ var _local1 = 9; var _local2 = 18; _arrowBtn = new Sprite(); this.addChild(_arrowBtn); super.hitArea = _arrowBtn; _arrowBtn.addChild(__getGlossyRoundGround(_btnWidth, _btnHeight, 30)); _arrowIcon = new Sprite(); _arrowBtn.addChild(_arrowIcon); var _local3:Sprite = new Sprite(); _arrowIcon.addChild(_local3); _local3.graphics.beginFill(0xB3B3B3); _local3.graphics.lineTo(_local1, (_local2 * 0.5)); _local3.graphics.lineTo(0, _local2); _local3.graphics.lineTo(0, 0); _local3.graphics.endFill(); _local3.x = -((_local3.width * 0.5)); _local3.y = (-(_local3.height) * 0.5); BitmapUtils.addShadow(_local3, 3, 3, 2, 3, 0.5, 45, 0, true); _arrowIcon.x = (_btnWidth / 4); _arrowIcon.y = int(((_btnHeight * 0.5) + 0.5)); } override protected function __soundOverHandler(_arg1:MouseEvent):void{ } public function rotateArrow(_arg1:Boolean):void{ var _local2:Number = (_arg1) ? 180 : 0; var _local3:Number = ((_btnWidth / 4) - (_arg1) ? 3 : 0); TweenMax.to(_arrowIcon, 20, {x:_local3, rotation:_local2, useFrames:true, overwrite:true, ease:Strong.easeInOut}); } private function __getGlossyRoundGround(_arg1:Number, _arg2:Number, _arg3:int):Sprite{ var _local4:Sprite = new Sprite(); var _local5:Sprite = new Sprite(); _local4.addChild(_local5); var _local6:Sprite = DrawUtils.getRoundRect(_arg1, _arg2, _arg3, _arg3, 0xFFFFFF); _local5.addChild(_local6); var _local7:Sprite = DrawUtils.getRect(_arg1, _arg2); _local5.addChild(_local7); _local6.mask = _local7; _local7.x = (_arg1 * 0.5); _local6 = DrawUtils.getRoundRect(_arg1, _arg2, _arg3, _arg3, 0xEDEDED); _local5.addChild(_local6); _local7 = DrawUtils.getRect((_arg1 * 0.5), (_arg2 * 0.5)); _local5.addChild(_local7); _local6.mask = _local7; _local7.x = (_arg1 * 0.5); _local7.y = (_arg2 * 0.5); _local5.x = -((_arg1 * 0.5)); return (_local5); } override protected function __soundClickHandler(_arg1:MouseEvent):void{ } override protected function __mouseEventHandler(_arg1:MouseEvent):void{ if (_isActive){ return; }; switch (_arg1.type){ case MouseEvent.CLICK: _isOpen = !(_isOpen); dispatchEvent(new ButtonEvent(ButtonEvent.CLICK, true, true)); break; }; } } }//package eu.ecb.economia.ui.buttons.graphbox
Section 166
//MultiGraphFilterButton (eu.ecb.economia.ui.buttons.graphbox.MultiGraphFilterButton) package eu.ecb.economia.ui.buttons.graphbox { import flash.events.*; import eu.ecb.economia.events.*; import flash.display.*; import com.greensock.*; import de.aperto.utils.*; import flash.text.*; import eu.ecb.economia.ui.buttons.*; import com.greensock.easing.*; import de.aperto.text.*; import eu.ecb.economia.text.*; public class MultiGraphFilterButton extends Button { private var _xBorderSpace:int;// = 8 private var _valueFieldXPos:int;// = 115 private var _labelContainer:Sprite; private var _isSelected:Boolean; private var _numLabelContainer:Sprite; private var _filterId:int; private var _ground:Sprite; private var _groundHover:Sprite; private var _isLocked:Boolean; private var _groundSelect:Sprite; private var _width:int;// = 165 private var _numLabelSelect:TextField; private var _labelSelect:TextField; private var _yBorderSpace:int;// = 1 private var _color:uint; private var _numLabel:TextField; private var _value:Number; private var _label:TextField; public function MultiGraphFilterButton(_arg1:String, _arg2:uint){ _color = _arg2; __addLabel(_arg1); __addGround(); DisplayUtils.swapChildToTop(_labelContainer); DisplayUtils.swapChildToTop(_numLabelContainer); } override protected function __addedToStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, __addedToStage); __addEvents(); } override protected function __soundOverHandler(_arg1:MouseEvent):void{ } private function __updateNumContainerPosition():void{ _numLabel.x = ((_width - ((_width - _valueFieldXPos) * 0.5)) - (_numLabel.width * 0.5)); _numLabelSelect.x = _numLabel.x; _numLabelContainer.y = ((_labelContainer.y + (_labelContainer.height * 0.5)) - (_numLabelContainer.height * 0.5)); } private function __addGround():void{ var _local1 = 20; _ground = __getGlossyRoundGround(_width, (_labelContainer.height + (_yBorderSpace * 2)), _local1); this.addChild(_ground); _groundHover = DrawUtils.getRoundRect(_ground.width, _ground.height, _local1, _local1, 0); this.addChild(_groundHover); _groundHover.alpha = 0; _groundSelect = new Sprite(); this.addChild(_groundSelect); var _local2:Sprite = DrawUtils.getRect(_ground.width, _ground.height, _color); _groundSelect.addChild(_local2); _local2.y = (-(_local2.height) * 0.5); _groundSelect.y = (_local2.height * 0.5); _groundSelect.scaleY = 0; var _local3:Sprite = DrawUtils.getRoundRect(_ground.width, _ground.height, _local1, _local1); this.addChild(_local3); _groundSelect.mask = _local3; var _local4:Sprite = DrawUtils.getSplineLine((_ground.height - 4), 0, 0xFFFFFF, 0.15, 0.5); this.addChild(_local4); _local4.x = _valueFieldXPos; _local4.y = 2; BitmapUtils.addShadow(_ground, 1, 1, 2, 3, 0.3, 70); } private function __getGlossyRoundGround(_arg1:Number, _arg2:Number, _arg3:int):Sprite{ var _local4:Sprite = new Sprite(); var _local5:Sprite = new Sprite(); _local4.addChild(_local5); var _local6:Sprite = DrawUtils.getRoundRect(_arg1, _arg2, _arg3, _arg3, 0xFFFFFF); _local5.addChild(_local6); var _local7:Sprite = DrawUtils.getRect(_arg1, _arg2); _local5.addChild(_local7); _local6.mask = _local7; _local7.alpha = 0; _local6 = DrawUtils.getRoundRect(_arg1, _arg2, _arg3, _arg3, 0xEDEDED); _local5.addChild(_local6); _local7 = DrawUtils.getRect(_arg1, (_arg2 * 0.5)); _local5.addChild(_local7); _local6.mask = _local7; _local7.y = (_arg2 * 0.5); return (_local5); } private function __addLabel(_arg1:String):void{ _labelContainer = new Sprite(); this.addChild(_labelContainer); _numLabelContainer = new Sprite(); this.addChild(_numLabelContainer); _labelContainer.x = _xBorderSpace; _labelContainer.y = _yBorderSpace; _label = (_labelContainer.addChild(__getTextField(_arg1, "economicDataFilterButton")) as TextField); (_labelSelect = (_labelContainer.addChild(__getTextField(_arg1, "economicDataFilterButtonSelect")) as TextField)).alpha = 0; _numLabel = (_numLabelContainer.addChild(__getTextField("0.00", "economicDataFilterButtonNumLabel")) as TextField); (_numLabelSelect = (_numLabelContainer.addChild(__getTextField("0.00", "economicDataFilterButtonNumLabelSelect")) as TextField)).alpha = 0; __updateNumContainerPosition(); } override protected function __mouseEventHandler(_arg1:MouseEvent):void{ if (((_isActive) || (_isLocked))){ return; }; switch (_arg1.type){ case MouseEvent.MOUSE_OVER: __setHover(true); dispatchEvent(new ButtonEvent(ButtonEvent.MOUSE_OVER, true, true)); break; case MouseEvent.MOUSE_OUT: __setHover(false); dispatchEvent(new ButtonEvent(ButtonEvent.MOUSE_OUT, true, true)); break; case MouseEvent.CLICK: dispatchEvent(new ButtonEvent(ButtonEvent.CLICK, true, true)); break; }; } public function set color(_arg1:uint):void{ _color = _arg1; TweenMax.to(_groundSelect, 1, {tint:_arg1, useFrames:true, overwrite:true}); } public function get filterId():int{ return (_filterId); } public function set lock(_arg1:Boolean):void{ _isLocked = _arg1; this.buttonMode = !(_isLocked); } override protected function __setHover(_arg1:Boolean):void{ if (((_isSelected) || (_isLocked))){ return; }; var _local2:Number = (_arg1) ? 10 : 15; var _local3:Function = (_arg1) ? Strong.easeOut : Strong.easeOut; TweenMax.to(_groundHover, _local2, {alpha:(_arg1) ? 0.15 : 0, useFrames:true, overwrite:true, ease:_local3}); } public function set value(_arg1:Number):void{ _value = _arg1; var _local2:String = StringMapper.mapPercent(_arg1); _numLabel.htmlText = CSSMapper.map(_local2, "economicDataFilterButtonNumLabel"); _numLabelSelect.htmlText = CSSMapper.map(_local2, "economicDataFilterButtonNumLabelSelect"); __updateNumContainerPosition(); } public function set filterId(_arg1:int):void{ _filterId = _arg1; } public function get value():Number{ return (_value); } private function __getTextField(_arg1:String, _arg2:String):TextField{ var _local3:TextField = (CostumTextfield.getCSSTextfield("left", false, false, true, "normal") as TextField); _local3.htmlText = CSSMapper.map(_arg1, _arg2); return (_local3); } public function set select(_arg1:Boolean):void{ if (_isLocked){ return; }; _isSelected = _arg1; var _local2:Number = (_arg1) ? 25 : 35; var _local3:Function = (_arg1) ? Strong.easeInOut : Emotion.strongInSoftOut; TweenMax.to(_groundSelect, 15, {scaleY:(_isSelected) ? 1 : 0, alpha:(_isSelected) ? 1 : 0, useFrames:true, overwrite:true, ease:Emotion.strongInSoftOut}); TweenMax.to(_labelSelect, 15, {alpha:(_arg1) ? 1 : 0, useFrames:true, overwrite:true, ease:Strong.easeOut}); TweenMax.to(_numLabelSelect, 15, {alpha:(_arg1) ? 1 : 0, useFrames:true, overwrite:true, ease:Strong.easeOut}); TweenMax.to(_label, 15, {alpha:(_arg1) ? 0 : 1, useFrames:true, overwrite:true, ease:Strong.easeOut}); TweenMax.to(_numLabel, 15, {alpha:(_arg1) ? 0 : 1, useFrames:true, overwrite:true, ease:Strong.easeOut}); var _local4:Number = (_arg1) ? 0.1 : 0.3; BitmapUtils.addShadow(_ground, 1, 1, 2, 3, _local4, 70); } public function get select():Boolean{ return (_isSelected); } } }//package eu.ecb.economia.ui.buttons.graphbox
Section 167
//HighscoreNavigationButton (eu.ecb.economia.ui.buttons.highscore.HighscoreNavigationButton) package eu.ecb.economia.ui.buttons.highscore { import flash.events.*; import flash.display.*; import com.greensock.*; import de.aperto.utils.*; import flash.text.*; import eu.ecb.economia.ui.buttons.*; import com.greensock.easing.*; import de.aperto.text.*; public class HighscoreNavigationButton extends Button { private var _xBorderSpace:int;// = 15 private var _groundSelect:Sprite; private var _labelHover:TextField; private var _isSelected:Boolean; private var _labelSelect:TextField; private var _labelContainer:Sprite; private var _width:int;// = 60 private var _yBorderSpace:int;// = 1 private var _color:uint;// = 0x666666 private var _ground:Sprite; private var _label:TextField; private var _groundHover:Sprite; public function HighscoreNavigationButton(_arg1:String){ __addLabel(_arg1); __addGround(); DisplayUtils.swapChildToTop(_labelContainer); } override protected function __addedToStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, __addedToStage); __addEvents(); } override protected function __setHover(_arg1:Boolean):void{ if (_isSelected){ return; }; var _local2:Number = (_arg1) ? 10 : 15; var _local3:Function = (_arg1) ? Strong.easeOut : Strong.easeOut; TweenMax.to(_groundHover, _local2, {alpha:(_arg1) ? 0.15 : 0, useFrames:true, overwrite:true, ease:_local3}); } override protected function __soundOverHandler(_arg1:MouseEvent):void{ } private function __addGround():void{ var _local1 = 20; _ground = __getGlossyRoundGround(_width, (_labelContainer.height + (_yBorderSpace * 2)), _local1); this.addChild(_ground); _groundHover = DrawUtils.getRoundRect(_ground.width, _ground.height, _local1, _local1, 0); this.addChild(_groundHover); _groundHover.alpha = 0; _groundSelect = new Sprite(); this.addChild(_groundSelect); var _local2:Sprite = DrawUtils.getRect(_ground.width, _ground.height, _color); _groundSelect.addChild(_local2); _local2.y = (-(_local2.height) * 0.5); _groundSelect.y = (_local2.height * 0.5); _groundSelect.scaleY = 0; BitmapUtils.addShadow(_groundSelect, 6, 6, 4, 3, 0.5, 45, 0, true); var _local3:Sprite = DrawUtils.getRoundRect(_ground.width, _ground.height, _local1, _local1); this.addChild(_local3); _groundSelect.mask = _local3; BitmapUtils.addShadow(_ground, 1, 1, 2, 3, 0.3, 70); } private function __getGlossyRoundGround(_arg1:Number, _arg2:Number, _arg3:int):Sprite{ var _local4:Sprite = new Sprite(); var _local5:Sprite = new Sprite(); _local4.addChild(_local5); var _local6:Sprite = DrawUtils.getRoundRect(_arg1, _arg2, _arg3, _arg3, 0xFFFFFF); _local5.addChild(_local6); var _local7:Sprite = DrawUtils.getRect(_arg1, _arg2); _local5.addChild(_local7); _local6.mask = _local7; _local7.alpha = 0; _local6 = DrawUtils.getRoundRect(_arg1, _arg2, _arg3, _arg3, 0xEDEDED); _local5.addChild(_local6); _local7 = DrawUtils.getRect(_arg1, (_arg2 * 0.5)); _local5.addChild(_local7); _local6.mask = _local7; _local7.y = (_arg2 * 0.5); return (_local5); } private function __getTextField(_arg1:String, _arg2:String):TextField{ var _local3:TextField = (CostumTextfield.getCSSTextfield("left", false, false, false, "normal") as TextField); _local3.htmlText = CSSMapper.map(_arg1, _arg2); return (_local3); } public function set select(_arg1:Boolean):void{ _isSelected = _arg1; var _local2:Number = (_arg1) ? 25 : 35; var _local3:Function = (_arg1) ? Strong.easeInOut : Emotion.strongInSoftOut; TweenMax.to(_groundSelect, 15, {scaleY:(_isSelected) ? 1 : 0, alpha:(_isSelected) ? 1 : 0, useFrames:true, overwrite:true, ease:Emotion.strongInSoftOut}); TweenMax.to(_labelSelect, 15, {alpha:(_arg1) ? 1 : 0, useFrames:true, overwrite:true, ease:Strong.easeOut}); TweenMax.to(_label, 15, {alpha:(_arg1) ? 0 : 1, useFrames:true, overwrite:true, ease:Strong.easeOut}); TweenMax.to(_labelHover, 15, {alpha:(_arg1) ? 0 : 1, useFrames:true, overwrite:true, ease:Strong.easeOut}); _groundHover.alpha = (_arg1) ? 0.15 : 0; var _local4:Number = (_arg1) ? 0.1 : 0.3; BitmapUtils.addShadow(_ground, 1, 1, 2, 3, _local4, 70); } private function __addLabel(_arg1:String):void{ _labelContainer = new Sprite(); this.addChild(_labelContainer); _labelContainer.x = _xBorderSpace; _labelContainer.y = _yBorderSpace; _label = (_labelContainer.addChild(__getTextField(_arg1, "glossaryNavigationButton")) as TextField); (_labelSelect = (_labelContainer.addChild(__getTextField(_arg1, "glossaryNavigationButtonSelect")) as TextField)).alpha = 0; (_labelHover = (_labelContainer.addChild(__getTextField(_arg1, "glossaryNavigationButtonHover")) as TextField)).alpha = 0; _width = (_labelContainer.width + (_xBorderSpace * 2)); } public function get select():Boolean{ return (_isSelected); } } }//package eu.ecb.economia.ui.buttons.highscore
Section 168
//IconButton (eu.ecb.economia.ui.buttons.iconbutton.IconButton) package eu.ecb.economia.ui.buttons.iconbutton { import flash.events.*; import flash.display.*; import com.greensock.*; import de.aperto.utils.*; import flash.text.*; import eu.ecb.economia.ui.buttons.*; import com.greensock.easing.*; import de.aperto.text.*; public class IconButton extends Button { private var _iconBmd:BitmapData; private var _labelHover:TextField; private var _xSpace:int;// = 25 private var _labelContainer:Sprite; private var _icon:Sprite; private var _ground:Sprite; private var _ySpace:int;// = 4 private var _label:TextField; private var _groundHover:Sprite; private var _labelStr:String; public function IconButton(_arg1:String, _arg2:BitmapData){ _labelStr = _arg1; _iconBmd = _arg2; this.visible = false; this.alpha = 0; } override protected function __addedToStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, __addedToStage); __addIcon(); __addLabel(); __addGround(); _icon.y = ((_ground.height * 0.5) - (_icon.height * 0.5)); DisplayUtils.swapChildToBottom(_ground); __addEvents(); } public function hide():void{ this.visible = false; } private function __onShow():void{ } private function __addIcon():void{ _icon = new Sprite(); this.addChild(_icon); if (_iconBmd != null){ _icon.addChild(new Bitmap(_iconBmd, "auto", true)); }; _icon.x = -((_icon.width / 3)); BitmapUtils.addShadow(_icon, 3, 3, 2, 3, 0.5); } override protected function __soundOverHandler(_arg1:MouseEvent):void{ } private function __addGround():void{ var _local1 = 12; _ground = DrawUtils.getRoundRect(((_labelContainer.x + _labelContainer.width) + _xSpace), (_labelContainer.height + (_ySpace * 2)), _local1, _local1, 0xF0F0F0); this.addChild(_ground); var _local2:Sprite = DrawUtils.getGradientRoundRect((_ground.width - 1), (_ground.height * 0.5), _local1, _local1, 0, 0, 0.01, 0.5); _ground.addChild(_local2); _local2.y = (_ground.height - (_local2.height + 1)); _groundHover = DrawUtils.getGradientRoundRect((_ground.width - 1), (_ground.height * 0.5), _local1, _local1, 0, 0, 0, 0.15); this.addChild(_groundHover); _groundHover.y = _local2.y; _groundHover.alpha = 0; BitmapUtils.addShadow(_ground, 4, 4, 1, 3, 0.45); } override protected function __setHover(_arg1:Boolean):void{ var _local2 = 15; var _local3:Function = (_arg1) ? Strong.easeOut : Strong.easeInOut; TweenMax.to(_label, _local2, {alpha:(_arg1) ? 0 : 1, useFrames:true, overwrite:true, ease:_local3}); TweenMax.to(_labelHover, _local2, {alpha:(_arg1) ? 1 : 0, useFrames:true, overwrite:true, ease:_local3}); TweenMax.to(_groundHover, _local2, {alpha:(_arg1) ? 1 : 0, useFrames:true, overwrite:true, ease:_local3}); } override public function get height():Number{ return ((_labelContainer.y + _labelContainer.height)); } private function __addLabel():void{ _labelContainer = new Sprite(); this.addChild(_labelContainer); _labelContainer.x = (_icon.x + _icon.width); _labelContainer.y = _ySpace; var _local1:String = _labelStr; _label = (CostumTextfield.getCSSTextfield("left", false, false, true) as TextField); _labelContainer.addChild(_label); _label.htmlText = CSSMapper.map(_local1, "iconButtonLabel"); _labelHover = (CostumTextfield.getCSSTextfield("left", false, false, true) as TextField); _labelContainer.addChild(_labelHover); _labelHover.htmlText = CSSMapper.map(_local1, "iconButtonLabelHover"); _labelHover.alpha = 0; } private function __onHide():void{ this.visible = false; } public function show():void{ this.visible = true; this.alpha = 1; } } }//package eu.ecb.economia.ui.buttons.iconbutton
Section 169
//InfoButton (eu.ecb.economia.ui.buttons.infobutton.InfoButton) package eu.ecb.economia.ui.buttons.infobutton { import flash.events.*; import flash.display.*; import de.aperto.utils.*; import flash.text.*; import eu.ecb.economia.ui.buttons.*; import de.aperto.text.*; public class InfoButton extends Button { private var _outlineStrength:int; private var _ground:Sprite; private var _radius:int; private var _closeBtnCross:Sprite; public function InfoButton(_arg1:Number=10, _arg2:Number=2){ _radius = _arg1; _outlineStrength = _arg2; __addGround(); __addIcon(); BitmapUtils.addShadow(_ground, 3, 3, 0, 3, 0.5); } private function __addIcon():void{ var _local1:TextField = CostumTextfield.getCSSTextfield(); _local1.htmlText = CSSMapper.map("i", "infoButton"); this.addChild(_local1); _local1.x = -((_local1.width * 0.5)); _local1.y = -((_local1.height * 0.5)); BitmapUtils.addShadow(_local1, 1, 1, 0, 3, 0.8); } override protected function __addedToStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, __addedToStage); __addEvents(); } override protected function __soundOverHandler(_arg1:MouseEvent):void{ } override protected function __setHover(_arg1:Boolean):void{ } private function __addGround():void{ _ground = DrawUtils.getGradientCircle(_radius, 8162747, 4347547, 1, 1, 0xFFFFFF, _outlineStrength); this.addChild(_ground); } } }//package eu.ecb.economia.ui.buttons.infobutton
Section 170
//MainNavButton (eu.ecb.economia.ui.buttons.mainnavbutton.MainNavButton) package eu.ecb.economia.ui.buttons.mainnavbutton { import flash.events.*; import de.aperto.managers.*; import flash.display.*; import com.greensock.*; import de.aperto.utils.*; import flash.text.*; import eu.ecb.economia.ui.buttons.*; import de.aperto.display.*; import com.greensock.easing.*; import de.aperto.text.*; public class MainNavButton extends Button { private var _height:int;// = 10 private var _width:int;// = 10 private var _dot:SpriteMotion; private var _labelContainer:Sprite; private var _line:Sprite; private var _labelHover:TextField; private var _xml:XML; private var _icon:Sprite; private var _dotOnShow:Boolean; private var _lineWidth:int;// = 1 private var _label:TextField; private var _hover:Sprite; private var _ground:Sprite; public function MainNavButton(_arg1:XML, _arg2:Boolean=true){ _xml = _arg1; __addGround(); __addHover(); __addIcon(); __addLabel(); __addLine(_arg2); __setHover(false); this.cacheAsBitmap = true; } override protected function __addedToStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, __addedToStage); __addEvents(); } private function __removeDot():void{ if (_dotOnShow){ return; }; if (_dot != null){ _dot.visible = false; DisplayUtils.removeDisplayObject(_dot); _dot = null; }; } private function __addDot():void{ _dot = new SpriteMotion(); this.addChild(_dot); _dot.motionBlur = true; _dot.quality = 3; var _local1:BitmapData = new (LibraryManager.Instance.getClass("MainNavButtonDot") as Class)(0, 0); var _local2:Bitmap = new Bitmap(_local1, "auto", true); _dot.addChild(_local2); _local2.y = -((_local2.height * 0.5)); _dot.alpha = 0; _dot.x = (this.width - _dot.width); _dot.y = 5; } private function __addLabel():void{ _labelContainer = new Sprite(); this.addChild(_labelContainer); _labelContainer.x = (_icon.x + _icon.width); _labelContainer.y = 30; var _local1:String = String(labelManager.getString(_xml.@labelId)); _label = (CostumTextfield.getCSSTextfield("left", false, true, true, "normal") as TextField); _labelContainer.addChild(_label); _label.htmlText = CSSMapper.map(_local1, "mainNavigationButton"); _labelHover = (CostumTextfield.getCSSTextfield("left", false, true, true, "normal") as TextField); _labelContainer.addChild(_labelHover); _labelHover.htmlText = CSSMapper.map(_local1, "mainNavigationButtonHover"); BitmapUtils.addShadow(_labelHover, 6, 6, 0, 3); } override public function get width():Number{ return (_width); } override public function set width(_arg1:Number):void{ _width = _arg1; _ground.width = (_hover.width = _width); _label.width = (_labelHover.width = ((_ground.width - _icon.width) - 5)); } override protected function __setHover(_arg1:Boolean):void{ var _local2:Number = 15; TweenMax.to(_hover, _local2, {alpha:(_arg1) ? 1 : 0, useFrames:true, overwrite:true, ease:Strong.easeOut}); TweenMax.to(_label, _local2, {alpha:(_arg1) ? 0 : 1, useFrames:true, overwrite:true, ease:Strong.easeOut}); TweenMax.to(_labelHover, _local2, {alpha:(_arg1) ? 1 : 0, useFrames:true, overwrite:true, ease:Strong.easeOut}); } private function __addLine(_arg1:Boolean):void{ _line = new Sprite(); this.addChild(_line); _line.visible = _arg1; var _local2:Sprite = DrawUtils.getGradientRect(1, _height, 0xFFFFFF, 0x969696); _line.addChild(_local2); _local2 = DrawUtils.getGradientRect(1, _height, 0xFFFFFF, 0xFFFFFF, 0, 0.4); _line.addChild(_local2); _local2.x = 1; } override public function set height(_arg1:Number):void{ _height = _arg1; _ground.height = (_hover.height = (_line.height = _height)); _icon.y = ((_ground.height * 0.5) - (_icon.height * 0.5)); _labelContainer.y = (_icon.y + 10); } private function __addIcon():void{ _icon = new Sprite(); this.addChild(_icon); _icon.x = 10; _icon.y = ((_ground.height * 0.5) - (_icon.height * 0.5)); var _local1:BitmapData = new (LibraryManager.Instance.getClass(_xml.@iconId) as Class)(0, 0); _icon.addChild(new Bitmap(_local1, "auto", true)); } private function __addGround():void{ _ground = DrawUtils.getGradientRect(_width, _height, 0xFFFFFF, 0xCACACA); this.addChild(_ground); } public function hideDot():void{ _dotOnShow = false; if (_dot != null){ TweenMax.to(_dot, 25, {y:(_dot.y + 45), alpha:0, useFrames:true, overwrite:true, onComplete:__removeDot, ease:Strong.easeOut}); }; } public function showDot():void{ _dotOnShow = true; __removeDot(); __addDot(); TweenMax.to(_dot, 15, {y:_dot.y, alpha:1, useFrames:true, overwrite:true, ease:Emotion.singleBounceEaseOut}); _dot.y = (_dot.y - 45); } private function __addHover():void{ _hover = DrawUtils.getGradientRect(_width, _height, 0x808080, 0xD4D4D4); this.addChild(_hover); _hover.alpha = 0; } override public function get height():Number{ return (_height); } } }//package eu.ecb.economia.ui.buttons.mainnavbutton
Section 171
//MemberMarker (eu.ecb.economia.ui.buttons.membermarker.MemberMarker) package eu.ecb.economia.ui.buttons.membermarker { import flash.events.*; import eu.ecb.economia.events.*; import de.aperto.managers.*; import flash.display.*; import flash.utils.*; import com.greensock.*; import eu.ecb.economia.ui.buttons.*; import de.aperto.display.*; import com.greensock.easing.*; public class MemberMarker extends Button { private var _timer:Timer; private var _iconContainer:SpriteMotion; private var _icon:MovieClip; public var memberHit:MovieClip; private var _x:Number; private var _y:Number; public function MemberMarker(){ this.visible = false; this.cacheAsBitmap = true; super(); } public function hide():void{ if (!this.visible){ return; }; TweenMax.to(_iconContainer, 25, {y:20, alpha:0, useFrames:true, overwrite:true, onComplete:__onHide, ease:Strong.easeInOut}); } override protected function __addedToStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, __addedToStage); _x = this.x; _y = this.y; __addEvents(); __addIcon(); } public function set isSelect(_arg1:Boolean):void{ _icon.gotoAndStop(1); _isActive = _arg1; } public function get isSelect():Boolean{ return (_isActive); } private function __resetTimer():void{ if (_timer != null){ _timer.reset(); _timer = null; }; } override protected function __setHover(_arg1:Boolean):void{ } private function __onHide():void{ this.visible = false; } override protected function __soundOverHandler(_arg1:MouseEvent):void{ } private function __addIcon():void{ _iconContainer = new SpriteMotion(); this.addChild(_iconContainer); _iconContainer.motionBlur = true; _iconContainer.alpha = 0; _icon = (new ((LibraryManager.Instance.getClass("MemberMarker") as Class)) as MovieClip); _iconContainer.addChild(_icon); } public function set read(_arg1:Boolean):void{ _icon.gotoAndStop((_arg1) ? 2 : 1); } override protected function __mouseEventHandler(_arg1:MouseEvent):void{ switch (_arg1.type){ case MouseEvent.CLICK: _icon.gotoAndStop(2); dispatchEvent(new ButtonEvent(ButtonEvent.CLICK)); break; }; } private function __showMarker(_arg1:TimerEvent):void{ __resetTimer(); this.visible = true; _iconContainer.y = -70; TweenMax.to(_iconContainer, 25, {y:0, alpha:1, useFrames:true, overwrite:true, ease:Emotion.singleBounceEaseOut}); } public function show():void{ __resetTimer(); _timer = new Timer((Math.random() * 250), 1); _timer.addEventListener(TimerEvent.TIMER_COMPLETE, __showMarker); _timer.start(); } } }//package eu.ecb.economia.ui.buttons.membermarker
Section 172
//OneCharakterButton (eu.ecb.economia.ui.buttons.onecharakterbutton.OneCharakterButton) package eu.ecb.economia.ui.buttons.onecharakterbutton { import flash.events.*; import flash.display.*; import com.greensock.*; import de.aperto.utils.*; import flash.text.*; import eu.ecb.economia.ui.buttons.*; import com.greensock.easing.*; import de.aperto.text.*; public class OneCharakterButton extends Button { private var _size:int; private var _css:String; private var _ground:Sprite; private var _label:String; private var _icon:Sprite; public function OneCharakterButton(_arg1:String="?", _arg2:String="helpButton", _arg3:int=30){ _label = _arg1; _size = _arg3; _css = _arg2; } override protected function __setHover(_arg1:Boolean):void{ TweenMax.to(_icon, 15, {alpha:(_arg1) ? 0.7 : 1, useFrames:true, overwrite:true, ease:Strong.easeOut}); } override protected function __addedToStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, __addedToStage); __addIcon(); __addGround(); _icon.x = ((_ground.width * 0.5) - (_icon.width * 0.5)); _icon.y = (((_ground.height * 0.5) - (_icon.height * 0.5)) - 1); __addEvents(); } override protected function __soundOverHandler(_arg1:MouseEvent):void{ } private function __addGround():void{ var _local1 = 30; _ground = DrawUtils.getRoundRect(_size, _size, 10, 10, 0xFFFFFF); this.addChild(_ground); DisplayUtils.swapChildToBottom(_ground); BitmapUtils.addShadow(_ground, 3, 3, 0, 3, 0.5, 0, 0); } private function __addIcon():void{ _icon = new Sprite(); this.addChild(_icon); var _local1:TextField = CostumTextfield.getCSSTextfield(); _local1.htmlText = CSSMapper.map(_label, _css); _icon.addChild(_local1); _local1.cacheAsBitmap = true; BitmapUtils.addShadow(_local1, 2, 2, 0, 3, 0.6, 0, 0, true); } } }//package eu.ecb.economia.ui.buttons.onecharakterbutton
Section 173
//RadioButton (eu.ecb.economia.ui.buttons.radiobutton.RadioButton) package eu.ecb.economia.ui.buttons.radiobutton { import flash.events.*; import flash.display.*; import com.greensock.*; import de.aperto.utils.*; import eu.ecb.economia.ui.buttons.*; import com.greensock.easing.*; public class RadioButton extends Button { protected var checkbox:Sprite; private var _dot:Sprite; private var _cornerVal:int;// = 10 private var _size:int;// = 17 private var _ground:Sprite; public var mySource; private var _checked:Boolean; private var _dotMaxScale:Number;// = 0.6 public function RadioButton(){ checkbox = new Sprite(); this.addChild(checkbox); __addGround(); __addDot(); super(); } private function __addDot():void{ _dot = new Sprite(); checkbox.addChild(_dot); var _local1:Sprite = DrawUtils.getRoundRect(_size, _size, _cornerVal, _cornerVal, 0xCC00); _dot.addChild(_local1); _local1.x = (_local1.y = -(int(((_size * 0.5) + 0.5)))); _dot.x = (_dot.y = int(((_size * 0.5) + 0.5))); _dot.scaleX = (_dot.scaleY = 0); } override protected function __addedToStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, __addedToStage); __addEvents(); } public function set checked(_arg1:Boolean):void{ _checked = _arg1; var _local2:Number = (_checked) ? _dotMaxScale : 0; var _local3:Function = (_checked) ? Strong.easeOut : Strong.easeIn; TweenMax.to(_dot, 10, {scaleX:_local2, scaleY:_local2, useFrames:true, overwrite:true, ease:_local3}); } override protected function __setHover(_arg1:Boolean):void{ } private function __addGround():void{ _ground = DrawUtils.getRoundRect(_size, _size, _cornerVal, _cornerVal, 0xFFFFFF); checkbox.addChild(_ground); var _local1:Sprite = DrawUtils.getGradientRoundRect((_ground.width - 1), (_ground.height * 0.5), _cornerVal, _cornerVal, 0xE2E2E2, 0xE2E2E2, 0, 1); _ground.addChild(_local1); _local1.y = (_ground.height - (_local1.height + 1)); var _local2:Sprite = DrawUtils.getRoundRect(_size, _size, _cornerVal, _cornerVal, 0xFFFFFF, 0xD3D3D3, 1, true); checkbox.addChild(_local2); BitmapUtils.addShadow(_ground, 4, 4, 2, 3, 0.45, 45); } override protected function __soundOverHandler(_arg1:MouseEvent):void{ } override protected function __mouseEventHandler(_arg1:MouseEvent):void{ if (_isActive){ return; }; switch (_arg1.type){ case MouseEvent.MOUSE_OVER: break; case MouseEvent.MOUSE_OUT: break; case MouseEvent.MOUSE_DOWN: break; case MouseEvent.MOUSE_UP: break; case MouseEvent.CLICK: checked = !(_checked); break; }; } public function get checked():Boolean{ return (_checked); } } }//package eu.ecb.economia.ui.buttons.radiobutton
Section 174
//RadioTextButton (eu.ecb.economia.ui.buttons.radiotextbutton.RadioTextButton) package eu.ecb.economia.ui.buttons.radiotextbutton { import flash.events.*; import eu.ecb.economia.events.*; import flash.display.*; import com.greensock.*; import de.aperto.utils.*; import flash.text.*; import com.greensock.easing.*; import de.aperto.text.*; import eu.ecb.economia.ui.buttons.radiobutton.*; public class RadioTextButton extends RadioButton { private var _labelHover:TextField; private var _labelContainer:Sprite; private var _hit:Sprite; private var _label:TextField; private var _labelStr:String; public function RadioTextButton(_arg1:String){ _labelStr = _arg1; super(); } override protected function __setHover(_arg1:Boolean):void{ TweenMax.to(_label, 10, {alpha:(_arg1) ? 0 : 1, useFrames:true, overwrite:true, ease:Strong.easeOut}); TweenMax.to(_labelHover, 10, {alpha:(_arg1) ? 1 : 0, useFrames:true, overwrite:true, ease:Strong.easeOut}); } override protected function __addedToStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, __addedToStage); __addLabel(); __addHit(); __addEvents(); } override protected function __mouseEventHandler(_arg1:MouseEvent):void{ if (_isActive){ return; }; switch (_arg1.type){ case MouseEvent.MOUSE_OVER: __setHover(true); break; case MouseEvent.MOUSE_OUT: if (!checked){ __setHover(false); }; break; case MouseEvent.MOUSE_UP: break; case MouseEvent.CLICK: checked = !(checked); __setHover(true); dispatchEvent(new ButtonEvent(ButtonEvent.CLICK)); break; }; } private function __addHit():void{ _hit = DrawUtils.getRect(this.width, this.height); this.addChild(_hit); _hit.alpha = 0; DisplayUtils.swapChildToBottom(_hit); } override protected function __soundOverHandler(_arg1:MouseEvent):void{ } private function __addLabel():void{ _labelContainer = new Sprite(); this.addChild(_labelContainer); var _local1:String = _labelStr; _label = (CostumTextfield.getCSSTextfield("left", false, false, true) as TextField); _labelContainer.addChild(_label); _label.htmlText = CSSMapper.map(_local1, "languageRadioTextButtonLabel"); _labelHover = (CostumTextfield.getCSSTextfield("left", false, false, true) as TextField); _labelContainer.addChild(_labelHover); _labelHover.htmlText = CSSMapper.map(_local1, "languageRadioTextButtonLabelHover"); _labelHover.alpha = 0; _labelContainer.x = ((checkbox.x + checkbox.width) + 10); _labelContainer.y = ((checkbox.y + (checkbox.height * 0.5)) - (_labelContainer.height * 0.5)); } } }//package eu.ecb.economia.ui.buttons.radiotextbutton
Section 175
//SimpleButton (eu.ecb.economia.ui.buttons.simplebutton.SimpleButton) package eu.ecb.economia.ui.buttons.simplebutton { import flash.events.*; import flash.display.*; import com.greensock.*; import flash.text.*; import eu.ecb.economia.ui.buttons.*; import com.greensock.easing.*; import de.aperto.text.*; public class SimpleButton extends Button { private var _container:Sprite; private var _tfd:TextField; private var _tfdHover:TextField; public function SimpleButton(_arg1:String){ _container = new Sprite(); this.addChild(_container); __addLabel(_arg1); __setHover(false); } private function __addLabel(_arg1:String):void{ _tfd = CostumTextfield.getCSSTextfield("left"); _container.addChild(_tfd); _tfd.htmlText = CSSMapper.map(_arg1, "simpleTextButton"); _tfd.x = 5; _tfdHover = CostumTextfield.getCSSTextfield("left"); _container.addChild(_tfdHover); _tfdHover.htmlText = CSSMapper.map(_arg1, "simpleTextButtonHover"); _tfdHover.x = _tfd.x; _tfdHover.y = _tfd.y; _tfdHover.alpha = 0; var _local2 = 4; var _local3:Sprite = new Sprite(); _container.addChild(_local3); _local3.graphics.beginFill(_tfd.textColor); _local3.graphics.lineTo(_local2, (_local2 * 0.5)); _local3.graphics.lineTo(0, _local2); _local3.graphics.lineTo(0, 0); _local3.graphics.endFill(); _local3.y = ((_tfd.height * 0.5) - (_local2 * 0.5)); } override protected function __soundOverHandler(_arg1:MouseEvent):void{ } override protected function __addedToStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, __addedToStage); __addEvents(); } override protected function __setHover(_arg1:Boolean):void{ TweenMax.to(_tfd, 20, {alpha:(_arg1) ? 0 : 1, useFrames:true, overwrite:true, ease:Strong.easeOut}); TweenMax.to(_tfdHover, 20, {alpha:(_arg1) ? 1 : 0, useFrames:true, overwrite:true, ease:Strong.easeOut}); } } }//package eu.ecb.economia.ui.buttons.simplebutton
Section 176
//ArrowLeft (eu.ecb.economia.ui.buttons.sliderbutton.ArrowLeft) package eu.ecb.economia.ui.buttons.sliderbutton { import flash.events.*; import de.aperto.managers.*; import flash.display.*; import eu.ecb.economia.ui.buttons.*; public class ArrowLeft extends Button { private var _arrow:MovieClip; public function ArrowLeft(){ __addElements(); } override protected function __addedToStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, __addedToStage); __addEvents(); } override protected function __soundOverHandler(_arg1:MouseEvent):void{ } private function __addElements():void{ _arrow = new MovieClip(); this.addChild(_arrow); _arrow.y = -10; _arrow.addChild(new Bitmap(__getBmD("SliderArrowLeft"), "auto", true)); } private function __getBmD(_arg1:String):BitmapData{ return (new (LibraryManager.Instance.getClass(_arg1) as Class)(0, 0)); } } }//package eu.ecb.economia.ui.buttons.sliderbutton
Section 177
//ArrowRight (eu.ecb.economia.ui.buttons.sliderbutton.ArrowRight) package eu.ecb.economia.ui.buttons.sliderbutton { import flash.events.*; import de.aperto.managers.*; import flash.display.*; import eu.ecb.economia.ui.buttons.*; public class ArrowRight extends Button { private var _arrow:MovieClip; public function ArrowRight(){ __addElements(); } override protected function __addedToStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, __addedToStage); __addEvents(); } override protected function __soundOverHandler(_arg1:MouseEvent):void{ } private function __addElements():void{ _arrow = new MovieClip(); this.addChild(_arrow); _arrow.y = -10; _arrow.addChild(new Bitmap(__getBmD("SliderArrowRight"), "auto", true)); } private function __getBmD(_arg1:String):BitmapData{ return (new (LibraryManager.Instance.getClass(_arg1) as Class)(0, 0)); } } }//package eu.ecb.economia.ui.buttons.sliderbutton
Section 178
//Dragger (eu.ecb.economia.ui.buttons.sliderbutton.Dragger) package eu.ecb.economia.ui.buttons.sliderbutton { import flash.events.*; import eu.ecb.economia.events.*; import de.aperto.managers.*; import flash.display.*; import com.greensock.*; import eu.ecb.economia.ui.buttons.*; import com.greensock.easing.*; public class Dragger extends Button { private var _mcHover:MovieClip; private var _mouseIsDown:Boolean; private var _mc:MovieClip; public function Dragger(){ __addElements(); } override protected function __addedToStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, __addedToStage); __addEvents(); } override protected function __soundOverHandler(_arg1:MouseEvent):void{ } private function __addElements():void{ _mc = new MovieClip(); this.addChild(_mc); _mc.addChild(new Bitmap(__getBmD("SliderMitte"), "auto", true)); _mcHover = new MovieClip(); this.addChild(_mcHover); _mcHover.addChild(new Bitmap(__getBmD("SliderMitteActive"), "auto", true)); _mcHover.alpha = 0; _mc.y = -10; _mcHover.y = -6; } private function __setSliderHover(_arg1:Boolean):void{ TweenMax.to(_mc, 0.2, {alpha:(_arg1) ? 0 : 1, overwrite:true, ease:Strong.easeOut}); TweenMax.to(_mcHover, 0.2, {alpha:(_arg1) ? 1 : 0, overwrite:true, ease:Strong.easeOut}); } override protected function __addEvents():void{ this.addEventListener(MouseEvent.MOUSE_DOWN, __mouseEventHandler); this.addEventListener(MouseEvent.MOUSE_UP, __mouseEventHandler); this.stage.addEventListener(MouseEvent.MOUSE_UP, __stageEventHandler); this.mouseChildren = false; this.buttonMode = true; } private function __getBmD(_arg1:String):BitmapData{ return (new (LibraryManager.Instance.getClass(_arg1) as Class)(0, 0)); } override protected function __mouseEventHandler(_arg1:MouseEvent):void{ switch (_arg1.type){ case MouseEvent.MOUSE_DOWN: _mouseIsDown = true; __setSliderHover(true); dispatchEvent(new ButtonEvent(ButtonEvent.MOUSE_DOWN)); break; case MouseEvent.MOUSE_UP: _mouseIsDown = false; __setSliderHover(false); dispatchEvent(new ButtonEvent(ButtonEvent.MOUSE_UP)); break; }; } private function __stageEventHandler(_arg1:Event):void{ switch (_arg1.type){ case MouseEvent.MOUSE_UP: if (_mouseIsDown){ __setSliderHover(false); _mouseIsDown = false; dispatchEvent(new ButtonEvent(ButtonEvent.MOUSE_UP)); }; break; }; } } }//package eu.ecb.economia.ui.buttons.sliderbutton
Section 179
//SoundButton (eu.ecb.economia.ui.buttons.soundbutton.SoundButton) package eu.ecb.economia.ui.buttons.soundbutton { import flash.events.*; import flash.display.*; import com.greensock.*; import de.aperto.utils.*; import eu.ecb.economia.ui.buttons.*; import com.greensock.easing.*; public class SoundButton extends Button { private var _ground:Sprite; private var _iconCont:Sprite; private var _icon:Sprite; private var _borderspace:int;// = 3 public function tint(_arg1:Boolean):void{ var _local2:int = (_arg1) ? 1322880 : 0xCCCCCC; TweenMax.to(_icon, 25, {tint:_local2, useFrames:true, overwrite:true, ease:Strong.easeOut}); } override protected function __addedToStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, __addedToStage); __addIcon(); __addGround(); _icon.x = ((_ground.width * 0.5) - (_icon.width * 0.5)); _icon.y = ((_ground.height * 0.5) - (_icon.height * 0.5)); __addEvents(); } override protected function __soundOverHandler(_arg1:MouseEvent):void{ } private function __addGround():void{ var _local1 = 30; _ground = DrawUtils.getRoundRect(_local1, _local1, 10, 10, 0xFFFFFF); this.addChild(_ground); DisplayUtils.swapChildToBottom(_ground); BitmapUtils.addShadow(_ground, 3, 3, 0, 3, 0.5, 0, 0); } private function __addIcon():void{ _iconCont = new Sprite(); this.addChild(_iconCont); BitmapUtils.addShadow(_iconCont, 3, 3, 0, 3, 0.5, 90, 0, true); _icon = new Sprite(); _iconCont.addChild(_icon); var _local1:Sprite = new Sprite(); _icon.addChild(_local1); _local1.y = 5; var _local2 = 4; var _local3 = 10; var _local4 = 6; _local1.graphics.beginFill(0); _local1.graphics.lineTo(_local2, 0); _local1.graphics.lineTo((_local2 + 4), -5); _local1.graphics.lineTo((_local2 + 6), -5); _local1.graphics.lineTo((_local2 + 6), (5 + _local2)); _local1.graphics.lineTo((_local2 + 4), (5 + _local2)); _local1.graphics.lineTo(_local2, _local2); _local1.graphics.lineTo(0, _local2); _local1.graphics.endFill(); BitmapUtils.addShadow(_local1, 5, 5, 0, 3, 0.6); } } }//package eu.ecb.economia.ui.buttons.soundbutton
Section 180
//SubNavButton (eu.ecb.economia.ui.buttons.subnavbutton.SubNavButton) package eu.ecb.economia.ui.buttons.subnavbutton { import flash.events.*; import flash.display.*; import com.greensock.*; import eu.ecb.economia.game.navigationbar.*; import de.aperto.utils.*; import flash.text.*; import eu.ecb.economia.ui.buttons.*; import com.greensock.easing.*; import de.aperto.text.*; public class SubNavButton extends Button { private var _ground:Sprite; private var _labelHover:TextField; private var _labelContainer:Sprite; private var _label:TextField; private var _offsetY:int; private var _hover:Sprite; private var _xml:XML; public function SubNavButton(_arg1:XML){ _xml = _arg1; __addLabel(); __addGround(); __addHover(); __addLabelContainerMask(); DisplayUtils.swapChildToTop(_labelContainer); __setHover(false); } override protected function __setHover(_arg1:Boolean):void{ var _local2:Number = (_arg1) ? 15 : 30; var _local3:Number = -((_offsetY - NavigationBarSettings.SUBNAVBUTTON_BORDERSPACE_Y)); var _local4:Number = NavigationBarSettings.SUBNAVBUTTON_BORDERSPACE_Y; var _local5:Function = (_arg1) ? Strong.easeOut : Strong.easeInOut; TweenMax.to(_hover, _local2, {alpha:(_arg1) ? 1 : 0, useFrames:true, overwrite:true, ease:Strong.easeOut}); TweenMax.to(_labelContainer, _local2, {y:(_arg1) ? _local3 : _local4, useFrames:true, overwrite:true, ease:_local5}); } override protected function __addedToStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, __addedToStage); __addEvents(); } private function __addGround():void{ _ground = DrawUtils.getGradientRect((_label.width + (NavigationBarSettings.SUBNAVBUTTON_BORDERSPACE_X * 2)), (_label.height + (NavigationBarSettings.SUBNAVBUTTON_BORDERSPACE_Y * 2)), 0, 0); this.addChild(_ground); _ground.x = int((_ground.x + 0.5)); _ground.y = int((_ground.y + 0.5)); } private function __addLabelContainerMask():void{ var _local1:Sprite = DrawUtils.getRect(_ground.width, (_ground.height - NavigationBarSettings.SUBNAVBUTTON_BORDERSPACE_Y)); this.addChild(_local1); _labelContainer.mask = _local1; } private function __addLabel():void{ _labelContainer = new Sprite(); this.addChild(_labelContainer); _labelContainer.x = NavigationBarSettings.SUBNAVBUTTON_BORDERSPACE_X; _labelContainer.y = NavigationBarSettings.SUBNAVBUTTON_BORDERSPACE_Y; var _local1:String = String(labelManager.getString(_xml.@labelId)); _label = (CostumTextfield.getCSSTextfield("left", false, false, false, "normal") as TextField); _labelContainer.addChild(_label); _label.htmlText = CSSMapper.map(_local1, "subNavigationButton"); _labelHover = (CostumTextfield.getCSSTextfield("left", false, false, false, "normal") as TextField); _labelContainer.addChild(_labelHover); _labelHover.htmlText = CSSMapper.map(_local1, "subNavigationButtonHover"); _offsetY = _labelContainer.height; _labelHover.y = _offsetY; } private function __addHover():void{ _hover = DrawUtils.getGradientRect(_ground.width, _ground.height, 0x999999, 0x333333, 0.2, 0.2); this.addChild(_hover); _hover.alpha = 0; _hover.x = _ground.x; _hover.y = _ground.y; } } }//package eu.ecb.economia.ui.buttons.subnavbutton
Section 181
//Button (eu.ecb.economia.ui.buttons.Button) package eu.ecb.economia.ui.buttons { import flash.events.*; import eu.ecb.economia.events.*; import de.aperto.managers.*; import flash.display.*; public class Button extends Sprite { protected var _isActive:Boolean; public var templateId:int; public var alertId:int; public var labelManager:LabelManager; public var id:int; public function Button(){ labelManager = LabelManager.Instance; this.addEventListener(MouseEvent.CLICK, __soundClickHandler); this.addEventListener(MouseEvent.MOUSE_OVER, __soundOverHandler); addEventListener(Event.ADDED_TO_STAGE, __addedToStage); } public function set isActive(_arg1:Boolean):void{ _isActive = _arg1; __setHover(_isActive); } protected function __setHover(_arg1:Boolean):void{ } protected function __addedToStage(_arg1:Event):void{ __addEvents(); } protected function __soundOverHandler(_arg1:MouseEvent):void{ } public function get isActive():Boolean{ return (_isActive); } protected function __soundClickHandler(_arg1:MouseEvent):void{ SoundManager.Instance.playSoundFromLibrary("GlobalButtonSoundClick"); } protected function __addEvents():void{ this.addEventListener(MouseEvent.MOUSE_OVER, __mouseEventHandler); this.addEventListener(MouseEvent.MOUSE_OUT, __mouseEventHandler); this.addEventListener(MouseEvent.MOUSE_DOWN, __mouseEventHandler); this.addEventListener(MouseEvent.MOUSE_UP, __mouseEventHandler); this.addEventListener(MouseEvent.CLICK, __mouseEventHandler); this.mouseChildren = false; this.buttonMode = true; } protected function __mouseEventHandler(_arg1:MouseEvent):void{ if (_isActive){ return; }; switch (_arg1.type){ case MouseEvent.MOUSE_OVER: __setHover(true); dispatchEvent(new ButtonEvent(ButtonEvent.MOUSE_OVER, true, true)); break; case MouseEvent.MOUSE_OUT: __setHover(false); dispatchEvent(new ButtonEvent(ButtonEvent.MOUSE_OUT, true, true)); break; case MouseEvent.MOUSE_DOWN: dispatchEvent(new ButtonEvent(ButtonEvent.MOUSE_DOWN, true, true)); break; case MouseEvent.MOUSE_UP: dispatchEvent(new ButtonEvent(ButtonEvent.MOUSE_UP, true, true)); break; case MouseEvent.CLICK: dispatchEvent(new ButtonEvent(ButtonEvent.CLICK, true, true)); break; }; } } }//package eu.ecb.economia.ui.buttons
Section 182
//CalendarBar (eu.ecb.economia.ui.calendarbar.CalendarBar) package eu.ecb.economia.ui.calendarbar { import flash.events.*; import de.aperto.managers.*; import flash.display.*; import de.aperto.utils.*; public class CalendarBar extends Sprite { private var _ground:Sprite; private var _termInOffice:int; private var _gameStartYear:int; private var _itemArr:Array; private var _shadow:Sprite; public function CalendarBar(_arg1:int, _arg2:int){ _gameStartYear = _arg1; _termInOffice = _arg2; addEventListener(Event.ADDED_TO_STAGE, __addedToStage); } private function __addedToStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, __addedToStage); __addItems(); __addGround(); } private function __addGround():void{ _ground = DrawUtils.getRect(this.width, this.height); this.addChild(_ground); _ground.alpha = 0; DisplayUtils.swapChildToBottom(_ground); } public function update(_arg1:int, _arg2:int, _arg3:int):void{ var _local4:CalendarBarItem = (_itemArr[(_arg1 - 2)] as CalendarBarItem); if (_local4 != null){ _local4.fill(); }; var _local5:CalendarBarItem = (_itemArr[(_arg1 - 1)] as CalendarBarItem); if (_local5 != null){ _local5.fill(); }; } private function __resetItems():void{ var _local1:int; while (_local1 < _itemArr.length) { (_itemArr[_local1] as CalendarBarItem).reset(); _local1++; }; } public function reset():void{ __resetItems(); var _local1:CalendarBarItem = (_itemArr[0] as CalendarBarItem); _local1.reset(); _local1.fill(); } private function __addItems():void{ var _local2:CalendarBarItem; var _local3:int; var _local4:int; var _local1:int = _termInOffice; var _local5 = 10; var _local6:int = _gameStartYear; _itemArr = []; var _local7:int; while (_local7 < _local1) { _local2 = (new (LibraryManager.Instance.getClass("eu.ecb.economia.ui.calendarbar::CalendarBarItem") as Class)(_local6) as CalendarBarItem); this.addChild(_local2); _local2.x = _local3; _local2.y = _local4; _local2.id = _local7; _local3 = (_local3 + int(((_local2.width + _local5) + 0.5))); _itemArr[_local7] = _local2; _local6++; _local7++; }; } } }//package eu.ecb.economia.ui.calendarbar
Section 183
//CalendarBarItem (eu.ecb.economia.ui.calendarbar.CalendarBarItem) package eu.ecb.economia.ui.calendarbar { import flash.events.*; import flash.display.*; import flash.text.*; import de.aperto.text.*; public class CalendarBarItem extends MovieClip { private var _labelHover:TextField; private var _labelContainer:Sprite; private var _currentFrame:int;// = 1 private var _label:TextField; public var id:int; public function CalendarBarItem(_arg1:String="2010"){ __addLabel(_arg1); addEventListener(Event.ADDED_TO_STAGE, __addedToStage); } private function __addLabel(_arg1:String):void{ _labelContainer = new Sprite(); this.addChild(_labelContainer); _labelContainer.y = -5; _label = (CostumTextfield.getCSSTextfield("left", false, false, false, "normal") as TextField); _labelContainer.addChild(_label); _label.htmlText = CSSMapper.map(_arg1, "calendarItem"); _labelHover = (CostumTextfield.getCSSTextfield("left", false, false, false, "normal") as TextField); _labelContainer.addChild(_labelHover); _labelHover.htmlText = CSSMapper.map(_arg1, "calendarItemActive"); _labelHover.alpha = 0; } private function __addedToStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, __addedToStage); this.stop(); } public function reset():void{ _currentFrame = 1; this.gotoAndStop(_currentFrame); } public function fill():void{ if (_currentFrame > 5){ return; }; _currentFrame++; this.gotoAndStop(_currentFrame); } } }//package eu.ecb.economia.ui.calendarbar
Section 184
//Box (eu.ecb.economia.ui.graphbox.Box) package eu.ecb.economia.ui.graphbox { import flash.events.*; import de.aperto.managers.*; import flash.display.*; import com.greensock.*; import flash.geom.*; import de.aperto.utils.*; import flash.text.*; import eu.ecb.economia.*; import eu.ecb.economia.utils.*; import de.aperto.text.*; import eu.ecb.economia.ui.buttons.graphbox.*; import eu.ecb.economia.text.*; public class Box extends Sprite { private var ___addShadow:Function; private var _amountItems:int; private var _labelContainer:Sprite; public var id:int; private var _dataArr:Array; private var _ground:Sprite; private var _isFixed:Boolean; public var myX:int;// = 0 private var _labelHoverGround:Sprite; private var _graphboxPercentMarkers:GraphboxPercentMarkers; private var _itemsContainer:Sprite; private var _roundCorner:int;// = 15 private var _labelHover:TextField; public var dots:Array; private var _height:int;// = 250 private var _width:int;// = 50 private var ___swapChildToTop:Function; private var _ease:Function; private var _invisibleGround:Sprite; private var ___swapChildToBottom:Function; private var _groundAlpha:Number; private var _currLabel:String;// = "" private var _itemsArr:Array; public var renderLinesCallback:Function; private var _isCurrent:Boolean; private var _motionSpeed:int;// = 25 private var _label:TextField; private var _isMultiGraphbox:Boolean; private var _currentPixelPerPercent:Number;// = 15 public function Box(_arg1:Array, _arg2:int){ _ease = Defaults.GRAPHBOX_UPDATE_EASING; ___swapChildToTop = DisplayUtils.swapChildToTop; ___swapChildToBottom = DisplayUtils.swapChildToBottom; ___addShadow = BitmapUtils.addShadow; super(); id = _arg2; _dataArr = _arg1; addEventListener(Event.ADDED_TO_STAGE, __addedToStage); } private function __addedToStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, __addedToStage); addEventListener(Event.REMOVED_FROM_STAGE, __evenHandler); __addGround(); __addBoxLabel(StringMapper.mapDate(_dataArr[0].date)); __addDots(); __addPercentMarkers(); } public function set fixed(_arg1:Boolean):void{ _isFixed = _arg1; if (_itemsContainer){ _itemsContainer.alpha = (((_isFixed) && (_isMultiGraphbox))) ? 0.4 : 1; }; if (_labelHoverGround){ _labelHoverGround.visible = _isFixed; }; if (_label){ _label.visible = !(_isFixed); }; if (_labelHover){ _labelHover.visible = !(_label.visible); }; if (((_arg1) && (_isMultiGraphbox))){ showDefaultLabel = true; } else { showDefaultLabel = false; }; _groundAlpha = (_isFixed) ? 0.2 : 0.05; } private function __groundOnUpdate():void{ if ((((((((((_ground == null)) || ((_labelHoverGround == null)))) || ((_labelContainer == null)))) || ((_label == null)))) || ((_itemsContainer == null)))){ return; }; _labelContainer.y = (_ground.height - _labelHoverGround.height); _labelHoverGround.width = _ground.width; _label.x = (_labelHover.x = ((_labelHoverGround.width * 0.5) - (_label.width * 0.5))); _label.y = (_labelHover.y = ((_labelHoverGround.height * 0.5) - (_label.height * 0.5))); _itemsContainer.x = (this.x + (_ground.width * 0.5)); ___swapChildToTop(_itemsContainer); } private function __mapDotPercentToYPosition(_arg1:Number):Number{ var _local2:int = GraphboxUtils.translateZeroPosition(_currentPixelPerPercent); return ((_local2 - (_arg1 * _currentPixelPerPercent))); } private function __setActiveDots(_arg1:Array):void{ var _local2:GraphboxDotButton; var _local3:Boolean; var _local5:int; var _local4:int; while (_local4 < _amountItems) { _local2 = (dots[_local4] as GraphboxDotButton); _local3 = false; _local5 = 0; while (_local5 < _arg1.length) { if (_local2.filterId == _arg1[_local5]){ _local3 = true; break; }; _local5++; }; if (_local3){ _local2.show(); } else { _local2.hide(); }; _local4++; }; } private function __addPercentMarkers():void{ _graphboxPercentMarkers = new GraphboxPercentMarkers(); _itemsContainer.addChild(_graphboxPercentMarkers); ___swapChildToBottom(_graphboxPercentMarkers); } private function __updateScale(_arg1:Boolean):void{ if (_ground == null){ __addGround(); }; if (_labelContainer == null){ __addBoxLabel(StringMapper.mapDate(_dataArr[0].date)); }; if (_arg1){ _ground.width = _width; _ground.height = _height; _ground.alpha = _groundAlpha; this.x = myX; __groundOnUpdate(); return; }; TweenMax.to(_ground, _motionSpeed, {alpha:_groundAlpha, width:_width, height:_height, useFrames:true, onUpdate:__groundOnUpdate, onComplete:__groundOnUpdate, overwrite:true, ease:_ease}); TweenMax.to(this, _motionSpeed, {x:myX, useFrames:true, overwrite:true, ease:_ease}); } override public function set width(_arg1:Number):void{ if (_invisibleGround == null){ return; }; _width = int((_arg1 + 0.5)); _invisibleGround.width = _width; if (((_labelContainer) && (((_label.textWidth + 5) > _width)))){ __updateLabelScale(); }; } private function __addGround():void{ if (_ground){ return; }; _ground = DrawUtils.getRoundRect(_width, _height, _roundCorner, _roundCorner, 0); this.addChild(_ground); _groundAlpha = 0.1; _ground.alpha = _groundAlpha; _ground.scale9Grid = new Rectangle(_roundCorner, _roundCorner, (_width - (_roundCorner * 2)), (_height - (_roundCorner * 2))); _ground.cacheAsBitmap = true; _invisibleGround = DrawUtils.getRect(_width, _height, 0); this.addChild(_invisibleGround); _invisibleGround.alpha = 0; } public function get fixed():Boolean{ return (_isFixed); } public function set showDefaultLabel(_arg1:Boolean):void{ var _local2:String = (_arg1) ? LabelManager.Instance.getString("multigraphboxForecastColumDefaultLabel") : StringMapper.mapDate(_dataArr[0].date); if (_labelContainer == null){ __addBoxLabel(_local2); }; label = _local2; } private function __addDots():void{ var _local1:GraphboxDotButton; DisplayUtils.removeDisplayObject(_itemsContainer); if (_itemsContainer != null){ _itemsContainer = null; }; _itemsContainer = new Sprite(); this.parent.addChild(_itemsContainer); var _local2:Number = 0; var _local3:Number = 20; var _local4:Number = 0; dots = []; _amountItems = _dataArr.length; var _local5:int; while (_local5 < _amountItems) { _local1 = new GraphboxDotButton(); _local1.renderLinesCallback = renderLinesCallback; _itemsContainer.addChild(_local1); _local1.x = _local2; _local1.setInitYPosition(__mapDotPercentToYPosition(_dataArr[_local5].value)); _local1.id = _local5; _local1.allowRender = (_local1.visible = _dataArr[_local5].render); if (!_dataArr[_local5].fixed){ _local1.height = __mapDotPercentHeightToPixelHeight((_dataArr[_local5].diff * 2)); }; _local1.value = _dataArr[_local5].value; _local1.diff = _dataArr[_local5].diff; _local1.filterId = _dataArr[_local5].filterId; _local1.color = GraphboxUtils.getFilterObjectById(_local1.filterId).filterColor; _local3 = (_local3 + (_local1.height + 20)); dots[_local5] = _local1; _local5++; }; } public function updateDots():void{ __groundOnUpdate(); } public function set pixelPercentRange(_arg1:Number):void{ _currentPixelPerPercent = _arg1; __updateDotsPosition(); _graphboxPercentMarkers.pixelPercentRange = _arg1; } public function set isMultiGraphbox(_arg1:Boolean):void{ _isMultiGraphbox = _arg1; } public function update(_arg1:Boolean=false):void{ __updateScale(_arg1); } public function set dotsFilter(_arg1:Array):void{ __setActiveDots(_arg1); } private function __addBoxLabel(_arg1:String):void{ if (_labelContainer){ return; }; _labelContainer = new Sprite(); this.addChild(_labelContainer); _label = (_labelContainer.addChild(__getTextField(_arg1, _width, "graphboxBoxDate")) as TextField); _labelHover = (_labelContainer.addChild(__getTextField(_arg1, _width, "graphboxBoxDateActive")) as TextField); _labelHover.visible = false; _label.cacheAsBitmap = (_labelHover.cacheAsBitmap = true); _labelHoverGround = DrawUtils.getGradientRoundRect(_width, (_label.height + 10), _roundCorner, _roundCorner, 8620439, 6382182, 1, 1); _labelContainer.addChild(_labelHoverGround); _labelHoverGround.alpha = 0.7; _labelHoverGround.scale9Grid = new Rectangle(10, 10, (_labelHoverGround.width - 20), (_labelHoverGround.height - 20)); ___swapChildToBottom(_labelHoverGround); ___addShadow(_labelHoverGround, 3, 3, 3, 3, 0.65, 100, 0, true); _label.x = (_labelHover.x = ((_labelHoverGround.width * 0.5) - (_label.width * 0.5))); _label.y = (_labelHover.y = ((_labelHoverGround.height * 0.5) - (_label.height * 0.5))); } public function set showDateLabel(_arg1:Boolean):void{ label = StringMapper.mapDate(_dataArr[0].date); } public function set label(_arg1:String):void{ _currLabel = _arg1; _label.htmlText = CSSMapper.map(_currLabel, "graphboxBoxDate"); _labelHover.htmlText = CSSMapper.map(_currLabel, "graphboxBoxDateActive"); } override public function set height(_arg1:Number):void{ if (_invisibleGround == null){ return; }; _height = int((_arg1 + 0.5)); _invisibleGround.height = _height; } override public function get width():Number{ return (_ground.width); } private function __updateLabelScale():void{ var _local1:Array = _currLabel.split("/"); var _local2:String = _local1[0]; var _local3:String = String(_local1[1]).slice(2, String(_local1[1]).length); _local2 = (_local2 + ("/<br>" + _local3)); _label.htmlText = ""; _labelHover.htmlText = ""; _label.wordWrap = (_labelHover.wordWrap = true); _label.multiline = (_labelHover.multiline = true); _label.htmlText = CSSMapper.map(_local2, "graphboxBoxDate"); _labelHover.htmlText = CSSMapper.map(_local2, "graphboxBoxDateActive"); _label.x = (_labelHover.x = ((_labelHoverGround.width * 0.5) - (_label.width * 0.5))); _label.y = (_labelHover.y = ((_labelHoverGround.height * 0.5) - (_label.height * 0.5))); } public function set isCurrent(_arg1:Boolean):void{ _isCurrent = _arg1; if (_label){ _label.visible = !(_isCurrent); }; if (_labelHover){ _labelHover.visible = !(_label.visible); }; if (_labelHoverGround){ _labelHoverGround.visible = _isCurrent; }; _groundAlpha = (_isCurrent) ? 0.2 : 0.05; } override public function get height():Number{ return (_height); } private function __mapDotPercentHeightToPixelHeight(_arg1:Number):Number{ return ((_arg1 * _currentPixelPerPercent)); } private function __updateDotsPosition():void{ var _local1:GraphboxDotButton; if ((((dots == null)) || ((_dataArr == null)))){ return; }; var _local2:Number = 0; var _local3:int; while (_local3 < dots.length) { _local1 = (dots[_local3] as GraphboxDotButton); _local1.renderLinesCallback = renderLinesCallback; _local2 = __mapDotPercentToYPosition(_dataArr[_local3].value); _local1.reset(); _local1.y = _local2; _local1.value = _dataArr[_local3].value; _local1.diff = _dataArr[_local3].diff; if (!_dataArr[_local3].fixed){ _local1.height = __mapDotPercentHeightToPixelHeight((_dataArr[_local3].diff * 2)); }; _local3++; }; } public function get isCurrent():Boolean{ return (_isCurrent); } private function __getTextField(_arg1:String, _arg2:Number, _arg3:String):TextField{ var _local4:TextField = CostumTextfield.getCSSTextfield(); _local4.width = _arg2; _local4.htmlText = CSSMapper.map(_arg1, _arg3); return (_local4); } public function updateDotsData(_arg1:Array):void{ var _local3:GraphboxDotButton; var _local2 = !((_dataArr.length == _arg1.length)); _dataArr = _arg1; if (_local2){ __addDots(); }; var _local4:int; while (_local4 < _amountItems) { _local3 = (dots[_local4] as GraphboxDotButton); _local3.allowRender = (_local3.visible = _dataArr[_local4].render); _local4++; }; __updateDotsPosition(); __groundOnUpdate(); } private function __evenHandler(_arg1:Event):void{ switch (_arg1.type){ case Event.REMOVED_FROM_STAGE: DisplayUtils.removeDisplayObject(_itemsContainer); if (_itemsContainer != null){ _itemsContainer = null; }; break; }; } } }//package eu.ecb.economia.ui.graphbox
Section 185
//Graphbox (eu.ecb.economia.ui.graphbox.Graphbox) package eu.ecb.economia.ui.graphbox { import flash.events.*; import de.aperto.managers.*; import flash.display.*; import com.greensock.*; import de.aperto.utils.*; import flash.text.*; import eu.ecb.economia.*; import de.aperto.display.*; import com.greensock.easing.*; import eu.ecb.economia.utils.*; import eu.ecb.economia.ui.buttons.graphbox.*; public class Graphbox extends Sprite { protected var _bitmapUtils:Object; private var renderCorner1X:int; private var renderCorner1Y:int; private var renderBoxNext:Box; private var renderBmd:BitmapData; private var _graphboxPercentLine:GraphboxPercentLine; private var renderCorner2X:int; private var renderCorner2Y:int; private var _graphboxBoxSpace:int;// = 5 private var _librarayManagerGetClass:Function; protected var graphboxBorderSpace:int;// = 20 protected var economicData:Array; private var _zeroLineDummy:Sprite; private var renderCorner3X:int; private var renderCorner3Y:int; private var renderBox:Box; private var _linesContainer:Sprite; protected var graphBoxContainer:SpriteMotion; private var renderDotNext:GraphboxDotButton; private var renderCorner4X:int; private var renderCorner4Y:int; private var renderI:int; private var renderJ:int; protected var graphBoxContainerMask:Sprite; protected var currentVisibleBoxes:int;// = 0 private var _amountBoxes:int; protected var activeGraphboxFilters:Array; protected var firstBuild:Boolean;// = true protected var graphboxHeadline:TextField; private var renderLineMask:Sprite; private var _boxSingleWidth:Number;// = 0 private var _boxSingleHeight:Number;// = 0 private var _mainContainer:Sprite; private var _isMultiGraphbox:Boolean; protected var boxes:Array; private var renderDot:GraphboxDotButton; private var renderLine:Sprite; private var _graphboxPercentLineSpace:int;// = 15 protected var maxVisibleBoxes:int;// = 0 private var _currentPixelPerPercent:Number; private var renderAmountDots:int; private var _optimalSolutionLine:Sprite; public function Graphbox(_arg1:Array){ this.economicData = _arg1.slice(); activeGraphboxFilters = []; _bitmapUtils = BitmapUtils; _librarayManagerGetClass = LibraryManager.Instance.getClass; addEventListener(Event.ADDED_TO_STAGE, __addedToStage); } public function get percentRange():Number{ return (Math.min(100, int((((_boxSingleHeight / _currentPixelPerPercent) * 0.5) + 0.5)))); } protected function renderLines():void{ if (_linesContainer != null){ graphBoxContainer.removeChild(graphBoxContainer.getChildByName(_linesContainer.name)); _linesContainer = null; }; _linesContainer = new Sprite(); graphBoxContainer.addChild(_linesContainer); renderI = 0; while (renderI < (_amountBoxes - 1)) { renderBox = (boxes[renderI] as Box); renderBoxNext = (boxes[(renderI + 1)] as Box); renderBoxNext.updateDots(); renderBox.updateDots(); renderAmountDots = renderBoxNext.dots.length; renderJ = 0; while (renderJ < renderAmountDots) { renderDot = (renderBox.dots[renderJ] as GraphboxDotButton); renderDotNext = (renderBoxNext.dots[renderJ] as GraphboxDotButton); if (((((renderDot.allowRender) && (renderDot.select))) && (renderDotNext.select))){ renderLine = new Sprite(); _linesContainer.addChild(renderLine); renderCorner1X = int(((renderBox.x + (renderBox.width * 0.5)) + 0.5)); renderCorner2X = int(((renderBoxNext.x + (renderBoxNext.width * 0.5)) + 0.5)); renderCorner3X = int(((renderBoxNext.x + (renderBoxNext.width * 0.5)) + 0.5)); renderCorner4X = int(((renderBox.x + (renderBox.width * 0.5)) + 0.5)); if (renderBox.fixed){ renderCorner1Y = (int((renderDot.y + 0.5)) - int(((renderDot.height * 0.5) + 0.5))); renderCorner2Y = (int((renderDotNext.y + 0.5)) - int(((renderDotNext.height * 0.5) + 0.5))); renderCorner3Y = (int((renderDotNext.y + 0.5)) + int(((renderDotNext.height * 0.5) + 0.5))); renderCorner4Y = (int((renderDot.y + 0.5)) + int(((renderDot.height * 0.5) + 0.5))); renderBmd = new (_librarayManagerGetClass("lineRaster") as Class)(0, 0); renderBmd.floodFill(0, 0, _bitmapUtils.convertRGBToARGB(renderDot.color, 0xFF)); renderLine.graphics.beginBitmapFill(renderBmd); } else { renderCorner1Y = (int((renderDot.y + 0.5)) + 1); renderCorner2Y = (int((renderDotNext.y + 0.5)) + 1); renderCorner3Y = (int((renderDotNext.y + 0.5)) + 1); renderCorner4Y = (int((renderDot.y + 0.5)) + 1); renderLine.graphics.lineStyle(2, renderDot.color); }; renderLine.graphics.moveTo(renderCorner1X, renderCorner1Y); renderLine.graphics.lineTo(renderCorner2X, renderCorner2Y); renderLine.graphics.lineTo(renderCorner3X, renderCorner3Y); renderLine.graphics.lineTo(renderCorner4X, renderCorner4Y); renderLine.graphics.endFill(); }; renderJ++; }; renderI++; }; } private function __addedToStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, __addedToStage); __addContainer(); __addPercentLine(); __addBoxes(); var _local2:BitmapData = new (_librarayManagerGetClass("lineRaster") as Class)(0, 0); _local2.floodFill(0, 0, _bitmapUtils.convertRGBToARGB(14918190, 0xFF)); _optimalSolutionLine = DrawUtils.getRect(800, 1, 15049515, 0, 0, _local2); graphBoxContainer.addChild(_optimalSolutionLine); _optimalSolutionLine.x = -400; _optimalSolutionLine.y = (Defaults.GRAPHBOX_ZERO_LINE_VAL - (Defaults.GRAPHBOX_PERCENT_STEPS * 2)); } private function __setFilterToBoxes(_arg1:Array):void{ var _local2:Box; var _local3:int; while (_local3 < boxes.length) { _local2 = (boxes[_local3] as Box); _local2.dotsFilter = _arg1; _local3++; }; } public function set isMultiGraphbox(_arg1:Boolean):void{ _isMultiGraphbox = _arg1; } protected function updateValuesOfForecastBoxes(_arg1:Array):void{ var _local2:Box; var _local3:int; var _local4:int; while (_local4 < _arg1.length) { _local2 = (boxes[_local4] as Box); _local2.renderLinesCallback = renderLines; _local2.updateDotsData(_arg1[_local3]); _local3++; _local4++; }; } private function __graphBoxContainerOnUpdate():void{ renderLines(); } public function set pixelPercentRange(_arg1:Number):void{ _currentPixelPerPercent = _arg1; var _local2:int; while (_local2 < boxes.length) { (boxes[_local2] as Box).pixelPercentRange = _arg1; _local2++; }; _graphboxPercentLine.pixelPercentRange = _arg1; TweenMax.to(_optimalSolutionLine, 0.35, {y:(GraphboxUtils.translateZeroPosition(_arg1) - (_arg1 * 2)), ease:Strong.easeOut, overwrite:true}); } private function __addPercentLine():void{ _graphboxPercentLine = new GraphboxPercentLine(); this.addChild(_graphboxPercentLine); _graphboxPercentLine.x = (graphboxBorderSpace - int(((_graphboxPercentLine.width * 0.5) + 0.5))); _graphboxPercentLine.y = _mainContainer.y; } public function set optimalSolutionLine(_arg1:Boolean):void{ if (_optimalSolutionLine){ _optimalSolutionLine.visible = _arg1; }; } protected function graphboxOnUpdate():void{ } private function __addBoxes():void{ var _local2:Box; var _local1:int = ((economicData.length > maxVisibleBoxes)) ? maxVisibleBoxes : economicData.length; var _local3:Number = 0; var _local4:Number = 0; var _local5:Number = _graphboxBoxSpace; boxes = []; var _local6:int; while (_local6 < _local1) { _local2 = new Box(economicData[_local6], _local6); _local2.renderLinesCallback = renderLines; graphBoxContainer.addChild(_local2); _local2.id = _local6; _local2.isMultiGraphbox = _isMultiGraphbox; _local2.width = 20; _local2.height = 240; _local2.x = _local3; _local3 = (_local3 - (_local2.width + _local5)); boxes.push(_local2); _local2.fixed = !(economicData[_local6][0].fixed); _local2.isCurrent = economicData[_local6][0].current; _local6++; }; _amountBoxes = boxes.length; } override public function set width(_arg1:Number):void{ } protected function setGraphboxFilter(_arg1:int):void{ var _local2:Boolean; var _local3:int; while (_local3 < activeGraphboxFilters.length) { if (_arg1 == activeGraphboxFilters[_local3]){ activeGraphboxFilters.splice(activeGraphboxFilters.indexOf(activeGraphboxFilters[_local3]), 1); _local2 = true; break; }; _local3++; }; if (!_local2){ activeGraphboxFilters.push(_arg1); }; __setFilterToBoxes(activeGraphboxFilters); } protected function updateGraphbox(_arg1:Array):void{ var _local2:Array; var _local4:int; var _local6:Box; var _local7:Box; var _local8:Box; var _local9:Box; var _local3:int = (boxes.length - 1); var _local5:Number = _graphboxBoxSpace; _local6 = (boxes[0] as Box); _local7 = (boxes[(boxes.length - 1)] as Box); var _local10:int = Math.abs((economicData.length - _arg1.length)); var _local11:Number = (_local6.x + (_local6.width + _local5)); _local2 = _arg1.slice(0, _local10).reverse(); _local4 = 0; while (_local4 < _local2.length) { _local8 = new Box(_local2[_local4], _local3); graphBoxContainer.addChild(_local8); _local8.id = _local3; _local8.width = _local6.width; _local8.height = _local6.height; _local8.x = _local11; _local11 = (_local11 + (_local8.width + _local5)); boxes.unshift(_local8); _local3++; _local4++; }; if (boxes.length > (maxVisibleBoxes + 1)){ boxes.splice(boxes.indexOf(_local7), 1); DisplayUtils.removeDisplayObject(_local7); if (_local7 != null){ TweenMax.killChildTweensOf(_local7); _local7 = null; }; }; _local4 = 0; while (_local4 < boxes.length) { _local9 = boxes[_local4]; _local9.renderLinesCallback = renderLines; _local9.isMultiGraphbox = _isMultiGraphbox; _local9.isCurrent = false; _local9.updateDotsData(_arg1[_local4]); _local9.dotsFilter = activeGraphboxFilters; _local9.id = _local4; _local9.fixed = !(_arg1[_local4][0].fixed); _local9.isCurrent = _arg1[_local4][0].current; _local4++; }; economicData = _arg1; _amountBoxes = boxes.length; renderLines(); } public function get optimalSolutionLine():Boolean{ return ((_optimalSolutionLine) ? _optimalSolutionLine.visible : false); } protected function updateGraphboxMask(_arg1:Number, _arg2:Number):void{ graphBoxContainerMask.width = ((_arg1 - (graphboxBorderSpace * 2)) - _graphboxPercentLineSpace); graphBoxContainerMask.height = _arg2; } private function __addContainer():void{ _mainContainer = new Sprite(); this.addChild(_mainContainer); _mainContainer.y = 45; _mainContainer.x = (graphboxBorderSpace + _graphboxPercentLineSpace); graphBoxContainer = new SpriteMotion(); _mainContainer.addChild(graphBoxContainer); graphBoxContainer.motionSoftness = 1; graphBoxContainer.quality = 2; graphBoxContainerMask = DrawUtils.getRect(250, 250); _mainContainer.addChild(graphBoxContainerMask); graphBoxContainerMask.x = graphBoxContainer.x; graphBoxContainer.mask = graphBoxContainerMask; } protected function updateSingleBoxes(_arg1:Number, _arg2:Number):void{ var _local3:Box; var _local4:Number = ((_arg1 - (graphboxBorderSpace * 2)) - _graphboxPercentLineSpace); var _local5:Number = 0; var _local6:int = _graphboxBoxSpace; _boxSingleWidth = ((_local4 - (_local6 * (currentVisibleBoxes - 1))) / currentVisibleBoxes); _boxSingleHeight = _arg2; var _local7:int; while (_local7 < _amountBoxes) { _local3 = (boxes[_local7] as Box); _local3.width = _boxSingleWidth; _local3.height = _boxSingleHeight; _local3.myX = _local5; _local5 = (_local5 - (_boxSingleWidth + _local6)); _local3.update(firstBuild); _local7++; }; var _local8:Number = (_local4 - _boxSingleWidth); if (firstBuild){ graphBoxContainer.x = _local8; firstBuild = false; return; }; graphBoxContainer.motionBlur = true; TweenMax.to(graphBoxContainer, Defaults.GRAPHBOX_UPDATE_SPEED, {x:_local8, useFrames:true, overwrite:true, onUpdate:__graphBoxContainerOnUpdate, onComplete:graphboxOnUpdate, ease:Defaults.GRAPHBOX_UPDATE_EASING}); } } }//package eu.ecb.economia.ui.graphbox
Section 186
//GraphboxPercentLine (eu.ecb.economia.ui.graphbox.GraphboxPercentLine) package eu.ecb.economia.ui.graphbox { import flash.events.*; import flash.display.*; import com.greensock.*; import de.aperto.utils.*; import flash.text.*; import eu.ecb.economia.*; import com.greensock.easing.*; import eu.ecb.economia.utils.*; import de.aperto.text.*; public class GraphboxPercentLine extends Sprite { private var _itemsArr:Array; private var _container:Sprite; private var _mask:Sprite; private var _currentPixelPerPercent:Number;// = 15 private var _range:int;// = 110 public function GraphboxPercentLine(){ addEventListener(Event.ADDED_TO_STAGE, __addedToStage); } private function __addedToStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, __addedToStage); __addContainer(); __addPercentLine(); __addMask(); __addPercentIcon(); } private function __updateScaling():void{ var _local1:Sprite; var _local2:int = _itemsArr.length; var _local3:Number = 0; var _local4:Number = -(_range); var _local5:int = GraphboxUtils.getRangeSteps(_currentPixelPerPercent); var _local6:int; while (_local6 < _local2) { _local1 = (_itemsArr[_local6] as Sprite); _local3 = -((_currentPixelPerPercent * _local4)); _local4++; if (((((((_local6 % _local5) == 0)) && ((_local3 > -200)))) && ((_local3 < 150)))){ _local1.visible = true; TweenMax.to(_local1, 0.35, {y:_local3, alpha:1, ease:Strong.easeOut, overwrite:true}); } else { if (((_local1.visible) && ((_local1.alpha > 0)))){ TweenMax.to(_local1, 0.35, {y:_local3, alpha:0, ease:Strong.easeOut, onComplete:__itemOnHide, onCompleteParams:[_local1], overwrite:true}); }; }; _local6++; }; TweenMax.to(_container, 0.35, {y:GraphboxUtils.translateZeroPosition(_currentPixelPerPercent), ease:Strong.easeOut}); } public function set pixelPercentRange(_arg1:Number):void{ _currentPixelPerPercent = _arg1; __updateScaling(); } private function __addMask():void{ _mask = DrawUtils.getRect((this.width + 10), (Defaults.MULTI_GRAPHBOX_BOX_HEIGHT - 10)); this.addChild(_mask); _container.mask = _mask; _mask.x = (_container.x - ((_mask.width * 0.5) + 5)); _mask.y = 10; } private function __addContainer():void{ _container = new Sprite(); this.addChild(_container); _container.x = 27; _container.y = Defaults.GRAPHBOX_ZERO_LINE_VAL; } private function __addPercentLine():void{ var _local2:Sprite; var _local3:Bitmap; var _local4:TextField; _itemsArr = []; var _local1:int = (_range * 2); var _local5:int = -(_range); var _local6:int; while (_local6 < _local1) { _local4 = CostumTextfield.getCSSTextfield(); _local4.htmlText = CSSMapper.map(_local5.toString(), "graphboxBoxPercentLine"); _local5++; _local2 = new Sprite(); _container.addChild(_local2); _local3 = new Bitmap(BitmapUtils.getBitmapData(_local4, _local4.width, _local4.height, true, 0, true), "auto", true); _local2.addChild(_local3); _local2.x = -(_local3.width); _local3.y = -(((_local3.height * 0.5) + 2)); _itemsArr[_local6] = _local2; _local4 = null; _local6++; }; __updateScaling(); } private function __itemOnHide(_arg1:Sprite):void{ _arg1.visible = false; } private function __addPercentIcon():void{ var _local1:TextField = CostumTextfield.getCSSTextfield(); this.addChild(_local1); _local1.htmlText = CSSMapper.map("%", "graphboxBoxPercentLine"); _local1.x = (_container.x - _local1.width); _local1.y = -((_local1.height * 0.5)); } } }//package eu.ecb.economia.ui.graphbox
Section 187
//GraphboxPercentMarkers (eu.ecb.economia.ui.graphbox.GraphboxPercentMarkers) package eu.ecb.economia.ui.graphbox { import flash.events.*; import de.aperto.managers.*; import flash.display.*; import com.greensock.*; import de.aperto.utils.*; import eu.ecb.economia.*; import com.greensock.easing.*; import eu.ecb.economia.utils.*; public class GraphboxPercentMarkers extends Sprite { private var _itemsArr:Array; private var _container:Sprite; private var _currentPixelPerPercent:Number;// = 15 private var _range:int;// = 110 public function GraphboxPercentMarkers(){ addEventListener(Event.ADDED_TO_STAGE, __addedToStage); } private function __addedToStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, __addedToStage); __addContainer(); __addMarkers(); } private function __updateScaling():void{ var _local1:Sprite; var _local2:int = _itemsArr.length; var _local3:Number = 0; var _local4:Number = -(_range); var _local5:int = GraphboxUtils.getRangeSteps(_currentPixelPerPercent); var _local6:int; while (_local6 < _local2) { _local1 = (_itemsArr[_local6] as Sprite); _local3 = -((_currentPixelPerPercent * _local4)); _local4++; if (((((((_local6 % _local5) == 0)) && ((_local3 > -200)))) && ((_local3 < 150)))){ _local1.visible = true; TweenMax.to(_local1, 0.35, {y:_local3, alpha:1, ease:Strong.easeOut, overwrite:true}); } else { if (((_local1.visible) && ((_local1.alpha > 0)))){ TweenMax.to(_local1, 0.35, {y:_local3, alpha:0, ease:Strong.easeOut, onComplete:__itemOnHide, onCompleteParams:[_local1], overwrite:true}); }; }; _local6++; }; TweenMax.to(_container, 0.35, {y:GraphboxUtils.translateZeroPosition(_currentPixelPerPercent), ease:Strong.easeOut}); } public function set pixelPercentRange(_arg1:Number):void{ _currentPixelPerPercent = _arg1; __updateScaling(); } private function __addContainer():void{ _container = new Sprite(); this.addChild(_container); _container.y = Defaults.GRAPHBOX_ZERO_LINE_VAL; } private function __addMarkers():void{ var _local2:Sprite; var _local3:Bitmap; _itemsArr = []; var _local1:int = (_range * 2); var _local4:int; while (_local4 < _local1) { _local2 = new Sprite(); _container.addChild(_local2); _local3 = new Bitmap(new (LibraryManager.Instance.getClass("percentMarker") as Class)(0, 0), "auto", true); _local2.addChild(_local3); _local3.x = -((_local3.width * 0.5)); _local3.y = -((_local3.height * 0.5)); _itemsArr[_local4] = _local2; _local4++; }; __updateScaling(); } private function __itemOnHide(_arg1:Sprite):void{ _arg1.visible = false; } } }//package eu.ecb.economia.ui.graphbox
Section 188
//HighscoreListItem (eu.ecb.economia.ui.highscore.HighscoreListItem) package eu.ecb.economia.ui.highscore { import flash.events.*; import de.aperto.managers.*; import flash.display.*; import de.aperto.utils.*; import flash.text.*; import eu.ecb.economia.data.*; import eu.ecb.economia.*; import de.aperto.text.*; import eu.ecb.economia.text.*; public class HighscoreListItem extends Sprite { private var _numberDot:HighscoreListItemNumberDot; private var _container:Sprite; private var _awardContainer:Sprite; private var _json:Object; private var _copyBmp:Bitmap; private var _gameDataPool:GameDataPool; private var _ground:Sprite; public function HighscoreListItem(_arg1:Object, _arg2:GameDataPool){ _json = _arg1; _gameDataPool = _arg2; _container = new Sprite(); this.addChild(_container); addEventListener(Event.ADDED_TO_STAGE, __addedToStage); } private function __addedToStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, __addedToStage); __addGround(); __addAward(); __addLabel(); __addNumberDot(); } private function __createItemBitmapCopy():void{ var _local1:Number = (_numberDot.width * 0.5); var _local2:Number = (_numberDot.height * 0.5); var _local3:Sprite = new Sprite(); this.addChild(_local3); _local3.addChild(_container); _container.x = _local2; _container.y = _local2; _copyBmp = new Bitmap(BitmapUtils.getBitmapData(_local3, (_local3.width + _local1), (_local3.height + _local2), true, 0, false), "auto", false); this.addChild(_copyBmp); _copyBmp.x = -(_local1); _copyBmp.y = -(_local2); DisplayUtils.removeDisplayObject(_container); _container = null; DisplayUtils.removeDisplayObject(_local3); _local3 = null; } override public function get width():Number{ return (Defaults.HIGHSCORE_LIST_ITEM_WIDTH); } private function __addAward():void{ _awardContainer = new Sprite(); _container.addChild(_awardContainer); if (_json.award == "4"){ __addCup(); } else { __addStars(); }; _awardContainer.x = (_ground.width - (_awardContainer.width + 10)); _awardContainer.y = ((_ground.height * 0.5) - (_awardContainer.height * 0.5)); } private function __getTextfield(_arg1, _arg2:String, _arg3:String):TextField{ var _local4:TextField = CostumTextfield.getCSSTextfield("left", false, true, true); _local4.htmlText = CSSMapper.map(_arg2, _arg3); _local4.width = (Defaults.HIGHSCORE_LIST_ITEM_WIDTH - 80); _arg1.addChild(_local4); return (_local4); } private function __addStars():void{ var _local2:MovieClip; var _local1:int = _gameDataPool.settings.amountAwards; var _local3 = 3; var _local4 = 2; var _local5 = 2; var _local6:int; while (_local6 < _local1) { _local2 = new ((LibraryManager.Instance.getClass("Stern") as Class)); _awardContainer.addChild(_local2); _local2.x = ((_local6 % _local4) * (_local2.width + _local3)); _local2.y = (Math.floor(((_local6 % _local1) / _local5)) * (_local2.height + _local3)); if (_local6 < parseInt(_json.award)){ _local2.gotoAndStop(73); }; _local6++; }; } override public function get height():Number{ return (Defaults.HIGHSCORE_LIST_ITEM_HEIGHT); } private function __addGround():void{ var _local1:int = Defaults.HIGHSCORE_LIST_ITEM_CORNER_ROUND; var _local2:int = Defaults.HIGHSCORE_LIST_ITEM_WIDTH; var _local3:int = Defaults.HIGHSCORE_LIST_ITEM_HEIGHT; _ground = DrawUtils.getGradientRoundRect(_local2, _local3, _local1, _local1, 15000806, 15658482, 1, 1); _container.addChild(_ground); } private function __addLabel():void{ var _local2:TextField; var _local3:TextField; var _local6:String; var _local1:Sprite = new Sprite(); _container.addChild(_local1); _local1.x = 12; _local1.y = 6; var _local4:int; var _local5 = -6; _local6 = String(_json.name); _local2 = __getTextfield(_local1, _local6, "highscoreListItemUsername"); _local2.y = _local4; var _local7:Sprite = DrawUtils.getRect(_local2.width, 10, 0); _local1.addChild(_local7); _local7.y = _local2.y; _local7.height = ((_local2.getLineMetrics(0).height * ((_local2.numLines > 2)) ? 2 : 1) + 4); _local2.mask = _local7; if (_local2.numLines < 2){ _local5 = -3; _local1.x = 15; _local1.y = 10; }; _local4 = ((_local7.y + _local7.height) + 4); var _local8:Function = LabelManager.Instance.getString; var _local9:Number = (_json.quarter * 3); var _local10:int = (_local9 / 12); var _local11:Number = (_local9 - (_local10 * 12)); _local6 = (_local8("highscoreListItemMandate") + " "); _local6 = (_local6 + ((_local10 > 0)) ? (((_local10.toString() + " ") + _local8(String(("highscoreListItemMandateYear" + _local10)))) + " ") : ""); _local6 = (_local6 + ((_local11 > 0)) ? ((_local11.toString() + " ") + _local8(String(("highscoreListItemMandateMonth" + _local11)))) : ""); _local2 = __getTextfield(_local1, _local6, "highscoreListItemCopyLine"); _local2.y = _local4; _local4 = ((_local2.y + _local2.height) + _local5); _local6 = ((_local8("highscoreListItemPoints") + " ") + StringMapper.mapNumber(parseFloat(_json.score))); _local2 = __getTextfield(_local1, _local6, "highscoreListItemCopyLine"); _local2.y = _local4; } private function __addCup():void{ var _local1:BitmapData = (new (LibraryManager.Instance.getClass("CupHighscore") as Class)(0, 0) as BitmapData); var _local2:Bitmap = new Bitmap(_local1, "auto", true); _awardContainer.addChild(_local2); } private function __addNumberDot():void{ DisplayUtils.removeDisplayObject(_numberDot); if (_numberDot){ _numberDot = null; }; _numberDot = new HighscoreListItemNumberDot(_json.rank, 12, 3); _container.addChild(_numberDot); } } }//package eu.ecb.economia.ui.highscore
Section 189
//HighscoreListItemNumberDot (eu.ecb.economia.ui.highscore.HighscoreListItemNumberDot) package eu.ecb.economia.ui.highscore { import flash.events.*; import flash.display.*; import de.aperto.utils.*; import flash.text.*; import de.aperto.text.*; public class HighscoreListItemNumberDot extends Sprite { private var _outlineStrength:int; private var _ground:Sprite; private var _radius:int; private var _value:int; private var _closeBtnCross:Sprite; public function HighscoreListItemNumberDot(_arg1:int, _arg2:Number=10, _arg3:Number=2){ _value = _arg1; _radius = _arg2; _outlineStrength = _arg3; __addGround(); __addIcon(); addEventListener(Event.ADDED_TO_STAGE, __addedToStage); } private function __addIcon():void{ var _local1:TextField = CostumTextfield.getCSSTextfield(); _local1.htmlText = CSSMapper.map(_value.toString(), "highscoreListItemNumberDot"); this.addChild(_local1); _local1.x = -((_local1.width * 0.5)); _local1.y = (-((_local1.height * 0.5)) - 2); BitmapUtils.addShadow(_local1, 1, 1, 0, 3, 0.8); } private function __addedToStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, __addedToStage); BitmapUtils.addShadow(_ground, 3, 3, 3, 3, 0.12, 45); } private function __addGround():void{ _ground = DrawUtils.getGradientCircle(_radius, 8162747, 4347547, 1, 1, 0xFFFFFF, _outlineStrength); this.addChild(_ground); } } }//package eu.ecb.economia.ui.highscore
Section 190
//SuccessBar (eu.ecb.economia.ui.successbar.SuccessBar) package eu.ecb.economia.ui.successbar { import flash.events.*; import de.aperto.managers.*; import flash.display.*; import nl.demonsters.debugger.*; public class SuccessBar extends Sprite { private var _tacho:MovieClip; public function SuccessBar(){ addEventListener(Event.ADDED_TO_STAGE, __addedToStage); } private function __addedToStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, __addedToStage); __addTacho(); } public function update(_arg1:int=1):void{ MonsterDebugger.trace(this, ("SuccessBar.indicator = " + _arg1)); if (_arg1){ _tacho.gotoAndStop(_arg1); }; } private function __addTacho():void{ _tacho = new ((LibraryManager.Instance.getClass("Tacho") as Class)); this.addChild(_tacho); } public function reset():void{ _tacho.gotoAndStop(1); } } }//package eu.ecb.economia.ui.successbar
Section 191
//SliderNumberPanel (eu.ecb.economia.ui.SliderNumberPanel) package eu.ecb.economia.ui { import flash.events.*; import de.aperto.managers.*; import flash.display.*; import flash.text.*; import de.aperto.text.*; import eu.ecb.economia.text.*; public class SliderNumberPanel extends Sprite { private var _subLabel:TextField; private var _ground:Bitmap; private var _percentAsStringFlashOffset:String;// = "0.00" private var _percentAsString:String; private var _decimalSeperator:String; private var _spaceSeperator:String; private var _numLabel:TextField; public function SliderNumberPanel(){ _decimalSeperator = StringMapper.getPercentDecimalSeperator(); _spaceSeperator = StringMapper.getPercentSpaceSeperator(); _percentAsString = (("0" + _decimalSeperator) + "00"); super(); __addGround(); __addLabels(); addEventListener(Event.ADDED_TO_STAGE, __addedToStage); } private function __addLabels():void{ _numLabel = (CostumTextfield.getCSSTextfield("center") as TextField); this.addChild(_numLabel); _numLabel.x = _ground.x; _numLabel.y = 15; _numLabel.width = _ground.width; _numLabel.htmlText = CSSMapper.map("0.00 %", "sliderNumberPanel"); _subLabel = (CostumTextfield.getCSSTextfield("center") as TextField); this.addChild(_subLabel); _subLabel.htmlText = CSSMapper.map(LabelManager.Instance.getString("sliderNumberPanelSubline"), "sliderNumberPanelSubline"); _subLabel.x = _numLabel.x; _subLabel.width = _numLabel.width; _subLabel.y = ((_numLabel.y + _numLabel.height) - 5); } private function __addedToStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, __addedToStage); } private function __addGround():void{ _ground = new Bitmap(__getBmD("SliderNumberGround"), "auto", true); this.addChild(_ground); } private function __getBmD(_arg1:String):BitmapData{ return (new (LibraryManager.Instance.getClass(_arg1) as Class)(0, 0)); } public function update(_arg1:Number):void{ var _local2:Number = (int(((((_arg1 * 100) % 100) / 25) + 0.5)) * 25); var _local3:Number = int(_arg1); if (_local2 == 100){ _local2 = 0; _local3++; }; _percentAsString = String(((_local3 + _decimalSeperator) + _local2)); _percentAsStringFlashOffset = String(((_local3 + ".") + _local2)); if (_local2 == 0){ _percentAsString = String(((_local3 + _decimalSeperator) + "00")); _percentAsStringFlashOffset = String(((_local3 + ".") + "00")); }; _numLabel.htmlText = CSSMapper.map(((_percentAsString + _spaceSeperator) + "%"), "sliderNumberPanel"); } public function get value():Number{ return (parseFloat(_percentAsStringFlashOffset)); } } }//package eu.ecb.economia.ui
Section 192
//GameUtils (eu.ecb.economia.utils.GameUtils) package eu.ecb.economia.utils { import eu.ecb.economia.events.*; import de.aperto.managers.*; import flash.display.*; import eu.ecb.economia.game.*; import flash.geom.*; import de.aperto.utils.*; import flash.text.*; import eu.ecb.economia.ui.buttons.infobutton.*; import nl.demonsters.debugger.*; import eu.ecb.economia.*; import de.aperto.text.*; public class GameUtils { private static var _game:Game; public static function getDummyString(_arg1:int=0):String{ var _local2 = ""; switch (_arg1){ case 0: _local2 = "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet."; break; case 1: _local2 = "Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy. Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy."; break; case 2: _local2 = "At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, At accusam aliquyam diam diam dolore dolores duo eirmod eos erat, et nonumy sed tempor et et invidunt. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, At accusam aliquyam diam diam dolore dolores duo eirmod eos erat, et nonumy sed tempor et et invidunt."; break; }; return (_local2); } public static function playIntermediateFeedbackSound(_arg1:int, _arg2:Boolean=true):String{ var _local3:Array; if (_arg2){ _local3 = ["", "VERYGOOD", "GOOD", "ISOK", "BAD", "VERYBAD", "", "", "", "", "", "", ""]; } else { _local3 = ["", "", "", "", "", "VERYBAD", "VERYGOOD", "GOOD", "ISOK", "BAD", "VERYBAD"]; }; var _local4:String = _local3[_arg1]; SoundManager.Instance.playSoundFromLibrary(_local4); return (_local4); } public static function getInfoButton(_arg1, _arg2:Number=0, _arg3:Number=0, _arg4:int=-1, _arg5:Function=null):InfoButton{ var _local6:InfoButton = new InfoButton(7); _arg1.addChild(_local6); _local6.x = _arg2; _local6.y = _arg3; _local6.id = _arg4; if (_arg5 != null){ _local6.addEventListener(ButtonEvent.MOUSE_OVER, _arg5); _local6.addEventListener(ButtonEvent.MOUSE_OUT, _arg5); }; return (_local6); } public static function textRequest(_arg1:String):void{ MonsterDebugger.trace(GameUtils, _arg1); var _local2:Array = _arg1.split(","); var _local3:int = parseInt(_local2[0]); switch (_local3){ case Defaults.GLOSSARY_TEMPLATE_ID: _game.getTemplateController().addTemplate(Defaults.GLOSSARY_TEMPLATE_ID, {page:parseInt(_local2[1]), subpage:parseInt(_local2[2])}); break; default: trace("TEMPLATE NOT FOUND"); break; }; } public static function getLogoClaim(_arg1:String, _arg2:Number, _arg3:Boolean):Bitmap{ var _local12:int; var _local13:Number; var _local4:StyleSheet = new StyleSheet(); _local4.setStyle(".logoGround", {fontStyle:"normal", fontFamily:"Meta Pro", fontSize:_arg2, color:"#d59b2f", fontWeight:"bold", textAlign:"center"}); _local4.setStyle(".logoGradient", {fontStyle:"normal", fontFamily:"Meta Pro", fontSize:_arg2, color:"#510002", fontWeight:"bold", textAlign:"center"}); var _local5:Sprite = new Sprite(); var _local6:TextField = new TextField(); _local5.addChild(_local6); _local6.embedFonts = true; _local6.multiline = true; _local6.wordWrap = false; _local6.autoSize = TextFieldAutoSize.LEFT; _local6.antiAliasType = "normal"; _local6.styleSheet = _local4; _local6.htmlText = (("<body><span class='logoGround'>" + _arg1) + "</span></body>"); _local6.width = _local6.textWidth; _local6.height = _local6.textHeight; var _local7:BitmapData = BitmapUtils.getBitmapData(_local5, _local5.width, _local5.height, true, 0, true); var _local8:BitmapData = _local7.clone(); _local6.htmlText = (("<body><span class='logoGradient'>" + _arg1) + "</span></body>"); var _local9:BitmapData = BitmapUtils.getBitmapData(_local5, _local5.width, _local5.height, true, 0, true); if (_arg3){ _local12 = 0; _local13 = -0.25; while (_local12 < _local9.height) { _local9.colorTransform(new Rectangle(0, _local12, _local9.width, 1), new ColorTransform(1, 1, 1, (_local13 + (_local12 / _local9.height)))); _local12++; }; }; var _local10:Sprite = new Sprite(); var _local11:Bitmap = new Bitmap(_local7, "auto", false); _local10.addChild(_local11); BitmapUtils.addGlow(_local11, 7, 7, 0, 3, 1, 16711576); _local11 = new Bitmap(_local8, "auto", false); _local10.addChild(_local11); if (_arg3){ _local11 = new Bitmap(_local9, "auto", false); _local10.addChild(_local11); }; return (new Bitmap(BitmapUtils.getBitmapData(_local10, _local10.width, _local10.height, true, 0, true))); } public static function setup(_arg1:Game):void{ _game = _arg1; } public static function translateStringToArray(_arg1:String, _arg2:String, _arg3:String):Array{ var _local6:int; var _local4:Array = []; var _local5:Array = _arg1.split(_arg2); if (_arg3 == "String"){ _local4 = _local5; }; if (_arg3 == "int"){ _local6 = 0; while (_local6 < _local5.length) { _local4[_local6] = parseInt(_local5[_local6]); _local6++; }; }; if (_arg3 == "Number"){ _local6 = 0; while (_local6 < _local5.length) { _local4[_local6] = parseFloat(_local5[_local6]); _local6++; }; }; return (_local4.slice()); } } }//package eu.ecb.economia.utils
Section 193
//GraphboxUtils (eu.ecb.economia.utils.GraphboxUtils) package eu.ecb.economia.utils { import de.aperto.managers.*; import eu.ecb.economia.game.*; import eu.ecb.economia.*; public class GraphboxUtils { private static var _rangeSteps:Array = [10, 10, 10, 8, 8, 8, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 1]; private static var _game:Game; public static function mapDotPercentHeightToPixelHeight(_arg1:Number):Number{ return ((_arg1 * Defaults.GRAPHBOX_PERCENT_STEPS)); } public static function getFilterObjectById(_arg1:int):Object{ var _local2:XML = XML(_game.getGameBrain().getGameDataPool().gameSettingsXML.gameFilters.filter.@filterId[_arg1]); var _local3:Object = {}; _local3.filterId = _arg1; _local3.filterColor = parseInt(_local2.parent().@filterColor); _local3.description = LabelManager.Instance.getString(_local2.parent().@labelId); return (_local3); } public static function getRangeSteps(_arg1:Number):int{ var _local2:int = _rangeSteps[_arg1]; if (_arg1 > 15){ _local2 = _rangeSteps[(_rangeSteps.length - 1)]; }; if (_arg1 > 32){ _local2 = 10; }; return (_local2); } public static function setup(_arg1:Game):void{ _game = _arg1; } public static function translateZeroPosition(_arg1:Number):Number{ return ((Defaults.GRAPHBOX_ZERO_LINE_VAL - ((Defaults.GRAPHBOX_PERCENT_STEPS - _arg1) * 4))); } public static function mapDotPercentToYPosition(_arg1:Number):Number{ var _local2:int = Defaults.GRAPHBOX_ZERO_LINE_VAL; return ((_local2 - (_arg1 * Defaults.GRAPHBOX_PERCENT_STEPS))); } } }//package eu.ecb.economia.utils
Section 194
//Defaults (eu.ecb.economia.Defaults) package eu.ecb.economia { import com.greensock.easing.*; public class Defaults { public static const GAME_BANDEROLE_WIDTH:int = 994; public static const HIGHSCORE_LIST_ITEM_HEIGHT:int = 100; public static const STRING_PLACEHOLDER_AMOUNT_PLAYERS:String = "-!amountPlayers!-"; public static const TOPTOOLTIP_MAX_TEXTFIELD_WIDTH:int = 300; public static const GAMEOVER_TEMPLATE_ID:int = 111; public static const MAP_SHOCK_LAYER_MINI_WIDTH:int = 150; public static const APPLICATION_HEIGHT:int = 685; public static const TEAM_TEMPLATE_ID:int = 1; public static const MAX_CLICK_TIME:int = 1000; public static const MAINNAVI_BANDEROLE_START_Y:int = -40; public static const LANUAGE_TEMPLATE_ID:int = 116; public static const GAME_STAGE_WIDTH:int = 980; public static const LEARNMORE_TEMPLATE_ID:int = 114; public static const GLOBAL_STRING_PLACEHOLDER:String = "-!pointer!-"; public static const MAP_DEFAULT_WIDTH:int = 610; public static const GAMELOADER_TEMPLATE_ID:int = 112; public static const GAME_STAGE_BORDERSPACE:int = 30; public static const HIGHSCORE_TEMPLATE_ID:int = 115; public static const STRING_PLACEHOLDER_PLACE:String = "-!place!-"; public static const GAME_TOPVIEW_ITEMS_SPACE:int = 30; public static const DISCLAIMER_TEMPLATE_ID:int = 117; public static const HIGHSCORE_LIST_ITEM_CORNER_ROUND:int = 15; public static const GLOSSARY_TEMPLATE_ID:int = 4; public static const GRAPHBOX_UPDATE_EASING:Function = Emotion.singleBounceEaseOut; public static const GAME_BANDEROLE_MAX_HEIGHT:int = 200; public static const MULTI_GRAPHBOX_VISIBLE_BOXES_EXPAND:int = 8; public static const GRAPHBOX_PERCENT_STEPS:int = 15; public static const HIGHSCORE_ITEMS_PER_PAGE:int = 9; public static const BEGINNING_GAME_YEAR:int = 1; public static const GRAPHBOX_UPDATE_SPEED:int = 25; public static const MAP_TEMPLATE_ID:int = 2; public static const SHARE_TEMPLATE_ID:int = 113; public static const GRAPHBOX_ROUNDCORNER_VAL:int = 25; public static const SINGLE_GRAPHBOX_BOX_HEIGHT:int = 230; public static const START_TEMPLATE_ID:int = 110; public static const HIGHSCORE_LIST_ITEM_WIDTH:int = 275; public static const MULTI_GRAPHBOX_MAX_VISIBLE_BOXES:int = 8; public static const GAME_TOPVIEW_HEIGHT:int = 55; public static const MULTI_GRAPHBOX_DEFAULT_HEIGHT:int = 375; public static const MESSAGELAYER_MAX_TEXTFIELD_WIDTH:int = 350; public static const MAP_SHOCK_LAYER_WIDTH:int = 300; public static const GLOSSARY_CONTENT_CORNER_ROUND:int = 15; public static const GRAPHBOX_BORDERSPACE:int = 20; public static const GAME_BANDEROLE_MIN_HEIGHT:int = 90; public static const FORECAST_TEMPLATE_ID:int = 0; public static const GLOSSARY_CONTENT_TEXTLAYER_WIDTH:int = 520; public static const SLIDER_MAX_PERCENT:int = 25; public static const SINGLE_GRAPHBOX_DEFAULT_HEIGHT:int = 300; public static const GAME_STAGE_HEIGHT:int = 535; public static const MAP_DEFAULT_HEIGHT:int = 435; public static const APPLICATION_WIDTH:int = 995; public static const MULTI_GRAPHBOX_VISIBLE_BOXES_SHRINK:int = 4; public static const GLOSSARY_CONTENT_NAVIGATION_WIDTH:int = 170; public static const PRESS_TEMPLATE_ID:int = 3; public static const HELPMESSAGELAYER_MAX_TEXTFIELD_WIDTH:int = 250; public static const MULTI_GRAPHBOX_BOX_HEIGHT:int = 229; public static const MESSAGELAYER_MAX_TEXTFIELD_HEIGHT:int = 400; public static const GRAPHBOX_ZERO_LINE_VAL:int = 171; public static const MULTI_GRAPHBOX_DEFAULT_WIDTH:int = 370; } }//package eu.ecb.economia
Section 195
//Economia (eu.ecb.economia.Economia) package eu.ecb.economia { import flash.events.*; import de.aperto.events.*; import eu.ecb.economia.events.*; import de.aperto.managers.*; import flash.display.*; import com.greensock.*; import eu.ecb.economia.game.*; import de.aperto.utils.*; import flash.text.*; import eu.ecb.economia.modules.*; import de.aperto.*; import nl.demonsters.debugger.*; import flash.system.*; import com.greensock.easing.*; public class Economia extends DocumentBase { private var _isFullScreen:Boolean; private var _stageHeight:int; private var _stageWidth:int; private var _game:Game; private var _blender:Sprite; private var _applicationCont:Sprite; private var _stagePreloader:StagePreloader; private static var _fullScreenLabel2:String = "Go Fullscreen"; private static var _fullScreenLabel1:String = "Exit Fullscreen"; public function Economia(){ Security.allowDomain("*.ecb.int", "*.ecb.eu", "*.ecb.europa.eu", "*.ecb.de", "*.nbb.be", "*.bnb.bg", "*.cnb.cz", "*.nationalbanken.dk", "*.bundesbank.de", "*.eestipank.info", "*.bankofgreece.gr", "*.bde.es", "*.banque-france.fr", "*.financialregulator.ie", "*.bancaditalia.it", "*.centralbank.gov.cy", "*.bank.lv", "*.lb.lt", "*.bcl.lu", "*.mnb.hu", "*.centralbankmalta.com", "*.dnb.nl", "*.oenb.at", "*.nbp.pl", "*.bportugal.pt", "*.bnro.ro", "*.bsi.si", "*.nbs.sk", "*.suomenpankki.fi", "*.riksbank.se", "*.bankofengland.co.uk", "Wasld02.ecb01.ecb.de"); if (stage){ __setStage(); }; super(); __addStagePreloader(); } private function __blenderOnShow():void{ _game.initGameElements(); TweenMax.to(_blender, 35, {alpha:0, useFrames:true, overwrite:true, onComplete:__blenderOnHide, ease:Strong.easeOut}); } private function __gameEventHandler(_arg1:GameEvent):void{ switch (_arg1.type){ case GameEvent.DATA_ON_LOAD: __gameDataOnReady(); break; case GameEvent.ON_PROGRESS: _stagePreloader.percent = Math.max(50, _arg1.percent); break; case GameEvent.READY: MonsterDebugger.trace(this, "::: GAME READY :::"); __onBrowserResize(); break; }; } private function __gameDataOnReady():void{ _stagePreloader.hideSpinner(__stagePreloaderOnHide); } private function __addGame():void{ _game = new Game(); _game.addEventListener(GameEvent.DATA_ON_LOAD, __gameEventHandler); _game.addEventListener(GameEvent.READY, __gameEventHandler); _game.addEventListener(GameEvent.ON_PROGRESS, __gameEventHandler); _applicationCont.addChild(_game); } private function __stageEventHandler(_arg1:Event):void{ switch (_arg1.type){ case Event.RESIZE: __onBrowserResize(); break; case FullScreenEvent.FULL_SCREEN: _isFullScreen = (_arg1 as FullScreenEvent).fullScreen; __updateContextItemLabel(); break; }; } public function reload():void{ MonsterDebugger.trace(this, "!!! RELOAD !!!"); if (_applicationCont){ TweenMax.killChildTweensOf(_applicationCont, true); DisplayUtils.removeDisplayObject(_applicationCont); _applicationCont = null; }; loadStageAndAssets(); __addStagePreloader(); } private function __setStage():void{ stage.align = StageAlign.TOP_LEFT; stage.scaleMode = StageScaleMode.NO_SCALE; } private function __checkFullscreenState(_arg1:ContextMenuManagerEvent):void{ __updateContextItemLabel(); stage.displayState = (_isFullScreen) ? "normal" : "fullScreen"; } private function __stagePreloaderOnHide():void{ __showBlender(); } private function __showBlender():void{ _blender = new Sprite(); this.addChild(_blender); _blender.x = (stage.stageWidth * 0.5); _blender.y = (stage.stageHeight * 0.5); _blender.alpha = 0; _blender.scaleX = (_blender.scaleY = 0.95); _blender.mouseEnabled = false; var _local1:Sprite = DrawUtils.getRect(Defaults.GAME_STAGE_WIDTH, Defaults.GAME_STAGE_HEIGHT, 0xEAEAEA); _blender.addChild(_local1); _local1.x = (-(_local1.width) * 0.5); _local1.y = (-(_local1.height) * 0.5); TweenMax.to(_blender, 20, {alpha:1, scaleX:1, scaleY:1, useFrames:true, overwrite:true, onComplete:__blenderOnShow, ease:Strong.easeOut}); } override protected function __stageOnProgress(_arg1:Number):void{ _stagePreloader.percent = (_arg1 * 0.5); } override protected function __init():void{ __setStage(); OverwriteManager.init(OverwriteManager.ALL_IMMEDIATE); __addEvents(); MonsterDebugger.trace(null, "INIT DEBUG", 1805335); MonsterDebugger.trace(null, ("Capabilities.manufacturer --> " + Capabilities.manufacturer)); MonsterDebugger.trace(null, ("Capabilities.os --> " + Capabilities.os)); MonsterDebugger.trace(null, ("Capabilities.playerType --> " + Capabilities.playerType)); MonsterDebugger.trace(null, ("Capabilities.version --> " + Capabilities.version)); MonsterDebugger.trace(this, Font.enumerateFonts(false)); MonsterDebugger.trace(null, "----------------------------"); _applicationCont = new Sprite(); this.addChild(_applicationCont); __addGame(); } private function __addStagePreloader():void{ _stagePreloader = new StagePreloader(); this.addChild(_stagePreloader); } private function __addEvents():void{ stage.addEventListener(Event.RESIZE, __stageEventHandler); stage.addEventListener(FullScreenEvent.FULL_SCREEN, __stageEventHandler); } private function __updateContextItemLabel():void{ var _local1:String = (_isFullScreen) ? _fullScreenLabel2 : _fullScreenLabel1; var _local2:String = (_isFullScreen) ? _fullScreenLabel1 : _fullScreenLabel2; ContextMenuManager.replaceItemLabel(_local1, _local2); } private function __onBrowserResize():void{ _stageWidth = int((stage.stageWidth + 0.5)); _stageHeight = int((stage.stageHeight + 0.5)); if (_applicationCont){ _applicationCont.x = int((((_stageWidth * 0.5) - (Defaults.APPLICATION_WIDTH * 0.5)) + 0.5)); _applicationCont.y = int((((_stageHeight * 0.5) - (Defaults.APPLICATION_HEIGHT * 0.5)) + 0.5)); }; } private function __blenderOnHide():void{ _blender.visible = false; DisplayUtils.removeDisplayObject(_blender); _blender = null; } } }//package eu.ecb.economia
Section 196
//BezierSegment (fl.motion.BezierSegment) package fl.motion { import flash.geom.*; public class BezierSegment { public var a:Point; public var c:Point; public var b:Point; public var d:Point; public function BezierSegment(_arg1:Point, _arg2:Point, _arg3:Point, _arg4:Point){ this.a = _arg1; this.b = _arg2; this.c = _arg3; this.d = _arg4; } public function getValue(_arg1:Number):Point{ var _local2:Number = this.a.x; var _local3:Number = (((((_arg1 * _arg1) * (this.d.x - _local2)) + ((3 * (1 - _arg1)) * ((_arg1 * (this.c.x - _local2)) + ((1 - _arg1) * (this.b.x - _local2))))) * _arg1) + _local2); var _local4:Number = this.a.y; var _local5:Number = (((((_arg1 * _arg1) * (this.d.y - _local4)) + ((3 * (1 - _arg1)) * ((_arg1 * (this.c.y - _local4)) + ((1 - _arg1) * (this.b.y - _local4))))) * _arg1) + _local4); return (new Point(_local3, _local5)); } public function getYForX(_arg1:Number, _arg2:Array=null):Number{ var _local6:Number; if (this.a.x < this.d.x){ if (_arg1 <= (this.a.x + 1E-16)){ return (this.a.y); }; if (_arg1 >= (this.d.x - 1E-16)){ return (this.d.y); }; } else { if (_arg1 >= (this.a.x + 1E-16)){ return (this.a.y); }; if (_arg1 <= (this.d.x - 1E-16)){ return (this.d.y); }; }; if (!_arg2){ _arg2 = getCubicCoefficients(this.a.x, this.b.x, this.c.x, this.d.x); }; var _local3:Array = getCubicRoots(_arg2[0], _arg2[1], _arg2[2], (_arg2[3] - _arg1)); var _local4:Number = NaN; if (_local3.length == 0){ _local4 = 0; } else { if (_local3.length == 1){ _local4 = _local3[0]; } else { for each (_local6 in _local3) { if ((((0 <= _local6)) && ((_local6 <= 1)))){ _local4 = _local6; break; }; }; }; }; if (isNaN(_local4)){ return (NaN); }; var _local5:Number = getSingleValue(_local4, this.a.y, this.b.y, this.c.y, this.d.y); return (_local5); } public static function getCubicCoefficients(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Array{ return ([(((-(_arg1) + (3 * _arg2)) - (3 * _arg3)) + _arg4), (((3 * _arg1) - (6 * _arg2)) + (3 * _arg3)), ((-3 * _arg1) + (3 * _arg2)), _arg1]); } public static function getSingleValue(_arg1:Number, _arg2:Number=0, _arg3:Number=0, _arg4:Number=0, _arg5:Number=0):Number{ return ((((((_arg1 * _arg1) * (_arg5 - _arg2)) + ((3 * (1 - _arg1)) * ((_arg1 * (_arg4 - _arg2)) + ((1 - _arg1) * (_arg3 - _arg2))))) * _arg1) + _arg2)); } public static function getCubicRoots(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0, _arg4:Number=0):Array{ var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:int; var _local16:Number; if (!_arg1){ return (BezierSegment.getQuadraticRoots(_arg2, _arg3, _arg4)); }; if (_arg1 != 1){ _arg2 = (_arg2 / _arg1); _arg3 = (_arg3 / _arg1); _arg4 = (_arg4 / _arg1); }; var _local5:Number = (((_arg2 * _arg2) - (3 * _arg3)) / 9); var _local6:Number = (((((_arg2 * _arg2) - (3 * _arg3)) / 9) * _local5) * _local5); var _local7:Number = ((((((2 * _arg2) * _arg2) * _arg2) - ((9 * _arg2) * _arg3)) + (27 * _arg4)) / 54); var _local8:Number = (_local6 - (_local7 * _local7)); if (_local8 >= 0){ if (!_local5){ return ([0]); }; _local9 = Math.acos((_local7 / Math.sqrt(_local6))); _local10 = Math.sqrt(_local5); _local11 = (((-2 * _local10) * Math.cos((_local9 / 3))) - (_arg2 / 3)); _local12 = (((-2 * _local10) * Math.cos(((_local9 + (2 * Math.PI)) / 3))) - (_arg2 / 3)); _local13 = (((-2 * _local10) * Math.cos(((_local9 + (4 * Math.PI)) / 3))) - (_arg2 / 3)); return ([_local11, _local12, _local13]); //unresolved jump }; _local14 = Math.pow((Math.sqrt(-(_local8)) + Math.abs(_local7)), (1 / 3)); _local15 = ((_local7)>0) ? 1 : ((_local7 < 0)) ? -1 : 0; _local16 = ((-(_local15) * (_local14 + (_local5 / _local14))) - (_arg2 / 3)); return ([_local16]); } public static function getQuadraticRoots(_arg1:Number, _arg2:Number, _arg3:Number):Array{ var _local7:Number; var _local4:Array = []; if (!_arg1){ if (!_arg2){ return ([]); }; _local4[0] = (-(_arg3) / _arg2); return (_local4); }; var _local5:Number = ((_arg2 * _arg2) - ((4 * _arg1) * _arg3)); var _local6:int = ((_local5)>0) ? 1 : ((_local5 < 0)) ? -1 : 0; if (_local6 < 0){ return ([]); }; if (!_local6){ _local4[0] = (-(_arg2) / (2 * _arg1)); } else { _local4[0] = (_local4[1] = (-(_arg2) / (2 * _arg1))); _local7 = (Math.sqrt(_local5) / (2 * _arg1)); _local4[0] = (_local4[0] - _local7); _local4[1] = (_local4[1] + _local7); }; return (_local4); } } }//package fl.motion
Section 197
//Bitmap3D (net.badimon.five3D.display.Bitmap3D) package net.badimon.five3D.display { import flash.display.*; import flash.geom.*; import net.badimon.five3D.geom.*; import net.badimon.five3D.utils.*; public class Bitmap3D extends Shape implements IObject3D { private var __height:int; private var __point1Out:Point3D; private var __flatShading:Boolean;// = false private var __scaleX:Number;// = 1 private var __scaleY:Number;// = 1 private var __scaleZ:Number;// = 1 private var __matrices:Array; private var __drawing:Boolean;// = false private var __renderBitmap:Boolean;// = true private var __point2In:Point3D; private var __normalVectorCalculated:Boolean;// = false private var __renderShading:Boolean;// = false private var __bitmapData:BitmapData; private var __culling:Boolean;// = false private var __renderProjection:Boolean;// = true private var __point2Out:Point3D; private var __render:Boolean;// = true private var __point1In:Point3D; private var __triangles:Array; private var __flatShaded:Boolean;// = false private var __visible:Boolean;// = true private var __smoothing:Boolean; private var __renderTessellation:Boolean;// = true private var __x:Number;// = 0 private var __y:Number;// = 0 private var __z:Number;// = 0 private var __subdivisionsVertical:int; private var __matrix:Matrix3D; private var __singleSided:Boolean;// = false private var __cameraVector:Point3D; private var __rotationX:Number;// = 0 private var __rotationY:Number;// = 0 private var __rotationZ:Number;// = 0 private var __points:Array; private var __subdivisionsHorizontal:int; private var __concatenatedMatrix:Matrix3D; private var __renderCulling:Boolean;// = false private var __width:int; private var __normalVector:Point3D; public function Bitmap3D(_arg1:BitmapData=null, _arg2:Boolean=true, _arg3:int=3, _arg4:int=3){ __matrix = new Matrix3D(); __concatenatedMatrix = new Matrix3D(); __bitmapData = _arg1; __smoothing = _arg2; __subdivisionsHorizontal = _arg3; __subdivisionsVertical = _arg4; initPoints(); } public function set singleSided(_arg1:Boolean):void{ __singleSided = _arg1; if (__singleSided){ __renderCulling = true; } else { __renderCulling = false; __culling = false; }; } private function initPoints():void{ __point1In = new Point3D(0, 0, 0); __point2In = new Point3D(0, 0, 1); } override public function get scale9Grid():Rectangle{ throw (new Error("The Bitmap3D class does not implement this property or method.")); } public function askRenderingShading():void{ if (__flatShaded){ __renderShading = true; }; } override public function get height():Number{ throw (new Error("The Bitmap3D class does not implement this property or method.")); } override public function set scale9Grid(_arg1:Rectangle):void{ throw (new Error("The Bitmap3D class does not implement this property or method.")); } public function askRendering():void{ __render = true; if (__singleSided){ __renderCulling = true; }; __renderProjection = true; __renderBitmap = true; if (__flatShaded){ __renderShading = true; }; } public function set rotationY(_arg1:Number):void{ __rotationY = InternalUtils.formatRotation(_arg1); askRendering(); } public function set rotationX(_arg1:Number):void{ __rotationX = InternalUtils.formatRotation(_arg1); askRendering(); } public function set rotationZ(_arg1:Number):void{ __rotationZ = InternalUtils.formatRotation(_arg1); askRendering(); } private function setTessellationPoints():void{ var _local3:Number; var _local4:Number; var _local6:int; __points = []; var _local1:Number = (__width / __subdivisionsHorizontal); var _local2:Number = (__height / __subdivisionsVertical); var _local5:int; while (_local5 < (__subdivisionsVertical + 1)) { _local6 = 0; while (_local6 < (__subdivisionsHorizontal + 1)) { _local3 = (_local6 * _local1); _local4 = (_local5 * _local2); __points.push({x:_local3, y:_local4, xp:_local3, yp:_local4}); _local6++; }; _local5++; }; } override public function get scaleX():Number{ return (__scaleX); } override public function get scaleY():Number{ return (__scaleY); } public function get scaleZ():Number{ return (__scaleZ); } private function setProjection(_arg1:Number):void{ projectPoints(_arg1); setProjectionMatrices(); } override public function get mouseX():Number{ var _local1:Scene3D = InternalUtils.getScene(this); if (_local1 == null){ return (NaN); }; return (__concatenatedMatrix.getInverseCoordinates(_local1.mouseX, _local1.mouseY, _local1.viewDistance).x); } private function setTessellationTriangles():void{ var _local2:int; __triangles = []; var _local1:int; while (_local1 < __subdivisionsVertical) { _local2 = 0; while (_local2 < __subdivisionsHorizontal) { __triangles.push([__points[(_local2 + (_local1 * (__subdivisionsHorizontal + 1)))], __points[((_local2 + (_local1 * (__subdivisionsHorizontal + 1))) + 1)], __points[(_local2 + ((_local1 + 1) * (__subdivisionsHorizontal + 1)))]]); __triangles.push([__points[((_local2 + ((_local1 + 1) * (__subdivisionsHorizontal + 1))) + 1)], __points[(_local2 + ((_local1 + 1) * (__subdivisionsHorizontal + 1)))], __points[((_local2 + (_local1 * (__subdivisionsHorizontal + 1))) + 1)]]); _local2++; }; _local1++; }; } override public function get scrollRect():Rectangle{ throw (new Error("The Bitmap3D class does not implement this property or method.")); } override public function get mouseY():Number{ var _local1:Scene3D = InternalUtils.getScene(this); if (_local1 == null){ return (NaN); }; return (__concatenatedMatrix.getInverseCoordinates(_local1.mouseX, _local1.mouseY, _local1.viewDistance).y); } override public function set height(_arg1:Number):void{ throw (new Error("The Bitmap3D class does not implement this property or method.")); } private function projectPoints(_arg1:Number):void{ var _local2:Object; var _local3:Point3D; var _local4:int = __points.length; while (--_local4 > -1) { _local2 = __points[_local4]; _local3 = __concatenatedMatrix.transformPoint(new Point3D(_local2["x"], _local2["y"])); _local3.project(_local3.getPerspective(_arg1)); _local2["xp"] = _local3.x; _local2["yp"] = _local3.y; }; } public function get mouseXY():Point{ var _local1:Scene3D = InternalUtils.getScene(this); if (_local1 == null){ return (null); }; return (__concatenatedMatrix.getInverseCoordinates(_local1.mouseX, _local1.mouseY, _local1.viewDistance)); } public function set flatShaded(_arg1:Boolean):void{ __flatShaded = _arg1; if (__flatShaded){ __renderShading = true; } else { __renderShading = false; if (__flatShading){ removeFlatShading(); }; }; } private function setCulling(_arg1:Number):void{ __cameraVector = new Point3D(__point1Out.x, __point1Out.y, (__point1Out.z + _arg1)); __culling = (__normalVector.dot(__cameraVector) < 0); } override public function get visible():Boolean{ return (__visible); } override public function get y():Number{ return (__y); } public function get z():Number{ return (__z); } override public function get rotation():Number{ throw (new Error("The Bitmap3D class does not implement this property or method.")); } override public function get x():Number{ return (__x); } public function get bitmapData():BitmapData{ return (__bitmapData); } public function get smoothing():Boolean{ return (__smoothing); } public function get singleSided():Boolean{ return (__singleSided); } public function set subdivisionsVertical(_arg1:int):void{ __subdivisionsVertical = _arg1; __renderTessellation = true; __renderProjection = true; __renderBitmap = true; } override public function localToGlobal(_arg1:Point):Point{ throw (new Error("The Bitmap3D class does not implement this property or method.")); } private function setNormalVector():void{ __point1Out = __concatenatedMatrix.transformPoint(__point1In); __point2Out = __concatenatedMatrix.transformPoint(__point2In); __normalVector = __point2Out.subtract(__point1Out); } private function drawBitmap():void{ var _local1:Array; var _local2:Object; var _local3:Object; var _local4:Object; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:int = __triangles.length; super.graphics.clear(); while (--_local11 > -1) { _local1 = __triangles[_local11]; _local2 = _local1[0]; _local3 = _local1[1]; _local4 = _local1[2]; _local5 = _local2["xp"]; _local6 = _local2["yp"]; _local7 = _local3["xp"]; _local8 = _local3["yp"]; _local9 = _local4["xp"]; _local10 = _local4["yp"]; super.graphics.beginBitmapFill(__bitmapData, __matrices[_local11], false, __smoothing); super.graphics.moveTo(_local5, _local6); super.graphics.lineTo(_local7, _local8); super.graphics.lineTo(_local9, _local10); super.graphics.lineTo(_local5, _local6); super.graphics.endFill(); }; __drawing = true; } public function render(_arg1:Scene3D):void{ if (((!(__visible)) && (super.visible))){ super.visible = false; } else { if (__visible){ if (__render){ InternalUtils.setMatrix(__matrix, __x, __y, __z, __rotationX, __rotationY, __rotationZ, __scaleX, __scaleY, __scaleZ); __concatenatedMatrix = InternalUtils.setConcatenatedMatrix(parent, __matrix); __normalVectorCalculated = false; __render = false; }; if (__renderCulling){ setNormalVector(); setCulling(_arg1.viewDistance); __normalVectorCalculated = true; __renderCulling = false; }; if (__culling){ if (super.visible){ super.visible = false; }; } else { if (!super.visible){ super.visible = true; }; if (__bitmapData != null){ if (__renderTessellation){ setTessellation(); __renderTessellation = false; }; if (__renderProjection){ setProjection(_arg1.viewDistance); __renderProjection = false; }; if (__renderBitmap){ drawBitmap(); __renderBitmap = false; }; if (__renderShading){ setNormalVector(); applyFlatShading(_arg1); __renderShading = false; }; }; }; }; }; } override public function set scaleY(_arg1:Number):void{ __scaleY = _arg1; askRendering(); } public function get rotationY():Number{ return (__rotationY); } override public function set scaleX(_arg1:Number):void{ __scaleX = _arg1; askRendering(); } override public function set width(_arg1:Number):void{ throw (new Error("The Bitmap3D class does not implement this property or method.")); } public function set scaleZ(_arg1:Number):void{ __scaleZ = _arg1; askRendering(); } public function get rotationX():Number{ return (__rotationX); } private function applyFlatShading(_arg1:Scene3D):void{ __normalVector.normalize(1); InternalUtils.setFlatShading(this, __normalVector, _arg1.ambientLightVectorNormalized, _arg1.ambientLightIntensity, alpha); __flatShading = true; } public function get rotationZ():Number{ return (__rotationZ); } override public function get graphics():Graphics{ throw (new Error("The Bitmap3D class does not implement this property or method.")); } public function get flatShaded():Boolean{ return (__flatShaded); } override public function set scrollRect(_arg1:Rectangle):void{ throw (new Error("The Bitmap3D class does not implement this property or method.")); } override public function get width():Number{ throw (new Error("The Bitmap3D class does not implement this property or method.")); } private function setTessellation():void{ __width = __bitmapData.width; __height = __bitmapData.height; setTessellationPoints(); setTessellationTriangles(); } public function get subdivisionsVertical():int{ return (__subdivisionsVertical); } private function removeFlatShading():void{ transform.colorTransform = new ColorTransform(); __flatShading = false; } private function setProjectionMatrices():void{ var _local1:Array; var _local2:Object; var _local3:Object; var _local4:Object; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; __matrices = []; var _local17:Matrix = new Matrix(); var _local18:Matrix = new Matrix(); var _local19:int = __triangles.length; while (--_local19 > -1) { _local1 = __triangles[_local19]; _local2 = _local1[0]; _local3 = _local1[1]; _local4 = _local1[2]; _local5 = _local2["x"]; _local6 = _local2["y"]; _local7 = _local3["x"]; _local8 = _local3["y"]; _local9 = _local4["x"]; _local10 = _local4["y"]; _local11 = _local2["xp"]; _local12 = _local2["yp"]; _local13 = _local3["xp"]; _local14 = _local3["yp"]; _local15 = _local4["xp"]; _local16 = _local4["yp"]; _local17.a = (_local7 - _local5); _local17.b = (_local8 - _local6); _local17.c = (_local9 - _local5); _local17.d = (_local10 - _local6); _local17.tx = _local5; _local17.ty = _local6; _local18.a = (_local13 - _local11); _local18.b = (_local14 - _local12); _local18.c = (_local15 - _local11); _local18.d = (_local16 - _local12); _local18.tx = _local11; _local18.ty = _local12; _local17.invert(); _local17.concat(_local18); __matrices.unshift(_local17.clone()); }; } private function removeBitmap():void{ super.graphics.clear(); __drawing = false; } public function set subdivisionsHorizontal(_arg1:int):void{ __subdivisionsHorizontal = _arg1; __renderTessellation = true; __renderProjection = true; __renderBitmap = true; } override public function globalToLocal(_arg1:Point):Point{ throw (new Error("The Bitmap3D class does not implement this property or method.")); } override public function set visible(_arg1:Boolean):void{ __visible = _arg1; } public function set smoothing(_arg1:Boolean):void{ __smoothing = _arg1; __renderBitmap = true; } override public function set x(_arg1:Number):void{ __x = _arg1; askRendering(); } public function get subdivisionsHorizontal():int{ return (__subdivisionsHorizontal); } override public function set y(_arg1:Number):void{ __y = _arg1; askRendering(); } public function set z(_arg1:Number):void{ __z = _arg1; askRendering(); } public function get concatenatedMatrix():Matrix3D{ return (__concatenatedMatrix); } public function set bitmapData(_arg1:BitmapData):void{ __bitmapData = _arg1; if (__bitmapData == null){ if (__drawing){ removeBitmap(); }; } else { if (((!((__bitmapData.width == __width))) || (!((__bitmapData.height == __height))))){ __renderTessellation = true; __renderProjection = true; }; }; __renderBitmap = true; } override public function set rotation(_arg1:Number):void{ throw (new Error("The Bitmap3D class does not implement this property or method.")); } } }//package net.badimon.five3D.display
Section 198
//IObject3D (net.badimon.five3D.display.IObject3D) package net.badimon.five3D.display { import net.badimon.five3D.geom.*; public interface IObject3D { function get concatenatedMatrix():Matrix3D; function askRendering():void; function render(_arg1:Scene3D):void; function askRenderingShading():void; } }//package net.badimon.five3D.display
Section 199
//Scene3D (net.badimon.five3D.display.Scene3D) package net.badimon.five3D.display { import flash.events.*; import flash.display.*; import net.badimon.five3D.geom.*; public class Scene3D extends Sprite { private var __viewDistance:Number;// = 1000 private var __ambientLightVector:Point3D; private var __ambientLightIntensity:Number;// = 0.5 private var __ambientLightVectorNormalized:Point3D; public function Scene3D(_arg1:Boolean=true){ __ambientLightVector = new Point3D(1, 1, 1); __ambientLightVectorNormalized = new Point3D(0.577350269189626, 0.577350269189626, 0.577350269189626); if (_arg1){ startRender(); }; } public function get ambientLightVector():Point3D{ return (__ambientLightVector); } public function set ambientLightVector(_arg1:Point3D):void{ __ambientLightVector = _arg1; __ambientLightVectorNormalized = __ambientLightVector.clone(); __ambientLightVectorNormalized.normalize(1); askRenderingShading(); } private function desinitializeRendering():void{ removeEventListener(Event.ENTER_FRAME, enterFrameHandler); } private function askRendering():void{ var _local1:int = numChildren; var _local2:int; while (_local2 < _local1) { IObject3D(getChildAt(_local2)).askRendering(); _local2++; }; } private function enterFrameHandler(_arg1:Event):void{ render(); } private function render():void{ var _local1:int = numChildren; var _local2:int; while (_local2 < _local1) { IObject3D(getChildAt(_local2)).render(this); _local2++; }; } private function askRenderingShading():void{ var _local1:int = numChildren; var _local2:int; while (_local2 < _local1) { IObject3D(getChildAt(_local2)).askRenderingShading(); _local2++; }; } public function startRender():void{ initializeRendering(); } private function initializeRendering():void{ addEventListener(Event.ENTER_FRAME, enterFrameHandler); } public function get ambientLightVectorNormalized():Point3D{ return (__ambientLightVectorNormalized); } public function dispose():void{ desinitializeRendering(); } public function forceRender():void{ render(); } public function set ambientLightIntensity(_arg1:Number):void{ __ambientLightIntensity = _arg1; askRenderingShading(); } public function get ambientLightIntensity():Number{ return (__ambientLightIntensity); } public function stopRender():void{ desinitializeRendering(); } public function get viewDistance():Number{ return (__viewDistance); } public function set viewDistance(_arg1:Number):void{ __viewDistance = _arg1; askRendering(); } } }//package net.badimon.five3D.display
Section 200
//Matrix3D (net.badimon.five3D.geom.Matrix3D) package net.badimon.five3D.geom { import flash.geom.*; public class Matrix3D { public var ty:Number; public var tx:Number; public var tz:Number; public var a:Number; public var b:Number; public var c:Number; public var d:Number; public var e:Number; public var f:Number; public var g:Number; public var h:Number; public var i:Number; public function Matrix3D(_arg1:Number=1, _arg2:Number=0, _arg3:Number=0, _arg4:Number=0, _arg5:Number=1, _arg6:Number=0, _arg7:Number=0, _arg8:Number=0, _arg9:Number=1, _arg10:Number=0, _arg11:Number=0, _arg12:Number=0){ this.a = _arg1; this.b = _arg2; this.c = _arg3; this.d = _arg4; this.e = _arg5; this.f = _arg6; this.g = _arg7; this.h = _arg8; this.i = _arg9; this.tx = _arg10; this.ty = _arg11; this.tz = _arg12; } public function concat(_arg1:Matrix3D):void{ var _local2:Object = {}; _local2["a"] = (((a * _arg1.a) + (b * _arg1.d)) + (c * _arg1.g)); _local2["b"] = (((a * _arg1.b) + (b * _arg1.e)) + (c * _arg1.h)); _local2["c"] = (((a * _arg1.c) + (b * _arg1.f)) + (c * _arg1.i)); _local2["d"] = (((d * _arg1.a) + (e * _arg1.d)) + (f * _arg1.g)); _local2["e"] = (((d * _arg1.b) + (e * _arg1.e)) + (f * _arg1.h)); _local2["f"] = (((d * _arg1.c) + (e * _arg1.f)) + (f * _arg1.i)); _local2["g"] = (((g * _arg1.a) + (h * _arg1.d)) + (i * _arg1.g)); _local2["h"] = (((g * _arg1.b) + (h * _arg1.e)) + (i * _arg1.h)); _local2["i"] = (((g * _arg1.c) + (h * _arg1.f)) + (i * _arg1.i)); _local2["tx"] = ((((a * _arg1.tx) + (b * _arg1.ty)) + (c * _arg1.tz)) + tx); _local2["ty"] = ((((d * _arg1.tx) + (e * _arg1.ty)) + (f * _arg1.tz)) + ty); _local2["tz"] = ((((g * _arg1.tx) + (h * _arg1.ty)) + (i * _arg1.tz)) + tz); initialize(_local2); } public function translate(_arg1:Number, _arg2:Number, _arg3:Number):void{ tx = (tx + _arg1); ty = (ty + _arg2); tz = (tz + _arg3); } private function initialize(_arg1:Object):void{ var _local2:String; for (_local2 in _arg1) { this[_local2] = _arg1[_local2]; }; } private function extractMatrix3(_arg1:Array, _arg2:Number, _arg3:Number):Array{ var _local6:int; var _local4:Array = []; var _local5:int; while (_local5 < 4) { if (_local5 != _arg3){ _local6 = 0; while (_local6 < 4) { if (_local6 != _arg2){ _local4.push(_arg1[(_local6 + (_local5 * 4))]); }; _local6++; }; }; _local5++; }; return (_local4); } public function scale(_arg1:Number, _arg2:Number, _arg3:Number):void{ concat(new Matrix3D(_arg1, 0, 0, 0, _arg2, 0, 0, 0, _arg3, 0, 0, 0)); } public function transformPoint(_arg1:Point3D):Point3D{ return (new Point3D(((((a * _arg1.x) + (b * _arg1.y)) + (c * _arg1.z)) + tx), ((((d * _arg1.x) + (e * _arg1.y)) + (f * _arg1.z)) + ty), ((((g * _arg1.x) + (h * _arg1.y)) + (i * _arg1.z)) + tz))); } public function clone():Matrix3D{ return (new Matrix3D(a, b, c, d, e, f, g, h, i, tx, ty, tz)); } public function rotateY(_arg1:Number):void{ concat(new Matrix3D(Math.cos(_arg1), 0, Math.sin(_arg1), 0, 1, 0, -(Math.sin(_arg1)), 0, Math.cos(_arg1), 0, 0, 0)); } public function rotateZ(_arg1:Number):void{ concat(new Matrix3D(Math.cos(_arg1), -(Math.sin(_arg1)), 0, Math.sin(_arg1), Math.cos(_arg1), 0, 0, 0, 1, 0, 0, 0)); } public function rotateX(_arg1:Number):void{ concat(new Matrix3D(1, 0, 0, 0, Math.cos(_arg1), -(Math.sin(_arg1)), 0, Math.sin(_arg1), Math.cos(_arg1), 0, 0, 0)); } public function createBox(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number=0, _arg5:Number=0, _arg6:Number=0, _arg7:Number=0, _arg8:Number=0, _arg9:Number=0):void{ identity(); if (_arg4 != 0){ rotateX(_arg4); }; if (_arg5 != 0){ rotateY(_arg5); }; if (_arg6 != 0){ rotateZ(_arg6); }; if (((((!((_arg1 == 1))) || (!((_arg2 == 1))))) || (!((_arg3 == 1))))){ scale(_arg1, _arg2, _arg3); }; if (((((!((_arg7 == 0))) || (!((_arg8 == 0))))) || (!((_arg9 == 0))))){ translate(_arg7, _arg8, _arg9); }; } public function getInverseCoordinates(_arg1:Number, _arg2:Number, _arg3:Number):Point{ var _local4:Array = [a, b, c, tx, d, e, f, ty, 0, 0, 1, 0, (g / _arg3), (h / _arg3), (i / _arg3), ((tz / _arg3) + 1)]; var _local5:Array = invertTraditional(_local4); var _local6:Number = (((_local5[12] * _arg1) + (_local5[13] * _arg2)) + _local5[15]); return (new Point(((((_local5[0] * _arg1) + (_local5[1] * _arg2)) + _local5[3]) / _local6), ((((_local5[4] * _arg1) + (_local5[5] * _arg2)) + _local5[7]) / _local6))); } private function invertTraditional(_arg1:Array):Array{ var _local5:int; var _local2:Array = []; var _local3:Number = getDeterminant4(_arg1); var _local4:int; while (_local4 < 4) { _local5 = 0; while (_local5 < 4) { _local2[((_local5 * 4) + _local4)] = ((getDeterminant3(extractMatrix3(_arg1, _local5, _local4)) * (1 - (((_local5 + _local4) % 2) * 2))) / _local3); _local5++; }; _local4++; }; return (_local2); } private function getDeterminant3(_arg1:Array):Number{ return ((((_arg1[0] * ((_arg1[4] * _arg1[8]) - (_arg1[7] * _arg1[5]))) - (_arg1[1] * ((_arg1[3] * _arg1[8]) - (_arg1[6] * _arg1[5])))) + (_arg1[2] * ((_arg1[3] * _arg1[7]) - (_arg1[6] * _arg1[4]))))); } private function getDeterminant4(_arg1:Array):Number{ return (((((_arg1[0] * getDeterminant3(extractMatrix3(_arg1, 0, 0))) - (_arg1[1] * getDeterminant3(extractMatrix3(_arg1, 1, 0)))) + (_arg1[2] * getDeterminant3(extractMatrix3(_arg1, 2, 0)))) - (_arg1[3] * getDeterminant3(extractMatrix3(_arg1, 3, 0))))); } public function toString():String{ return ((((((((((((((((((((((((("(a=" + a) + ", b=") + b) + ", c=") + c) + ", d=") + d) + ", e=") + e) + ", f=") + f) + ", g=") + g) + ", h=") + h) + ", i=") + i) + ", tx=") + tx) + ", ty=") + ty) + ", tz=") + tz) + ")")); } public function identity():void{ initialize({a:1, b:0, c:0, d:0, e:1, f:0, g:0, h:0, i:1, tx:0, ty:0, tz:0}); } } }//package net.badimon.five3D.geom
Section 201
//Point3D (net.badimon.five3D.geom.Point3D) package net.badimon.five3D.geom { public class Point3D { public var x:Number; public var y:Number; public var z:Number; public function Point3D(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0){ this.x = _arg1; this.y = _arg2; this.z = _arg3; } public function project(_arg1:Number):void{ x = (x * _arg1); y = (y * _arg1); z = 0; } public function get length():Number{ return (Math.sqrt((((x * x) + (y * y)) + (z * z)))); } public function dot(_arg1:Point3D):Number{ return ((((x * _arg1.x) + (y * _arg1.y)) + (z * _arg1.z))); } private function scale(_arg1:Number):void{ x = (x * _arg1); y = (y * _arg1); z = (z * _arg1); } public function toString():String{ return ((((((("(x=" + x) + ", y=") + y) + ", z=") + z) + ")")); } public function normalize(_arg1:Number):void{ var _local2:Number = length; if (_local2){ scale((_arg1 / _local2)); } else { z = _arg1; }; } public function getPerspective(_arg1:Number):Number{ return ((_arg1 / (z + _arg1))); } public function subtract(_arg1:Point3D):Point3D{ return (new Point3D((x - _arg1.x), (y - _arg1.y), (z - _arg1.z))); } public function clone():Point3D{ return (new Point3D(x, y, z)); } } }//package net.badimon.five3D.geom
Section 202
//InternalUtils (net.badimon.five3D.utils.InternalUtils) package net.badimon.five3D.utils { import flash.display.*; import flash.geom.*; import net.badimon.five3D.geom.*; import net.badimon.five3D.display.*; public class InternalUtils { public static const DEG_TO_RAD:Number = 0.0174532925199433; public static function setMatrix(_arg1:Matrix3D, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number, _arg8:Number, _arg9:Number, _arg10:Number):void{ _arg1.createBox(_arg8, _arg9, _arg10, (_arg5 * DEG_TO_RAD), (_arg6 * DEG_TO_RAD), (_arg7 * DEG_TO_RAD), _arg2, _arg3, _arg4); } public static function formatRotation(_arg1:Number):Number{ if ((((_arg1 >= -180)) && ((_arg1 <= 180)))){ return (_arg1); }; var _local2:Number = (_arg1 % 360); if (_local2 < -180){ return ((_local2 + 360)); }; if (_local2 > 180){ return ((_local2 - 360)); }; return (_local2); } public static function getScene(_arg1:DisplayObject):Scene3D{ while ((_arg1 = _arg1.parent)) { if ((_arg1 is Scene3D)){ return ((_arg1 as Scene3D)); }; }; return (null); } public static function setConcatenatedMatrix(_arg1:DisplayObjectContainer, _arg2:Matrix3D):Matrix3D{ var _local3:Matrix3D; if ((_arg1 is Scene3D)){ return (_arg2.clone()); }; _local3 = IObject3D(_arg1).concatenatedMatrix.clone(); _local3.concat(_arg2); return (_local3); } private static function setColorTransformBrightness(_arg1:ColorTransform, _arg2:Number):void{ if (_arg2 > 1){ _arg2 = 1; } else { if (_arg2 < -1){ _arg2 = -1; }; }; var _local3:Number = (1 - Math.abs(_arg2)); var _local4:Number = 0; if (_arg2 > 0){ _local4 = (_arg2 * 0xFF); }; _arg1.redMultiplier = (_arg1.greenMultiplier = (_arg1.blueMultiplier = _local3)); _arg1.redOffset = (_arg1.greenOffset = (_arg1.blueOffset = _local4)); } public static function setMatrixPosition(_arg1:Matrix3D, _arg2:Number, _arg3:Number, _arg4:Number):void{ _arg1.identity(); if (((((!((_arg2 == 0))) || (!((_arg3 == 0))))) || (!((_arg4 == 0))))){ _arg1.translate(_arg2, _arg3, _arg4); }; } public static function setFlatShading(_arg1:DisplayObject, _arg2:Point3D, _arg3:Point3D, _arg4:Number, _arg5:Number):void{ var _local6:Number = _arg2.dot(_arg3); var _local7:Number = (_local6 * _arg4); var _local8:ColorTransform = new ColorTransform(); setColorTransformBrightness(_local8, _local7); _local8.alphaMultiplier = _arg5; _arg1.transform.colorTransform = _local8; } } }//package net.badimon.five3D.utils
Section 203
//MonsterDebugger (nl.demonsters.debugger.MonsterDebugger) package nl.demonsters.debugger { import flash.events.*; import flash.display.*; import flash.utils.*; import flash.geom.*; import flash.net.*; import flash.system.*; public class MonsterDebugger { private const TYPE_BOOLEAN:String = "Boolean"; private const COMMAND_GET_DISPLAYOBJECT:String = "GET_DISPLAYOBJECT"; private const TYPE_VECTOR:String = "Vector"; private const TYPE_XMLLIST:String = "XMLList"; private const COMMAND_TRACE:String = "TRACE"; private const ACCESS_METHOD:String = "method"; private const TYPE_XMLVALUE:String = "XMLValue"; private const COMMAND_NOTFOUND:String = "NOTFOUND"; protected const MAX_BUFFER_SIZE:int = 500; private const COMMAND_MONITOR:String = "MONITOR"; private const ACCESS_CONSTANT:String = "constant"; protected const HIGHLIGHT_BORDER:int = 4; private const TYPE_FUNCTION:String = "Function"; private const TYPE_UINT:String = "uint"; private const TYPE_INT:String = "int"; protected const MAX_PACKAGE_BYTES:int = 40000; private const LINE_IN:String = "_debuggerBlue"; private const TYPE_XMLATTRIBUTE:String = "XMLAttribute"; private const COMMAND_SNAPSHOT:String = "SNAPSHOT"; private const ALLOWED_DOMAIN:String = "*"; private const ICON_VARIABLE_READONLY:String = "iconVariableReadonly"; private const ICON_DEFAULT:String = "iconDefault"; private const LINE_OUT:String = "_debuggerRed"; private const COMMAND_BASE:String = "BASE"; private const COMMAND_SHOW_HIGHLIGHT:String = "SHOW_HIGHLIGHT"; private const COMMAND_HIDE_HIGHLIGHT:String = "HIDE_HIGHLIGHT"; private const TYPE_BYTEARRAY:String = "ByteArray"; private const ICON_VARIABLE_WRITEONLY:String = "iconVariableWriteonly"; private const COMMAND_GET_PROPERTIES:String = "GET_PROPERTIES"; private const TYPE_XML:String = "XML"; private const TYPE_XMLNODE:String = "XMLNode"; private const COMMAND_ROOT:String = "ROOT"; private const TYPE_WARNING:String = "Warning"; private const TYPE_VOID:String = "void"; private const PERMISSION_WRITEONLY:String = "writeonly"; private const PERMISSION_READWRITE:String = "readwrite"; private const ICON_VARIABLE:String = "iconVariable"; private const TYPE_METHOD:String = "MethodClosure"; private const ICON_XMLATTRIBUTE:String = "iconXMLAttribute"; private const COMMAND_HELLO:String = "HELLO"; private const COMMAND_GET_FUNCTIONS:String = "GET_FUNCTIONS"; private const PERMISSION_READONLY:String = "readonly"; private const ICON_XMLNODE:String = "iconXMLNode"; private const COMMAND_CLEAR_TRACES:String = "CLEAR_TRACES"; protected const VERSION:Number = 2.51; private const ICON_WARNING:String = "iconWarning"; private const COMMAND_HELLO_RESPONSE:String = "HELLO_RESPONSE"; private const ICON_XMLVALUE:String = "iconXMLValue"; private const ACCESS_ACCESSOR:String = "accessor"; private const COMMAND_SET_PROPERTY:String = "SET_PROPERTY"; private const TYPE_STRING:String = "String"; private const COMMAND_CALL_METHOD:String = "CALL_METHOD"; private const ICON_FUNCTION:String = "iconFunction"; protected const HIGHLIGHT_COLOR:uint = 0xFFFF00; private const COMMAND_INSPECT:String = "INSPECT"; private const TYPE_OBJECT:String = "Object"; private const TYPE_NUMBER:String = "Number"; private const ICON_ROOT:String = "iconRoot"; private const TYPE_ARRAY:String = "Array"; private const ACCESS_VARIABLE:String = "variable"; private const COMMAND_GET_OBJECT:String = "GET_OBJECT"; protected const FPS_UPDATE:int = 500; protected var isConnected:Boolean;// = false protected var monitorStart:Number; private var lineIn:LocalConnection; protected var buffer:Array; protected var monitorTime:Number; protected var monitor:Timer; public var logger:Function; protected var monitorFrames:uint; private var lineOut:LocalConnection; protected var highlight:Sprite;// = null protected var monitorSprite:Sprite; protected var isEnabled:Boolean;// = true protected var root:Object;// = null public static const COLOR_WARNING:uint = 0xFF3300; public static const COLOR_NORMAL:uint = 0x111111; public static const COLOR_ERROR:uint = 0xFF0000; private static var instance:MonsterDebugger = null; public function MonsterDebugger(_arg1:Object=null){ var target = _arg1; buffer = new Array(); super(); if (instance == null){ instance = this; lineOut = new LocalConnection(); lineOut.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler, false, 0, true); lineOut.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler, false, 0, true); lineOut.addEventListener(StatusEvent.STATUS, statusHandler, false, 0, true); lineIn = new LocalConnection(); lineIn.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler, false, 0, true); lineIn.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler, false, 0, true); lineIn.addEventListener(StatusEvent.STATUS, statusHandler, false, 0, true); lineIn.allowDomain(ALLOWED_DOMAIN); lineIn.client = this; monitorTime = new Date().time; monitorStart = new Date().time; monitorFrames = 0; monitorSprite = new Sprite(); monitorSprite.addEventListener(Event.ENTER_FRAME, enterFrameHandler, false, 0, true); monitor = new Timer(FPS_UPDATE); monitor.addEventListener(TimerEvent.TIMER, monitorHandler, false, 0, true); monitor.start(); try { lineIn.connect(LINE_IN); } catch(error:ArgumentError) { }; }; instance.root = target; instance.send({text:COMMAND_HELLO, version:VERSION}); } private function statusHandler(_arg1:StatusEvent):void{ if (_arg1.level == "error"){ isConnected = false; }; } private function asyncErrorHandler(_arg1:AsyncErrorEvent):void{ isConnected = false; } protected function htmlEscape(_arg1:String):String{ var _local2:XML; if (_arg1){ if (_arg1.indexOf("&") != -1){ _arg1 = _arg1.split("&").join("&amp;"); }; if (_arg1.indexOf("<") != -1){ _arg1 = _arg1.split("<").join("&lt;"); }; if (_arg1.indexOf(">") != -1){ _arg1 = _arg1.split(">").join("&gt;"); }; if (_arg1.indexOf("'") != -1){ _arg1 = _arg1.split("'").join("&apos;"); }; if (_arg1.indexOf("\"") != -1){ _arg1 = _arg1.split("\"").join("&quot;"); }; _local2 = new XML((("<a>" + ??esc_xelem ) + "</a>")); return (_local2.toXMLString().replace(/(^<a>)|(<\/a>$)|(^<a\/>$)/g, "")); //unresolved jump }; return (""); } protected function sendBuffer():void{ if (buffer.length > 0){ while (buffer.length != 0) { send(buffer.shift()); }; }; } protected function createNode(_arg1:String, _arg2:Object=null, _arg3:Boolean=false):String{ var _local5:*; var _local4 = ""; _local4 = (_local4 + ("<" + _arg1)); if (_arg2){ for (_local5 in _arg2) { _local4 = (_local4 + ((((" " + _local5) + "=\"") + _arg2[_local5]) + "\"")); }; }; if (_arg3){ _local4 = (_local4 + (("></" + _arg1) + ">")); } else { _local4 = (_local4 + ">"); }; return (_local4); } protected function enterFrameHandler(_arg1:Event):void{ if (isEnabled){ monitorFrames++; }; } protected function traceInternal(_arg1:Object, _arg2, _arg3:uint=0x111111, _arg4:Boolean=false, _arg5:int=4):void{ var _local6:XML; var _local7:uint; var _local8:Object; if (isEnabled){ _local6 = XML(parseObject(_arg2, "", _arg4, 1, _arg5)); _local7 = System.totalMemory; _local8 = {text:COMMAND_TRACE, date:new Date(), target:String(_arg1), xml:_local6, color:_arg3, memory:_local7}; if (isConnected){ send(_local8); } else { sendToBuffer(_local8); }; }; } protected function getObject(_arg1:String="", _arg2:int=0){ var splitted:Array; var i:int; var index:Number; var obj:Object; var target = _arg1; var parent = _arg2; var object:* = instance.root; if (target != ""){ splitted = target.split("."); i = 0; while (i < (splitted.length - parent)) { if (splitted[i] != ""){ try { if (splitted[i] == "children()"){ object = object.children(); } else { if (splitted[i].indexOf("getChildAt(") == 0){ index = splitted[i].substring(11, splitted[i].indexOf(")", 11)); object = DisplayObjectContainer(object).getChildAt(index); } else { object = object[splitted[i]]; }; }; } catch(error:ReferenceError) { obj = {text:COMMAND_NOTFOUND, target:target}; if (isConnected){ send(obj); } else { sendToBuffer(obj); }; break; }; }; i = (i + 1); }; }; return (object); } protected function sendToBuffer(_arg1:Object):void{ buffer.push(_arg1); if (buffer.length > MAX_BUFFER_SIZE){ buffer.shift(); }; } protected function printObject(_arg1, _arg2:String):String{ var _local3 = ""; if (_arg2 == TYPE_BYTEARRAY){ _local3 = (_arg1["length"] + " bytes"); } else { _local3 = htmlEscape(String(_arg1)); }; return (_local3); } protected function clearTracesInternal():void{ var _local1:Object; if (isEnabled){ _local1 = {text:COMMAND_CLEAR_TRACES}; if (isConnected){ send(_local1); } else { sendToBuffer(_local1); }; }; } protected function parseXML(_arg1, _arg2:String="", _arg3:int=1, _arg4:int=-1):String{ var _local7:String; var _local5 = ""; var _local6:int; if ((((_arg4 == -1)) || ((_arg3 <= _arg4)))){ if (_arg2.indexOf("@") != -1){ _local5 = (_local5 + createNode("node", {icon:ICON_XMLATTRIBUTE, label:_arg1, name:"", type:TYPE_XMLATTRIBUTE, value:_arg1, target:_arg2, access:ACCESS_VARIABLE, permission:PERMISSION_READWRITE}, true)); } else { if (_arg1.name() == null){ _local5 = (_local5 + createNode("node", {icon:ICON_XMLVALUE, label:((("(" + TYPE_XMLVALUE) + ") = ") + printObject(_arg1, TYPE_XMLVALUE)), name:"", type:TYPE_XMLVALUE, value:printObject(_arg1, TYPE_XMLVALUE), target:_arg2, access:ACCESS_VARIABLE, permission:PERMISSION_READWRITE}, true)); } else { if (_arg1.hasSimpleContent()){ _local5 = (_local5 + createNode("node", {icon:ICON_XMLNODE, label:(((_arg1.name() + " (") + TYPE_XMLNODE) + ")"), name:_arg1.name(), type:TYPE_XMLNODE, value:"", target:_arg2, access:ACCESS_VARIABLE, permission:PERMISSION_READWRITE})); if (_arg1 != ""){ _local5 = (_local5 + createNode("node", {icon:ICON_XMLVALUE, label:((("(" + TYPE_XMLVALUE) + ") = ") + printObject(_arg1, TYPE_XMLVALUE)), name:"", type:TYPE_XMLVALUE, value:printObject(_arg1, TYPE_XMLVALUE), target:_arg2, access:ACCESS_VARIABLE, permission:PERMISSION_READWRITE}, true)); }; _local6 = 0; while (_local6 < _arg1.attributes().length()) { _local5 = (_local5 + createNode("node", {icon:ICON_XMLATTRIBUTE, label:((((("@" + _arg1.attributes()[_local6].name()) + " (") + TYPE_XMLATTRIBUTE) + ") = ") + _arg1.attributes()[_local6]), name:"", type:TYPE_XMLATTRIBUTE, value:_arg1.attributes()[_local6], target:(((_arg2 + ".") + "@") + _arg1.attributes()[_local6].name()), access:ACCESS_VARIABLE, permission:PERMISSION_READWRITE}, true)); _local6++; }; _local5 = (_local5 + createNode("/node")); } else { _local5 = (_local5 + createNode("node", {icon:ICON_XMLNODE, label:(((_arg1.name() + " (") + TYPE_XMLNODE) + ")"), name:_arg1.name(), type:TYPE_XMLNODE, value:"", target:_arg2, access:ACCESS_VARIABLE, permission:PERMISSION_READWRITE})); _local6 = 0; while (_local6 < _arg1.attributes().length()) { _local5 = (_local5 + createNode("node", {icon:ICON_XMLATTRIBUTE, label:((((("@" + _arg1.attributes()[_local6].name()) + " (") + TYPE_XMLATTRIBUTE) + ") = ") + _arg1.attributes()[_local6]), name:"", type:TYPE_XMLATTRIBUTE, value:_arg1.attributes()[_local6], target:(((_arg2 + ".") + "@") + _arg1.attributes()[_local6].name()), access:ACCESS_VARIABLE, permission:PERMISSION_READWRITE}, true)); _local6++; }; _local6 = 0; while (_local6 < _arg1.children().length()) { _local7 = ((((_arg2 + ".") + "children()") + ".") + _local6); _local5 = (_local5 + parseXML(_arg1.children()[_local6], _local7, (_arg3 + 1), _arg4)); _local6++; }; _local5 = (_local5 + createNode("/node")); }; }; }; }; return (_local5); } protected function send(_arg1:Object):void{ var item:ByteArray; var dataPackages:Array; var i:int; var bytesAvailable:int; var offset:int; var total:int; var length:int; var tmp:ByteArray; var data = _arg1; if (isEnabled){ item = new ByteArray(); item.writeObject(data); item.compress(); dataPackages = new Array(); i = 0; if (item.length > MAX_PACKAGE_BYTES){ bytesAvailable = item.length; offset = 0; total = Math.ceil((item.length / MAX_PACKAGE_BYTES)); i = 0; while (i < total) { length = bytesAvailable; if (length > MAX_PACKAGE_BYTES){ length = MAX_PACKAGE_BYTES; }; tmp = new ByteArray(); tmp.writeBytes(item, offset, length); dataPackages.push({total:total, nr:(i + 1), bytes:tmp}); bytesAvailable = (bytesAvailable - length); offset = (offset + length); i = (i + 1); }; } else { dataPackages.push({total:1, nr:1, bytes:item}); }; i = 0; while (i < dataPackages.length) { try { lineOut.send(LINE_OUT, "onReceivedData", dataPackages[i]); } catch(error:Error) { break; }; i = (i + 1); }; }; } private function securityErrorHandler(_arg1:SecurityErrorEvent):void{ isConnected = false; } protected function monitorHandler(_arg1:TimerEvent):void{ var _local2:uint; var _local3:Number; var _local4:Number; var _local5:uint; var _local6:Object; if (isEnabled){ _local2 = System.totalMemory; _local3 = new Date().time; _local4 = (_local3 - monitorTime); _local5 = ((monitorFrames / _local4) * 1000); monitorFrames = 0; monitorTime = _local3; _local6 = {text:COMMAND_MONITOR, memory:_local2, fps:_local5, time:_local3, start:monitorStart}; if (isConnected){ send(_local6); } else { sendToBuffer(_local6); }; }; } protected function snapshotInternal(_arg1:DisplayObject, _arg2:uint=0x111111):void{ var _local3:BitmapData; var _local4:ByteArray; var _local5:uint; var _local6:Object; if (isEnabled){ _local3 = new BitmapData(_arg1.width, _arg1.height); _local3.draw(_arg1); _local4 = _local3.getPixels(new Rectangle(0, 0, _arg1.width, _arg1.height)); _local5 = System.totalMemory; _local6 = {text:COMMAND_SNAPSHOT, date:new Date(), target:String(_arg1), bytes:_local4, width:_arg1.width, height:_arg1.height, color:_arg2, memory:_local5}; if (isConnected){ send(_local6); } else { sendToBuffer(_local6); }; _local3.dispose(); _local4 = null; }; } protected function isDisplayObject(_arg1):Boolean{ return ((((_arg1 is DisplayObject)) || ((_arg1 is DisplayObjectContainer)))); } public function onReceivedData(_arg1:ByteArray):void{ var object:*; var method:Function; var xml:XML; var command:Object; var bounds:Rectangle; var data = _arg1; if (isEnabled){ data.uncompress(); command = data.readObject(); switch (command["text"]){ case COMMAND_HELLO: isConnected = true; send({text:COMMAND_HELLO, version:VERSION}); break; case COMMAND_HELLO_RESPONSE: isConnected = true; sendBuffer(); break; case COMMAND_ROOT: object = getObject("", 0); if (object != null){ xml = XML(parseObject(object, "", command["functions"], 1, 2)); send({text:COMMAND_ROOT, xml:xml}); if (isDisplayObject(object)){ xml = XML(parseDisplayObject(object, "", command["functions"], 1, 2)); send({text:COMMAND_BASE, xml:xml}); }; }; break; case COMMAND_GET_OBJECT: object = getObject(command["target"], 0); if (object != null){ xml = XML(parseObject(object, command["target"], command["functions"], 1, 2)); send({text:COMMAND_GET_OBJECT, xml:xml}); }; break; case COMMAND_GET_DISPLAYOBJECT: object = getObject(command["target"], 0); if (object != null){ if (isDisplayObject(object)){ xml = XML(parseDisplayObject(object, command["target"], command["functions"], 1, 2)); send({text:COMMAND_GET_DISPLAYOBJECT, xml:xml}); }; }; break; case COMMAND_GET_PROPERTIES: object = getObject(command["target"], 0); if (object != null){ xml = XML(parseObject(object, command["target"], false, 1, 1)); send({text:COMMAND_GET_PROPERTIES, xml:xml}); }; break; case COMMAND_GET_FUNCTIONS: object = getObject(command["target"], 0); if (object != null){ xml = XML(getFunctions(object, command["target"])); send({text:COMMAND_GET_FUNCTIONS, xml:xml}); }; break; case COMMAND_SET_PROPERTY: object = getObject(command["target"], 1); if (object != null){ try { object[command["name"]] = command["value"]; send({text:COMMAND_SET_PROPERTY, value:object[command["name"]]}); } catch(error:Error) { send({text:COMMAND_NOTFOUND, target:command["target"]}); break; }; }; break; case COMMAND_CALL_METHOD: method = getObject(command["target"], 0); if (method != null){ if (command["returnType"] == TYPE_VOID){ method.apply(this, command["arguments"]); } else { object = method.apply(this, command["arguments"]); xml = XML(parseObject(object, "", false, 1, 4)); send({text:COMMAND_CALL_METHOD, id:command["id"], xml:xml}); }; }; break; case COMMAND_SHOW_HIGHLIGHT: if (highlight != null){ try { highlight.parent.removeChild(highlight); highlight = null; } catch(error:Error) { }; }; object = getObject(command["target"], 0); if (((isDisplayObject(object)) && (isDisplayObject(object["parent"])))){ bounds = object.getBounds(object["parent"]); highlight = new Sprite(); highlight.x = 0; highlight.y = 0; highlight.graphics.beginFill(0, 0); highlight.graphics.lineStyle(HIGHLIGHT_BORDER, HIGHLIGHT_COLOR); highlight.graphics.drawRect(bounds.x, bounds.y, bounds.width, bounds.height); highlight.graphics.endFill(); highlight.mouseChildren = false; highlight.mouseEnabled = false; try { object["parent"].addChild(highlight); } catch(error:Error) { highlight = null; }; }; break; case COMMAND_HIDE_HIGHLIGHT: if (highlight != null){ try { highlight.parent.removeChild(highlight); highlight = null; } catch(error:Error) { }; }; break; }; }; } protected function parseDisplayObject(_arg1, _arg2:String="", _arg3:Boolean=false, _arg4:int=1, _arg5:int=4):String{ var xml:String; var childs:Array; var child:DisplayObject; var ojectName:String; var msg:String; var obj:Object; var object = _arg1; var target = _arg2; var functions = _arg3; var currentDepth = _arg4; var maxDepth = _arg5; xml = ""; var childType = ""; var childIcon = ""; var childName = ""; var childTarget = ""; var childChildren = ""; var i:int; if ((((maxDepth == -1)) || ((currentDepth <= maxDepth)))){ if (currentDepth == 1){ xml = (xml + createNode("root")); }; try { if (currentDepth == 1){ ojectName = DisplayObject(object).name; if ((((ojectName == null)) || ((ojectName == "null")))){ ojectName = "DisplayObject"; }; xml = (xml + createNode("node", {icon:ICON_ROOT, label:(("(" + ojectName) + ")"), target:target})); }; childs = new Array(); i = 0; while (i < DisplayObjectContainer(object).numChildren) { childs.push(DisplayObjectContainer(object).getChildAt(i)); i = (i + 1); }; i = 0; while (i < childs.length) { child = childs[i]; childName = describeType(child).@name; childType = parseType(childName); childTarget = ((((target + ".") + "getChildAt(") + i) + ")"); childIcon = ((child is DisplayObjectContainer)) ? ICON_ROOT : ICON_VARIABLE; childChildren = ((child is DisplayObjectContainer)) ? String(DisplayObjectContainer(child).numChildren) : ""; xml = (xml + createNode("node", {icon:childIcon, label:((((child.name + " (") + childType) + ") ") + childChildren), name:child.name, type:childType, value:printObject(child, childType), target:childTarget, access:ACCESS_VARIABLE, permission:PERMISSION_READWRITE})); try { xml = (xml + parseDisplayObject(child, childTarget, functions, (currentDepth + 1), maxDepth)); } catch(error:Error) { xml = (xml + createNode("node", {icon:ICON_WARNING, type:TYPE_WARNING, label:"Unreadable", name:"Unreadable"}, true)); }; xml = (xml + createNode("/node")); i = (i + 1); }; if (currentDepth == 1){ xml = (xml + createNode("/node")); }; } catch(error:Error) { msg = ""; msg = (msg + createNode("root")); msg = (msg + createNode("node", {icon:ICON_WARNING, type:TYPE_WARNING, label:"Not found", name:"Not found"}, true)); msg = (msg + createNode("/root")); obj = {text:COMMAND_NOTFOUND, target:target, xml:XML(msg)}; if (isConnected){ send(obj); } else { sendToBuffer(obj); }; }; if (currentDepth == 1){ xml = (xml + createNode("/root")); }; }; return (xml); } protected function parseType(_arg1:String):String{ var _local2:String = _arg1; if (_arg1.lastIndexOf("::") != -1){ _local2 = _arg1.substring((_arg1.lastIndexOf("::") + 2), _arg1.length); }; if (_local2.lastIndexOf(".") != -1){ _local2 = _local2.substring(0, _local2.lastIndexOf(".")); }; if (_local2 == TYPE_METHOD){ _local2 = TYPE_FUNCTION; }; return (htmlEscape(_local2)); } protected function parseObject(_arg1, _arg2:String="", _arg3:Boolean=false, _arg4:int=1, _arg5:int=4):String{ var xml:String; var isXMLString:XML; var keys:Array; var key:*; var properties:Array; var prop:*; var variables:XMLList; var accessors:XMLList; var constants:XMLList; var methods:XMLList; var variablesArr:Array; var methodsArr:Array; var double:Boolean; var permission:String; var icon:String; var returnType:String; var parameters:XMLList; var args:Array; var msg:String; var obj:Object; var object = _arg1; var target = _arg2; var functions = _arg3; var currentDepth = _arg4; var maxDepth = _arg5; xml = ""; var childType = ""; var childName = ""; var childTarget = ""; var description:XML = new XML(); var type = ""; var base = ""; var isXML:Boolean; var i:int; var n:int; if ((((maxDepth == -1)) || ((currentDepth <= maxDepth)))){ if (currentDepth == 1){ xml = (xml + createNode("root")); }; try { description = describeType(object); type = parseType(description.@name); base = parseType(description.@base); if (((functions) && ((base == TYPE_FUNCTION)))){ xml = (xml + createNode("node", {icon:ICON_FUNCTION, label:"(Function)", name:"", type:TYPE_FUNCTION, value:"", target:target, access:ACCESS_VARIABLE, permission:PERMISSION_READWRITE}, true)); } else { if ((((type == TYPE_ARRAY)) || ((type == TYPE_VECTOR)))){ if (currentDepth == 1){ xml = (xml + createNode("node", {icon:ICON_ROOT, label:(("(" + type) + ")"), target:target})); }; xml = (xml + createNode("node", {icon:ICON_VARIABLE, label:(((("length" + " (") + TYPE_UINT) + ") = ") + object["length"]), name:"length", type:TYPE_UINT, value:object["length"], target:((target + ".") + "length"), access:ACCESS_VARIABLE, permission:PERMISSION_READONLY}, true)); keys = new Array(); for (key in object) { keys.push(key); }; keys.sort(); i = 0; while (i < keys.length) { childType = parseType(describeType(object[keys[i]]).@name); childTarget = ((target + ".") + String(keys[i])); if ((((((((((((childType == TYPE_STRING)) || ((childType == TYPE_BOOLEAN)))) || ((childType == TYPE_NUMBER)))) || ((childType == TYPE_INT)))) || ((childType == TYPE_UINT)))) || ((childType == TYPE_FUNCTION)))){ isXML = false; isXMLString = new XML(); if (childType == TYPE_STRING){ try { isXMLString = new XML(object[keys[i]]); if (((!(isXMLString.hasSimpleContent())) && ((isXMLString.children().length() > 0)))){ isXML = true; }; } catch(error:TypeError) { }; }; try { if (!isXML){ xml = (xml + createNode("node", {icon:ICON_VARIABLE, label:((((("[" + keys[i]) + "] (") + childType) + ") = ") + printObject(object[keys[i]], childType)), name:(("[" + keys[i]) + "]"), type:childType, value:printObject(object[keys[i]], childType), target:childTarget, access:ACCESS_VARIABLE, permission:PERMISSION_READWRITE}, true)); } else { xml = (xml + createNode("node", {icon:ICON_VARIABLE, label:(((("[" + keys[i]) + "] (") + childType) + ")"), name:(("[" + keys[i]) + "]"), type:childType, value:"", target:childTarget, access:ACCESS_VARIABLE, permission:PERMISSION_READWRITE}, false)); xml = (xml + parseXML(isXMLString, ((childTarget + ".") + "cildren()"), currentDepth, maxDepth)); xml = (xml + createNode("/node")); }; } catch(error:Error) { }; } else { xml = (xml + createNode("node", {icon:ICON_VARIABLE, label:(((("[" + keys[i]) + "] (") + childType) + ")"), name:(("[" + keys[i]) + "]"), type:childType, value:"", target:childTarget, access:ACCESS_VARIABLE, permission:PERMISSION_READWRITE})); try { xml = (xml + parseObject(object[keys[i]], childTarget, functions, (currentDepth + 1), maxDepth)); } catch(error:Error) { xml = (xml + createNode("node", {icon:ICON_WARNING, type:TYPE_WARNING, label:"Unreadable", name:"Unreadable"}, true)); }; xml = (xml + createNode("/node")); }; i = (i + 1); }; if (currentDepth == 1){ xml = (xml + createNode("/node")); }; } else { if (type == TYPE_OBJECT){ if (currentDepth == 1){ xml = (xml + createNode("node", {icon:ICON_ROOT, label:(("(" + type) + ")"), target:target})); }; properties = new Array(); for (prop in object) { properties.push(prop); }; properties.sort(); i = 0; while (i < properties.length) { childType = parseType(describeType(object[properties[i]]).@name); childTarget = ((target + ".") + properties[i]); if ((((((((((((childType == TYPE_STRING)) || ((childType == TYPE_BOOLEAN)))) || ((childType == TYPE_NUMBER)))) || ((childType == TYPE_INT)))) || ((childType == TYPE_UINT)))) || ((childType == TYPE_FUNCTION)))){ isXML = false; isXMLString = new XML(); if (childType == TYPE_STRING){ try { isXMLString = new XML(object[properties[i]]); if (((!(isXMLString.hasSimpleContent())) && ((isXMLString.children().length() > 0)))){ isXML = true; }; } catch(error:TypeError) { }; }; try { if (!isXML){ xml = (xml + createNode("node", {icon:ICON_VARIABLE, label:((((properties[i] + " (") + childType) + ") = ") + printObject(object[properties[i]], childType)), name:properties[i], type:childType, value:printObject(object[properties[i]], childType), target:childTarget, access:ACCESS_VARIABLE, permission:PERMISSION_READWRITE}, true)); } else { xml = (xml + createNode("node", {icon:ICON_VARIABLE, label:(((properties[i] + " (") + childType) + ")"), name:properties[i], type:childType, value:"", target:childTarget, access:ACCESS_VARIABLE, permission:PERMISSION_READWRITE}, false)); xml = (xml + parseXML(isXMLString, ((childTarget + ".") + "cildren()"), currentDepth, maxDepth)); xml = (xml + createNode("/node")); }; } catch(error:Error) { }; } else { xml = (xml + createNode("node", {icon:ICON_VARIABLE, label:(((properties[i] + " (") + childType) + ")"), name:properties[i], type:childType, value:"", target:childTarget, access:ACCESS_VARIABLE, permission:PERMISSION_READWRITE})); try { xml = (xml + parseObject(object[properties[i]], childTarget, functions, (currentDepth + 1), maxDepth)); } catch(error:Error) { xml = (xml + createNode("node", {icon:ICON_WARNING, type:TYPE_WARNING, label:"Unreadable", name:"Unreadable"}, true)); }; xml = (xml + createNode("/node")); }; i = (i + 1); }; if (currentDepth == 1){ xml = (xml + createNode("/node")); }; } else { if (type == TYPE_XML){ if (currentDepth == 1){ xml = (xml + createNode("node", {icon:ICON_ROOT, label:(("(" + type) + ")"), target:target})); }; xml = (xml + parseXML(object, ((target + ".") + "cildren()"), currentDepth, maxDepth)); if (currentDepth == 1){ xml = (xml + createNode("/node")); }; } else { if (type == TYPE_XMLLIST){ if (currentDepth == 1){ xml = (xml + createNode("node", {icon:ICON_ROOT, label:(("(" + type) + ")"), target:target})); }; xml = (xml + createNode("node", {icon:ICON_VARIABLE, label:(((("length" + " (") + TYPE_UINT) + ") = ") + object.length()), name:"length", type:TYPE_UINT, value:object.length(), target:((target + ".") + "length"), access:ACCESS_VARIABLE, permission:PERMISSION_READONLY}, true)); i = 0; while (i < object.length()) { xml = (xml + parseXML(object[i], (((target + ".") + String(i)) + ".children()"), currentDepth, maxDepth)); i = (i + 1); }; if (currentDepth == 1){ xml = (xml + createNode("/node")); }; } else { if ((((((((((type == TYPE_STRING)) || ((type == TYPE_BOOLEAN)))) || ((type == TYPE_NUMBER)))) || ((type == TYPE_INT)))) || ((type == TYPE_UINT)))){ isXML = false; isXMLString = new XML(); if (type == TYPE_STRING){ try { isXMLString = new XML(object); if (((!(isXMLString.hasSimpleContent())) && ((isXMLString.children().length() > 0)))){ isXML = true; }; } catch(error:TypeError) { }; }; try { if (!isXML){ xml = (xml + createNode("node", {icon:ICON_VARIABLE, label:((("(" + type) + ") = ") + printObject(object, type)), name:"", type:type, value:printObject(object, type), target:target, access:ACCESS_VARIABLE, permission:PERMISSION_READWRITE}, true)); } else { xml = (xml + createNode("node", {icon:ICON_VARIABLE, label:(("(" + type) + ")"), name:"", type:type, value:"", target:target, access:ACCESS_VARIABLE, permission:PERMISSION_READWRITE}, false)); xml = (xml + parseXML(isXMLString, ((target + ".") + "cildren()"), currentDepth, maxDepth)); xml = (xml + createNode("/node")); }; } catch(error:Error) { }; } else { if (currentDepth == 1){ xml = (xml + createNode("node", {icon:ICON_ROOT, label:(("(" + type) + ")"), target:target})); }; variables = description..variable; accessors = description..accessor; constants = description..constant; methods = description..method; variablesArr = new Array(); methodsArr = new Array(); double = false; permission = ""; icon = ""; double = false; i = 0; while (i < variables.length()) { n = 0; while (n < variablesArr.length) { if (variablesArr[n].name == variables[i].@name){ double = true; break; }; n = (n + 1); }; if (!double){ variablesArr.push({name:variables[i].@name, xml:variables[i], access:ACCESS_VARIABLE}); }; i = (i + 1); }; double = false; i = 0; while (i < accessors.length()) { n = 0; while (n < variablesArr.length) { if (variablesArr[n].name == accessors[i].@name){ double = true; break; }; n = (n + 1); }; if (!double){ variablesArr.push({name:accessors[i].@name, xml:accessors[i], access:ACCESS_ACCESSOR}); }; i = (i + 1); }; double = false; i = 0; while (i < constants.length()) { n = 0; while (n < variablesArr.length) { if (variablesArr[n].name == constants[i].@name){ double = true; break; }; n = (n + 1); }; if (!double){ variablesArr.push({name:constants[i].@name, xml:constants[i], access:ACCESS_CONSTANT}); }; i = (i + 1); }; double = false; i = 0; while (i < methods.length()) { n = 0; while (n < methodsArr.length) { if (methodsArr[n].name == methods[i].@name){ double = true; break; }; n = (n + 1); }; if (!double){ methodsArr.push({name:methods[i].@name, xml:methods[i], access:ACCESS_METHOD}); }; i = (i + 1); }; variablesArr.sortOn("name"); methodsArr.sortOn("name"); i = 0; while (i < variablesArr.length) { childType = parseType(variablesArr[i].xml.@type); childName = variablesArr[i].xml.@name; childTarget = ((target + ".") + childName); permission = PERMISSION_READWRITE; icon = ICON_VARIABLE; if (variablesArr[i].access == ACCESS_CONSTANT){ permission = PERMISSION_READONLY; icon = ICON_VARIABLE_READONLY; }; if (variablesArr[i].xml.@access == PERMISSION_READONLY){ permission = PERMISSION_READONLY; icon = ICON_VARIABLE_READONLY; }; if (variablesArr[i].xml.@access == PERMISSION_WRITEONLY){ permission = PERMISSION_WRITEONLY; icon = ICON_VARIABLE_WRITEONLY; }; if (permission != PERMISSION_WRITEONLY){ if ((((((((((((childType == TYPE_STRING)) || ((childType == TYPE_BOOLEAN)))) || ((childType == TYPE_NUMBER)))) || ((childType == TYPE_INT)))) || ((childType == TYPE_UINT)))) || ((childType == TYPE_FUNCTION)))){ isXML = false; isXMLString = new XML(); if (childType == TYPE_STRING){ try { isXMLString = new XML(object[childName]); if (((!(isXMLString.hasSimpleContent())) && ((isXMLString.children().length() > 0)))){ isXML = true; }; } catch(error:TypeError) { }; }; try { if (!isXML){ xml = (xml + createNode("node", {icon:icon, label:((((childName + " (") + childType) + ") = ") + printObject(object[childName], childType)), name:childName, type:childType, value:printObject(object[childName], childType), target:childTarget, access:variablesArr[i].access, permission:permission}, true)); } else { xml = (xml + createNode("node", {icon:icon, label:(((childName + " (") + childType) + ")"), name:childName, type:childType, value:"", target:childTarget, access:variablesArr[i].access, permission:permission}, false)); xml = (xml + parseXML(isXMLString, ((childTarget + ".") + "cildren()"), currentDepth, maxDepth)); xml = (xml + createNode("/node")); }; } catch(error:Error) { }; } else { xml = (xml + createNode("node", {icon:icon, label:(((childName + " (") + childType) + ")"), name:childName, type:childType, target:childTarget, access:variablesArr[i].access, permission:permission})); try { xml = (xml + parseObject(object[childName], childTarget, functions, (currentDepth + 1), maxDepth)); } catch(error:Error) { xml = (xml + createNode("node", {icon:ICON_WARNING, type:TYPE_WARNING, label:"Unreadable", name:"Unreadable"}, true)); }; xml = (xml + createNode("/node")); }; }; i = (i + 1); }; if (functions){ i = 0; while (i < methodsArr.length) { childType = TYPE_FUNCTION; childName = methodsArr[i].xml.@name; childTarget = ((target + ".") + childName); returnType = parseType(methodsArr[i].xml.@returnType); parameters = methodsArr[i].xml..parameter; args = new Array(); n = 0; while (n < parameters.length()) { args.push(parseType(parameters[n].@type)); n = (n + 1); }; xml = (xml + createNode("node", {icon:ICON_FUNCTION, label:((((childName + "(") + args.join(", ")) + "):") + returnType), args:args.join(", "), name:childName, type:TYPE_FUNCTION, access:variablesArr[i].access, returnType:returnType, target:childTarget}, true)); i = (i + 1); }; }; if (currentDepth == 1){ xml = (xml + createNode("/node")); }; }; }; }; }; }; }; } catch(error:Error) { msg = ""; msg = (msg + createNode("root")); msg = (msg + createNode("node", {icon:ICON_WARNING, type:TYPE_WARNING, label:"Not found", name:"Not found"}, true)); msg = (msg + createNode("/root")); obj = {text:COMMAND_NOTFOUND, target:target, xml:XML(msg)}; if (isConnected){ send(obj); } else { sendToBuffer(obj); }; }; if (currentDepth == 1){ xml = (xml + createNode("/root")); }; }; return (xml); } protected function getFunctions(_arg1, _arg2:String=""):String{ var description:XML; var type:String; var childType:String; var childName:String; var childTarget:String; var methods:XMLList; var methodsArr:Array; var returnType:String; var parameters:XMLList; var args:Array; var argsString:String; var optional:Boolean; var double:Boolean; var i:int; var n:int; var msg:String; var obj:Object; var object = _arg1; var target = _arg2; var xml = ""; xml = (xml + createNode("root")); try { description = describeType(object); type = parseType(description.@name); childType = ""; childName = ""; childTarget = ""; methods = description..method; methodsArr = new Array(); optional = false; double = false; i = 0; n = 0; xml = (xml + createNode("node", {icon:ICON_DEFAULT, label:(("(" + type) + ")"), target:target})); i = 0; while (i < methods.length()) { n = 0; while (n < methodsArr.length) { if (methodsArr[n].name == methods[i].@name){ double = true; break; }; n = (n + 1); }; if (!double){ methodsArr.push({name:methods[i].@name, xml:methods[i], access:ACCESS_METHOD}); }; i = (i + 1); }; methodsArr.sortOn("name"); i = 0; while (i < methodsArr.length) { childType = TYPE_FUNCTION; childName = methodsArr[i].xml.@name; childTarget = ((target + ".") + childName); returnType = parseType(methodsArr[i].xml.@returnType); parameters = methodsArr[i].xml..parameter; args = new Array(); argsString = ""; optional = false; n = 0; while (n < parameters.length()) { if ((((parameters[n].@optional == "true")) && (!(optional)))){ optional = true; args.push("["); }; args.push(parseType(parameters[n].@type)); n = (n + 1); }; if (optional){ args.push("]"); }; argsString = args.join(", "); argsString = argsString.replace("[, ", "["); argsString = argsString.replace(", ]", "]"); xml = (xml + createNode("node", {icon:ICON_FUNCTION, label:((((childName + "(") + argsString) + "):") + returnType), args:argsString, name:childName, type:TYPE_FUNCTION, access:ACCESS_METHOD, returnType:returnType, target:childTarget})); n = 0; while (n < parameters.length()) { xml = (xml + createNode("parameter", {type:parseType(parameters[n].@type), index:parameters[n].@index, optional:parameters[n].@optional}, true)); n = (n + 1); }; xml = (xml + createNode("/node")); i = (i + 1); }; xml = (xml + createNode("/node")); } catch(error:Error) { msg = ""; msg = (msg + createNode("root")); msg = (msg + createNode("node", {icon:ICON_WARNING, type:TYPE_WARNING, label:"Not found", name:"Not found"}, true)); msg = (msg + createNode("/root")); obj = {text:COMMAND_NOTFOUND, target:target, xml:XML(msg)}; if (isConnected){ send(obj); } else { sendToBuffer(obj); }; }; xml = (xml + createNode("/root")); return (xml); } public static function get enabled():Boolean{ if (instance == null){ instance = new MonsterDebugger(null); }; return (instance.isEnabled); } public static function snapshot(_arg1:DisplayObject, _arg2:uint=0x111111):void{ if (instance == null){ instance = new MonsterDebugger(null); }; if (MonsterDebugger.enabled){ instance.snapshotInternal(_arg1, _arg2); }; } public static function trace(_arg1:Object, _arg2, _arg3:uint=0x111111, _arg4:Boolean=false, _arg5:int=4):void{ if (instance == null){ instance = new MonsterDebugger(_arg1); }; if (MonsterDebugger.enabled){ instance.traceInternal(_arg1, _arg2, _arg3, _arg4, _arg5); }; } public static function set enabled(_arg1:Boolean):void{ if (instance == null){ instance = new MonsterDebugger(null); }; instance.isEnabled = _arg1; } public static function inspect(_arg1:Object):void{ var _local2:*; var _local3:XML; var _local4:Object; if (((!((instance == null))) && (!((_arg1 == null))))){ instance.root = _arg1; _local2 = instance.getObject("", 0); if (_local2 != null){ _local3 = XML(instance.parseObject(_local2, "", false, 1, 2)); _local4 = {text:instance.COMMAND_INSPECT, xml:_local3}; if (instance.isConnected){ instance.send(_local4); } else { instance.sendToBuffer(_local4); }; if (instance.isDisplayObject(_local2)){ _local3 = XML(instance.parseDisplayObject(_local2, "", false, 1, 2)); _local4 = {text:instance.COMMAND_BASE, xml:_local3}; if (instance.isConnected){ instance.send(_local4); } else { instance.sendToBuffer(_local4); }; }; }; }; } public static function clearTraces():void{ if (instance == null){ instance = new MonsterDebugger(null); }; if (MonsterDebugger.enabled){ instance.clearTracesInternal(); }; } } }//package nl.demonsters.debugger
Section 204
//getDefinitionNames (ru.etcs.utils.getDefinitionNames) package ru.etcs.utils { import flash.display.*; import flash.utils.*; public function getDefinitionNames(_arg1:Object, _arg2:Boolean=false, _arg3:Boolean=false):Array{ var _local4:ByteArray; if ((_arg1 is LoaderInfo)){ _local4 = (_arg1 as LoaderInfo).bytes; } else { if ((_arg1 is ByteArray)){ _local4 = (_arg1 as ByteArray); } else { throw (new ArgumentError("Error #1001: The specified data is invalid")); }; }; var _local5:uint = _local4.position; var _local6:Finder = new Finder(_local4); _local4.position = _local5; return (_local6.getDefinitionNames(_arg2, _arg3)); } }//package ru.etcs.utils import flash.utils.*; import flash.geom.*; class Finder { private var _multinameTable:Array; private var _data:SWFByteArray; private var _namespaceTable:Array; private var _stringTable:Array; private function Finder(_arg1:ByteArray){ this._data = new SWFByteArray(_arg1); } private function getName(_arg1:uint):String{ var _local2:Array = this._multinameTable[_arg1]; var _local3:uint = (_local2[0] as uint); if (!(_local3 in this._namespaceTable)){ return (null); }; var _local4:String = (this._stringTable[(this._namespaceTable[_local3] as uint)] as String); var _local5:String = (this._stringTable[(_local2[1] as uint)] as String); if (_local4){ _local5 = ((_local4 + "::") + _local5); }; return (_local5); } private function getDefinitionNamesInTag(_arg1:Boolean):Array{ var _local3:int; var _local4:uint; var _local5:uint; var _local6:uint; var _local7:uint; var _local8:uint; var _local11:String; var _local12:Array; var _local13:int; var _local2 = !(_arg1); var _local9:Array = new Array(); this._stringTable = new Array(); this._namespaceTable = new Array(); this._multinameTable = new Array(); _local3 = (this._data.readASInt() - 1); while ((((_local3 > 0)) && (_local3))) { this._data.readASInt(); }; _local3 = (this._data.readASInt() - 1); while ((((_local3 > 0)) && (_local3))) { this._data.readASInt(); }; _local3 = (this._data.readASInt() - 1); while ((((_local3 > 0)) && (_local3))) { this._data.readDouble(); }; _local3 = (this._data.readASInt() - 1); _local5 = 1; while ((((_local3 > 0)) && (_local3))) { this._stringTable[_local5] = this._data.readUTFBytes(this._data.readASInt()); _local5++; }; _local3 = (this._data.readASInt() - 1); _local5 = 1; while ((((_local3 > 0)) && (_local3))) { _local4 = this._data.readUnsignedByte(); _local8 = this._data.readASInt(); if (_local4 == 22){ this._namespaceTable[_local5] = _local8; }; _local5++; }; _local3 = (this._data.readASInt() - 1); while ((((_local3 > 0)) && (_local3))) { _local7 = this._data.readUnsignedByte(); while (_local7--) { this._data.readASInt(); }; }; _local3 = (this._data.readASInt() - 1); _local5 = 1; while ((((_local3 > 0)) && (_local3))) { _local4 = this._data.readASInt(); switch (_local4){ case 7: case 13: _local8 = this._data.readASInt(); this._multinameTable[_local5] = [_local8, this._data.readASInt()]; break; case 15: case 16: this._multinameTable[_local5] = [0, this._stringTable[this._data.readASInt()]]; break; case 17: case 18: break; case 9: case 14: this._multinameTable[_local5] = [0, this._stringTable[this._data.readASInt()]]; this._data.readASInt(); break; case 27: case 28: this._data.readASInt(); break; }; _local5++; }; _local3 = this._data.readASInt(); while ((((_local3 > 0)) && (_local3))) { _local13 = this._data.readASInt(); _local7 = _local13; this._data.readASInt(); while (_local7--) { this._data.readASInt(); }; this._data.readASInt(); _local6 = this._data.readUnsignedByte(); if ((_local6 & 8)){ _local7 = this._data.readASInt(); while (_local7--) { this._data.readASInt(); this._data.readASInt(); }; }; if ((_local6 & 128)){ _local7 = _local13; while (_local7--) { this._data.readASInt(); }; }; }; _local3 = this._data.readASInt(); while ((((_local3 > 0)) && (_local3))) { this._data.readASInt(); _local7 = this._data.readASInt(); while (_local7--) { this._data.readASInt(); this._data.readASInt(); }; }; _local3 = this._data.readASInt(); var _local10:uint = _local3; while ((((_local3 > 0)) && (_local3))) { _local5 = this._data.readASInt(); this._data.readASInt(); _local6 = this._data.readUnsignedByte(); if ((_local6 & 8)){ _local8 = this._data.readASInt(); }; _local7 = this._data.readASInt(); while (_local7--) { this._data.readASInt(); }; this._data.readASInt(); this.readTraits(); if (_local2){ _local11 = this.getName(_local5); if (_local11){ _local9.push(_local11); }; }; }; if (_local2){ return (_local9); }; _local3 = _local10; while (((_local3) && (_local3))) { this._data.readASInt(); this.readTraits(); }; _local3 = this._data.readASInt(); while (((_local3) && (_local3))) { this._data.readASInt(); _local12 = this.readTraits(true); if (_local12.length){ _local9.push.apply(_local9, _local12); }; }; return (_local9); } private function readTraits(_arg1:Boolean=false):Array{ var _local2:uint; var _local3:uint; var _local4:uint; var _local5:uint; var _local7:Array; var _local8:String; var _local9:uint; var _local10:uint; var _local6:uint = this._data.readASInt(); if (_arg1){ _local7 = []; }; while (_local6--) { _local5 = this._data.readASInt(); _local2 = this._data.readUnsignedByte(); _local9 = (_local2 >> 4); _local10 = (_local2 & 15); this._data.readASInt(); this._data.readASInt(); switch (_local10){ case 0: case 6: if (this._data.readASInt()){ this._data.readASInt(); }; break; }; if (_arg1){ _local8 = this.getName(_local5); if (_local8){ _local7.push(_local8); }; }; if ((_local9 & 4)){ _local3 = this._data.readASInt(); while (_local3--) { this._data.readASInt(); }; }; }; return (_local7); } public function getDefinitionNames(_arg1:Boolean, _arg2:Boolean):Array{ var _local4:uint; var _local5:uint; var _local6:uint; var _local7:uint; var _local8:uint; var _local9:uint; var _local10:String; var _local11:int; var _local12:uint; var _local3:Array = new Array(); while (this._data.bytesAvailable) { _local4 = this._data.readUnsignedShort(); _local5 = (_local4 >> 6); _local6 = (_local4 & 63); _local6 = ((_local6)==63) ? this._data.readUnsignedInt() : _local6; _local9 = this._data.position; if (_arg2){ if (_local5 == 76){ _local12 = this._data.readUnsignedShort(); while (_local12--) { this._data.readUnsignedShort(); _local10 = this._data.readString(); _local11 = _local10.lastIndexOf("."); if (_local11 >= 0){ _local10 = ((_local10.substr(0, _local11) + "::") + _local10.substr((_local11 + 1))); }; _local3.push(_local10); }; }; } else { switch (_local5){ case 72: case 82: if (_local5 == 82){ this._data.position = (this._data.position + 4); this._data.readString(); }; _local7 = this._data.readUnsignedShort(); _local8 = this._data.readUnsignedShort(); if ((((_local7 == 16)) && ((_local8 == 46)))){ _local3.push.apply(_local3, this.getDefinitionNamesInTag(_arg1)); }; break; }; }; this._data.position = (_local9 + _local6); }; return (_local3); } } class SWFByteArray extends ByteArray { private var _rect:Rectangle; private var _bitIndex:uint; private var _frameRate:Number; private var _version:uint; private static const TAG_SWF_COMPRESSED:String = "CWS"; private static const TAG_SWF:String = "FWS"; private function SWFByteArray(_arg1:ByteArray=null):void{ var _local2:String; var _local3:String; super(); super.endian = Endian.LITTLE_ENDIAN; if (_arg1){ _local2 = _arg1.endian; _arg1.endian = Endian.LITTLE_ENDIAN; if (_arg1.bytesAvailable > 26){ _local3 = _arg1.readUTFBytes(3); if ((((_local3 == SWFByteArray.TAG_SWF)) || ((_local3 == SWFByteArray.TAG_SWF_COMPRESSED)))){ this._version = _arg1.readUnsignedByte(); _arg1.readUnsignedInt(); _arg1.readBytes(this); if (_local3 == SWFByteArray.TAG_SWF_COMPRESSED){ super.uncompress(); }; } else { throw (new ArgumentError("Error #2124: Loaded file is an unknown type.")); }; this.readHeader(); }; _arg1.endian = _local2; }; } public function writeBytesFromString(_arg1:String):void{ var _local4:String; var _local5:uint; var _local2:uint = _arg1.length; var _local3:uint; while (_local3 < _local2) { _local4 = _arg1.substr(_local3, 2); _local5 = parseInt(_local4, 16); writeByte(_local5); _local3 = (_local3 + 2); }; } private function readHeader():void{ this._rect = this.readRect(); this.readFrameRate(); super.readShort(); } public function get rect():Rectangle{ return (this._rect); } public function get frameRate():Number{ return (this._frameRate); } public function readBits(_arg1:uint, _arg2:int=-1):Number{ if (_arg2 < 0){ _arg2 = this._bitIndex; }; this._bitIndex = _arg2; var _local3:uint = this[super.position]; var _local4:Number = 0; var _local5:Number = 0; var _local6:uint = (8 - _arg2); var _local7:Number = (_arg1 - _local6); if (_local7 > 0){ super.position++; _local4 = (this.readBits(_local7, 0) | ((_local3 & ((1 << _local6) - 1)) << _local7)); } else { _local4 = ((_local3 >> ((8 - _arg1) - _arg2)) & ((1 << _arg1) - 1)); this._bitIndex = ((_arg2 + _arg1) % 8); if ((_arg2 + _arg1) > 7){ super.position++; }; }; return (_local4); } public function readASInt():int{ var _local3:uint; var _local1:uint; var _local2:uint; do { _local3 = super.readUnsignedByte(); _local1 = (_local1 | ((_local3 & 127) << (_local2 * 7))); _local2 = (_local2 + 1); } while ((_local3 & (1 << 7))); return (_local1); } private function readFrameRate():void{ var _local1:Number; if (this._version < 8){ this._frameRate = super.readUnsignedShort(); } else { _local1 = (super.readUnsignedByte() / 0xFF); this._frameRate = (super.readUnsignedByte() + _local1); }; } public function get version():uint{ return (this._version); } public function readRect():Rectangle{ var _local1:uint = super.position; var _local2:uint = this[_local1]; var _local3:uint = (_local2 >> 3); var _local4:Number = (this.readBits(_local3, 5) / 20); var _local5:Number = (this.readBits(_local3) / 20); var _local6:Number = (this.readBits(_local3) / 20); var _local7:Number = (this.readBits(_local3) / 20); super.position = ((_local1 + Math.ceil((((_local3 * 4) - 3) / 8))) + 1); return (new Rectangle(_local4, _local6, (_local5 - _local4), (_local7 - _local6))); } public function traceArray(_arg1:ByteArray):String{ var _local5:String; var _local2 = ""; var _local3:uint = _arg1.position; var _local4:uint; _arg1.position = 0; while (_arg1.bytesAvailable) { _local5 = _arg1.readUnsignedByte().toString(16).toUpperCase(); _local5 = ((_local5.length < 2)) ? ("0" + _local5) : _local5; _local2 = (_local2 + (_local5 + " ")); }; _arg1.position = _local3; return (_local2); } public function readString():String{ var _local1:uint = super.position; do { } while (((this[_local1]) && (_temp2))); var _local2:String = super.readUTFBytes((_local1 - super.position)); super.position = (_local1 + 1); return (_local2); } }

Special Tags

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

Labels

"eu_ecb_economia_Economia"Frame 1




http://swfchan.com/44/215799/info.shtml
Created: 19/12 -2018 22:36:02 Last modified: 19/12 -2018 22:36:02 Server time: 27/04 -2024 07:15:42