Section 1
//classCombos (classes.classCombos)
package classes {
import flash.geom.*;
public class classCombos {
private var _aPatterns:Array;
private var _WILDCARD:uint;
public function classCombos(){
_WILDCARD = classINC._SYMBOL_WILDCARD;
_aPatterns = new Array();
_aPatterns.push([[1, 1], [2, 0]]);
_aPatterns.push([[1, -1], [2, 0]]);
_aPatterns.push([[1, 1], [0, 2]]);
_aPatterns.push([[-1, 1], [0, 2]]);
_aPatterns.push([[1, 0], [2, 1]]);
_aPatterns.push([[1, 1], [2, 1]]);
_aPatterns.push([[0, 1], [-1, 2]]);
_aPatterns.push([[-1, 1], [-1, 2]]);
_aPatterns.push([[1, -1], [2, -1]]);
_aPatterns.push([[1, 0], [2, -1]]);
_aPatterns.push([[0, 1], [1, 2]]);
_aPatterns.push([[1, 1], [1, 2]]);
_aPatterns.push([[1, 0], [3, 0]]);
_aPatterns.push([[2, 0], [3, 0]]);
_aPatterns.push([[0, 1], [0, 3]]);
_aPatterns.push([[0, 2], [0, 3]]);
}
private function searchVCombo(_arg1:Point, _arg2:uint, _arg3:Array):Array{
var _local4:Array;
var _local5:int;
_local4 = new Array();
_local4.push([_arg1.y, _arg1.x]);
_local5 = (_arg1.y - 1);
while (_local5 >= 0) {
if (_arg3[_local5][_arg1.x].colour >= classINC._SYMBOL_ROCK){
break;
} else {
if ((((((_arg3[_local5][_arg1.x].colour == _arg2)) || ((_arg3[_local5][_arg1.x].colour == _WILDCARD)))) && (!(_arg3[_local5][_arg1.x].isMarked)))){
_local4.push([_local5, _arg1.x]);
} else {
break;
};
};
_local5--;
};
_local5 = (_arg1.y + 1);
while (_local5 < _arg3.length) {
if (_arg3[_local5][_arg1.x].colour >= classINC._SYMBOL_ROCK){
break;
} else {
if ((((((_arg3[_local5][_arg1.x].colour == _arg2)) || ((_arg3[_local5][_arg1.x].colour == _WILDCARD)))) && (!(_arg3[_local5][_arg1.x].isMarked)))){
_local4.push([_local5, _arg1.x]);
} else {
break;
};
};
_local5++;
};
return (_local4);
}
public function getIndestructibleTiles(_arg1:Array, _arg2:Array):void{
var _local3:int;
var _local4:int;
_local3 = 0;
while (_local3 < _arg2.length) {
_local4 = 0;
while (_local4 < _arg2[0].length) {
if (_arg2[_local3][_local4] != null){
if (_arg2[_local3][_local4].colour >= classINC._SYMBOL_ROCK){
if (!_arg2[_local3][_local4].isSpellMarked){
_arg1.push(new Array(_local3, _local4));
_arg2[_local3][_local4].isSpellMarked = true;
};
};
};
_local4++;
};
_local3++;
};
}
public function getSwappableTiles(_arg1:Array, _arg2:Array, _arg3:Array):void{
var _local4:uint;
var _local5:uint;
_local4 = _arg1[0];
_local5 = _arg1[1];
if (_local4 > 0){
addSpellTile(new Array((_local4 - 1), _local5), _arg2, _arg3);
};
if (_local4 < (_arg3.length - 1)){
addSpellTile(new Array((_local4 + 1), _local5), _arg2, _arg3);
};
if (_local5 > 0){
addSpellTile(new Array(_local4, (_local5 - 1)), _arg2, _arg3);
};
if (_local5 < (_arg3[_local4].length - 1)){
addSpellTile(new Array(_local4, (_local5 + 1)), _arg2, _arg3);
};
}
private function searchVWildcardCombo(_arg1:Point, _arg2:uint, _arg3:Array):Array{
var _local4:Array;
var _local5:Array;
var _local6:Array;
var _local7:int;
var _local8:uint;
_local4 = new Array();
_local5 = new Array();
_local6 = new Array();
_local4.push([_arg1.y, _arg1.x]);
_local7 = (_arg1.y - 1);
while (_local7 >= 0) {
if (_arg3[_local7][_arg1.x].colour >= classINC._SYMBOL_ROCK){
break;
};
if ((((_arg2 == _WILDCARD)) && (!((_arg3[_local7][_arg1.x].colour == _WILDCARD))))){
_arg2 = _arg3[_local7][_arg1.x].colour;
};
if ((((((_arg3[_local7][_arg1.x].colour == _arg2)) || ((_arg3[_local7][_arg1.x].colour == _WILDCARD)))) && (!(_arg3[_local7][_arg1.x].isMarked)))){
_local5.push([_local7, _arg1.x]);
} else {
break;
};
_local7--;
};
_arg2 = _WILDCARD;
_local7 = (_arg1.y + 1);
while (_local7 < _arg3.length) {
if (_arg3[_local7][_arg1.x].colour >= classINC._SYMBOL_ROCK){
break;
};
if ((((_arg2 == _WILDCARD)) && (!((_arg3[_local7][_arg1.x].colour == _WILDCARD))))){
_arg2 = _arg3[_local7][_arg1.x].colour;
};
if ((((((_arg3[_local7][_arg1.x].colour == _arg2)) || ((_arg3[_local7][_arg1.x].colour == _WILDCARD)))) && (!(_arg3[_local7][_arg1.x].isMarked)))){
_local6.push([_local7, _arg1.x]);
} else {
break;
};
_local7++;
};
if (_local5.length >= 2){
_local8 = 0;
while (_local8 < _local5.length) {
_local4.push(_local5[_local8]);
_local8++;
};
} else {
if (_local5.length == 1){
if (_local6.length >= 1){
if (_arg3[_local5[0][0]][_local5[0][1]].colour == _arg3[_local6[0][0]][_local6[0][1]].colour){
_local8 = 0;
while (_local8 < _local5.length) {
_local4.push(_local5[_local8]);
_local8++;
};
};
};
};
};
if (_local6.length >= 2){
_local8 = 0;
while (_local8 < _local6.length) {
_local4.push(_local6[_local8]);
_local8++;
};
} else {
if (_local6.length == 1){
if (_local5.length >= 1){
if (_arg3[_local5[0][0]][_local5[0][1]].colour == _arg3[_local6[0][0]][_local6[0][1]].colour){
_local8 = 0;
while (_local8 < _local6.length) {
_local4.push(_local6[_local8]);
_local8++;
};
};
};
};
};
return (_local4);
}
public function getColumnTiles(_arg1:uint, _arg2:uint, _arg3:Array, _arg4:Array):void{
var _local5:uint;
var _local6:uint;
var _local7:uint;
var _local8:uint;
_local5 = (_arg1 * uint((_arg4[0].length / _arg2)));
_local6 = ((_local5 + uint((_arg4[0].length / _arg2))) - 1);
_local7 = getRandom(_local5, _local6);
_local8 = 0;
while (_local8 < _arg4.length) {
if (_arg4[_local8][_local7] != null){
if (!_arg4[_local8][_local7].isSpellMarked){
_arg3.push(new Array(_local8, _local7));
_arg4[_local8][_local7].isSpellMarked = true;
};
};
_local8++;
};
}
public function getAdjacentTiles(_arg1:Array, _arg2:Array, _arg3:Array):void{
var _local4:uint;
var _local5:uint;
_local4 = _arg1[0];
_local5 = _arg1[1];
if (_local4 > 0){
addSpellTile(new Array((_local4 - 1), _local5), _arg2, _arg3);
};
if (_local4 < (_arg3.length - 1)){
addSpellTile(new Array((_local4 + 1), _local5), _arg2, _arg3);
};
if (_local5 > 0){
addSpellTile(new Array(_local4, (_local5 - 1)), _arg2, _arg3);
};
if (_local5 < (_arg3[_local4].length - 1)){
addSpellTile(new Array(_local4, (_local5 + 1)), _arg2, _arg3);
};
if ((((_local4 > 0)) && ((_local5 > 0)))){
addSpellTile(new Array((_local4 - 1), (_local5 - 1)), _arg2, _arg3);
};
if ((((_local4 > 0)) && ((_local5 < (_arg3[_local4].length - 1))))){
addSpellTile(new Array((_local4 - 1), (_local5 + 1)), _arg2, _arg3);
};
if ((((_local4 < (_arg3.length - 1))) && ((_local5 > 0)))){
addSpellTile(new Array((_local4 + 1), (_local5 - 1)), _arg2, _arg3);
};
if ((((_local4 < (_arg3.length - 1))) && ((_local5 < (_arg3[_local4].length - 1))))){
addSpellTile(new Array((_local4 + 1), (_local5 + 1)), _arg2, _arg3);
};
}
private function searchHCombo(_arg1:Point, _arg2:uint, _arg3:Array):Array{
var _local4:Array;
var _local5:int;
_local4 = new Array();
_local4.push([_arg1.y, _arg1.x]);
_local5 = (_arg1.x - 1);
while (_local5 >= 0) {
if (_arg3[_arg1.y][_local5].colour >= classINC._SYMBOL_ROCK){
break;
} else {
if ((((((_arg3[_arg1.y][_local5].colour == _arg2)) || ((_arg3[_arg1.y][_local5].colour == _WILDCARD)))) && (!(_arg3[_arg1.y][_local5].isMarked)))){
_local4.push([_arg1.y, _local5]);
} else {
break;
};
};
_local5--;
};
_local5 = (_arg1.x + 1);
while (_local5 < _arg3[_arg1.y].length) {
if (_arg3[_arg1.y][_local5].colour >= classINC._SYMBOL_ROCK){
break;
} else {
if ((((((_arg3[_arg1.y][_local5].colour == _arg2)) || ((_arg3[_arg1.y][_local5].colour == _WILDCARD)))) && (!(_arg3[_arg1.y][_local5].isMarked)))){
_local4.push([_arg1.y, _local5]);
} else {
break;
};
};
_local5++;
};
return (_local4);
}
private function getRandom(_arg1:int, _arg2:int):int{
return (Math.round((_arg1 + (Math.random() * (_arg2 - _arg1)))));
}
private function searchHWildcardCombo(_arg1:Point, _arg2:uint, _arg3:Array):Array{
var _local4:Array;
var _local5:Array;
var _local6:Array;
var _local7:uint;
var _local8:uint;
var _local9:int;
var _local10:uint;
_local4 = new Array();
_local5 = new Array();
_local6 = new Array();
_local7 = _arg2;
_local8 = _arg2;
_local4.push([_arg1.y, _arg1.x]);
_local9 = (_arg1.x - 1);
while (_local9 >= 0) {
if (_arg3[_arg1.y][_local9].colour >= classINC._SYMBOL_ROCK){
break;
};
if ((((_local7 == _WILDCARD)) && (!((_arg3[_arg1.y][_local9].colour == _WILDCARD))))){
_local7 = _arg3[_arg1.y][_local9].colour;
};
if ((((((_arg3[_arg1.y][_local9].colour == _local7)) || ((_arg3[_arg1.y][_local9].colour == _WILDCARD)))) && (!(_arg3[_arg1.y][_local9].isMarked)))){
_local5.push([_arg1.y, _local9]);
} else {
break;
};
_local9--;
};
_local9 = (_arg1.x + 1);
while (_local9 < _arg3[_arg1.y].length) {
if (_arg3[_arg1.y][_local9].colour >= classINC._SYMBOL_ROCK){
break;
};
if ((((_local8 == _WILDCARD)) && (!((_arg3[_arg1.y][_local9].colour == _WILDCARD))))){
_local8 = _arg3[_arg1.y][_local9].colour;
};
if ((((((_arg3[_arg1.y][_local9].colour == _local8)) || ((_arg3[_arg1.y][_local9].colour == _WILDCARD)))) && (!(_arg3[_arg1.y][_local9].isMarked)))){
_local6.push([_arg1.y, _local9]);
} else {
break;
};
_local9++;
};
if (_local5.length >= 2){
_local10 = 0;
while (_local10 < _local5.length) {
_local4.push(_local5[_local10]);
_local10++;
};
} else {
if (_local5.length == 1){
if (_local6.length >= 1){
if ((((((_local7 == _local8)) || ((_local7 == _WILDCARD)))) || ((_local8 == _WILDCARD)))){
_local10 = 0;
while (_local10 < _local5.length) {
_local4.push(_local5[_local10]);
_local10++;
};
};
};
};
};
if (_local6.length >= 2){
_local10 = 0;
while (_local10 < _local6.length) {
_local4.push(_local6[_local10]);
_local10++;
};
} else {
if (_local6.length == 1){
if (_local5.length >= 1){
if ((((((_local7 == _local8)) || ((_local7 == _WILDCARD)))) || ((_local8 == _WILDCARD)))){
_local10 = 0;
while (_local10 < _local6.length) {
_local4.push(_local6[_local10]);
_local10++;
};
};
};
};
};
return (_local4);
}
private function addSpellTile(_arg1:Array, _arg2:Array, _arg3:Array):void{
var _local4:Boolean;
var _local5:uint;
if (_arg3[_arg1[0]][_arg1[1]] != null){
if (!_arg3[_arg1[0]][_arg1[1]].isSpellMarked){
_local4 = false;
_local5 = 0;
while (_local5 < _arg2.length) {
if ((((_arg2[_local5][0] > _arg1[0])) || ((((_arg2[_local5][0] == _arg1[0])) && ((_arg2[_local5][1] > _arg1[1])))))){
_arg2.splice(_local5, 0, _arg1);
_local4 = true;
break;
};
_local5++;
};
if (!_local4){
_arg2.push(_arg1);
};
_arg3[_arg1[0]][_arg1[1]].isSpellMarked = true;
};
};
}
public function getRandomTile(_arg1:Array, _arg2:Array, _arg3:uint=999):void{
var _local4:uint;
var _local5:uint;
var _local6:uint;
var _local7:uint;
_local4 = 0;
_local5 = _arg3;
_local6 = getRandom(0, (_arg2.length - 1));
_local7 = getRandom(0, (_arg2[0].length - 1));
while ((((((_arg2[_local6][_local7] == null)) || ((_local5 == _arg3)))) && ((_local4 < 16)))) {
_local6 = getRandom(0, (_arg2.length - 1));
_local7 = getRandom(0, (_arg2[0].length - 1));
_local4++;
if (_arg2[_local6][_local7] != null){
_local5 = _arg2[_local6][_local7].colour;
};
};
if (_arg2[_local6][_local7] != null){
if (_arg2[_local6][_local7].colour != _arg3){
if (!_arg2[_local6][_local7].isSpellMarked){
_arg1.push(new Array(_local6, _local7));
_arg2[_local6][_local7].isSpellMarked = true;
};
};
};
}
public function getDiagonalTiles(_arg1:Array, _arg2:Array):void{
var _local3:int;
var _local4:int;
_local3 = 0;
_local4 = 0;
while (_local4 < _arg2.length) {
if (_arg2[_local4][_local3] != null){
if (!_arg2[_local4][_local3].isSpellMarked){
_arg1.push(new Array(_local4, _local3));
_arg2[_local4][_local3].isSpellMarked = true;
};
};
_local3++;
_local4++;
};
_local3 = (_arg2[0].length - 1);
_local4 = 0;
while (_local4 < _arg2.length) {
if (_arg2[_local4][_local3] != null){
if (!_arg2[_local4][_local3].isSpellMarked){
_arg1.push(new Array(_local4, _local3));
_arg2[_local4][_local3].isSpellMarked = true;
};
};
_local3--;
_local4++;
};
}
public function getElementalTiles(_arg1:Array, _arg2:Array):void{
var _local3:int;
var _local4:int;
_local3 = 0;
while (_local3 < _arg2.length) {
_local4 = 0;
while (_local4 < _arg2[0].length) {
if (_arg2[_local3][_local4] != null){
if (_arg2[_local3][_local4].colour <= classINC._SYMBOL_NATURE){
if (!_arg2[_local3][_local4].isSpellMarked){
_arg1.push(new Array(_local3, _local4));
_arg2[_local3][_local4].isSpellMarked = true;
};
};
};
_local4++;
};
_local3++;
};
}
public function getCombosForTile(_arg1:Point, _arg2:Array):Array{
var _local3:Array;
var _local4:Array;
var _local5:Array;
var _local6:uint;
var _local7:uint;
var _local8:uint;
var _local9:uint;
var _local10:uint;
_local3 = new Array();
_local4 = new Array();
_local5 = new Array();
_local6 = _arg2[_arg1.y][_arg1.x].colour;
if (_arg2[_arg1.y][_arg1.x].isMarked){
return (_local3);
};
if (_local6 == _WILDCARD){
_local4 = searchHWildcardCombo(_arg1, _local6, _arg2);
} else {
_local4 = searchHCombo(_arg1, _local6, _arg2);
};
if (_local4.length >= 3){
_local3.push(_local4);
_local8 = 0;
while (_local8 < _local4.length) {
_local6 = _arg2[_local4[_local8][0]][_local4[_local8][1]].colour;
if (_local6 == _WILDCARD){
_local5 = searchVWildcardCombo(new Point(_local4[_local8][1], _local4[_local8][0]), _local6, _arg2);
} else {
_local5 = searchVCombo(new Point(_local4[_local8][1], _local4[_local8][0]), _local6, _arg2);
};
if (_local5.length >= 3){
_local3.push(_local5);
};
_local8++;
};
} else {
_local4 = new Array();
if (_local6 == _WILDCARD){
_local5 = searchVWildcardCombo(_arg1, _local6, _arg2);
} else {
_local5 = searchVCombo(_arg1, _local6, _arg2);
};
if (_local5.length >= 3){
_local3.push(_local5);
_local9 = 0;
while (_local9 < _local5.length) {
_local6 = _arg2[_local5[_local9][0]][_local5[_local9][1]].colour;
if (_local6 == _WILDCARD){
_local4 = searchHWildcardCombo(new Point(_local5[_local9][1], _local5[_local9][0]), _local6, _arg2);
} else {
_local4 = searchHCombo(new Point(_local5[_local9][1], _local5[_local9][0]), _local6, _arg2);
};
if (_local4.length >= 3){
_local3.push(_local4);
};
_local9++;
};
};
};
_local7 = 0;
while (_local7 < _local3.length) {
_local10 = 0;
while (_local10 < _local3[_local7].length) {
_arg2[_local3[_local7][_local10][0]][_local3[_local7][_local10][1]].isMarked = true;
_local10++;
};
_local7++;
};
return (_local3);
}
public function findNextMove(_arg1:Array):Array{
var _local2:Boolean;
var _local3:Array;
var _local4:uint;
var _local5:uint;
var _local6:int;
var _local7:int;
var _local8:uint;
var _local9:uint;
var _local10:uint;
var _local11:uint;
_local2 = false;
_local3 = new Array();
_local4 = 0;
_local5 = 0;
_local6 = 0;
_local7 = 0;
_local8 = 0;
while (_local8 < _arg1.length) {
_local9 = 0;
while (_local9 < _arg1[_local8].length) {
_local4 = _arg1[_local8][_local9].colour;
if (_local4 >= classINC._SYMBOL_ROCK){
} else {
_local10 = 0;
while (_local10 < _aPatterns.length) {
_local2 = true;
_local11 = 0;
while (_local11 < _aPatterns[_local10].length) {
_local6 = _aPatterns[_local10][_local11][0];
_local7 = _aPatterns[_local10][_local11][1];
if (((((((((_local8 + _local7) < 0)) || (((_local9 + _local6) < 0)))) || (((_local8 + _local7) >= _arg1.length)))) || (((_local9 + _local6) >= _arg1[_local8].length)))){
_local2 = false;
} else {
_local5 = _arg1[(_local8 + _local7)][(_local9 + _local6)].colour;
if (_local5 >= classINC._SYMBOL_ROCK){
_local2 = false;
} else {
if ((((_local4 == _WILDCARD)) && (!((_local5 == _WILDCARD))))){
_local4 = _local5;
} else {
if (((!((_local5 == _local4))) && (!((_local5 == _WILDCARD))))){
_local2 = false;
};
};
};
};
_local11++;
};
if (_local2){
_local3.push(new Array(_local8, _local9));
_local11 = 0;
while (_local11 < _aPatterns[_local10].length) {
_local6 = _aPatterns[_local10][_local11][0];
_local7 = _aPatterns[_local10][_local11][1];
_local3.push(new Array((_local8 + _local7), (_local9 + _local6)));
_local11++;
};
_local10 = (_aPatterns.length - 1);
_local9 = (_arg1[_local8].length - 1);
_local8 = (_arg1.length - 1);
};
_local10++;
};
};
_local9++;
};
_local8++;
};
return (_local3);
}
public function getTiles(_arg1:uint, _arg2:uint, _arg3:Array, _arg4:Array):void{
var _local5:int;
var _local6:int;
_local5 = 0;
while (_local5 < _arg4.length) {
_local6 = 0;
while (_local6 < _arg4[0].length) {
if (_arg4[_local5][_local6] != null){
if (_arg4[_local5][_local6].colour == _arg1){
if (!_arg4[_local5][_local6].isSpellMarked){
if (_arg3.length < _arg2){
_arg3.push(new Array(_local5, _local6));
_arg4[_local5][_local6].isSpellMarked = true;
};
};
};
};
_local6++;
};
_local5++;
};
}
}
}//package classes
Section 2
//classGameLogic (classes.classGameLogic)
package classes {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import com.meteorgames.libs.xvars.*;
import com.meteorgames.libs.custommc.*;
import com.meteorgames.libs.custombutton.*;
import com.meteorgames.libs.secretcode.*;
import flash.utils.*;
public class classGameLogic {
private var _XVAR_COMBOSGET:XVar;
private var _isHintShown:Boolean;
private var _iSpellTileIndex:int;
private var _uiGameMode:uint;
private var _XVAR_BONUS:XVar;
private var _aPos:Array;
private var _tFunTimer:int;
private var _mcRollover:MovieClip;
private var _aCombos:Array;
private var _XVAR_MULTI:XVar;
private var _iTimerUpdate:int;
private var _XVAR_POTION_N:XVar;
private var _isTimerInitialized:Boolean;
private var _XVAR_POTION_V:XVar;
private var _uiMarked:uint;
private var _mcHolder:MovieClip;
private var _SPELL:uint;
private var _iSpellTileCount:int;
private var _cbutHint:customButton;
private var _aCheck:Array;
private var _XVAR_SWAPCOMBOS:XVar;
private var _mcMarker2:MovieClip;
private var _SYSTEM:Object;
private var _mcMarker1:MovieClip;
private var _mcFXHolder:MovieClip;
private var _mcOverlay:MovieClip;
private var _GTIMER:int;
private var _mcScore:MovieClip;
private var cmcCauldron:customMC;
private var _keyDown:uint;
private var _SECRETS:SecretCode;
private var _aBlowUp:Array;
private var _XVAR_LEVEL:XVar;
private var _aHintMCs:Array;
private var _cbutGameMode1:customButton;
private var _cbutGameMode2:customButton;
private var _XVAR_COMBOS:XVar;
private var _XVAR_SCORE:XVar;
private var _aHint:Array;
private var _iLastColour:uint;
private var _objFPS:Object;
private var _aSpellSwappers:Array;
private var _XVAR_SCROLL:XVar;
private var _ptMouseTile:Point;
private var _cbutGameMode3:customButton;
private var _GSTATE:uint;
private var _aMarked:Array;
private var _GTREFRESH:int;
private var _iGameTimer:int;
private var _XVAR_MOVES:XVar;
private var _aSetup:Array;
private var _aSpellTiles:Array;
private var _GNEXT:uint;
private var _COMBOS:classCombos;
private var _iTimerDelay:int;
private var _PARENT:Object;
private var _uiSpellLevel:uint;
private var _aLevel:Array;
private var _aSpellCombo:Array;
private var _mcScoreBonus:MovieClip;
private var _iSpellComboIndex:int;
private var _mcTimerBar:MovieClip;
private var _cbutContinue:customButton;
private var _mcSpellAni:MovieClip;
private var _mcLevelFields:MovieClip;
private var _SOUND:Object;
private var _XVAR_MOVESMAX:XVar;
public function classGameLogic(_arg1:Object, _arg2:Object, _arg3:Object){
var _local4:Object;
var _local5:uint;
var _local6:uint;
super();
_PARENT = _arg1;
_SYSTEM = _arg2;
_SOUND = _arg3;
_COMBOS = new classCombos();
_GSTATE = classINC._GS_SELECTMODE;
_GNEXT = _GSTATE;
_GTIMER = 0;
_GTREFRESH = 0;
_XVAR_SCORE = new XVar(0);
_XVAR_BONUS = new XVar(0);
_XVAR_SWAPCOMBOS = new XVar(0);
_XVAR_MULTI = new XVar(0);
_XVAR_POTION_N = new XVar(0);
_XVAR_POTION_V = new XVar(0);
_XVAR_SCROLL = new XVar(0);
_XVAR_LEVEL = new XVar(0);
_XVAR_COMBOS = new XVar(0);
_XVAR_COMBOSGET = new XVar(0);
_XVAR_MOVES = new XVar(0);
_XVAR_MOVESMAX = new XVar(0);
_mcHolder = _PARENT.mcHolderMask.mcHolder;
_mcFXHolder = _PARENT.mcFXHolder;
_uiGameMode = classINC._MODE_NORMAL;
_aSetup = new Array();
_aSetup[classINC._MODE_NORMAL] = {rows:8, cols:8, tileW:44, tileH:44, numTiles:6, time:-1};
_aSetup[classINC._MODE_TIMED] = {rows:8, cols:8, tileW:44, tileH:44, numTiles:6, time:120};
_aSetup[classINC._MODE_LEVEL] = {rows:8, cols:8, tileW:44, tileH:44, numTiles:6, time:-1};
_aPos = new Array();
_local4 = _aSetup[_uiGameMode];
_local5 = 0;
while (_local5 < _local4.rows) {
_aPos.push(new Array());
_local6 = 0;
while (_local6 < _local4.cols) {
_aPos[_local5].push([(_local6 * _local4.tileW), (_local5 * _local4.tileH)]);
_local6++;
};
_local5++;
};
_aLevel = new Array();
_iLastColour = 0;
_iGameTimer = -1;
_iTimerDelay = -1;
_iTimerUpdate = -1;
_isTimerInitialized = false;
_tFunTimer = ((getTimer() + 300000) + getRandom(1, 300000));
_SPELL = 0;
_aSpellCombo = new Array();
_aSpellTiles = new Array();
_aSpellSwappers = new Array();
_uiSpellLevel = 0;
_iSpellTileIndex = -1;
_iSpellComboIndex = -1;
_iSpellTileCount = 0;
_isHintShown = false;
_ptMouseTile = new Point();
_uiMarked = 0;
_aMarked = new Array(new Point(), new Point());
_aCheck = new Array();
_aCombos = new Array();
_aBlowUp = new Array();
_aHint = new Array();
_aHintMCs = new Array();
_mcScore = _PARENT.mcScoreTweenUp;
_mcScoreBonus = _PARENT.mcScoreTween;
_mcRollover = new mcRollover();
_mcMarker1 = new mcMarker();
_mcMarker2 = new mcMarker();
_mcRollover.cacheAsBitmap = true;
_mcMarker1.cacheAsBitmap = true;
_mcMarker2.cacheAsBitmap = true;
_mcRollover.visible = false;
_mcMarker1.visible = false;
_mcMarker2.visible = false;
_mcHolder.addChild(_mcRollover);
_mcHolder.addChild(_mcMarker1);
_mcHolder.addChild(_mcMarker2);
_mcSpellAni = null;
_mcLevelFields = null;
_objFPS = new Object();
_objFPS.bShowFPS = new Boolean(false);
_objFPS.iCount = new int(0);
_objFPS.iNextCheck = new int(0);
_objFPS.tfFPS = _PARENT.tfFPS;
_cbutHint = new customButton(_SYSTEM, _PARENT.butHint, null, showNextMove, "");
_cbutHint.hide();
cmcCauldron = new customMC(_PARENT.mcCauldron, 33, null, false);
cmcCauldron.initLoop("low", 2, 27);
cmcCauldron.initLoop("medium", 28, 53);
cmcCauldron.initLoop("high", 54, 95);
if (!_PARENT.mcWitch.hasEventListener(MouseEvent.CLICK)){
_PARENT.mcWitch.addEventListener(MouseEvent.CLICK, onWitchClick, false, 0, true);
};
_PARENT.setMCButton(_PARENT.mcWitch);
if (!_PARENT.mcSecretBook.hasEventListener(MouseEvent.CLICK)){
_PARENT.mcSecretBook.addEventListener(MouseEvent.CLICK, onSecretBookClick, false, 0, true);
};
_PARENT.setMCButton(_PARENT.mcSecretBook);
_SECRETS = new SecretCode();
_SECRETS.addCode(new Array("108.61", "112.96", "116.24", "100.68", "101.216"), 1);
}
private function setLevelMode():void{
var _local1:uint;
_XVAR_LEVEL.add(1);
_local1 = uint(_XVAR_LEVEL.out());
_XVAR_COMBOS.set(0);
if (_local1 == 1){
_XVAR_COMBOSGET.set(5);
} else {
if (_local1 == 2){
_XVAR_COMBOSGET.set(10);
} else {
if (_local1 == 3){
_XVAR_COMBOSGET.set(13);
} else {
if (_local1 == 4){
_XVAR_COMBOSGET.set(15);
} else {
if (_local1 == 5){
_XVAR_COMBOSGET.set(17);
} else {
_XVAR_COMBOSGET.add(1);
};
};
};
};
};
_XVAR_MOVES.set(0);
_XVAR_MOVESMAX.set(30);
updateLevelModeText();
}
public function gameOver():void{
_GSTATE = classINC._GS_GAMEOVER;
}
private function init():void{
_cbutGameMode1.destroy();
_cbutGameMode2.destroy();
_cbutGameMode3.destroy();
_cbutGameMode1 = null;
_cbutGameMode2 = null;
_cbutGameMode3 = null;
_mcHolder.removeChild(_mcOverlay);
_mcOverlay = null;
_XVAR_SCORE.set(0);
_XVAR_BONUS.set(0);
_XVAR_SWAPCOMBOS.set(0);
_XVAR_MULTI.set(10);
_XVAR_POTION_N.set(0);
_XVAR_POTION_V.set(0);
_XVAR_SCROLL.set(0);
_XVAR_LEVEL.set(0);
_XVAR_COMBOS.set(0);
_XVAR_COMBOSGET.set(0);
_XVAR_MOVES.set(0);
_XVAR_MOVESMAX.set(0);
if (_uiGameMode == classINC._MODE_TIMED){
_PARENT.mcTimer.visible = true;
_mcTimerBar = _PARENT.mcTimer.mcBottle.mcBar.mcMask;
_mcTimerBar.height = int((100 * 0.75));
_mcTimerBar.y = (150 - _mcTimerBar.height);
_PARENT.mcTimer.gotoAndPlay(2);
_SOUND.playFX(classINC._FX_PUFF);
_XVAR_MULTI.set(20);
} else {
if (_uiGameMode == classINC._MODE_LEVEL){
_mcLevelFields = new mcLevelModeFields();
_mcLevelFields.x = 60;
_mcLevelFields.y = 419;
_SYSTEM.setTextField(_mcLevelFields.tfCombos, "");
_SYSTEM.setTextField(_mcLevelFields.tfMoves, "");
_PARENT.addChild(_mcLevelFields);
_XVAR_MULTI.set(20);
};
};
createLevel();
_aLevel[(_aSetup[_uiGameMode].rows - 1)][0].isMoving = true;
}
public function MouseDownEvent(_arg1:MouseEvent):void{
if (_GSTATE != classINC._GS_PLAY){
return;
};
if ((((_ptMouseTile.x >= 0)) && ((_ptMouseTile.y >= 0)))){
if (_keyDown == 16){
} else {
markTile();
};
};
}
private function markTile():void{
var _local1:MovieClip;
_SOUND.playFX(classINC._FX_SELECT, 0, 1, 0.5);
_local1 = _mcMarker1;
if (_uiMarked == 1){
_local1 = _mcMarker2;
};
if (_uiMarked == 1){
if ((((_aMarked[0].x == _ptMouseTile.x)) && ((_aMarked[0].y == _ptMouseTile.y)))){
unmarkTiles();
return;
};
};
_aMarked[_uiMarked].x = _ptMouseTile.x;
_aMarked[_uiMarked].y = _ptMouseTile.y;
_local1.x = (_aMarked[_uiMarked].x * _aSetup[_uiGameMode].tileW);
_local1.y = (_aMarked[_uiMarked].y * _aSetup[_uiGameMode].tileH);
_local1.visible = true;
if (++_uiMarked >= 2){
swapTiles();
};
}
private function killTile(_arg1:Array):void{
var _local2:MovieClip;
var _local3:classTile;
_local3 = _aLevel[_arg1[0]][_arg1[1]];
if (_local3 == null){
return;
};
_local2 = new mcTilesBlowup();
_local2.gotoAndStop(_local3.colour);
_local2.x = _aPos[_arg1[0]][_arg1[1]][0];
_local2.y = _aPos[_arg1[0]][_arg1[1]][1];
_mcHolder.addChild(_local2);
_aBlowUp.push(_local2);
_mcHolder.removeChild(_local3._mcTile);
_local3 = null;
_aLevel[_arg1[0]][_arg1[1]] = null;
}
private function gameMode1RollOver():void{
_SOUND.playFX(classINC._FX_SLIDEOUT);
_mcOverlay.tfText2.htmlText = classTEXT.MODETEXT1;
}
private function gameMode2RollOver():void{
_SOUND.playFX(classINC._FX_SLIDEOUT);
_mcOverlay.tfText2.htmlText = classTEXT.MODETEXT2;
}
private function gameMode3RollOver():void{
_SOUND.playFX(classINC._FX_SLIDEOUT);
_mcOverlay.tfText2.htmlText = classTEXT.MODETEXT3;
}
private function delayGameTimer():void{
if (_uiGameMode != classINC._MODE_TIMED){
return;
};
_iGameTimer = (_iGameTimer + (_GTIMER - _iTimerDelay));
if ((_iGameTimer - _GTIMER) > ((_aSetup[_uiGameMode].time * 1000) * 2)){
_iGameTimer = (_GTIMER + ((_aSetup[_uiGameMode].time * 1000) * 2));
};
_iTimerDelay = 0;
updateTimerBar(true);
}
private function continueGame(_arg1:Event):void{
_PARENT.playButtonClick();
_cbutContinue.destroy();
_mcHolder.removeChild(_mcOverlay);
_mcOverlay = null;
_GSTATE = _GNEXT;
if (_GSTATE == classINC._GS_DROPALL){
_SOUND.playFX(classINC._FX_DROPALL);
_PARENT.mcPlayField.gotoAndStop(2);
_GNEXT = classINC._GS_FINDNEXTMOVE;
};
}
private function findNextMove():Boolean{
var _local1:Boolean;
_local1 = false;
_aHint = _COMBOS.findNextMove(_aLevel);
if (_aHint.length > 0){
_local1 = true;
};
return (_local1);
}
private function onWitchClick(_arg1:MouseEvent):void{
if (_GSTATE != classINC._GS_PLAY){
return;
};
_SOUND.playFX(classINC._FX_HINT);
_iTimerDelay = _GTIMER;
showOverlay(5);
_GSTATE = classINC._GS_GAMEPAUSED;
}
private function continuePausedGame(_arg1:Event):void{
_PARENT.playButtonClick();
_cbutContinue.destroy();
_mcHolder.removeChild(_mcOverlay);
_mcOverlay = null;
delayGameTimer();
_GSTATE = classINC._GS_PLAY;
}
private function gameModeRollout():void{
_mcOverlay.tfText2.htmlText = "";
}
private function unmarkTiles():void{
_aMarked[0] = new Point();
_aMarked[1] = new Point();
hideMarkers();
_uiMarked = 0;
}
private function dropFreeTile(_arg1:uint, _arg2:uint, _arg3:uint):void{
var _local4:int;
var _local5:classTile;
var _local6:Array;
var _local7:Array;
_local4 = 4;
_local5 = _aLevel[_arg3][_arg2];
_local6 = _aPos[_arg3][_arg2];
_local7 = _aPos[_arg1][_arg2];
_aLevel[_arg1][_arg2] = _local5;
_aLevel[_arg3][_arg2] = null;
_local5.resetPos(_local6[0], _local6[1], _local7[0], _local7[1], _local4);
_local5.isMoving = true;
_aCheck.push(new Point(_arg2, _arg1));
}
private function doFunStuff():void{
if (getRandom(1, 500) == 250){
_SOUND.playFX(classINC._FX_PUFF);
_PARENT.mcSurprise.gotoAndPlay("tposg");
} else {
_SOUND.playFX(classINC._FX_CAT);
_PARENT.mcSurprise.gotoAndPlay("cat");
};
}
private function removeTiles():void{
var _local1:uint;
var _local2:uint;
var _local3:uint;
_SOUND.playFX(classINC._FX_POP);
_aBlowUp = new Array();
_aSpellCombo = new Array();
_local1 = 0;
while (_local1 < _aCombos.length) {
_local2 = 0;
while (_local2 < _aCombos[_local1].length) {
_local3 = 0;
while (_local3 < _aCombos[_local1][_local2].length) {
if (_SPELL > 0){
if ((((_local1 == _iSpellTileIndex)) && ((_local2 == _iSpellComboIndex)))){
_aSpellCombo.push(new Array(_aCombos[_local1][_local2][_local3][0], _aCombos[_local1][_local2][_local3][1]));
};
};
if (_aLevel[_aCombos[_local1][_local2][_local3][0]][_aCombos[_local1][_local2][_local3][1]] != null){
killTile(_aCombos[_local1][_local2][_local3]);
};
_local3++;
};
_local2++;
};
_local1++;
};
_aCombos = new Array();
}
private function initGameTimer():void{
if (_uiGameMode != classINC._MODE_TIMED){
return;
};
_iGameTimer = ((_GTIMER + (_aSetup[_uiGameMode].time * 1000)) + 1000);
_iTimerDelay = 0;
_iTimerUpdate = 0;
_isTimerInitialized = true;
}
private function transformTile(_arg1:Array, _arg2:int):void{
var _local3:MovieClip;
var _local4:classTile;
_local4 = _aLevel[_arg1[0]][_arg1[1]];
if (_local4 == null){
return;
};
if (_arg2 == -1){
_arg2 = getRandom(1, _aSetup[_uiGameMode].numTiles);
};
_aLevel[_arg1[0]][_arg1[1]].colour = _arg2;
_aLevel[_arg1[0]][_arg1[1]]._mcTile.gotoAndStop(_arg2);
}
private function dropFreeTiles():void{
var _local1:int;
var _local2:int;
var _local3:int;
_local1 = (_aSetup[_uiGameMode].rows - 1);
while (_local1 > 0) {
_local2 = 0;
while (_local2 < _aSetup[_uiGameMode].cols) {
if (_aLevel[_local1][_local2] == null){
_local3 = (_local1 - 1);
while (_local3 >= 0) {
if (_aLevel[_local3][_local2] != null){
dropFreeTile(_local1, _local2, _local3);
_local3 = -1;
};
_local3--;
};
};
_local2++;
};
_local1--;
};
}
private function updateTimerBar(_arg1:Boolean):Boolean{
var _local2:int;
if (((_arg1) || ((_GTIMER >= _iTimerUpdate)))){
_local2 = int(((_iGameTimer - _GTIMER) / (_aSetup[_uiGameMode].time * 10)));
_mcTimerBar.height = int((_local2 * 0.75));
_mcTimerBar.y = (150 - _mcTimerBar.height);
_iTimerUpdate = (_GTIMER + 2000);
};
return ((_GTIMER < _iGameTimer));
}
private function prepareSpell():Boolean{
var _local1:Boolean;
var _local2:uint;
var _local3:uint;
_local1 = true;
_aSpellTiles = new Array();
if (_SPELL == classINC._SPELL_FIRE){
if (_aSpellCombo.length > 0){
_local2 = 0;
while (_local2 < _aSpellCombo.length) {
_COMBOS.getAdjacentTiles(_aSpellCombo[_local2], _aSpellTiles, _aLevel);
_local2++;
};
};
} else {
if (_SPELL == classINC._SPELL_STORM){
if (_uiSpellLevel == classINC._SPELL_LEVEL_1){
_local2 = 0;
while (_local2 < 3) {
_COMBOS.getRandomTile(_aSpellTiles, _aLevel);
_local2++;
};
} else {
if (_uiSpellLevel == classINC._SPELL_LEVEL_2){
_COMBOS.getDiagonalTiles(_aSpellTiles, _aLevel);
};
};
} else {
if (_SPELL == classINC._SPELL_NATURE){
if (_uiSpellLevel == classINC._SPELL_LEVEL_1){
_COMBOS.getTiles(classINC._SYMBOL_ROCK, 3, _aSpellTiles, _aLevel);
_local3 = _aSpellTiles.length;
_local2 = 0;
while (_local2 < (3 - _local3)) {
_COMBOS.getRandomTile(_aSpellTiles, _aLevel, classINC._SYMBOL_NATURE);
_local2++;
};
} else {
if (_uiSpellLevel == classINC._SPELL_LEVEL_2){
_local2 = 0;
while (_local2 < 2) {
_COMBOS.getColumnTiles(_local2, 2, _aSpellTiles, _aLevel);
_local2++;
};
};
};
} else {
if (_SPELL == classINC._SPELL_SPIRIT){
if (_uiSpellLevel == classINC._SPELL_LEVEL_1){
_local2 = 0;
while (_local2 < 3) {
_COMBOS.getRandomTile(_aSpellTiles, _aLevel);
_local2++;
};
} else {
if (_uiSpellLevel == classINC._SPELL_LEVEL_2){
_local2 = 0;
while (_local2 < 8) {
_COMBOS.getRandomTile(_aSpellTiles, _aLevel);
_local2++;
};
};
};
};
};
};
};
if (_uiSpellLevel == classINC._SPELL_LEVEL_1){
_iSpellTileCount = 3;
} else {
_iSpellTileCount = _aSpellTiles.length;
};
if (_aSpellTiles.length <= 0){
_SPELL = 0;
_local1 = false;
};
return (_local1);
}
public function KeyUpEvent(_arg1:KeyboardEvent):void{
if ((((_arg1.keyCode == 16)) || ((_arg1.keyCode == 17)))){
_keyDown = 0;
};
}
private function getWildcardComboColour(_arg1:Array):uint{
var _local2:uint;
var _local3:classTile;
var _local4:uint;
_local2 = _aLevel[_arg1[0][0]][_arg1[0][1]].colour;
_local4 = 1;
while (_local4 < _arg1.length) {
_local3 = _aLevel[_arg1[_local4][0]][_arg1[_local4][1]];
if (_local3.colour != classINC._SYMBOL_WILDCARD){
if (_local2 == classINC._SYMBOL_WILDCARD){
_local2 = _local3.colour;
} else {
if (_local3.colour != _local2){
_local2 = classINC._SYMBOL_WILDCARD;
break;
};
};
};
_local4++;
};
return (_local2);
}
private function showOverlay(_arg1:uint):void{
var _local2:String;
var _local3:String;
if (_mcOverlay != null){
_mcHolder.removeChild(_mcOverlay);
};
if (_arg1 == 0){
_mcOverlay = new mcGameModes();
_SYSTEM.setTextField(_mcOverlay.tfText, classTEXT.SELECTMODE);
_SYSTEM.setTextField(_mcOverlay.tfText2, "");
_cbutGameMode1 = new customButton(_SYSTEM, _mcOverlay.butMode1, null, setGameMode1, "");
_cbutGameMode2 = new customButton(_SYSTEM, _mcOverlay.butMode2, null, setGameMode2, "");
_cbutGameMode3 = new customButton(_SYSTEM, _mcOverlay.butMode3, null, setGameMode3, "");
_cbutGameMode1.setRolloverCallback(gameMode1RollOver);
_cbutGameMode2.setRolloverCallback(gameMode2RollOver);
_cbutGameMode3.setRolloverCallback(gameMode3RollOver);
_cbutGameMode1.setRolloutCallback(gameModeRollout);
_cbutGameMode2.setRolloutCallback(gameModeRollout);
_cbutGameMode3.setRolloutCallback(gameModeRollout);
_mcOverlay.butMode1.tabEnabled = false;
_mcOverlay.butMode2.tabEnabled = false;
_mcOverlay.butMode3.tabEnabled = false;
} else {
if (_arg1 == 1){
_SOUND.playFX(classINC._FX_GAMEOVER);
_mcOverlay = new mcOverlay();
_SYSTEM.setTextField(_mcOverlay.tfHeader, classTEXT.GAMEOVER);
_SYSTEM.setTextField(_mcOverlay.tfText, classTEXT.NOMOREMOVES);
} else {
if (_arg1 == 2){
_SOUND.playFX(classINC._FX_GAMEOVER);
_mcOverlay = new mcOverlay();
_SYSTEM.setTextField(_mcOverlay.tfHeader, classTEXT.GAMEOVER);
_SYSTEM.setTextField(_mcOverlay.tfText, classTEXT.NOMORETIME);
} else {
if (_arg1 == 3){
_SOUND.playFX(classINC._FX_GAMEOVER);
_mcOverlay = new mcOverlay();
_SYSTEM.setTextField(_mcOverlay.tfHeader, classTEXT.GAMEOVER);
_SYSTEM.setTextField(_mcOverlay.tfText, classTEXT.NOCOMBOS);
} else {
if (_arg1 == 4){
_mcOverlay = new mcNextLevel();
_local2 = classTEXT.NEXTLEVEL.replace("%1", _XVAR_LEVEL.out());
_local3 = classTEXT.LEVELGOAL.replace("%1", _XVAR_COMBOSGET.out());
_local3 = _local3.replace("%2", _XVAR_MOVESMAX.out());
_SYSTEM.setTextField(_mcOverlay.tfHeader, _local2);
_SYSTEM.setTextField(_mcOverlay.tfText, _local3);
_cbutContinue = new customButton(_SYSTEM, _mcOverlay.butContinue, null, continueGame, "");
_cbutContinue.setRolloverCallback(continueRollOver);
_mcOverlay.butContinue.tabEnabled = false;
} else {
if (_arg1 == 5){
_mcOverlay = new mcNextLevel();
_SYSTEM.setTextField(_mcOverlay.tfHeader, classTEXT.GAMEPAUSED);
_mcOverlay.tfText.htmlText = "";
_cbutContinue = new customButton(_SYSTEM, _mcOverlay.butContinue, null, continuePausedGame, "");
_cbutContinue.setRolloverCallback(continueRollOver);
_mcOverlay.butContinue.tabEnabled = false;
} else {
if (_arg1 == 6){
_mcOverlay = new mcNextLevel();
_SYSTEM.setTextField(_mcOverlay.tfHeader, classTEXT.SHUFFLE1);
_SYSTEM.setTextField(_mcOverlay.tfText, classTEXT.SHUFFLE2);
_cbutContinue = new customButton(_SYSTEM, _mcOverlay.butContinue, null, continueGame, "");
_cbutContinue.setRolloverCallback(continueRollOver);
_mcOverlay.butContinue.tabEnabled = false;
_cbutContinue.hide();
};
};
};
};
};
};
};
_mcOverlay.cacheAsBitmap = true;
_mcOverlay.x = 0;
_mcOverlay.y = 0;
_mcHolder.addChild(_mcOverlay);
}
private function updateScore(_arg1:int):void{
_mcScore.mcScoreField.tfShowPoints.htmlText = ("+" + String((_arg1 * _XVAR_MULTI.out())));
_mcScore.gotoAndPlay(2);
_XVAR_SCORE.add((_arg1 * _XVAR_MULTI.out()));
_PARENT.tfScore2.text = _XVAR_SCORE.out();
if (_uiGameMode == classINC._MODE_TIMED){
_iGameTimer = (_iGameTimer + (_arg1 * 50));
};
}
private function isOneHigherThanTwo(_arg1:uint, _arg2:uint):Boolean{
var _local3:Boolean;
_local3 = false;
if (_arg1 == classINC._SPELL_SPIRIT){
if (_arg2 != classINC._SPELL_SPIRIT){
_local3 = true;
};
} else {
if (_arg1 == classINC._SPELL_STORM){
if (((!((_arg2 == classINC._SPELL_SPIRIT))) && (!((_arg2 == classINC._SPELL_STORM))))){
_local3 = true;
};
} else {
if (_arg1 == classINC._SPELL_FIRE){
if (((((!((_arg2 == classINC._SPELL_SPIRIT))) && (!((_arg2 == classINC._SPELL_STORM))))) && (!((_arg2 == classINC._SPELL_FIRE))))){
_local3 = true;
};
};
};
};
return (_local3);
}
private function addNewTiles():void{
var _local1:Object;
var _local2:MovieClip;
var _local3:uint;
var _local4:classTile;
var _local5:int;
var _local6:Boolean;
var _local7:int;
var _local8:int;
var _local9:int;
var _local10:uint;
_local1 = _aSetup[_uiGameMode];
_local3 = _iLastColour;
_local5 = 0;
_local6 = true;
_local7 = 4;
_local8 = (_local1.rows - 1);
while (_local8 >= 0) {
_local9 = 0;
while (_local9 < _local1.cols) {
if (_aLevel[_local8][_local9] != null){
} else {
_local2 = new mcTiles();
_local2.cacheAsBitmap = true;
_local10 = getRandom(1, 66);
if (_local10 == 11){
_local3 = classINC._SYMBOL_WILDCARD;
} else {
if (_local10 == 55){
_local3 = classINC._SYMBOL_ROCK;
};
};
if (_local10 == 66){
_local3 = classINC._SYMBOL_CAT;
} else {
while (_local3 == _iLastColour) {
_local3 = getRandom(1, _local1.numTiles);
};
};
_iLastColour = _local3;
_local2.gotoAndStop(_local3);
_local4 = new classTile(_local2);
_local4.colour = _local3;
_local4.resetPos(_aPos[_local8][_local9][0], -(_local1.tileH), _aPos[_local8][_local9][0], _aPos[_local8][_local9][1], _local7);
if (_local6){
_local4.isMoving = true;
_local6 = false;
};
_aLevel[_local8][_local9] = _local4;
_mcHolder.addChild(_local2);
_aCheck.push(new Point(_local9, _local8));
};
_local9++;
};
_local8--;
};
}
private function swapSpellTile(_arg1:Array):void{
var _local2:Array;
var _local3:int;
_local2 = new Array();
_COMBOS.getSwappableTiles(_arg1, _local2, _aLevel);
if (_local2.length > 0){
_local3 = getRandom(0, (_local2.length - 1));
_aSpellSwappers = new Array();
_aSpellSwappers.push(new Point(_arg1[1], _arg1[0]));
_aSpellSwappers.push(new Point(_local2[_local3][1], _local2[_local3][0]));
swapTileObjects(_aSpellSwappers);
_aCheck.push(_aSpellSwappers[0]);
_aCheck.push(_aSpellSwappers[1]);
_GSTATE = classINC._GS_SWAPSPELLTILES;
_GNEXT = classINC._GS_SPELL_SHOW;
};
}
private function leaveGame():void{
_SOUND.fadeFX(classINC._FX_SPELLFIRE, 0, 0, 1500);
_SOUND.fadeFX(classINC._FX_SPELLSTORM, 0, 0, 1500);
_SOUND.fadeFX(classINC._FX_SPELLSPIRIT, 0, 0, 1500);
_SOUND.fadeFX(classINC._FX_SPELLNATURE, 0, 0, 1500);
cleanUp();
_PARENT.gameOver(_XVAR_SCORE, _uiGameMode);
}
private function noRollover():void{
_ptMouseTile.x = -1;
_ptMouseTile.y = -1;
_mcRollover.visible = false;
}
private function adjustMultiplier():void{
if (_XVAR_POTION_N.out() > 0){
_XVAR_POTION_V.add(Number((_XVAR_SWAPCOMBOS.out() - 1)));
if (Number(_XVAR_POTION_V.out()) > 9){
_XVAR_POTION_V.set(9);
};
_XVAR_BONUS.set(_XVAR_POTION_V.out());
_XVAR_POTION_N.add(-1);
};
if (_XVAR_POTION_N.out() <= 0){
showMultiplierText("");
_XVAR_BONUS.set(1);
};
}
private function continueRollOver():void{
_SOUND.playFX(classINC._FX_SLIDEOUT);
}
public function main(_arg1:Event):void{
_GTIMER = getTimer();
if (_GTIMER < _GTREFRESH){
return;
};
_GTREFRESH = (_GTIMER + 15);
switch (_GSTATE){
case classINC._GS_SELECTMODE:
showOverlay(0);
_GSTATE = classINC._GS_NULL;
break;
case classINC._GS_INIT:
init();
if (_uiGameMode == classINC._MODE_LEVEL){
_GSTATE = classINC._GS_NEXTLEVEL;
_GNEXT = classINC._GS_DROPALL;
} else {
_SOUND.playFX(classINC._FX_DROPALL);
_PARENT.mcPlayField.gotoAndStop(2);
_GSTATE = classINC._GS_DROPALL;
_GNEXT = classINC._GS_FINDNEXTMOVE;
};
break;
case classINC._GS_NEXTLEVEL:
setLevelMode();
showOverlay(4);
_GSTATE = classINC._GS_NULL;
break;
case classINC._GS_DROPALL:
if (classRender.renderDropAllTiles(_aLevel)){
_GSTATE = _GNEXT;
};
break;
case classINC._GS_FINDNEXTMOVE:
if (!findNextMove()){
if (_uiGameMode == classINC._MODE_NORMAL){
showOverlay(1);
_GSTATE = classINC._GS_NULL;
} else {
showOverlay(6);
_GSTATE = classINC._GS_SHUFFLE;
};
} else {
_GTREFRESH = 0;
adjustMultiplier();
if (!_isTimerInitialized){
initGameTimer();
} else {
delayGameTimer();
};
_GSTATE = classINC._GS_PLAY;
};
break;
case classINC._GS_SHUFFLE:
destroyLevel();
createLevel();
_aLevel[(_aSetup[_uiGameMode].rows - 1)][0].isMoving = true;
_cbutContinue.show();
_GSTATE = classINC._GS_NULL;
_GNEXT = classINC._GS_DROPALL;
break;
case classINC._GS_PLAY:
getMousePos();
if (_uiGameMode == classINC._MODE_TIMED){
if (!updateTimerBar(false)){
showOverlay(2);
_GSTATE = classINC._GS_NULL;
};
} else {
if (_uiGameMode == classINC._MODE_LEVEL){
if (Number(_XVAR_MOVES.out()) >= Number(_XVAR_MOVESMAX.out())){
if (Number(_XVAR_COMBOS.out()) < Number(_XVAR_COMBOSGET.out())){
showOverlay(3);
_GSTATE = classINC._GS_NULL;
} else {
_GSTATE = classINC._GS_NEXTLEVEL;
_GNEXT = classINC._GS_PLAY;
};
} else {
if (Number(_XVAR_COMBOS.out()) >= Number(_XVAR_COMBOSGET.out())){
_GSTATE = classINC._GS_NEXTLEVEL;
_GNEXT = classINC._GS_PLAY;
};
};
};
};
if (_GTIMER > _tFunTimer){
if (_GSTATE == classINC._GS_PLAY){
_tFunTimer = ((_GTIMER + 300000) + getRandom(1, 300000));
doFunStuff();
};
};
break;
case classINC._GS_SWAPTILES:
if (classRender.renderSwapTiles(_aLevel, _aMarked)){
if (_GNEXT == classINC._GS_PLAY){
delayGameTimer();
unmarkTiles();
};
_GSTATE = _GNEXT;
};
break;
case classINC._GS_FINDCOMBOS:
if (findCombos()){
hideMarkers();
_GSTATE = classINC._GS_REMOVETILES;
} else {
reswapTiles();
_GTREFRESH = (_GTREFRESH + 250);
};
break;
case classINC._GS_REMOVETILES:
removeTiles();
if (_uiGameMode == classINC._MODE_LEVEL){
updateLevelModeText();
};
if (_SPELL > 0){
_GSTATE = classINC._GS_SPELL_PREPARE;
} else {
_GSTATE = classINC._GS_BLOWUPTILES;
};
break;
case classINC._GS_SPELL_PREPARE:
if (prepareSpell()){
if (_SPELL == classINC._SPELL_FIRE){
_SOUND.playFX(classINC._FX_SPELLFIRE, 0, 999, 1);
} else {
if (_SPELL == classINC._SPELL_STORM){
_SOUND.playFX(classINC._FX_SPELLSTORM, 0, 999, 1);
} else {
if (_SPELL == classINC._SPELL_SPIRIT){
_SOUND.playFX(classINC._FX_SPELLSPIRIT, 0, 999, 1);
} else {
if (_SPELL == classINC._SPELL_NATURE){
_SOUND.playFX(classINC._FX_SPELLNATURE, 0, 999, 1);
};
};
};
};
createSpellAni();
_GSTATE = classINC._GS_SPELL_SHOW;
} else {
_GSTATE = classINC._GS_BLOWUPTILES;
};
break;
case classINC._GS_SPELL_SHOW:
if (spellComplete()){
if (_SPELL == classINC._SPELL_FIRE){
_SOUND.fadeFX(classINC._FX_SPELLFIRE, 0, 0, 1500);
} else {
if (_SPELL == classINC._SPELL_STORM){
_SOUND.fadeFX(classINC._FX_SPELLSTORM, 0, 0, 1500);
} else {
if (_SPELL == classINC._SPELL_SPIRIT){
_SOUND.fadeFX(classINC._FX_SPELLSPIRIT, 0, 0, 1500);
} else {
if (_SPELL == classINC._SPELL_NATURE){
_SOUND.fadeFX(classINC._FX_SPELLNATURE, 0, 0, 1500);
};
};
};
};
_GSTATE = classINC._GS_BLOWUPTILES;
};
break;
case classINC._GS_SWAPSPELLTILES:
if (classRender.renderSwapTiles(_aLevel, _aSpellSwappers)){
_GSTATE = _GNEXT;
};
break;
case classINC._GS_BLOWUPTILES:
if (blowUpTiles()){
unmarkTiles();
dropFreeTiles();
_GSTATE = classINC._GS_DROPTILES;
_GNEXT = classINC._GS_ADDNEWTILES;
};
break;
case classINC._GS_DROPTILES:
if (classRender.renderDropTiles(_aLevel)){
_SOUND.playFX(classINC._FX_DROP);
_GSTATE = _GNEXT;
};
break;
case classINC._GS_ADDNEWTILES:
addNewTiles();
_GSTATE = classINC._GS_DROPALL;
_GNEXT = classINC._GS_FINDMORECOMBOS;
break;
case classINC._GS_FINDMORECOMBOS:
if (findCombos()){
hideMarkers();
_GSTATE = classINC._GS_REMOVETILES;
} else {
_GTREFRESH = 0;
_GSTATE = classINC._GS_FINDNEXTMOVE;
};
break;
case classINC._GS_GAMEOVER:
leaveGame();
_GSTATE = classINC._GS_NULL;
break;
};
_objFPS.iCount++;
if (_GTIMER > _objFPS.iNextCheck){
if (_objFPS.bShowFPS){
_objFPS.tfFPS.text = ("FPS: " + String(_objFPS.iCount));
};
_objFPS.iCount = 0;
_objFPS.iNextCheck = (_GTIMER + 1000);
};
}
private function findCombos():Boolean{
var _local1:Boolean;
var _local2:Array;
var _local3:uint;
var _local4:int;
var _local5:Number;
var _local6:int;
var _local7:int;
var _local8:uint;
var _local9:Boolean;
var _local10:uint;
var _local11:uint;
var _local12:uint;
var _local13:uint;
var _local14:classTile;
var _local15:uint;
_local1 = false;
_local2 = new Array();
resetTileMarkedFlags();
_SPELL = 0;
_uiSpellLevel = 0;
_iSpellTileIndex = -1;
_iSpellComboIndex = -1;
_aCombos = new Array();
_local3 = 0;
while (_local3 < _aCheck.length) {
if (_aLevel[_aCheck[_local3].y][_aCheck[_local3].x].colour >= classINC._SYMBOL_ROCK){
} else {
_local2 = _COMBOS.getCombosForTile(_aCheck[_local3], _aLevel);
if (_local2.length > 0){
_local1 = true;
_aCombos.push(_local2);
};
};
_local3++;
};
_local4 = 0;
if (_aCombos.length > 0){
_local5 = Number(_XVAR_BONUS.out());
_local6 = 0;
_local7 = 1;
if (_local5 > 1){
showMultiplierText(("x" + String(_local5)));
} else {
showMultiplierText("");
};
if (_aCombos.length > 1){
_local7 = 2;
};
_local8 = 0;
while (_local8 < _aCombos.length) {
if (_aCombos[_local8].length > 1){
_local7 = 3;
};
_local8++;
};
_local9 = false;
if (_uiGameMode == classINC._MODE_LEVEL){
_local10 = 0;
if (_aCombos.length == 1){
if (_aCombos[0].length > 1){
_local10 = 1;
} else {
if (_aCombos[0][0].length > 3){
_local10 = 1;
};
};
} else {
_local11 = 0;
_local12 = 0;
while (_local12 < _aCombos.length) {
if (_aCombos[_local12].length > 1){
_local11++;
} else {
if (_aCombos[_local12][0].length > 3){
_local11++;
};
};
_local12++;
};
if (_local11 > 0){
_local10 = _local11;
} else {
_local10 = 1;
};
};
if (_local10 > 0){
_SOUND.playFX(classINC._FX_LEVELCOMBO);
_XVAR_COMBOS.add(_local10);
};
};
_local8 = 0;
while (_local8 < _aCombos.length) {
_local13 = 0;
while (_local13 < _aCombos[_local8].length) {
_local14 = _aLevel[_aCombos[_local8][_local13][0][0]][_aCombos[_local8][_local13][0][1]];
_local15 = _local14.colour;
if (_local15 == classINC._SYMBOL_WILDCARD){
_local15 = getWildcardComboColour(_aCombos[_local8][_local13]);
};
if (_aCombos[_local8][_local13].length >= classINC._SPELL_LEVEL_1){
if ((((_local15 >= classINC._SYMBOL_FIRE)) && ((_local15 <= classINC._SYMBOL_NATURE)))){
if (_SPELL == 0){
_SPELL = _local15;
_uiSpellLevel = _aCombos[_local8][_local13].length;
_iSpellTileIndex = _local8;
_iSpellComboIndex = _local13;
} else {
if (_aCombos[_local8][_local13].length > _uiSpellLevel){
_SPELL = _local15;
_uiSpellLevel = _aCombos[_local8][_local13].length;
_iSpellTileIndex = _local8;
_iSpellComboIndex = _local13;
} else {
if (_aCombos[_local8][_local13].length == _uiSpellLevel){
if (isOneHigherThanTwo(_local15, _SPELL)){
_SPELL = _local15;
_uiSpellLevel = _aCombos[_local8][_local13].length;
_iSpellTileIndex = _local8;
_iSpellComboIndex = _local13;
};
};
};
};
} else {
if (_local15 == classINC._SYMBOL_POTION){
if (_aCombos[_local8][_local13].length >= classINC._SPELL_LEVEL_2){
if (_local5 <= 3){
cmcCauldron.playLoop("high");
_SOUND.playFX(classINC._FX_CAULDRON);
_XVAR_POTION_N.set(4);
_local9 = true;
_XVAR_POTION_V.set(3);
_XVAR_BONUS.set(3);
};
} else {
if (_local5 <= 2){
cmcCauldron.playLoop("medium");
_SOUND.playFX(classINC._FX_CAULDRON);
_XVAR_POTION_N.set(4);
_local9 = true;
_XVAR_POTION_V.set(2);
_XVAR_BONUS.set(2);
};
};
_local5 = Number(_XVAR_BONUS.out());
showMultiplierText(("x" + String(_local5)));
} else {
if (_local15 == classINC._SYMBOL_SCROLL){
if (_aCombos[_local8][_local13].length >= classINC._SPELL_LEVEL_2){
_XVAR_SCROLL.add(3);
} else {
_XVAR_SCROLL.add(1);
};
if (_XVAR_SCROLL.out() > 3){
_XVAR_SCROLL.set(3);
};
_SOUND.playFX(classINC._FX_SHWOOM);
_cbutHint.show();
_cbutHint.mc.mcText.gotoAndStop(_XVAR_SCROLL.out());
} else {
if (_local15 == classINC._SYMBOL_CAT){
if (_aCombos[_local8][_local13].length >= classINC._SPELL_LEVEL_2){
if (_local5 < 9){
cmcCauldron.playLoop("high");
_SOUND.playFX(classINC._FX_CAULDRON);
_SOUND.playFX(classINC._FX_CAT);
_XVAR_POTION_N.set(2);
_local9 = true;
_XVAR_POTION_V.set(9);
_XVAR_BONUS.set(9);
};
} else {
if (_local5 < 6){
cmcCauldron.playLoop("medium");
_SOUND.playFX(classINC._FX_CAULDRON);
_SOUND.playFX(classINC._FX_CAT);
_XVAR_POTION_N.set(2);
_local9 = true;
_XVAR_POTION_V.set(6);
_XVAR_BONUS.set(6);
};
};
_local5 = Number(_XVAR_BONUS.out());
showMultiplierText(("x" + String(_local5)));
};
};
};
};
} else {
if (_local15 == classINC._SYMBOL_CAT){
if (_local5 < 3){
cmcCauldron.playLoop("low");
_SOUND.playFX(classINC._FX_CAULDRON);
_SOUND.playFX(classINC._FX_CAT);
_local9 = true;
_XVAR_POTION_N.set(2);
_XVAR_POTION_V.set(3);
_XVAR_BONUS.set(3);
_local5 = Number(_XVAR_BONUS.out());
showMultiplierText(("x" + String(_local5)));
};
};
};
_local6 = Math.round((_aCombos[_local8][_local13].length * _local5));
_local4 = (_local4 + _local6);
_local13++;
};
_local8++;
};
_XVAR_SWAPCOMBOS.add(1);
if (_local5 < 9){
_XVAR_BONUS.add(1);
};
};
_aCheck = new Array();
if (_local4 > 0){
updateScore(_local4);
};
return (_local1);
}
private function getRandom(_arg1:int, _arg2:int):int{
return (Math.round((_arg1 + (Math.random() * (_arg2 - _arg1)))));
}
private function blowUpTiles():Boolean{
var _local1:Boolean;
var _local2:uint;
_local1 = true;
_local2 = 0;
while (_local2 < _aBlowUp.length) {
if (_aBlowUp[_local2] == null){
} else {
if (_aBlowUp[_local2].ani.currentFrame >= 11){
_mcHolder.removeChild(_aBlowUp[_local2]);
_aBlowUp[_local2] = null;
} else {
_local1 = false;
};
};
_local2++;
};
return (_local1);
}
public function showNextMove(_arg1:Event):void{
var _local2:uint;
var _local3:MovieClip;
var _local4:uint;
if (_GSTATE != classINC._GS_PLAY){
return;
};
_PARENT.playButtonClick();
if (_isHintShown){
return;
};
_isHintShown = true;
_SOUND.playFX(classINC._FX_HINT);
_local2 = 0;
while (_local2 < _aHintMCs.length) {
_mcHolder.removeChild(_aHintMCs[_local2]);
_local2++;
};
_aHintMCs = new Array();
_local4 = 0;
while (_local4 < _aHint.length) {
_local3 = new mcHint();
_local3.x = _aPos[_aHint[_local4][0]][_aHint[_local4][1]][0];
_local3.y = _aPos[_aHint[_local4][0]][_aHint[_local4][1]][1];
_mcHolder.addChild(_local3);
_aHintMCs.push(_local3);
_local4++;
};
_XVAR_SCROLL.add(-1);
if (_XVAR_SCROLL.out() <= 0){
_XVAR_SCROLL.set(0);
_cbutHint.hide();
} else {
_cbutHint.mc.mcText.gotoAndStop(_XVAR_SCROLL.out());
};
}
private function swapTiles():void{
var _local1:int;
var _local2:uint;
_local1 = (Math.abs((_aMarked[0].x - _aMarked[1].x)) + Math.abs((_aMarked[0].y - _aMarked[1].y)));
_local2 = 0;
while (_local2 < _aHintMCs.length) {
_mcHolder.removeChild(_aHintMCs[_local2]);
_local2++;
};
_aHintMCs = new Array();
_isHintShown = false;
noRollover();
_iTimerDelay = _GTIMER;
if (_local1 > 1){
unmarkTiles();
} else {
if (_uiGameMode == classINC._MODE_LEVEL){
_XVAR_MOVES.add(1);
updateLevelModeText();
};
_XVAR_SWAPCOMBOS.set(0);
swapTileObjects(_aMarked);
_aCheck = new Array();
_aCheck.push(_aMarked[0]);
_aCheck.push(_aMarked[1]);
_SOUND.playFX(classINC._FX_WOOSH);
_GSTATE = classINC._GS_SWAPTILES;
_GNEXT = classINC._GS_FINDCOMBOS;
};
}
private function destroyLevel():void{
var _local1:uint;
var _local2:uint;
_local1 = 0;
while (_local1 < _aLevel.length) {
_local2 = 0;
while (_local2 < _aLevel[_local1].length) {
if (_aLevel[_local1][_local2] != null){
if (_aLevel[_local1][_local2]._mcTile != null){
_mcHolder.removeChild(_aLevel[_local1][_local2]._mcTile);
};
_aLevel[_local1][_local2] = null;
};
_local2++;
};
_local1++;
};
_aLevel = new Array();
}
private function spellComplete():Boolean{
var _local1:Boolean;
var _local2:uint;
_local1 = false;
if ((((_aSpellTiles.length <= 0)) || ((_iSpellTileCount <= 0)))){
return (true);
};
_local2 = 0;
if (_uiSpellLevel == classINC._SPELL_LEVEL_1){
_GTREFRESH = (_GTREFRESH + 500);
_local2 = getRandom(0, (_aSpellTiles.length - 1));
} else {
_GTREFRESH = (_GTREFRESH + 125);
};
_mcSpellAni.x = _aPos[_aSpellTiles[_local2][0]][_aSpellTiles[_local2][1]][0];
_mcSpellAni.y = _aPos[_aSpellTiles[_local2][0]][_aSpellTiles[_local2][1]][1];
if ((((_SPELL == classINC._SPELL_NATURE)) && ((_uiSpellLevel == classINC._SPELL_LEVEL_1)))){
transformTile(_aSpellTiles[_local2], classINC._SYMBOL_NATURE);
_aCheck.push(new Point(_aSpellTiles[_local2][1], _aSpellTiles[_local2][0]));
} else {
if (_SPELL == classINC._SPELL_SPIRIT){
swapSpellTile(_aSpellTiles[_local2]);
_GTREFRESH = (_GTIMER + 250);
} else {
killTile(_aSpellTiles[_local2]);
_aCheck.push(new Point(_aSpellTiles[_local2][1], _aSpellTiles[_local2][0]));
};
};
_mcSpellAni.ani.gotoAndPlay(2);
_SOUND.playFX(classINC._FX_PLING, 0, 1, 0.3);
_aSpellTiles.splice(_local2, 1);
_iSpellTileCount--;
if ((((_aSpellTiles.length <= 0)) || ((_iSpellTileCount <= 0)))){
if (_GSTATE != classINC._GS_SWAPSPELLTILES){
_local1 = true;
};
};
return (_local1);
}
private function setGameMode2(_arg1:Event):void{
_PARENT.playButtonClick();
_uiGameMode = classINC._MODE_TIMED;
_SYSTEM.logGameStart((_uiGameMode + 1));
_GSTATE = classINC._GS_INIT;
}
private function setGameMode3(_arg1:Event):void{
_PARENT.playButtonClick();
_uiGameMode = classINC._MODE_LEVEL;
_SYSTEM.logGameStart((_uiGameMode + 1));
_GSTATE = classINC._GS_INIT;
}
private function createSpellAni():void{
if (_mcSpellAni == null){
_mcSpellAni = new mcSpellAni();
_mcSpellAni.x = -100;
_mcSpellAni.y = -100;
_mcFXHolder.addChild(_mcSpellAni);
};
_mcSpellAni.gotoAndStop(_SPELL);
}
private function reswapTiles():void{
swapTileObjects(_aMarked);
_GSTATE = classINC._GS_SWAPTILES;
_GNEXT = classINC._GS_PLAY;
}
private function setGameMode1(_arg1:Event):void{
_PARENT.playButtonClick();
_uiGameMode = classINC._MODE_NORMAL;
_SYSTEM.logGameStart((_uiGameMode + 1));
_GSTATE = classINC._GS_INIT;
}
private function getMousePos():void{
var _local1:int;
var _local2:int;
var _local3:int;
var _local4:int;
_local1 = _mcHolder.mouseX;
_local2 = _mcHolder.mouseY;
if ((((_local1 < 0)) || ((_local2 < 0)))){
noRollover();
return;
};
_local3 = int((_local1 / _aSetup[_uiGameMode].tileW));
_local4 = int((_local2 / _aSetup[_uiGameMode].tileH));
if ((((_ptMouseTile.x == _local3)) && ((_ptMouseTile.y == _local4)))){
return;
};
if ((((_local3 >= 0)) && ((_local4 >= 0)))){
if ((((_local3 < _aSetup[_uiGameMode].cols)) && ((_local4 < _aSetup[_uiGameMode].rows)))){
_ptMouseTile.x = _local3;
_ptMouseTile.y = _local4;
_mcRollover.x = (_ptMouseTile.x * _aSetup[_uiGameMode].tileW);
_mcRollover.y = (_ptMouseTile.y * _aSetup[_uiGameMode].tileH);
_mcRollover.visible = true;
} else {
noRollover();
};
} else {
noRollover();
};
}
private function showMultiplierText(_arg1:String):void{
if (_arg1 != ""){
if (_arg1 != _PARENT.tfMultiplier.text){
_SOUND.playFX(classINC._FX_MULTI);
_PARENT.mcMultiplierAni.gotoAndPlay(2);
};
};
_PARENT.tfMultiplier.text = _arg1;
}
private function cleanUp():void{
var _local1:uint;
if (_PARENT.mcWitch.hasEventListener(MouseEvent.CLICK)){
_PARENT.mcWitch.removeEventListener(MouseEvent.CLICK, onWitchClick);
};
if (_PARENT.mcSecretBook.hasEventListener(MouseEvent.CLICK)){
_PARENT.mcSecretBook.removeEventListener(MouseEvent.CLICK, onSecretBookClick);
};
destroyLevel();
_local1 = 0;
while (_local1 < _aHintMCs.length) {
_mcHolder.removeChild(_aHintMCs[_local1]);
_local1++;
};
if (_mcOverlay != null){
_mcHolder.removeChild(_mcOverlay);
};
if (_mcRollover != null){
_mcHolder.removeChild(_mcRollover);
};
if (_mcMarker1 != null){
_mcHolder.removeChild(_mcMarker1);
};
if (_mcMarker2 != null){
_mcHolder.removeChild(_mcMarker2);
};
if (_mcSpellAni != null){
_mcFXHolder.removeChild(_mcSpellAni);
};
if (_mcLevelFields != null){
_PARENT.removeChild(_mcLevelFields);
};
_cbutHint.destroy();
_cbutHint = null;
_aPos = new Array();
_aHintMCs = new Array();
_COMBOS = null;
}
private function onSecretBookClick(_arg1:MouseEvent):void{
if (_GSTATE != classINC._GS_PLAY){
return;
};
if (_XVAR_SCROLL.out() < 3){
_XVAR_SCROLL.add(1);
_SOUND.playFX(classINC._FX_SHWOOM);
_cbutHint.show();
_cbutHint.mc.mcText.gotoAndStop(_XVAR_SCROLL.out());
};
_PARENT.mcSecretBook.removeEventListener(MouseEvent.CLICK, onSecretBookClick);
_PARENT.mcSecretBook.buttonMode = false;
}
private function resetTileMarkedFlags():void{
var _local1:uint;
var _local2:uint;
_local1 = 0;
while (_local1 < _aSetup[_uiGameMode].rows) {
_local2 = 0;
while (_local2 < _aSetup[_uiGameMode].cols) {
if (_aLevel[_local1][_local2] != null){
if (_aLevel[_local1][_local2].isMarked){
_aLevel[_local1][_local2].isMarked = false;
};
if (_aLevel[_local1][_local2].isSpellMarked){
_aLevel[_local1][_local2].isSpellMarked = false;
};
};
_local2++;
};
_local1++;
};
}
private function createLevel():void{
var _local1:Object;
var _local2:MovieClip;
var _local3:uint;
var _local4:classTile;
var _local5:int;
var _local6:uint;
var _local7:uint;
_local1 = _aSetup[_uiGameMode];
_local3 = _iLastColour;
_local5 = 4;
_aLevel = new Array();
_local6 = 0;
while (_local6 < _local1.rows) {
_aLevel.push(new Array());
_local7 = 0;
while (_local7 < _local1.cols) {
_local2 = new mcTiles();
_local2.cacheAsBitmap = true;
if (_local6 > 0){
while ((((_local3 == _iLastColour)) || ((_local3 == _aLevel[(_local6 - 1)][_local7].colour)))) {
_local3 = getRandom(1, _local1.numTiles);
};
};
if (_local7 > 0){
while ((((_local3 == _iLastColour)) || ((_local3 == _aLevel[_local6][(_local7 - 1)].colour)))) {
_local3 = getRandom(1, _local1.numTiles);
};
} else {
while (_local3 == _iLastColour) {
_local3 = getRandom(1, _local1.numTiles);
};
};
_iLastColour = _local3;
_local2.gotoAndStop(_local3);
_local4 = new classTile(_local2);
_local4.colour = _local3;
_local4.resetPos(_aPos[_local6][_local7][0], -(_local1.tileH), _aPos[_local6][_local7][0], _aPos[_local6][_local7][1], _local5);
_aLevel[_local6].push(_local4);
_mcHolder.addChild(_local2);
_local7++;
};
_local6++;
};
}
private function updateLevelModeText():void{
var _local1:String;
var _local2:String;
_local1 = classTEXT.COMBOS.replace("%1", _XVAR_COMBOS.out());
_local1 = _local1.replace("%2", _XVAR_COMBOSGET.out());
_local2 = classTEXT.MOVES.replace("%1", _XVAR_MOVES.out());
_local2 = _local2.replace("%2", _XVAR_MOVESMAX.out());
_mcLevelFields.tfCombos.htmlText = _local1;
_mcLevelFields.tfMoves.htmlText = _local2;
}
private function hideMarkers():void{
_mcMarker1.visible = false;
_mcMarker2.visible = false;
}
private function swapTileObjects(_arg1:Array):void{
var _local2:int;
var _local3:classTile;
var _local4:classTile;
var _local5:Array;
var _local6:Array;
_local2 = 1;
_local3 = _aLevel[_arg1[0].y][_arg1[0].x];
_local4 = _aLevel[_arg1[1].y][_arg1[1].x];
_local5 = _aPos[_arg1[0].y][_arg1[0].x];
_local6 = _aPos[_arg1[1].y][_arg1[1].x];
_aLevel[_arg1[0].y][_arg1[0].x] = _local4;
_aLevel[_arg1[1].y][_arg1[1].x] = _local3;
_local3.resetPos(_local5[0], _local5[1], _local6[0], _local6[1], _local2);
_local4.resetPos(_local6[0], _local6[1], _local5[0], _local5[1], _local2);
_local3.isMoving = true;
_local4.isMoving = true;
}
public function KeyDownEvent(_arg1:KeyboardEvent):void{
if (_GSTATE != classINC._GS_PLAY){
return;
};
if ((((_keyDown == 17)) && ((_arg1.keyCode == 82)))){
_objFPS.bShowFPS = !(_objFPS.bShowFPS);
_objFPS.tfFPS.text = "FPS";
_objFPS.tfFPS.visible = _objFPS.bShowFPS;
} else {
_keyDown = _arg1.keyCode;
if (_SECRETS.trackKeyCode(_keyDown, _arg1.charCode) == 0){
if (Number(_XVAR_POTION_V.out()) <= 0){
if (Number(_XVAR_BONUS.out()) < 3){
_XVAR_BONUS.set(3);
showMultiplierText(("x" + String(_XVAR_BONUS.out())));
};
};
};
};
}
}
}//package classes
Section 3
//classINC (classes.classINC)
package classes {
public class classINC {
public static const _FX_CAT:String = "fxCat";
public static const _SPELL_LEVEL_1:uint = 4;
public static const _GS_BLOWUPTILES:uint = 160;
public static const _GS_SWAPTILES:uint = 100;
public static const _GS_SPELL_PREPARE:uint = 170;
public static const _GS_SPELL_SHOW:uint = 180;
public static const _GAMESTART:uint = 80;
public static const _HELP2:uint = 60;
public static const _SPELL_STORM:uint = 2;
public static const _FRAME_POSTPOINTS:uint = 60;
public static const _FX_SWAPBACK:String = "fxSwapBack";
public static const _FX_LEVELCOMBO:String = "fxLevelCombo";
public static const _FX_SHWOOM:String = "fxShwoom";
public static const _MODE_TIMED:uint = 1;
public static const _FRAME_INTRO:uint = 10;
public static const _FX_CAULDRON:String = "fxCauldron";
public static const _HELP:uint = 50;
public static const _FX_CLICK:String = "fxClick";
public static const _GS_SHUFFLE:uint = 280;
public static const _FX_SLIDEIN:String = "fxSlideIn";
public static const _FX_SLIDEOUT:String = "fxSlideOut";
public static const _SYMBOL_NATURE:uint = 4;
public static const _GS_DROPTILES:uint = 200;
public static const _FX_SPELLSPIRIT:String = "fxSpellSpirit";
public static const _SYMBOL_POTION:uint = 5;
public static const _SYMBOL_CAT:uint = 8;
public static const _GS_FINDNEXTMOVE:uint = 260;
public static const _FX_JUMP:String = "fxJump";
public static const _SYMBOL_STORM:uint = 2;
public static const _FRAME_GAME:uint = 40;
public static const _GS_INIT:uint = 40;
public static const _INTRO:uint = 40;
public static const _POSTPOINTS:uint = 100;
public static const _MUSIC_MAIN:String = "musicMain";
public static const _GAMESTOP:uint = 90;
public static const _WAIT:uint = 30;
public static const _SYMBOL_SCROLL:uint = 6;
public static const _FX_SPELLSTORM:String = "fxSpellStorm";
public static const _FX_MULTI:String = "fxMulti";
public static const _FX_POP:String = "fxPop";
public static const _GS_SWAPSPELLTILES:uint = 190;
public static const _MODE_LEVEL:uint = 2;
public static const _GS_PLAY:uint = 80;
public static const _SYMBOL_WILDCARD:uint = 7;
public static const _NULL:uint = 0;
public static const _MODE_NORMAL:uint = 0;
public static const _FX_DROPALL:String = "fxDropAll";
public static const _SYMBOL_SPIRIT:uint = 3;
public static const _GS_DROPALL:uint = 60;
public static const _FX_SELECT:String = "fxSelect";
public static const _FRAME_HELP:uint = 20;
public static const _FX_PUFF:String = "fxPuff";
public static const _FX_ROOFCAT:String = "fxRoofCat";
public static const _WAITRESPONSE:uint = 110;
public static const _FRAME_GAMEOVER:uint = 50;
public static const _FX_HINT:String = "fxHint";
public static const _GS_NEXTLEVEL:uint = 30;
public static const _FX_SWAP:String = "fxSwap";
public static const _SPELL_FIRE:uint = 1;
public static const _FONT_MAGICSCHOOL:String = "_internalMagicSchool";
public static const _GS_ADDNEWTILES:uint = 220;
public static const _GS_REMOVETILES:uint = 140;
public static const _SPELL_NATURE:uint = 4;
public static const _GS_NULL:uint = 0;
public static const _SYMBOL_FIRE:uint = 1;
public static const _FX_WOOSH:String = "fxWoosh";
public static const _GAME:uint = 70;
public static const _GS_FINDCOMBOS:uint = 120;
public static const _GS_SELECTMODE:uint = 10;
public static const _PREINIT:uint = 10;
public static const _GS_GAMEPAUSED:uint = 888;
public static const _FRAME_HELP2:uint = 30;
public static const _SPELL_LEVEL_2:uint = 5;
public static const _FONT_VERDANA:String = "_internalVerdana";
public static const _FX_GAMEOVER:String = "fxGameover";
public static const _GS_FINDMORECOMBOS:uint = 240;
public static const _FX_SPELLNATURE:String = "fxSpellNature";
public static const _SYMBOL_ROCK:uint = 9;
public static const _SPELL_SPIRIT:uint = 3;
public static const _INIT:uint = 20;
public static const _FX_SPELLFIRE:String = "fxSpellFire";
public static const _GS_GAMEOVER:uint = 999;
public static const _FX_DROP:String = "fxDrop";
public static const _TEHGAMEOVER:uint = 999;
public static const _FX_PLING:String = "fxPling";
}
}//package classes
Section 4
//classRender (classes.classRender)
package classes {
public class classRender {
private static var _isRendered:Boolean;
public function classGameText(){
_isRendered = false;
}
static function renderDropTiles(_arg1:Array):Boolean{
var _local2:uint;
var _local3:uint;
_isRendered = true;
_local2 = 0;
while (_local2 < _arg1.length) {
_local3 = 0;
while (_local3 < _arg1[_local2].length) {
if (_arg1[_local2][_local3] != null){
if (!_arg1[_local2][_local3].isPositioned){
_isRendered = false;
_arg1[_local2][_local3].dropSlow();
};
};
_local3++;
};
_local2++;
};
return (_isRendered);
}
static function renderDropAllTiles(_arg1:Array):Boolean{
var _local2:uint;
var _local3:uint;
var _local4:uint;
_isRendered = true;
_local3 = 0;
while (_local3 < _arg1.length) {
_local4 = 0;
while (_local4 < _arg1[_local3].length) {
if (!_arg1[_local3][_local4].isPositioned){
_isRendered = false;
_arg1[_local3][_local4].drop();
if (_arg1[_local3][_local4].triggerNextX){
if (!_arg1[_local3][_local4].xHasTriggered){
if (_local4 < (_arg1[_local3].length - 1)){
_local2 = (_local4 + 1);
while (_local2 < _arg1[_local3].length) {
if (!_arg1[_local3][_local2].isMoving){
if (!_arg1[_local3][_local2].isPositioned){
_arg1[_local3][_local2].isMoving = true;
_local2 = _arg1[_local3].length;
};
} else {
_local2 = _arg1[_local3].length;
};
_local2++;
};
};
_arg1[_local3][_local4].xHasTriggered = true;
};
};
if (_arg1[_local3][_local4].triggerNextY){
if (!_arg1[_local3][_local4].yHasTriggered){
if (_local3 > 0){
_local2 = 0;
while (_local2 < _arg1[_local3].length) {
if (((!(_arg1[(_local3 - 1)][_local2].isMoving)) && (!(_arg1[(_local3 - 1)][_local2].isPositioned)))){
_arg1[(_local3 - 1)][_local2].isMoving = true;
_local2 = _arg1[_local3].length;
};
_local2++;
};
};
_arg1[_local3][_local4].yHasTriggered = true;
};
};
};
_local4++;
};
_local3++;
};
return (_isRendered);
}
static function renderSwapTiles(_arg1:Array, _arg2:Array):Boolean{
var _local3:uint;
_isRendered = true;
_local3 = 0;
while (_local3 < _arg2.length) {
if (!_arg1[_arg2[_local3].y][_arg2[_local3].x].isPositioned){
_isRendered = false;
_arg1[_arg2[_local3].y][_arg2[_local3].x].swap();
};
_local3++;
};
return (_isRendered);
}
}
}//package classes
Section 5
//classTEXT (classes.classTEXT)
package classes {
public class classTEXT {
public static const HELP:String = "<p align='center'><font size='28'>Swap adjacent tiles to create combos of three or more of the same colour.<br>Combos of four or more elemental symbols will create powerful spells.</font></p>";
public static const SHUFFLE2:String = "<p align='center'><font size='38'>Shuffling Tiles...</font></p>";
public static const GAMEOVER:String = "<p align='center'><font size='50'>Game Over!</font></p>";
public static const MOVES:String = "<p align='left'><font size='22'>Moves: %1/%2</font></p>";
public static const HELP2:String = "<p align='center'><font size='28'>Indestructible symbols can only be transformed or destroyed by a spell combo!<br><br>The wildcard symbol can be used in place of any other symbol.</font></p>";
public static const YOURSCORE:String = "<p align='center'><font size='50'><br>Your Score:<br>%1</font></p>";
public static const NOMOREMOVES:String = "<p align='center'><font size='38'>No More Moves!</font></p>";
public static const BONUS3:String = "<p align='center'><font size='30'>Triple Bonus</font></p>";
public static const BONUS2:String = "<p align='center'><font size='30'>Double Bonus</font></p>";
public static const POSTPOINTSOPEN:String = "<p align='center'><font size='32'>";
public static const POSTINGPOINTS:String = "<br>Submitting Score...";
public static const SELECTMODE:String = "<p align='center'><font size='48'>Select a Game Mode:</font></p>";
public static const GAMEPAUSED:String = "<p align='center'><font size='50'>Game Paused!</font></p>";
public static const MODETEXT1:String = "<p align='center'><font size='26'>Play until you run out of moves</font></p>";
public static const MODETEXT3:String = "<p align='center'><font size='26'>Create Combos in a limited amount of moves</font></p>";
public static const COMBOS:String = "<p align='left'><font size='22'>Combos: %1/%2</font></p>";
public static const NOCOMBOS:String = "<p align='center'><font size='38'>You Didn't Create<br>Enough Combos!</font></p>";
public static const NOMORETIME:String = "<p align='center'><font size='38'>You Ran Out Of Time!</font></p>";
public static const MODETEXT2:String = "<p align='center'><font size='26'>Play against the timer of doom</font></p>";
public static const NEXTLEVEL:String = "<p align='center'><font size='44'>Level %1</font></p>";
public static const POSTPOINTSCLOSE:String = "</font></p>";
public static const LEVELGOAL:String = "<p align='center'><font size='30'>Create %1 Combos of four or<br>more tiles in %2 moves</font></p>";
public static const SHUFFLE1:String = "<p align='center'><font size='48'>No More Moves!</font></p>";
public static const SCORE:String = "<p align='right'><font size='40'>Score:</font></p>";
}
}//package classes
Section 6
//classTile (classes.classTile)
package classes {
import flash.display.*;
public class classTile {
public var _mcTile:MovieClip;
private var _xHasTriggered:Boolean;
private var _iXMov:Number;
private var _iCurX:Number;
private var _iCurY:Number;
private var _iYPos:Number;
private var _isPositioned:Boolean;
private var _iXPos:Number;
private var _isMarked:Boolean;
private var _uiColour:uint;
private var _iYMov:Number;
private var _isSpellMarked:Boolean;
private var _bTriggerNextX:Boolean;
private var _bTriggerNextY:Boolean;
private var _yHasTriggered:Boolean;
private var _isMoving:Boolean;
public function classTile(_arg1:MovieClip){
_mcTile = _arg1;
_uiColour = 0;
_isPositioned = false;
_isMoving = false;
_isMarked = false;
_isSpellMarked = false;
_iCurX = 0;
_iCurY = 0;
_iXPos = 0;
_iYPos = 0;
_iXMov = 0;
_iYMov = 0;
_bTriggerNextX = false;
_bTriggerNextY = false;
_xHasTriggered = false;
_yHasTriggered = false;
}
public function get isMarked():Boolean{
return (_isMarked);
}
public function dropSlow():void{
if (_isMoving){
if (_iYMov > 0){
_iCurY = (_iCurY + _iYMov);
_iYMov = (_iYMov + 4);
if (_iCurY > _iYPos){
_iCurY = _iYPos;
};
};
updatePos();
if (_iCurY == _iYPos){
_isMoving = false;
_isPositioned = true;
};
};
}
public function resetPos(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int):void{
_iCurX = _arg1;
_iCurY = _arg2;
_iXPos = _arg3;
_iYPos = _arg4;
_iXMov = 0;
_iYMov = 0;
updatePos();
if (_iCurX < _iXPos){
_iXMov = _arg5;
} else {
if (_iCurX > _iXPos){
_iXMov = -(_arg5);
};
};
if (_iCurY < _iYPos){
_iYMov = _arg5;
} else {
if (_iCurY > _iYPos){
_iYMov = -(_arg5);
};
};
if (((!((_iXMov == 0))) || (!((_iYMov == 0))))){
_isPositioned = false;
} else {
_isPositioned = true;
};
_bTriggerNextX = false;
_bTriggerNextY = false;
_xHasTriggered = false;
_yHasTriggered = false;
}
public function set colour(_arg1:uint):void{
_uiColour = _arg1;
}
public function swap():void{
if (_isMoving){
if (_iXMov > 0){
_iCurX = (_iCurX + _iXMov);
_iXMov = (_iXMov + 1);
if (_iCurX > _iXPos){
_iCurX = _iXPos;
};
} else {
if (_iXMov < 0){
_iCurX = (_iCurX + _iXMov);
_iXMov = (_iXMov - 1);
if (_iCurX < _iXPos){
_iCurX = _iXPos;
};
};
};
if (_iYMov > 0){
_iCurY = (_iCurY + _iYMov);
_iYMov = (_iYMov + 1);
if (_iCurY > _iYPos){
_iCurY = _iYPos;
};
} else {
if (_iYMov < 0){
_iCurY = (_iCurY + _iYMov);
_iYMov = (_iYMov - 1);
if (_iCurY < _iYPos){
_iCurY = _iYPos;
};
};
};
updatePos();
if ((((_iCurX == _iXPos)) && ((_iCurY == _iYPos)))){
_isMoving = false;
_isPositioned = true;
};
};
}
public function get isMoving():Boolean{
return (_isMoving);
}
public function nextColour():void{
if (++_uiColour > 9){
_uiColour = 1;
};
_mcTile.gotoAndStop(_uiColour);
}
public function set isMoving(_arg1:Boolean):void{
_isMoving = _arg1;
}
private function updatePos():void{
_mcTile.x = _iCurX;
_mcTile.y = _iCurY;
}
public function get colour():uint{
return (_uiColour);
}
public function get isPositioned():Boolean{
return (_isPositioned);
}
public function set isSpellMarked(_arg1:Boolean):void{
_isSpellMarked = _arg1;
}
public function set xHasTriggered(_arg1:Boolean):void{
_xHasTriggered = _arg1;
}
public function set yHasTriggered(_arg1:Boolean):void{
_yHasTriggered = _arg1;
}
public function get triggerNextX():Boolean{
return (_bTriggerNextX);
}
public function get triggerNextY():Boolean{
return (_bTriggerNextY);
}
public function drop():void{
if (_isMoving){
if (_iYMov > 0){
_iCurY = (_iCurY + _iYMov);
_iYMov = (_iYMov + 8);
if (((!(_xHasTriggered)) && ((_iCurY >= 20)))){
_bTriggerNextX = true;
};
if (((!(_yHasTriggered)) && ((_iCurY >= 36)))){
_bTriggerNextY = true;
};
if (_iCurY > _iYPos){
_iCurY = _iYPos;
};
};
updatePos();
if (_iCurY == _iYPos){
_isMoving = false;
_isPositioned = true;
};
};
}
public function get yHasTriggered():Boolean{
return (_yHasTriggered);
}
public function get isSpellMarked():Boolean{
return (_isSpellMarked);
}
public function set isMarked(_arg1:Boolean):void{
_isMarked = _arg1;
}
public function get xHasTriggered():Boolean{
return (_xHasTriggered);
}
}
}//package classes
Section 7
//classWitchery101 (classes.classWitchery101)
package classes {
import flash.display.*;
import flash.text.*;
import com.meteorgames.libs.sound.*;
import flash.events.*;
import com.meteorgames.libs.xvars.*;
import com.meteorgames.libs.custommc.*;
import com.meteorgames.libs.custombutton.*;
import com.meteorgames.libs.slider.*;
import com.meteorgames.flashsystem.game.*;
public class classWitchery101 extends GameInterface {
public var mcScroll:MovieClip;
private var cbutContinue:customButton;
private var cmcWitch:customMC;
private var showPuff:Boolean;
public var mcScoreTweenUp:MovieClip;
public var mcPuff:MovieClip;
private var _FRAME:uint;
public var mcLogo:MovieClip;
public var mcMultiplierAni:MovieClip;
public var butEnd:MovieClip;
public var mcSurprise:MovieClip;
public var txtSubmit:TextField;
public var butHint:MovieClip;
public var mcFXHolder:MovieClip;
private var _useLocalGameText:Boolean;
public var mcHamster:MovieClip;
public var mcHolderMask:MovieClip;
public var tfScore2:TextField;
private var cmcRoofCat:customMC;
private var _uiGameMode:uint;
public var mcTPOSG:MovieClip;
public var tfFPS:TextField;
private var _TEHGAME:classGameLogic;
public var mcScoreTween:MovieClip;
public var mcPlayField:MovieClip;
public var tfScore:TextField;
public var mcHelpScreen2:MovieClip;
public var mcHelpScreen1:MovieClip;
public var mcTimer:MovieClip;
public var mcGameOverScreen:MovieClip;
private var _STATE:uint;// = 10
public var tfLegal:TextField;
private var _XVAR_SCORE:XVar;
public var mcGameOverScroll:MovieClip;
public var mcCauldron:MovieClip;
public var mcWitch:MovieClip;
public var tfMultiplier:TextField;
public var mcSecret:MovieClip;
public var mcCont:MovieClip;
public var mcFXSlider:Slider;
public var mcRoofCat:MovieClip;
public var mcSecretBook:MovieClip;
private var _SOUND:SoundManager;
public var mcMusicSlider:Slider;
private var cmcHamster:customMC;
public function classWitchery101(){
_STATE = classINC._PREINIT;
super();
addFrameScript(0, frame1, 1, frame2, 2, frame3, 17, frame18, 37, frame38, 52, frame53, 67, frame68);
addEventListener(Event.ENTER_FRAME, main, false, 0, true);
}
private function arrowHelpOut(_arg1:MouseEvent):void{
_arg1.target.gotoAndStop(1);
}
private function mainButtonHamsterOver(_arg1:MouseEvent):void{
if (_arg1.target.currentFrame == 1){
_SOUND.playFX(classINC._FX_SLIDEOUT, 0, 1, 0.5);
_arg1.target.gotoAndPlay(2);
if (mcHamster != null){
mcHamster.gotoAndPlay(2);
} else {
if (mcWitch != null){
mcWitch.mcHamster.gotoAndPlay(2);
};
};
};
}
private function displayServerResponse(_arg1:String, _arg2:Boolean):void{
var _local3:String;
_local3 = (((classTEXT.POSTPOINTSOPEN + "<br>") + _arg1) + classTEXT.POSTPOINTSCLOSE);
_SYSTEM.setTextField(txtSubmit, _local3);
if (_arg2){
_SOUND.playFX(classINC._FX_LEVELCOMBO);
mcCont.alpha = 1;
cbutContinue = new customButton(_SYSTEM, mcCont, null, restartGame2, "");
mcCont.tabEnabled = false;
};
}
private function secretNextMove(_arg1:MouseEvent):void{
if (_TEHGAME != null){
_TEHGAME.showNextMove(_arg1);
};
}
private function initGameScreen():Boolean{
var _local1:Boolean;
_local1 = false;
_local1 = stageInitialized();
if (_local1){
if (_useLocalGameText){
initMainButton(butEnd, endGame, true);
if (!mcHamster.hasEventListener(MouseEvent.MOUSE_OUT)){
mcHamster.addEventListener(MouseEvent.MOUSE_OUT, hamsterRollOut, false, 0, true);
};
_SYSTEM.setTextField(tfScore, classTEXT.SCORE);
_SYSTEM.setTextField(mcScoreTweenUp.mcScoreField.tfShowPoints, "");
};
};
return (_local1);
}
private function moreHelp(_arg1:MouseEvent):void{
killHelpArrow(mcHelpScreen1.mcArrowMore, moreHelp);
playButtonClick();
gotoFrame(classINC._FRAME_HELP2);
_STATE = classINC._HELP2;
}
private function scrollCloseGameOver(_arg1:Event):void{
if (mcGameOverScroll.ani == null){
return;
};
if (mcGameOverScroll.ani.currentFrame >= 21){
mcGameOverScroll.removeEventListener(Event.ENTER_FRAME, scrollCloseGameOver);
showPuff = true;
gotoFrame(classINC._FRAME_INTRO);
_STATE = classINC._INTRO;
};
}
private function killMainButton(_arg1:MovieClip, _arg2:Function, _arg3:Boolean):void{
var _local4:Function;
var _local5:Function;
if (_arg1.hasEventListener(MouseEvent.MOUSE_DOWN)){
_arg1.removeEventListener(MouseEvent.MOUSE_DOWN, mainButtonDown);
};
if (_arg1.hasEventListener(MouseEvent.MOUSE_UP)){
_arg1.removeEventListener(MouseEvent.MOUSE_UP, _arg2);
};
_local4 = mainButtonOver;
_local5 = mainButtonOut;
if (_arg3){
_local4 = mainButtonHamsterOver;
_local5 = mainButtonHamsterOut;
};
if (_arg1.hasEventListener(MouseEvent.MOUSE_OVER)){
_arg1.removeEventListener(MouseEvent.MOUSE_OVER, _local4);
};
if (_arg1.hasEventListener(MouseEvent.MOUSE_OUT)){
_arg1.removeEventListener(MouseEvent.MOUSE_OUT, _local5);
};
}
private function initHelpScreen():Boolean{
var _local1:Boolean;
_local1 = false;
_local1 = stageInitialized();
if (_local1){
if (!mcInitialized(mcWitch)){
_local1 = false;
} else {
if (_useLocalGameText){
initMainButton(mcWitch.mcBook2, goBack, false);
_SYSTEM.setTextField(mcHelpScreen1.tfHelp, classTEXT.HELP);
};
if (!mcWitch.mcHamster.hasEventListener(MouseEvent.MOUSE_OUT)){
mcWitch.mcHamster.addEventListener(MouseEvent.MOUSE_OUT, hamsterRollOut, false, 0, true);
};
if (!mcHelpScreen1.mcArrowMore.hasEventListener(MouseEvent.MOUSE_DOWN)){
mcHelpScreen1.mcArrowMore.addEventListener(MouseEvent.MOUSE_DOWN, moreHelp, false, 0, true);
};
if (!mcHelpScreen1.mcArrowMore.hasEventListener(MouseEvent.MOUSE_OVER)){
mcHelpScreen1.mcArrowMore.addEventListener(MouseEvent.MOUSE_OVER, arrowHelpOver, false, 0, true);
};
if (!mcHelpScreen1.mcArrowMore.hasEventListener(MouseEvent.MOUSE_OUT)){
mcHelpScreen1.mcArrowMore.addEventListener(MouseEvent.MOUSE_OUT, arrowHelpOut, false, 0, true);
};
setMCButton(mcHelpScreen1.mcArrowMore);
mcScroll.addEventListener(Event.ENTER_FRAME, scrollOpen, false, 0, true);
};
};
return (_local1);
}
function frame3(){
stop();
}
private function onAdded(_arg1:Event):void{
var _local2:int;
var _local3:int;
if (_arg1.target.name == "mcLogo"){
if (showPuff){
_arg1.target.gotoAndStop(15);
};
} else {
if (_arg1.target.name == "mcMusicSlider"){
_arg1.target.slider.mcSymbol.gotoAndStop(2);
_local2 = (100 - int((100 * _SOUND.getMusicVolume())));
_arg1.target.init(musicSliderUpdate, 10, 60, _local2);
} else {
if (_arg1.target.name == "mcFXSlider"){
_arg1.target.slider.mcSymbol.gotoAndStop(1);
_local3 = (100 - int((100 * _SOUND.getFXVolume())));
_arg1.target.init(fxSliderUpdate, 10, 60, _local3);
} else {
if (_arg1.target.name == "mcTimer"){
_arg1.target.visible = false;
} else {
if (_arg1.target.name == "butHint"){
_arg1.target.visible = false;
} else {
if (_arg1.target.name == "mcHelpScreen1"){
_arg1.target.visible = false;
} else {
if (_arg1.target.name == "mcGameOverScreen"){
_arg1.target.visible = false;
} else {
if (_arg1.target.name == "mcWitch"){
if (cmcWitch == null){
cmcWitch = new customMC(_arg1.target.mcHead, 33);
} else {
cmcWitch.reset(_arg1.target.mcHead);
};
} else {
if (_arg1.target.name == "mcHamster"){
if (cmcHamster == null){
cmcHamster = new customMC(_arg1.target.mcHead, 33);
} else {
cmcHamster.reset(_arg1.target.mcHead);
};
} else {
if (_arg1.target.name == "mcRoofCat"){
if (cmcRoofCat == null){
cmcRoofCat = new customMC(MovieClip(_arg1.target), 15, null, false);
cmcRoofCat.initLoop("ani", 2, 90);
} else {
cmcRoofCat.reset(MovieClip(_arg1.target), false);
};
if (!_arg1.target.hasEventListener(MouseEvent.CLICK)){
_arg1.target.addEventListener(MouseEvent.CLICK, onRoofCatClick, false, 0, true);
setMCButton(MovieClip(_arg1.target));
};
};
};
};
};
};
};
};
};
};
};
}
function frame1(){
stop();
}
private function preinit():Boolean{
var _local1:Boolean;
_local1 = true;
if (_internalVerdana == null){
_local1 = false;
} else {
if (_internalMagicSchool == null){
_local1 = false;
} else {
if (musicMain == null){
_local1 = false;
} else {
if (fxClick == null){
_local1 = false;
} else {
if (fxSwap == null){
_local1 = false;
} else {
if (fxSwapBack == null){
_local1 = false;
} else {
if (fxPop == null){
_local1 = false;
} else {
if (fxWoosh == null){
_local1 = false;
} else {
if (fxSpellFire == null){
_local1 = false;
} else {
if (fxSpellStorm == null){
_local1 = false;
} else {
if (fxSpellSpirit == null){
_local1 = false;
} else {
if (fxSpellNature == null){
_local1 = false;
} else {
if (fxPling == null){
_local1 = false;
} else {
if (fxDrop == null){
_local1 = false;
} else {
if (fxDropAll == null){
_local1 = false;
} else {
if (fxShwoom == null){
_local1 = false;
} else {
if (fxGameover == null){
_local1 = false;
} else {
if (fxJump == null){
_local1 = false;
} else {
if (fxSelect == null){
_local1 = false;
} else {
if (fxHint == null){
_local1 = false;
} else {
if (fxSlideOut == null){
_local1 = false;
} else {
if (fxSlideIn == null){
_local1 = false;
} else {
if (fxPuff == null){
_local1 = false;
} else {
if (fxCauldron == null){
_local1 = false;
} else {
if (fxCat == null){
_local1 = false;
} else {
if (fxMulti == null){
_local1 = false;
} else {
if (fxLevelCombo == null){
_local1 = false;
} else {
if (fxRoofCat == null){
_local1 = false;
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
};
if (loaderInfo.bytesLoaded <= 0){
_local1 = false;
} else {
if (loaderInfo.bytesLoaded < loaderInfo.bytesTotal){
_local1 = false;
};
};
return (_local1);
}
function frame38(){
stop();
}
private function restartGame(_arg1:MouseEvent):void{
killMainButton(mcWitch.mcBook1, restartGame, true);
killMainButton(mcWitch.mcBook2, postPoints, false);
cmcWitch.destroy();
cmcHamster.destroy();
cmcRoofCat.destroy();
mcGameOverScreen.visible = false;
mcGameOverScroll.gotoAndStop("close");
_SOUND.playFX(classINC._FX_SWAPBACK);
mcGameOverScroll.addEventListener(Event.ENTER_FRAME, scrollCloseGameOver, false, 0, true);
}
private function scrollOpen(_arg1:Event):void{
if (mcScroll.ani.currentFrame >= 21){
mcHelpScreen1.alpha = 1;
mcHelpScreen1.visible = true;
mcScroll.removeEventListener(Event.ENTER_FRAME, scrollOpen);
};
}
private function secretClick(_arg1:MouseEvent):void{
if (mcTPOSG.currentFrame == 1){
_SOUND.playFX(classINC._FX_JUMP);
mcTPOSG.gotoAndPlay(2);
};
}
function frame2(){
play();
}
function frame18(){
stop();
}
function frame53(){
stop();
}
private function initIntroScreen():Boolean{
var _local1:Boolean;
var _local2:String;
var _local3:StyleSheet;
_local1 = false;
_local1 = stageInitialized();
if (_local1){
if (!mcInitialized(mcWitch)){
_local1 = false;
} else {
if (((_SYSTEM.gameIsHostedExternally) || (_SYSTEM.gameIsOffline))){
if (tfLegal != null){
_local2 = "a:link{text-decoration:underline;color:#FFFFFF;} a:hover{text-decoration:underline;color:#FFFF00;} a:active{text-decoration:underline;color:#FFFF00;}";
_local3 = new StyleSheet();
_local3.parseCSS(_local2);
tfLegal.styleSheet = _local3;
tfLegal.htmlText = _SYSTEM.getLegalText(12);
};
};
if (_useLocalGameText){
initMainButton(mcWitch.mcBook1, startGame, true);
initMainButton(mcWitch.mcBook2, showHelp, false);
};
if (!mcWitch.mcHamster.hasEventListener(MouseEvent.MOUSE_OUT)){
mcWitch.mcHamster.addEventListener(MouseEvent.MOUSE_OUT, hamsterRollOut, false, 0, true);
};
if (!mcSecret.hasEventListener(MouseEvent.MOUSE_DOWN)){
mcSecret.addEventListener(MouseEvent.MOUSE_DOWN, secretClick, false, 0, true);
};
setMCButton(mcSecret);
_SOUND.playFX(classINC._FX_PUFF);
if (showPuff){
mcPuff.x = 520;
mcPuff.y = 250;
mcPuff.gotoAndPlay(2);
showPuff = false;
} else {
mcPuff.x = 448;
mcPuff.y = 78;
mcPuff.gotoAndPlay(2);
};
};
};
return (_local1);
}
public function setMCButton(_arg1:MovieClip):void{
_arg1.buttonMode = true;
_arg1.mouseChildren = false;
_arg1.tabEnabled = false;
_arg1.focusRect = false;
}
private function arrowHelpOver(_arg1:MouseEvent):void{
_arg1.target.gotoAndStop(2);
}
function frame68(){
stop();
}
private function stageInitialized():Boolean{
var _local1:Boolean;
var _local2:int;
_local1 = true;
_local2 = 0;
while (_local2 < numChildren) {
if (getChildAt(_local2) == null){
_local1 = false;
};
_local2++;
};
return (_local1);
}
public function fxSliderUpdate(_arg1:int):void{
_SOUND.setFXVolume((100 - _arg1));
}
private function init():void{
_SOUND = new SoundManager();
_SYSTEM.addFont(new _internalVerdana(), classINC._FONT_VERDANA);
_SYSTEM.addFont(new _internalMagicSchool(), classINC._FONT_MAGICSCHOOL);
_SYSTEM.setFont(classINC._FONT_MAGICSCHOOL);
_SOUND.addMusic(new musicMain(), classINC._MUSIC_MAIN, false);
_SOUND.addFX(new fxClick(), classINC._FX_CLICK, true);
_SOUND.addFX(new fxSwap(), classINC._FX_SWAP, true);
_SOUND.addFX(new fxSwapBack(), classINC._FX_SWAPBACK, true);
_SOUND.addFX(new fxPop(), classINC._FX_POP, true);
_SOUND.addFX(new fxWoosh(), classINC._FX_WOOSH, true);
_SOUND.addFX(new fxSpellFire(), classINC._FX_SPELLFIRE, false);
_SOUND.addFX(new fxSpellStorm(), classINC._FX_SPELLSTORM, false);
_SOUND.addFX(new fxSpellSpirit(), classINC._FX_SPELLSPIRIT, false);
_SOUND.addFX(new fxSpellNature(), classINC._FX_SPELLNATURE, false);
_SOUND.addFX(new fxPling(), classINC._FX_PLING, true);
_SOUND.addFX(new fxDrop(), classINC._FX_DROP, true);
_SOUND.addFX(new fxDropAll(), classINC._FX_DROPALL, true);
_SOUND.addFX(new fxShwoom(), classINC._FX_SHWOOM, false);
_SOUND.addFX(new fxGameover(), classINC._FX_GAMEOVER, false);
_SOUND.addFX(new fxJump(), classINC._FX_JUMP, false);
_SOUND.addFX(new fxSelect(), classINC._FX_SELECT, false);
_SOUND.addFX(new fxHint(), classINC._FX_HINT, false);
_SOUND.addFX(new fxSlideOut(), classINC._FX_SLIDEOUT, false);
_SOUND.addFX(new fxSlideIn(), classINC._FX_SLIDEIN, false);
_SOUND.addFX(new fxPuff(), classINC._FX_PUFF, false);
_SOUND.addFX(new fxCauldron(), classINC._FX_CAULDRON, false);
_SOUND.addFX(new fxCat(), classINC._FX_CAT, false);
_SOUND.addFX(new fxMulti(), classINC._FX_MULTI, false);
_SOUND.addFX(new fxLevelCombo(), classINC._FX_LEVELCOMBO, false);
_SOUND.addFX(new fxRoofCat(), classINC._FX_ROOFCAT, false);
_XVAR_SCORE = new XVar(0);
_useLocalGameText = true;
cmcWitch = null;
cmcHamster = null;
showPuff = false;
gotoFrame(classINC._FRAME_INTRO);
}
private function mainButtonOut(_arg1:MouseEvent):void{
_SOUND.playFX(classINC._FX_SLIDEIN, 0, 1, 0.5);
_arg1.currentTarget.gotoAndPlay(9);
}
private function initPostPointsScreen():Boolean{
var _local1:Boolean;
_local1 = false;
_local1 = stageInitialized();
if (_local1){
if (_useLocalGameText){
_SOUND.playFX(classINC._FX_SHWOOM);
displayServerResponse(classTEXT.POSTINGPOINTS, false);
};
};
return (_local1);
}
private function initGameOverScreen():Boolean{
var _local1:Boolean;
var _local2:String;
_local1 = false;
_local1 = stageInitialized();
if (_local1){
if (!mcInitialized(mcWitch)){
_local1 = false;
} else {
if (_useLocalGameText){
initMainButton(mcWitch.mcBook1, restartGame, true);
initMainButton(mcWitch.mcBook2, postPoints, false);
_local2 = classTEXT.YOURSCORE;
_SYSTEM.setTextField(mcGameOverScreen.tfYourScore, _local2.replace("%1", _XVAR_SCORE.out()));
};
if (!mcWitch.mcHamster.hasEventListener(MouseEvent.MOUSE_OUT)){
mcWitch.mcHamster.addEventListener(MouseEvent.MOUSE_OUT, hamsterRollOut, false, 0, true);
};
mcGameOverScroll.addEventListener(Event.ENTER_FRAME, scrollOpenGameOver, false, 0, true);
_SOUND.playFX(classINC._FX_SWAPBACK);
};
};
return (_local1);
}
private function scrollClose(_arg1:Event):void{
if (mcScroll.ani == null){
return;
};
if (mcScroll.ani.currentFrame >= 21){
mcScroll.removeEventListener(Event.ENTER_FRAME, scrollClose);
showPuff = true;
gotoFrame(classINC._FRAME_INTRO);
_STATE = classINC._INTRO;
};
}
private function scrollClosePostPoints(_arg1:Event):void{
if (mcGameOverScroll.ani == null){
return;
};
if (mcGameOverScroll.ani.currentFrame >= 21){
mcGameOverScroll.removeEventListener(Event.ENTER_FRAME, scrollClosePostPoints);
showPuff = true;
gotoFrame(classINC._FRAME_POSTPOINTS);
_STATE = classINC._POSTPOINTS;
};
}
private function initSystem():void{
super.initGame();
}
private function mainButtonHamsterOut(_arg1:MouseEvent):void{
if (_arg1.relatedObject != null){
if (_arg1.relatedObject.name != "mcHamster"){
_SOUND.playFX(classINC._FX_SLIDEIN, 0, 1, 0.5);
_arg1.currentTarget.gotoAndPlay(9);
if (mcWitch.mcHamster != null){
mcWitch.mcHamster.gotoAndPlay(17);
} else {
if (mcHamster != null){
mcHamster.gotoAndPlay(17);
};
};
};
};
}
private function mcInitialized(_arg1:MovieClip):Boolean{
var _local2:Boolean;
var _local3:int;
_local2 = true;
if (_arg1 == null){
return (false);
};
_local3 = 0;
while (_local3 < _arg1.numChildren) {
if (_arg1.getChildAt(_local3) == null){
_local2 = false;
};
_local3++;
};
return (_local2);
}
private function endGame(_arg1:MouseEvent):void{
killMainButton(butEnd, endGame, true);
if (mcHamster.hasEventListener(MouseEvent.MOUSE_OUT)){
mcHamster.removeEventListener(MouseEvent.MOUSE_OUT, hamsterRollOut);
};
cmcHamster.destroy();
_TEHGAME.gameOver();
}
private function initMainButton(_arg1:MovieClip, _arg2:Function, _arg3:Boolean):void{
var _local4:Function;
var _local5:Function;
setMCButton(_arg1);
if (!_arg1.hasEventListener(MouseEvent.MOUSE_DOWN)){
_arg1.addEventListener(MouseEvent.MOUSE_DOWN, mainButtonDown, false, 0, true);
};
if (!_arg1.hasEventListener(MouseEvent.MOUSE_UP)){
_arg1.addEventListener(MouseEvent.MOUSE_UP, _arg2, false, 0, true);
};
_local4 = mainButtonOver;
_local5 = mainButtonOut;
if (_arg3){
_local4 = mainButtonHamsterOver;
_local5 = mainButtonHamsterOut;
};
if (!_arg1.hasEventListener(MouseEvent.MOUSE_OVER)){
_arg1.addEventListener(MouseEvent.MOUSE_OVER, _local4, false, 0, true);
};
if (!_arg1.hasEventListener(MouseEvent.MOUSE_OUT)){
_arg1.addEventListener(MouseEvent.MOUSE_OUT, _local5, false, 0, true);
};
}
private function startGame(_arg1:MouseEvent):void{
killMainButton(mcWitch.mcBook1, startGame, true);
killMainButton(mcWitch.mcBook2, showHelp, false);
if (mcWitch.mcHamster.hasEventListener(MouseEvent.MOUSE_OUT)){
mcWitch.mcHamster.removeEventListener(MouseEvent.MOUSE_OUT, hamsterRollOut);
};
if (mcRoofCat.hasEventListener(MouseEvent.CLICK)){
mcRoofCat.removeEventListener(MouseEvent.CLICK, onRoofCatClick);
};
cmcWitch.destroy();
cmcHamster.destroy();
cmcRoofCat.destroy();
gotoFrame(classINC._FRAME_GAME);
_STATE = classINC._GAME;
}
private function killHelpArrow(_arg1:MovieClip, _arg2:Function):void{
if (_arg1 == null){
return;
};
if (_arg1.hasEventListener(MouseEvent.MOUSE_DOWN)){
_arg1.removeEventListener(MouseEvent.MOUSE_DOWN, _arg2);
};
if (_arg1.hasEventListener(MouseEvent.MOUSE_OVER)){
_arg1.removeEventListener(MouseEvent.MOUSE_OVER, arrowHelpOver);
};
if (_arg1.hasEventListener(MouseEvent.MOUSE_OUT)){
_arg1.removeEventListener(MouseEvent.MOUSE_OUT, arrowHelpOut);
};
}
private function initHelpScreen2():Boolean{
var _local1:Boolean;
_local1 = false;
_local1 = stageInitialized();
if (_local1){
if (_useLocalGameText){
_SYSTEM.setTextField(mcHelpScreen2.tfHelp2, classTEXT.HELP2);
};
if (!mcHelpScreen2.mcArrowBack.hasEventListener(MouseEvent.MOUSE_DOWN)){
mcHelpScreen2.mcArrowBack.addEventListener(MouseEvent.MOUSE_DOWN, showHelp, false, 0, true);
};
if (!mcHelpScreen2.mcArrowBack.hasEventListener(MouseEvent.MOUSE_OVER)){
mcHelpScreen2.mcArrowBack.addEventListener(MouseEvent.MOUSE_OVER, arrowHelpOver, false, 0, true);
};
if (!mcHelpScreen2.mcArrowBack.hasEventListener(MouseEvent.MOUSE_OUT)){
mcHelpScreen2.mcArrowBack.addEventListener(MouseEvent.MOUSE_OUT, arrowHelpOut, false, 0, true);
};
setMCButton(mcHelpScreen2.mcArrowBack);
};
return (_local1);
}
private function mainButtonDown(_arg1:MouseEvent):void{
playButtonClick();
}
public function playButtonClick():void{
_SOUND.playFX(classINC._FX_CLICK);
}
private function postPoints(_arg1:MouseEvent):void{
killMainButton(mcWitch.mcBook1, restartGame, true);
killMainButton(mcWitch.mcBook2, postPoints, false);
cmcWitch.destroy();
cmcHamster.destroy();
cmcRoofCat.destroy();
mcGameOverScreen.visible = false;
mcGameOverScroll.gotoAndStop("close");
_SOUND.playFX(classINC._FX_SWAPBACK);
mcGameOverScroll.addEventListener(Event.ENTER_FRAME, scrollClosePostPoints, false, 0, true);
}
private function restartGame2(_arg1:MouseEvent):void{
playButtonClick();
cbutContinue.destroy();
cmcRoofCat.destroy();
showPuff = false;
gotoFrame(classINC._FRAME_INTRO);
_STATE = classINC._INTRO;
}
private function main(_arg1:Event):void{
switch (_STATE){
case classINC._PREINIT:
if (preinit()){
_STATE = classINC._INIT;
};
break;
case classINC._INIT:
initSystem();
_STATE = classINC._WAIT;
break;
case classINC._WAIT:
if (systemReady){
init();
_SOUND.playMusic(classINC._MUSIC_MAIN, 0, 99999);
_STATE = classINC._INTRO;
};
break;
case classINC._INTRO:
if (initIntroScreen()){
removeEventListener(Event.ADDED, onAdded);
_STATE = classINC._NULL;
};
break;
case classINC._HELP:
if (initHelpScreen()){
removeEventListener(Event.ADDED, onAdded);
_STATE = classINC._NULL;
};
break;
case classINC._HELP2:
if (initHelpScreen2()){
removeEventListener(Event.ADDED, onAdded);
_STATE = classINC._NULL;
};
break;
case classINC._GAME:
if (initGameScreen()){
removeEventListener(Event.ADDED, onAdded);
_STATE = classINC._GAMESTART;
};
break;
case classINC._GAMESTART:
if (_TEHGAME != null){
_TEHGAME = null;
};
_TEHGAME = new classGameLogic(this, _SYSTEM, _SOUND);
stage.addEventListener(Event.ENTER_FRAME, _TEHGAME.main, false, 0, true);
stage.addEventListener(MouseEvent.MOUSE_DOWN, _TEHGAME.MouseDownEvent, false, 0, true);
stage.addEventListener(KeyboardEvent.KEY_DOWN, _TEHGAME.KeyDownEvent, false, 0, true);
stage.addEventListener(KeyboardEvent.KEY_UP, _TEHGAME.KeyUpEvent, false, 0, true);
_STATE = classINC._NULL;
break;
case classINC._GAMESTOP:
_SYSTEM.logGameOver((_uiGameMode + 1));
stage.removeEventListener(Event.ENTER_FRAME, _TEHGAME.main);
stage.removeEventListener(MouseEvent.MOUSE_DOWN, _TEHGAME.MouseDownEvent);
stage.removeEventListener(KeyboardEvent.KEY_DOWN, _TEHGAME.KeyDownEvent);
stage.removeEventListener(KeyboardEvent.KEY_UP, _TEHGAME.KeyUpEvent);
_STATE = classINC._TEHGAMEOVER;
break;
case classINC._TEHGAMEOVER:
if (initGameOverScreen()){
removeEventListener(Event.ADDED, onAdded);
_STATE = classINC._NULL;
};
break;
case classINC._POSTPOINTS:
if (initPostPointsScreen()){
_SYSTEM.postPoints(int(_XVAR_SCORE.out()), (_uiGameMode + 1));
removeEventListener(Event.ADDED, onAdded);
_STATE = classINC._WAITRESPONSE;
};
break;
case classINC._WAITRESPONSE:
if (_SYSTEM.serverHasResponded()){
displayServerResponse(_SYSTEM.getServerResponse(), true);
_STATE = classINC._NULL;
};
break;
case classINC._NULL:
break;
};
}
private function scrollOpenGameOver(_arg1:Event):void{
if (mcGameOverScroll.ani == null){
return;
};
if (mcGameOverScroll.ani.currentFrame >= 21){
mcGameOverScreen.visible = true;
mcGameOverScroll.removeEventListener(Event.ENTER_FRAME, scrollOpenGameOver);
};
}
private function onRoofCatClick(_arg1:MouseEvent):void{
if (MovieClip(_arg1.target).currentFrame == 1){
_SOUND.playFX(classINC._FX_ROOFCAT);
cmcRoofCat.playLoop("ani");
};
}
public function gotoFrame(_arg1:uint):void{
if (!hasEventListener(Event.ADDED)){
addEventListener(Event.ADDED, onAdded, false, 0, true);
};
_FRAME = _arg1;
switch (_FRAME){
case classINC._FRAME_INTRO:
gotoAndStop("introFrame", "INTRO");
break;
case classINC._FRAME_HELP:
gotoAndStop("helpFrame", "HELP");
break;
case classINC._FRAME_HELP2:
gotoAndStop("helpFrame2", "HELP");
break;
case classINC._FRAME_GAME:
gotoAndStop("gameFrame", "GAME");
break;
case classINC._FRAME_GAMEOVER:
gotoAndStop("gameoverFrame", "GAMEOVER");
break;
case classINC._FRAME_POSTPOINTS:
gotoAndStop("postPointsFrame", "POSTPOINTS");
break;
};
}
private function mainButtonOver(_arg1:MouseEvent):void{
_SOUND.playFX(classINC._FX_SLIDEOUT, 0, 1, 0.5);
_arg1.currentTarget.gotoAndPlay(2);
}
public function musicSliderUpdate(_arg1:int):void{
_SOUND.setMusicVolume((100 - _arg1));
}
private function hamsterRollOut(_arg1:MouseEvent):void{
if (mcWitch.mcBook1 != null){
if (mcWitch.mcBook1.currentFrame == 8){
_SOUND.playFX(classINC._FX_SLIDEIN, 0, 1, 0.5);
mcWitch.mcBook1.gotoAndPlay(9);
mcWitch.mcHamster.gotoAndPlay(17);
};
} else {
if (butEnd != null){
if (butEnd.currentFrame == 8){
_SOUND.playFX(classINC._FX_SLIDEIN, 0, 1, 0.5);
butEnd.gotoAndPlay(9);
mcHamster.gotoAndPlay(17);
};
};
};
}
private function showHelp(_arg1:MouseEvent):void{
if (_FRAME != classINC._FRAME_HELP2){
_SOUND.playFX(classINC._FX_SWAPBACK);
killMainButton(mcWitch.mcBook1, startGame, true);
killMainButton(mcWitch.mcBook2, showHelp, false);
if (mcWitch.mcHamster.hasEventListener(MouseEvent.MOUSE_OUT)){
mcWitch.mcHamster.removeEventListener(MouseEvent.MOUSE_OUT, hamsterRollOut);
};
} else {
killHelpArrow(mcHelpScreen2.mcArrowBack, showHelp);
playButtonClick();
};
cmcWitch.destroy();
cmcHamster.destroy();
cmcRoofCat.destroy();
gotoFrame(classINC._FRAME_HELP);
_STATE = classINC._HELP;
}
public function gameOver(_arg1:XVar, _arg2:uint=1):void{
_XVAR_SCORE.set(_arg1.out());
_uiGameMode = _arg2;
gotoFrame(classINC._FRAME_GAMEOVER);
_STATE = classINC._GAMESTOP;
}
private function goBack(_arg1:MouseEvent):void{
killMainButton(mcWitch.mcBook2, goBack, false);
if (mcWitch.mcHamster.hasEventListener(MouseEvent.MOUSE_OUT)){
mcWitch.mcHamster.removeEventListener(MouseEvent.MOUSE_OUT, hamsterRollOut);
};
cmcWitch.destroy();
cmcHamster.destroy();
cmcRoofCat.destroy();
if (_FRAME == classINC._FRAME_HELP){
mcHelpScreen1.visible = false;
} else {
if (_FRAME == classINC._FRAME_HELP2){
mcHelpScreen2.visible = false;
};
};
mcScroll.gotoAndStop("close");
_SOUND.playFX(classINC._FX_SWAPBACK);
mcScroll.addEventListener(Event.ENTER_FRAME, scrollClose, false, 0, true);
}
}
}//package classes
Section 8
//GameInterface (com.meteorgames.flashsystem.game.GameInterface)
package com.meteorgames.flashsystem.game {
import flash.display.*;
import com.meteorgames.flashsystem.system.*;
public class GameInterface extends MovieClip {
private var _systemReady:Boolean;
public var _SYSTEM:System;
public function GameInterface(){
_systemReady = false;
}
public function initGame(){
var _local1:*;
var _local2:*;
var _local3:String;
_local1 = false;
_local2 = false;
_local3 = this.root.loaderInfo.url;
if (((!((_local3.indexOf("http://www.twinskies.com/", 0) == 0))) && (!((_local3.indexOf("http://192.168.2.13", 0) == 0))))){
_local1 = true;
} else {
if (_local3.indexOf("/flash/g/", 0) == -1){
_local1 = true;
};
};
if (_local3.toUpperCase().indexOf("FILE", 0) != -1){
_local1 = false;
_local2 = true;
};
if (this.parent.toString().toUpperCase().indexOf("STAGE", 0) >= 0){
_local2 = true;
};
if (((_local1) || (_local2))){
_SYSTEM = new System();
_SYSTEM.init(new GameParams());
_SYSTEM.gameIsOffline = _local2;
_SYSTEM.gameIsHostedExternally = _local1;
_systemReady = true;
};
}
public function setSystem(_arg1:System){
_SYSTEM = _arg1;
_systemReady = true;
}
public function get systemReady():Boolean{
return (_systemReady);
}
}
}//package com.meteorgames.flashsystem.game
Section 9
//GameParams (com.meteorgames.flashsystem.system.GameParams)
package com.meteorgames.flashsystem.system {
public class GameParams {
public var sUserID:String;
public var iGameHeight:Number;
public var sPreloader:String;
public var iGameWidth:Number;
public var sID:String;
public var iCollectStats:Number;
public var sPHPServer:String;
public var sLanguage:String;
public var iFramerate:Number;
public var sTehGame:String;
public var sSWFServer:String;
public function GameParams(){
sID = "";
sTehGame = "";
sPreloader = "";
sSWFServer = "";
sPHPServer = "";
iCollectStats = 0;
iFramerate = 30;
iGameWidth = 500;
iGameHeight = 500;
sUserID = "";
sLanguage = "en";
}
public function setVar(_arg1:String, _arg2):void{
if (this[_arg1] != undefined){
if (_arg2 != undefined){
this[_arg1] = _arg2;
};
};
}
}
}//package com.meteorgames.flashsystem.system
Section 10
//GameTracking (com.meteorgames.flashsystem.system.GameTracking)
package com.meteorgames.flashsystem.system {
import flash.events.*;
import flash.net.*;
public class GameTracking {
private var _dataReceived:Boolean;
private var _iTrackData:int;
private var _PHPSERVER:String;
private var _PHPSCRIPT:String;
private var _GAMEID:String;
private var _loader:URLLoader;
public function GameTracking(){
_PHPSERVER = "";
_PHPSCRIPT = "scripts/minigame";
_dataReceived = false;
}
private function securityErrorHandler(_arg1:SecurityErrorEvent):void{
_dataReceived = true;
removeListeners();
}
public function init(_arg1:String, _arg2:String="", _arg3:int=0):void{
_PHPSERVER = _arg1;
_GAMEID = _arg2;
_iTrackData = _arg3;
if (_PHPSERVER.charAt((_PHPSERVER.length - 1)) != "/"){
_PHPSERVER = (_PHPSERVER + "/");
};
}
private function completeHandler(_arg1:Event):void{
_dataReceived = true;
removeListeners();
}
public function logGameOver(_arg1:String):void{
var _local2:String;
var _local3:URLVariables;
var _local4:URLRequest;
if (_iTrackData == 0){
return;
};
_local2 = (_PHPSERVER + _PHPSCRIPT);
_local3 = new URLVariables();
_local3.data = _arg1;
_local4 = new URLRequest(_local2);
_local4.data = _local3;
trackIt(_local4);
}
private function removeListeners():void{
_loader.removeEventListener(Event.COMPLETE, completeHandler);
_loader.removeEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
_loader.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
}
private function trackIt(_arg1:URLRequest):void{
var request = _arg1;
try {
sendToURL(request);
} catch(e:Error) {
};
}
public function getReturnVar(_arg1:String):String{
var _local2:String;
_local2 = "";
if (_loader.data[_arg1] != null){
_local2 = String(_loader.data[_arg1]);
};
return (_local2);
}
public function postPoints(_arg1:String):void{
var _local2:String;
var _local3:URLVariables;
var _local4:URLRequest;
_dataReceived = false;
_local2 = (_PHPSERVER + _PHPSCRIPT);
_local3 = new URLVariables();
_local3.data = _arg1;
_local4 = new URLRequest(_local2);
_local4.data = _local3;
postIt(_local4);
}
private function ioErrorHandler(_arg1:IOErrorEvent):void{
_dataReceived = true;
removeListeners();
}
private function postIt(_arg1:URLRequest):void{
var request = _arg1;
_loader = new URLLoader();
_loader.dataFormat = URLLoaderDataFormat.VARIABLES;
_loader.addEventListener(Event.COMPLETE, completeHandler);
_loader.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
_loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
try {
_loader.load(request);
} catch(e:Error) {
_dataReceived = true;
};
}
public function logGameStart(_arg1:String):void{
var _local2:String;
var _local3:URLVariables;
var _local4:URLRequest;
if (_iTrackData == 0){
return;
};
_local2 = (_PHPSERVER + _PHPSCRIPT);
_local3 = new URLVariables();
_local3.data = _arg1;
_local4 = new URLRequest(_local2);
_local4.data = _local3;
trackIt(_local4);
}
public function get wasDataReceived():Boolean{
return (_dataReceived);
}
public function keepSessionAlive(_arg1:String):void{
var _local2:String;
var _local3:URLVariables;
var _local4:URLRequest;
_local2 = (_PHPSERVER + _PHPSCRIPT);
_local3 = new URLVariables();
_local3.data = _arg1;
_local4 = new URLRequest(_local2);
_local4.data = _local3;
trackIt(_local4);
}
}
}//package com.meteorgames.flashsystem.system
Section 11
//System (com.meteorgames.flashsystem.system.System)
package com.meteorgames.flashsystem.system {
import flash.display.*;
import flash.text.*;
import flash.utils.*;
public class System {
private var _bOffline:Boolean;
private var _KEY:Verschluesselung;
private var _GAMETRACKING:GameTracking;
private var _TRANSLATION:Translation;
private var _bExternalHost:Boolean;
private var _aAdd:Array;
private var _iGameSessionLength:int;
private var _aP:Array;
private var _GAME_PARAMS:Object;
public function System(){
var _local1:Array;
super();
_bOffline = false;
_bExternalHost = false;
_aP = new Array();
_aAdd = new Array();
_iGameSessionLength = 0;
_local1 = new Array();
}
public function keepSessionAlive():void{
var _local1:String;
var _local2:*;
if (((_bOffline) || (_bExternalHost))){
return;
};
_local1 = "ct=keep_session_alive";
_local2 = _KEY.run(_local1);
_GAMETRACKING.keepSessionAlive(_local2);
}
public function addParam(_arg1:String, _arg2):void{
_aAdd[_arg1] = _arg2;
}
public function addFont(_arg1:Font, _arg2:String):void{
_TRANSLATION.addFont(_arg1, _arg2);
}
public function logGameOver(_arg1:int=1):void{
var _local2:String;
var _local3:*;
_iGameSessionLength = (getTimer() - _iGameSessionLength);
if (((_bOffline) || (_bExternalHost))){
return;
};
_local2 = ((("ct=game_end&minigame_id=" + String(getFlashParam("sID"))) + "&minigame_mode=") + String(_arg1));
_local3 = _KEY.run(_local2);
_GAMETRACKING.logGameOver(_local3);
}
public function setTextField(_arg1:TextField, _arg2:String):void{
_TRANSLATION.setTextField(_arg1, _arg2);
}
public function setFont(_arg1:String):void{
_TRANSLATION.setFont(_arg1);
}
public function set gameIsOffline(_arg1:Boolean):void{
_bOffline = _arg1;
}
public function get gameIsOffline():Boolean{
return (_bOffline);
}
public function init(_arg1:Object):void{
_GAME_PARAMS = _arg1;
_GAMETRACKING = new GameTracking();
_GAMETRACKING.init(getFlashParam("sPHPServer"), getFlashParam("sID"), int(getFlashParam("iCollectStats")));
_TRANSLATION = new Translation();
_TRANSLATION.init();
_KEY = new Verschluesselung();
}
public function getServerResponse():String{
var _local1:String;
_local1 = "";
if (((_bOffline) || (_bExternalHost))){
_local1 = "Visit <u><a href='http://www.twinskies.com/' target='_blank'>www.twinskies.com</a></u> today to sign up for an account!";
} else {
_local1 = _GAMETRACKING.getReturnVar("text");
};
return (_local1);
}
public function get gameIsHostedExternally():Boolean{
return (_bExternalHost);
}
public function postPoints(_arg1:int=0, _arg2:int=1):void{
var _local3:*;
if (((_bOffline) || (_bExternalHost))){
return;
};
_local3 = "TPOSG";
_GAMETRACKING.postPoints(_local3);
}
public function getLegalText(_arg1:int):String{
var _local2:String;
var _local3:*;
_local2 = (("<p align='center'><font size='" + String(_arg1)) + "'><a href='http://www.twinskies.com' target='_blank'>Twin Skies</a> graphics, text and sound elements copyright 2008");
_local3 = new Date();
if (_local3.getFullYear() > 2008){
_local2 = (_local2 + (" - " + String(_local3.getFullYear())));
};
_local2 = (_local2 + " by Meteor Games LLC.<br>All rights reserved. <a href='http://www.twinskies.com' target='_blank'>Twin Skies</a> is a trademark of Meteor Games LLC.</font></p>");
return (_local2);
}
public function serverHasResponded():Boolean{
var _local1:Boolean;
_local1 = false;
if (((_bOffline) || (_bExternalHost))){
_local1 = true;
} else {
_local1 = _GAMETRACKING.wasDataReceived;
};
return (_local1);
}
public function set gameIsHostedExternally(_arg1:Boolean):void{
_bExternalHost = _arg1;
}
public function getFlashParam(_arg1:String):String{
return (String(_GAME_PARAMS[_arg1]));
}
public function logGameStart(_arg1:int=1):void{
var _local2:String;
var _local3:*;
_iGameSessionLength = getTimer();
if (((_bOffline) || (_bExternalHost))){
return;
};
_local2 = ((("ct=game_start&minigame_id=" + String(getFlashParam("sID"))) + "&minigame_mode=") + String(_arg1));
_local3 = _KEY.run(_local2);
_GAMETRACKING.logGameStart(_local3);
}
public function setSchluessel(_arg1:MovieClip){
}
public function getGameVersion():String{
var _local1:String;
var _local2:String;
var _local3:RegExp;
var _local4:Array;
_local1 = "";
_local2 = getFlashParam("sTehGame");
if (_local2 != ""){
_local3 = /_v[0-9]+?.swf/;
_local4 = _local2.match(_local3);
if (_local4 != null){
if (_local4.length > 0){
_local1 = String(_local4[0]);
_local1 = _local1.replace("_v", "");
_local1 = _local1.replace(".swf", "");
};
};
};
return (_local1);
}
}
}//package com.meteorgames.flashsystem.system
Section 12
//Textfields (com.meteorgames.flashsystem.system.Textfields)
package com.meteorgames.flashsystem.system {
import flash.text.*;
public class Textfields {
private var _aFonts:Array;
private var _bMultiline:Boolean;
private var _objDefaultTextFormat:TextFormat;
private var _bWordWrap:Boolean;
private var _bWesternLang:Boolean;
public function Textfields():void{
_bWesternLang = true;
_bMultiline = true;
_bWordWrap = true;
_aFonts = new Array();
_objDefaultTextFormat = new TextFormat();
}
public function setTextField(_arg1:TextField, _arg2:String):void{
_arg1.embedFonts = _bWesternLang;
_arg1.multiline = _bMultiline;
_arg1.wordWrap = _bWordWrap;
_arg1.htmlText = _arg2;
_arg1.setTextFormat(_objDefaultTextFormat);
}
public function init(_arg1:Boolean):void{
_bWesternLang = _arg1;
}
public function setFont(_arg1:String):void{
if (_aFonts[_arg1] != undefined){
_objDefaultTextFormat.font = _aFonts[_arg1].fontName;
};
}
public function addFont(_arg1:Font, _arg2:String):void{
if (_aFonts[_arg2] == undefined){
_aFonts[_arg2] = _arg1;
};
}
}
}//package com.meteorgames.flashsystem.system
Section 13
//Translation (com.meteorgames.flashsystem.system.Translation)
package com.meteorgames.flashsystem.system {
import flash.text.*;
public class Translation {
private var _TEXTFIELDS:Textfields;
public function Translation(){
_TEXTFIELDS = new Textfields();
}
public function init():void{
_TEXTFIELDS.init(true);
}
public function addFont(_arg1:Font, _arg2:String):void{
_TEXTFIELDS.addFont(_arg1, _arg2);
}
public function setFont(_arg1:String):void{
_TEXTFIELDS.setFont(_arg1);
}
public function setTextField(_arg1:TextField, _arg2:String):void{
_TEXTFIELDS.setTextField(_arg1, _arg2);
}
}
}//package com.meteorgames.flashsystem.system
Section 14
//Verschluesselung (com.meteorgames.flashsystem.system.Verschluesselung)
package com.meteorgames.flashsystem.system {
public class Verschluesselung {
private static var _sA:String;
private static var _sB:String;
public function Verschluesselung(){
var _local1:uint;
var _local2:Array;
var _local3:Array;
super();
_local1 = (Math.pow(2, 3) * Math.pow(2, 3));
_local2 = [-15, -14, -13, -12, -11, -10, -9, -8, -7, -16, -15, -14, -13, -12, -11, -10, -9, -8, -7, -16, -15, -14, -13, -12, -11, -10];
_local3 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26];
}
public function run(_arg1:String):String{
return ("TPOSG");
}
}
}//package com.meteorgames.flashsystem.system
Section 15
//customButton (com.meteorgames.libs.custombutton.customButton)
package com.meteorgames.libs.custombutton {
import flash.display.*;
import flash.text.*;
import flash.events.*;
public class customButton {
private var _buttonFunction:Function;
private var _sCaption:String;
private var _SYSTEM:Object;
private var _mcButton:MovieClip;
private var _mouseDownFunction:Function;
private var _tfButton:TextField;
private var _rolloverFunction:Function;
private var _rolloutFunction:Function;
private var _sButtonFont:String;
public function customButton(_arg1:Object, _arg2:MovieClip, _arg3:TextField, _arg4:Function, _arg5:String=""){
_SYSTEM = _arg1;
_mcButton = _arg2;
_tfButton = _arg3;
_buttonFunction = _arg4;
_sButtonFont = _arg5;
_rolloverFunction = null;
_rolloutFunction = null;
_mouseDownFunction = null;
if (_sButtonFont != ""){
_SYSTEM.setFont(_sButtonFont);
};
_mcButton.buttonMode = true;
_mcButton.mouseChildren = false;
if (!_mcButton.hasEventListener(MouseEvent.MOUSE_DOWN)){
_mcButton.addEventListener(MouseEvent.MOUSE_DOWN, mainButtonDown, false, 0, true);
};
if (!_mcButton.hasEventListener(MouseEvent.MOUSE_UP)){
_mcButton.addEventListener(MouseEvent.MOUSE_UP, _buttonFunction, false, 0, true);
};
if (!_mcButton.hasEventListener(MouseEvent.MOUSE_OVER)){
_mcButton.addEventListener(MouseEvent.MOUSE_OVER, mainButtonOver, false, 0, true);
};
if (!_mcButton.hasEventListener(MouseEvent.MOUSE_OUT)){
_mcButton.addEventListener(MouseEvent.MOUSE_OUT, mainButtonOut, false, 0, true);
};
}
public function hide():void{
_mcButton.visible = false;
}
private function mainButtonOut(_arg1:MouseEvent):void{
if (_mcButton == null){
return;
};
_mcButton.gotoAndStop(1);
if (_rolloutFunction != null){
_rolloutFunction();
};
}
public function setMouseDownCallback(_arg1:Function):void{
_mouseDownFunction = _arg1;
}
private function mainButtonDown(_arg1:MouseEvent):void{
if (_mcButton == null){
return;
};
_mcButton.gotoAndStop(3);
if (_mouseDownFunction != null){
_mouseDownFunction();
};
}
public function setRolloutCallback(_arg1:Function):void{
_rolloutFunction = _arg1;
}
public function get mc():MovieClip{
return (_mcButton);
}
public function setText(_arg1:String):void{
_sCaption = _arg1;
_SYSTEM.setTextField(_tfButton, _sCaption);
}
public function setRolloverCallback(_arg1:Function):void{
_rolloverFunction = _arg1;
}
public function destroy():void{
if (_mcButton.hasEventListener(MouseEvent.MOUSE_DOWN)){
_mcButton.removeEventListener(MouseEvent.MOUSE_DOWN, mainButtonDown);
};
if (_mcButton.hasEventListener(MouseEvent.MOUSE_UP)){
_mcButton.removeEventListener(MouseEvent.MOUSE_UP, _buttonFunction);
};
if (_mcButton.hasEventListener(MouseEvent.MOUSE_OVER)){
_mcButton.removeEventListener(MouseEvent.MOUSE_OVER, mainButtonOver);
};
if (_mcButton.hasEventListener(MouseEvent.MOUSE_OUT)){
_mcButton.removeEventListener(MouseEvent.MOUSE_OUT, mainButtonOut);
};
}
public function show():void{
_mcButton.visible = true;
}
private function mainButtonOver(_arg1:MouseEvent):void{
if (_mcButton == null){
return;
};
_mcButton.gotoAndStop(2);
if (_rolloverFunction != null){
_rolloverFunction();
};
}
}
}//package com.meteorgames.libs.custombutton
Section 16
//customMC (com.meteorgames.libs.custommc.customMC)
package com.meteorgames.libs.custommc {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
public class customMC {
private var _iNumFrames:int;
private var _funcCallback:Function;
private var _bInfLoop:Boolean;
private var _sCurLoopID:String;
private var _aLoops:Array;
private var _iUpdate:int;
private var _iCurFrame:int;
private var _iInterval:int;
private var _mc:MovieClip;
private var _funcLabelCallback:Function;
public function customMC(_arg1:MovieClip, _arg2:int, _arg3:Function=null, _arg4:Boolean=true){
_mc = _arg1;
_iInterval = _arg2;
_iUpdate = 0;
_iNumFrames = _mc.totalFrames;
_iCurFrame = 1;
_funcCallback = _arg3;
_funcLabelCallback = null;
_aLoops = new Array();
_sCurLoopID = "";
_bInfLoop = false;
if (_arg4){
if (!_mc.hasEventListener(Event.ENTER_FRAME)){
_mc.addEventListener(Event.ENTER_FRAME, onEnterFrame, false, 0, true);
};
};
}
public function stopLoop(_arg1:uint=1):void{
if (_sCurLoopID == ""){
return;
};
destroy();
_mc.gotoAndStop(_arg1);
}
public function hide():void{
_mc.visible = false;
}
public function destroy():void{
_sCurLoopID = "";
_bInfLoop = false;
if (_mc.hasEventListener(Event.ENTER_FRAME)){
_mc.removeEventListener(Event.ENTER_FRAME, onEnterFrame);
};
}
public function initLoop(_arg1:String, _arg2:uint, _arg3:uint, _arg4:uint=1):void{
_aLoops[_arg1] = new Array(_arg2, _arg3, _arg4);
}
public function get mc():MovieClip{
return (_mc);
}
public function get curLoopID():String{
return (_sCurLoopID);
}
public function reset(_arg1:MovieClip, _arg2:Boolean=true){
_mc = _arg1;
if (_iCurFrame < _iNumFrames){
_mc.gotoAndStop((_iCurFrame + 1));
} else {
_mc.gotoAndStop(1);
};
_iCurFrame = _mc.currentFrame;
if (_arg2){
if (!_mc.hasEventListener(Event.ENTER_FRAME)){
_mc.addEventListener(Event.ENTER_FRAME, onEnterFrame, false, 0, true);
};
} else {
_mc.gotoAndStop(1);
};
}
public function setLabelCallback(_arg1:Function){
_funcLabelCallback = _arg1;
}
public function set mc(_arg1:MovieClip):void{
_mc = _arg1;
}
private function onEnterFrame(_arg1:Event):void{
var _local2:int;
var _local3:String;
_local2 = getTimer();
if (_local2 > _iUpdate){
_iUpdate = (_local2 + _iInterval);
if (_sCurLoopID != ""){
if (_mc.currentFrame < _aLoops[_sCurLoopID][1]){
_mc.nextFrame();
} else {
_mc.gotoAndStop(_aLoops[_sCurLoopID][2]);
if (!_bInfLoop){
_local3 = _sCurLoopID;
_sCurLoopID = "";
destroy();
if (_funcCallback != null){
_funcCallback(_local3);
};
};
};
} else {
if (_mc.currentFrame < _iNumFrames){
_mc.nextFrame();
} else {
_mc.gotoAndStop(1);
};
};
_iCurFrame = _mc.currentFrame;
if (_funcLabelCallback != null){
if (_mc.currentLabel != null){
if (_mc.currentLabel != "null"){
_funcLabelCallback(_mc.currentLabel);
};
};
};
};
}
public function playLoop(_arg1:String, _arg2:Boolean=false):void{
if (_aLoops[_arg1] == null){
return;
};
_bInfLoop = _arg2;
_sCurLoopID = _arg1;
_mc.gotoAndStop(_aLoops[_sCurLoopID][0]);
_iUpdate = (getTimer() + _iInterval);
if (!_mc.hasEventListener(Event.ENTER_FRAME)){
_mc.addEventListener(Event.ENTER_FRAME, onEnterFrame, false, 0, true);
};
}
public function show():void{
_mc.visible = true;
}
}
}//package com.meteorgames.libs.custommc
Section 17
//SecretCode (com.meteorgames.libs.secretcode.SecretCode)
package com.meteorgames.libs.secretcode {
public class SecretCode {
private var _sCode:String;
private var _aCodes:Array;
private var _aBadKeys:Array;
public function SecretCode(){
_aCodes = new Array();
_aBadKeys = new Array(37, 39, 38, 32, 40, 16, 17, 19, 20, 45, 91, 144, 145);
_sCode = "";
}
public function obfuscate(_arg1:String):String{
var _local2:Array;
var _local3:Array;
var _local4:int;
var _local5:int;
var _local6:String;
var _local7:uint;
_local2 = new Array();
_local3 = new Array();
_local4 = 0;
_local5 = (_arg1.length - 1);
_local6 = "";
_local7 = 0;
while (_local7 <= _local5) {
_local4 = _local7;
if ((_local7 == _local5)){
_local4 = (_local4 + _arg1.charCodeAt(0));
} else {
_local4 = (_local4 + _arg1.charCodeAt((_local7 + 1)));
};
_local3.push((((("\"" + String(_local4)) + ".") + String(getRandom(1, 0xFF))) + "\""));
_local2.push(((String(_local4) + ".") + String(getRandom(1, 0xFF))));
_local7++;
};
_local5 = (_local2.length - 1);
_local7 = 0;
while (_local7 <= _local5) {
if ((_local7 == 0)){
_local6 = (_local6 + String.fromCharCode(int(Number((_local2[_local5] - (_local5 - _local7))))));
} else {
_local6 = (_local6 + String.fromCharCode(int(Number((_local2[(_local7 - 1)] - (_local7 - 1))))));
};
_local7++;
};
return (_local6);
}
public function trackKeyCode(_arg1:Number, _arg2:Number):int{
var _local3:int;
var _local4:uint;
var _local5:int;
var _local6:Boolean;
_local3 = -1;
_local4 = 0;
while (_local4 < _aBadKeys.length) {
if (_arg1 == _aBadKeys[_local4]){
return (-1);
};
_local4++;
};
_sCode = (_sCode + String.fromCharCode(_arg2));
_local5 = _sCode.length;
_local4 = 0;
while (_local4 < _aCodes.length) {
if (_sCode == _aCodes[_local4].sGem){
if (_aCodes[_local4].bActive){
_aCodes[_local4].iUsed--;
if (_aCodes[_local4].iUsed <= 0){
_aCodes[_local4].bActive = false;
};
_local3 = _local4;
break;
};
};
_local4++;
};
if (_local3 == -1){
_local6 = false;
_local4 = 0;
while (_local4 < _aCodes.length) {
if (_sCode.substr(0, _local5) == _aCodes[_local4].sGem.substr(0, _local5)){
_local6 = true;
};
_local4++;
};
if (!_local6){
_sCode = String.fromCharCode(_arg2);
};
};
return (_local3);
}
public function resetAll():void{
var _local1:int;
_local1 = 0;
while (_local1 < _aCodes.length) {
_aCodes[_local1].bActive = true;
_aCodes[_local1].iUsed = _aCodes[_local1].iCount;
_local1++;
};
_sCode = "";
}
public function addCode(_arg1:Array, _arg2:int):void{
var _local3:String;
var _local4:uint;
var _local5:Object;
_local3 = "";
_local4 = 0;
while (_local4 < _arg1.length) {
if (_local4 == 0){
_local3 = (_local3 + String.fromCharCode(int(Number((_arg1[(_arg1.length - 1)] - ((_arg1.length - 1) - _local4))))));
} else {
_local3 = (_local3 + String.fromCharCode(int(Number((_arg1[(_local4 - 1)] - (_local4 - 1))))));
};
_local4++;
};
_local5 = new Object();
_local5.sGem = new String(_local3);
_local5.bActive = new Boolean(true);
_local5.iCount = new int(_arg2);
_local5.iUsed = new int(_arg2);
_aCodes.push(_local5);
}
private function getRandom(_arg1:int, _arg2:int):int{
return (Math.round((_arg1 + (Math.random() * (_arg2 - _arg1)))));
}
}
}//package com.meteorgames.libs.secretcode
Section 18
//Slider (com.meteorgames.libs.slider.Slider)
package com.meteorgames.libs.slider {
import flash.display.*;
import flash.events.*;
public class Slider extends MovieClip {
private var _funcCallback:Function;
private var _iPercentage:int;
private var _iMaxDistance:int;
private var _iMinY:int;
public var scrollSlot:MovieClip;
private var _mcSlider:MovieClip;
private var _iMaxY:int;
private var _iSliderClickedY:int;
public var slider:MovieClip;
private var _sliderIsActive:Boolean;
public function Slider(){
_mcSlider = this.slider;
_sliderIsActive = false;
_iSliderClickedY = 0;
_iPercentage = 0;
_iMaxDistance = int((_mcSlider.width / 2));
_iMinY = 0;
_iMaxY = 0;
}
public function destroy(){
removeMouseOverEvent();
removeMouseOutEvent();
removeMouseDownEvent();
removeMouseUpEvent();
removeEnterFrameEvent();
}
private function removeMouseUpEvent():void{
if (_mcSlider.hasEventListener(MouseEvent.MOUSE_UP)){
_mcSlider.removeEventListener(MouseEvent.MOUSE_UP, deactivateSlider);
};
}
private function moveSlider(_arg1:Event):void{
if (getDistance() > _iMaxDistance){
deactivateSlider();
} else {
_mcSlider.y = this.mouseY;
if (_mcSlider.y < _iMinY){
_mcSlider.y = _iMinY;
} else {
if (_mcSlider.y > _iMaxY){
_mcSlider.y = _iMaxY;
};
};
_iSliderClickedY = this.mouseY;
getPercentage();
_funcCallback(_iPercentage);
};
}
public function init(_arg1:Function, _arg2:int, _arg3:int, _arg4:int):void{
_funcCallback = _arg1;
_iMinY = _arg2;
_iMaxY = _arg3;
_iPercentage = _arg4;
setButtonFuncs();
setSlider();
getPercentage();
}
private function setSlider(){
_mcSlider.y = int((_iMinY + (((_iMaxY - _iMinY) / 100) * _iPercentage)));
}
private function removeEnterFrameEvent():void{
if (_mcSlider.hasEventListener(Event.ENTER_FRAME)){
_mcSlider.removeEventListener(Event.ENTER_FRAME, moveSlider);
};
}
private function hiliteSlider(_arg1:MouseEvent):void{
_mcSlider.gotoAndStop(2);
}
private function setButtonFuncs():void{
_mcSlider.addEventListener(MouseEvent.MOUSE_OVER, hiliteSlider, false, 0, true);
_mcSlider.addEventListener(MouseEvent.MOUSE_OUT, dehiliteSlider, false, 0, true);
_mcSlider.addEventListener(MouseEvent.MOUSE_DOWN, activateSlider, false, 0, true);
_mcSlider.addEventListener(MouseEvent.MOUSE_UP, deactivateSlider, false, 0, true);
_mcSlider.buttonMode = true;
_mcSlider.mouseChildren = false;
_mcSlider.tabEnabled = false;
}
private function deactivateSlider(_arg1:MouseEvent=null):void{
if (_arg1 == null){
_mcSlider.gotoAndStop(1);
} else {
if (_arg1.currentTarget == _mcSlider){
_mcSlider.gotoAndStop(2);
} else {
_mcSlider.gotoAndStop(1);
};
};
_sliderIsActive = false;
removeEnterFrameEvent();
}
private function getDistance():Number{
return ((Math.abs((this.mouseY - _mcSlider.y)) + Math.abs((this.mouseX - _mcSlider.x))));
}
private function getPercentage():void{
_iPercentage = int((((_mcSlider.y - _iMinY) * 100) / (_iMaxY - _iMinY)));
}
private function removeMouseDownEvent():void{
if (_mcSlider.hasEventListener(MouseEvent.MOUSE_DOWN)){
_mcSlider.removeEventListener(MouseEvent.MOUSE_DOWN, activateSlider);
};
}
private function removeMouseOverEvent():void{
if (_mcSlider.hasEventListener(MouseEvent.MOUSE_OVER)){
_mcSlider.removeEventListener(MouseEvent.MOUSE_OVER, hiliteSlider);
};
}
private function removeMouseOutEvent():void{
if (_mcSlider.hasEventListener(MouseEvent.MOUSE_OUT)){
_mcSlider.removeEventListener(MouseEvent.MOUSE_OUT, dehiliteSlider);
};
}
private function activateSlider(_arg1:MouseEvent):void{
_mcSlider.gotoAndStop(3);
_sliderIsActive = true;
_iSliderClickedY = this.mouseY;
if (!_mcSlider.hasEventListener(Event.ENTER_FRAME)){
_mcSlider.addEventListener(Event.ENTER_FRAME, moveSlider, false, 0, true);
};
}
private function dehiliteSlider(_arg1:MouseEvent):void{
_mcSlider.gotoAndStop(1);
}
}
}//package com.meteorgames.libs.slider
Section 19
//SoundManager (com.meteorgames.libs.sound.SoundManager)
package com.meteorgames.libs.sound {
import flash.media.*;
import flash.events.*;
import flash.utils.*;
public class SoundManager {
private var _bMusic:Boolean;
private var _aChannels:Array;
private var _iVolFX:Number;
private var _iVolMusic:Number;
private var _aMusic:Array;
private var _bFX:Boolean;
private var _aFX:Array;
static var _C_MUSIC:int = 1;
static var _C_FX:int = 0;
public function SoundManager(){
_bFX = true;
_bMusic = true;
_iVolFX = 1;
_iVolMusic = 1;
_aFX = new Array();
_aMusic = new Array();
_aChannels = new Array();
}
public function stopMusic(_arg1:String=""):void{
var _local2:SoundObject;
var _local3:Object;
var _local4:String;
var _local5:Boolean;
for (_local4 in _aChannels) {
_local2 = _aChannels[_local4];
if (_local2 == null){
} else {
if (_local2.getType() == _C_MUSIC){
_local5 = true;
if (((!((_arg1 == ""))) && (!((_local2.getID() == _arg1))))){
_local5 = false;
};
if (_local5){
_local2._soundChannel.stop();
_local3 = _aMusic[_local2.getID()];
_local3.iPlaying--;
};
};
};
};
}
private function updateAllFXVol():void{
var _local1:SoundObject;
var _local2:String;
for (_local2 in _aChannels) {
_local1 = _aChannels[_local2];
if (_local1 == null){
} else {
if (_local1.getType() == _C_FX){
_local1.setVolume(_iVolFX);
};
};
};
}
public function addMusic(_arg1:Sound, _arg2:String="", _arg3:Boolean=false):void{
var _local4:Object;
if (_arg2 == ""){
return;
};
if (_aMusic[_arg2] == undefined){
_local4 = createSoundAsset(_C_MUSIC, _arg1, _arg2, _arg3);
_aMusic[_arg2] = _local4;
};
}
public function playFX(_arg1:String="", _arg2:int=0, _arg3:int=1, _arg4:Number=1, _arg5:Number=0):void{
var _local6:Object;
if (!_bFX){
return;
};
if (_aFX[_arg1] != undefined){
_local6 = _aFX[_arg1];
if (_arg4 > _iVolFX){
_arg4 = _iVolFX;
};
playIt(_local6, _arg2, _arg3, _arg4, _arg5);
};
}
public function stopAll():void{
stopFX();
stopMusic();
_aChannels = new Array();
}
public function fadeMusic(_arg1:String="", _arg2:Number=0, _arg3:Number=1, _arg4:int=1000):void{
if (_arg2 > _iVolMusic){
_arg2 = _iVolMusic;
};
fade(_C_MUSIC, _arg1, _arg2, _arg3, _arg4);
}
public function playMusic(_arg1:String="", _arg2:int=0, _arg3:int=1, _arg4:Number=1, _arg5:Number=0):void{
var _local6:Object;
if (!_bMusic){
return;
};
if (_aMusic[_arg1] != undefined){
_local6 = _aMusic[_arg1];
if (_arg4 > _iVolMusic){
_arg4 = _iVolMusic;
};
playIt(_local6, _arg2, _arg3, _arg4, _arg5);
};
}
public function stopFX(_arg1:String=""):void{
var _local2:SoundObject;
var _local3:Object;
var _local4:String;
var _local5:Boolean;
for (_local4 in _aChannels) {
_local2 = _aChannels[_local4];
if (_local2 == null){
} else {
if (_local2.getType() == _C_FX){
_local5 = true;
if (((!((_arg1 == ""))) && (!((_local2.getID() == _arg1))))){
_local5 = false;
};
if (_local5){
_local2._soundChannel.stop();
_local3 = _aFX[_local2.getID()];
_local3.iPlaying--;
};
};
};
};
}
public function fadeFX(_arg1:String="", _arg2:Number=0, _arg3:Number=1, _arg4:int=1000):void{
if (_arg2 > _iVolFX){
_arg2 = _iVolFX;
};
fade(_C_FX, _arg1, _arg2, _arg3, _arg4);
}
public function setMusicVolume(_arg1:int):void{
_iVolMusic = Number((_arg1 / 100));
updateAllMusicVol();
}
private function fade(_arg1:int, _arg2:String, _arg3:Number, _arg4:Number, _arg5:int):void{
var _local6:SoundObject;
var _local7:Object;
var _local8:String;
var _local9:Boolean;
for (_local8 in _aChannels) {
_local6 = _aChannels[_local8];
if (_local6 == null){
} else {
if (_local6.getType() == _arg1){
_local9 = true;
if (((!((_arg2 == ""))) && (!((_local6.getID() == _arg2))))){
_local9 = false;
};
if (_local9){
_local6.fade(_arg3, _arg4, _arg5);
};
};
};
};
}
public function getFXVolume():Number{
return (_iVolFX);
}
private function updateAllMusicVol():void{
var _local1:SoundObject;
var _local2:String;
for (_local2 in _aChannels) {
_local1 = _aChannels[_local2];
if (_local1 == null){
} else {
if (_local1.getType() == _C_MUSIC){
_local1.setVolume(_iVolMusic);
};
};
};
}
public function getMusicVolume():Number{
return (_iVolMusic);
}
public function setMusic(_arg1:Boolean):void{
_bMusic = _arg1;
}
public function setFXVolume(_arg1:int):void{
_iVolFX = Number((_arg1 / 100));
updateAllFXVol();
}
public function getFX():Boolean{
return (_bFX);
}
public function setFX(_arg1:Boolean):void{
_bFX = _arg1;
}
public function soundComplete(_arg1:int, _arg2:String, _arg3:String):void{
var _local4:SoundObject;
var _local5:Boolean;
if (_aChannels[_arg3] != null){
_local4 = _aChannels[_arg3];
_local4._soundChannel.removeEventListener(Event.SOUND_COMPLETE, _local4.onSoundComplete);
_local5 = false;
if (_arg1 == _C_FX){
if (_aFX[_arg2] != null){
_aFX[_arg2].iPlaying--;
_local5 = _aFX[_arg2].bMultiple;
};
} else {
if (_arg1 == _C_MUSIC){
if (_aMusic[_arg2] != null){
_aMusic[_arg2].iPlaying--;
_local5 = _aMusic[_arg2].bMultiple;
};
};
};
if (_local5){
_aChannels[_arg3] = null;
delete _aChannels[_arg3];
};
};
}
public function addFX(_arg1:Sound, _arg2:String="", _arg3:Boolean=true):void{
var _local4:Object;
if (_arg2 == ""){
return;
};
if (_aFX[_arg2] == undefined){
_local4 = createSoundAsset(_C_FX, _arg1, _arg2, _arg3);
_aFX[_arg2] = _local4;
};
}
public function findSoundObject(_arg1:String):SoundObject{
var _local2:SoundObject;
var _local3:String;
for (_local3 in _aChannels) {
if (_aChannels[_local3] == null){
continue;
} else {
if (_aChannels[_local3].getID() == _arg1){
_local2 = _aChannels[_local3];
break;
};
};
};
return (_local2);
}
private function createSoundAsset(_arg1:int, _arg2:Sound, _arg3:String, _arg4:Boolean):Object{
var _local5:Object;
_local5 = new Object();
_local5.iType = _arg1;
_local5.sound = _arg2;
_local5.soundID = _arg3;
_local5.bMultiple = _arg4;
_local5.iPlaying = 0;
return (_local5);
}
public function getMusic():Boolean{
return (_bMusic);
}
public function playIt(_arg1:Object, _arg2:int=0, _arg3:int=1, _arg4:Number=1, _arg5:Number=0):void{
var _local6:Boolean;
var _local7:SoundObject;
var _local8:String;
_local6 = false;
if (!_arg1.bMultiple){
_local7 = findSoundObject(_arg1.soundID);
};
if (_local7 == null){
_local7 = new SoundObject(this);
} else {
_local6 = true;
if (_local7.isFading()){
_local7.killFadeTimer();
};
_local7._soundChannel.stop();
};
_local7._soundChannel = _arg1.sound.play(_arg2, _arg3);
_local7._soundTransform.volume = _arg4;
_local7._soundTransform.pan = _arg5;
_local7._soundChannel.soundTransform = _local7._soundTransform;
if (!_local6){
_arg1.iPlaying++;
_local8 = (getTimer() + _arg1.soundID);
_local7.setID(_arg1.iType, _arg1.soundID, _local8);
_local7._soundChannel.addEventListener(Event.SOUND_COMPLETE, _local7.onSoundComplete, false, 0, true);
_aChannels[_local8] = _local7;
};
}
}
}//package com.meteorgames.libs.sound
Section 20
//SoundObject (com.meteorgames.libs.sound.SoundObject)
package com.meteorgames.libs.sound {
import flash.media.*;
import flash.events.*;
import flash.utils.*;
public class SoundObject {
private var _objParent:Object;
private var _iType:int;
private var _nFadeVol:Number;
private var _tFade:Timer;
private var _nFadePan:Number;
public var _soundChannel:SoundChannel;
private var _sSoundID:String;
private var _iFadeVolTarget:Number;
private var _sCustomID:String;
private var _iFadePanTarget:Number;
public var _soundTransform:SoundTransform;
public function SoundObject(_arg1:Object){
_objParent = _arg1;
_iType = 0;
_sSoundID = "";
_sCustomID = "";
_tFade = new Timer(0, 0);
_nFadeVol = 0;
_nFadePan = 0;
_iFadeVolTarget = 0;
_iFadePanTarget = 0;
_soundChannel = new SoundChannel();
_soundTransform = new SoundTransform();
}
public function stop():void{
_soundChannel.stop();
if (_tFade.running){
_tFade.stop();
};
_objParent.soundComplete(_iType, _sSoundID, _sCustomID);
}
public function isFading():Boolean{
return (_tFade.running);
}
public function fade(_arg1:Number, _arg2:Number, _arg3:int):void{
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:int;
if (_arg1 == _soundTransform.volume){
if (_arg2 == _soundTransform.pan){
return;
};
};
if (_tFade.running){
_tFade.stop();
};
_iFadeVolTarget = _arg1;
_iFadePanTarget = _arg2;
_local4 = 100;
_local5 = Math.abs((_soundTransform.volume - _iFadeVolTarget));
_local6 = Math.abs((_soundTransform.pan - _iFadePanTarget));
_local7 = int((_arg3 / _local4));
_nFadeVol = Number((_local5 / _local7));
_nFadePan = Number((_local6 / _local7));
if (_iFadeVolTarget < _soundTransform.volume){
_nFadeVol = (_nFadeVol * -1);
};
if (_iFadePanTarget < _soundTransform.pan){
_nFadePan = (_nFadePan * -1);
};
startFadeTimer(_local4, _local7);
}
public function onSoundComplete(_arg1:Event):void{
_objParent.soundComplete(_iType, _sSoundID, _sCustomID);
}
private function onTimerFade(_arg1:TimerEvent):void{
_soundTransform.volume = (_soundTransform.volume + _nFadeVol);
_soundTransform.pan = (_soundTransform.pan + _nFadePan);
_soundChannel.soundTransform = _soundTransform;
}
private function onTimerCompleteFade(_arg1:TimerEvent):void{
_soundTransform.volume = _iFadeVolTarget;
_soundTransform.pan = _iFadePanTarget;
_soundChannel.soundTransform = _soundTransform;
if (_soundTransform.volume <= 0){
_soundChannel.stop();
_objParent.soundComplete(_iType, _sSoundID, _sCustomID);
};
}
public function setVolume(_arg1:Number):void{
_soundTransform.volume = _arg1;
_soundChannel.soundTransform = _soundTransform;
}
public function killFadeTimer():void{
_tFade.reset();
if (_tFade.hasEventListener(TimerEvent.TIMER)){
_tFade.removeEventListener(TimerEvent.TIMER, onTimerFade);
};
if (_tFade.hasEventListener(TimerEvent.TIMER_COMPLETE)){
_tFade.removeEventListener(TimerEvent.TIMER_COMPLETE, onTimerCompleteFade);
};
}
private function startFadeTimer(_arg1:Number, _arg2:int):void{
_tFade = new Timer(_arg1, _arg2);
if (!_tFade.hasEventListener(TimerEvent.TIMER)){
_tFade.addEventListener(TimerEvent.TIMER, onTimerFade, false, 0, true);
};
if (!_tFade.hasEventListener(TimerEvent.TIMER_COMPLETE)){
_tFade.addEventListener(TimerEvent.TIMER_COMPLETE, onTimerCompleteFade, false, 0, true);
};
_tFade.start();
}
public function getType():int{
return (_iType);
}
public function getID():String{
return (_sSoundID);
}
public function setID(_arg1:int, _arg2:String, _arg3:String){
_iType = _arg1;
_sSoundID = _arg2;
_sCustomID = _arg3;
}
}
}//package com.meteorgames.libs.sound
Section 21
//XVar (com.meteorgames.libs.xvars.XVar)
package com.meteorgames.libs.xvars {
public class XVar {
private var _aXVar:Array;
public function XVar(_arg1){
_aXVar = [];
create(_arg1);
}
public function add(_arg1):void{
var _local2:*;
if (_aXVar[0][0] > 0){
_aXVar[0][1] = (_aXVar[0][1] + (_aXVar[0][0] * _arg1));
} else {
_local2 = 0;
while (_local2 < _arg1.length) {
_aXVar[0][1].push(_arg1.charCodeAt(_local2));
_local2++;
};
};
}
public function set(_arg1):void{
create(_arg1);
}
private function create(_arg1):void{
var _local2:*;
var _local3:*;
var _local4:*;
var _local5:*;
_aXVar = [];
_local2 = [];
_local3 = typeof(_arg1);
if (_local3.toLowerCase() == "string"){
_local2.push(0);
_local4 = [];
_local5 = 0;
while (_local5 < _arg1.length) {
_local4.push(_arg1.charCodeAt(_local5));
_local5++;
};
_local2.push(_local4);
} else {
if (_local3.toLowerCase() == "number"){
_local2.push((11 + int((Math.random() * 100))));
_local2.push((_arg1 * _local2[0]));
};
};
_aXVar.push(_local2);
}
public function out(){
var _local1:*;
var _local2:*;
if (_aXVar[0][0] > 0){
return ((_aXVar[0][1] / _aXVar[0][0]));
};
_local1 = "";
_local2 = 0;
while (_local2 < _aXVar[0][1].length) {
_local1 = (_local1 + String.fromCharCode(_aXVar[0][1][_local2]));
_local2++;
};
return (_local1);
}
}
}//package com.meteorgames.libs.xvars
Section 22
//BaseButton (fl.controls.BaseButton)
package fl.controls {
import flash.display.*;
import flash.events.*;
import fl.core.*;
import fl.events.*;
import flash.utils.*;
public class BaseButton extends UIComponent {
protected var _selected:Boolean;// = false
private var unlockedMouseState:String;
protected var pressTimer:Timer;
protected var mouseState:String;
protected var background:DisplayObject;
private var _mouseStateLocked:Boolean;// = false
protected var _autoRepeat:Boolean;// = false
private static var defaultStyles:Object = {upSkin:"Button_upSkin", downSkin:"Button_downSkin", overSkin:"Button_overSkin", disabledSkin:"Button_disabledSkin", selectedDisabledSkin:"Button_selectedDisabledSkin", selectedUpSkin:"Button_selectedUpSkin", selectedDownSkin:"Button_selectedDownSkin", selectedOverSkin:"Button_selectedOverSkin", focusRectSkin:null, focusRectPadding:null, repeatDelay:500, repeatInterval:35};
public function BaseButton(){
_selected = false;
_autoRepeat = false;
_mouseStateLocked = false;
super();
buttonMode = true;
mouseChildren = false;
useHandCursor = false;
setupMouseEvents();
setMouseState("up");
pressTimer = new Timer(1, 0);
pressTimer.addEventListener(TimerEvent.TIMER, buttonDown, false, 0, true);
}
protected function endPress():void{
pressTimer.reset();
}
public function set mouseStateLocked(_arg1:Boolean):void{
_mouseStateLocked = _arg1;
if (_arg1 == false){
setMouseState(unlockedMouseState);
} else {
unlockedMouseState = mouseState;
};
}
public function get autoRepeat():Boolean{
return (_autoRepeat);
}
public function set autoRepeat(_arg1:Boolean):void{
_autoRepeat = _arg1;
}
override public function set enabled(_arg1:Boolean):void{
super.enabled = _arg1;
mouseEnabled = _arg1;
}
public function get selected():Boolean{
return (_selected);
}
protected function mouseEventHandler(_arg1:MouseEvent):void{
if (_arg1.type == MouseEvent.MOUSE_DOWN){
setMouseState("down");
startPress();
} else {
if ((((_arg1.type == MouseEvent.ROLL_OVER)) || ((_arg1.type == MouseEvent.MOUSE_UP)))){
setMouseState("over");
endPress();
} else {
if (_arg1.type == MouseEvent.ROLL_OUT){
setMouseState("up");
endPress();
};
};
};
}
public function setMouseState(_arg1:String):void{
if (_mouseStateLocked){
unlockedMouseState = _arg1;
return;
};
if (mouseState == _arg1){
return;
};
mouseState = _arg1;
invalidate(InvalidationType.STATE);
}
protected function startPress():void{
if (_autoRepeat){
pressTimer.delay = Number(getStyleValue("repeatDelay"));
pressTimer.start();
};
dispatchEvent(new ComponentEvent(ComponentEvent.BUTTON_DOWN, true));
}
protected function buttonDown(_arg1:TimerEvent):void{
if (!_autoRepeat){
endPress();
return;
};
if (pressTimer.currentCount == 1){
pressTimer.delay = Number(getStyleValue("repeatInterval"));
};
dispatchEvent(new ComponentEvent(ComponentEvent.BUTTON_DOWN, true));
}
public function set selected(_arg1:Boolean):void{
if (_selected == _arg1){
return;
};
_selected = _arg1;
invalidate(InvalidationType.STATE);
}
override public function get enabled():Boolean{
return (super.enabled);
}
override protected function draw():void{
if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){
drawBackground();
invalidate(InvalidationType.SIZE, false);
};
if (isInvalid(InvalidationType.SIZE)){
drawLayout();
};
super.draw();
}
protected function setupMouseEvents():void{
addEventListener(MouseEvent.ROLL_OVER, mouseEventHandler, false, 0, true);
addEventListener(MouseEvent.MOUSE_DOWN, mouseEventHandler, false, 0, true);
addEventListener(MouseEvent.MOUSE_UP, mouseEventHandler, false, 0, true);
addEventListener(MouseEvent.ROLL_OUT, mouseEventHandler, false, 0, true);
}
protected function drawLayout():void{
background.width = width;
background.height = height;
}
protected function drawBackground():void{
var _local1:String;
var _local2:DisplayObject;
_local1 = (enabled) ? mouseState : "disabled";
if (selected){
_local1 = (("selected" + _local1.substr(0, 1).toUpperCase()) + _local1.substr(1));
};
_local1 = (_local1 + "Skin");
_local2 = background;
background = getDisplayObjectInstance(getStyleValue(_local1));
addChildAt(background, 0);
if (((!((_local2 == null))) && (!((_local2 == background))))){
removeChild(_local2);
};
}
public static function getStyleDefinition():Object{
return (defaultStyles);
}
}
}//package fl.controls
Section 23
//Button (fl.controls.Button)
package fl.controls {
import flash.display.*;
import fl.core.*;
import fl.managers.*;
public class Button extends LabelButton implements IFocusManagerComponent {
protected var emphasizedBorder:DisplayObject;
protected var _emphasized:Boolean;// = false
private static var defaultStyles:Object = {emphasizedSkin:"Button_emphasizedSkin", emphasizedPadding:2};
public static var createAccessibilityImplementation:Function;
public function Button(){
_emphasized = false;
super();
}
override public function drawFocus(_arg1:Boolean):void{
var _local2:Number;
var _local3:*;
super.drawFocus(_arg1);
if (_arg1){
_local2 = Number(getStyleValue("emphasizedPadding"));
if ((((_local2 < 0)) || (!(_emphasized)))){
_local2 = 0;
};
_local3 = getStyleValue("focusRectPadding");
_local3 = ((_local3)==null) ? 2 : _local3;
_local3 = (_local3 + _local2);
uiFocusRect.x = -(_local3);
uiFocusRect.y = -(_local3);
uiFocusRect.width = (width + (_local3 * 2));
uiFocusRect.height = (height + (_local3 * 2));
};
}
public function set emphasized(_arg1:Boolean):void{
_emphasized = _arg1;
invalidate(InvalidationType.STYLES);
}
override protected function draw():void{
if (((isInvalid(InvalidationType.STYLES)) || (isInvalid(InvalidationType.SIZE)))){
drawEmphasized();
};
super.draw();
if (emphasizedBorder != null){
setChildIndex(emphasizedBorder, (numChildren - 1));
};
}
public function get emphasized():Boolean{
return (_emphasized);
}
override protected function initializeAccessibility():void{
if (Button.createAccessibilityImplementation != null){
Button.createAccessibilityImplementation(this);
};
}
protected function drawEmphasized():void{
var _local1:Object;
var _local2:Number;
if (emphasizedBorder != null){
removeChild(emphasizedBorder);
};
emphasizedBorder = null;
if (!_emphasized){
return;
};
_local1 = getStyleValue("emphasizedSkin");
if (_local1 != null){
emphasizedBorder = getDisplayObjectInstance(_local1);
};
if (emphasizedBorder != null){
addChildAt(emphasizedBorder, 0);
_local2 = Number(getStyleValue("emphasizedPadding"));
emphasizedBorder.x = (emphasizedBorder.y = -(_local2));
emphasizedBorder.width = (width + (_local2 * 2));
emphasizedBorder.height = (height + (_local2 * 2));
};
}
public static function getStyleDefinition():Object{
return (UIComponent.mergeStyles(LabelButton.getStyleDefinition(), defaultStyles));
}
}
}//package fl.controls
Section 24
//ButtonLabelPlacement (fl.controls.ButtonLabelPlacement)
package fl.controls {
public class ButtonLabelPlacement {
public static const TOP:String = "top";
public static const LEFT:String = "left";
public static const BOTTOM:String = "bottom";
public static const RIGHT:String = "right";
}
}//package fl.controls
Section 25
//LabelButton (fl.controls.LabelButton)
package fl.controls {
import flash.display.*;
import flash.text.*;
import flash.events.*;
import fl.core.*;
import fl.managers.*;
import fl.events.*;
import flash.ui.*;
public class LabelButton extends BaseButton implements IFocusManagerComponent {
protected var _labelPlacement:String;// = "right"
protected var _toggle:Boolean;// = false
protected var icon:DisplayObject;
protected var oldMouseState:String;
protected var mode:String;// = "center"
public var textField:TextField;
protected var _label:String;// = "Label"
private static var defaultStyles:Object = {icon:null, upIcon:null, downIcon:null, overIcon:null, disabledIcon:null, selectedDisabledIcon:null, selectedUpIcon:null, selectedDownIcon:null, selectedOverIcon:null, textFormat:null, disabledTextFormat:null, textPadding:5, embedFonts:false};
public static var createAccessibilityImplementation:Function;
public function LabelButton(){
_labelPlacement = ButtonLabelPlacement.RIGHT;
_toggle = false;
_label = "Label";
mode = "center";
super();
}
protected function toggleSelected(_arg1:MouseEvent):void{
selected = !(selected);
dispatchEvent(new Event(Event.CHANGE, true));
}
public function get labelPlacement():String{
return (_labelPlacement);
}
override protected function keyDownHandler(_arg1:KeyboardEvent):void{
if (!enabled){
return;
};
if (_arg1.keyCode == Keyboard.SPACE){
if (oldMouseState == null){
oldMouseState = mouseState;
};
setMouseState("down");
startPress();
};
}
protected function setEmbedFont(){
var _local1:Object;
_local1 = getStyleValue("embedFonts");
if (_local1 != null){
textField.embedFonts = _local1;
};
}
override protected function keyUpHandler(_arg1:KeyboardEvent):void{
if (!enabled){
return;
};
if (_arg1.keyCode == Keyboard.SPACE){
setMouseState(oldMouseState);
oldMouseState = null;
endPress();
dispatchEvent(new MouseEvent(MouseEvent.CLICK));
};
}
override public function get selected():Boolean{
return ((_toggle) ? _selected : false);
}
public function set labelPlacement(_arg1:String):void{
_labelPlacement = _arg1;
invalidate(InvalidationType.SIZE);
}
public function set toggle(_arg1:Boolean):void{
if (((!(_arg1)) && (super.selected))){
selected = false;
};
_toggle = _arg1;
if (_toggle){
addEventListener(MouseEvent.CLICK, toggleSelected, false, 0, true);
} else {
removeEventListener(MouseEvent.CLICK, toggleSelected);
};
invalidate(InvalidationType.STATE);
}
public function get label():String{
return (_label);
}
override public function set selected(_arg1:Boolean):void{
_selected = _arg1;
if (_toggle){
invalidate(InvalidationType.STATE);
};
}
override protected function draw():void{
if (textField.text != _label){
label = _label;
};
if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){
drawBackground();
drawIcon();
drawTextFormat();
invalidate(InvalidationType.SIZE, false);
};
if (isInvalid(InvalidationType.SIZE)){
drawLayout();
};
if (isInvalid(InvalidationType.SIZE, InvalidationType.STYLES)){
if (((isFocused) && (focusManager.showFocusIndicator))){
drawFocus(true);
};
};
validate();
}
public function get toggle():Boolean{
return (_toggle);
}
override protected function configUI():void{
super.configUI();
textField = new TextField();
textField.type = TextFieldType.DYNAMIC;
textField.selectable = false;
addChild(textField);
}
override protected function drawLayout():void{
var _local1:Number;
var _local2:String;
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
_local1 = Number(getStyleValue("textPadding"));
_local2 = ((((icon == null)) && ((mode == "center")))) ? ButtonLabelPlacement.TOP : _labelPlacement;
textField.height = (textField.textHeight + 4);
_local3 = (textField.textWidth + 4);
_local4 = (textField.textHeight + 4);
_local5 = ((icon)==null) ? 0 : (icon.width + _local1);
_local6 = ((icon)==null) ? 0 : (icon.height + _local1);
textField.visible = (label.length > 0);
if (icon != null){
icon.x = Math.round(((width - icon.width) / 2));
icon.y = Math.round(((height - icon.height) / 2));
};
if (textField.visible == false){
textField.width = 0;
textField.height = 0;
} else {
if ((((_local2 == ButtonLabelPlacement.BOTTOM)) || ((_local2 == ButtonLabelPlacement.TOP)))){
_local7 = Math.max(0, Math.min(_local3, (width - (2 * _local1))));
if ((height - 2) > _local4){
_local8 = _local4;
} else {
_local8 = (height - 2);
};
_local3 = _local7;
textField.width = _local3;
_local4 = _local8;
textField.height = _local4;
textField.x = Math.round(((width - _local3) / 2));
textField.y = Math.round(((((height - textField.height) - _local6) / 2) + ((_local2)==ButtonLabelPlacement.BOTTOM) ? _local6 : 0));
if (icon != null){
icon.y = Math.round(((_local2)==ButtonLabelPlacement.BOTTOM) ? (textField.y - _local6) : ((textField.y + textField.height) + _local1));
};
} else {
_local7 = Math.max(0, Math.min(_local3, ((width - _local5) - (2 * _local1))));
_local3 = _local7;
textField.width = _local3;
textField.x = Math.round(((((width - _local3) - _local5) / 2) + ((_local2)!=ButtonLabelPlacement.LEFT) ? _local5 : 0));
textField.y = Math.round(((height - textField.height) / 2));
if (icon != null){
icon.x = Math.round(((_local2)!=ButtonLabelPlacement.LEFT) ? (textField.x - _local5) : ((textField.x + _local3) + _local1));
};
};
};
super.drawLayout();
}
override protected function initializeAccessibility():void{
if (LabelButton.createAccessibilityImplementation != null){
LabelButton.createAccessibilityImplementation(this);
};
}
protected function drawIcon():void{
var _local1:DisplayObject;
var _local2:String;
var _local3:Object;
_local1 = icon;
_local2 = (enabled) ? mouseState : "disabled";
if (selected){
_local2 = (("selected" + _local2.substr(0, 1).toUpperCase()) + _local2.substr(1));
};
_local2 = (_local2 + "Icon");
_local3 = getStyleValue(_local2);
if (_local3 == null){
_local3 = getStyleValue("icon");
};
if (_local3 != null){
icon = getDisplayObjectInstance(_local3);
};
if (icon != null){
addChildAt(icon, 1);
};
if (((!((_local1 == null))) && (!((_local1 == icon))))){
removeChild(_local1);
};
}
public function set label(_arg1:String):void{
_label = _arg1;
if (textField.text != _label){
textField.text = _label;
dispatchEvent(new ComponentEvent(ComponentEvent.LABEL_CHANGE));
};
invalidate(InvalidationType.SIZE);
invalidate(InvalidationType.STYLES);
}
protected function drawTextFormat():void{
var _local1:Object;
var _local2:TextFormat;
var _local3:TextFormat;
_local1 = UIComponent.getStyleDefinition();
_local2 = (enabled) ? (_local1.defaultTextFormat as TextFormat) : (_local1.defaultDisabledTextFormat as TextFormat);
textField.setTextFormat(_local2);
_local3 = (getStyleValue((enabled) ? "textFormat" : "disabledTextFormat") as TextFormat);
if (_local3 != null){
textField.setTextFormat(_local3);
} else {
_local3 = _local2;
};
textField.defaultTextFormat = _local3;
setEmbedFont();
}
public static function getStyleDefinition():Object{
return (mergeStyles(defaultStyles, BaseButton.getStyleDefinition()));
}
}
}//package fl.controls
Section 26
//ScrollBar (fl.controls.ScrollBar)
package fl.controls {
import flash.events.*;
import fl.core.*;
import fl.events.*;
public class ScrollBar extends UIComponent {
private var _direction:String;// = "vertical"
protected var inDrag:Boolean;// = false
protected var upArrow:BaseButton;
private var _pageScrollSize:Number;// = 0
protected var downArrow:BaseButton;
private var _pageSize:Number;// = 10
private var thumbScrollOffset:Number;
private var _maxScrollPosition:Number;// = 0
private var _scrollPosition:Number;// = 0
protected var track:BaseButton;
private var _minScrollPosition:Number;// = 0
private var _lineScrollSize:Number;// = 1
protected var thumb:LabelButton;
protected static const THUMB_STYLES:Object = {disabledSkin:"thumbDisabledSkin", downSkin:"thumbDownSkin", overSkin:"thumbOverSkin", upSkin:"thumbUpSkin", icon:"thumbIcon", textPadding:0};
public static const WIDTH:Number = 15;
protected static const DOWN_ARROW_STYLES:Object = {disabledSkin:"downArrowDisabledSkin", downSkin:"downArrowDownSkin", overSkin:"downArrowOverSkin", upSkin:"downArrowUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval"};
protected static const UP_ARROW_STYLES:Object = {disabledSkin:"upArrowDisabledSkin", downSkin:"upArrowDownSkin", overSkin:"upArrowOverSkin", upSkin:"upArrowUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval"};
protected static const TRACK_STYLES:Object = {disabledSkin:"trackDisabledSkin", downSkin:"trackDownSkin", overSkin:"trackOverSkin", upSkin:"trackUpSkin", repeatDelay:"repeatDelay", repeatInterval:"repeatInterval"};
private static var defaultStyles:Object = {downArrowDisabledSkin:"ScrollArrowDown_disabledSkin", downArrowDownSkin:"ScrollArrowDown_downSkin", downArrowOverSkin:"ScrollArrowDown_overSkin", downArrowUpSkin:"ScrollArrowDown_upSkin", thumbDisabledSkin:"ScrollThumb_upSkin", thumbDownSkin:"ScrollThumb_downSkin", thumbOverSkin:"ScrollThumb_overSkin", thumbUpSkin:"ScrollThumb_upSkin", trackDisabledSkin:"ScrollTrack_skin", trackDownSkin:"ScrollTrack_skin", trackOverSkin:"ScrollTrack_skin", trackUpSkin:"ScrollTrack_skin", upArrowDisabledSkin:"ScrollArrowUp_disabledSkin", upArrowDownSkin:"ScrollArrowUp_downSkin", upArrowOverSkin:"ScrollArrowUp_overSkin", upArrowUpSkin:"ScrollArrowUp_upSkin", thumbIcon:"ScrollBar_thumbIcon", repeatDelay:500, repeatInterval:35};
public function ScrollBar(){
_pageSize = 10;
_pageScrollSize = 0;
_lineScrollSize = 1;
_minScrollPosition = 0;
_maxScrollPosition = 0;
_scrollPosition = 0;
_direction = ScrollBarDirection.VERTICAL;
inDrag = false;
super();
setStyles();
focusEnabled = false;
}
public function get minScrollPosition():Number{
return (_minScrollPosition);
}
public function set minScrollPosition(_arg1:Number):void{
setScrollProperties(_pageSize, _arg1, _maxScrollPosition);
}
public function setScrollPosition(_arg1:Number, _arg2:Boolean=true):void{
var _local3:Number;
_local3 = scrollPosition;
_scrollPosition = Math.max(_minScrollPosition, Math.min(_maxScrollPosition, _arg1));
if (_local3 == _scrollPosition){
return;
};
if (_arg2){
dispatchEvent(new ScrollEvent(_direction, (scrollPosition - _local3), scrollPosition));
};
updateThumb();
}
public function set scrollPosition(_arg1:Number):void{
setScrollPosition(_arg1, true);
}
public function get pageScrollSize():Number{
return (((_pageScrollSize)==0) ? _pageSize : _pageScrollSize);
}
public function set pageSize(_arg1:Number):void{
if (_arg1 > 0){
_pageSize = _arg1;
};
}
public function setScrollProperties(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number=0):void{
this.pageSize = _arg1;
_minScrollPosition = _arg2;
_maxScrollPosition = _arg3;
if (_arg4 >= 0){
_pageScrollSize = _arg4;
};
enabled = (_maxScrollPosition > _minScrollPosition);
setScrollPosition(_scrollPosition, false);
updateThumb();
}
override public function set enabled(_arg1:Boolean):void{
super.enabled = _arg1;
downArrow.enabled = (track.enabled = (thumb.enabled = (upArrow.enabled = ((enabled) && ((_maxScrollPosition > _minScrollPosition))))));
updateThumb();
}
protected function updateThumb():void{
var _local1:Number;
_local1 = ((_maxScrollPosition - _minScrollPosition) + _pageSize);
if ((((((track.height <= 12)) || ((_maxScrollPosition <= _minScrollPosition)))) || ((((_local1 == 0)) || (isNaN(_local1)))))){
thumb.height = 12;
thumb.visible = false;
} else {
thumb.height = Math.max(13, ((_pageSize / _local1) * track.height));
thumb.y = (track.y + ((track.height - thumb.height) * ((_scrollPosition - _minScrollPosition) / (_maxScrollPosition - _minScrollPosition))));
thumb.visible = enabled;
};
}
protected function thumbPressHandler(_arg1:MouseEvent):void{
inDrag = true;
thumbScrollOffset = (mouseY - thumb.y);
thumb.mouseStateLocked = true;
mouseChildren = false;
stage.addEventListener(MouseEvent.MOUSE_MOVE, handleThumbDrag, false, 0, true);
stage.addEventListener(MouseEvent.MOUSE_UP, thumbReleaseHandler, false, 0, true);
}
protected function thumbReleaseHandler(_arg1:MouseEvent):void{
inDrag = false;
mouseChildren = true;
thumb.mouseStateLocked = false;
stage.removeEventListener(MouseEvent.MOUSE_MOVE, handleThumbDrag);
stage.removeEventListener(MouseEvent.MOUSE_UP, thumbReleaseHandler);
}
public function set pageScrollSize(_arg1:Number):void{
if (_arg1 >= 0){
_pageScrollSize = _arg1;
};
}
protected function handleThumbDrag(_arg1:MouseEvent):void{
var _local2:Number;
_local2 = Math.max(0, Math.min((track.height - thumb.height), ((mouseY - track.y) - thumbScrollOffset)));
setScrollPosition((((_local2 / (track.height - thumb.height)) * (_maxScrollPosition - _minScrollPosition)) + _minScrollPosition));
}
public function set direction(_arg1:String):void{
var _local2:Boolean;
if (_direction == _arg1){
return;
};
_direction = _arg1;
if (isLivePreview){
return;
};
setScaleY(1);
_local2 = (_direction == ScrollBarDirection.HORIZONTAL);
if (((_local2) && (componentInspectorSetting))){
if (rotation == 90){
return;
};
setScaleX(-1);
rotation = -90;
};
if (!componentInspectorSetting){
if (((_local2) && ((rotation == 0)))){
rotation = -90;
setScaleX(-1);
} else {
if (((!(_local2)) && ((rotation == -90)))){
rotation = 0;
setScaleX(1);
};
};
};
invalidate(InvalidationType.SIZE);
}
public function set lineScrollSize(_arg1:Number):void{
if (_arg1 > 0){
_lineScrollSize = _arg1;
};
}
override public function get height():Number{
return (((_direction)==ScrollBarDirection.HORIZONTAL) ? super.width : super.height);
}
protected function scrollPressHandler(_arg1:ComponentEvent):void{
var _local2:Number;
var _local3:Number;
_arg1.stopImmediatePropagation();
if (_arg1.currentTarget == upArrow){
setScrollPosition((_scrollPosition - _lineScrollSize));
} else {
if (_arg1.currentTarget == downArrow){
setScrollPosition((_scrollPosition + _lineScrollSize));
} else {
_local2 = (((track.mouseY / track.height) * (_maxScrollPosition - _minScrollPosition)) + _minScrollPosition);
_local3 = ((pageScrollSize)==0) ? pageSize : pageScrollSize;
if (_scrollPosition < _local2){
setScrollPosition(Math.min(_local2, (_scrollPosition + _local3)));
} else {
if (_scrollPosition > _local2){
setScrollPosition(Math.max(_local2, (_scrollPosition - _local3)));
};
};
};
};
}
public function get pageSize():Number{
return (_pageSize);
}
public function set maxScrollPosition(_arg1:Number):void{
setScrollProperties(_pageSize, _minScrollPosition, _arg1);
}
public function get scrollPosition():Number{
return (_scrollPosition);
}
override public function get enabled():Boolean{
return (super.enabled);
}
override protected function draw():void{
var _local1:Number;
if (isInvalid(InvalidationType.SIZE)){
_local1 = super.height;
downArrow.move(0, Math.max(upArrow.height, (_local1 - downArrow.height)));
track.setSize(WIDTH, Math.max(0, (_local1 - (downArrow.height + upArrow.height))));
updateThumb();
};
if (isInvalid(InvalidationType.STYLES, InvalidationType.STATE)){
setStyles();
};
downArrow.drawNow();
upArrow.drawNow();
track.drawNow();
thumb.drawNow();
validate();
}
override protected function configUI():void{
super.configUI();
track = new BaseButton();
track.move(0, 14);
track.useHandCursor = false;
track.autoRepeat = true;
track.focusEnabled = false;
addChild(track);
thumb = new LabelButton();
thumb.label = "";
thumb.setSize(WIDTH, 15);
thumb.move(0, 15);
thumb.focusEnabled = false;
addChild(thumb);
downArrow = new BaseButton();
downArrow.setSize(WIDTH, 14);
downArrow.autoRepeat = true;
downArrow.focusEnabled = false;
addChild(downArrow);
upArrow = new BaseButton();
upArrow.setSize(WIDTH, 14);
upArrow.move(0, 0);
upArrow.autoRepeat = true;
upArrow.focusEnabled = false;
addChild(upArrow);
upArrow.addEventListener(ComponentEvent.BUTTON_DOWN, scrollPressHandler, false, 0, true);
downArrow.addEventListener(ComponentEvent.BUTTON_DOWN, scrollPressHandler, false, 0, true);
track.addEventListener(ComponentEvent.BUTTON_DOWN, scrollPressHandler, false, 0, true);
thumb.addEventListener(MouseEvent.MOUSE_DOWN, thumbPressHandler, false, 0, true);
enabled = false;
}
public function get direction():String{
return (_direction);
}
public function get lineScrollSize():Number{
return (_lineScrollSize);
}
override public function setSize(_arg1:Number, _arg2:Number):void{
if (_direction == ScrollBarDirection.HORIZONTAL){
super.setSize(_arg2, _arg1);
} else {
super.setSize(_arg1, _arg2);
};
}
public function get maxScrollPosition():Number{
return (_maxScrollPosition);
}
override public function get width():Number{
return (((_direction)==ScrollBarDirection.HORIZONTAL) ? super.height : super.width);
}
protected function setStyles():void{
copyStylesToChild(downArrow, DOWN_ARROW_STYLES);
copyStylesToChild(thumb, THUMB_STYLES);
copyStylesToChild(track, TRACK_STYLES);
copyStylesToChild(upArrow, UP_ARROW_STYLES);
}
public static function getStyleDefinition():Object{
return (defaultStyles);
}
}
}//package fl.controls
Section 27
//ScrollBarDirection (fl.controls.ScrollBarDirection)
package fl.controls {
public class ScrollBarDirection {
public static const HORIZONTAL:String = "horizontal";
public static const VERTICAL:String = "vertical";
}
}//package fl.controls
Section 28
//UIScrollBar (fl.controls.UIScrollBar)
package fl.controls {
import flash.text.*;
import flash.events.*;
import fl.core.*;
import fl.events.*;
public class UIScrollBar extends ScrollBar {
protected var inScroll:Boolean;// = false
protected var _scrollTarget:TextField;
protected var inEdit:Boolean;// = false
private static var defaultStyles:Object = {};
public function UIScrollBar(){
inEdit = false;
inScroll = false;
super();
}
protected function handleTargetScroll(_arg1:Event):void{
if (inDrag){
return;
};
if (!enabled){
return;
};
inEdit = true;
updateScrollTargetProperties();
scrollPosition = ((direction)==ScrollBarDirection.HORIZONTAL) ? _scrollTarget.scrollH : _scrollTarget.scrollV;
inEdit = false;
}
override public function set minScrollPosition(_arg1:Number):void{
super.minScrollPosition = ((_arg1)<0) ? 0 : _arg1;
}
override public function setScrollPosition(_arg1:Number, _arg2:Boolean=true):void{
super.setScrollPosition(_arg1, _arg2);
if (!_scrollTarget){
inScroll = false;
return;
};
updateTargetScroll();
}
override public function setScrollProperties(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number=0):void{
var _local5:Number;
var _local6:Number;
_local5 = _arg3;
_local6 = ((_arg2)<0) ? 0 : _arg2;
if (_scrollTarget != null){
if (direction == ScrollBarDirection.HORIZONTAL){
_local5 = ((_arg3)>_scrollTarget.maxScrollH) ? _scrollTarget.maxScrollH : _local5;
} else {
_local5 = ((_arg3)>_scrollTarget.maxScrollV) ? _scrollTarget.maxScrollV : _local5;
};
};
super.setScrollProperties(_arg1, _local6, _local5, _arg4);
}
public function get scrollTargetName():String{
return (_scrollTarget.name);
}
public function get scrollTarget():TextField{
return (_scrollTarget);
}
protected function updateScrollTargetProperties():void{
var _local1:Boolean;
var _local2:Number;
if (_scrollTarget == null){
setScrollProperties(pageSize, minScrollPosition, maxScrollPosition, pageScrollSize);
scrollPosition = 0;
} else {
_local1 = (direction == ScrollBarDirection.HORIZONTAL);
_local2 = (_local1) ? _scrollTarget.width : 10;
setScrollProperties(_local2, (_local1) ? 0 : 1, (_local1) ? _scrollTarget.maxScrollH : _scrollTarget.maxScrollV, pageScrollSize);
scrollPosition = (_local1) ? _scrollTarget.scrollH : _scrollTarget.scrollV;
};
}
public function update():void{
inEdit = true;
updateScrollTargetProperties();
inEdit = false;
}
public function set scrollTargetName(_arg1:String):void{
var target = _arg1;
try {
scrollTarget = (parent.getChildByName(target) as TextField);
} catch(error:Error) {
throw (new Error("ScrollTarget not found, or is not a TextField"));
};
}
override public function set direction(_arg1:String):void{
if (isLivePreview){
return;
};
super.direction = _arg1;
updateScrollTargetProperties();
}
protected function handleTargetChange(_arg1:Event):void{
inEdit = true;
setScrollPosition(((direction)==ScrollBarDirection.HORIZONTAL) ? _scrollTarget.scrollH : _scrollTarget.scrollV, true);
updateScrollTargetProperties();
inEdit = false;
}
override public function set maxScrollPosition(_arg1:Number):void{
var _local2:Number;
_local2 = _arg1;
if (_scrollTarget != null){
if (direction == ScrollBarDirection.HORIZONTAL){
_local2 = ((_local2)>_scrollTarget.maxScrollH) ? _scrollTarget.maxScrollH : _local2;
} else {
_local2 = ((_local2)>_scrollTarget.maxScrollV) ? _scrollTarget.maxScrollV : _local2;
};
};
super.maxScrollPosition = _local2;
}
protected function updateTargetScroll(_arg1:ScrollEvent=null):void{
if (inEdit){
return;
};
if (direction == ScrollBarDirection.HORIZONTAL){
_scrollTarget.scrollH = scrollPosition;
} else {
_scrollTarget.scrollV = scrollPosition;
};
}
override protected function draw():void{
if (isInvalid(InvalidationType.DATA)){
updateScrollTargetProperties();
};
super.draw();
}
public function set scrollTarget(_arg1:TextField):void{
if (_scrollTarget != null){
_scrollTarget.removeEventListener(Event.CHANGE, handleTargetChange, false);
_scrollTarget.removeEventListener(TextEvent.TEXT_INPUT, handleTargetChange, false);
_scrollTarget.removeEventListener(Event.SCROLL, handleTargetScroll, false);
removeEventListener(ScrollEvent.SCROLL, updateTargetScroll, false);
};
_scrollTarget = _arg1;
if (_scrollTarget != null){
_scrollTarget.addEventListener(Event.CHANGE, handleTargetChange, false, 0, true);
_scrollTarget.addEventListener(TextEvent.TEXT_INPUT, handleTargetChange, false, 0, true);
_scrollTarget.addEventListener(Event.SCROLL, handleTargetScroll, false, 0, true);
addEventListener(ScrollEvent.SCROLL, updateTargetScroll, false, 0, true);
};
invalidate(InvalidationType.DATA);
}
override public function get direction():String{
return (super.direction);
}
public static function getStyleDefinition():Object{
return (UIComponent.mergeStyles(defaultStyles, ScrollBar.getStyleDefinition()));
}
}
}//package fl.controls
Section 29
//ComponentShim (fl.core.ComponentShim)
package fl.core {
import flash.display.*;
public dynamic class ComponentShim extends MovieClip {
}
}//package fl.core
Section 30
//InvalidationType (fl.core.InvalidationType)
package fl.core {
public class InvalidationType {
public static const SIZE:String = "size";
public static const ALL:String = "all";
public static const DATA:String = "data";
public static const SCROLL:String = "scroll";
public static const STATE:String = "state";
public static const STYLES:String = "styles";
public static const SELECTED:String = "selected";
public static const RENDERER_STYLES:String = "rendererStyles";
}
}//package fl.core
Section 31
//UIComponent (fl.core.UIComponent)
package fl.core {
import flash.display.*;
import flash.text.*;
import flash.events.*;
import fl.managers.*;
import fl.events.*;
import flash.utils.*;
import flash.system.*;
public class UIComponent extends Sprite {
protected var _enabled:Boolean;// = true
private var _mouseFocusEnabled:Boolean;// = true
protected var startHeight:Number;
protected var _height:Number;
protected var _oldIMEMode:String;// = null
protected var startWidth:Number;
public var focusTarget:IFocusManagerComponent;
protected var errorCaught:Boolean;// = false
protected var uiFocusRect:DisplayObject;
protected var _width:Number;
public var version:String;// = "3.0.0.15"
protected var isFocused:Boolean;// = false
protected var callLaterMethods:Dictionary;
private var _focusEnabled:Boolean;// = true
private var tempText:TextField;
protected var invalidateFlag:Boolean;// = false
protected var _inspector:Boolean;// = false
protected var sharedStyles:Object;
protected var invalidHash:Object;
protected var isLivePreview:Boolean;// = false
protected var _imeMode:String;// = null
protected var instanceStyles:Object;
protected var _x:Number;
protected var _y:Number;
public static var inCallLaterPhase:Boolean = false;
private static var defaultStyles:Object = {focusRectSkin:"focusRectSkin", focusRectPadding:2, textFormat:new TextFormat("_sans", 11, 0, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0), disabledTextFormat:new TextFormat("_sans", 11, 0x999999, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0), defaultTextFormat:new TextFormat("_sans", 11, 0, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0), defaultDisabledTextFormat:new TextFormat("_sans", 11, 0x999999, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0)};
public static var createAccessibilityImplementation:Function;
private static var focusManagers:Dictionary = new Dictionary(false);
public function UIComponent(){
version = "3.0.0.15";
isLivePreview = false;
invalidateFlag = false;
_enabled = true;
isFocused = false;
_focusEnabled = true;
_mouseFocusEnabled = true;
_imeMode = null;
_oldIMEMode = null;
errorCaught = false;
_inspector = false;
super();
instanceStyles = {};
sharedStyles = {};
invalidHash = {};
callLaterMethods = new Dictionary();
StyleManager.registerInstance(this);
configUI();
invalidate(InvalidationType.ALL);
tabEnabled = (this is IFocusManagerComponent);
focusRect = false;
if (tabEnabled){
addEventListener(FocusEvent.FOCUS_IN, focusInHandler);
addEventListener(FocusEvent.FOCUS_OUT, focusOutHandler);
addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler);
addEventListener(KeyboardEvent.KEY_UP, keyUpHandler);
};
initializeFocusManager();
addEventListener(Event.ENTER_FRAME, hookAccessibility, false, 0, true);
}
public function drawFocus(_arg1:Boolean):void{
var _local2:Number;
isFocused = _arg1;
if (((!((uiFocusRect == null))) && (contains(uiFocusRect)))){
removeChild(uiFocusRect);
uiFocusRect = null;
};
if (_arg1){
uiFocusRect = (getDisplayObjectInstance(getStyleValue("focusRectSkin")) as Sprite);
if (uiFocusRect == null){
return;
};
_local2 = Number(getStyleValue("focusRectPadding"));
uiFocusRect.x = -(_local2);
uiFocusRect.y = -(_local2);
uiFocusRect.width = (width + (_local2 * 2));
uiFocusRect.height = (height + (_local2 * 2));
addChildAt(uiFocusRect, 0);
};
}
private function callLaterDispatcher(_arg1:Event):void{
var _local2:Dictionary;
var _local3:Object;
if (_arg1.type == Event.ADDED_TO_STAGE){
removeEventListener(Event.ADDED_TO_STAGE, callLaterDispatcher);
stage.addEventListener(Event.RENDER, callLaterDispatcher, false, 0, true);
stage.invalidate();
return;
};
_arg1.target.removeEventListener(Event.RENDER, callLaterDispatcher);
if (stage == null){
addEventListener(Event.ADDED_TO_STAGE, callLaterDispatcher, false, 0, true);
return;
};
inCallLaterPhase = true;
_local2 = callLaterMethods;
for (_local3 in _local2) {
_local3();
delete _local2[_local3];
};
inCallLaterPhase = false;
}
private function addedHandler(_arg1:Event):void{
removeEventListener("addedToStage", addedHandler);
initializeFocusManager();
}
protected function getStyleValue(_arg1:String):Object{
return (((instanceStyles[_arg1])==null) ? sharedStyles[_arg1] : instanceStyles[_arg1]);
}
protected function isOurFocus(_arg1:DisplayObject):Boolean{
return ((_arg1 == this));
}
override public function get scaleX():Number{
return ((width / startWidth));
}
override public function get scaleY():Number{
return ((height / startHeight));
}
override public function set height(_arg1:Number):void{
if (_height == _arg1){
return;
};
setSize(width, _arg1);
}
protected function keyDownHandler(_arg1:KeyboardEvent):void{
}
protected function focusInHandler(_arg1:FocusEvent):void{
var _local2:IFocusManager;
if (isOurFocus((_arg1.target as DisplayObject))){
_local2 = focusManager;
if (((_local2) && (_local2.showFocusIndicator))){
drawFocus(true);
isFocused = true;
};
};
}
public function setStyle(_arg1:String, _arg2:Object):void{
if ((((instanceStyles[_arg1] === _arg2)) && (!((_arg2 is TextFormat))))){
return;
};
instanceStyles[_arg1] = _arg2;
invalidate(InvalidationType.STYLES);
}
override public function get visible():Boolean{
return (super.visible);
}
public function get componentInspectorSetting():Boolean{
return (_inspector);
}
override public function get x():Number{
return ((isNaN(_x)) ? super.x : _x);
}
override public function get y():Number{
return ((isNaN(_y)) ? super.y : _y);
}
protected function setIMEMode(_arg1:Boolean){
var enabled = _arg1;
if (_imeMode != null){
if (enabled){
IME.enabled = true;
_oldIMEMode = IME.conversionMode;
try {
if (((!(errorCaught)) && (!((IME.conversionMode == IMEConversionMode.UNKNOWN))))){
IME.conversionMode = _imeMode;
};
errorCaught = false;
} catch(e:Error) {
errorCaught = true;
throw (new Error(("IME mode not supported: " + _imeMode)));
};
} else {
if (((!((IME.conversionMode == IMEConversionMode.UNKNOWN))) && (!((_oldIMEMode == IMEConversionMode.UNKNOWN))))){
IME.conversionMode = _oldIMEMode;
};
IME.enabled = false;
};
};
}
public function set enabled(_arg1:Boolean):void{
if (_arg1 == _enabled){
return;
};
_enabled = _arg1;
invalidate(InvalidationType.STATE);
}
public function setSharedStyle(_arg1:String, _arg2:Object):void{
if ((((sharedStyles[_arg1] === _arg2)) && (!((_arg2 is TextFormat))))){
return;
};
sharedStyles[_arg1] = _arg2;
if (instanceStyles[_arg1] == null){
invalidate(InvalidationType.STYLES);
};
}
protected function keyUpHandler(_arg1:KeyboardEvent):void{
}
public function set focusEnabled(_arg1:Boolean):void{
_focusEnabled = _arg1;
}
override public function set scaleX(_arg1:Number):void{
setSize((startWidth * _arg1), height);
}
public function get mouseFocusEnabled():Boolean{
return (_mouseFocusEnabled);
}
override public function set scaleY(_arg1:Number):void{
setSize(width, (startHeight * _arg1));
}
protected function getDisplayObjectInstance(_arg1:Object):DisplayObject{
var classDef:Object;
var skin = _arg1;
classDef = null;
if ((skin is Class)){
return ((new (skin) as DisplayObject));
};
if ((skin is DisplayObject)){
(skin as DisplayObject).x = 0;
(skin as DisplayObject).y = 0;
return ((skin as DisplayObject));
};
try {
classDef = getDefinitionByName(skin.toString());
} catch(e:Error) {
try {
classDef = (loaderInfo.applicationDomain.getDefinition(skin.toString()) as Object);
} catch(e:Error) {
};
};
if (classDef == null){
return (null);
};
return ((new (classDef) as DisplayObject));
}
protected function copyStylesToChild(_arg1:UIComponent, _arg2:Object):void{
var _local3:String;
for (_local3 in _arg2) {
_arg1.setStyle(_local3, getStyleValue(_arg2[_local3]));
};
}
protected function beforeComponentParameters():void{
}
protected function callLater(_arg1:Function):void{
if (inCallLaterPhase){
return;
};
callLaterMethods[_arg1] = true;
if (stage != null){
stage.addEventListener(Event.RENDER, callLaterDispatcher, false, 0, true);
stage.invalidate();
} else {
addEventListener(Event.ADDED_TO_STAGE, callLaterDispatcher, false, 0, true);
};
}
protected function createFocusManager():void{
if (focusManagers[stage] == null){
focusManagers[stage] = new FocusManager(stage);
};
}
override public function set visible(_arg1:Boolean):void{
var _local2:String;
if (super.visible == _arg1){
return;
};
super.visible = _arg1;
_local2 = (_arg1) ? ComponentEvent.SHOW : ComponentEvent.HIDE;
dispatchEvent(new ComponentEvent(_local2, true));
}
protected function hookAccessibility(_arg1:Event):void{
removeEventListener(Event.ENTER_FRAME, hookAccessibility);
initializeAccessibility();
}
public function set componentInspectorSetting(_arg1:Boolean):void{
_inspector = _arg1;
if (_inspector){
beforeComponentParameters();
} else {
afterComponentParameters();
};
}
override public function set x(_arg1:Number):void{
move(_arg1, _y);
}
public function drawNow():void{
draw();
}
override public function set y(_arg1:Number):void{
move(_x, _arg1);
}
protected function checkLivePreview():Boolean{
var className:String;
if (parent == null){
return (false);
};
try {
className = getQualifiedClassName(parent);
} catch(e:Error) {
};
return ((className == "fl.livepreview::LivePreviewParent"));
}
protected function focusOutHandler(_arg1:FocusEvent):void{
if (isOurFocus((_arg1.target as DisplayObject))){
drawFocus(false);
isFocused = false;
};
}
public function set mouseFocusEnabled(_arg1:Boolean):void{
_mouseFocusEnabled = _arg1;
}
public function getFocus():InteractiveObject{
if (stage){
return (stage.focus);
};
return (null);
}
protected function validate():void{
invalidHash = {};
}
override public function get height():Number{
return (_height);
}
public function invalidate(_arg1:String="all", _arg2:Boolean=true):void{
invalidHash[_arg1] = true;
if (_arg2){
this.callLater(draw);
};
}
public function get enabled():Boolean{
return (_enabled);
}
protected function getScaleX():Number{
return (super.scaleX);
}
protected function getScaleY():Number{
return (super.scaleY);
}
public function get focusEnabled():Boolean{
return (_focusEnabled);
}
protected function afterComponentParameters():void{
}
protected function draw():void{
if (isInvalid(InvalidationType.SIZE, InvalidationType.STYLES)){
if (((isFocused) && (focusManager.showFocusIndicator))){
drawFocus(true);
};
};
validate();
}
protected function configUI():void{
var _local1:Number;
var _local2:Number;
var _local3:Number;
isLivePreview = checkLivePreview();
_local1 = rotation;
rotation = 0;
_local2 = super.width;
_local3 = super.height;
var _local4 = 1;
super.scaleY = _local4;
super.scaleX = _local4;
setSize(_local2, _local3);
move(super.x, super.y);
rotation = _local1;
startWidth = _local2;
startHeight = _local3;
if (numChildren > 0){
removeChildAt(0);
};
}
protected function setScaleX(_arg1:Number):void{
super.scaleX = _arg1;
}
protected function setScaleY(_arg1:Number):void{
super.scaleY = _arg1;
}
private function initializeFocusManager():void{
if (stage == null){
addEventListener(Event.ADDED_TO_STAGE, addedHandler, false, 0, true);
} else {
createFocusManager();
};
}
public function set focusManager(_arg1:IFocusManager):void{
UIComponent.focusManagers[this] = _arg1;
}
public function clearStyle(_arg1:String):void{
setStyle(_arg1, null);
}
protected function isInvalid(_arg1:String, ... _args):Boolean{
if (((invalidHash[_arg1]) || (invalidHash[InvalidationType.ALL]))){
return (true);
};
while (_args.length > 0) {
if (invalidHash[_args.pop()]){
return (true);
};
};
return (false);
}
public function setSize(_arg1:Number, _arg2:Number):void{
_width = _arg1;
_height = _arg2;
invalidate(InvalidationType.SIZE);
dispatchEvent(new ComponentEvent(ComponentEvent.RESIZE, false));
}
override public function set width(_arg1:Number):void{
if (_width == _arg1){
return;
};
setSize(_arg1, height);
}
public function setFocus():void{
if (stage){
stage.focus = this;
};
}
protected function initializeAccessibility():void{
if (UIComponent.createAccessibilityImplementation != null){
UIComponent.createAccessibilityImplementation(this);
};
}
public function get focusManager():IFocusManager{
var _local1:DisplayObject;
_local1 = this;
while (_local1) {
if (UIComponent.focusManagers[_local1] != null){
return (IFocusManager(UIComponent.focusManagers[_local1]));
};
_local1 = _local1.parent;
};
return (null);
}
override public function get width():Number{
return (_width);
}
public function move(_arg1:Number, _arg2:Number):void{
_x = _arg1;
_y = _arg2;
super.x = Math.round(_arg1);
super.y = Math.round(_arg2);
dispatchEvent(new ComponentEvent(ComponentEvent.MOVE));
}
public function validateNow():void{
invalidate(InvalidationType.ALL, false);
draw();
}
public function getStyle(_arg1:String):Object{
return (instanceStyles[_arg1]);
}
public static function getStyleDefinition():Object{
return (defaultStyles);
}
public static function mergeStyles(... _args):Object{
var _local2:Object;
var _local3:uint;
var _local4:uint;
var _local5:Object;
var _local6:String;
_local2 = {};
_local3 = _args.length;
_local4 = 0;
while (_local4 < _local3) {
_local5 = _args[_local4];
for (_local6 in _local5) {
if (_local2[_local6] != null){
} else {
_local2[_local6] = _args[_local4][_local6];
};
};
_local4++;
};
return (_local2);
}
}
}//package fl.core
Section 32
//ComponentEvent (fl.events.ComponentEvent)
package fl.events {
import flash.events.*;
public class ComponentEvent extends Event {
public static const HIDE:String = "hide";
public static const BUTTON_DOWN:String = "buttonDown";
public static const MOVE:String = "move";
public static const RESIZE:String = "resize";
public static const ENTER:String = "enter";
public static const LABEL_CHANGE:String = "labelChange";
public static const SHOW:String = "show";
public function ComponentEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false){
super(_arg1, _arg2, _arg3);
}
override public function toString():String{
return (formatToString("ComponentEvent", "type", "bubbles", "cancelable"));
}
override public function clone():Event{
return (new ComponentEvent(type, bubbles, cancelable));
}
}
}//package fl.events
Section 33
//ScrollEvent (fl.events.ScrollEvent)
package fl.events {
import flash.events.*;
public class ScrollEvent extends Event {
private var _position:Number;
private var _direction:String;
private var _delta:Number;
public static const SCROLL:String = "scroll";
public function ScrollEvent(_arg1:String, _arg2:Number, _arg3:Number){
super(ScrollEvent.SCROLL, false, false);
_direction = _arg1;
_delta = _arg2;
_position = _arg3;
}
override public function clone():Event{
return (new ScrollEvent(_direction, _delta, _position));
}
public function get position():Number{
return (_position);
}
override public function toString():String{
return (formatToString("ScrollEvent", "type", "bubbles", "cancelable", "direction", "delta", "position"));
}
public function get delta():Number{
return (_delta);
}
public function get direction():String{
return (_direction);
}
}
}//package fl.events
Section 34
//FocusManager (fl.managers.FocusManager)
package fl.managers {
import fl.controls.*;
import flash.display.*;
import flash.text.*;
import flash.events.*;
import fl.core.*;
import flash.utils.*;
import flash.ui.*;
public class FocusManager implements IFocusManager {
private var focusableObjects:Dictionary;
private var _showFocusIndicator:Boolean;// = true
private var defButton:Button;
private var focusableCandidates:Array;
private var _form:DisplayObjectContainer;
private var _defaultButtonEnabled:Boolean;// = true
private var activated:Boolean;// = false
private var _defaultButton:Button;
private var calculateCandidates:Boolean;// = true
private var lastFocus:InteractiveObject;
private var lastAction:String;
public function FocusManager(_arg1:DisplayObjectContainer){
activated = false;
calculateCandidates = true;
_showFocusIndicator = true;
_defaultButtonEnabled = true;
super();
focusableObjects = new Dictionary(true);
if (_arg1 != null){
_form = _arg1;
addFocusables(DisplayObject(_arg1));
_arg1.addEventListener(Event.ADDED, addedHandler);
_arg1.addEventListener(Event.REMOVED, removedHandler);
activate();
};
}
public function get showFocusIndicator():Boolean{
return (_showFocusIndicator);
}
private function getIndexOfNextObject(_arg1:int, _arg2:Boolean, _arg3:Boolean, _arg4:String):int{
var _local5:int;
var _local6:int;
var _local7:DisplayObject;
var _local8:IFocusManagerGroup;
var _local9:int;
var _local10:DisplayObject;
var _local11:IFocusManagerGroup;
_local5 = focusableCandidates.length;
_local6 = _arg1;
while (true) {
if (_arg2){
_arg1--;
} else {
_arg1++;
};
if (_arg3){
if (((_arg2) && ((_arg1 < 0)))){
break;
};
if (((!(_arg2)) && ((_arg1 == _local5)))){
break;
};
} else {
_arg1 = ((_arg1 + _local5) % _local5);
if (_local6 == _arg1){
break;
};
};
if (isValidFocusCandidate(focusableCandidates[_arg1], _arg4)){
_local7 = DisplayObject(findFocusManagerComponent(focusableCandidates[_arg1]));
if ((_local7 is IFocusManagerGroup)){
_local8 = IFocusManagerGroup(_local7);
_local9 = 0;
while (_local9 < focusableCandidates.length) {
_local10 = focusableCandidates[_local9];
if ((_local10 is IFocusManagerGroup)){
_local11 = IFocusManagerGroup(_local10);
if ((((_local11.groupName == _local8.groupName)) && (_local11.selected))){
_arg1 = _local9;
break;
};
};
_local9++;
};
};
return (_arg1);
};
};
return (_arg1);
}
public function set form(_arg1:DisplayObjectContainer):void{
_form = _arg1;
}
private function addFocusables(_arg1:DisplayObject, _arg2:Boolean=false):void{
var focusable:IFocusManagerComponent;
var io:InteractiveObject;
var doc:DisplayObjectContainer;
var i:int;
var child:DisplayObject;
var o = _arg1;
var skipTopLevel = _arg2;
if (!skipTopLevel){
if ((o is IFocusManagerComponent)){
focusable = IFocusManagerComponent(o);
if (focusable.focusEnabled){
if (((focusable.tabEnabled) && (isTabVisible(o)))){
focusableObjects[o] = true;
calculateCandidates = true;
};
o.addEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler);
o.addEventListener(Event.TAB_INDEX_CHANGE, tabIndexChangeHandler);
};
} else {
if ((o is InteractiveObject)){
io = (o as InteractiveObject);
if (((((io) && (io.tabEnabled))) && ((findFocusManagerComponent(io) == io)))){
focusableObjects[io] = true;
calculateCandidates = true;
};
io.addEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler);
io.addEventListener(Event.TAB_INDEX_CHANGE, tabIndexChangeHandler);
};
};
};
if ((o is DisplayObjectContainer)){
doc = DisplayObjectContainer(o);
o.addEventListener(Event.TAB_CHILDREN_CHANGE, tabChildrenChangeHandler);
if ((((((doc is Stage)) || ((doc.parent is Stage)))) || (doc.tabChildren))){
i = 0;
while (i < doc.numChildren) {
try {
child = doc.getChildAt(i);
if (child != null){
addFocusables(doc.getChildAt(i));
};
} catch(error:SecurityError) {
};
i = (i + 1);
};
};
};
}
private function getChildIndex(_arg1:DisplayObjectContainer, _arg2:DisplayObject):int{
return (_arg1.getChildIndex(_arg2));
}
private function mouseFocusChangeHandler(_arg1:FocusEvent):void{
if ((_arg1.relatedObject is TextField)){
return;
};
_arg1.preventDefault();
}
private function focusOutHandler(_arg1:FocusEvent):void{
var _local2:InteractiveObject;
_local2 = (_arg1.target as InteractiveObject);
}
private function isValidFocusCandidate(_arg1:DisplayObject, _arg2:String):Boolean{
var _local3:IFocusManagerGroup;
if (!isEnabledAndVisible(_arg1)){
return (false);
};
if ((_arg1 is IFocusManagerGroup)){
_local3 = IFocusManagerGroup(_arg1);
if (_arg2 == _local3.groupName){
return (false);
};
};
return (true);
}
public function findFocusManagerComponent(_arg1:InteractiveObject):InteractiveObject{
var _local2:InteractiveObject;
_local2 = _arg1;
while (_arg1) {
if ((((_arg1 is IFocusManagerComponent)) && (IFocusManagerComponent(_arg1).focusEnabled))){
return (_arg1);
};
_arg1 = _arg1.parent;
};
return (_local2);
}
private function sortFocusableObjectsTabIndex():void{
var _local1:Object;
var _local2:InteractiveObject;
focusableCandidates = [];
for (_local1 in focusableObjects) {
_local2 = InteractiveObject(_local1);
if (((_local2.tabIndex) && (!(isNaN(Number(_local2.tabIndex)))))){
focusableCandidates.push(_local2);
};
};
focusableCandidates.sort(sortByTabIndex);
}
private function removeFocusables(_arg1:DisplayObject):void{
var _local2:Object;
var _local3:DisplayObject;
if ((_arg1 is DisplayObjectContainer)){
_arg1.removeEventListener(Event.TAB_CHILDREN_CHANGE, tabChildrenChangeHandler);
_arg1.removeEventListener(Event.TAB_INDEX_CHANGE, tabIndexChangeHandler);
for (_local2 in focusableObjects) {
_local3 = DisplayObject(_local2);
if (DisplayObjectContainer(_arg1).contains(_local3)){
if (_local3 == lastFocus){
lastFocus = null;
};
_local3.removeEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler);
delete focusableObjects[_local2];
calculateCandidates = true;
};
};
};
}
private function addedHandler(_arg1:Event):void{
var _local2:DisplayObject;
_local2 = DisplayObject(_arg1.target);
if (_local2.stage){
addFocusables(DisplayObject(_arg1.target));
};
}
private function getTopLevelFocusTarget(_arg1:InteractiveObject):InteractiveObject{
while (_arg1 != InteractiveObject(form)) {
if ((((((((_arg1 is IFocusManagerComponent)) && (IFocusManagerComponent(_arg1).focusEnabled))) && (IFocusManagerComponent(_arg1).mouseFocusEnabled))) && (UIComponent(_arg1).enabled))){
return (_arg1);
};
_arg1 = _arg1.parent;
if (_arg1 == null){
break;
};
};
return (null);
}
private function tabChildrenChangeHandler(_arg1:Event):void{
var _local2:DisplayObjectContainer;
if (_arg1.target != _arg1.currentTarget){
return;
};
calculateCandidates = true;
_local2 = DisplayObjectContainer(_arg1.target);
if (_local2.tabChildren){
addFocusables(_local2, true);
} else {
removeFocusables(_local2);
};
}
public function sendDefaultButtonEvent():void{
defButton.dispatchEvent(new MouseEvent(MouseEvent.CLICK));
}
public function getFocus():InteractiveObject{
var _local1:InteractiveObject;
_local1 = form.stage.focus;
return (findFocusManagerComponent(_local1));
}
private function isEnabledAndVisible(_arg1:DisplayObject):Boolean{
var _local2:DisplayObjectContainer;
var _local3:TextField;
var _local4:SimpleButton;
_local2 = DisplayObject(form).parent;
while (_arg1 != _local2) {
if ((_arg1 is UIComponent)){
if (!UIComponent(_arg1).enabled){
return (false);
};
} else {
if ((_arg1 is TextField)){
_local3 = TextField(_arg1);
if ((((_local3.type == TextFieldType.DYNAMIC)) || (!(_local3.selectable)))){
return (false);
};
} else {
if ((_arg1 is SimpleButton)){
_local4 = SimpleButton(_arg1);
if (!_local4.enabled){
return (false);
};
};
};
};
if (!_arg1.visible){
return (false);
};
_arg1 = _arg1.parent;
};
return (true);
}
public function set defaultButton(_arg1:Button):void{
var _local2:Button;
_local2 = (_arg1) ? Button(_arg1) : null;
if (_local2 != _defaultButton){
if (_defaultButton){
_defaultButton.emphasized = false;
};
if (defButton){
defButton.emphasized = false;
};
_defaultButton = _local2;
defButton = _local2;
if (_local2){
_local2.emphasized = true;
};
};
}
private function deactivateHandler(_arg1:Event):void{
var _local2:InteractiveObject;
_local2 = InteractiveObject(_arg1.target);
}
public function setFocus(_arg1:InteractiveObject):void{
if ((_arg1 is IFocusManagerComponent)){
IFocusManagerComponent(_arg1).setFocus();
} else {
form.stage.focus = _arg1;
};
}
private function setFocusToNextObject(_arg1:FocusEvent):void{
var _local2:InteractiveObject;
if (!hasFocusableObjects()){
return;
};
_local2 = getNextFocusManagerComponent(_arg1.shiftKey);
if (_local2){
setFocus(_local2);
};
}
private function hasFocusableObjects():Boolean{
var _local1:Object;
for (_local1 in focusableObjects) {
return (true);
};
return (false);
}
private function tabIndexChangeHandler(_arg1:Event):void{
calculateCandidates = true;
}
private function sortFocusableObjects():void{
var _local1:Object;
var _local2:InteractiveObject;
focusableCandidates = [];
for (_local1 in focusableObjects) {
_local2 = InteractiveObject(_local1);
if (((((_local2.tabIndex) && (!(isNaN(Number(_local2.tabIndex)))))) && ((_local2.tabIndex > 0)))){
sortFocusableObjectsTabIndex();
return;
};
focusableCandidates.push(_local2);
};
focusableCandidates.sort(sortByDepth);
}
private function keyFocusChangeHandler(_arg1:FocusEvent):void{
showFocusIndicator = true;
if ((((((_arg1.keyCode == Keyboard.TAB)) || ((_arg1.keyCode == 0)))) && (!(_arg1.isDefaultPrevented())))){
setFocusToNextObject(_arg1);
_arg1.preventDefault();
};
}
private function getIndexOfFocusedObject(_arg1:DisplayObject):int{
var _local2:int;
var _local3:int;
_local2 = focusableCandidates.length;
_local3 = 0;
_local3 = 0;
while (_local3 < _local2) {
if (focusableCandidates[_local3] == _arg1){
return (_local3);
};
_local3++;
};
return (-1);
}
public function hideFocus():void{
}
private function removedHandler(_arg1:Event):void{
var _local2:int;
var _local3:DisplayObject;
var _local4:InteractiveObject;
_local3 = DisplayObject(_arg1.target);
if ((((_local3 is IFocusManagerComponent)) && ((focusableObjects[_local3] == true)))){
if (_local3 == lastFocus){
IFocusManagerComponent(lastFocus).drawFocus(false);
lastFocus = null;
};
_local3.removeEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler);
delete focusableObjects[_local3];
calculateCandidates = true;
} else {
if ((((_local3 is InteractiveObject)) && ((focusableObjects[_local3] == true)))){
_local4 = (_local3 as InteractiveObject);
if (_local4){
if (_local4 == lastFocus){
lastFocus = null;
};
delete focusableObjects[_local4];
calculateCandidates = true;
};
_local3.addEventListener(Event.TAB_ENABLED_CHANGE, tabEnabledChangeHandler);
};
};
removeFocusables(_local3);
}
private function sortByDepth(_arg1:InteractiveObject, _arg2:InteractiveObject):Number{
var _local3:String;
var _local4:String;
var _local5:int;
var _local6:String;
var _local7:String;
var _local8:String;
var _local9:DisplayObject;
var _local10:DisplayObject;
_local3 = "";
_local4 = "";
_local8 = "0000";
_local9 = DisplayObject(_arg1);
_local10 = DisplayObject(_arg2);
while (((!((_local9 == DisplayObject(form)))) && (_local9.parent))) {
_local5 = getChildIndex(_local9.parent, _local9);
_local6 = _local5.toString(16);
if (_local6.length < 4){
_local7 = (_local8.substring(0, (4 - _local6.length)) + _local6);
};
_local3 = (_local7 + _local3);
_local9 = _local9.parent;
};
while (((!((_local10 == DisplayObject(form)))) && (_local10.parent))) {
_local5 = getChildIndex(_local10.parent, _local10);
_local6 = _local5.toString(16);
if (_local6.length < 4){
_local7 = (_local8.substring(0, (4 - _local6.length)) + _local6);
};
_local4 = (_local7 + _local4);
_local10 = _local10.parent;
};
return (((_local3 > _local4)) ? 1 : ((_local3 < _local4)) ? -1 : 0);
}
public function get defaultButton():Button{
return (_defaultButton);
}
private function activateHandler(_arg1:Event):void{
var _local2:InteractiveObject;
_local2 = InteractiveObject(_arg1.target);
if (lastFocus){
if ((lastFocus is IFocusManagerComponent)){
IFocusManagerComponent(lastFocus).setFocus();
} else {
form.stage.focus = lastFocus;
};
};
lastAction = "ACTIVATE";
}
public function showFocus():void{
}
public function set defaultButtonEnabled(_arg1:Boolean):void{
_defaultButtonEnabled = _arg1;
}
public function getNextFocusManagerComponent(_arg1:Boolean=false):InteractiveObject{
var _local2:DisplayObject;
var _local3:String;
var _local4:int;
var _local5:Boolean;
var _local6:int;
var _local7:int;
var _local8:IFocusManagerGroup;
if (!hasFocusableObjects()){
return (null);
};
if (calculateCandidates){
sortFocusableObjects();
calculateCandidates = false;
};
_local2 = form.stage.focus;
_local2 = DisplayObject(findFocusManagerComponent(InteractiveObject(_local2)));
_local3 = "";
if ((_local2 is IFocusManagerGroup)){
_local8 = IFocusManagerGroup(_local2);
_local3 = _local8.groupName;
};
_local4 = getIndexOfFocusedObject(_local2);
_local5 = false;
_local6 = _local4;
if (_local4 == -1){
if (_arg1){
_local4 = focusableCandidates.length;
};
_local5 = true;
};
_local7 = getIndexOfNextObject(_local4, _arg1, _local5, _local3);
return (findFocusManagerComponent(focusableCandidates[_local7]));
}
private function mouseDownHandler(_arg1:MouseEvent):void{
var _local2:InteractiveObject;
if (_arg1.isDefaultPrevented()){
return;
};
_local2 = getTopLevelFocusTarget(InteractiveObject(_arg1.target));
if (!_local2){
return;
};
showFocusIndicator = false;
if (((((!((_local2 == lastFocus))) || ((lastAction == "ACTIVATE")))) && (!((_local2 is TextField))))){
setFocus(_local2);
};
lastAction = "MOUSEDOWN";
}
private function isTabVisible(_arg1:DisplayObject):Boolean{
var _local2:DisplayObjectContainer;
_local2 = _arg1.parent;
while (((((_local2) && (!((_local2 is Stage))))) && (!(((_local2.parent) && ((_local2.parent is Stage))))))) {
if (!_local2.tabChildren){
return (false);
};
_local2 = _local2.parent;
};
return (true);
}
public function get nextTabIndex():int{
return (0);
}
private function keyDownHandler(_arg1:KeyboardEvent):void{
if (_arg1.keyCode == Keyboard.TAB){
lastAction = "KEY";
if (calculateCandidates){
sortFocusableObjects();
calculateCandidates = false;
};
};
if (((((((defaultButtonEnabled) && ((_arg1.keyCode == Keyboard.ENTER)))) && (defaultButton))) && (defButton.enabled))){
sendDefaultButtonEvent();
};
}
private function focusInHandler(_arg1:FocusEvent):void{
var _local2:InteractiveObject;
var _local3:Button;
_local2 = InteractiveObject(_arg1.target);
if (form.contains(_local2)){
lastFocus = findFocusManagerComponent(InteractiveObject(_local2));
if ((lastFocus is Button)){
_local3 = Button(lastFocus);
if (defButton){
defButton.emphasized = false;
defButton = _local3;
_local3.emphasized = true;
};
} else {
if (((defButton) && (!((defButton == _defaultButton))))){
defButton.emphasized = false;
defButton = _defaultButton;
_defaultButton.emphasized = true;
};
};
};
}
private function tabEnabledChangeHandler(_arg1:Event):void{
var _local2:InteractiveObject;
var _local3:Boolean;
calculateCandidates = true;
_local2 = InteractiveObject(_arg1.target);
_local3 = (focusableObjects[_local2] == true);
if (_local2.tabEnabled){
if (((!(_local3)) && (isTabVisible(_local2)))){
if (!(_local2 is IFocusManagerComponent)){
_local2.focusRect = false;
};
focusableObjects[_local2] = true;
};
} else {
if (_local3){
delete focusableObjects[_local2];
};
};
}
public function set showFocusIndicator(_arg1:Boolean):void{
_showFocusIndicator = _arg1;
}
public function get form():DisplayObjectContainer{
return (_form);
}
private function sortByTabIndex(_arg1:InteractiveObject, _arg2:InteractiveObject):int{
return (((_arg1.tabIndex > _arg2.tabIndex)) ? 1 : ((_arg1.tabIndex < _arg2.tabIndex)) ? -1 : sortByDepth(_arg1, _arg2));
}
public function activate():void{
if (activated){
return;
};
form.stage.addEventListener(FocusEvent.MOUSE_FOCUS_CHANGE, mouseFocusChangeHandler, false, 0, true);
form.stage.addEventListener(FocusEvent.KEY_FOCUS_CHANGE, keyFocusChangeHandler, false, 0, true);
form.addEventListener(FocusEvent.FOCUS_IN, focusInHandler, true);
form.addEventListener(FocusEvent.FOCUS_OUT, focusOutHandler, true);
form.stage.addEventListener(Event.ACTIVATE, activateHandler, false, 0, true);
form.stage.addEventListener(Event.DEACTIVATE, deactivateHandler, false, 0, true);
form.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
form.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler, true);
activated = true;
if (lastFocus){
setFocus(lastFocus);
};
}
public function deactivate():void{
form.stage.removeEventListener(FocusEvent.MOUSE_FOCUS_CHANGE, mouseFocusChangeHandler);
form.stage.removeEventListener(FocusEvent.KEY_FOCUS_CHANGE, keyFocusChangeHandler);
form.removeEventListener(FocusEvent.FOCUS_IN, focusInHandler, true);
form.removeEventListener(FocusEvent.FOCUS_OUT, focusOutHandler, true);
form.stage.removeEventListener(Event.ACTIVATE, activateHandler);
form.stage.removeEventListener(Event.DEACTIVATE, deactivateHandler);
form.removeEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
form.removeEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler, true);
activated = false;
}
public function get defaultButtonEnabled():Boolean{
return (_defaultButtonEnabled);
}
}
}//package fl.managers
Section 35
//IFocusManager (fl.managers.IFocusManager)
package fl.managers {
import fl.controls.*;
import flash.display.*;
public interface IFocusManager {
function getFocus():InteractiveObject;
function deactivate():void;
function set defaultButton(_arg1:Button):void;
function set showFocusIndicator(_arg1:Boolean):void;
function get defaultButtonEnabled():Boolean;
function get nextTabIndex():int;
function get defaultButton():Button;
function get showFocusIndicator():Boolean;
function setFocus(_arg1:InteractiveObject):void;
function activate():void;
function showFocus():void;
function set defaultButtonEnabled(_arg1:Boolean):void;
function hideFocus():void;
function findFocusManagerComponent(_arg1:InteractiveObject):InteractiveObject;
function getNextFocusManagerComponent(_arg1:Boolean=false):InteractiveObject;
}
}//package fl.managers
Section 36
//IFocusManagerComponent (fl.managers.IFocusManagerComponent)
package fl.managers {
public interface IFocusManagerComponent {
function set focusEnabled(_arg1:Boolean):void;
function drawFocus(_arg1:Boolean):void;
function setFocus():void;
function get focusEnabled():Boolean;
function get tabEnabled():Boolean;
function get tabIndex():int;
function get mouseFocusEnabled():Boolean;
}
}//package fl.managers
Section 37
//IFocusManagerGroup (fl.managers.IFocusManagerGroup)
package fl.managers {
public interface IFocusManagerGroup {
function set groupName(_arg1:String):void;
function set selected(_arg1:Boolean):void;
function get groupName():String;
function get selected():Boolean;
}
}//package fl.managers
Section 38
//StyleManager (fl.managers.StyleManager)
package fl.managers {
import flash.text.*;
import fl.core.*;
import flash.utils.*;
public class StyleManager {
private var globalStyles:Object;
private var classToDefaultStylesDict:Dictionary;
private var styleToClassesHash:Object;
private var classToStylesDict:Dictionary;
private var classToInstancesDict:Dictionary;
private static var _instance:StyleManager;
public function StyleManager(){
styleToClassesHash = {};
classToInstancesDict = new Dictionary(true);
classToStylesDict = new Dictionary(true);
classToDefaultStylesDict = new Dictionary(true);
globalStyles = UIComponent.getStyleDefinition();
}
public static function clearComponentStyle(_arg1:Object, _arg2:String):void{
var _local3:Class;
var _local4:Object;
_local3 = getClassDef(_arg1);
_local4 = getInstance().classToStylesDict[_local3];
if (((!((_local4 == null))) && (!((_local4[_arg2] == null))))){
delete _local4[_arg2];
invalidateComponentStyle(_local3, _arg2);
};
}
private static function getClassDef(_arg1:Object):Class{
var component = _arg1;
if ((component is Class)){
return ((component as Class));
};
try {
return ((getDefinitionByName(getQualifiedClassName(component)) as Class));
} catch(e:Error) {
if ((component is UIComponent)){
try {
return ((component.loaderInfo.applicationDomain.getDefinition(getQualifiedClassName(component)) as Class));
} catch(e:Error) {
};
};
};
return (null);
}
public static function clearStyle(_arg1:String):void{
setStyle(_arg1, null);
}
public static function setComponentStyle(_arg1:Object, _arg2:String, _arg3:Object):void{
var _local4:Class;
var _local5:Object;
_local4 = getClassDef(_arg1);
_local5 = getInstance().classToStylesDict[_local4];
if (_local5 == null){
_local5 = (getInstance().classToStylesDict[_local4] = {});
};
if (_local5 == _arg3){
return;
};
_local5[_arg2] = _arg3;
invalidateComponentStyle(_local4, _arg2);
}
private static function setSharedStyles(_arg1:UIComponent):void{
var _local2:StyleManager;
var _local3:Class;
var _local4:Object;
var _local5:String;
_local2 = getInstance();
_local3 = getClassDef(_arg1);
_local4 = _local2.classToDefaultStylesDict[_local3];
for (_local5 in _local4) {
_arg1.setSharedStyle(_local5, getSharedStyle(_arg1, _local5));
};
}
public static function getComponentStyle(_arg1:Object, _arg2:String):Object{
var _local3:Class;
var _local4:Object;
_local3 = getClassDef(_arg1);
_local4 = getInstance().classToStylesDict[_local3];
return (((_local4)==null) ? null : _local4[_arg2]);
}
private static function getInstance(){
if (_instance == null){
_instance = new (StyleManager);
};
return (_instance);
}
private static function invalidateComponentStyle(_arg1:Class, _arg2:String):void{
var _local3:Dictionary;
var _local4:Object;
var _local5:UIComponent;
_local3 = getInstance().classToInstancesDict[_arg1];
if (_local3 == null){
return;
};
for (_local4 in _local3) {
_local5 = (_local4 as UIComponent);
if (_local5 == null){
} else {
_local5.setSharedStyle(_arg2, getSharedStyle(_local5, _arg2));
};
};
}
private static function invalidateStyle(_arg1:String):void{
var _local2:Dictionary;
var _local3:Object;
_local2 = getInstance().styleToClassesHash[_arg1];
if (_local2 == null){
return;
};
for (_local3 in _local2) {
invalidateComponentStyle(Class(_local3), _arg1);
};
}
public static function registerInstance(_arg1:UIComponent):void{
var inst:StyleManager;
var classDef:Class;
var target:Class;
var defaultStyles:Object;
var styleToClasses:Object;
var n:String;
var instance = _arg1;
inst = getInstance();
classDef = getClassDef(instance);
if (classDef == null){
return;
};
if (inst.classToInstancesDict[classDef] == null){
inst.classToInstancesDict[classDef] = new Dictionary(true);
target = classDef;
while (defaultStyles == null) {
if (target["getStyleDefinition"] != null){
defaultStyles = target["getStyleDefinition"]();
break;
};
try {
target = (instance.loaderInfo.applicationDomain.getDefinition(getQualifiedSuperclassName(target)) as Class);
} catch(err:Error) {
try {
target = (getDefinitionByName(getQualifiedSuperclassName(target)) as Class);
} catch(e:Error) {
defaultStyles = UIComponent.getStyleDefinition();
break;
};
};
};
styleToClasses = inst.styleToClassesHash;
for (n in defaultStyles) {
if (styleToClasses[n] == null){
styleToClasses[n] = new Dictionary(true);
};
styleToClasses[n][classDef] = true;
};
inst.classToDefaultStylesDict[classDef] = defaultStyles;
inst.classToStylesDict[classDef] = {};
};
inst.classToInstancesDict[classDef][instance] = true;
setSharedStyles(instance);
}
public static function getStyle(_arg1:String):Object{
return (getInstance().globalStyles[_arg1]);
}
private static function getSharedStyle(_arg1:UIComponent, _arg2:String):Object{
var _local3:Class;
var _local4:StyleManager;
var _local5:Object;
_local3 = getClassDef(_arg1);
_local4 = getInstance();
_local5 = _local4.classToStylesDict[_local3][_arg2];
if (_local5 != null){
return (_local5);
};
_local5 = _local4.globalStyles[_arg2];
if (_local5 != null){
return (_local5);
};
return (_local4.classToDefaultStylesDict[_local3][_arg2]);
}
public static function setStyle(_arg1:String, _arg2:Object):void{
var _local3:Object;
_local3 = getInstance().globalStyles;
if ((((_local3[_arg1] === _arg2)) && (!((_arg2 is TextFormat))))){
return;
};
_local3[_arg1] = _arg2;
invalidateStyle(_arg1);
}
}
}//package fl.managers
Section 39
//book_81 (witchery101_v8_fla.book_81)
package witchery101_v8_fla {
import flash.display.*;
public dynamic class book_81 extends MovieClip {
public var mcText:MovieClip;
}
}//package witchery101_v8_fla
Section 40
//couldron_56 (witchery101_v8_fla.couldron_56)
package witchery101_v8_fla {
import flash.display.*;
public dynamic class couldron_56 extends MovieClip {
public function couldron_56(){
addFrameScript(0, frame1, 26, frame27, 52, frame53, 94, frame95);
}
function frame95(){
stop();
}
function frame1(){
stop();
}
function frame27(){
stop();
}
function frame53(){
stop();
}
}
}//package witchery101_v8_fla
Section 41
//hampster_15 (witchery101_v8_fla.hampster_15)
package witchery101_v8_fla {
import flash.display.*;
public dynamic class hampster_15 extends MovieClip {
public var mcHead:MovieClip;
public function hampster_15(){
addFrameScript(0, frame1, 15, frame16, 30, frame31);
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame31(){
gotoAndStop(1);
}
}
}//package witchery101_v8_fla
Section 42
//kitty_48 (witchery101_v8_fla.kitty_48)
package witchery101_v8_fla {
import flash.display.*;
public dynamic class kitty_48 extends MovieClip {
public function kitty_48(){
addFrameScript(0, frame1, 53, frame54, 102, frame103);
}
function frame1(){
stop();
}
function frame103(){
stop();
}
function frame54(){
stop();
}
}
}//package witchery101_v8_fla
Section 43
//mcBar_78 (witchery101_v8_fla.mcBar_78)
package witchery101_v8_fla {
import flash.display.*;
public dynamic class mcBar_78 extends MovieClip {
public var mcMask:MovieClip;
}
}//package witchery101_v8_fla
Section 44
//mcBook_Help_8 (witchery101_v8_fla.mcBook_Help_8)
package witchery101_v8_fla {
import flash.display.*;
public dynamic class mcBook_Help_8 extends MovieClip {
public var butHelp:MovieClip;
}
}//package witchery101_v8_fla
Section 45
//mcBook_Help_Anim_7 (witchery101_v8_fla.mcBook_Help_Anim_7)
package witchery101_v8_fla {
import flash.display.*;
public dynamic class mcBook_Help_Anim_7 extends MovieClip {
public function mcBook_Help_Anim_7(){
addFrameScript(0, frame1, 7, frame8, 15, frame16);
}
function frame16(){
gotoAndStop(1);
}
function frame1(){
stop();
}
function frame8(){
stop();
}
}
}//package witchery101_v8_fla
Section 46
//mcBook_MainMenu_Anim_34 (witchery101_v8_fla.mcBook_MainMenu_Anim_34)
package witchery101_v8_fla {
import flash.display.*;
public dynamic class mcBook_MainMenu_Anim_34 extends MovieClip {
public function mcBook_MainMenu_Anim_34(){
addFrameScript(0, frame1, 7, frame8, 15, frame16);
}
function frame16(){
gotoAndStop(1);
}
function frame1(){
stop();
}
function frame8(){
stop();
}
}
}//package witchery101_v8_fla
Section 47
//mcBook_Play_Anim_11 (witchery101_v8_fla.mcBook_Play_Anim_11)
package witchery101_v8_fla {
import flash.display.*;
public dynamic class mcBook_Play_Anim_11 extends MovieClip {
public function mcBook_Play_Anim_11(){
addFrameScript(0, frame1, 7, frame8, 15, frame16);
}
function frame16(){
gotoAndStop(1);
}
function frame1(){
stop();
}
function frame8(){
stop();
}
}
}//package witchery101_v8_fla
Section 48
//mcBook_PlayAgain_Anim_92 (witchery101_v8_fla.mcBook_PlayAgain_Anim_92)
package witchery101_v8_fla {
import flash.display.*;
public dynamic class mcBook_PlayAgain_Anim_92 extends MovieClip {
public function mcBook_PlayAgain_Anim_92(){
addFrameScript(0, frame1, 7, frame8, 15, frame16);
}
function frame16(){
gotoAndStop(1);
}
function frame1(){
stop();
}
function frame8(){
stop();
}
}
}//package witchery101_v8_fla
Section 49
//mcBook_Quit_Anim_73 (witchery101_v8_fla.mcBook_Quit_Anim_73)
package witchery101_v8_fla {
import flash.display.*;
public dynamic class mcBook_Quit_Anim_73 extends MovieClip {
public function mcBook_Quit_Anim_73(){
addFrameScript(0, frame1, 7, frame8, 15, frame16);
}
function frame16(){
gotoAndStop(1);
}
function frame1(){
stop();
}
function frame8(){
stop();
}
}
}//package witchery101_v8_fla
Section 50
//mcBook_SubmitScore_Anim_89 (witchery101_v8_fla.mcBook_SubmitScore_Anim_89)
package witchery101_v8_fla {
import flash.display.*;
public dynamic class mcBook_SubmitScore_Anim_89 extends MovieClip {
public function mcBook_SubmitScore_Anim_89(){
addFrameScript(0, frame1, 7, frame8, 15, frame16);
}
function frame16(){
gotoAndStop(1);
}
function frame1(){
stop();
}
function frame8(){
stop();
}
}
}//package witchery101_v8_fla
Section 51
//mcContinue_99 (witchery101_v8_fla.mcContinue_99)
package witchery101_v8_fla {
import flash.display.*;
public dynamic class mcContinue_99 extends MovieClip {
public function mcContinue_99(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package witchery101_v8_fla
Section 52
//mcGameOverScreen_95 (witchery101_v8_fla.mcGameOverScreen_95)
package witchery101_v8_fla {
import flash.display.*;
import flash.text.*;
public dynamic class mcGameOverScreen_95 extends MovieClip {
public var tfYourScore:TextField;
}
}//package witchery101_v8_fla
Section 53
//mcHelpArrow_Left_46 (witchery101_v8_fla.mcHelpArrow_Left_46)
package witchery101_v8_fla {
import flash.display.*;
public dynamic class mcHelpArrow_Left_46 extends MovieClip {
public function mcHelpArrow_Left_46(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package witchery101_v8_fla
Section 54
//mcHelpArrow_Right_41 (witchery101_v8_fla.mcHelpArrow_Right_41)
package witchery101_v8_fla {
import flash.display.*;
public dynamic class mcHelpArrow_Right_41 extends MovieClip {
public function mcHelpArrow_Right_41(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package witchery101_v8_fla
Section 55
//mcHelpScreen1_40 (witchery101_v8_fla.mcHelpScreen1_40)
package witchery101_v8_fla {
import flash.display.*;
import flash.text.*;
public dynamic class mcHelpScreen1_40 extends MovieClip {
public var mcArrowMore:MovieClip;
public var tfHelp:TextField;
}
}//package witchery101_v8_fla
Section 56
//mcHelpScreen2_45 (witchery101_v8_fla.mcHelpScreen2_45)
package witchery101_v8_fla {
import flash.display.*;
import flash.text.*;
public dynamic class mcHelpScreen2_45 extends MovieClip {
public var mcArrowBack:MovieClip;
public var tfHelp2:TextField;
}
}//package witchery101_v8_fla
Section 57
//mcHolderMask_52 (witchery101_v8_fla.mcHolderMask_52)
package witchery101_v8_fla {
import flash.display.*;
public dynamic class mcHolderMask_52 extends MovieClip {
public var mcHolder:MovieClip;
}
}//package witchery101_v8_fla
Section 58
//mcLogoTween_30 (witchery101_v8_fla.mcLogoTween_30)
package witchery101_v8_fla {
import flash.display.*;
public dynamic class mcLogoTween_30 extends MovieClip {
public function mcLogoTween_30(){
addFrameScript(14, frame15);
}
function frame15(){
stop();
}
}
}//package witchery101_v8_fla
Section 59
//mcModeLevel_109 (witchery101_v8_fla.mcModeLevel_109)
package witchery101_v8_fla {
import flash.display.*;
public dynamic class mcModeLevel_109 extends MovieClip {
public function mcModeLevel_109(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package witchery101_v8_fla
Section 60
//mcModeNormal_105 (witchery101_v8_fla.mcModeNormal_105)
package witchery101_v8_fla {
import flash.display.*;
public dynamic class mcModeNormal_105 extends MovieClip {
public function mcModeNormal_105(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package witchery101_v8_fla
Section 61
//mcModeTimed_107 (witchery101_v8_fla.mcModeTimed_107)
package witchery101_v8_fla {
import flash.display.*;
public dynamic class mcModeTimed_107 extends MovieClip {
public function mcModeTimed_107(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package witchery101_v8_fla
Section 62
//mcMultiplierAni_87 (witchery101_v8_fla.mcMultiplierAni_87)
package witchery101_v8_fla {
import flash.display.*;
public dynamic class mcMultiplierAni_87 extends MovieClip {
public function mcMultiplierAni_87(){
addFrameScript(0, frame1, 20, frame21);
}
function frame1(){
stop();
}
function frame21(){
stop();
}
}
}//package witchery101_v8_fla
Section 63
//mcPlayField_51 (witchery101_v8_fla.mcPlayField_51)
package witchery101_v8_fla {
import flash.display.*;
public dynamic class mcPlayField_51 extends MovieClip {
public function mcPlayField_51(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package witchery101_v8_fla
Section 64
//mcRoofCatTween_22 (witchery101_v8_fla.mcRoofCatTween_22)
package witchery101_v8_fla {
import flash.display.*;
public dynamic class mcRoofCatTween_22 extends MovieClip {
public function mcRoofCatTween_22(){
addFrameScript(0, frame1, 89, frame90);
}
function frame90(){
stop();
}
function frame1(){
stop();
}
}
}//package witchery101_v8_fla
Section 65
//mcScoreField_84 (witchery101_v8_fla.mcScoreField_84)
package witchery101_v8_fla {
import flash.display.*;
import flash.text.*;
public dynamic class mcScoreField_84 extends MovieClip {
public var tfShowPoints:TextField;
}
}//package witchery101_v8_fla
Section 66
//mcScoreField2_86 (witchery101_v8_fla.mcScoreField2_86)
package witchery101_v8_fla {
import flash.display.*;
import flash.text.*;
public dynamic class mcScoreField2_86 extends MovieClip {
public var tfShowPoints:TextField;
}
}//package witchery101_v8_fla
Section 67
//mcScoreTween_83 (witchery101_v8_fla.mcScoreTween_83)
package witchery101_v8_fla {
import flash.display.*;
public dynamic class mcScoreTween_83 extends MovieClip {
public var mcScoreField:MovieClip;
public function mcScoreTween_83(){
addFrameScript(0, frame1, 89, frame90);
}
function frame90(){
stop();
}
function frame1(){
stop();
}
}
}//package witchery101_v8_fla
Section 68
//mcScoreTweenUp_85 (witchery101_v8_fla.mcScoreTweenUp_85)
package witchery101_v8_fla {
import flash.display.*;
public dynamic class mcScoreTweenUp_85 extends MovieClip {
public var mcScoreField:MovieClip;
public function mcScoreTweenUp_85(){
addFrameScript(0, frame1, 59, frame60);
}
function frame1(){
stop();
}
function frame60(){
stop();
}
}
}//package witchery101_v8_fla
Section 69
//mcScroll_37 (witchery101_v8_fla.mcScroll_37)
package witchery101_v8_fla {
import flash.display.*;
public dynamic class mcScroll_37 extends MovieClip {
public var ani:MovieClip;
public function mcScroll_37(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package witchery101_v8_fla
Section 70
//mcSliderButton_26 (witchery101_v8_fla.mcSliderButton_26)
package witchery101_v8_fla {
import flash.display.*;
public dynamic class mcSliderButton_26 extends MovieClip {
public var mcSymbol:MovieClip;
public function mcSliderButton_26(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package witchery101_v8_fla
Section 71
//mcSpellAni_Fire_122 (witchery101_v8_fla.mcSpellAni_Fire_122)
package witchery101_v8_fla {
import flash.display.*;
public dynamic class mcSpellAni_Fire_122 extends MovieClip {
public function mcSpellAni_Fire_122(){
addFrameScript(34, frame35);
}
function frame35(){
stop();
}
}
}//package witchery101_v8_fla
Section 72
//mcSpellAni_Nature_125 (witchery101_v8_fla.mcSpellAni_Nature_125)
package witchery101_v8_fla {
import flash.display.*;
public dynamic class mcSpellAni_Nature_125 extends MovieClip {
public function mcSpellAni_Nature_125(){
addFrameScript(34, frame35);
}
function frame35(){
stop();
}
}
}//package witchery101_v8_fla
Section 73
//mcSpellAni_Spirit_124 (witchery101_v8_fla.mcSpellAni_Spirit_124)
package witchery101_v8_fla {
import flash.display.*;
public dynamic class mcSpellAni_Spirit_124 extends MovieClip {
public function mcSpellAni_Spirit_124(){
addFrameScript(34, frame35);
}
function frame35(){
stop();
}
}
}//package witchery101_v8_fla
Section 74
//mcSpellAni_Storm_123 (witchery101_v8_fla.mcSpellAni_Storm_123)
package witchery101_v8_fla {
import flash.display.*;
public dynamic class mcSpellAni_Storm_123 extends MovieClip {
public function mcSpellAni_Storm_123(){
addFrameScript(34, frame35);
}
function frame35(){
stop();
}
}
}//package witchery101_v8_fla
Section 75
//mcTile01_Blowup_112 (witchery101_v8_fla.mcTile01_Blowup_112)
package witchery101_v8_fla {
import flash.display.*;
public dynamic class mcTile01_Blowup_112 extends MovieClip {
public function mcTile01_Blowup_112(){
addFrameScript(10, frame11);
}
function frame11(){
stop();
}
}
}//package witchery101_v8_fla
Section 76
//mcTile02_Blowup_113 (witchery101_v8_fla.mcTile02_Blowup_113)
package witchery101_v8_fla {
import flash.display.*;
public dynamic class mcTile02_Blowup_113 extends MovieClip {
public function mcTile02_Blowup_113(){
addFrameScript(10, frame11);
}
function frame11(){
stop();
}
}
}//package witchery101_v8_fla
Section 77
//mcTile03_Blowup_114 (witchery101_v8_fla.mcTile03_Blowup_114)
package witchery101_v8_fla {
import flash.display.*;
public dynamic class mcTile03_Blowup_114 extends MovieClip {
public function mcTile03_Blowup_114(){
addFrameScript(10, frame11);
}
function frame11(){
stop();
}
}
}//package witchery101_v8_fla
Section 78
//mcTile04_Blowup_115 (witchery101_v8_fla.mcTile04_Blowup_115)
package witchery101_v8_fla {
import flash.display.*;
public dynamic class mcTile04_Blowup_115 extends MovieClip {
public function mcTile04_Blowup_115(){
addFrameScript(10, frame11);
}
function frame11(){
stop();
}
}
}//package witchery101_v8_fla
Section 79
//mcTile05_Blowup_116 (witchery101_v8_fla.mcTile05_Blowup_116)
package witchery101_v8_fla {
import flash.display.*;
public dynamic class mcTile05_Blowup_116 extends MovieClip {
public function mcTile05_Blowup_116(){
addFrameScript(10, frame11);
}
function frame11(){
stop();
}
}
}//package witchery101_v8_fla
Section 80
//mcTile06_Blowup_117 (witchery101_v8_fla.mcTile06_Blowup_117)
package witchery101_v8_fla {
import flash.display.*;
public dynamic class mcTile06_Blowup_117 extends MovieClip {
public function mcTile06_Blowup_117(){
addFrameScript(10, frame11);
}
function frame11(){
stop();
}
}
}//package witchery101_v8_fla
Section 81
//mcTile07_Blowup_118 (witchery101_v8_fla.mcTile07_Blowup_118)
package witchery101_v8_fla {
import flash.display.*;
public dynamic class mcTile07_Blowup_118 extends MovieClip {
public function mcTile07_Blowup_118(){
addFrameScript(10, frame11);
}
function frame11(){
stop();
}
}
}//package witchery101_v8_fla
Section 82
//mcTile08_Blowup_119 (witchery101_v8_fla.mcTile08_Blowup_119)
package witchery101_v8_fla {
import flash.display.*;
public dynamic class mcTile08_Blowup_119 extends MovieClip {
public function mcTile08_Blowup_119(){
addFrameScript(10, frame11);
}
function frame11(){
stop();
}
}
}//package witchery101_v8_fla
Section 83
//mcTile09_Blowup_120 (witchery101_v8_fla.mcTile09_Blowup_120)
package witchery101_v8_fla {
import flash.display.*;
public dynamic class mcTile09_Blowup_120 extends MovieClip {
public function mcTile09_Blowup_120(){
addFrameScript(10, frame11);
}
function frame11(){
stop();
}
}
}//package witchery101_v8_fla
Section 84
//mcTPOSGTween_28 (witchery101_v8_fla.mcTPOSGTween_28)
package witchery101_v8_fla {
import flash.display.*;
public dynamic class mcTPOSGTween_28 extends MovieClip {
public function mcTPOSGTween_28(){
addFrameScript(0, frame1, 50, frame51);
}
function frame1(){
stop();
}
function frame51(){
gotoAndStop(1);
}
}
}//package witchery101_v8_fla
Section 85
//mcWitch_Anim_GameOver_88 (witchery101_v8_fla.mcWitch_Anim_GameOver_88)
package witchery101_v8_fla {
import flash.display.*;
public dynamic class mcWitch_Anim_GameOver_88 extends MovieClip {
public var mcHamster:MovieClip;
public var mcBook1:MovieClip;
public var mcBook2:MovieClip;
public var mcHead:MovieClip;
public function mcWitch_Anim_GameOver_88(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package witchery101_v8_fla
Section 86
//mcWitch_Anim_Help_33 (witchery101_v8_fla.mcWitch_Anim_Help_33)
package witchery101_v8_fla {
import flash.display.*;
public dynamic class mcWitch_Anim_Help_33 extends MovieClip {
public var mcHamster:MovieClip;
public var mcBook2:MovieClip;
public var mcHead:MovieClip;
public function mcWitch_Anim_Help_33(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package witchery101_v8_fla
Section 87
//mcWitch_Anim_Intro_4 (witchery101_v8_fla.mcWitch_Anim_Intro_4)
package witchery101_v8_fla {
import flash.display.*;
public dynamic class mcWitch_Anim_Intro_4 extends MovieClip {
public var mcHamster:MovieClip;
public var mcBook1:MovieClip;
public var mcBook2:MovieClip;
public var mcHead:MovieClip;
public function mcWitch_Anim_Intro_4(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package witchery101_v8_fla
Section 88
//mcWitchHead_Anim_19 (witchery101_v8_fla.mcWitchHead_Anim_19)
package witchery101_v8_fla {
import flash.display.*;
public dynamic class mcWitchHead_Anim_19 extends MovieClip {
public function mcWitchHead_Anim_19(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package witchery101_v8_fla
Section 89
//nextmove_82 (witchery101_v8_fla.nextmove_82)
package witchery101_v8_fla {
import flash.display.*;
public dynamic class nextmove_82 extends MovieClip {
public function nextmove_82(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package witchery101_v8_fla
Section 90
//poof_32 (witchery101_v8_fla.poof_32)
package witchery101_v8_fla {
import flash.display.*;
public dynamic class poof_32 extends MovieClip {
public function poof_32(){
addFrameScript(0, frame1, 24, frame25);
}
function frame1(){
stop();
}
function frame25(){
stop();
}
}
}//package witchery101_v8_fla
Section 91
//poof_80 (witchery101_v8_fla.poof_80)
package witchery101_v8_fla {
import flash.display.*;
public dynamic class poof_80 extends MovieClip {
public function poof_80(){
addFrameScript(23, frame24);
}
function frame24(){
stop();
}
}
}//package witchery101_v8_fla
Section 92
//scroll_38 (witchery101_v8_fla.scroll_38)
package witchery101_v8_fla {
import flash.display.*;
public dynamic class scroll_38 extends MovieClip {
public function scroll_38(){
addFrameScript(20, frame21);
}
function frame21(){
stop();
}
}
}//package witchery101_v8_fla
Section 93
//scroll_39 (witchery101_v8_fla.scroll_39)
package witchery101_v8_fla {
import flash.display.*;
public dynamic class scroll_39 extends MovieClip {
public function scroll_39(){
addFrameScript(20, frame21);
}
function frame21(){
stop();
}
}
}//package witchery101_v8_fla
Section 94
//timer_76 (witchery101_v8_fla.timer_76)
package witchery101_v8_fla {
import flash.display.*;
public dynamic class timer_76 extends MovieClip {
public var mcBottle:MovieClip;
public function timer_76(){
addFrameScript(0, frame1, 9, frame10);
}
function frame10(){
stop();
}
function frame1(){
stop();
}
}
}//package witchery101_v8_fla
Section 95
//timer_77 (witchery101_v8_fla.timer_77)
package witchery101_v8_fla {
import flash.display.*;
public dynamic class timer_77 extends MovieClip {
public var mcBar:MovieClip;
}
}//package witchery101_v8_fla
Section 96
//witch_58 (witchery101_v8_fla.witch_58)
package witchery101_v8_fla {
import flash.display.*;
public dynamic class witch_58 extends MovieClip {
public var mcHead:MovieClip;
}
}//package witchery101_v8_fla
Section 97
//_internalMagicSchool (_internalMagicSchool)
package {
import flash.text.*;
public dynamic class _internalMagicSchool extends Font {
}
}//package
Section 98
//_internalVerdana (_internalVerdana)
package {
import flash.text.*;
public dynamic class _internalVerdana extends Font {
}
}//package
Section 99
//focusRectSkin (focusRectSkin)
package {
import flash.display.*;
public dynamic class focusRectSkin extends MovieClip {
}
}//package
Section 100
//fxCat (fxCat)
package {
import flash.media.*;
public dynamic class fxCat extends Sound {
}
}//package
Section 101
//fxCauldron (fxCauldron)
package {
import flash.media.*;
public dynamic class fxCauldron extends Sound {
}
}//package
Section 102
//fxClick (fxClick)
package {
import flash.media.*;
public dynamic class fxClick extends Sound {
}
}//package
Section 103
//fxDrop (fxDrop)
package {
import flash.media.*;
public dynamic class fxDrop extends Sound {
}
}//package
Section 104
//fxDropAll (fxDropAll)
package {
import flash.media.*;
public dynamic class fxDropAll extends Sound {
}
}//package
Section 105
//fxGameover (fxGameover)
package {
import flash.media.*;
public dynamic class fxGameover extends Sound {
}
}//package
Section 106
//fxHint (fxHint)
package {
import flash.media.*;
public dynamic class fxHint extends Sound {
}
}//package
Section 107
//fxJump (fxJump)
package {
import flash.media.*;
public dynamic class fxJump extends Sound {
}
}//package
Section 108
//fxLevelCombo (fxLevelCombo)
package {
import flash.media.*;
public dynamic class fxLevelCombo extends Sound {
}
}//package
Section 109
//fxMulti (fxMulti)
package {
import flash.media.*;
public dynamic class fxMulti extends Sound {
}
}//package
Section 110
//fxPling (fxPling)
package {
import flash.media.*;
public dynamic class fxPling extends Sound {
}
}//package
Section 111
//fxPop (fxPop)
package {
import flash.media.*;
public dynamic class fxPop extends Sound {
}
}//package
Section 112
//fxPuff (fxPuff)
package {
import flash.media.*;
public dynamic class fxPuff extends Sound {
}
}//package
Section 113
//fxRoofCat (fxRoofCat)
package {
import flash.media.*;
public dynamic class fxRoofCat extends Sound {
}
}//package
Section 114
//fxSelect (fxSelect)
package {
import flash.media.*;
public dynamic class fxSelect extends Sound {
}
}//package
Section 115
//fxShwoom (fxShwoom)
package {
import flash.media.*;
public dynamic class fxShwoom extends Sound {
}
}//package
Section 116
//fxSlideIn (fxSlideIn)
package {
import flash.media.*;
public dynamic class fxSlideIn extends Sound {
}
}//package
Section 117
//fxSlideOut (fxSlideOut)
package {
import flash.media.*;
public dynamic class fxSlideOut extends Sound {
}
}//package
Section 118
//fxSpellFire (fxSpellFire)
package {
import flash.media.*;
public dynamic class fxSpellFire extends Sound {
}
}//package
Section 119
//fxSpellNature (fxSpellNature)
package {
import flash.media.*;
public dynamic class fxSpellNature extends Sound {
}
}//package
Section 120
//fxSpellSpirit (fxSpellSpirit)
package {
import flash.media.*;
public dynamic class fxSpellSpirit extends Sound {
}
}//package
Section 121
//fxSpellStorm (fxSpellStorm)
package {
import flash.media.*;
public dynamic class fxSpellStorm extends Sound {
}
}//package
Section 122
//fxSwap (fxSwap)
package {
import flash.media.*;
public dynamic class fxSwap extends Sound {
}
}//package
Section 123
//fxSwapBack (fxSwapBack)
package {
import flash.media.*;
public dynamic class fxSwapBack extends Sound {
}
}//package
Section 124
//fxWoosh (fxWoosh)
package {
import flash.media.*;
public dynamic class fxWoosh extends Sound {
}
}//package
Section 125
//mcGameModes (mcGameModes)
package {
import flash.display.*;
import flash.text.*;
public dynamic class mcGameModes extends MovieClip {
public var tfText2:TextField;
public var tfText:TextField;
public var butMode1:MovieClip;
public var butMode2:MovieClip;
public var butMode3:MovieClip;
}
}//package
Section 126
//mcHint (mcHint)
package {
import flash.display.*;
public dynamic class mcHint extends MovieClip {
}
}//package
Section 127
//mcLevelModeFields (mcLevelModeFields)
package {
import flash.display.*;
import flash.text.*;
public dynamic class mcLevelModeFields extends MovieClip {
public var tfMoves:TextField;
public var tfCombos:TextField;
}
}//package
Section 128
//mcMarker (mcMarker)
package {
import flash.display.*;
public dynamic class mcMarker extends MovieClip {
}
}//package
Section 129
//mcNextLevel (mcNextLevel)
package {
import flash.display.*;
import flash.text.*;
public dynamic class mcNextLevel extends MovieClip {
public var butContinue:MovieClip;
public var tfHeader:TextField;
public var tfText:TextField;
}
}//package
Section 130
//mcOverlay (mcOverlay)
package {
import flash.display.*;
import flash.text.*;
public dynamic class mcOverlay extends MovieClip {
public var tfHeader:TextField;
public var tfText:TextField;
}
}//package
Section 131
//mcRollover (mcRollover)
package {
import flash.display.*;
public dynamic class mcRollover extends MovieClip {
}
}//package
Section 132
//mcSpellAni (mcSpellAni)
package {
import flash.display.*;
public dynamic class mcSpellAni extends MovieClip {
public var ani:MovieClip;
public function mcSpellAni(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 133
//mcTiles (mcTiles)
package {
import flash.display.*;
public dynamic class mcTiles extends MovieClip {
}
}//package
Section 134
//mcTilesBlowup (mcTilesBlowup)
package {
import flash.display.*;
public dynamic class mcTilesBlowup extends MovieClip {
public var ani:MovieClip;
}
}//package
Section 135
//musicMain (musicMain)
package {
import flash.media.*;
public dynamic class musicMain extends Sound {
}
}//package
Section 136
//ScrollArrowDown_disabledSkin (ScrollArrowDown_disabledSkin)
package {
import flash.display.*;
public dynamic class ScrollArrowDown_disabledSkin extends MovieClip {
}
}//package
Section 137
//ScrollArrowDown_downSkin (ScrollArrowDown_downSkin)
package {
import flash.display.*;
public dynamic class ScrollArrowDown_downSkin extends MovieClip {
}
}//package
Section 138
//ScrollArrowDown_overSkin (ScrollArrowDown_overSkin)
package {
import flash.display.*;
public dynamic class ScrollArrowDown_overSkin extends MovieClip {
}
}//package
Section 139
//ScrollArrowDown_upSkin (ScrollArrowDown_upSkin)
package {
import flash.display.*;
public dynamic class ScrollArrowDown_upSkin extends MovieClip {
}
}//package
Section 140
//ScrollArrowUp_disabledSkin (ScrollArrowUp_disabledSkin)
package {
import flash.display.*;
public dynamic class ScrollArrowUp_disabledSkin extends MovieClip {
}
}//package
Section 141
//ScrollArrowUp_downSkin (ScrollArrowUp_downSkin)
package {
import flash.display.*;
public dynamic class ScrollArrowUp_downSkin extends MovieClip {
}
}//package
Section 142
//ScrollArrowUp_overSkin (ScrollArrowUp_overSkin)
package {
import flash.display.*;
public dynamic class ScrollArrowUp_overSkin extends MovieClip {
}
}//package
Section 143
//ScrollArrowUp_upSkin (ScrollArrowUp_upSkin)
package {
import flash.display.*;
public dynamic class ScrollArrowUp_upSkin extends MovieClip {
}
}//package
Section 144
//ScrollBar_thumbIcon (ScrollBar_thumbIcon)
package {
import flash.display.*;
public dynamic class ScrollBar_thumbIcon extends MovieClip {
}
}//package
Section 145
//ScrollThumb_downSkin (ScrollThumb_downSkin)
package {
import flash.display.*;
public dynamic class ScrollThumb_downSkin extends MovieClip {
}
}//package
Section 146
//ScrollThumb_overSkin (ScrollThumb_overSkin)
package {
import flash.display.*;
public dynamic class ScrollThumb_overSkin extends MovieClip {
}
}//package
Section 147
//ScrollThumb_upSkin (ScrollThumb_upSkin)
package {
import flash.display.*;
public dynamic class ScrollThumb_upSkin extends MovieClip {
}
}//package
Section 148
//ScrollTrack_skin (ScrollTrack_skin)
package {
import flash.display.*;
public dynamic class ScrollTrack_skin extends MovieClip {
}
}//package