Section 1
//JSON (com.adobe.serialization.json.JSON)
package com.adobe.serialization.json {
public class JSON {
public static function decode(_arg1:String){
var _local2:JSONDecoder;
_local2 = new JSONDecoder(_arg1);
return (_local2.getValue());
}
public static function encode(_arg1:Object):String{
var _local2:JSONEncoder;
_local2 = new JSONEncoder(_arg1);
return (_local2.getString());
}
}
}//package com.adobe.serialization.json
Section 2
//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 nextToken():JSONToken{
return ((token = tokenizer.getNextToken()));
}
private function parseObject():Object{
var _local1:Object;
var _local2:String;
_local1 = 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 parseArray():Array{
var _local1:Array;
_local1 = 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);
}
public function getValue(){
return (value);
}
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);
}
}
}//package com.adobe.serialization.json
Section 3
//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 arrayToString(_arg1:Array):String{
var _local2:String;
var _local3:int;
_local2 = "";
_local3 = 0;
while (_local3 < _arg1.length) {
if (_local2.length > 0){
_local2 = (_local2 + ",");
};
_local2 = (_local2 + convertToString(_arg1[_local3]));
_local3++;
};
return ((("[" + _local2) + "]"));
}
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");
}
private function escapeString(_arg1:String):String{
var _local2:String;
var _local3:String;
var _local4:Number;
var _local5:int;
var _local6:String;
var _local7:String;
_local2 = "";
_local4 = _arg1.length;
_local5 = 0;
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 objectToString(_arg1:Object):String{
var s:String;
var classInfo:XML;
var value:Object;
var key:String;
var v:XML;
var o = _arg1;
s = "";
classInfo = 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) + "}"));
}
public function getString():String{
return (jsonString);
}
}
}//package com.adobe.serialization.json
Section 4
//JSONParseError (com.adobe.serialization.json.JSONParseError)
package com.adobe.serialization.json {
public class JSONParseError extends Error {
private var _text:String;
private var _location:int;
public function JSONParseError(_arg1:String="", _arg2:int=0, _arg3:String=""){
super(_arg1);
name = "JSONParseError";
_location = _arg2;
_text = _arg3;
}
public function get text():String{
return (_text);
}
public function get location():int{
return (_location);
}
}
}//package com.adobe.serialization.json
Section 5
//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 set value(_arg1:Object):void{
_value = _arg1;
}
public function get value():Object{
return (_value);
}
public function set type(_arg1:int):void{
_type = _arg1;
}
public function get type():int{
return (_type);
}
}
}//package com.adobe.serialization.json
Section 6
//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 readNumber():JSONToken{
var _local1:JSONToken;
var _local2:String;
var _local3:Number;
_local1 = new JSONToken();
_local1.type = JSONTokenType.NUMBER;
_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();
};
};
_local3 = Number(_local2);
if (((isFinite(_local3)) && (!(isNaN(_local3))))){
_local1.value = _local3;
return (_local1);
};
parseError((("Number " + _local3) + " is not valid!"));
return (null);
}
private function nextChar():String{
return ((ch = jsonString.charAt(loc++)));
}
public function getNextToken():JSONToken{
var _local1:JSONToken;
var _local2:String;
var _local3:String;
var _local4:String;
_local1 = 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();
};
}
private function isWhiteSpace(_arg1:String):Boolean{
return ((((((((_arg1 == " ")) || ((_arg1 == "\t")))) || ((_arg1 == "\n")))) || ((_arg1 == "\r"))));
}
public function parseError(_arg1:String):void{
throw (new JSONParseError(_arg1, loc, jsonString));
}
private function skipIgnored():void{
var _local1:int;
do {
_local1 = loc;
skipWhite();
skipComments();
} while (_local1 != loc);
}
private function isHexDigit(_arg1:String):Boolean{
var _local2:String;
_local2 = _arg1.toUpperCase();
return (((isDigit(_arg1)) || ((((_local2 >= "A")) && ((_local2 <= "F"))))));
}
private function readString():JSONToken{
var _local1:JSONToken;
var _local2:String;
var _local3:String;
var _local4:int;
_local1 = new JSONToken();
_local1.type = JSONTokenType.STRING;
_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);
}
}
}//package com.adobe.serialization.json
Section 7
//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 8
//Base64 (com.midasplayer.extras.Base64)
package com.midasplayer.extras {
import flash.utils.*;
public class Base64 {
public static const version:String = "1.1.0";
private static const BASE64_CHARS:String = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
public function Base64(){
throw (new Error("Base64 class is static container only"));
}
public static function encode(_arg1:String):String{
var _local2:ByteArray;
_local2 = new ByteArray();
_local2.writeUTFBytes(_arg1);
return (encodeByteArray(_local2));
}
public static function encodeByteArray(_arg1:ByteArray):String{
var _local2:String;
var _local3:Array;
var _local4:Array;
var _local5:uint;
var _local6:uint;
var _local7:uint;
_local2 = "";
_local4 = new Array(4);
_arg1.position = 0;
while (_arg1.bytesAvailable > 0) {
_local3 = new Array();
_local5 = 0;
while ((((_local5 < 3)) && ((_arg1.bytesAvailable > 0)))) {
_local3[_local5] = _arg1.readUnsignedByte();
_local5++;
};
_local4[0] = ((_local3[0] & 252) >> 2);
_local4[1] = (((_local3[0] & 3) << 4) | (_local3[1] >> 4));
_local4[2] = (((_local3[1] & 15) << 2) | (_local3[2] >> 6));
_local4[3] = (_local3[2] & 63);
_local6 = _local3.length;
while (_local6 < 3) {
_local4[(_local6 + 1)] = 64;
_local6++;
};
_local7 = 0;
while (_local7 < _local4.length) {
_local2 = (_local2 + BASE64_CHARS.charAt(_local4[_local7]));
_local7++;
};
};
return (_local2);
}
public static function decode(_arg1:String):String{
var _local2:ByteArray;
_local2 = decodeToByteArray(_arg1);
return (_local2.readUTFBytes(_local2.length));
}
public static function decodeToByteArray(_arg1:String):ByteArray{
var _local2:ByteArray;
var _local3:Array;
var _local4:Array;
var _local5:uint;
var _local6:uint;
var _local7:uint;
_local2 = new ByteArray();
_local3 = new Array(4);
_local4 = new Array(3);
_local5 = 0;
while (_local5 < _arg1.length) {
_local6 = 0;
while ((((_local6 < 4)) && (((_local5 + _local6) < _arg1.length)))) {
_local3[_local6] = BASE64_CHARS.indexOf(_arg1.charAt((_local5 + _local6)));
_local6++;
};
_local4[0] = ((_local3[0] << 2) + ((_local3[1] & 48) >> 4));
_local4[1] = (((_local3[1] & 15) << 4) + ((_local3[2] & 60) >> 2));
_local4[2] = (((_local3[2] & 3) << 6) + _local3[3]);
_local7 = 0;
while (_local7 < _local4.length) {
if (_local3[(_local7 + 1)] == 64){
break;
};
_local2.writeByte(_local4[_local7]);
_local7++;
};
_local5 = (_local5 + 4);
};
_local2.position = 0;
return (_local2);
}
}
}//package com.midasplayer.extras
Section 9
//FunflowSerializer (com.midasplayer.extras.FunflowSerializer)
package com.midasplayer.extras {
import flash.net.*;
import flash.utils.*;
public class FunflowSerializer {
public static function amfEncode(_arg1:Object):String{
var _local2:ByteArray;
_local2 = new ByteArray();
_local2.writeObject(_arg1);
return (Base64.encodeByteArray(_local2));
}
public static function objectToFlashURLVariables(_arg1:Object):URLVariables{
var _local2:URLVariables;
var _local3:String;
_local2 = new URLVariables();
if (_arg1 != null){
for (_local3 in _arg1) {
if (_local3 != null){
if ((_arg1[_local3] is Array)){
_local2[("fv_" + _local3)] = _arg1[_local3];
} else {
_local2[("fv_" + _local3)] = _arg1[_local3].toString();
};
};
};
};
return (_local2);
}
public static function amfDecode(_arg1:String):Object{
var _local2:ByteArray;
_local2 = Base64.decodeToByteArray(_arg1);
return (_local2.readObject());
}
}
}//package com.midasplayer.extras
Section 10
//md5 (com.midasplayer.extras.md5)
package com.midasplayer.extras {
public class md5 {
public static const HEX_FORMAT_LOWERCASE:uint = 0;
public static const HEX_FORMAT_UPPERCASE:uint = 1;
public static const BASE64_PAD_CHARACTER_DEFAULT_COMPLIANCE:String = "";
public static const BASE64_PAD_CHARACTER_RFC_COMPLIANCE:String = "=";
public static var hexcase:uint = 0;
public static var b64pad:String = "";
public static function md5_gg(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number):Number{
return (md5_cmn(((_arg2 & _arg4) | (_arg3 & ~(_arg4))), _arg1, _arg2, _arg5, _arg6, _arg7));
}
public static function md5_cmn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number):Number{
return (safe_add(bit_rol(safe_add(safe_add(_arg2, _arg1), safe_add(_arg4, _arg6)), _arg5), _arg3));
}
public static function binl_md5(_arg1:Array, _arg2:Number):Array{
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
_arg1[(_arg2 >> 5)] = (_arg1[(_arg2 >> 5)] | (128 << (_arg2 % 32)));
_arg1[((((_arg2 + 64) >>> 9) << 4) + 14)] = _arg2;
_local3 = 1732584193;
_local4 = -271733879;
_local5 = -1732584194;
_local6 = 271733878;
_local7 = 0;
while (_local7 < _arg1.length) {
_local8 = _local3;
_local9 = _local4;
_local10 = _local5;
_local11 = _local6;
_local3 = md5_ff(_local3, _local4, _local5, _local6, _arg1[(_local7 + 0)], 7, -680876936);
_local6 = md5_ff(_local6, _local3, _local4, _local5, _arg1[(_local7 + 1)], 12, -389564586);
_local5 = md5_ff(_local5, _local6, _local3, _local4, _arg1[(_local7 + 2)], 17, 606105819);
_local4 = md5_ff(_local4, _local5, _local6, _local3, _arg1[(_local7 + 3)], 22, -1044525330);
_local3 = md5_ff(_local3, _local4, _local5, _local6, _arg1[(_local7 + 4)], 7, -176418897);
_local6 = md5_ff(_local6, _local3, _local4, _local5, _arg1[(_local7 + 5)], 12, 1200080426);
_local5 = md5_ff(_local5, _local6, _local3, _local4, _arg1[(_local7 + 6)], 17, -1473231341);
_local4 = md5_ff(_local4, _local5, _local6, _local3, _arg1[(_local7 + 7)], 22, -45705983);
_local3 = md5_ff(_local3, _local4, _local5, _local6, _arg1[(_local7 + 8)], 7, 1770035416);
_local6 = md5_ff(_local6, _local3, _local4, _local5, _arg1[(_local7 + 9)], 12, -1958414417);
_local5 = md5_ff(_local5, _local6, _local3, _local4, _arg1[(_local7 + 10)], 17, -42063);
_local4 = md5_ff(_local4, _local5, _local6, _local3, _arg1[(_local7 + 11)], 22, -1990404162);
_local3 = md5_ff(_local3, _local4, _local5, _local6, _arg1[(_local7 + 12)], 7, 1804603682);
_local6 = md5_ff(_local6, _local3, _local4, _local5, _arg1[(_local7 + 13)], 12, -40341101);
_local5 = md5_ff(_local5, _local6, _local3, _local4, _arg1[(_local7 + 14)], 17, -1502002290);
_local4 = md5_ff(_local4, _local5, _local6, _local3, _arg1[(_local7 + 15)], 22, 1236535329);
_local3 = md5_gg(_local3, _local4, _local5, _local6, _arg1[(_local7 + 1)], 5, -165796510);
_local6 = md5_gg(_local6, _local3, _local4, _local5, _arg1[(_local7 + 6)], 9, -1069501632);
_local5 = md5_gg(_local5, _local6, _local3, _local4, _arg1[(_local7 + 11)], 14, 643717713);
_local4 = md5_gg(_local4, _local5, _local6, _local3, _arg1[(_local7 + 0)], 20, -373897302);
_local3 = md5_gg(_local3, _local4, _local5, _local6, _arg1[(_local7 + 5)], 5, -701558691);
_local6 = md5_gg(_local6, _local3, _local4, _local5, _arg1[(_local7 + 10)], 9, 38016083);
_local5 = md5_gg(_local5, _local6, _local3, _local4, _arg1[(_local7 + 15)], 14, -660478335);
_local4 = md5_gg(_local4, _local5, _local6, _local3, _arg1[(_local7 + 4)], 20, -405537848);
_local3 = md5_gg(_local3, _local4, _local5, _local6, _arg1[(_local7 + 9)], 5, 568446438);
_local6 = md5_gg(_local6, _local3, _local4, _local5, _arg1[(_local7 + 14)], 9, -1019803690);
_local5 = md5_gg(_local5, _local6, _local3, _local4, _arg1[(_local7 + 3)], 14, -187363961);
_local4 = md5_gg(_local4, _local5, _local6, _local3, _arg1[(_local7 + 8)], 20, 1163531501);
_local3 = md5_gg(_local3, _local4, _local5, _local6, _arg1[(_local7 + 13)], 5, -1444681467);
_local6 = md5_gg(_local6, _local3, _local4, _local5, _arg1[(_local7 + 2)], 9, -51403784);
_local5 = md5_gg(_local5, _local6, _local3, _local4, _arg1[(_local7 + 7)], 14, 1735328473);
_local4 = md5_gg(_local4, _local5, _local6, _local3, _arg1[(_local7 + 12)], 20, -1926607734);
_local3 = md5_hh(_local3, _local4, _local5, _local6, _arg1[(_local7 + 5)], 4, -378558);
_local6 = md5_hh(_local6, _local3, _local4, _local5, _arg1[(_local7 + 8)], 11, -2022574463);
_local5 = md5_hh(_local5, _local6, _local3, _local4, _arg1[(_local7 + 11)], 16, 1839030562);
_local4 = md5_hh(_local4, _local5, _local6, _local3, _arg1[(_local7 + 14)], 23, -35309556);
_local3 = md5_hh(_local3, _local4, _local5, _local6, _arg1[(_local7 + 1)], 4, -1530992060);
_local6 = md5_hh(_local6, _local3, _local4, _local5, _arg1[(_local7 + 4)], 11, 1272893353);
_local5 = md5_hh(_local5, _local6, _local3, _local4, _arg1[(_local7 + 7)], 16, -155497632);
_local4 = md5_hh(_local4, _local5, _local6, _local3, _arg1[(_local7 + 10)], 23, -1094730640);
_local3 = md5_hh(_local3, _local4, _local5, _local6, _arg1[(_local7 + 13)], 4, 681279174);
_local6 = md5_hh(_local6, _local3, _local4, _local5, _arg1[(_local7 + 0)], 11, -358537222);
_local5 = md5_hh(_local5, _local6, _local3, _local4, _arg1[(_local7 + 3)], 16, -722521979);
_local4 = md5_hh(_local4, _local5, _local6, _local3, _arg1[(_local7 + 6)], 23, 76029189);
_local3 = md5_hh(_local3, _local4, _local5, _local6, _arg1[(_local7 + 9)], 4, -640364487);
_local6 = md5_hh(_local6, _local3, _local4, _local5, _arg1[(_local7 + 12)], 11, -421815835);
_local5 = md5_hh(_local5, _local6, _local3, _local4, _arg1[(_local7 + 15)], 16, 530742520);
_local4 = md5_hh(_local4, _local5, _local6, _local3, _arg1[(_local7 + 2)], 23, -995338651);
_local3 = md5_ii(_local3, _local4, _local5, _local6, _arg1[(_local7 + 0)], 6, -198630844);
_local6 = md5_ii(_local6, _local3, _local4, _local5, _arg1[(_local7 + 7)], 10, 1126891415);
_local5 = md5_ii(_local5, _local6, _local3, _local4, _arg1[(_local7 + 14)], 15, -1416354905);
_local4 = md5_ii(_local4, _local5, _local6, _local3, _arg1[(_local7 + 5)], 21, -57434055);
_local3 = md5_ii(_local3, _local4, _local5, _local6, _arg1[(_local7 + 12)], 6, 1700485571);
_local6 = md5_ii(_local6, _local3, _local4, _local5, _arg1[(_local7 + 3)], 10, -1894986606);
_local5 = md5_ii(_local5, _local6, _local3, _local4, _arg1[(_local7 + 10)], 15, -1051523);
_local4 = md5_ii(_local4, _local5, _local6, _local3, _arg1[(_local7 + 1)], 21, -2054922799);
_local3 = md5_ii(_local3, _local4, _local5, _local6, _arg1[(_local7 + 8)], 6, 1873313359);
_local6 = md5_ii(_local6, _local3, _local4, _local5, _arg1[(_local7 + 15)], 10, -30611744);
_local5 = md5_ii(_local5, _local6, _local3, _local4, _arg1[(_local7 + 6)], 15, -1560198380);
_local4 = md5_ii(_local4, _local5, _local6, _local3, _arg1[(_local7 + 13)], 21, 1309151649);
_local3 = md5_ii(_local3, _local4, _local5, _local6, _arg1[(_local7 + 4)], 6, -145523070);
_local6 = md5_ii(_local6, _local3, _local4, _local5, _arg1[(_local7 + 11)], 10, -1120210379);
_local5 = md5_ii(_local5, _local6, _local3, _local4, _arg1[(_local7 + 2)], 15, 718787259);
_local4 = md5_ii(_local4, _local5, _local6, _local3, _arg1[(_local7 + 9)], 21, -343485551);
_local3 = safe_add(_local3, _local8);
_local4 = safe_add(_local4, _local9);
_local5 = safe_add(_local5, _local10);
_local6 = safe_add(_local6, _local11);
_local7 = (_local7 + 16);
};
return ([_local3, _local4, _local5, _local6]);
}
public static function str2rstr_utf16le(_arg1:String):String{
var _local2:String;
var _local3:Number;
_local2 = "";
_local3 = 0;
while (_local3 < _arg1.length) {
_local2 = (_local2 + String.fromCharCode((_arg1.charCodeAt(_local3) & 0xFF), ((_arg1.charCodeAt(_local3) >>> 8) & 0xFF)));
_local3++;
};
return (_local2);
}
public static function hex_hmac_md5(_arg1:String, _arg2:String):String{
return (rstr2hex(rstr_hmac_md5(str2rstr_utf8(_arg1), str2rstr_utf8(_arg2))));
}
public static function binl2rstr(_arg1:Array):String{
var _local2:String;
var _local3:Number;
_local2 = "";
_local3 = 0;
while (_local3 < (_arg1.length * 32)) {
_local2 = (_local2 + String.fromCharCode(((_arg1[(_local3 >> 5)] >>> (_local3 % 32)) & 0xFF)));
_local3 = (_local3 + 8);
};
return (_local2);
}
public static function md5_ff(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number):Number{
return (md5_cmn(((_arg2 & _arg3) | (~(_arg2) & _arg4)), _arg1, _arg2, _arg5, _arg6, _arg7));
}
public static function md5_ii(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number):Number{
return (md5_cmn((_arg3 ^ (_arg2 | ~(_arg4))), _arg1, _arg2, _arg5, _arg6, _arg7));
}
public static function rstr2binl(_arg1:String):Array{
var _local2:Number;
var _local3:Array;
_local2 = 0;
_local3 = new Array((_arg1.length >> 2));
_local2 = 0;
while (_local2 < _local3.length) {
_local3[_local2] = 0;
_local2++;
};
_local2 = 0;
while (_local2 < (_arg1.length * 8)) {
_local3[(_local2 >> 5)] = (_local3[(_local2 >> 5)] | ((_arg1.charCodeAt((_local2 / 8)) & 0xFF) << (_local2 % 32)));
_local2 = (_local2 + 8);
};
return (_local3);
}
public static function md5_vm_test():Boolean{
return ((hex_md5("abc") == "900150983cd24fb0d6963f7d28e17f72"));
}
public static function b64_md5(_arg1:String):String{
return (rstr2b64(rstr_md5(str2rstr_utf8(_arg1))));
}
public static function any_hmac_md5(_arg1:String, _arg2:String, _arg3:String):String{
return (rstr2any(rstr_hmac_md5(str2rstr_utf8(_arg1), str2rstr_utf8(_arg2)), _arg3));
}
public static function hex_md5(_arg1:String):String{
return (rstr2hex(rstr_md5(str2rstr_utf8(_arg1))));
}
public static function bit_rol(_arg1:Number, _arg2:Number):Number{
return (((_arg1 << _arg2) | (_arg1 >>> (32 - _arg2))));
}
public static function encrypt(_arg1:String):String{
return (hex_md5(_arg1));
}
public static function md5_hh(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number):Number{
return (md5_cmn(((_arg2 ^ _arg3) ^ _arg4), _arg1, _arg2, _arg5, _arg6, _arg7));
}
public static function rstr2hex(_arg1:String):String{
var _local2:String;
var _local3:String;
var _local4:Number;
var _local5:Number;
_local2 = (hexcase) ? "0123456789ABCDEF" : "0123456789abcdef";
_local3 = "";
_local5 = 0;
while (_local5 < _arg1.length) {
_local4 = _arg1.charCodeAt(_local5);
_local3 = (_local3 + (_local2.charAt(((_local4 >>> 4) & 15)) + _local2.charAt((_local4 & 15))));
_local5++;
};
return (_local3);
}
public static function any_md5(_arg1:String, _arg2:String):String{
return (rstr2any(rstr_md5(str2rstr_utf8(_arg1)), _arg2));
}
public static function b64_hmac_md5(_arg1:String, _arg2:String):String{
return (rstr2b64(rstr_hmac_md5(str2rstr_utf8(_arg1), str2rstr_utf8(_arg2))));
}
public static function rstr2b64(_arg1:String):String{
var _local2:String;
var _local3:String;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
_local2 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
_local3 = "";
_local4 = _arg1.length;
_local5 = 0;
while (_local5 < _local4) {
_local6 = (((_arg1.charCodeAt(_local5) << 16) | (((_local5 + 1) < _local4)) ? (_arg1.charCodeAt((_local5 + 1)) << 8) : 0) | (((_local5 + 2) < _local4)) ? _arg1.charCodeAt((_local5 + 2)) : 0);
_local7 = 0;
while (_local7 < 4) {
if (((_local5 * 8) + (_local7 * 6)) > (_arg1.length * 8)){
_local3 = (_local3 + b64pad);
} else {
_local3 = (_local3 + _local2.charAt(((_local6 >>> (6 * (3 - _local7))) & 63)));
};
_local7++;
};
_local5 = (_local5 + 3);
};
return (_local3);
}
public static function safe_add(_arg1:Number, _arg2:Number):Number{
var _local3:Number;
var _local4:Number;
_local3 = ((_arg1 & 0xFFFF) + (_arg2 & 0xFFFF));
_local4 = (((_arg1 >> 16) + (_arg2 >> 16)) + (_local3 >> 16));
return (((_local4 << 16) | (_local3 & 0xFFFF)));
}
public static function str2rstr_utf8(_arg1:String):String{
var _local2:String;
var _local3:Number;
var _local4:Number;
var _local5:Number;
_local2 = "";
_local3 = -1;
while (++_local3 < _arg1.length) {
_local4 = _arg1.charCodeAt(_local3);
_local5 = (((_local3 + 1) < _arg1.length)) ? _arg1.charCodeAt((_local3 + 1)) : 0;
if ((((((((0xD800 <= _local4)) && ((_local4 <= 56319)))) && ((0xDC00 <= _local5)))) && ((_local5 <= 57343)))){
_local4 = ((65536 + ((_local4 & 1023) << 10)) + (_local5 & 1023));
_local3++;
};
if (_local4 <= 127){
_local2 = (_local2 + String.fromCharCode(_local4));
} else {
if (_local4 <= 2047){
_local2 = (_local2 + String.fromCharCode((192 | ((_local4 >>> 6) & 31)), (128 | (_local4 & 63))));
} else {
if (_local4 <= 0xFFFF){
_local2 = (_local2 + String.fromCharCode((224 | ((_local4 >>> 12) & 15)), (128 | ((_local4 >>> 6) & 63)), (128 | (_local4 & 63))));
} else {
if (_local4 <= 2097151){
_local2 = (_local2 + String.fromCharCode((240 | ((_local4 >>> 18) & 7)), (128 | ((_local4 >>> 12) & 63)), (128 | ((_local4 >>> 6) & 63)), (128 | (_local4 & 63))));
};
};
};
};
};
return (_local2);
}
public static function rstr_hmac_md5(_arg1:String, _arg2:String):String{
var _local3:Array;
var _local4:Array;
var _local5:Array;
var _local6:Number;
var _local7:Array;
_local3 = rstr2binl(_arg1);
if (_local3.length > 16){
_local3 = binl_md5(_local3, (_arg1.length * 8));
};
_local4 = new Array(16);
_local5 = new Array(16);
_local6 = 0;
while (_local6 < 16) {
_local4[_local6] = (_local3[_local6] ^ 909522486);
_local5[_local6] = (_local3[_local6] ^ 1549556828);
_local6++;
};
_local7 = binl_md5(_local4.concat(rstr2binl(_arg2)), (0x0200 + (_arg2.length * 8)));
return (binl2rstr(binl_md5(_local5.concat(_local7), (0x0200 + 128))));
}
public static function str2rstr_utf16be(_arg1:String):String{
var _local2:String;
var _local3:Number;
_local2 = "";
_local3 = 0;
while (_local3 < _arg1.length) {
_local2 = (_local2 + String.fromCharCode(((_arg1.charCodeAt(_local3) >>> 8) & 0xFF), (_arg1.charCodeAt(_local3) & 0xFF)));
_local3++;
};
return (_local2);
}
public static function rstr2any(_arg1:String, _arg2:String):String{
var _local3:Number;
var _local4:Array;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Array;
var _local9:Array;
var _local10:String;
_local3 = _arg2.length;
_local4 = [];
_local9 = ((_arg1.length / 2) as Array);
_local5 = 0;
while (_local5 < _local9.length) {
_local9[_local5] = ((_arg1.charCodeAt((_local5 * 2)) << 8) | _arg1.charCodeAt(((_local5 * 2) + 1)));
_local5++;
};
while (_local9.length > 0) {
_local8 = [];
_local7 = 0;
_local5 = 0;
while (_local5 < _local9.length) {
_local7 = ((_local7 << 16) + _local9[_local5]);
_local6 = Math.floor((_local7 / _local3));
_local7 = (_local7 - (_local6 * _local3));
if ((((_local8.length > 0)) || ((_local6 > 0)))){
_local8[_local8.length] = _local6;
};
_local5++;
};
_local4[_local4.length] = _local7;
_local9 = _local8;
};
_local10 = "";
_local5 = (_local4.length - 1);
while (_local5 >= 0) {
_local10 = (_local10 + _arg2.charAt(_local4[_local5]));
_local5--;
};
return (_local10);
}
public static function rstr_md5(_arg1:String):String{
return (binl2rstr(binl_md5(rstr2binl(_arg1), (_arg1.length * 8))));
}
}
}//package com.midasplayer.extras
Section 11
//BrowseSharedDataEvent (com.midasplayer.BrowseSharedDataEvent)
package com.midasplayer {
import flash.events.*;
import flash.net.*;
import com.adobe.serialization.json.*;
public class BrowseSharedDataEvent extends Event {
public var sharedData:Array;
public function BrowseSharedDataEvent(_arg1:Event){
var eventType:String;
var servletLoader:URLLoader;
var tmpSharedData:Array;
var obj:Object;
var event = _arg1;
sharedData = new Array();
eventType = FunflowAPI.BROWSE_SHARED_DATA_EVENT;
try {
servletLoader = URLLoader(event.target);
tmpSharedData = JSON.decode(servletLoader.data);
for each (obj in tmpSharedData) {
try {
sharedData.push(new SharedData(obj));
} catch(e:Error) {
trace(((("Failed to parse shared data object " + servletLoader.data) + ", ") + e.message));
};
};
} catch(e:Error) {
trace(((("Failed to parse shared data " + servletLoader.data) + ", ") + e.message));
eventType = FunflowAPI.BROWSE_SHARED_DATA_FAILED_EVENT;
};
super(eventType);
}
}
}//package com.midasplayer
Section 12
//FunflowAPI (com.midasplayer.FunflowAPI)
package com.midasplayer {
import flash.events.*;
import flash.display.*;
import flash.net.*;
import com.adobe.serialization.json.*;
import com.midasplayer.extras.*;
import flash.system.*;
import flash.external.*;
public class FunflowAPI {
private static const shareURL:String = "http://facebook.king.com/facebook/kinggames/games/share.jsp";
private static const LINK_TYPE_SOLUTIONS:String = "solutions";
private static const gameURL:String = "http://apps.facebook.com/funflow/game.jsp";
private static const LINK_TYPE_HIGHSCORES:String = "highscores";
public static const SHARED_DATA_SAVED_EVENT:String = "sharedDataSaved";
public static const BROWSE_SHARED_DATA_FAILED_EVENT:String = "browseSharedDataFailed";
public static const INITIALIZED_EVENT:String = "initialized";
public static const GET_NUM_SHARED_OBJECTS_EVENT:String = "getNumSharedObjects";
public static const SHARED_DATA_SAVE_FAILED_EVENT:String = "sharedDataSaveFailed";
public static const GOLD_PAYMENT_EVENT:String = "goldPayment";
public static const BROWSE_SHARED_DATA_EVENT:String = "browseSharedData";
public static const HOST_BANNED_EVENT:String = "hostBanned";
public static const GAME_SAVE_FAILED_EVENT:String = "gameSaveFailed";
public static const PAYMENT_DONE_EVENT:String = "paymentDone";
private static const LINK_TYPE_RIGHT_CLICK:String = "rightclick";
public static const GET_NUM_SHARED_OBJECTS_FAILED_EVENT:String = "getNumSharedObjectsFailed";
private static const LINK_TYPE_SIGN:String = "sign";
private static const inviteURL:String = "http://apps.facebook.com/funflow/invite.jsp";
public static const VOTE_SHARED_DATA_EVENT:String = "voteSharedData";
private static const LINK_TYPE_OTHER_GAMES:String = "other_games";
private static const SAK:String = "ggfd7sday923mdsfd8csfds34";
private static const LINK_TYPE_LOADER_MOVIE:String = "loader_movie";
private static const bounceURL:String = "http://www.mygame.com/king/bounce.jsp";
private static const LINK_TYPE_PROTECT:String = "protect";
public static const GAME_SAVED_EVENT:String = "gameSaved";
private static const LINK_TYPE_ADD_GAME:String = "add_game";
public static const GET_USER_VOTE_EVENT:String = "getUserVote";
public static const VOTE_SHARED_DATA_FAILED_EVENT:String = "voteSharedDataFailed";
private static const loadCountURL:String = "http://www.mygame.com/king/loadcount.jsp";
private static const LINK_TYPE_LOADER_PROGRESS:String = "loader_progress";
private static const sharerURL:String = "http://www.facebook.com/sharer.php";
public static var banned:Boolean = false;
public static var isHome:Boolean = false;
private static var sessionID:String;
public static var userAccessToken:String;
public static var fromURL:String;
public static var friends:Array = null;
public static var gameName:String;
public static var userRegistered:Boolean = false;
protected static var dispatcher:EventDispatcher = new EventDispatcher();
public static var sharedData:SharedData = null;
public static var openSame:Boolean = false;
public static var kingGameServlet:String = "http://facebook.king.com/servlet/kingGameServlet";
public static var currentUser:FunflowUser = null;
private static var SSK:String = "ng43ui54hy35tdsnd6f54rews";
public static function openAddToWebsiteLink():void{
openFunflowPage(LINK_TYPE_ADD_GAME, "website_content.jsp");
}
private static function openShareScorePage(_arg1:int):void{
var _local2:URLVariables;
_local2 = new URLVariables();
_local2.score = _arg1;
_local2.game = gameName;
navigateToURL(new URLRequest(((sharerURL + "?u=") + escape(((shareURL + "?") + _local2.toString())))), "_blank");
}
public static function startCreditsPayment(_arg1:String, _arg2:String=null):void{
var productShortName = _arg1;
var parameter = _arg2;
try {
if (isHome){
if (parameter != null){
ExternalInterface.call("startCreditsPayment", productShortName, parameter);
} else {
ExternalInterface.call("startCreditsPayment", productShortName);
};
};
} catch(e:Error) {
trace(e);
};
}
public static function saveGame(_arg1:Object):void{
var servletLoader:URLLoader;
var reqvars:URLVariables;
var request:URLRequest;
var data = _arg1;
if (currentUser == null){
trace("Save game failed, no facebook user");
dispatcher.dispatchEvent(new Event(GAME_SAVE_FAILED_EVENT));
return;
};
servletLoader = new URLLoader();
reqvars = new URLVariables();
reqvars.action = "saveGameState";
reqvars.data = FunflowSerializer.amfEncode(data);
reqvars.game = gameName;
reqvars.accessToken = userAccessToken;
reqvars.fbId = currentUser.fbId;
reqvars.sessionKey = currentUser.sessionKey;
request = new URLRequest(kingGameServlet);
request.method = URLRequestMethod.POST;
request.data = reqvars;
servletLoader.addEventListener(Event.COMPLETE, gameSavedHandler);
servletLoader.addEventListener(IOErrorEvent.IO_ERROR, gameSaveFailedHandler);
servletLoader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, gameSaveFailedHandler);
try {
servletLoader.load(request);
} catch(error:Error) {
trace(("Unable to load save game url: " + kingGameServlet));
trace(error.message);
dispatcher.dispatchEvent(new Event(GAME_SAVE_FAILED_EVENT));
};
}
public static function openSolutionsLink():void{
if (isHome){
ExternalInterface.call("loadSolutionsSwf");
} else {
openFunflowPage(LINK_TYPE_SOLUTIONS);
};
}
private static function sharedDataSavedHandler(_arg1:Event):void{
var servletLoader:URLLoader;
var vars:URLVariables;
var gameReqvars:URLVariables;
var evt:Event;
var event = _arg1;
try {
servletLoader = URLLoader(event.target);
trace(("loadCounter.data :" + servletLoader.data));
if (servletLoader.data == "nok"){
dispatcher.dispatchEvent(new Event(SHARED_DATA_SAVE_FAILED_EVENT));
} else {
vars = new URLVariables(servletLoader.data);
gameReqvars = new URLVariables();
gameReqvars.game = gameName;
gameReqvars.ref = gameName;
gameReqvars.sdid = vars.sharedDataId;
evt = new SharedDataSavedEvent(vars.sharedDataId, ((gameURL + "?") + gameReqvars.toString()));
dispatcher.dispatchEvent(evt);
};
} catch(e:Error) {
trace(("Error reading data from servletLoader url: " + e));
dispatcher.dispatchEvent(new Event(SHARED_DATA_SAVE_FAILED_EVENT));
};
}
public static function openOfflineProtectionLink():void{
openFunflowPage(LINK_TYPE_PROTECT);
}
public static function openOtherGamesLink():void{
openFunflowPage(LINK_TYPE_OTHER_GAMES);
}
public static function init(_arg1:String, _arg2:LoaderInfo):void{
var loadCounter:URLLoader;
var reqvars:URLVariables;
var request:URLRequest;
var userProductsString:String;
var tmpFriends:Array;
var friend:Object;
var so:SharedObject;
var rnd1:Number;
var rnd2:Number;
var name = _arg1;
var loaderInfo = _arg2;
gameName = name;
fromURL = loaderInfo.url;
if (loaderInfo.parameters.hasOwnProperty("user_access_token")){
userAccessToken = loaderInfo.parameters.user_access_token;
};
if (loaderInfo.parameters.hasOwnProperty("user_registered")){
userRegistered = true;
currentUser = new FunflowUser();
currentUser.fbId = loaderInfo.parameters.user_fbId;
currentUser.name = loaderInfo.parameters.user_name;
currentUser.firstName = loaderInfo.parameters.user_firstName;
currentUser.picture = loaderInfo.parameters.user_picture;
currentUser.score = loaderInfo.parameters.user_score;
currentUser.level = loaderInfo.parameters.user_level;
currentUser.diplomaLevel = loaderInfo.parameters.user_diplomaLevel;
currentUser.gold = loaderInfo.parameters.user_gold;
currentUser.sessionKey = md5.encrypt(((currentUser.fbId + ":") + SSK));
if (loaderInfo.parameters.hasOwnProperty("user_game_state")){
try {
currentUser.gameState = FunflowSerializer.amfDecode(loaderInfo.parameters.user_game_state);
} catch(e:Error) {
trace(("Unable to deserialize gameState: " + e.message));
};
};
if (loaderInfo.parameters.hasOwnProperty("user_products")){
try {
userProductsString = loaderInfo.parameters.user_products;
currentUser.products = userProductsString.split(",");
} catch(e:Error) {
trace(("Unable to deserialize products: " + e.message));
};
};
};
if (loaderInfo.parameters.hasOwnProperty("user_friends")){
try {
tmpFriends = JSON.decode(loaderInfo.parameters.user_friends);
if (tmpFriends.length > 0){
friends = new Array();
for each (friend in tmpFriends) {
friends.push(new FunflowUser(friend));
};
};
} catch(e:Error) {
trace(((("Unable to deserialize friendlist: " + loaderInfo.parameters.friends) + ", ") + e.message));
};
};
if (loaderInfo.parameters.hasOwnProperty("shared_data")){
try {
sharedData = new SharedData(JSON.decode(loaderInfo.parameters.shared_data));
} catch(e:Error) {
trace(("Unable to deserialize shared data: " + e.message));
};
};
try {
Security.allowDomain("*");
ExternalInterface.addCallback("paymentDone", paymentDone);
} catch(e:Error) {
};
loadCounter = new URLLoader();
reqvars = new URLVariables();
reqvars.game = gameName;
reqvars.from = fromURL;
try {
so = SharedObject.getLocal("sessionId");
if (so.data.sessionID == null){
rnd1 = Math.abs(Math.floor((Math.random() * 4294967295)));
rnd2 = Math.abs(Math.floor((Math.random() * 4294967295)));
so.data.sessionID = (rnd1.toString(16) + rnd2.toString(16));
so.flush();
};
sessionID = so.data.sessionID;
} catch(e:Error) {
sessionID = "error";
};
reqvars.session = sessionID;
request = new URLRequest(loadCountURL);
request.data = reqvars;
loadCounter.addEventListener(Event.COMPLETE, loadCountHandler);
loadCounter.addEventListener(IOErrorEvent.IO_ERROR, loadUrlErrorHandler);
loadCounter.addEventListener(SecurityErrorEvent.SECURITY_ERROR, loadUrlErrorHandler);
try {
loadCounter.load(request);
} catch(error:Error) {
trace(("Unable to load loadcount url: " + loadCountURL));
trace(error.message);
dispatcher.dispatchEvent(new Event(INITIALIZED_EVENT));
};
}
public static function openInviteDialog(_arg1:Object=null, _arg2:String=null):void{
var parameters:URLVariables;
var flashVars = _arg1;
var customMessage = _arg2;
try {
parameters = FunflowSerializer.objectToFlashURLVariables(flashVars);
if (customMessage != null){
parameters.customMessage = customMessage;
};
if (isHome){
ExternalInterface.call("openInviteDialog", unescape(parameters.toString()));
} else {
parameters.game = gameName;
navigateToURL(new URLRequest(((inviteURL + "?") + parameters.toString())), "_blank");
};
} catch(e:Error) {
trace(e);
};
}
public static function saveSharedData(_arg1:Object):void{
var servletLoader:URLLoader;
var reqvars:URLVariables;
var request:URLRequest;
var data = _arg1;
servletLoader = new URLLoader();
reqvars = new URLVariables();
reqvars.action = "saveSharedData";
reqvars.data = FunflowSerializer.amfEncode(data);
reqvars.game = gameName;
if (currentUser != null){
reqvars.uid = currentUser.fbId;
};
request = new URLRequest(kingGameServlet);
request.method = URLRequestMethod.POST;
request.data = reqvars;
servletLoader.addEventListener(Event.COMPLETE, sharedDataSavedHandler);
servletLoader.addEventListener(IOErrorEvent.IO_ERROR, saveSharedDataFailedHandler);
servletLoader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, saveSharedDataFailedHandler);
try {
servletLoader.load(request);
} catch(error:Error) {
trace(("Unable to load save game url: " + kingGameServlet));
trace(error.message);
dispatcher.dispatchEvent(new Event(SHARED_DATA_SAVED_EVENT));
};
}
private static function browseSharedDataHandler(_arg1:Event):void{
var servletLoader:URLLoader;
var event = _arg1;
try {
servletLoader = URLLoader(event.target);
if (servletLoader.data == "nok"){
dispatcher.dispatchEvent(new Event(SHARED_DATA_SAVE_FAILED_EVENT));
} else {
dispatcher.dispatchEvent(new BrowseSharedDataEvent(event));
};
} catch(e:Error) {
trace(("Error reading data from servletLoader url: " + e));
dispatcher.dispatchEvent(new Event(BROWSE_SHARED_DATA_FAILED_EVENT));
};
}
public static function voteSharedData(_arg1:uint, _arg2:String):void{
var servletLoader:URLLoader;
var reqvars:URLVariables;
var request:URLRequest;
var score = _arg1;
var id = _arg2;
if (currentUser == null){
dispatcher.dispatchEvent(new VoteSharedDataFailedEvent(VoteSharedDataFailedEvent.ERROR_NOT_LOGGED_IN));
return;
};
servletLoader = new URLLoader();
reqvars = new URLVariables();
reqvars.action = "voteSharedData";
reqvars.game = gameName;
reqvars.sdid = id;
reqvars.score = score;
reqvars.accessToken = userAccessToken;
reqvars.fbId = currentUser.fbId;
reqvars.sessionKey = currentUser.sessionKey;
request = new URLRequest(kingGameServlet);
request.method = URLRequestMethod.POST;
request.data = reqvars;
servletLoader.addEventListener(Event.COMPLETE, voteSharedDataHandler);
servletLoader.addEventListener(IOErrorEvent.IO_ERROR, voteSharedDataFailedHandler);
servletLoader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, voteSharedDataFailedHandler);
try {
servletLoader.load(request);
} catch(error:Error) {
trace(("Unable to load vote shared data url: " + kingGameServlet));
trace(error.message);
dispatcher.dispatchEvent(new VoteSharedDataFailedEvent(VoteSharedDataFailedEvent.ERROR_SERVER));
};
}
private static function loadCountHandler(_arg1:Event):void{
var loadCounter:URLLoader;
var vars:URLVariables;
var event = _arg1;
try {
loadCounter = URLLoader(event.target);
trace(("loadCounter.data :" + loadCounter.data));
vars = new URLVariables(loadCounter.data);
if (vars.h == "true"){
isHome = true;
};
if (vars.o == "true"){
openSame = true;
};
if (vars.b == "true"){
banned = true;
dispatcher.dispatchEvent(new Event(HOST_BANNED_EVENT));
} else {
dispatcher.dispatchEvent(new Event(INITIALIZED_EVENT));
};
} catch(e:Error) {
trace(("Error reading data from loadcount url: " + e));
dispatcher.dispatchEvent(new Event(INITIALIZED_EVENT));
};
}
public static function addEventListener(_arg1:String, _arg2:Function):void{
if (dispatcher == null){
dispatcher = new EventDispatcher();
};
dispatcher.addEventListener(_arg1, _arg2);
}
public static function removeEventListener(_arg1:String, _arg2:Function):void{
if (dispatcher == null){
return;
};
dispatcher.removeEventListener(_arg1, _arg2);
}
public static function submitLevel(_arg1:int):void{
var hash:String;
var level = _arg1;
hash = md5.encrypt(((((level + ":") + gameName) + ":") + SSK));
try {
if (isHome){
ExternalInterface.call("submitLevel", level, hash);
if (((!((currentUser == null))) && ((level > currentUser.level)))){
currentUser.level = level;
};
};
} catch(e:Error) {
trace(e);
};
}
private static function getNumSharedDataObjectsFailedHandler(_arg1:Event):void{
trace(("Unable to get number of shared objects: " + _arg1));
dispatcher.dispatchEvent(new Event(GET_NUM_SHARED_OBJECTS_FAILED_EVENT));
}
public static function openGetMoreGoldPage():void{
try {
if (isHome){
ExternalInterface.call("getMoreGold");
};
} catch(e:Error) {
trace(e);
};
}
public static function submitScore(_arg1:int):void{
var hash:String;
var score = _arg1;
hash = md5.encrypt(((((score + ":") + gameName) + ":") + SSK));
try {
if (isHome){
ExternalInterface.call("submitScore", score, hash);
if (currentUser != null){
if (score > currentUser.weeklyScore){
currentUser.weeklyScore = score;
if (score > currentUser.score){
currentUser.score = score;
};
};
};
} else {
openShareScorePage(score);
};
} catch(e:Error) {
trace(e);
};
}
public static function openLoaderProgressLink():void{
if (!isHome){
openFunflowPage(LINK_TYPE_LOADER_PROGRESS);
};
}
private static function goldPaymentFailedHandler(_arg1:Event):void{
trace(("Gold payment failed: " + _arg1));
dispatcher.dispatchEvent(new GoldPaymentEvent());
}
private static function loadUrlErrorHandler(_arg1:Event):void{
trace(("Unable to load url: " + _arg1));
dispatcher.dispatchEvent(new Event(INITIALIZED_EVENT));
}
private static function getUserVoteFailedHandler(_arg1:Event):void{
trace(("Unable to vote for shared data: " + _arg1));
dispatcher.dispatchEvent(new GetUserVoteEvent(0));
}
public static function goldPayment(_arg1:String, _arg2:String=null):void{
var servletLoader:URLLoader;
var reqvars:URLVariables;
var request:URLRequest;
var goldPaymentEvent:GoldPaymentEvent;
var productShortName = _arg1;
var parameter = _arg2;
if (currentUser == null){
trace("Gold payment failed, no facebook user");
goldPaymentEvent = new GoldPaymentEvent();
goldPaymentEvent.setErrorCode(GoldPaymentEvent.ERROR_NOT_LOGGED_IN);
dispatcher.dispatchEvent(goldPaymentEvent);
return;
};
servletLoader = new URLLoader();
reqvars = new URLVariables();
reqvars.action = "goldPayment";
reqvars.accessToken = userAccessToken;
reqvars.fbId = currentUser.fbId;
reqvars.sessionKey = currentUser.sessionKey;
reqvars.product = productShortName;
if (parameter != null){
reqvars.parameter = parameter;
};
request = new URLRequest(kingGameServlet);
request.method = URLRequestMethod.POST;
request.data = reqvars;
servletLoader.addEventListener(Event.COMPLETE, goldPaymentHandler);
servletLoader.addEventListener(IOErrorEvent.IO_ERROR, goldPaymentFailedHandler);
servletLoader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, goldPaymentFailedHandler);
try {
servletLoader.load(request);
} catch(error:Error) {
trace(("Unable to load gold payment url: " + kingGameServlet));
trace(error.message);
dispatcher.dispatchEvent(new GoldPaymentEvent());
};
}
private static function getNumSharedDataObjectsHandler(_arg1:Event):void{
var servletLoader:URLLoader;
var vars:URLVariables;
var evt:Event;
var event = _arg1;
try {
servletLoader = URLLoader(event.target);
if (servletLoader.data == "nok"){
dispatcher.dispatchEvent(new Event(GET_NUM_SHARED_OBJECTS_FAILED_EVENT));
} else {
vars = new URLVariables(servletLoader.data);
evt = new GetNumSharedObjectsEvent(parseInt(vars.numObjects), parseInt(vars.numFeaturedObjects), parseInt(vars.numCreatorObjects));
dispatcher.dispatchEvent(evt);
};
} catch(e:Error) {
trace(("Error reading data for GetNumSharedObjectsEvent: " + e));
dispatcher.dispatchEvent(new Event(GET_NUM_SHARED_OBJECTS_FAILED_EVENT));
};
}
private static function saveSharedDataFailedHandler(_arg1:Event):void{
trace(("Unable to save game: " + _arg1));
dispatcher.dispatchEvent(new Event(SHARED_DATA_SAVE_FAILED_EVENT));
}
private static function voteSharedDataFailedHandler(_arg1:Event):void{
trace(("Unable to vote for shared data: " + _arg1));
dispatcher.dispatchEvent(new VoteSharedDataFailedEvent(VoteSharedDataFailedEvent.ERROR_SERVER));
}
private static function paymentDone(_arg1:String):void{
if (currentUser.products == null){
currentUser.products = new Array();
};
currentUser.products.push(_arg1);
dispatcher.dispatchEvent(new PaymentDoneEvent(_arg1));
}
public static function funflowEventPost(_arg1:String, _arg2:int=1):void{
var eventText = _arg1;
var priority = _arg2;
try {
if (isHome){
ExternalInterface.call("customGameEventPost", eventText, priority);
};
} catch(e:Error) {
trace(e);
};
}
public static function facebookStreamPost(_arg1:String, _arg2:String, _arg3:Object=null):void{
var parameters:URLVariables;
var description = _arg1;
var type = _arg2;
var flashVars = _arg3;
try {
parameters = FunflowSerializer.objectToFlashURLVariables(flashVars);
if (isHome){
ExternalInterface.call("customGameStreamPost", description, type, parameters.toString());
} else {
openSharePage(description, flashVars, type);
};
} catch(e:Error) {
trace(e);
};
}
public static function openFunflowPage(_arg1:String, _arg2:String=null):void{
var _local3:URLVariables;
var _local4:String;
_local3 = new URLVariables();
_local3.game = gameName;
_local3.from = fromURL;
_local3.type = _arg1;
_local3.session = sessionID;
if (_arg2 != null){
_local3.redirect = _arg2;
};
_local4 = "_blank";
if (((isHome) && (openSame))){
_local4 = "_top";
};
navigateToURL(new URLRequest(((bounceURL + "?") + _local3.toString())), _local4);
}
public static function getFunflowGamePage(_arg1:Object=null):String{
var _local2:URLVariables;
_local2 = FunflowSerializer.objectToFlashURLVariables(_arg1);
_local2.game = gameName;
_local2.ref = gameName;
return (((gameURL + "?") + _local2.toString()));
}
public static function openSignLink():void{
if (!isHome){
openFunflowPage(LINK_TYPE_SIGN);
};
}
public static function getUserVote(_arg1:String):void{
var servletLoader:URLLoader;
var reqvars:URLVariables;
var request:URLRequest;
var sharedDataId = _arg1;
if (currentUser == null){
dispatcher.dispatchEvent(new GetUserVoteEvent(0));
return;
};
servletLoader = new URLLoader();
reqvars = new URLVariables();
reqvars.action = "getUserVote";
reqvars.sharedDataId = sharedDataId;
reqvars.accessToken = userAccessToken;
reqvars.fbId = currentUser.fbId;
reqvars.sessionKey = currentUser.sessionKey;
request = new URLRequest(kingGameServlet);
request.method = URLRequestMethod.POST;
request.data = reqvars;
servletLoader.addEventListener(Event.COMPLETE, getUserVoteHandler);
servletLoader.addEventListener(IOErrorEvent.IO_ERROR, getUserVoteFailedHandler);
servletLoader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, getUserVoteFailedHandler);
try {
servletLoader.load(request);
} catch(error:Error) {
trace(("Unable to get user vote: " + kingGameServlet));
trace(error.message);
dispatcher.dispatchEvent(new GetUserVoteEvent(0));
};
}
public static function openHighscoresLink():void{
if (!isHome){
openFunflowPage(LINK_TYPE_HIGHSCORES, (("game/" + gameName) + "/highscores"));
};
}
private static function voteSharedDataHandler(_arg1:Event):void{
var servletLoader:URLLoader;
var vars:URLVariables;
var evt:Event;
var event = _arg1;
try {
servletLoader = URLLoader(event.target);
vars = new URLVariables(servletLoader.data);
if (vars.error != undefined){
evt = new VoteSharedDataFailedEvent(parseInt(vars.error));
} else {
evt = new VoteSharedDataEvent(parseFloat(vars.newScore));
};
dispatcher.dispatchEvent(evt);
} catch(e:Error) {
trace(("Error reading data for Vote Shared Data: " + e));
dispatcher.dispatchEvent(new VoteSharedDataFailedEvent(VoteSharedDataFailedEvent.ERROR_SERVER));
};
}
public static function openLoaderMovieLink():void{
if (!isHome){
openFunflowPage(LINK_TYPE_LOADER_MOVIE);
};
}
public static function browseSharedData(_arg1:int=0, _arg2:int=10, _arg3:Boolean=false, _arg4:Boolean=false, _arg5:String=null):void{
var servletLoader:URLLoader;
var reqvars:URLVariables;
var request:URLRequest;
var index = _arg1;
var limit = _arg2;
var orderByScore = _arg3;
var featured = _arg4;
var creatorFbid = _arg5;
servletLoader = new URLLoader();
reqvars = new URLVariables();
reqvars.action = "browseSharedData";
reqvars.game = gameName;
reqvars.index = index;
reqvars.limit = limit;
reqvars.orderByScore = orderByScore;
if (featured){
reqvars.getFeatured = "1";
};
if (creatorFbid != null){
reqvars.creatorId = creatorFbid;
};
request = new URLRequest(kingGameServlet);
request.method = URLRequestMethod.POST;
request.data = reqvars;
servletLoader.addEventListener(Event.COMPLETE, browseSharedDataHandler);
servletLoader.addEventListener(IOErrorEvent.IO_ERROR, browseSharedDataFailedHandler);
servletLoader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, browseSharedDataFailedHandler);
try {
servletLoader.load(request);
} catch(error:Error) {
trace(("Unable to load browse shared data url: " + kingGameServlet));
trace(error.message);
dispatcher.dispatchEvent(new Event(BROWSE_SHARED_DATA_FAILED_EVENT));
};
}
public static function openRightClickLink():void{
openFunflowPage(LINK_TYPE_RIGHT_CLICK);
}
public static function openSharePage(_arg1:String, _arg2:Object=null, _arg3:String=null):void{
var _local4:URLVariables;
_local4 = FunflowSerializer.objectToFlashURLVariables(_arg2);
_local4.description = _arg1;
_local4.game = gameName;
_local4.description = _arg1;
if (_arg3 != null){
_local4.type = _arg3;
};
navigateToURL(new URLRequest(((sharerURL + "?u=") + escape(((shareURL + "?") + _local4.toString())))), "_blank");
}
private static function gameSavedHandler(_arg1:Event):void{
var servletLoader:URLLoader;
var event = _arg1;
try {
servletLoader = URLLoader(event.target);
trace(("loadCounter.data :" + servletLoader.data));
if (servletLoader.data == "ok"){
dispatcher.dispatchEvent(new Event(GAME_SAVED_EVENT));
} else {
dispatcher.dispatchEvent(new Event(GAME_SAVE_FAILED_EVENT));
};
} catch(e:Error) {
trace(("Error reading data from servletLoader url: " + e));
dispatcher.dispatchEvent(new Event(GAME_SAVE_FAILED_EVENT));
};
}
private static function goldPaymentHandler(_arg1:Event):void{
var goldPaymentEvent:GoldPaymentEvent;
var event = _arg1;
try {
goldPaymentEvent = new GoldPaymentEvent(event);
if (isHome){
if (((goldPaymentEvent.success) || ((goldPaymentEvent.errorCode == GoldPaymentEvent.ERROR_NOT_ENOUGH_GOLD)))){
currentUser.gold = goldPaymentEvent.goldBalance;
ExternalInterface.call("updateGoldBalance", goldPaymentEvent.goldBalance);
};
};
dispatcher.dispatchEvent(goldPaymentEvent);
} catch(e:Error) {
trace(("Error reading data from servletLoader url: " + e));
dispatcher.dispatchEvent(new GoldPaymentEvent());
};
}
private static function browseSharedDataFailedHandler(_arg1:Event):void{
trace(("Unable to browse shared data: " + _arg1));
dispatcher.dispatchEvent(new Event(BROWSE_SHARED_DATA_FAILED_EVENT));
}
public static function getNumSharedDataObjects(_arg1:String=null):void{
var servletLoader:URLLoader;
var reqvars:URLVariables;
var request:URLRequest;
var creatorFbid = _arg1;
servletLoader = new URLLoader();
reqvars = new URLVariables();
reqvars.action = "getNumberOfSharedObjects";
reqvars.game = gameName;
if (creatorFbid != null){
reqvars.creatorId = creatorFbid;
};
request = new URLRequest(kingGameServlet);
request.method = URLRequestMethod.POST;
request.data = reqvars;
servletLoader.addEventListener(Event.COMPLETE, getNumSharedDataObjectsHandler);
servletLoader.addEventListener(IOErrorEvent.IO_ERROR, getNumSharedDataObjectsFailedHandler);
servletLoader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, getNumSharedDataObjectsFailedHandler);
try {
servletLoader.load(request);
} catch(error:Error) {
trace(("Unable to load browse shared data url: " + kingGameServlet));
trace(error.message);
dispatcher.dispatchEvent(new Event(BROWSE_SHARED_DATA_FAILED_EVENT));
};
}
public static function submitAchievement(_arg1:String):void{
var hash:String;
var achievement = _arg1;
hash = md5.encrypt(((((achievement + ":") + gameName) + ":") + SAK));
try {
if (isHome){
ExternalInterface.call("submitAchievement", achievement, hash);
};
} catch(e:Error) {
trace(e);
};
}
private static function gameSaveFailedHandler(_arg1:Event):void{
trace(("Unable to save game: " + _arg1));
dispatcher.dispatchEvent(new Event(GAME_SAVE_FAILED_EVENT));
}
private static function getUserVoteHandler(_arg1:Event):void{
var servletLoader:URLLoader;
var vars:URLVariables;
var event = _arg1;
try {
servletLoader = URLLoader(event.target);
vars = new URLVariables(servletLoader.data);
dispatcher.dispatchEvent(new GetUserVoteEvent(parseInt(vars.score)));
} catch(e:Error) {
trace(("Error reading data for Vote Shared Data: " + e));
dispatcher.dispatchEvent(new GetUserVoteEvent(0));
};
}
}
}//package com.midasplayer
Section 13
//FunflowLogo (com.midasplayer.FunflowLogo)
package com.midasplayer {
import flash.events.*;
import util.*;
public class FunflowLogo extends But {
override protected function handleClick(_arg1:MouseEvent):void{
super.handleClick(_arg1);
LinkManager.goToURL(LinkManager.FUNFLOW_LOGO);
}
}
}//package com.midasplayer
Section 14
//FunflowUser (com.midasplayer.FunflowUser)
package com.midasplayer {
import com.midasplayer.extras.*;
public class FunflowUser {
public var diplomaLevel:int;// = 0
public var picture:String;// = ""
public var name:String;// = ""
public var weeklyScore:Number;// = 0
public var score:Number;// = 0
public var level:int;// = 0
public var firstName:String;// = ""
public var gold:int;// = 0
public var sessionKey:String;// = ""
public var products:Array;// = null
public var fbId:String;// = ""
public var gameState:Object;// = null
public function FunflowUser(_arg1:Object=null){
var obj = _arg1;
fbId = "";
name = "";
firstName = "";
picture = "";
score = 0;
weeklyScore = 0;
level = 0;
diplomaLevel = 0;
gameState = null;
products = null;
gold = 0;
sessionKey = "";
super();
if (obj != null){
this.fbId = obj.fbId;
this.name = obj.name;
this.firstName = obj.firstName;
this.picture = obj.picture;
this.score = Number(obj.score);
this.weeklyScore = Number(obj.weeklyScore);
this.level = parseInt(obj.level);
this.diplomaLevel = parseInt(obj.diplomaLevel);
if (obj.hasOwnProperty("serializedGameState")){
try {
if (obj.serializedGameState != null){
this.gameState = FunflowSerializer.amfDecode(obj.serializedGameState);
};
} catch(e:Error) {
trace(("Unable to deserialize gameState: " + e.message));
};
};
};
}
}
}//package com.midasplayer
Section 15
//GetNumSharedObjectsEvent (com.midasplayer.GetNumSharedObjectsEvent)
package com.midasplayer {
import flash.events.*;
public class GetNumSharedObjectsEvent extends Event {
public var numCreatorObjects:int;
public var numObjects:int;
public var numFeaturedObjects:int;
public function GetNumSharedObjectsEvent(_arg1:int, _arg2:int, _arg3:int){
this.numObjects = _arg1;
this.numFeaturedObjects = _arg2;
this.numCreatorObjects = _arg3;
super(FunflowAPI.GET_NUM_SHARED_OBJECTS_EVENT, false, false);
}
}
}//package com.midasplayer
Section 16
//GetUserVoteEvent (com.midasplayer.GetUserVoteEvent)
package com.midasplayer {
import flash.events.*;
public class GetUserVoteEvent extends Event {
public var score:Number;// = 0
public var hasVoted:Boolean;// = false
public function GetUserVoteEvent(_arg1:int, _arg2:Boolean=false, _arg3:Boolean=false){
score = 0;
hasVoted = false;
this.score = _arg1;
if (_arg1 > 0){
hasVoted = true;
};
super(FunflowAPI.GET_USER_VOTE_EVENT, _arg2, _arg3);
}
}
}//package com.midasplayer
Section 17
//GoldPaymentEvent (com.midasplayer.GoldPaymentEvent)
package com.midasplayer {
import flash.events.*;
import flash.net.*;
import com.adobe.serialization.json.*;
public class GoldPaymentEvent extends Event {
public var success:Boolean;
public var errorCode:int;
public var productName:String;
public var goldBalance:int;
public var errorMessage:String;
public static var ERROR_MESSAGES:Array = ["", "An error has occured, please try again later.", "You don't have enough gold.", "You are not logged in to funflow."];
public static var ERROR_SERVER:int = 1;
public static var ERROR_NOT_ENOUGH_GOLD:int = 2;
public static var ERROR_NOT_LOGGED_IN:int = 3;
public function GoldPaymentEvent(_arg1:Event=null){
var servletLoader:URLLoader;
var result:Object;
var event = _arg1;
try {
if (event != null){
servletLoader = URLLoader(event.target);
result = JSON.decode(servletLoader.data);
this.success = result.success;
this.goldBalance = result.goldBalance;
this.errorCode = result.errorCode;
this.errorMessage = result.errorMessage;
this.productName = result.product;
} else {
this.success = false;
setErrorCode(ERROR_SERVER);
};
} catch(e:Error) {
trace(((("Failed to parse json response: " + servletLoader.data) + ", ") + e.message));
this.success = false;
setErrorCode(ERROR_SERVER);
};
super(FunflowAPI.GOLD_PAYMENT_EVENT);
}
public function setErrorCode(_arg1:int):void{
this.errorCode = _arg1;
this.errorMessage = ERROR_MESSAGES[_arg1];
}
}
}//package com.midasplayer
Section 18
//PaymentDoneEvent (com.midasplayer.PaymentDoneEvent)
package com.midasplayer {
import flash.events.*;
public class PaymentDoneEvent extends Event {
public var productName:String;
public function PaymentDoneEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false){
this.productName = _arg1;
super(FunflowAPI.PAYMENT_DONE_EVENT, _arg2, _arg3);
}
}
}//package com.midasplayer
Section 19
//SharedData (com.midasplayer.SharedData)
package com.midasplayer {
import com.midasplayer.extras.*;
public class SharedData {
public var data:Object;// = null
public var numVoters:int;// = 0
public var score:Number;
public var featured:Boolean;// = false
public var id:String;// = ""
public var createdDate:Date;// = null
public var creatorId:String;// = null
public function SharedData(_arg1:Object=null){
var obj = _arg1;
id = "";
data = null;
creatorId = null;
createdDate = null;
numVoters = 0;
featured = false;
super();
if (obj != null){
this.id = obj.id;
this.score = Number(obj.score);
this.creatorId = obj.networkUserId;
this.createdDate = new Date();
this.createdDate.time = Number(obj.createdDate);
this.numVoters = obj.numVoters;
this.featured = (obj.featured == "true");
try {
this.data = FunflowSerializer.amfDecode(obj.sharedData);
} catch(e:Error) {
trace(((("Failed to parse shared object data " + obj.sharedData) + ", ") + e.message));
};
};
}
}
}//package com.midasplayer
Section 20
//SharedDataSavedEvent (com.midasplayer.SharedDataSavedEvent)
package com.midasplayer {
import flash.events.*;
public class SharedDataSavedEvent extends Event {
public var sharedDataId:String;
public var sharedDataGameUrl:String;
public function SharedDataSavedEvent(_arg1:String, _arg2:String, _arg3:Boolean=false, _arg4:Boolean=false){
this.sharedDataId = _arg1;
this.sharedDataGameUrl = _arg2;
super(FunflowAPI.SHARED_DATA_SAVED_EVENT, _arg3, _arg4);
}
}
}//package com.midasplayer
Section 21
//VoteSharedDataEvent (com.midasplayer.VoteSharedDataEvent)
package com.midasplayer {
import flash.events.*;
public class VoteSharedDataEvent extends Event {
public var newScore:Number;// = 0
public function VoteSharedDataEvent(_arg1:Number, _arg2:Boolean=false, _arg3:Boolean=false){
newScore = 0;
this.newScore = _arg1;
super(FunflowAPI.VOTE_SHARED_DATA_EVENT, _arg2, _arg3);
}
}
}//package com.midasplayer
Section 22
//VoteSharedDataFailedEvent (com.midasplayer.VoteSharedDataFailedEvent)
package com.midasplayer {
import flash.events.*;
public class VoteSharedDataFailedEvent extends Event {
public var errorCode:int;// = 0
public var errorMessage:String;// = ""
public static const ERROR_NO_ERROR:int = 0;
public static const ERROR_MESSAGES:Array = ["", "Server error, please try again later.", "You have already voted.", "You must log to funflow to vote."];
public static const ERROR_DUPLICATE_VOTE:int = 2;
public static const ERROR_SERVER:int = 1;
public static const ERROR_NOT_LOGGED_IN:int = 3;
public function VoteSharedDataFailedEvent(_arg1:int, _arg2:Boolean=false, _arg3:Boolean=false){
errorCode = 0;
errorMessage = "";
this.errorCode = _arg1;
if (_arg1 < ERROR_MESSAGES.length){
this.errorMessage = ERROR_MESSAGES[_arg1];
} else {
this.errorMessage = ERROR_MESSAGES[1];
};
super(FunflowAPI.VOTE_SHARED_DATA_FAILED_EVENT, _arg2, _arg3);
}
}
}//package com.midasplayer
Section 23
//Ad (CPMStar.Ad)
package CPMStar {
import flash.events.*;
import flash.display.*;
import util.*;
public class Ad extends MovieClip {
private var ad:DisplayObject;
public var adBox:MovieClip;
private var _adBox:MovieClip;
private var CPMStarContentSpotID:String;// = "3358Q2184533A"
public var close_bt:ad_close_cl;
public function Ad(){
CPMStarContentSpotID = "3358Q2184533A";
super();
_adBox = this["adBox"];
MovieClip(this["close_bt"]).addEventListener(MouseEvent.CLICK, closeAd);
}
private function closeAd(_arg1:MouseEvent):void{
LinkManager.goToURL(LinkManager.CLOSE_AD);
}
public function hide():void{
_adBox.removeChild(ad);
}
public function show():void{
ad = new AdLoader(CPMStarContentSpotID);
_adBox.addChild(ad);
}
}
}//package CPMStar
Section 24
//AdLoader (CPMStar.AdLoader)
package CPMStar {
import flash.events.*;
import flash.display.*;
import flash.net.*;
import flash.system.*;
public class AdLoader extends Sprite {
private var contentspotid:String;
private var cpmstarLoader:Loader;
public function AdLoader(_arg1:String){
this.contentspotid = _arg1;
addEventListener(Event.ADDED, addedHandler);
}
private function addedHandler(_arg1:Event):void{
var _local2:String;
var _local3:DisplayObjectContainer;
removeEventListener(Event.ADDED, addedHandler);
Security.allowDomain("server.cpmstar.com");
_local2 = "http://server.cpmstar.com/adviewas3.swf";
_local3 = parent;
cpmstarLoader = new Loader();
cpmstarLoader.contentLoaderInfo.addEventListener(Event.INIT, dispatchHandler);
cpmstarLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, dispatchHandler);
cpmstarLoader.load(new URLRequest(((_local2 + "?contentspotid=") + contentspotid)));
addChild(cpmstarLoader);
}
private function dispatchHandler(_arg1:Event):void{
dispatchEvent(_arg1);
}
}
}//package CPMStar
Section 25
//FieldView (game.FieldView)
package game {
import flash.display.*;
public class FieldView extends MovieClip {
}
}//package game
Section 26
//Game (game.Game)
package game {
import gs.*;
import flash.events.*;
import flash.display.*;
import flash.utils.*;
import util.*;
import util.sound.*;
public class Game extends MovieClip {
private var animate_arr:Array;
private var _lock:Boolean;
private var line:Array;
public var container_mc:MovieClip;
private var _curitem:Item;
private var _bubbles:BubbleEngine;
private var _field_mc:MovieClip;
private var _delay:Number;
private var _play_fl:Boolean;
private var _first_collect:Boolean;
private var _arrows:Arrows;
private var _move_fl:Boolean;
private var field:Array;
public var lock_mc:MovieClip;
private var _game_view:GameView;
private var _currenth:uint;
public var bubbles:BubbleEngine;
private var _currentv:uint;
private var _multiply:uint;
public var arrows:Arrows;
private var collect_arr:Array;
private var _check_counter:int;
private var _items_swamp:Array;
private var _lock_mc:MovieClip;
private var _container_mc:MovieClip;
private var _scroll_fl:Boolean;
private var additional_animate_arr:Array;
private var _beginh:int;
private function moveScroll(_arg1:int):void{
var _local2:int;
var _local3:int;
var _local4:int;
var _local5:int;
var _local6:Item;
var _local7:Item;
_move_fl = true;
_local2 = Math.abs(_arg1);
_local3 = ((_arg1)>0) ? 1 : -1;
while (_local2-- > 0) {
_local4 = ((_local3)<0) ? 0 : (GameData.SIZEX - 1);
_local5 = GameData.SIZEX;
_local7 = field[_local4][_currentv];
_local4 = (_local4 - _local3);
_local5--;
while (_local5 > 0) {
_local6 = field[_local4][_currentv];
if (_local6 != null){
_local6.h = (_local6.h + _local3);
TweenLite.to(_local6, 0.1, {x:(_local6.h * GameData.GRIDX)});
};
field[(_local4 + _local3)][_currentv] = _local6;
_local4 = (_local4 - _local3);
_local5--;
};
_local4 = (_local4 + _local3);
if (_local7 != null){
_local7.h = _local4;
_local7.x = ((_local7.h - _local3) * GameData.GRIDX);
TweenLite.to(_local7, 0.1, {x:(_local7.h * GameData.GRIDX)});
};
field[_local4][_currentv] = _local7;
};
SoundFXController.playFX("touch");
}
private function getInstance(_arg1:int=-1):Item{
var _local2:Item;
if (_items_swamp.length > 0){
_local2 = _items_swamp.pop();
} else {
_local2 = new Item();
};
_local2.initView(_arg1);
_field_mc.addChild(_local2);
return (_local2);
}
private function initFieldItems():void{
var _local1:Item;
var _local2:int;
var _local3:int;
_local2 = 0;
_local3 = 0;
while (_local2 < GameData.SIZEX) {
while (_local3 < GameData.SIZEY) {
_local1 = getInstance(getColor(_local2, _local3));
_local1.h = _local2;
_local1.v = _local3;
_local1.x = (_local1.h * GameData.GRIDX);
_local1.y = (_local1.v * GameData.GRIDY);
field[_local2][_local3] = _local1;
_field_mc.addChild(_local1);
_local3++;
};
_local3 = 0;
_local2++;
};
}
private function outHandler(_arg1:MouseEvent):void{
if ((((_arg1.target is Item)) && (!(lock)))){
_arrows.hide();
};
}
private function removeHandler(_arg1:Event):void{
var _local2:Item;
_local2 = Item(_arg1.target);
_bubbles.addBubbles((_local2.x + 25), (_local2.y + 25));
_field_mc.removeChild(_local2);
_items_swamp.push(_local2);
}
private function addBonusBubble(_arg1:Item, _arg2:uint):void{
SoundFXController.playFX("line");
_bubbles.addBubble((_arg1.x + 25), (_arg1.y + 25), ("x" + _arg2));
}
private function addLine():void{
var _local1:int;
if (getColumns() < GameData.SIZEY){
lock = true;
_local1 = 0;
while (_local1 < GameData.SIZEX) {
var _temp1 = _local1;
_local1 = (_local1 + 1);
addLineItem(_temp1);
};
};
}
private function upHandler(_arg1:MouseEvent):void{
if (_move_fl){
stopScroll();
};
}
private function collectLine(_arg1:Array):void{
var _local2:Item;
var _local3:int;
_multiply++;
_local3 = (((_arg1.length * GameData.SCORE_STEP) * (_arg1.length - 2)) * _multiply);
_game_view._points_mc.points = (_game_view._points_mc.points + _local3);
setTimeout(addBonusBubble, (_delay * 1000), _arg1[(_arg1.length - 1)], _multiply);
while (_arg1.length > 0) {
_local2 = _arg1.pop();
_local2._collect = true;
_local2.destroy(_delay);
};
}
private function shiftDown(_arg1:int, _arg2:int):void{
var _local3:Item;
var _local4:int;
_local4 = 0;
if (field[_arg1][_arg2] != null){
_local3 = field[_arg1][_arg2];
while ((((field[_arg1][((_arg2 - _local4) - 1)] == null)) && ((((_arg2 - _local4) - 1) >= 0)))) {
_local4++;
};
} else {
_arg2++;
if (field[_arg1][_arg2] != null){
_local3 = field[_arg1][_arg2];
_local4 = 1;
};
};
if (_local4 > 0){
while (_local3 != null) {
field[_arg1][_arg2] = null;
_local3.v = (_local3.v - _local4);
field[_local3.h][_local3.v] = _local3;
setMove(_local3, false);
_arg2++;
_local3 = field[_arg1][_arg2];
};
};
}
private function downHandler(_arg1:MouseEvent):void{
if (!lock){
if (!_scroll_fl){
if ((_arg1.target is Item)){
startScroll(Item(_arg1.target));
_arrows.show(Item(_arg1.target).v);
};
} else {
setMouseTarget();
};
SoundFXController.playFX("touch");
};
}
public function set lock(_arg1:Boolean):void{
_lock = _arg1;
}
private function shiftHandler(_arg1:Event):void{
shiftItemDown(Item(_arg1.target));
}
private function clearAll():void{
while (_field_mc.numChildren) {
_field_mc.removeChildAt(0);
};
}
private function checkCell(_arg1:Item, _arg2:uint):void{
if (_arg1 != null){
if (((!(_arg1._collect)) && ((_arg1._color == _arg2)))){
line.push(_arg1);
_arg1._collect = true;
checkCell(getItem((_arg1.h - 1), _arg1.v), _arg2);
checkCell(getItem((_arg1.h + 1), _arg1.v), _arg2);
checkCell(getItem(_arg1.h, (_arg1.v - 1)), _arg2);
checkCell(getItem(_arg1.h, (_arg1.v + 1)), _arg2);
};
};
}
public function restartGame():void{
initGame();
_game_view._label_mc.show("RESTART");
}
private function collectItems():void{
_delay = 0;
while (collect_arr.length > 0) {
collectLine(collect_arr.pop());
_delay = (_delay + 0.2);
};
if (_multiply > 2){
_game_view._progress_bar.backward(GameData.PROGREESS_BAR_BACKWARD);
};
}
public function setPause():void{
_play_fl = !(App._pause_fl);
}
private function checkField():Boolean{
var _local1:Item;
var _local2:int;
var _local3:int;
_local2 = (GameData.SIZEX - 1);
_local3 = (GameData.SIZEY - 1);
while (_local3 >= 0) {
while (_local2 >= 0) {
_local1 = getItem(_local2, _local3);
if (_local1 != null){
line = [];
checkCell(_local1, _local1._color);
if (line.length > 2){
collect_arr.push(line);
} else {
clearLine(line);
};
};
_local2--;
};
_local2 = (GameData.SIZEX - 1);
_local3--;
};
if (collect_arr.length > 0){
_first_collect = false;
collectItems();
return (true);
};
return (false);
}
private function setMouseTarget(_arg1:int=-1):void{
if (_arg1 < 0){
_arg1 = Math.floor((this.mouseX / GameData.GRIDX));
};
if (_arg1 > (GameData.SIZEX - 1)){
_arg1 = (GameData.SIZEX - 1);
} else {
if (_arg1 < 0){
_arg1 = 0;
};
};
if (!_scroll_fl){
_scroll_fl = true;
_beginh = _arg1;
_currenth = _arg1;
};
if (_currenth != _arg1){
moveScroll((_arg1 - _currenth));
_currenth = _arg1;
};
}
private function addLineItem(_arg1:int):void{
var _local2:Item;
_local2 = getInstance(getColor(_arg1, 0));
_local2.h = _arg1;
_local2.v = 0;
_local2.x = (_local2.h * GameData.GRIDX);
_local2.y = -50;
insertItem(_local2);
}
private function shiftItemDown(_arg1:Item):void{
var _local2:int;
var _local3:int;
var _local4:Item;
_local2 = _arg1.h;
_local3 = (_arg1.v + 1);
_local4 = field[_local2][_local3];
while (_local4 != null) {
_local4.v--;
field[_local4.h][_local4.v] = _local4;
setMove(_local4, false);
_local3++;
_local4 = field[_local2][_local3];
};
field[_local2][(_local3 - 1)] = null;
}
private function checkCellColor(_arg1:int, _arg2:int, _arg3:int):Boolean{
var _local4:Boolean;
var _local5:Item;
_local4 = false;
_local5 = getItem(_arg1, _arg2);
if (_local5 != null){
_local4 = (_local5._color == _arg3);
};
return (_local4);
}
private function setFall(_arg1:Item):void{
_arg1._speed = (-(GameData.SPEED) * 5);
_arg1.setState(Item.FALL);
addAnimate(_arg1);
}
private function addAnimate(_arg1:Item):void{
var _local2:int;
var _local3:Boolean;
_local2 = 0;
_local3 = true;
while (_local2 < animate_arr.length) {
if (animate_arr[_local2] == _arg1){
_local3 = false;
break;
};
_local2++;
};
if (_local3){
animate_arr.push(_arg1);
};
}
private function checkCollect():void{
if (!checkField()){
if (_first_collect){
_multiply = 0;
};
lock = false;
addLine();
};
}
public function init():void{
_game_view = GameView(this.parent);
_container_mc = this["container_mc"];
_field_mc = _container_mc["field_mc"];
_lock_mc = this["lock_mc"];
_bubbles = this["bubbles"];
_arrows = this["arrows"];
_items_swamp = new Array();
_container_mc.addEventListener(MouseEvent.MOUSE_OVER, overHandler);
_container_mc.addEventListener(MouseEvent.MOUSE_OUT, outHandler);
_container_mc.addEventListener(MouseEvent.MOUSE_DOWN, downHandler);
_container_mc.addEventListener(MouseEvent.MOUSE_UP, upHandler);
_field_mc.addEventListener("shiftItem", shiftHandler);
_field_mc.addEventListener("removeItem", removeHandler);
addEventListener(Event.ENTER_FRAME, enterFrame);
_play_fl = false;
_game_view._progress_bar.addEventListener(Event.COMPLETE, progressBarComplete);
}
public function initGame():void{
_play_fl = true;
_scroll_fl = false;
_check_counter = 0;
_multiply = 0;
_arrows.hide();
_game_view._progress_bar.init(GameData.PROGREESS_BAR_STEP, GameData.PROGREESS_BAR_MAX);
lock = false;
_lock_mc.visible = false;
initField();
addLine();
}
public function get lock():Boolean{
return (_lock);
}
private function destroyAll():void{
var _local1:Number;
var _local2:int;
var _local3:int;
_local1 = 0;
_local2 = 0;
_local3 = GameData.SIZEY;
while (_local3 >= 0) {
while (_local2 < GameData.SIZEX) {
if (field[_local2][_local3] != null){
field[_local2][_local3].destroy(_local1);
_local1 = (_local1 + 0.03);
};
_local2++;
};
_local2 = 0;
_local3--;
};
}
private function setMove(_arg1:Item, _arg2:Boolean=true):void{
_arg1._speed = ((_arg2) ? 1 : -1 * GameData.SPEED);
_arg1.setState(Item.MOVE);
addAnimate(_arg1);
}
private function endGame():void{
destroyAll();
_play_fl = false;
_game_view.endGame();
}
private function stopScroll():void{
var _local1:int;
var _local2:Item;
_curitem.active = false;
_local1 = 0;
while (_local1 < GameData.SIZEX) {
shiftDown(_local1, _currentv);
_local1++;
};
_scroll_fl = false;
_first_collect = true;
_arrows.hide();
_container_mc.buttonMode = false;
}
private function insertItem(_arg1:Item):void{
var _local2:int;
var _local3:int;
var _local4:Item;
_local2 = _arg1.h;
_local3 = (getY(_local2) - 1);
_local4 = field[_local2][_local3];
while (_local3 >= 0) {
_local4.v++;
field[_local4.h][_local4.v] = _local4;
setMove(_local4);
_local3--;
_local4 = field[_local2][_local3];
};
field[_arg1.h][_arg1.v] = _arg1;
setMove(_arg1);
}
private function enterFrame(_arg1:Event):void{
var _local2:int;
var _local3:int;
var _local4:Item;
var _local5:Boolean;
var _local6:MovieClip;
if (_play_fl){
_local2 = animate_arr.length;
if (_local2 > 0){
_local3 = 0;
while (_local3 < _local2) {
_local4 = animate_arr[_local3];
animate_arr[_local3].y = (_local4.y + _local4._speed);
_local5 = false;
if (_local4._speed < 0){
_local5 = (_local4.y <= (_local4.v * GameData.GRIDY));
} else {
_local5 = (_local4.y >= (_local4.v * GameData.GRIDY));
};
if (_local5){
animate_arr.splice(_local3, 1);
_local2 = animate_arr.length;
_local4.y = (_local4.v * GameData.GRIDY);
_local4.x = (_local4.h * GameData.GRIDX);
_local4.setState(Item.NONE);
} else {
_local3++;
};
};
};
if (((((!(_scroll_fl)) && (lock))) && ((animate_arr.length == 0)))){
trace(_check_counter);
if (_check_counter++ == GameData.CHECK_COUNTER){
trace("check");
checkCollect();
_check_counter = 0;
};
};
if (_scroll_fl){
setMouseTarget();
};
_local2 = additional_animate_arr.length;
if (_local2 > 0){
_local3 = 0;
while (_local3 < _local2) {
_local6 = additional_animate_arr[_local3];
_local6.animate();
if (_local6.check()){
_local6.destroy();
additional_animate_arr.splice(_local3, 1);
_local2 = additional_animate_arr.length;
} else {
_local3++;
};
};
};
};
}
private function getItem(_arg1:int, _arg2:int):Item{
var _local3:Item;
_local3 = null;
if ((((((_arg1 >= 0)) && ((_arg1 < GameData.SIZEX)))) && ((((_arg2 >= 0)) && ((_arg2 < GameData.SIZEY)))))){
_local3 = field[_arg1][_arg2];
};
return (_local3);
}
public function getColumns():Number{
var _local1:int;
var _local2:int;
var _local3:Number;
_local1 = 0;
_local2 = 0;
_local3 = 0;
while (_local1 < GameData.SIZEX) {
while (field[_local1][_local2] != null) {
_local2++;
};
if (_local3 < _local2){
_local3 = _local2;
};
_local2 = 0;
_local1++;
};
return (_local3);
}
private function getColor(_arg1:int, _arg2:int):int{
var _local3:Boolean;
var _local4:int;
_local3 = true;
while (_local3) {
_local3 = false;
_local4 = Math.round((Math.random() * (GameData.COLORS - 1)));
_local3 = checkCellColor(_arg1, _arg2, _local4);
if (!_local3){
_local3 = checkCellColor((_arg1 - 1), _arg2, _local4);
};
};
return (_local4);
}
private function getY(_arg1:int):int{
var _local2:int;
_local2 = 0;
while (field[_arg1][_local2] != null) {
_local2++;
};
return (_local2);
}
private function initField():void{
var _local1:int;
var _local2:int;
clearAll();
animate_arr = new Array();
collect_arr = new Array();
additional_animate_arr = new Array();
field = new Array();
_local1 = 0;
_local2 = 0;
while (_local1 < GameData.SIZEX) {
field[_local1] = new Array();
while (_local2 < GameData.SIZEY) {
field[_local1][_local2] = null;
_local2++;
};
_local2 = 0;
_local1++;
};
}
private function startScroll(_arg1:Item):void{
_move_fl = false;
lock = true;
_curitem = _arg1;
_curitem.active = true;
_currentv = _arg1.v;
setMouseTarget();
_container_mc.buttonMode = true;
}
private function clearLine(_arg1:Array):void{
while (_arg1.length > 0) {
_arg1.pop()._collect = false;
};
}
private function overHandler(_arg1:MouseEvent):void{
if ((((_arg1.target is Item)) && (!(lock)))){
_arrows.show(Item(_arg1.target).v);
};
}
private function progressBarComplete(_arg1:Event):void{
endGame();
}
}
}//package game
Section 27
//Item (game.Item)
package game {
import gs.*;
import flash.events.*;
import flash.display.*;
import flash.utils.*;
import util.*;
import gs.easing.*;
public class Item extends MovieClip {
private var _v:int;
public var _collect:Boolean;
private var _active:Boolean;
public var _speed:int;
public var _color:int;
public var _view:ItemView;
public var _state:String;
public var _colors:MovieClip;
private var _h:int;
public var _active_mc:MovieClip;
public static var MOVE:String = "move";
public static var NONE:String = "none";
public static var FALL:String = "fall";
public function Item(){
init();
}
public function destroy(_arg1:Number):void{
setTimeout(playDestroy, (_arg1 * 1000));
}
public function set v(_arg1:int):void{
_v = _arg1;
}
private function init():void{
_view = new ItemView();
addChild(_view);
_colors = _view["colors"];
_colors["plane"].cacheAsBitmap = true;
_active_mc = _view["active_mc"];
buttonMode = true;
mouseChildren = false;
addEventListener(MouseEvent.MOUSE_OVER, handleMouseOver);
addEventListener(MouseEvent.MOUSE_OUT, handleMouseOut);
addEventListener(MouseEvent.CLICK, handleClick);
}
public function set active(_arg1:Boolean):void{
_active = _arg1;
buttonMode = !(_active);
_active_mc.visible = _active;
if (_active){
_active_mc.gotoAndPlay(1);
_active_mc.scaleX = (_active_mc.scaleY = 1.5);
_active_mc.alpha = 0;
TweenLite.to(_active_mc, 0.3, {scaleX:1, scaleY:1, alpha:0.8, ease:Quad.easeOut});
} else {
_active_mc.stop();
TweenLite.to(_active_mc, 0.3, {alpha:0});
};
TweenLite.to(_colors["plane"], 0.1, {scaleX:1, scaleY:1, colorMatrixFilter:{brightness:1}, ease:Quad.easeOut});
}
public function playDestroy():void{
_view.gotoAndPlay("destroy");
dispatchEvent(new Event("shiftItem", true));
}
public function get active():Boolean{
return (_active);
}
protected function handleClick(_arg1:MouseEvent):void{
if (!active){
TweenLite.to(_colors["plane"], 0.1, {scaleX:1, scaleY:1, colorMatrixFilter:{brightness:1}, ease:Quad.easeOut});
};
}
public function setState(_arg1:String):void{
if (_state != _arg1){
_state = _arg1;
};
}
public function get v():int{
return (_v);
}
public function get h():int{
return (_h);
}
public function remove():void{
dispatchEvent(new Event("removeItem", true));
}
protected function handleMouseOut(_arg1:MouseEvent):void{
if (!active){
TweenLite.to(_colors["plane"], 0.1, {scaleX:1, scaleY:1, colorMatrixFilter:{brightness:1}, ease:Quad.easeOut});
};
}
public function set h(_arg1:int):void{
_h = _arg1;
}
protected function handleMouseOver(_arg1:MouseEvent):void{
if (!active){
TweenLite.to(_colors["plane"], 0.1, {scaleX:1.1, scaleY:1.1, colorMatrixFilter:{brightness:1.3}, ease:Quad.easeOut});
};
}
public function initView(_arg1:int=-1):void{
if (_arg1 == -1){
_color = Math.round((Math.random() * (GameData.COLORS - 1)));
} else {
_color = _arg1;
};
_view.gotoAndStop("appear");
_colors["plane"].gotoAndStop((_color + 1));
_colors["plane"]["womb"]["plane"].gotoAndStop((_color + 1));
_active = false;
_collect = false;
setState(NONE);
active = false;
}
}
}//package game
Section 28
//ItemView (game.ItemView)
package game {
import flash.display.*;
public class ItemView extends MovieClip {
public var colors:MovieClip;
public var active_mc:MovieClip;
public function ItemView(){
addFrameScript(68, frame69);
}
function frame69(){
gotoAndStop("sleep");
Item(parent).remove();
}
}
}//package game
Section 29
//Particle (game.Particle)
package game {
import flash.display.*;
public class Particle extends MovieClip {
public var plane:MovieClip;
public function Particle(){
addFrameScript(10, frame11);
this["plane"]["plane"].gotoAndStop((Math.round((Math.random() * 2)) + 1));
this["plane"]["plane"].rotation = (Math.random() * 360);
this["plane"]["plane"].scaleX = (this["plane"]["plane"].scaleY = ((Math.random() * 0.5) + 0.5));
rotation = (Math.random() * 360);
x = (Math.round((Math.random() * 20)) - 10);
y = (Math.round((Math.random() * 20)) - 10);
}
function frame11(){
stop();
}
}
}//package game
Section 30
//Particles (game.Particles)
package game {
import flash.events.*;
import flash.display.*;
public class Particles extends MovieClip {
private var p:Particle;
private var n:int;// = 6
public function Particles(){
n = 6;
super();
addEventListener(Event.ENTER_FRAME, enterFrameHandler);
}
private function enterFrameHandler(_arg1:Event):void{
if (n >= 0){
addChild(new Particle());
addChild(new Particle());
n = (n - 2);
} else {
removeEventListener(Event.ENTER_FRAME, enterFrameHandler);
};
}
}
}//package game
Section 31
//Elastic (gs.easing.Elastic)
package gs.easing {
public class Elastic {
private static const _2PI:Number = 6.28318530717959;
public static function easeIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=0, _arg6:Number=0):Number{
var _local7:Number;
if (_arg1 == 0){
return (_arg2);
};
_arg1 = (_arg1 / _arg4);
if (_arg1 == 1){
return ((_arg2 + _arg3));
};
if (!_arg6){
_arg6 = (_arg4 * 0.3);
};
if (((!(_arg5)) || ((_arg5 < Math.abs(_arg3))))){
_arg5 = _arg3;
_local7 = (_arg6 / 4);
} else {
_local7 = ((_arg6 / _2PI) * Math.asin((_arg3 / _arg5)));
};
--_arg1;
return ((-(((_arg5 * Math.pow(2, (10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * _2PI) / _arg6)))) + _arg2));
}
public static function easeInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=0, _arg6:Number=0):Number{
var _local7:Number;
if (_arg1 == 0){
return (_arg2);
};
_arg1 = (_arg1 / (_arg4 / 2));
if (_arg1 == 2){
return ((_arg2 + _arg3));
};
if (!_arg6){
_arg6 = (_arg4 * (0.3 * 1.5));
};
if (((!(_arg5)) || ((_arg5 < Math.abs(_arg3))))){
_arg5 = _arg3;
_local7 = (_arg6 / 4);
} else {
_local7 = ((_arg6 / _2PI) * Math.asin((_arg3 / _arg5)));
};
if (_arg1 < 1){
--_arg1;
return (((-0.5 * ((_arg5 * Math.pow(2, (10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * _2PI) / _arg6)))) + _arg2));
};
--_arg1;
return ((((((_arg5 * Math.pow(2, (-10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * _2PI) / _arg6))) * 0.5) + _arg3) + _arg2));
}
public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=0, _arg6:Number=0):Number{
var _local7:Number;
if (_arg1 == 0){
return (_arg2);
};
_arg1 = (_arg1 / _arg4);
if (_arg1 == 1){
return ((_arg2 + _arg3));
};
if (!_arg6){
_arg6 = (_arg4 * 0.3);
};
if (((!(_arg5)) || ((_arg5 < Math.abs(_arg3))))){
_arg5 = _arg3;
_local7 = (_arg6 / 4);
} else {
_local7 = ((_arg6 / _2PI) * Math.asin((_arg3 / _arg5)));
};
return (((((_arg5 * Math.pow(2, (-10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * _2PI) / _arg6))) + _arg3) + _arg2));
}
}
}//package gs.easing
Section 32
//Quad (gs.easing.Quad)
package gs.easing {
public class Quad {
public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / _arg4);
return ((((-(_arg3) * _arg1) * (_arg1 - 2)) + _arg2));
}
public static function easeIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / _arg4);
return ((((_arg3 * _arg1) * _arg1) + _arg2));
}
public static function easeInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / (_arg4 / 2));
if (_arg1 < 1){
return (((((_arg3 / 2) * _arg1) * _arg1) + _arg2));
};
--_arg1;
return ((((-(_arg3) / 2) * ((_arg1 * (_arg1 - 2)) - 1)) + _arg2));
}
}
}//package gs.easing
Section 33
//AutoAlphaPlugin (gs.plugins.AutoAlphaPlugin)
package gs.plugins {
import gs.*;
import flash.display.*;
public class AutoAlphaPlugin extends TweenPlugin {
protected var _tweenVisible:Boolean;
protected var _tween:TweenLite;
protected var _visible:Boolean;
protected var _target:Object;
public static const VERSION:Number = 1;
public static const API:Number = 1;
public function AutoAlphaPlugin(){
this.propName = "autoAlpha";
this.overwriteProps = ["alpha", "visible"];
this.onComplete = onCompleteTween;
}
override public function set changeFactor(_arg1:Number):void{
updateTweens(_arg1);
if (((!((_target.visible == true))) && (_tweenVisible))){
_target.visible = true;
};
}
public function onCompleteTween():void{
if (((((_tweenVisible) && (!((_tween.vars.runBackwards == true))))) && ((_tween.ease == _tween.vars.ease)))){
_target.visible = _visible;
};
}
override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{
_target = _arg1;
_tween = _arg3;
_visible = Boolean(!((_arg2 == 0)));
_tweenVisible = true;
addTween(_arg1, "alpha", _arg1.alpha, _arg2, "alpha");
return (true);
}
override public function killProps(_arg1:Object):void{
super.killProps(_arg1);
_tweenVisible = !(Boolean(("visible" in _arg1)));
}
}
}//package gs.plugins
Section 34
//ColorMatrixFilterPlugin (gs.plugins.ColorMatrixFilterPlugin)
package gs.plugins {
import gs.*;
import flash.display.*;
import flash.filters.*;
public class ColorMatrixFilterPlugin extends FilterPlugin {
protected var _matrix:Array;
protected var _matrixTween:EndArrayPlugin;
public static const API:Number = 1;
public static const VERSION:Number = 1.1;
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{
var _local4:Object;
var _local5:Array;
_target = _arg1;
_type = ColorMatrixFilter;
_local4 = _arg2;
initFilter({remove:_arg2.remove, index:_arg2.index, addFilter:_arg2.addFilter}, new ColorMatrixFilter(_idMatrix.slice()));
_matrix = ColorMatrixFilter(_filter).matrix;
_local5 = [];
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{
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Array;
if (isNaN(_arg2)){
return (_arg1);
};
_local3 = (1 - _arg2);
_local4 = (_local3 * _lumR);
_local5 = (_local3 * _lumG);
_local6 = (_local3 * _lumB);
_local7 = [(_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{
var _local3:Number;
var _local4:Number;
var _local5:Array;
if (isNaN(_arg2)){
return (_arg1);
};
_arg2 = (_arg2 * (Math.PI / 180));
_local3 = Math.cos(_arg2);
_local4 = Math.sin(_arg2);
_local5 = [((_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 setThreshold(_arg1:Array, _arg2:Number):Array{
var _local3:Array;
if (isNaN(_arg2)){
return (_arg1);
};
_local3 = [(_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 applyMatrix(_arg1:Array, _arg2:Array):Array{
var _local3:Array;
var _local4:int;
var _local5:int;
var _local6:int;
var _local7:int;
if (((!((_arg1 is Array))) || (!((_arg2 is Array))))){
return (_arg2);
};
_local3 = [];
_local4 = 0;
_local5 = 0;
_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 colorize(_arg1:Array, _arg2:Number, _arg3:Number=1):Array{
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Array;
if (isNaN(_arg2)){
return (_arg1);
};
if (isNaN(_arg3)){
_arg3 = 1;
};
_local4 = (((_arg2 >> 16) & 0xFF) / 0xFF);
_local5 = (((_arg2 >> 8) & 0xFF) / 0xFF);
_local6 = ((_arg2 & 0xFF) / 0xFF);
_local7 = (1 - _arg3);
_local8 = [(_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));
}
public static function setContrast(_arg1:Array, _arg2:Number):Array{
var _local3:Array;
if (isNaN(_arg2)){
return (_arg1);
};
_arg2 = (_arg2 + 0.01);
_local3 = [_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));
}
}
}//package gs.plugins
Section 35
//EndArrayPlugin (gs.plugins.EndArrayPlugin)
package gs.plugins {
import gs.*;
import gs.utils.tween.*;
public class EndArrayPlugin extends TweenPlugin {
protected var _info:Array;
protected var _a:Array;
public static const VERSION:Number = 1.01;
public static const API:Number = 1;
public function EndArrayPlugin(){
_info = [];
super();
this.propName = "endArray";
this.overwriteProps = ["endArray"];
}
override public function set changeFactor(_arg1:Number):void{
var _local2:int;
var _local3:ArrayTweenInfo;
var _local4:Number;
var _local5:int;
if (this.round){
_local2 = (_info.length - 1);
while (_local2 > -1) {
_local3 = _info[_local2];
_local4 = (_local3.start + (_local3.change * _arg1));
_local5 = ((_local4)<0) ? -1 : 1;
_a[_local3.index] = ((((_local4 % 1) * _local5))>0.5) ? (int(_local4) + _local5) : int(_local4);
_local2--;
};
} else {
_local2 = (_info.length - 1);
while (_local2 > -1) {
_local3 = _info[_local2];
_a[_local3.index] = (_local3.start + (_local3.change * _arg1));
_local2--;
};
};
}
public function init(_arg1:Array, _arg2:Array):void{
var _local3:int;
_a = _arg1;
_local3 = (_arg2.length - 1);
while (_local3 > -1) {
if (((!((_arg1[_local3] == _arg2[_local3]))) && (!((_arg1[_local3] == null))))){
_info[_info.length] = new ArrayTweenInfo(_local3, _a[_local3], (_arg2[_local3] - _a[_local3]));
};
_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);
}
}
}//package gs.plugins
Section 36
//FilterPlugin (gs.plugins.FilterPlugin)
package gs.plugins {
import gs.*;
import flash.display.*;
import flash.filters.*;
import gs.utils.tween.*;
public class FilterPlugin extends TweenPlugin {
protected var _index:int;
protected var _filter:BitmapFilter;
protected var _type:Class;
protected var _remove:Boolean;
protected var _target:Object;
public static const VERSION:Number = 1.03;
public static const API:Number = 1;
override public function set changeFactor(_arg1:Number):void{
var _local2:int;
var _local3:TweenInfo;
var _local4:Array;
_local4 = _target.filters;
_local2 = (_tweens.length - 1);
while (_local2 > -1) {
_local3 = _tweens[_local2];
_local3.target[_local3.property] = (_local3.start + (_local3.change * _arg1));
_local2--;
};
if (!(_local4[_index] is _type)){
_index = (_local4.length - 1);
_local2 = (_local4.length - 1);
while (_local2 > -1) {
if ((_local4[_local2] is _type)){
_index = _local2;
break;
};
_local2--;
};
};
_local4[_index] = _filter;
_target.filters = _local4;
}
public function onCompleteTween():void{
var _local1:int;
var _local2:Array;
if (_remove){
_local2 = _target.filters;
if (!(_local2[_index] is _type)){
_local1 = (_local2.length - 1);
while (_local1 > -1) {
if ((_local2[_local1] is _type)){
_local2.splice(_local1, 1);
break;
};
_local1--;
};
} else {
_local2.splice(_index, 1);
};
_target.filters = _local2;
};
}
protected function initFilter(_arg1:Object, _arg2:BitmapFilter):void{
var _local3:Array;
var _local4:String;
var _local5:int;
var _local6:HexColorsPlugin;
var _local7:Object;
_local3 = _target.filters;
_index = -1;
if (_arg1.index != null){
_index = _arg1.index;
} else {
_local5 = (_local3.length - 1);
while (_local5 > -1) {
if ((_local3[_local5] is _type)){
_index = _local5;
break;
};
_local5--;
};
};
if ((((((_index == -1)) || ((_local3[_index] == null)))) || ((_arg1.addFilter == true)))){
_index = ((_arg1.index)!=null) ? _arg1.index : _local3.length;
_local3[_index] = _arg2;
_target.filters = _local3;
};
_filter = _local3[_index];
_remove = Boolean((_arg1.remove == true));
if (_remove){
this.onComplete = onCompleteTween;
};
_local7 = ((_arg1.isTV)==true) ? _arg1.exposedVars : _arg1;
for (_local4 in _local7) {
if (((((((((!((_local4 in _filter))) || ((_filter[_local4] == _local7[_local4])))) || ((_local4 == "remove")))) || ((_local4 == "index")))) || ((_local4 == "addFilter")))){
} else {
if ((((((_local4 == "color")) || ((_local4 == "highlightColor")))) || ((_local4 == "shadowColor")))){
_local6 = new HexColorsPlugin();
_local6.initColor(_filter, _local4, _filter[_local4], _local7[_local4]);
_tweens[_tweens.length] = new TweenInfo(_local6, "changeFactor", 0, 1, _local4, false);
} else {
if ((((((((_local4 == "quality")) || ((_local4 == "inner")))) || ((_local4 == "knockout")))) || ((_local4 == "hideObject")))){
_filter[_local4] = _local7[_local4];
} else {
addTween(_filter, _local4, _filter[_local4], _local7[_local4], _local4);
};
};
};
};
}
}
}//package gs.plugins
Section 37
//FramePlugin (gs.plugins.FramePlugin)
package gs.plugins {
import gs.*;
import flash.display.*;
public class FramePlugin extends TweenPlugin {
public var frame:int;
protected var _target:MovieClip;
public static const VERSION:Number = 1.01;
public static const API:Number = 1;
public function FramePlugin(){
this.propName = "frame";
this.overwriteProps = ["frame"];
this.round = true;
}
override public function set changeFactor(_arg1:Number):void{
updateTweens(_arg1);
_target.gotoAndStop(this.frame);
}
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);
}
}
}//package gs.plugins
Section 38
//HexColorsPlugin (gs.plugins.HexColorsPlugin)
package gs.plugins {
import gs.*;
public class HexColorsPlugin extends TweenPlugin {
protected var _colors:Array;
public static const VERSION:Number = 1.01;
public static const API:Number = 1;
public function HexColorsPlugin(){
this.propName = "hexColors";
this.overwriteProps = [];
_colors = [];
}
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);
}
override public function killProps(_arg1:Object):void{
var _local2:int;
_local2 = (_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;
};
}
}
}//package gs.plugins
Section 39
//RemoveTintPlugin (gs.plugins.RemoveTintPlugin)
package gs.plugins {
public class RemoveTintPlugin extends TintPlugin {
public static const VERSION:Number = 1.01;
public static const API:Number = 1;
public function RemoveTintPlugin(){
this.propName = "removeTint";
}
}
}//package gs.plugins
Section 40
//TintPlugin (gs.plugins.TintPlugin)
package gs.plugins {
import gs.*;
import flash.display.*;
import flash.geom.*;
import gs.utils.tween.*;
public class TintPlugin extends TweenPlugin {
protected var _ct:ColorTransform;
protected var _ignoreAlpha:Boolean;
protected var _target:DisplayObject;
public static const VERSION:Number = 1.1;
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 set changeFactor(_arg1:Number):void{
var _local2:ColorTransform;
updateTweens(_arg1);
if (_ignoreAlpha){
_local2 = _target.transform.colorTransform;
_ct.alphaMultiplier = _local2.alphaMultiplier;
_ct.alphaOffset = _local2.alphaOffset;
};
_target.transform.colorTransform = _ct;
}
public function init(_arg1:DisplayObject, _arg2:ColorTransform):void{
var _local3:int;
var _local4:String;
_target = _arg1;
_ct = _target.transform.colorTransform;
_local3 = (_props.length - 1);
while (_local3 > -1) {
_local4 = _props[_local3];
if (_ct[_local4] != _arg2[_local4]){
_tweens[_tweens.length] = new TweenInfo(_ct, _local4, _ct[_local4], (_arg2[_local4] - _ct[_local4]), "tint", false);
};
_local3--;
};
}
override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{
var _local4:ColorTransform;
if (!(_arg1 is DisplayObject)){
return (false);
};
_local4 = new ColorTransform();
if (((!((_arg2 == null))) && (!((_arg3.exposedVars.removeTint == true))))){
_local4.color = uint(_arg2);
};
_ignoreAlpha = true;
init((_arg1 as DisplayObject), _local4);
return (true);
}
}
}//package gs.plugins
Section 41
//TweenPlugin (gs.plugins.TweenPlugin)
package gs.plugins {
import gs.*;
import gs.utils.tween.*;
public class TweenPlugin {
public var overwriteProps:Array;
protected var _tweens:Array;
public var round:Boolean;
public var onComplete:Function;
public var propName:String;
protected var _changeFactor:Number;// = 0
public static const VERSION:Number = 1.03;
public static const API:Number = 1;
public function TweenPlugin(){
_tweens = [];
_changeFactor = 0;
super();
}
protected function updateTweens(_arg1:Number):void{
var _local2:int;
var _local3:TweenInfo;
var _local4:Number;
var _local5:int;
if (this.round){
_local2 = (_tweens.length - 1);
while (_local2 > -1) {
_local3 = _tweens[_local2];
_local4 = (_local3.start + (_local3.change * _arg1));
_local5 = ((_local4)<0) ? -1 : 1;
_local3.target[_local3.property] = ((((_local4 % 1) * _local5))>0.5) ? (int(_local4) + _local5) : int(_local4);
_local2--;
};
} else {
_local2 = (_tweens.length - 1);
while (_local2 > -1) {
_local3 = _tweens[_local2];
_local3.target[_local3.property] = (_local3.start + (_local3.change * _arg1));
_local2--;
};
};
}
public function set changeFactor(_arg1:Number):void{
updateTweens(_arg1);
_changeFactor = _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") ? (_arg4 - _arg3) : Number(_arg4);
if (_local6 != 0){
_tweens[_tweens.length] = new TweenInfo(_arg1, _arg2, _arg3, _local6, ((_arg5) || (_arg2)), false);
};
};
}
public function killProps(_arg1:Object):void{
var _local2:int;
_local2 = (this.overwriteProps.length - 1);
while (_local2 > -1) {
if ((this.overwriteProps[_local2] in _arg1)){
this.overwriteProps.splice(_local2, 1);
};
_local2--;
};
_local2 = (_tweens.length - 1);
while (_local2 > -1) {
if ((_tweens[_local2].name in _arg1)){
_tweens.splice(_local2, 1);
};
_local2--;
};
}
public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{
addTween(_arg1, this.propName, _arg1[this.propName], _arg2, this.propName);
return (true);
}
public function get changeFactor():Number{
return (_changeFactor);
}
public static function activate(_arg1:Array):Boolean{
var _local2:int;
var _local3:Object;
_local2 = (_arg1.length - 1);
while (_local2 > -1) {
_local3 = new (_arg1[_local2]);
TweenLite.plugins[_local3.propName] = _arg1[_local2];
_local2--;
};
return (true);
}
}
}//package gs.plugins
Section 42
//VisiblePlugin (gs.plugins.VisiblePlugin)
package gs.plugins {
import gs.*;
import flash.display.*;
public class VisiblePlugin extends TweenPlugin {
protected var _tween:TweenLite;
protected var _visible:Boolean;
protected var _target:Object;
public static const VERSION:Number = 1;
public static const API:Number = 1;
public function VisiblePlugin(){
this.propName = "visible";
this.overwriteProps = ["visible"];
this.onComplete = onCompleteTween;
}
override public function set changeFactor(_arg1:Number):void{
if (_target.visible != true){
_target.visible = true;
};
}
public function onCompleteTween():void{
if (((!((_tween.vars.runBackwards == true))) && ((_tween.ease == _tween.vars.ease)))){
_target.visible = _visible;
};
}
override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{
_target = _arg1;
_tween = _arg3;
_visible = Boolean(_arg2);
return (true);
}
}
}//package gs.plugins
Section 43
//VolumePlugin (gs.plugins.VolumePlugin)
package gs.plugins {
import flash.media.*;
import gs.*;
import flash.display.*;
public class VolumePlugin extends TweenPlugin {
protected var _st:SoundTransform;
protected var _target:Object;
public static const VERSION:Number = 1.01;
public static const API:Number = 1;
public function VolumePlugin(){
this.propName = "volume";
this.overwriteProps = ["volume"];
}
override public function set changeFactor(_arg1:Number):void{
updateTweens(_arg1);
_target.soundTransform = _st;
}
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);
}
}
}//package gs.plugins
Section 44
//ArrayTweenInfo (gs.utils.tween.ArrayTweenInfo)
package gs.utils.tween {
public class ArrayTweenInfo {
public var change:Number;
public var index:uint;
public var start:Number;
public function ArrayTweenInfo(_arg1:uint, _arg2:Number, _arg3:Number){
this.index = _arg1;
this.start = _arg2;
this.change = _arg3;
}
}
}//package gs.utils.tween
Section 45
//TweenInfo (gs.utils.tween.TweenInfo)
package gs.utils.tween {
public class TweenInfo {
public var start:Number;
public var name:String;
public var change:Number;
public var target:Object;
public var property:String;
public var isPlugin:Boolean;
public function TweenInfo(_arg1:Object, _arg2:String, _arg3:Number, _arg4:Number, _arg5:String, _arg6:Boolean){
this.target = _arg1;
this.property = _arg2;
this.start = _arg3;
this.change = _arg4;
this.name = _arg5;
this.isPlugin = _arg6;
}
}
}//package gs.utils.tween
Section 46
//TweenLite (gs.TweenLite)
package gs {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
import gs.plugins.*;
import gs.utils.tween.*;
public class TweenLite {
public var delay:Number;
protected var _hasUpdate:Boolean;
protected var _hasPlugins:Boolean;
public var started:Boolean;
public var initted:Boolean;
public var active:Boolean;
public var startTime:Number;
public var target:Object;
public var duration:Number;
public var gc:Boolean;
public var vars:Object;
public var ease:Function;
public var tweens:Array;
public var exposedVars:Object;
public var combinedTimeScale:Number;
public var initTime:Number;
public static const version:Number = 10.092;
private static var _timer:Timer = new Timer(2000);
public static var defaultEase:Function = TweenLite.easeOut;
public static var plugins:Object = {};
public static var currentTime:uint;
public static var masterList:Dictionary = new Dictionary(false);
protected static var _reservedProps:Object = {ease:1, delay:1, overwrite:1, onComplete:1, onCompleteParams:1, runBackwards:1, startAt:1, onUpdate:1, onUpdateParams:1, roundProps:1, onStart:1, onStartParams:1, persist:1, renderOnStart:1, proxiedEase:1, easeParams:1, yoyo:1, loop:1, onCompleteListener:1, onUpdateListener:1, onStartListener:1, orientToBezier:1, timeScale:1};
public static var killDelayedCallsTo:Function = TweenLite.killTweensOf;
public static var timingSprite:Sprite = new Sprite();
public static var overwriteManager:Object;
private static var _tlInitted:Boolean;
public function TweenLite(_arg1:Object, _arg2:Number, _arg3:Object){
var _local4:int;
super();
if (_arg1 == null){
return;
};
if (!_tlInitted){
TweenPlugin.activate([TintPlugin, RemoveTintPlugin, FramePlugin, AutoAlphaPlugin, VisiblePlugin, VolumePlugin, EndArrayPlugin]);
currentTime = getTimer();
timingSprite.addEventListener(Event.ENTER_FRAME, updateAll, false, 0, true);
if (overwriteManager == null){
overwriteManager = {mode:1, enabled:false};
};
_timer.addEventListener("timer", killGarbage, false, 0, true);
_timer.start();
_tlInitted = true;
};
this.vars = _arg3;
this.duration = ((_arg2) || (0.001));
this.delay = ((_arg3.delay) || (0));
this.combinedTimeScale = ((_arg3.timeScale) || (1));
this.active = Boolean((((_arg2 == 0)) && ((this.delay == 0))));
this.target = _arg1;
if (typeof(this.vars.ease) != "function"){
this.vars.ease = defaultEase;
};
if (this.vars.easeParams != null){
this.vars.proxiedEase = this.vars.ease;
this.vars.ease = easeProxy;
};
this.ease = this.vars.ease;
this.exposedVars = ((this.vars.isTV)==true) ? this.vars.exposedVars : this.vars;
this.tweens = [];
this.initTime = currentTime;
this.startTime = (this.initTime + (this.delay * 1000));
_local4 = ((((_arg3.overwrite == undefined)) || (((!(overwriteManager.enabled)) && ((_arg3.overwrite > 1)))))) ? overwriteManager.mode : int(_arg3.overwrite);
if (((!((_arg1 in masterList))) || ((_local4 == 1)))){
masterList[_arg1] = [this];
} else {
masterList[_arg1].push(this);
};
if ((((((this.vars.runBackwards == true)) && (!((this.vars.renderOnStart == true))))) || (this.active))){
initTweenVals();
if (this.active){
render((this.startTime + 1));
} else {
render(this.startTime);
};
if (((((!((this.exposedVars.visible == null))) && ((this.vars.runBackwards == true)))) && ((this.target is DisplayObject)))){
this.target.visible = this.exposedVars.visible;
};
};
}
public function set enabled(_arg1:Boolean):void{
var _local2:Array;
var _local3:Boolean;
var _local4:int;
if (_arg1){
if (!(this.target in masterList)){
masterList[this.target] = [this];
} else {
_local2 = masterList[this.target];
_local4 = (_local2.length - 1);
while (_local4 > -1) {
if (_local2[_local4] == this){
_local3 = true;
break;
};
_local4--;
};
if (!_local3){
_local2[_local2.length] = this;
};
};
};
this.gc = (_arg1) ? false : true;
if (this.gc){
this.active = false;
} else {
this.active = this.started;
};
}
public function clear():void{
this.tweens = [];
this.vars = (this.exposedVars = {ease:this.vars.ease});
_hasUpdate = false;
}
public function render(_arg1:uint):void{
var _local2:Number;
var _local3:Number;
var _local4:TweenInfo;
var _local5:int;
_local2 = ((_arg1 - this.startTime) * 0.001);
if (_local2 >= this.duration){
_local2 = this.duration;
_local3 = ((((this.ease == this.vars.ease)) || ((this.duration == 0.001)))) ? 1 : 0;
} else {
_local3 = this.ease(_local2, 0, 1, this.duration);
};
_local5 = (this.tweens.length - 1);
while (_local5 > -1) {
_local4 = this.tweens[_local5];
_local4.target[_local4.property] = (_local4.start + (_local3 * _local4.change));
_local5--;
};
if (_hasUpdate){
this.vars.onUpdate.apply(null, this.vars.onUpdateParams);
};
if (_local2 == this.duration){
complete(true);
};
}
public function activate():void{
this.started = (this.active = true);
if (!this.initted){
initTweenVals();
};
if (this.vars.onStart != null){
this.vars.onStart.apply(null, this.vars.onStartParams);
};
if (this.duration == 0.001){
this.startTime = (this.startTime - 1);
};
}
public function get enabled():Boolean{
return ((this.gc) ? false : true);
}
public function initTweenVals():void{
var _local1:String;
var _local2:int;
var _local3:*;
var _local4:TweenInfo;
if (((!((this.exposedVars.timeScale == undefined))) && (this.target.hasOwnProperty("timeScale")))){
this.tweens[this.tweens.length] = new TweenInfo(this.target, "timeScale", this.target.timeScale, (this.exposedVars.timeScale - this.target.timeScale), "timeScale", false);
};
for (_local1 in this.exposedVars) {
if ((_local1 in _reservedProps)){
} else {
if ((_local1 in plugins)){
_local3 = new (plugins[_local1]);
if (_local3.onInitTween(this.target, this.exposedVars[_local1], this) == false){
this.tweens[this.tweens.length] = new TweenInfo(this.target, _local1, this.target[_local1], ((typeof(this.exposedVars[_local1]))=="number") ? (this.exposedVars[_local1] - this.target[_local1]) : Number(this.exposedVars[_local1]), _local1, false);
} else {
this.tweens[this.tweens.length] = new TweenInfo(_local3, "changeFactor", 0, 1, ((_local3.overwriteProps.length)==1) ? _local3.overwriteProps[0] : "_MULTIPLE_", true);
_hasPlugins = true;
};
} else {
this.tweens[this.tweens.length] = new TweenInfo(this.target, _local1, this.target[_local1], ((typeof(this.exposedVars[_local1]))=="number") ? (this.exposedVars[_local1] - this.target[_local1]) : Number(this.exposedVars[_local1]), _local1, false);
};
};
};
if (this.vars.runBackwards == true){
_local2 = (this.tweens.length - 1);
while (_local2 > -1) {
_local4 = this.tweens[_local2];
this.tweens[_local2].start = (_local4.start + _local4.change);
_local4.change = -(_local4.change);
_local2--;
};
};
if (this.vars.onUpdate != null){
_hasUpdate = true;
};
if (((TweenLite.overwriteManager.enabled) && ((this.target in masterList)))){
overwriteManager.manageOverwrites(this, masterList[this.target]);
};
this.initted = true;
}
protected function easeProxy(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return (this.vars.proxiedEase.apply(null, arguments.concat(this.vars.easeParams)));
}
public function killVars(_arg1:Object):void{
if (overwriteManager.enabled){
overwriteManager.killVars(_arg1, this.exposedVars, this.tweens);
};
}
public function complete(_arg1:Boolean=false):void{
var _local2:int;
if (!_arg1){
if (!this.initted){
initTweenVals();
};
this.startTime = (currentTime - ((this.duration * 1000) / this.combinedTimeScale));
render(currentTime);
return;
};
if (_hasPlugins){
_local2 = (this.tweens.length - 1);
while (_local2 > -1) {
if (((this.tweens[_local2].isPlugin) && (!((this.tweens[_local2].target.onComplete == null))))){
this.tweens[_local2].target.onComplete();
};
_local2--;
};
};
if (this.vars.persist != true){
this.enabled = false;
};
if (this.vars.onComplete != null){
this.vars.onComplete.apply(null, this.vars.onCompleteParams);
};
}
public static function updateAll(_arg1:Event=null):void{
var _local2:uint;
var _local3:Dictionary;
var _local4:Array;
var _local5:int;
var _local6:TweenLite;
_local2 = (currentTime = getTimer());
_local3 = masterList;
for each (_local4 in _local3) {
_local5 = (_local4.length - 1);
while (_local5 > -1) {
_local6 = _local4[_local5];
if (_local6.active){
_local6.render(_local2);
} else {
if (_local6.gc){
_local4.splice(_local5, 1);
} else {
if (_local2 >= _local6.startTime){
_local6.activate();
_local6.render(_local2);
};
};
};
_local5--;
};
};
}
public static function removeTween(_arg1:TweenLite, _arg2:Boolean=true):void{
if (_arg1 != null){
if (_arg2){
_arg1.clear();
};
_arg1.enabled = false;
};
}
public static function killTweensOf(_arg1:Object=null, _arg2:Boolean=false):void{
var _local3:Array;
var _local4:int;
var _local5:TweenLite;
if (((!((_arg1 == null))) && ((_arg1 in masterList)))){
_local3 = masterList[_arg1];
_local4 = (_local3.length - 1);
while (_local4 > -1) {
_local5 = _local3[_local4];
if (((_arg2) && (!(_local5.gc)))){
_local5.complete(false);
};
_local5.clear();
_local4--;
};
delete masterList[_arg1];
};
}
public static function from(_arg1:Object, _arg2:Number, _arg3:Object):TweenLite{
_arg3.runBackwards = true;
return (new TweenLite(_arg1, _arg2, _arg3));
}
public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / _arg4);
return ((((-(_arg3) * _arg1) * (_arg1 - 2)) + _arg2));
}
protected static function killGarbage(_arg1:TimerEvent):void{
var _local2:Dictionary;
var _local3:Object;
_local2 = masterList;
for (_local3 in _local2) {
if (_local2[_local3].length == 0){
delete _local2[_local3];
};
};
}
public static function delayedCall(_arg1:Number, _arg2:Function, _arg3:Array=null):TweenLite{
return (new TweenLite(_arg2, 0, {delay:_arg1, onComplete:_arg2, onCompleteParams:_arg3, overwrite:0}));
}
public static function to(_arg1:Object, _arg2:Number, _arg3:Object):TweenLite{
return (new TweenLite(_arg1, _arg2, _arg3));
}
}
}//package gs
Section 47
//arrows_linecopy_160 (jelly_match_funflow_viral_fla.arrows_linecopy_160)
package jelly_match_funflow_viral_fla {
import flash.display.*;
public dynamic class arrows_linecopy_160 extends MovieClip {
public var arrow:MovieClip;
}
}//package jelly_match_funflow_viral_fla
Section 48
//barcopy_157 (jelly_match_funflow_viral_fla.barcopy_157)
package jelly_match_funflow_viral_fla {
import flash.display.*;
public dynamic class barcopy_157 extends MovieClip {
public var bar_mc:MovieClip;
}
}//package jelly_match_funflow_viral_fla
Section 49
//bonus_tf_35 (jelly_match_funflow_viral_fla.bonus_tf_35)
package jelly_match_funflow_viral_fla {
import flash.display.*;
import flash.text.*;
public dynamic class bonus_tf_35 extends MovieClip {
public var text_tf:TextField;
}
}//package jelly_match_funflow_viral_fla
Section 50
//color_back_wrapper_25 (jelly_match_funflow_viral_fla.color_back_wrapper_25)
package jelly_match_funflow_viral_fla {
import flash.display.*;
public dynamic class color_back_wrapper_25 extends MovieClip {
public var plane:MovieClip;
}
}//package jelly_match_funflow_viral_fla
Section 51
//color_backs_26 (jelly_match_funflow_viral_fla.color_backs_26)
package jelly_match_funflow_viral_fla {
import flash.display.*;
public dynamic class color_backs_26 extends MovieClip {
public var womb:MovieClip;
}
}//package jelly_match_funflow_viral_fla
Section 52
//container_mc_60 (jelly_match_funflow_viral_fla.container_mc_60)
package jelly_match_funflow_viral_fla {
import flash.display.*;
import game.*;
public dynamic class container_mc_60 extends MovieClip {
public var field_mc:FieldView;
}
}//package jelly_match_funflow_viral_fla
Section 53
//funflow_splash_37 (jelly_match_funflow_viral_fla.funflow_splash_37)
package jelly_match_funflow_viral_fla {
import flash.events.*;
import flash.display.*;
import util.*;
public dynamic class funflow_splash_37 extends MovieClip {
public function funflow_splash_37(){
addFrameScript(0, frame1, 79, frame80);
}
function frame80(){
MovieClip(parent).play();
}
function frame1(){
this.buttonMode = true;
this.addEventListener(MouseEvent.CLICK, goTo);
}
public function goTo(_arg1:MouseEvent){
LinkManager.goToURL(LinkManager.FUNFLOW_SPLASH);
}
}
}//package jelly_match_funflow_viral_fla
Section 54
//label_text_66 (jelly_match_funflow_viral_fla.label_text_66)
package jelly_match_funflow_viral_fla {
import flash.display.*;
import flash.text.*;
public dynamic class label_text_66 extends MovieClip {
public var text_tf:TextField;
}
}//package jelly_match_funflow_viral_fla
Section 55
//loader_plane_2 (jelly_match_funflow_viral_fla.loader_plane_2)
package jelly_match_funflow_viral_fla {
import flash.display.*;
public dynamic class loader_plane_2 extends MovieClip {
public var plane:MovieClip;
}
}//package jelly_match_funflow_viral_fla
Section 56
//logo_anim_40 (jelly_match_funflow_viral_fla.logo_anim_40)
package jelly_match_funflow_viral_fla {
import flash.events.*;
import flash.display.*;
import util.*;
public dynamic class logo_anim_40 extends MovieClip {
public function logo_anim_40(){
addFrameScript(0, frame1, 189, frame190);
}
function frame1(){
this.buttonMode = true;
this.addEventListener(MouseEvent.CLICK, goTo);
}
function frame190(){
MovieClip(parent).play();
}
public function goTo(_arg1:MouseEvent){
LinkManager.goToURL(LinkManager.SQIRRELSQUARE_SPLASH);
}
}
}//package jelly_match_funflow_viral_fla
Section 57
//particle_plane_21 (jelly_match_funflow_viral_fla.particle_plane_21)
package jelly_match_funflow_viral_fla {
import flash.display.*;
public dynamic class particle_plane_21 extends MovieClip {
public var plane:MovieClip;
}
}//package jelly_match_funflow_viral_fla
Section 58
//pause_anim_155 (jelly_match_funflow_viral_fla.pause_anim_155)
package jelly_match_funflow_viral_fla {
import flash.display.*;
public dynamic class pause_anim_155 extends MovieClip {
public function pause_anim_155(){
addFrameScript(15, frame16);
}
function frame16(){
stop();
}
}
}//package jelly_match_funflow_viral_fla
Section 59
//result_end_text_146 (jelly_match_funflow_viral_fla.result_end_text_146)
package jelly_match_funflow_viral_fla {
import flash.display.*;
import util.*;
import flash.text.*;
public dynamic class result_end_text_146 extends MovieClip {
public var result_points:ResultPoints;
public var top_tf:TextField;
}
}//package jelly_match_funflow_viral_fla
Section 60
//Symbol2_117 (jelly_match_funflow_viral_fla.Symbol2_117)
package jelly_match_funflow_viral_fla {
import flash.display.*;
public dynamic class Symbol2_117 extends MovieClip {
public function Symbol2_117(){
addFrameScript(99, frame100);
}
function frame100(){
gotoAndPlay(1);
}
}
}//package jelly_match_funflow_viral_fla
Section 61
//Symbol8_48 (jelly_match_funflow_viral_fla.Symbol8_48)
package jelly_match_funflow_viral_fla {
import flash.display.*;
public dynamic class Symbol8_48 extends MovieClip {
public function Symbol8_48(){
addFrameScript(59, frame60);
}
function frame60(){
gotoAndPlay(6);
}
}
}//package jelly_match_funflow_viral_fla
Section 62
//time_bonus_mc_164 (jelly_match_funflow_viral_fla.time_bonus_mc_164)
package jelly_match_funflow_viral_fla {
import flash.display.*;
public dynamic class time_bonus_mc_164 extends MovieClip {
public function time_bonus_mc_164(){
addFrameScript(0, frame1, 20, frame21);
}
function frame1(){
stop();
}
function frame21(){
gotoAndPlay(2);
}
}
}//package jelly_match_funflow_viral_fla
Section 63
//watr_anim_107 (jelly_match_funflow_viral_fla.watr_anim_107)
package jelly_match_funflow_viral_fla {
import flash.display.*;
public dynamic class watr_anim_107 extends MovieClip {
public var eyes:MovieClip;
public var colors:MovieClip;
public var mouth:MovieClip;
public function watr_anim_107(){
addFrameScript(0, frame1);
}
function frame1(){
colors.gotoAndStop((1 + Math.round((Math.random() * 5))));
eyes.gotoAndStop((1 + Math.round((Math.random() * 5))));
mouth.gotoAndStop((1 + Math.round((Math.random() * 7))));
}
}
}//package jelly_match_funflow_viral_fla
Section 64
//womb_27 (jelly_match_funflow_viral_fla.womb_27)
package jelly_match_funflow_viral_fla {
import flash.display.*;
public dynamic class womb_27 extends MovieClip {
public var plane:MovieClip;
public function womb_27(){
addFrameScript(0, frame1, 24, frame25);
}
function frame1(){
stop();
}
function frame25(){
gotoAndStop(1);
}
}
}//package jelly_match_funflow_viral_fla
Section 65
//womb_plane_28 (jelly_match_funflow_viral_fla.womb_plane_28)
package jelly_match_funflow_viral_fla {
import flash.display.*;
public dynamic class womb_plane_28 extends MovieClip {
public function womb_plane_28(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package jelly_match_funflow_viral_fla
Section 66
//KongregateAPI (kongregate.KongregateAPI)
package kongregate {
import flash.events.*;
import flash.display.*;
import flash.net.*;
import util.*;
public class KongregateAPI extends MovieClip {
public static var api;
public function init(_arg1:LoaderInfo):void{
var _local2:Object;
var _local3:String;
var _local4:URLRequest;
var _local5:Loader;
_local2 = _arg1.parameters;
_local3 = ((_local2.api_path) || ("http://www.kongregate.com/flash/API_AS3_Local.swf"));
_local4 = new URLRequest(_local3);
_local5 = new Loader();
_local5.contentLoaderInfo.addEventListener(Event.COMPLETE, apiLoadComplete);
_local5.load(_local4);
this.addChild(_local5);
}
public function apiLoadComplete(_arg1:Event):void{
api = _arg1.target.content;
api.services.connect();
}
public static function get isHome():Boolean{
return (Util.isDomain(".*kongregate.com", false));
}
}
}//package kongregate
Section 67
//MochiBot (mochi.as3.MochiBot)
package mochi.as3 {
import flash.display.*;
import flash.net.*;
import flash.system.*;
public dynamic class MochiBot extends Sprite {
public static function track(_arg1:Sprite, _arg2:String):MochiBot{
var _local3:MochiBot;
var _local4:String;
var _local5:URLVariables;
var _local6:String;
var _local7:URLRequest;
var _local8:Loader;
if (Security.sandboxType == "localWithFile"){
return (null);
};
_local3 = new (MochiBot);
_arg1.addChild(_local3);
Security.allowDomain("*");
Security.allowInsecureDomain("*");
_local4 = "http://core.mochibot.com/my/core.swf";
_local5 = new URLVariables();
_local5["sb"] = Security.sandboxType;
_local5["v"] = Capabilities.version;
_local5["swfid"] = _arg2;
_local5["mv"] = "8";
_local5["fv"] = "9";
_local6 = _local3.root.loaderInfo.loaderURL;
if (_local6.indexOf("http") == 0){
_local5["url"] = _local6;
} else {
_local5["url"] = "local";
};
_local7 = new URLRequest(_local4);
_local7.contentType = "application/x-www-form-urlencoded";
_local7.method = URLRequestMethod.POST;
_local7.data = _local5;
_local8 = new Loader();
_local3.addChild(_local8);
_local8.load(_local7);
return (_local3);
}
}
}//package mochi.as3
Section 68
//MochiDigits (mochi.as3.MochiDigits)
package mochi.as3 {
public final class MochiDigits {
private var Sibling:MochiDigits;
private var Fragment:Number;
private var Encoder:Number;
public function MochiDigits(_arg1:Number=0, _arg2:uint=0):void{
Encoder = 0;
setValue(_arg1, _arg2);
}
public function set value(_arg1:Number):void{
setValue(_arg1);
}
public function reencode():void{
var _local1:uint;
_local1 = int((2147483647 * Math.random()));
Fragment = (Fragment ^ (_local1 ^ Encoder));
Encoder = _local1;
}
public function toString():String{
var _local1:String;
_local1 = String.fromCharCode((Fragment ^ Encoder));
if (Sibling != null){
_local1 = (_local1 + Sibling.toString());
};
return (_local1);
}
public function get value():Number{
return (Number(this.toString()));
}
public function setValue(_arg1:Number=0, _arg2:uint=0):void{
var _local3:String;
_local3 = _arg1.toString();
var _temp1 = _arg2;
_arg2 = (_arg2 + 1);
Fragment = (_local3.charCodeAt(_temp1) ^ Encoder);
if (_arg2 < _local3.length){
Sibling = new MochiDigits(_arg1, _arg2);
} else {
Sibling = null;
};
reencode();
}
public function addValue(_arg1:Number):void{
value = (value + _arg1);
}
}
}//package mochi.as3
Section 69
//Log (SWFStats.Log)
package SWFStats {
import flash.events.*;
import flash.net.*;
import flash.utils.*;
import flash.system.*;
import flash.external.*;
public final class Log {
private static const PingR:Timer = new Timer(30000);
private static const PingF:Timer = new Timer(60000);
public static var GUID:String = "";
private static var Plays:int = 0;
public static var Enabled:Boolean = false;
private static var Request:LogRequest = new LogRequest();
private static var Pings:int = 0;
public static var Queue:Boolean = true;
public static var SourceUrl:String;
private static var HighestGoal:int = 0;
private static var FirstPing:Boolean = true;
public static var SWFID:int = 0;
private static function SaveCookie(_arg1:String, _arg2:int):void{
var _local3:SharedObject;
_local3 = SharedObject.getLocal("swfstats");
_local3.data[_arg1] = _arg2.toString();
_local3.flush();
}
public static function View(_arg1:int=0, _arg2:String="", _arg3:String=""):void{
var _local4:int;
if (SWFID > 0){
return;
};
SWFID = _arg1;
GUID = _arg2;
Enabled = true;
if ((((SWFID == 0)) || ((GUID == "")))){
Enabled = false;
return;
};
if (((((!((_arg3.indexOf("http://") == 0))) && (!((Security.sandboxType == "localWithNetwork"))))) && (!((Security.sandboxType == "localTrusted"))))){
Enabled = false;
return;
};
SourceUrl = GetUrl(_arg3);
if ((((SourceUrl == null)) || ((SourceUrl == "")))){
Enabled = false;
return;
};
Security.allowDomain("http://tracker.swfstats.com/");
Security.allowInsecureDomain("http://tracker.swfstats.com/");
Security.loadPolicyFile("http://tracker.swfstats.com/crossdomain.xml");
Security.allowDomain("http://utils.swfstats.com/");
Security.allowInsecureDomain("http://utils.swfstats.com/");
Security.loadPolicyFile("http://utils.swfstats.com/crossdomain.xml");
_local4 = GetCookie("views");
_local4++;
SaveCookie("views", _local4);
Send(("v/" + _local4), true);
PingF.addEventListener(TimerEvent.TIMER, PingServer);
PingF.start();
}
public static function LevelCounterMetric(_arg1:String, _arg2):void{
if (!Enabled){
return;
};
Send(((("lc/" + Clean(_arg1)) + "/") + Clean(_arg2)));
}
private static function Clean(_arg1:String):String{
return (escape(_arg1.replace("/", "\\").replace("~", "-")));
}
public static function Play():void{
if (!Enabled){
return;
};
Plays++;
Send(("p/" + Plays));
}
private static function Send(_arg1:String, _arg2:Boolean=false):void{
Request.Queue(_arg1);
if (((((Request.Ready) || (_arg2))) || (!(Queue)))){
Request.Send();
Request = new LogRequest();
};
}
private static function GetUrl(_arg1:String):String{
var url:String;
var defaulturl = _arg1;
if (ExternalInterface.available){
try {
url = String(ExternalInterface.call("window.location.href.toString"));
} catch(s:Error) {
url = defaulturl;
};
} else {
if (defaulturl.indexOf("http://") == 0){
url = defaulturl;
};
};
if ((((((url == null)) || ((url == "")))) || ((url == "null")))){
if ((((Security.sandboxType == "localWithNetwork")) || ((Security.sandboxType == "localTrusted")))){
url = "http://local-testing/";
} else {
url = null;
};
};
return (escape(url));
}
public static function LevelRangedMetric(_arg1:String, _arg2, _arg3:int):void{
if (!Enabled){
return;
};
Send(((((("lr/" + Clean(_arg1)) + "/") + Clean(_arg2)) + "/") + _arg3));
}
private static function GetCookie(_arg1:String):int{
var _local2:SharedObject;
_local2 = SharedObject.getLocal("swfstats");
if (_local2.data[_arg1] == undefined){
return (0);
};
return (int(_local2.data[_arg1]));
}
public static function Goal(_arg1:int, _arg2:String):void{
}
private static function PingServer(... _args):void{
if (!Enabled){
return;
};
Pings++;
Send(((("t/" + (FirstPing) ? "y" : "n") + "/") + Pings), true);
if (FirstPing){
PingF.stop();
PingR.addEventListener(TimerEvent.TIMER, PingServer);
PingR.start();
FirstPing = false;
};
}
public static function LevelAverageMetric(_arg1:String, _arg2, _arg3:int):void{
if (!Enabled){
return;
};
Send(((((("la/" + Clean(_arg1)) + "/") + Clean(_arg2)) + "/") + _arg3));
}
public static function CustomMetric(_arg1:String, _arg2:String=null):void{
if (!Enabled){
return;
};
if (_arg2 == null){
_arg2 = "";
};
Send(((("c/" + Clean(_arg1)) + "/") + Clean(_arg2)));
}
}
}//package SWFStats
Section 70
//LogRequest (SWFStats.LogRequest)
package SWFStats {
import flash.events.*;
import flash.net.*;
public final class LogRequest {
public var Ready:Boolean;// = false
private var Pieces:int;
private var Data:String;// = ""
private static var Failed:int = 0;
public function LogRequest(){
Data = "";
Ready = false;
super();
}
private function SecurityErrorHandler(_arg1:SecurityErrorEvent):void{
}
public function Send():void{
var _local1:URLLoader;
_local1 = new URLLoader();
_local1.addEventListener(IOErrorEvent.IO_ERROR, this.IOErrorHandler);
_local1.addEventListener(HTTPStatusEvent.HTTP_STATUS, this.StatusChange);
_local1.addEventListener(SecurityErrorEvent.SECURITY_ERROR, this.SecurityErrorHandler);
_local1.load(new URLRequest((((((((((("http://tracker.swfstats.com/Games/q.aspx?guid=" + Log.GUID) + "&swfid=") + Log.SWFID) + "&q=") + this.Data) + "&url=") + Log.SourceUrl) + "&") + Math.random()) + "z")));
trace((((((((((("http://tracker.swfstats.com/Games/q.aspx?guid=" + Log.GUID) + "&swfid=") + Log.SWFID) + "&q=") + this.Data) + "&url=") + Log.SourceUrl) + "&") + Math.random()) + "z"));
}
private function StatusChange(_arg1:HTTPStatusEvent):void{
}
public function Queue(_arg1:String):void{
if (Failed > 3){
return;
};
this.Pieces++;
this.Data = (this.Data + (((this.Data == "")) ? "" : "~" + _arg1));
if ((((this.Pieces == 8)) || ((this.Data.length > 300)))){
this.Ready = true;
};
}
private function IOErrorHandler(_arg1:IOErrorEvent):void{
Failed++;
}
}
}//package SWFStats
Section 71
//SoundBGController (util.sound.SoundBGController)
package util.sound {
import flash.media.*;
import flash.events.*;
import flash.utils.*;
public class SoundBGController {
private static var _soundTransform:SoundTransform = new SoundTransform();
private static var _curSound:Sound;
private static var _soundChannel:SoundChannel;
public static var soundHash:Object = {};
public static function playSoundBG(_arg1:String):void{
var cl:Class;
var name = _arg1;
if (soundHash[name] == null){
try {
cl = (getDefinitionByName(name) as Class);
} catch(e:Error) {
return;
};
try {
soundHash[name] = (new (cl) as Sound);
} catch(e:Error) {
return;
};
};
try {
if (_curSound != Sound(soundHash[name])){
_curSound = Sound(soundHash[name]);
playSound();
};
} catch(e:Error) {
};
}
public static function get soundTransform():SoundTransform{
return (_soundTransform);
}
private static function soundCompleteHandler(_arg1:Event):void{
playSound();
}
public static function stopSound():void{
_soundChannel.stop();
_soundChannel.removeEventListener(Event.SOUND_COMPLETE, soundCompleteHandler);
}
public static function refreshSoundChannel():void{
if (_soundChannel != null){
_soundChannel.soundTransform = _soundTransform;
};
}
public static function get soundChannel():SoundChannel{
return (_soundChannel);
}
public static function playSound():void{
if (SoundManager.isSoundOn == false){
return;
};
if (_soundChannel != null){
stopSound();
};
_soundChannel = _curSound.play(0, 0, _soundTransform);
_soundChannel.addEventListener(Event.SOUND_COMPLETE, soundCompleteHandler);
}
}
}//package util.sound
Section 72
//SoundButton (util.sound.SoundButton)
package util.sound {
import flash.events.*;
import util.*;
import SWFStats.*;
public class SoundButton extends But {
public function SoundButton(){
addFrameScript(0, frame1, 1, frame2);
super();
setState();
}
function frame1(){
stop();
}
override protected function handleClick(_arg1:MouseEvent):void{
super.handleClick(_arg1);
SoundManager.isSoundOn = !(SoundManager.isSoundOn);
Log.CustomMetric((SoundManager.isSoundOn) ? "sound_on" : "sound_off");
setState();
}
public function setState():void{
if (SoundManager.isSoundOn == true){
gotoAndStop(1);
} else {
gotoAndStop(2);
};
}
function frame2(){
stop();
}
}
}//package util.sound
Section 73
//SoundFXController (util.sound.SoundFXController)
package util.sound {
import flash.media.*;
import flash.utils.*;
public class SoundFXController {
private static var _soundTransform:SoundTransform = new SoundTransform();
public static var soundHash:Object = {};
public static function playSoundFX(_arg1:String):void{
var cl:Class;
var name = _arg1;
if (SoundManager.isSoundOn){
if (soundHash[name] == null){
try {
cl = (getDefinitionByName(name) as Class);
} catch(e:Error) {
return;
};
try {
soundHash[name] = (new (cl) as Sound);
} catch(e:Error) {
return;
};
};
try {
Sound(soundHash[name]).play(0, 1, _soundTransform);
} catch(e:Error) {
};
};
}
public static function get soundTransform():SoundTransform{
return (_soundTransform);
}
public static function playFX(_arg1:String, _arg2:int=0):void{
var _local3:int;
if (_arg2 > 0){
_local3 = (Math.round((Math.random() * (_arg2 - 1))) + 1);
playSoundFX((_arg1 + String(_local3)));
} else {
playSoundFX(_arg1);
};
}
}
}//package util.sound
Section 74
//SoundManager (util.sound.SoundManager)
package util.sound {
import flash.net.*;
public class SoundManager {
private static const FX_VOLUME:Number = 0.3;
private static const BG_VOLUME:Number = 0.8;
private static var _isSoundOn:Boolean = true;
private static var _inited:Boolean = init();
private static var _so:SharedObject;
public static function set isSoundOn(_arg1:Boolean):void{
var value = _arg1;
if (value != _isSoundOn){
if (value == false){
try {
SoundBGController.stopSound();
} catch(e:Error) {
trace(("[Error: SoundManager try stop chanal]: " + e.message));
};
} else {
_isSoundOn = true;
SoundBGController.playSound();
};
};
_isSoundOn = value;
_so.data["isSoundOn"] = value;
_so.flush();
}
public static function get bgSoundVolume():Number{
return (SoundBGController.soundTransform.volume);
}
public static function get isSoundOn():Boolean{
return (_isSoundOn);
}
public static function set bgSoundVolume(_arg1:Number):void{
SoundBGController.soundTransform.volume = _arg1;
SoundBGController.refreshSoundChannel();
}
private static function init():Boolean{
_so = SharedObject.getLocal("sound_data");
if (_so.data["isSoundOn"] == null){
_so.data["isSoundOn"] = true;
_so.flush();
};
_isSoundOn = _so.data["isSoundOn"];
SoundBGController.soundTransform.volume = BG_VOLUME;
SoundFXController.soundTransform.volume = FX_VOLUME;
_inited = true;
return (true);
}
public static function get fxSoundVolume():Number{
return (SoundFXController.soundTransform.volume);
}
public static function set fxSoundVolume(_arg1:Number):void{
SoundFXController.soundTransform.volume = _arg1;
}
}
}//package util.sound
Section 75
//AnimateBar (util.AnimateBar)
package util {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
public class AnimateBar extends MovieClip {
private var _active:Boolean;
public var time_bonus:MovieClip;
private var time_int:Number;// = 0
private var _value:int;
private var _max:int;
private var _step:int;
private var _time_bonus:MovieClip;
public function AnimateBar(){
time_int = 0;
super();
_time_bonus = this["time_bonus"];
}
public function get active():Boolean{
return (_active);
}
public function init(_arg1:Number=0.1, _arg2:Number=60):void{
_step = (_arg1 * 1000);
_max = (_arg2 * 1000);
value = 0;
active = true;
startTimer();
}
public function startTimer():void{
if (_active){
_time_bonus.gotoAndStop(1);
stopTimer();
time_int = setInterval(update, _step);
};
}
public function set active(_arg1:Boolean):void{
_active = _arg1;
if (!_active){
value = 0;
stop();
};
}
public function get progress():Number{
return ((_value / _max));
}
public function stopTimer():void{
if (time_int != 0){
clearInterval(time_int);
};
}
public function getBonus():Number{
if (_value < _max){
_time_bonus.gotoAndPlay(2);
return (Math.round(((_max - value) / 1000)));
};
return (0);
}
public function get value():Number{
return (_value);
}
public function update():void{
value = (value + _step);
}
public function set value(_arg1:Number):void{
_value = _arg1;
if (_value < 0){
_value = 0;
};
if (progress >= 1){
dispatchEvent(new Event(Event.COMPLETE));
};
gotoAndStop(Math.ceil((progress * 100)));
}
}
}//package util
Section 76
//AnimateEngine (util.AnimateEngine)
package util {
import flash.events.*;
import flash.display.*;
public class AnimateEngine extends MovieClip {
private var animate_arr:Array;
private var MAX_COUNT:int;// = 15
private var _item_swamp:Array;
private var add_counter:int;
private var ADD_COUNT:int;// = 25
public static var _play_fl:Boolean;
public function AnimateEngine(){
MAX_COUNT = 15;
ADD_COUNT = 25;
super();
mouseEnabled = false;
mouseChildren = false;
addEventListener(Event.ENTER_FRAME, enterFrame);
_item_swamp = [];
init();
}
public function destroy(_arg1:AnimateItem):void{
_item_swamp.push(_arg1);
removeChild(_arg1);
}
public function init():void{
animate_arr = [];
_play_fl = true;
add_counter = ADD_COUNT;
addItem();
addItem();
addItem();
addItem();
addItem();
}
public function addItem(_arg1:int=0, _arg2:int=0):void{
var _local3:AnimateItem;
_local3 = getItem();
if (_arg1 == 0){
_arg1 = int((Math.random() * 480));
};
if (_arg2 == 0){
_arg2 = 620;
};
_local3.init(_arg1, _arg2);
addChild(_local3);
animate_arr.push(_local3);
}
private function enterFrame(_arg1:Event):void{
var _local2:int;
var _local3:uint;
var _local4:AnimateItem;
if (_play_fl){
if (!visible){
visible = true;
};
_local2 = animate_arr.length;
if (_local2 > 0){
_local3 = 0;
while (_local3 < _local2) {
_local4 = animate_arr[_local3];
_local4.animate();
if (_local4.check()){
_local4.destroy();
animate_arr.splice(_local3, 1);
_local2 = animate_arr.length;
} else {
_local3++;
};
};
};
if (add_counter-- < 0){
if (_local2 < MAX_COUNT){
addItem();
};
add_counter = ADD_COUNT;
};
} else {
visible = false;
};
}
private function getItem():AnimateItem{
var _local1:AnimateItem;
if (_item_swamp.length > 0){
_local1 = _item_swamp.pop();
} else {
_local1 = new AnimateItem();
};
return (_local1);
}
}
}//package util
Section 77
//AnimateItem (util.AnimateItem)
package util {
import flash.display.*;
public class AnimateItem extends MovieClip {
private var steps:Number;// = 40
private var speed:Number;
private var _color:int;
public var colors:MovieClip;
public var ts:Number;// = 0
public var tx:Number;// = 0
private var sx:int;// = 500
public var ty:Number;// = 0
private var _colors:MovieClip;
public function AnimateItem(){
tx = 0;
ty = 0;
ts = 0;
steps = 40;
sx = 500;
super();
_colors = this["colors"];
}
private function initMove():void{
tx = (x + int((((Math.random() * 4) - 2) * speed)));
ty = (y - int((((Math.random() * speed) * 5) + speed)));
_colors["plane"]["womb"].gotoAndPlay(2);
}
public function destroy():void{
AnimateEngine(parent).destroy(this);
}
public function init(_arg1:Number=0, _arg2:Number=0, _arg3:int=-1):void{
if (_arg3 == -1){
_color = Math.round((Math.random() * (GameData.COLORS - 1)));
} else {
_color = _arg3;
};
_colors["plane"].gotoAndStop((_color + 1));
_colors["plane"]["womb"]["plane"].gotoAndStop((_color + 1));
x = _arg1;
y = _arg2;
speed = int((((Math.random() * 0.4) + 0.6) * 50));
scaleX = (scaleY = (speed / 50));
initMove();
}
public function check():Boolean{
return ((((((x > sx)) || ((x < -20)))) || ((y < -20))));
}
public function animate():void{
if ((y - ty) > 20){
x = (x + ((tx - x) / steps));
y = (y + ((ty - y) / steps));
} else {
initMove();
};
}
}
}//package util
Section 78
//App (util.App)
package util {
import flash.events.*;
import flash.display.*;
import flash.net.*;
import flash.utils.*;
import mochi.as3.*;
import util.sound.*;
import SWFStats.*;
import gs.plugins.*;
import flash.ui.*;
public class App extends MovieClip {
public var views:Views;
public static var _pause_fl:Boolean;
public static var _first_time:Boolean;
public static var _game_score:MochiDigits;
public static var _win_fl:Boolean;
public static var _views:Views;
public static var _score_fl:Boolean;
public static var _hi_score:MochiDigits;
public static var _game_fl:Boolean;
public static var _username:String = "";
public static var _so:SharedObject;
public static var _stage:Stage;
public function App(){
addEventListener(Event.ADDED_TO_STAGE, addedToStage);
}
private function init():void{
TweenPlugin.activate([EndArrayPlugin, ColorMatrixFilterPlugin]);
_views = this["views"];
_stage = stage;
_stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDown);
_game_score = new MochiDigits(0);
_hi_score = new MochiDigits(0);
getUserData();
_first_time = true;
_pause_fl = false;
_game_fl = false;
_score_fl = false;
_win_fl = false;
SoundBGController.playSoundBG("jelly_theme");
}
private function addedToStage(_arg1:Event):void{
init();
}
public static function replayGame():void{
startGame();
}
public static function startGame():void{
Log.Play();
_views.showScreen(_views._game_mc);
AnimateEngine._play_fl = false;
_game_fl = true;
}
public static function howToPlay():void{
_views.showPopup(_views._how_mc);
}
public static function setHiscore(_arg1:Number=0):void{
if (_arg1 > _hi_score.value){
_hi_score.value = _arg1;
_so.data["hiscore"] = _hi_score.value;
_so.flush();
};
}
public static function hidePopup(_arg1:View):void{
_views.hide(_arg1);
}
private static function getUserData():void{
_so = SharedObject.getLocal("user_data_so");
if (_so.data["username"] == null){
setUser("player");
} else {
setUser(_so.data["username"]);
};
}
public static function setPause():void{
_pause_fl = !(_pause_fl);
GameView(_views._game_mc).setPause();
}
public static function setUser(_arg1:String):void{
_username = _arg1;
_so.data["username"] = _username;
_so.flush();
if (!isNaN(_so.data["hiscore"])){
_hi_score.value = _so.data["hiscore"];
};
showMenu();
}
public static function hiScore():void{
_views.showScreen(_views._result_mc);
_score_fl = true;
AnimateEngine._play_fl = true;
}
public static function showPopup(_arg1:View):void{
_views.showPopup(_arg1);
}
private static function keyDown(_arg1:KeyboardEvent):void{
if (_game_fl){
if (!_score_fl){
if ((((_arg1.keyCode == Keyboard.SPACE)) || ((_arg1.keyCode == Keyboard.ESCAPE)))){
setPause();
showPause();
} else {
if (_arg1.keyCode == 82){
restartGame();
};
};
};
} else {
if (_arg1.keyCode == Keyboard.SPACE){
if (_score_fl){
showMenu();
} else {
startGame();
};
};
};
}
public static function clearPause():void{
_pause_fl = false;
}
public static function endGame(_arg1:Boolean=false):void{
_win_fl = _arg1;
setTimeout(hiScore, 1000);
}
public static function restartGame():void{
GameView(_views._game_mc).restartGame();
}
public static function showPause():void{
if (_pause_fl){
howToPlay();
} else {
hidePopup(_views._how_mc);
};
}
public static function showMenu():void{
_stage.focus = _stage;
_game_score.value = 0;
_views.showScreen(_views._menu_mc);
_game_fl = false;
_score_fl = false;
_win_fl = false;
AnimateEngine._play_fl = true;
}
}
}//package util
Section 79
//Arrows (util.Arrows)
package util {
import gs.*;
import flash.display.*;
public class Arrows extends MovieClip {
public var arrow:MovieClip;
private var to:Number;// = 0
public function Arrows(){
to = 0;
super();
alpha = 0;
}
public function show(_arg1:int):void{
y = (_arg1 * GameData.GRIDY);
TweenLite.to(this, 0.3, {alpha:0.7});
}
public function hide():void{
TweenLite.to(this, 0.3, {alpha:0});
}
}
}//package util
Section 80
//Banners (util.Banners)
package util {
import flash.events.*;
import flash.display.*;
public class Banners extends MovieClip {
public var banner3:gemx_banner_cl;
public var banner2:biomass_banner_cl;
public var banner1:watr_banner;
public function Banners(){
addEventListener(MouseEvent.CLICK, clickHandler);
}
private function clickHandler(_arg1:MouseEvent):void{
if ((_arg1.target is But)){
switch (But(_arg1.target).name){
case "banner1":
LinkManager.goToURL(LinkManager.BANNER1);
break;
case "banner2":
LinkManager.goToURL(LinkManager.BANNER2);
break;
case "banner3":
LinkManager.goToURL(LinkManager.BANNER3);
break;
};
};
}
}
}//package util
Section 81
//BonusBubble (util.BonusBubble)
package util {
import flash.display.*;
import flash.text.*;
public class BonusBubble extends Bubble {
public var text_mc:MovieClip;
public function BonusBubble(){
addFrameScript(6, frame7);
cacheAsBitmap = true;
}
function frame7(){
stop();
}
override public function show(_arg1:Number=0, _arg2:Number=0, _arg3:String=""):void{
x = _arg1;
y = _arg2;
TextField(this["text_mc"]["text_tf"]).text = _arg3;
gotoAndPlay(1);
init(true);
}
}
}//package util
Section 82
//Bubble (util.Bubble)
package util {
import flash.display.*;
public class Bubble extends MovieClip {
private var bonus:Boolean;
private var gravity:Number;
public var ts:Number;// = 0
public var tx:Number;// = 0
public var ty:Number;// = 0
public function Bubble(){
tx = 0;
ty = 0;
ts = 0;
super();
cacheAsBitmap = true;
}
public function destroy():void{
BubbleEngine(parent).destroy(this);
}
public function init(_arg1:Boolean=false):void{
bonus = _arg1;
tx = ((Math.random() * 10) - 5);
ty = (Math.random() * 10);
if (!bonus){
ts = ((Math.random() * 0.6) + 0.4);
scaleX = (scaleY = ts);
} else {
ts = 1;
};
gravity = -0.5;
}
public function check():Boolean{
return ((y < -50));
}
public function animate():void{
if (ty > -5){
ty = (ty + gravity);
};
if (bonus){
tx = (tx - (tx / 5));
};
x = (x + tx);
y = (y + (ty * ts));
}
public function show(_arg1:Number=0, _arg2:Number=0, _arg3:String=""):void{
x = _arg1;
y = _arg2;
init(false);
}
}
}//package util
Section 83
//BubbleEngine (util.BubbleEngine)
package util {
import flash.events.*;
import flash.display.*;
public class BubbleEngine extends MovieClip {
private var animate_arr:Array;
private var _bubble_bonus_swamp:Array;
private var _bubble_swamp:Array;
private var _play_fl:Boolean;
public function BubbleEngine(){
mouseEnabled = false;
mouseChildren = false;
addEventListener(Event.ENTER_FRAME, enterFrame);
_bubble_swamp = [];
_bubble_bonus_swamp = [];
init();
}
public function destroy(_arg1:Bubble):void{
if ((_arg1 is BonusBubble)){
_bubble_bonus_swamp.push(_arg1);
} else {
_bubble_swamp.push(_arg1);
};
removeChild(_arg1);
}
public function init():void{
animate_arr = [];
_play_fl = true;
}
private function getBonusBubble():BonusBubble{
var _local1:BonusBubble;
if (_bubble_bonus_swamp.length > 0){
_local1 = _bubble_bonus_swamp.pop();
} else {
_local1 = new BonusBubble();
};
return (_local1);
}
private function enterFrame(_arg1:Event):void{
var _local2:int;
var _local3:uint;
var _local4:Bubble;
if (_play_fl){
_local2 = animate_arr.length;
if (_local2 > 0){
_local3 = 0;
while (_local3 < _local2) {
_local4 = animate_arr[_local3];
_local4.animate();
if (_local4.check()){
_local4.destroy();
animate_arr.splice(_local3, 1);
_local2 = animate_arr.length;
} else {
_local3++;
};
};
};
};
}
private function getBubble():Bubble{
var _local1:Bubble;
if (_bubble_swamp.length > 0){
_local1 = _bubble_swamp.pop();
} else {
_local1 = new Bubble();
};
return (_local1);
}
public function addBubbles(_arg1:int, _arg2:int):void{
var _local3:uint;
_local3 = GameData.BUBBLES_MAX;
while (_local3--) {
addBubble(_arg1, _arg2);
};
}
public function addBubble(_arg1:int, _arg2:int, _arg3:String=""):void{
var _local4:Bubble;
if (_arg3 == ""){
_local4 = getBubble();
} else {
_local4 = getBonusBubble();
};
_local4.show(_arg1, _arg2, _arg3);
addChild(_local4);
animate_arr.push(_local4);
}
}
}//package util
Section 84
//But (util.But)
package util {
import gs.*;
import flash.events.*;
import flash.display.*;
import util.sound.*;
import gs.easing.*;
public class But extends MovieClip {
public var _active:Boolean;
public function But(){
active = true;
mouseChildren = false;
addEventListener(MouseEvent.MOUSE_OVER, handleMouseOver);
addEventListener(MouseEvent.MOUSE_OUT, handleMouseOut);
addEventListener(MouseEvent.CLICK, handleClick);
}
public function get active():Boolean{
return (_active);
}
public function set active(_arg1:Boolean):void{
_active = _arg1;
mouseEnabled = _active;
buttonMode = _active;
}
protected function handleClick(_arg1:MouseEvent):void{
if (_active){
TweenLite.to(this, 1, {scaleX:1, scaleY:1, ease:Elastic.easeOut});
SoundFXController.playFX("button");
};
}
protected function handleMouseOut(_arg1:MouseEvent):void{
if (_active){
TweenLite.to(this, 1, {scaleX:1, scaleY:1, ease:Elastic.easeOut});
};
}
protected function handleMouseOver(_arg1:MouseEvent):void{
if (_active){
TweenLite.to(this, 1, {scaleX:1.1, scaleY:1.1, ease:Elastic.easeOut});
};
}
}
}//package util
Section 85
//GameData (util.GameData)
package util {
public class GameData {
public static var CHECK_COUNTER:int = 1;
public static var COLORS:int = 6;
public static var BUBBLES_MAX:uint = 3;
public static var GRIDX:int = 50;
public static var GRIDY:int = 50;
public static var PROGREESS_BAR_BACKWARD:Number = 5;
public static var SPEED:int = 10;
public static var PROGREESS_BAR_MAX:Number = 120;
public static var GAP:int = 0;
public static var SIZEX:int = 8;
public static var SIZEY:int = 10;
public static var SCORE_STEP:int = 3;
public static var PROGREESS_BAR_STEP:Number = 0.1;
}
}//package util
Section 86
//GameMessage (util.GameMessage)
package util {
import flash.display.*;
import flash.text.*;
public class GameMessage extends MovieClip {
public var text_mc:MovieClip;
public function GameMessage(){
addFrameScript(0, frame1, 49, frame50);
this.mouseEnabled = false;
this.mouseChildren = false;
visible = false;
}
function frame1(){
stop();
}
public function hide():void{
visible = false;
gotoAndStop(1);
}
function frame50(){
hide();
}
public function show(_arg1:String, _arg2:Number=0):void{
visible = true;
TextField(this["text_mc"]["text_tf"]).text = _arg1;
gotoAndPlay(1);
}
}
}//package util
Section 87
//GameTimer (util.GameTimer)
package util {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
import flash.text.*;
public class GameTimer extends MovieClip {
private var _timer:Timer;
private var _text_tf:TextField;
private var _counter:int;
public var text_tf:TextField;
public function GameTimer(){
_timer = new Timer(1000);
_timer.addEventListener(TimerEvent.TIMER, onTimer);
_text_tf = this["text_tf"];
}
public function startTimer():void{
_counter = 0;
onTimer(null);
_timer.start();
}
public function stopTimer():void{
_timer.stop();
}
private function onTimer(_arg1:TimerEvent):void{
_text_tf.text = String(_counter++);
}
}
}//package util
Section 88
//GameView (util.GameView)
package util {
import flash.events.*;
import game.*;
import util.sound.*;
import SWFStats.*;
public class GameView extends View {
public var progress_bar:ProgressTimeBar;
public var game_mc:Game;
public var _label_mc:GameMessage;
public var _points_mc:Points;
public var pause_bt:pause_cl;
private var _restart_bt:But;
public var points_mc:Points;
public var sound_bt:SoundButton;
private var _pause_bt:But;
public var restart_bt:restart_cl;
public var label_mc:GameMessage;
public var _game_mc:Game;
public var _progress_bar:ProgressTimeBar;
private var _sound_bt:SoundButton;
public function GameView(){
init();
}
public function init():void{
_label_mc = this["label_mc"];
_points_mc = this["points_mc"];
_progress_bar = this["progress_bar"];
_sound_bt = this["sound_bt"];
_restart_bt = this["restart_bt"];
_pause_bt = this["pause_bt"];
_restart_bt.addEventListener(MouseEvent.CLICK, onRestart);
_pause_bt.addEventListener(MouseEvent.CLICK, onPause);
_game_mc = this["game_mc"];
_game_mc.init();
}
public function initGame():void{
_points_mc.points = 0;
_game_mc.initGame();
if (App._first_time){
App._first_time = false;
App.setPause();
App.showPause();
};
_sound_bt.setState();
}
private function onRestart(_arg1:MouseEvent):void{
Log.CustomMetric("restart");
App.restartGame();
}
private function onPause(_arg1:MouseEvent):void{
Log.CustomMetric("pause");
App.setPause();
App.showPause();
}
public function endGame():void{
_progress_bar.stopTimer();
App.endGame();
}
public function restartGame():void{
initGame();
_label_mc.show("RESTART");
}
public function setPause():void{
_game_mc.setPause();
if (App._pause_fl){
_progress_bar.stopTimer();
} else {
_progress_bar.startTimer();
};
}
override public function show():void{
initGame();
}
}
}//package util
Section 89
//HowPopup (util.HowPopup)
package util {
import flash.events.*;
import flash.display.*;
public class HowPopup extends Popup {
public var _video_bt:But;
public var _menu_bt:But;
public var anim:MovieClip;
public var pause_icon:MovieClip;
public var menu_bt:menu_cl;
public var ok_bt:continue_cl;
public var video_bt:video_cl;
public function HowPopup(){
_menu_bt = this["menu_bt"];
_menu_bt.addEventListener(MouseEvent.CLICK, menuHandler);
_video_bt = this["video_bt"];
_video_bt.addEventListener(MouseEvent.CLICK, videoHandler);
}
private function menuHandler(_arg1:MouseEvent):void{
App.clearPause();
App.showMenu();
}
private function videoHandler(_arg1:MouseEvent):void{
LinkManager.goToURL(LinkManager.VIDEO_HOW);
}
override protected function okHandler(_arg1:MouseEvent):void{
App.setPause();
App.showPause();
}
override public function show():void{
MovieClip(this["anim"]).gotoAndPlay(1);
MovieClip(this["pause_icon"]).gotoAndPlay(1);
}
}
}//package util
Section 90
//LinkManager (util.LinkManager)
package util {
import flash.net.*;
import SWFStats.*;
import com.midasplayer.*;
public class LinkManager {
public static const BANNER1:String = "banner1";
public static const MORE_GAMES:String = "more";
public static const BANNER3:String = "banner3";
public static const BANNER2:String = "banner2";
public static const VIDEO_HOW:String = "video_how";
public static const FUNFLOW_SPLASH:String = "funflow_splash";
public static const FUNFLOW_CONTEXT:String = "funflow_context";
public static const HISCORE:String = "hiscore";
public static const FUNFLOW_LOGO:String = "funflow_logo";
public static const SUBMIT:String = "submit";
public static const VIDEO:String = "video";
public static const HOST:String = "host";
public static const SQIRRELSQUARE_SPLASH:String = "squirrelsquare_splash";
public static const CLOSE_AD:String = "close_ad";
public static const SQUIRRELSQUARE:String = "squirrelsquare";
public static const SQIRRELSQUARE_CONTEXT:String = "squirrelsquare_context";
private static var _game_url:String = "http://apps.facebook.com/funflow/game.jsp?gameId=132&ref=deep-trip";
private static var _biomass_ref:String = "&ref=deep-trip_biomass";
private static var _watr_url:String = "http://apps.facebook.com/funflow/game.jsp?gameId=138";
private static var _gemx_url:String = "http://apps.facebook.com/funflow/game.jsp?gameId=126";
private static var _squirrel_url:String = "http://squirrelsquare.com";
private static var _biomass_url:String = "http://apps.facebook.com/funflow/game.jsp?gameId=81";
private static var _watr_ref:String = "&ref=deep-trip_we-are-the-robots";
private static var _gemx_ref:String = "&ref=deep-trip_gemclix";
public static function goToURL(_arg1:String):void{
var _local2:String;
_local2 = "";
switch (_arg1){
case SQIRRELSQUARE_CONTEXT:
_local2 = _squirrel_url;
break;
case FUNFLOW_CONTEXT:
_local2 = _game_url;
break;
case SQIRRELSQUARE_SPLASH:
_local2 = _squirrel_url;
break;
case FUNFLOW_SPLASH:
_local2 = _game_url;
break;
case FUNFLOW_LOGO:
_local2 = _game_url;
break;
case SQUIRRELSQUARE:
_local2 = _squirrel_url;
break;
case HISCORE:
FunflowAPI.openHighscoresLink();
break;
case MORE_GAMES:
FunflowAPI.openOtherGamesLink();
break;
case BANNER1:
_local2 = (FunflowAPI.isHome) ? _watr_url : (_watr_url + _watr_ref);
_arg1 = (_arg1 + (FunflowAPI.isHome) ? "_funflow" : "");
break;
case BANNER2:
_local2 = (FunflowAPI.isHome) ? _biomass_url : (_biomass_url + _biomass_ref);
_arg1 = (_arg1 + (FunflowAPI.isHome) ? "_funflow" : "");
break;
case BANNER3:
_local2 = (FunflowAPI.isHome) ? _gemx_url : (_gemx_url + _gemx_ref);
_arg1 = (_arg1 + (FunflowAPI.isHome) ? "_funflow" : "");
break;
case CLOSE_AD:
_local2 = _game_url;
break;
case HOST:
FunflowAPI.openAddToWebsiteLink();
break;
case VIDEO:
FunflowAPI.openSolutionsLink();
break;
case VIDEO_HOW:
FunflowAPI.openSolutionsLink();
break;
case SUBMIT:
_local2 = _game_url;
break;
};
if (_local2 != ""){
navigateToURL(new URLRequest(_local2), "_blank");
};
Log.CustomMetric(_arg1.toUpperCase());
}
}
}//package util
Section 91
//Menu (util.Menu)
package util {
import flash.events.*;
import flash.display.*;
import util.sound.*;
import com.midasplayer.*;
public class Menu extends View {
public var hiscore_bt:hiscore;
private var _host_bt:But;
public var _more_bt:But;
public var host_bt:host_cl;
private var _walk_bt:But;
public var start_bt:start_cl;
public var more_bt:more;
public var _logo:MovieClip;
public var sound_bt:SoundButton;
public var walk_bt:walktrougth_cl;
public var _start_bt:But;
public var logo:logo_cl;
public var _hiscore_bt:But;
public var _how_bt:But;
public var _sound_bt:SoundButton;
public function Menu(){
addFrameScript(0, frame1);
_start_bt = this["start_bt"];
_hiscore_bt = this["hiscore_bt"];
_more_bt = this["more_bt"];
_logo = this["logo"];
_sound_bt = this["sound_bt"];
_host_bt = this["host_bt"];
_walk_bt = this["walk_bt"];
addEventListener(MouseEvent.CLICK, clickHandler);
}
function frame1(){
stop();
}
private function clickHandler(_arg1:MouseEvent):void{
if ((_arg1.target is But)){
trace(But(_arg1.target).name);
switch (But(_arg1.target).name){
case "start_bt":
App.startGame();
break;
case "more_bt":
LinkManager.goToURL(LinkManager.MORE_GAMES);
break;
case "hiscore_bt":
LinkManager.goToURL(LinkManager.HISCORE);
break;
case "host_bt":
LinkManager.goToURL(LinkManager.HOST);
break;
case "walk_bt":
LinkManager.goToURL(LinkManager.VIDEO);
break;
};
};
}
override public function show():void{
_sound_bt.setState();
_hiscore_bt.active = !(FunflowAPI.isHome);
}
}
}//package util
Section 92
//Points (util.Points)
package util {
import gs.*;
import flash.display.*;
import gs.easing.*;
import flash.text.*;
public class Points extends MovieClip {
private var _text_tf:TextField;
public var text_tf:TextField;
public function Points(){
this.mouseEnabled = false;
this.mouseChildren = false;
_text_tf = this["text_tf"];
}
public function get points():Number{
return (App._game_score.value);
}
public function get format_points():String{
var _local1:String;
_local1 = String(points);
while (_local1.length < 7) {
_local1 = ("0" + _local1);
};
return (_local1);
}
public function update():void{
_text_tf.text = format_points;
scaleX = (scaleY = 1.2);
TweenLite.to(this, 1, {scaleX:1, scaleY:1, ease:Elastic.easeOut});
}
public function set points(_arg1:Number):void{
App._game_score.value = _arg1;
update();
}
}
}//package util
Section 93
//Popup (util.Popup)
package util {
import flash.events.*;
public class Popup extends View {
public var _ok_bt:But;
public function Popup(){
_ok_bt = this["ok_bt"];
_ok_bt.addEventListener(MouseEvent.CLICK, okHandler);
}
protected function okHandler(_arg1:MouseEvent):void{
App.hidePopup(this);
}
}
}//package util
Section 94
//Preloader (util.Preloader)
package util {
import flash.events.*;
import flash.display.*;
import mochi.as3.*;
import SWFStats.*;
import com.midasplayer.*;
import flash.text.*;
import kongregate.*;
import flash.ui.*;
public class Preloader extends MovieClip {
private var _initialized:Boolean;
public var loader_plane:MovieClip;
public var play_bt:play_cl;
private var _banned:Boolean;
public var logo:logo_cl;
public var text_tf:TextField;
public static var _loaderInfo:LoaderInfo;
public function Preloader(){
addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 4, frame5);
_banned = false;
_initialized = false;
stop();
addEventListener(Event.ADDED_TO_STAGE, addedToStage);
}
private function initPlaytomic():void{
Log.View(1207, "1fa595967bab", _loaderInfo.loaderURL);
}
private function initKongregate():void{
var _local1:KongregateAPI;
_local1 = new KongregateAPI();
addChild(_local1);
_local1.init(_loaderInfo);
}
private function createContextMenu():void{
var _local1:ContextMenu;
var _local2:ContextMenuItem;
var _local3:ContextMenuItem;
_local1 = new ContextMenu();
_local1.hideBuiltInItems();
_local2 = new ContextMenuItem("Play on Funflow");
_local3 = new ContextMenuItem("SquirrelSquare game developers");
_local2.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, openFunflow);
_local3.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, openSqSq);
_local1.customItems.push(_local2, _local3);
this.contextMenu = _local1;
}
private function banned(_arg1:Event):void{
_banned = true;
}
private function addedToStage(_arg1:Event):void{
this.addEventListener(Event.ENTER_FRAME, onEnterFrame);
But(this["play_bt"]).addEventListener(MouseEvent.CLICK, startGame);
But(this["play_bt"]).visible = false;
MovieClip(this["loader_plane"]).visible = true;
TextField(this["text_tf"]).visible = true;
}
function frame3(){
stop();
stop();
}
function frame1(){
stop();
}
function frame4(){
stop();
}
function frame5(){
stop();
}
private function startGame(_arg1:MouseEvent):void{
gotoAndStop(3);
}
private function openFunflow(_arg1:ContextMenuEvent):void{
LinkManager.goToURL(LinkManager.FUNFLOW_CONTEXT);
}
function frame2(){
stop();
}
private function onEnterFrame(_arg1:Event):void{
var _local2:int;
if (_loaderInfo == null){
getMainLoaderInfo();
};
_local2 = ((100 * _loaderInfo.bytesLoaded) / _loaderInfo.bytesTotal);
this["loader_plane"]["plane"].scaleX = (_local2 / 100);
if (_loaderInfo.bytesLoaded == _loaderInfo.bytesTotal){
if (_initialized){
if (!_banned){
But(this["play_bt"]).visible = true;
MovieClip(this["loader_plane"]).visible = false;
TextField(this["text_tf"]).visible = false;
} else {
this["text_tf"].htmlText = "<b>Domain banned.</b>";
};
this.removeEventListener(Event.ENTER_FRAME, onEnterFrame);
};
};
}
private function openSqSq(_arg1:ContextMenuEvent):void{
LinkManager.goToURL(LinkManager.SQIRRELSQUARE_CONTEXT);
}
private function initialized(_arg1:Event):void{
_initialized = true;
}
private function initFunflow():void{
FunflowAPI.addEventListener(FunflowAPI.INITIALIZED_EVENT, initialized);
FunflowAPI.addEventListener(FunflowAPI.HOST_BANNED_EVENT, banned);
FunflowAPI.init("deep-trip", _loaderInfo);
}
public function getMainLoaderInfo():void{
_loaderInfo = root.loaderInfo;
if (_loaderInfo.loader != null){
_loaderInfo = _loaderInfo.loader.loaderInfo;
};
createContextMenu();
MochiBot.track(this, "c2fc0f4d");
initPlaytomic();
initFunflow();
initKongregate();
}
}
}//package util
Section 95
//ProgressTimeBar (util.ProgressTimeBar)
package util {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
public class ProgressTimeBar extends Sprite {
private var _active:Boolean;
public var bar_mc:MovieClip;
private var _bar:Sprite;
private var _alert:MovieClip;
public var alert:MovieClip;
private var _value:int;
private var time_int:Number;// = 0
private var _max:int;
private var _step:int;
public function ProgressTimeBar(){
time_int = 0;
super();
_bar = this["bar_mc"];
_alert = this["alert"];
}
public function backward(_arg1:int):void{
value = (value - (_arg1 * _step));
}
public function get active():Boolean{
return (_active);
}
public function init(_arg1:Number=0.1, _arg2:Number=60):void{
_bar.scaleX = 1;
_alert.visible = false;
_step = (_arg1 * 1000);
_max = (_arg2 * 1000);
value = 0;
active = true;
startTimer();
}
public function startTimer():void{
if (_active){
stopTimer();
time_int = setInterval(update, _step);
};
}
public function set active(_arg1:Boolean):void{
_active = _arg1;
if (!_active){
value = 0;
stopTimer();
};
}
public function get progress():Number{
return ((1 - (_value / _max)));
}
public function stopTimer():void{
if (time_int != 0){
clearInterval(time_int);
};
}
public function get value():Number{
return (_value);
}
public function update():void{
value = (value + _step);
}
public function set value(_arg1:Number):void{
_value = _arg1;
if (_value < 0){
_value = 0;
};
trace(_value);
if (((!(_alert.visible)) && ((_value >= ((_max / 3) * 2))))){
_alert.visible = true;
};
if (progress <= 0){
dispatchEvent(new Event(Event.COMPLETE));
};
_bar.scaleX = progress;
}
}
}//package util
Section 96
//ResultPoints (util.ResultPoints)
package util {
import gs.*;
import flash.events.*;
import flash.display.*;
import gs.easing.*;
import flash.text.*;
public class ResultPoints extends MovieClip {
private var _points:Number;
private var _cur_points:Number;
private var _text_tf:TextField;
private var _step:int;
public var text_tf:TextField;
public function ResultPoints(){
this.mouseEnabled = false;
this.mouseChildren = false;
_text_tf = this["text_tf"];
}
public function get format_points():String{
var _local1:String;
_local1 = String(_cur_points);
while (_local1.length < 7) {
_local1 = ("0" + _local1);
};
return (_local1);
}
private function completePoints(_arg1:Boolean):void{
_text_tf.htmlText = (("<b>" + _points) + "</b>");
if (_arg1){
removeEventListener(Event.ENTER_FRAME, update);
};
scaleX = (scaleY = 1.6);
TweenLite.to(this, 1, {scaleX:1, scaleY:1, ease:Elastic.easeOut});
dispatchEvent(new Event(Event.COMPLETE));
}
public function update(_arg1:Event):void{
if (_cur_points < _points){
_cur_points = (_cur_points + _step);
if (_cur_points > _points){
_cur_points = _points;
};
_text_tf.htmlText = (("<b>" + _cur_points) + "</b>");
} else {
completePoints(true);
};
}
public function set points(_arg1:Number):void{
_points = _arg1;
_cur_points = 0;
_step = (_points / 100);
trace(_step);
if ((((_points > 0)) && ((_step > 0)))){
addEventListener(Event.ENTER_FRAME, update);
} else {
completePoints(false);
};
}
}
}//package util
Section 97
//ResultPopup (util.ResultPopup)
package util {
import flash.events.*;
import flash.display.*;
import SWFStats.*;
import com.midasplayer.*;
import CPMStar.*;
import flash.text.*;
import kongregate.*;
public class ResultPopup extends Popup {
public var ad:Ad;
public var end_text:MovieClip;
public var ok_bt:menu_result_bt;
public var replay_bt:replay_cl;
public var submit_bt:submit_cl;
public var submit_tf:TextField;
public function ResultPopup(){
this["replay_bt"].addEventListener(MouseEvent.CLICK, replayHandler);
this["submit_bt"].addEventListener(MouseEvent.CLICK, submitHandler);
ResultPoints(this["end_text"]["result_points"]).addEventListener(Event.COMPLETE, pointsComplete);
}
private function submitHandler(_arg1:MouseEvent=null):void{
if (_arg1 != null){
Log.CustomMetric("submit_bt");
};
if (FunflowAPI.isHome){
FunflowAPI.submitScore(App._hi_score.value);
} else {
LinkManager.goToURL(LinkManager.SUBMIT);
};
}
private function submitKongregate():void{
KongregateAPI.api.stats.submit("Highscore", App._hi_score.value);
}
private function closeHandler():void{
if (((!(FunflowAPI.isHome)) && (!(KongregateAPI.isHome)))){
Ad(this["ad"]).hide();
};
App.showMenu();
}
private function pointsComplete(_arg1:Event):void{
But(this["submit_bt"]).active = true;
But(this["replay_bt"]).active = true;
But(this["ok_bt"]).active = true;
But(this["submit_bt"]).active = !(FunflowAPI.isHome);
}
private function replayHandler(_arg1:MouseEvent):void{
Log.CustomMetric("replay");
App.replayGame();
}
override protected function okHandler(_arg1:MouseEvent):void{
closeHandler();
}
override public function show():void{
App.setHiscore(App._game_score.value);
if (FunflowAPI.isHome){
submitHandler();
};
submitKongregate();
TextField(this["submit_tf"]).htmlText = (FunflowAPI.isHome) ? "<b>Score submitted!</b>" : "<b>Submit to compete!</b>";
TextField(this["end_text"]["top_tf"]).htmlText = (("<b>" + String(App._hi_score.value)) + "</b>");
MovieClip(this["ad"]).visible = ((!(FunflowAPI.isHome)) && (!(KongregateAPI.isHome)));
if (((!(FunflowAPI.isHome)) && (!(KongregateAPI.isHome)))){
Ad(this["ad"]).show();
};
But(this["submit_bt"]).active = false;
But(this["replay_bt"]).active = false;
But(this["ok_bt"]).active = false;
ResultPoints(this["end_text"]["result_points"]).points = App._game_score.value;
}
}
}//package util
Section 98
//SqSqLogo (util.SqSqLogo)
package util {
import flash.events.*;
public class SqSqLogo extends But {
override protected function handleClick(_arg1:MouseEvent):void{
super.handleClick(_arg1);
LinkManager.goToURL(LinkManager.SQUIRRELSQUARE);
}
}
}//package util
Section 99
//Util (util.Util)
package util {
import flash.display.*;
public class Util {
public static function isDate(_arg1:Number, _arg2:Number, _arg3:Number):Boolean{
var _local4:Date;
var _local5:Date;
_local4 = new Date();
_local5 = new Date(_arg1, _arg2, _arg3);
return ((_local4.valueOf() < _local5.valueOf()));
}
public static function isDomain(_arg1:String, _arg2:Boolean):Boolean{
var _local3:Boolean;
var _local4:LoaderInfo;
var _local5:String;
var _local6:String;
var _local7:RegExp;
_local3 = false;
_local4 = Preloader._loaderInfo;
_local5 = _local4.loaderURL;
_local6 = (("^http(|s)://(" + _arg1) + ")/");
_local7 = new RegExp(_local6, "i");
_local3 = _local7.test(_local5);
return (_local3);
}
}
}//package util
Section 100
//View (util.View)
package util {
import flash.display.*;
public class View extends MovieClip {
public function hide():void{
}
public function show():void{
}
}
}//package util
Section 101
//Views (util.Views)
package util {
import gs.*;
import flash.display.*;
import gs.easing.*;
public class Views extends MovieClip {
public var _how_mc:View;
public var game_mc:GameView;
public var _menu_mc:View;
public var menu_mc:Menu;
public var _result_mc:View;
public var _game_mc:View;
public var how_mc:HowPopup;
public var result_mc:ResultPopup;
public function Views(){
_menu_mc = this["menu_mc"];
_game_mc = this["game_mc"];
_result_mc = this["result_mc"];
_how_mc = this["how_mc"];
hideAll();
}
private function hideAll():void{
var _local1:*;
_local1 = 0;
while (_local1 < numChildren) {
hide(View(getChildAt(_local1)));
_local1++;
};
}
public function hide(_arg1:View):void{
TweenLite.to(_arg1, 0, {autoAlpha:0});
}
public function showPopup(_arg1:View):void{
_arg1.show();
show(_arg1);
}
public function showScreen(_arg1:View):void{
hideAll();
_arg1.show();
show(_arg1);
}
public function show(_arg1:View):void{
_arg1.alpha = 0;
_arg1.x = -500;
TweenLite.to(_arg1, 0.3, {autoAlpha:1, x:0, ease:Quad.easeIn});
}
}
}//package util
Section 102
//ad_close_cl (ad_close_cl)
package {
import util.*;
public dynamic class ad_close_cl extends But {
}
}//package
Section 103
//biomass_banner_cl (biomass_banner_cl)
package {
import util.*;
public dynamic class biomass_banner_cl extends But {
}
}//package
Section 104
//continue_cl (continue_cl)
package {
import util.*;
public dynamic class continue_cl extends But {
}
}//package
Section 105
//funflow_horizontal (funflow_horizontal)
package {
import com.midasplayer.*;
public dynamic class funflow_horizontal extends FunflowLogo {
}
}//package
Section 106
//gemx_banner_cl (gemx_banner_cl)
package {
import util.*;
public dynamic class gemx_banner_cl extends But {
}
}//package
Section 107
//hiscore (hiscore)
package {
import util.*;
public dynamic class hiscore extends But {
}
}//package
Section 108
//host_cl (host_cl)
package {
import util.*;
public dynamic class host_cl extends But {
}
}//package
Section 109
//jelly_theme (jelly_theme)
package {
import flash.media.*;
public dynamic class jelly_theme extends Sound {
}
}//package
Section 110
//line (line)
package {
import flash.media.*;
public dynamic class line extends Sound {
}
}//package
Section 111
//logo_cl (logo_cl)
package {
import util.*;
public dynamic class logo_cl extends SqSqLogo {
}
}//package
Section 112
//menu_cl (menu_cl)
package {
import util.*;
public dynamic class menu_cl extends But {
}
}//package
Section 113
//menu_result_bt (menu_result_bt)
package {
import util.*;
public dynamic class menu_result_bt extends But {
}
}//package
Section 114
//more (more)
package {
import util.*;
public dynamic class more extends But {
}
}//package
Section 115
//ok_cl (ok_cl)
package {
import util.*;
public dynamic class ok_cl extends But {
}
}//package
Section 116
//pause_cl (pause_cl)
package {
import util.*;
public dynamic class pause_cl extends But {
}
}//package
Section 117
//play_cl (play_cl)
package {
import util.*;
public dynamic class play_cl extends But {
}
}//package
Section 118
//replay_cl (replay_cl)
package {
import util.*;
public dynamic class replay_cl extends But {
}
}//package
Section 119
//restart_cl (restart_cl)
package {
import util.*;
public dynamic class restart_cl extends But {
}
}//package
Section 120
//start_cl (start_cl)
package {
import util.*;
public dynamic class start_cl extends But {
}
}//package
Section 121
//submit_cl (submit_cl)
package {
import util.*;
public dynamic class submit_cl extends But {
}
}//package
Section 122
//touch (touch)
package {
import flash.media.*;
public dynamic class touch extends Sound {
}
}//package
Section 123
//video_cl (video_cl)
package {
import util.*;
public dynamic class video_cl extends But {
}
}//package
Section 124
//walktrougth_cl (walktrougth_cl)
package {
import util.*;
public dynamic class walktrougth_cl extends But {
}
}//package
Section 125
//watr_banner (watr_banner)
package {
import util.*;
public dynamic class watr_banner extends But {
}
}//package